/* style.css -- merged from per-tier scene CSS by wizard2.stages.build_deploy */
/* Scene root must fill its positioning container. */
.scn { position: absolute; inset: 0; }

/* ============ tier U ============ */
/* per-scene blocks (EXP step_scenes) */
.scn-item-christmas-tree {
  background:
    linear-gradient(180deg, #1a1a2e 0%, #2a2a3e 50%, #1a1a2e 100%),
    radial-gradient(ellipse at 50% 50%, #2a2a3e 0%, transparent 80%);
}
.scn-item-christmas-tree .bg {
  position:absolute; inset:0; background: radial-gradient(circle at 50% 30%, #1a1a2e 0%, #0a0a1a 100%);
  animation: it-bg 10s ease-in-out infinite alternate;
}
.scn-item-christmas-tree .tree {
  position:absolute; bottom:5%; left:50%; width:100px; height:150px;
  transform:translateX(-50%);
  background: linear-gradient(180deg, #2a4a2a 0%, #1a3a1a 60%, #0a2a0a 100%);
  clip-path: polygon(50% 0%, 95% 30%, 85% 50%, 100% 70%, 80% 90%, 20% 90%, 0% 70%, 15% 50%, 5% 30%);
  box-shadow: 0 8px 20px rgba(0,0,0,0.8);
  animation: it-tree 12s ease-in-out infinite;
}
.scn-item-christmas-tree .shadow {
  position:absolute; bottom:5%; left:50%; width:120px; height:20px;
  transform:translateX(-50%);
  background: radial-gradient(ellipse, rgba(0,0,0,0.5) 0%, transparent 80%);
  animation: it-shadow 12s ease-in-out infinite;
}
.scn-item-christmas-tree .ornament {
  position:absolute; width:12px; height:16px; border-radius:50% 50% 40% 40%;
  animation: it-ornament 5s ease-in-out infinite;
}
.scn-item-christmas-tree .ornament.one {
  bottom:60%; left:42%; background: #702243;
  box-shadow: 0 0 8px 3px rgba(112,34,67,0.5);
}
.scn-item-christmas-tree .ornament.two {
  bottom:45%; left:55%; background: #a0461a;
  box-shadow: 0 0 8px 3px rgba(160,70,26,0.4);
  animation-delay: -2.5s;
}
.scn-item-christmas-tree .trunk {
  position:absolute; bottom:5%; left:50%; width:16px; height:30px;
  transform:translateX(-50%);
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0a00 100%);
  border-radius: 2px;
}
.scn-item-christmas-tree .garland {
  position:absolute; bottom:70%; left:38%; width:50px; height:4px;
  background: repeating-linear-gradient(90deg, #8a5a3a 0px, #8a5a3a 4px, #2a5a2a 4px, #2a5a2a 8px);
  border-radius: 2px;
  animation: it-garland 8s linear infinite;
}
.scn-item-christmas-tree .stand {
  position:absolute; bottom:0; left:50%; width:40px; height:10px;
  transform:translateX(-50%);
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 4px;
}
@keyframes it-bg { 0% { opacity:0.9; } 50% { opacity:0.75; } 100% { opacity:0.85; } }
@keyframes it-tree { 0%,100% { transform:translateX(-50%) scale(1); } 50% { transform:translateX(-50%) scale(0.97); } }
@keyframes it-shadow { 0%,100% { transform:translateX(-50%) scaleX(1); opacity:0.6; } 50% { transform:translateX(-50%) scaleX(0.95); opacity:0.4; } }
@keyframes it-ornament { 0% { transform:translateY(0) rotate(0deg); } 50% { transform:translateY(-3px) rotate(10deg); } 100% { transform:translateY(0) rotate(0deg); } }
@keyframes it-garland { 0% { transform:translateX(0); } 100% { transform:translateX(-20px); } }

.scn-item-forged-bond { background: linear-gradient(180deg, #1a0a08 0%, #2a1410 40%, #3a1c14 100%), radial-gradient(ellipse at 50% 0%, #4a2420 0%, transparent 60%); }
.scn-item-forged-bond .desk { position:absolute; bottom:10%; left:15%; right:15%; height:35%; background: linear-gradient(180deg, #5a3020 0%, #3a1c10 100%); border-radius: 6% 6% 0 0; box-shadow: 0 -8px 16px rgba(0,0,0,.6); }
.scn-item-forged-bond .document { position:absolute; bottom:28%; left:30%; width:60px; height:40px; background: linear-gradient(135deg, #d0b890 0%, #b09878 100%); border-radius: 2%; transform: rotate(2deg); box-shadow: 2px 2px 8px rgba(0,0,0,.5); animation: ifb-doc 7s ease-in-out infinite; }
.scn-item-forged-bond .seal { position:absolute; bottom:32%; left:38%; width:12px; height:12px; background: radial-gradient(circle, #a04030 0%, #602018 70%); border-radius: 50%; box-shadow: 0 0 8px 2px rgba(160,64,48,.9); animation: ifb-seal 5s ease-in-out infinite; }
.scn-item-forged-bond .pen { position:absolute; bottom:30%; left:20%; width:6px; height:40px; background: linear-gradient(180deg, #802010 0%, #401008 100%); border-radius: 30% 30% 10% 10%; transform: rotate(15deg); transform-origin: bottom center; box-shadow: 0 2px 4px rgba(0,0,0,.3); animation: ifb-pen 4s ease-in-out infinite; }
.scn-item-forged-bond .hand { position:absolute; bottom:30%; left:25%; width:18px; height:30px; background: linear-gradient(180deg, #e0c0a0 0%, #c0a080 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; box-shadow: 0 2px 6px rgba(0,0,0,.4); animation: ifb-hand 3s ease-in-out infinite; }
.scn-item-forged-bond .candle { position:absolute; bottom:15%; right:25%; width:14px; height:40px; background: linear-gradient(180deg, #e8d8b0 0%, #c8b890 100%); border-radius: 20% 20% 10% 10%; box-shadow: 0 4px 8px rgba(0,0,0,.3); }
.scn-item-forged-bond .flame { position:absolute; bottom:52%; right:27%; width:10px; height:20px; background: radial-gradient(circle at 50% 100%, #ffd060 0%, #ff8010 60%, transparent 100%); border-radius: 50% 50% 0 0; animation: ifb-flame 1.5s ease-in-out infinite alternate; }
@keyframes ifb-doc { 0%,100% { transform: rotate(2deg) translateY(0); } 50% { transform: rotate(4deg) translateY(-1px); } }
@keyframes ifb-seal { 0% { box-shadow: 0 0 8px 2px #a04030; transform: scale(1); } 50% { box-shadow: 0 0 16px 6px #c05040; transform: scale(1.1); } 100% { box-shadow: 0 0 8px 2px #a04030; transform: scale(1); } }
@keyframes ifb-pen { 0% { transform: rotate(15deg) translateY(0); } 50% { transform: rotate(12deg) translateY(-3px); } 100% { transform: rotate(15deg) translateY(0); } }
@keyframes ifb-hand { 0% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-2px) rotate(-3deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes ifb-flame { 0% { transform: scaleY(1) rotate(0deg); opacity: .9; } 25% { transform: scaleY(1.2) rotate(5deg); opacity: 1; } 50% { transform: scaleY(1.1) rotate(-5deg); opacity: .95; } 75% { transform: scaleY(1.3) rotate(2deg); opacity: .9; } 100% { transform: scaleY(0.8) rotate(-2deg); opacity: .8; } }

.scn-helmer-refuses {
  background: linear-gradient(180deg, #2a1f1a 0%, #1a120f 50%, #0f0a08 100%),
    radial-gradient(ellipse at 50% 70%, #3a2a20 0%, transparent 70%);
}
.scn-helmer-refuses .bg-wall {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(180deg, #3a2a22 0%, #2a1e18 60%);
}
.scn-helmer-refuses .bg-floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 40%;
  background: linear-gradient(180deg, #2a1e18 0%, #1a120f 100%);
}
.scn-helmer-refuses .desk {
  position: absolute; bottom: 30%; left: 15%; right: 15%; height: 20px;
  background: linear-gradient(180deg, #4a3a2a 0%, #3a2a1a 100%);
  border-radius: 4% 4% 0 0;
  box-shadow: 0 4px 8px rgba(0,0,0,.5);
}
.scn-helmer-refuses .lamp-desk {
  position: absolute; bottom: 40%; left: 45%; width: 16px; height: 24px;
  background: radial-gradient(ellipse at 50% 20%, #ffd080 0%, #b07840 70%);
  border-radius: 50% 50% 30% 30%;
  box-shadow: 0 0 30px 8px rgba(255,208,128,.4), 0 0 60px 15px rgba(255,208,128,.15);
  animation: hre-lamp 3s ease-in-out infinite alternate;
}
@keyframes hre-lamp {
  0% { opacity: 0.85; box-shadow: 0 0 25px 6px rgba(255,208,128,.35), 0 0 50px 12px rgba(255,208,128,.12); }
  50% { opacity: 1; box-shadow: 0 0 40px 12px rgba(255,208,128,.5), 0 0 80px 20px rgba(255,208,128,.2); }
  100% { opacity: 0.9; box-shadow: 0 0 30px 8px rgba(255,208,128,.4), 0 0 60px 15px rgba(255,208,128,.15); }
}
.scn-helmer-refuses .figure-helmer {
  position: absolute; bottom: 30%; left: 30%; width: 30px; height: 55px;
  background: linear-gradient(180deg, #1a1210 0%, #0a0807 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: hre-stand 10s ease-in-out infinite alternate;
}
@keyframes hre-stand {
  0% { transform: translateY(0) rotate(0deg); }
  50% { transform: translateY(-2px) rotate(1deg); }
  100% { transform: translateY(0) rotate(-1deg); }
}
.scn-helmer-refuses .figure-nora {
  position: absolute; bottom: 30%; left: 55%; width: 22px; height: 55px;
  background: linear-gradient(180deg, #1a1210 0%, #0a0807 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: hre-plead 5s ease-in-out infinite;
}
@keyframes hre-plead {
  0% { transform: translateX(0) translateY(0) rotate(-3deg); }
  25% { transform: translateX(-5px) translateY(-4px) rotate(3deg); }
  50% { transform: translateX(0) translateY(-2px) rotate(-2deg); }
  75% { transform: translateX(5px) translateY(-4px) rotate(2deg); }
  100% { transform: translateX(0) translateY(0) rotate(-3deg); }
}
.scn-helmer-refuses .letter {
  position: absolute; bottom: 32%; left: 35%; width: 12px; height: 16px;
  background: linear-gradient(180deg, #d4c4a0 0%, #b8a88a 100%);
  border: 1px solid #8a7a6a;
  transform: rotate(-10deg);
  animation: hre-letter 6s ease-in-out infinite alternate;
}
@keyframes hre-letter {
  0% { transform: rotate(-10deg) translateY(0); }
  50% { transform: rotate(-8deg) translateY(-3px); }
  100% { transform: rotate(-12deg) translateY(0); }
}

/* dismissal-desperation */

.scn-item-silk-stockings {
  background: linear-gradient(180deg, #3a2a1a 0%, #4a3a2a 30%, #2a1a0a 100%), radial-gradient(ellipse at 30% 70%, #5a4a3a 0%, transparent 60%);
}
.scn-item-silk-stockings .bg-wall {
  position:absolute; inset:0 0 35% 0; background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%); animation: si-wall 12s ease-in-out infinite alternate;
}
.scn-item-silk-stockings .bg-floor {
  position:absolute; bottom:0; left:0; right:0; height:35%; background: linear-gradient(180deg, #2a1a0a 0%, #1a0a00 100%); border-radius: 30% 70% 0 0; box-shadow: inset 0 4px 10px rgba(0,0,0,.5); animation: si-floor 18s ease-in-out infinite alternate;
}
.scn-item-silk-stockings .sofa {
  position:absolute; bottom:25%; left:20%; width:60%; height:30%; background: linear-gradient(180deg, #5a3a2a 0%, #3a2212 100%); border-radius: 20% 20% 10% 10%; box-shadow: 0 8px 16px rgba(0,0,0,.4); animation: si-sofa 9s ease-in-out infinite;
}
.scn-item-silk-stockings .nora-figure {
  position:absolute; bottom:30%; left:40%; width:20px; height:50px; background: linear-gradient(180deg, #2a1a1a 0%, #1a0a0a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: si-nora 5s ease-in-out infinite;
}
.scn-item-silk-stockings .stockings {
  position:absolute; bottom:35%; left:55%; width:12px; height:30px; background: linear-gradient(180deg, #c8a080 0%, #a08060 40%, #806040 100%); border-radius: 40% 40% 20% 20%; transform: rotate(-15deg); animation: si-stockings 2.5s ease-in-out infinite; box-shadow: 0 2px 8px rgba(0,0,0,.3);
}
.scn-item-silk-stockings .stockings-hand {
  position:absolute; bottom:38%; left:53%; width:8px; height:14px; background: linear-gradient(180deg, #2a1a1a 0%, #1a0a0a 100%); border-radius: 50% 50% 40% 40%; animation: si-hand 2.5s ease-in-out infinite;
}
.scn-item-silk-stockings .lamp {
  position:absolute; bottom:55%; right:15%; width:10px; height:20px; background: radial-gradient(circle at 50% 20%, #ffd080 0%, #a07030 70%); border-radius: 50% 50% 40% 40%; box-shadow: 0 0 24px 8px #c08040, 0 0 48px 16px rgba(192,128,64,.4); animation: si-lamp 4s ease-in-out infinite alternate;
}
.scn-item-silk-stockings .shadow {
  position:absolute; bottom:25%; left:35%; width:50px; height:10px; background: radial-gradient(ellipse, rgba(0,0,0,.6) 0%, transparent 80%); animation: si-shadow 6s ease-in-out infinite;
}
@keyframes si-wall { 0% { opacity:.85 } 50% { opacity:1 } 100% { opacity:.8 } }
@keyframes si-floor { 0% { transform: translateY(0) } 50% { transform: translateY(-2px) } 100% { transform: translateY(0) } }
@keyframes si-sofa { 0%,100% { transform: translateY(0) } 50% { transform: translateY(-1px) } }
@keyframes si-nora { 0% { transform: translateX(0) rotate(-1deg) } 25% { transform: translateX(2px) rotate(1deg) } 50% { transform: translateX(0) rotate(-1deg) } 75% { transform: translateX(-2px) rotate(1deg) } 100% { transform: translateX(0) rotate(0) } }
@keyframes si-stockings { 0% { transform: rotate(-20deg) translateY(0) } 25% { transform: rotate(-10deg) translateY(-2px) } 50% { transform: rotate(5deg) translateY(0) } 75% { transform: rotate(-5deg) translateY(-1px) } 100% { transform: rotate(-15deg) translateY(0) } }
@keyframes si-hand { 0%,100% { transform: translate(0,0) rotate(-5deg) } 50% { transform: translate(3px,-2px) rotate(5deg) } }
@keyframes si-lamp { 0% { box-shadow: 0 0 18px 4px #a07030, 0 0 36px 8px rgba(160,112,48,.3); opacity:.9 } 50% { box-shadow: 0 0 30px 10px #ffd080, 0 0 60px 20px rgba(255,208,128,.5); opacity:1 } 100% { box-shadow: 0 0 22px 5px #b08040, 0 0 44px 12px rgba(176,128,64,.35); opacity:.85 } }
@keyframes si-shadow { 0%,100% { opacity:.4; transform: scaleX(1) } 50% { opacity:.6; transform: scaleX(1.2) } }

/* Scene: love-gone */
.scn-love-gone { background: linear-gradient(180deg, #1c1c2e 0%, #2a1f24 40%, #1a1215 100%), radial-gradient(ellipse at 50% 80%, #3a2a2a 0%, transparent 60%); }
.scn-love-gone .wall { position:absolute; inset:0 0 30% 0; background: linear-gradient(180deg, #2a2a3e 0%, #1e1e2a 100%); }
.scn-love-gone .floor { position:absolute; bottom:0; left:0; right:0; height:30%; background: linear-gradient(180deg, #1f1a18 0%, #0d0a08 100%); box-shadow: inset 0 8px 12px rgba(0,0,0,0.6); }
.scn-love-gone .door-frame { position:absolute; bottom:30%; left:60%; width:80px; height:120px; transform:translateX(-50%); background: linear-gradient(180deg, #3a2e2a 0%, #241b17 100%); border-radius:4px 4px 0 0; box-shadow: -4px 0 12px rgba(0,0,0,0.5), 4px 0 12px rgba(0,0,0,0.3); }
.scn-love-gone .door { position:absolute; bottom:30%; left:60%; width:70px; height:110px; transform:translateX(-50%) translateY(5px); background: linear-gradient(180deg, #2c211c 0%, #1a110e 100%); border-radius:3px 3px 0 0; box-shadow: inset 0 0 8px rgba(0,0,0,0.4); }
.scn-love-gone .lamp-glow { position:absolute; bottom:35%; left:30%; width:40px; height:50px; background: radial-gradient(circle, #d4a55a 0%, #b07a35 50%, transparent 100%); border-radius:50%; box-shadow: 0 0 60px 20px rgba(212,165,90,0.4), 0 0 120px 30px rgba(212,165,90,0.15); animation: lg-lamp 4s ease-in-out infinite alternate; }
.scn-love-gone .figure { position:absolute; bottom:30%; left:28%; width:28px; height:80px; background: linear-gradient(180deg, #1a1512 0%, #0a0705 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: lg-figure 2.5s ease-in-out infinite; }
.scn-love-gone .shadow { position:absolute; bottom:30%; left:40%; width:60px; height:20px; background: radial-gradient(ellipse, rgba(0,0,0,0.6) 0%, transparent 100%); transform:rotate(-10deg); animation: lg-shadow 3s ease-in-out infinite alternate; }
@keyframes lg-lamp { 0% { opacity:0.7; transform: scale(1) translateY(0); } 50% { opacity:1; transform: scale(1.1) translateY(-2px); } 100% { opacity:0.8; transform: scale(0.95) translateY(1px); } }
@keyframes lg-figure { 0% { transform: translateX(0) translateY(0) rotate(0deg); } 25% { transform: translateX(-2px) translateY(-2px) rotate(-1deg); } 50% { transform: translateX(3px) translateY(-1px) rotate(1deg); } 75% { transform: translateX(-1px) translateY(-3px) rotate(-0.5deg); } 100% { transform: translateX(0) translateY(0) rotate(0deg); } }
@keyframes lg-shadow { 0% { transform: rotate(-10deg) scaleX(1); opacity:0.6; } 50% { transform: rotate(-8deg) scaleX(1.1); opacity:0.8; } 100% { transform: rotate(-12deg) scaleX(0.9); opacity:0.5; } }

/* Scene: wonderful-thing-explained */
.scn-wonderful-thing-explained { background: linear-gradient(180deg, #1f1a2a 0%, #2c2435 40%, #16121f 100%), radial-gradient(ellipse at 50% 90%, #2a1e2a 0%, transparent 70%); }
.scn-wonderful-thing-explained .room-bg { position:absolute; inset:0 0 25% 0; background: linear-gradient(135deg, #1b1628 0%, #261f31 100%); }
.scn-wonderful-thing-explained .table { position:absolute; bottom:25%; left:50%; width:120px; height:20px; transform:translateX(-50%); background: linear-gradient(180deg, #3a2d28 0%, #1f1814 100%); border-radius:4px; box-shadow: 0 4px 8px rgba(0,0,0,0.6); }
.scn-wonderful-thing-explained .candle-glow { position:absolute; bottom:45%; left:50%; width:20px; height:30px; transform:translateX(-50%); background: radial-gradient(circle at 50% 20%, #f0c480 0%, #b07830 60%, transparent 100%); border-radius:50%; box-shadow: 0 0 50px 20px rgba(240,196,128,0.5), 0 0 100px 30px rgba(240,196,128,0.2); animation: we-candle 3s ease-in-out infinite alternate; }
.scn-wonderful-thing-explained .figure-left { position:absolute; bottom:25%; left:30%; width:24px; height:70px; background: linear-gradient(180deg, #1c161a 0%, #0c080a 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: we-figure-l 5s ease-in-out infinite; }
.scn-wonderful-thing-explained .figure-right { position:absolute; bottom:25%; right:30%; width:24px; height:70px; background: linear-gradient(180deg, #1a1418 0%, #0a080a 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: we-figure-r 5s ease-in-out infinite; }
.scn-wonderful-thing-explained .chair-left { position:absolute; bottom:25%; left:25%; width:30px; height:20px; background: linear-gradient(180deg, #2a2220 0%, #191210 100%); border-radius:2px; box-shadow: 0 2px 4px rgba(0,0,0,0.4); animation: we-chair 6s ease-in-out infinite; }
.scn-wonderful-thing-explained .chair-right { position:absolute; bottom:25%; right:25%; width:30px; height:20px; background: linear-gradient(180deg, #2a2220 0%, #191210 100%); border-radius:2px; box-shadow: 0 2px 4px rgba(0,0,0,0.4); animation: we-chair 6s ease-in-out infinite reverse; }
@keyframes we-candle { 0% { opacity:0.7; transform: translateX(-50%) scale(1); } 50% { opacity:1; transform: translateX(-50%) scale(1.15); } 100% { opacity:0.6; transform: translateX(-50%) scale(0.9); } }
@keyframes we-figure-l { 0% { transform: translateX(0) translateY(0) rotate(0deg); } 33% { transform: translateX(-3px) translateY(-2px) rotate(-2deg); } 66% { transform: translateX(2px) translateY(-1px) rotate(1deg); } 100% { transform: translateX(0) translateY(0) rotate(0deg); } }
@keyframes we-figure-r { 0% { transform: translateX(0) translateY(0) rotate(0deg); } 33% { transform: translateX(3px) translateY(-2px) rotate(2deg); } 66% { transform: translateX(-2px) translateY(-1px) rotate(-1deg); } 100% { transform: translateX(0) translateY(0) rotate(0deg); } }
@keyframes we-chair { 0% { transform: translateY(0); } 50% { transform: translateY(-2px); } 100% { transform: translateY(0); } }

/* Scene: sacrifice-and-honour */
.scn-sacrifice-and-honour { background: linear-gradient(180deg, #1b1a28 0%, #2a1f2a 40%, #141015 100%), radial-gradient(ellipse at 30% 60%, #2a2030 0%, transparent 60%); }
.scn-sacrifice-and-honour .wall-shadow { position:absolute; inset:0 0 30% 0; background: linear-gradient(180deg, #1f1e30 0%, #15131f 100%); }
.scn-sacrifice-and-honour .window-frame { position:absolute; top:10%; right:10%; width:80px; height:100px; background: linear-gradient(180deg, #2a2422 0%, #161210 100%); border-radius:6px 6px 0 0; box-shadow: -2px 0 12px rgba(0,0,0,0.6); }
.scn-sacrifice-and-honour .window-pane { position:absolute; top:12%; right:12%; width:70px; height:90px; background: linear-gradient(180deg, #0a0a1a 0%, #1a1a2a 100%); border-radius:4px; }
.scn-sacrifice-and-honour .lamp-hanging { position:absolute; top:5%; left:45%; width:10px; height:40px; background: linear-gradient(180deg, #3a2a2a 0%, #1a1010 100%); border-radius:2px; transform-origin: top center; animation: sh-lamp 4s ease-in-out infinite alternate; }
.scn-sacrifice-and-honour .lamp-light { position:absolute; top:15%; left:45%; width:50px; height:60px; transform:translateX(-50%); background: radial-gradient(circle, #d4b070 0%, #8a6020 50%, transparent 100%); border-radius:50%; box-shadow: 0 0 80px 30px rgba(212,176,112,0.3), 0 0 160px 50px rgba(212,176,112,0.1); animation: sh-glow 3s ease-in-out infinite alternate; }
.scn-sacrifice-and-honour .kneeling-figure { position:absolute; bottom:25%; left:40%; width:30px; height:70px; background: linear-gradient(180deg, #1a1515 0%, #0a0808 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: sh-figure 3.5s ease-in-out infinite; }
.scn-sacrifice-and-honour .shadows-floor { position:absolute; bottom:30%; left:30%; width:120px; height:30px; background: radial-gradient(ellipse, rgba(0,0,0,0.5) 0%, transparent 100%); transform:rotate(5deg); animation: sh-shadow 5s ease-in-out infinite alternate; }
@keyframes sh-lamp { 0% { transform: rotate(-2deg); } 50% { transform: rotate(2deg); } 100% { transform: rotate(-1deg); } }
@keyframes sh-glow { 0% { opacity:0.6; transform: translateX(-50%) scale(1); } 50% { opacity:1; transform: translateX(-50%) scale(1.1) translateY(-3px); } 100% { opacity:0.7; transform: translateX(-50%) scale(0.95); } }
@keyframes sh-figure { 0% { transform: translateY(0) rotate(0deg); } 33% { transform: translateY(-3px) rotate(-2deg); } 66% { transform: translateY(-1px) rotate(1deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes sh-shadow { 0% { transform: rotate(5deg) scaleX(1); opacity:0.5; } 50% { transform: rotate(3deg) scaleX(1.2); opacity:0.7; } 100% { transform: rotate(6deg) scaleX(0.9); opacity:0.4; } }

/* Scene: stranger-revelation */
.scn-stranger-revelation { background: linear-gradient(180deg, #14151f 0%, #1e1e2a 40%, #0e0e14 100%), radial-gradient(ellipse at 30% 50%, #1f1f2a 0%, transparent 70%); }
.scn-stranger-revelation .bg-dark { position:absolute; inset:0; background: linear-gradient(135deg, #12121c 0%, #1a1a24 100%); }
.scn-stranger-revelation .doorway { position:absolute; bottom:25%; left:20%; width:100px; height:140px; background: linear-gradient(180deg, #2a2422 0%, #0f0c0a 100%); border-radius:5px 5px 0 0; box-shadow: 2px 0 20px rgba(0,0,0,0.7); }
.scn-stranger-revelation .figure-standing { position:absolute; bottom:25%; left:22%; width:30px; height:90px; background: linear-gradient(180deg, #1a1415 0%, #0a0808 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: sr-figure 2s ease-in-out infinite; }
.scn-stranger-revelation .hand-reaching { position:absolute; bottom:40%; left:28%; width:20px; height:30px; background: linear-gradient(135deg, #1c1616 0%, #0e0a0a 100%); border-radius:40% 40% 20% 20%; transform-origin: bottom right; animation: sr-hand 1.8s ease-in-out infinite alternate; }
.scn-stranger-revelation .light-shaft { position:absolute; top:10%; left:15%; width:30px; height:80%; background: linear-gradient(180deg, rgba(255,220,180,0.15) 0%, transparent 100%); filter: blur(8px); transform:rotate(-5deg); animation: sr-light 5s ease-in-out infinite alternate; }
.scn-stranger-revelation .dust-mote { position:absolute; top:20%; left:30%; width:4px; height:4px; background: rgba(255,255,255,0.3); border-radius:50%; box-shadow: 0 0 6px 2px rgba(255,255,255,0.2); animation: sr-dust 12s linear infinite; }
@keyframes sr-figure { 0% { transform: translateY(0) rotate(0deg); } 25% { transform: translateY(-2px) rotate(-1deg); } 50% { transform: translateY(-4px) rotate(0deg); } 75% { transform: translateY(-1px) rotate(1deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes sr-hand { 0% { transform: rotate(0deg) translateX(0); } 50% { transform: rotate(15deg) translateX(8px); } 100% { transform: rotate(-5deg) translateX(-2px); } }
@keyframes sr-light { 0% { opacity:0.3; transform: rotate(-5deg) scaleY(1); } 50% { opacity:0.6; transform: rotate(-3deg) scaleY(1.05); } 100% { opacity:0.2; transform: rotate(-7deg) scaleY(0.95); } }
@keyframes sr-dust { 0% { transform: translate(0, 0) scale(1); opacity:0; } 10% { opacity:1; } 90% { opacity:1; } 100% { transform: translate(20px, -30px) scale(0.5); opacity:0; } }

/* widow-confession: tense, bright interior */
.scn-widow-confession {
  background: linear-gradient(180deg, #e8dcc0 0%, #c9b99c 60%, #a48d6f 100%);
  box-shadow: inset 0 0 80px 40px rgba(0,0,0,0.2);
}
.scn-widow-confession .room-wall {
  position:absolute; inset:0 0 40% 0;
  background: linear-gradient(180deg, #d9c9b0 0%, #b8a68a 100%);
  border-bottom: 4px solid #9a886c;
}
.scn-widow-confession .table {
  position:absolute; bottom:10%; left:15%; right:15%; height:25%;
  background: linear-gradient(180deg, #7a624a 0%, #5a4a3a 100%);
  border-radius: 20px 20px 0 0;
  box-shadow: 0 -8px 20px rgba(0,0,0,0.4);
}
.scn-widow-confession .figure-left {
  position:absolute; bottom:30%; left:22%; width:30px; height:70px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: wc-fig-left 5s ease-in-out infinite;
}
.scn-widow-confession .figure-right {
  position:absolute; bottom:28%; right:20%; width:32px; height:68px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: wc-fig-right 6s ease-in-out infinite;
  box-shadow: -8px 0 12px rgba(0,0,0,0.3);
}
.scn-widow-confession .lamp {
  position:absolute; top:18%; left:50%; transform:translateX(-50%);
  width:40px; height:50px;
  background: radial-gradient(circle at 50% 30%, #ffe080 0%, #c89a50 60%, #8a6a30 100%);
  border-radius: 50% 50% 20% 20%;
  box-shadow: 0 0 60px 20px rgba(255,224,128,0.6);
  animation: wc-lamp 2s ease-in-out infinite alternate;
}
.scn-widow-confession .shadow-widow {
  position:absolute; bottom:8%; left:35%; width:120px; height:30px;
  background: radial-gradient(ellipse, rgba(0,0,0,0.5) 0%, transparent 80%);
  filter: blur(6px);
  animation: wc-shadow 7s ease-in-out infinite;
}
.scn-widow-confession .papers {
  position:absolute; bottom:18%; left:40%; width:30px; height:20px;
  background: linear-gradient(135deg, #f0e6d0 0%, #d4c4a0 100%);
  border-radius: 2px;
  box-shadow: 2px 2px 6px rgba(0,0,0,0.3);
  animation: wc-papers 4s ease-in-out infinite alternate;
}
@keyframes wc-fig-left {
  0% { transform: translateX(0) rotate(0deg); }
  50% { transform: translateX(-4px) rotate(-2deg); }
  100% { transform: translateX(2px) rotate(1deg); }
}
@keyframes wc-fig-right {
  0% { transform: translateX(0) rotate(0deg); }
  25% { transform: translateX(6px) rotate(2deg); }
  75% { transform: translateX(-3px) rotate(-1deg); }
  100% { transform: translateX(0) rotate(0deg); }
}
@keyframes wc-lamp {
  0% { opacity: 0.85; box-shadow: 0 0 50px 15px rgba(255,224,128,0.5); }
  100% { opacity: 1; box-shadow: 0 0 70px 30px rgba(255,224,128,0.8); }
}
@keyframes wc-shadow {
  0%,100% { opacity: 0.5; transform: scaleX(1); }
  50% { opacity: 0.8; transform: scaleX(1.1); }
}
@keyframes wc-papers {
  0% { transform: translateY(0) rotate(-2deg); }
  100% { transform: translateY(-3px) rotate(2deg); }
}

/* nora-happy-news: warm, bright interior */
.scn-nora-happy-news {
  background: linear-gradient(180deg, #fff8e7 0%, #f0e0c0 60%, #e0c8a0 100%);
}
.scn-nora-happy-news .sunbeam {
  position:absolute; top:0; left:40%; width:60%; height:100%;
  background: linear-gradient(135deg, rgba(255,240,200,0.6) 0%, transparent 80%);
  clip-path: polygon(0 0, 100% 0, 80% 100%, 20% 100%);
  animation: nhn-sun 8s ease-in-out infinite alternate;
}
.scn-nora-happy-news .window-frame {
  position:absolute; top:10%; left:60%; width:90px; height:110px;
  border: 6px solid #8a7a5a;
  border-radius: 4px;
  background: linear-gradient(180deg, #b8d0e0 0%, #8fb0c0 100%);
  box-shadow: inset 0 0 30px rgba(255,255,200,0.4);
  animation: nhn-window 4s ease-in-out infinite;
}
.scn-nora-happy-news .nora-figure {
  position:absolute; bottom:20%; left:30%; width:28px; height:65px;
  background: linear-gradient(180deg, #d4a870 0%, #b89060 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: nhn-nora 3s ease-in-out infinite;
}
.scn-nora-happy-news .letter {
  position:absolute; bottom:28%; left:40%; width:24px; height:18px;
  background: #f8f0d0;
  border-radius: 1px;
  box-shadow: 2px 2px 6px rgba(0,0,0,0.2);
  transform: rotate(-10deg);
  animation: nhn-letter 5s ease-in-out infinite;
}
.scn-nora-happy-news .chair {
  position:absolute; bottom:12%; left:50%; width:50px; height:40px;
  background: linear-gradient(180deg, #7a624a 0%, #5a4a2a 100%);
  border-radius: 10px 10px 0 0;
  box-shadow: 0 4px 8px rgba(0,0,0,0.3);
}
.scn-nora-happy-news .flowers {
  position:absolute; bottom:15%; left:55%; width:30px; height:30px;
  background: radial-gradient(circle, #f0a0a0 0%, #d07070 40%, #a05050 100%);
  border-radius: 50%;
  box-shadow: 0 0 12px 4px rgba(240,160,160,0.5);
  animation: nhn-flowers 6s ease-in-out infinite alternate;
}
@keyframes nhn-sun {
  0% { opacity: 0.5; transform: translateX(-10px); }
  100% { opacity: 0.9; transform: translateX(10px); }
}
@keyframes nhn-window {
  0%,100% { transform: scaleY(1); }
  50% { transform: scaleY(1.02); }
}
@keyframes nhn-nora {
  0% { transform: translateY(0) rotate(0deg); }
  30% { transform: translateY(-2px) rotate(2deg); }
  70% { transform: translateY(1px) rotate(-1deg); }
  100% { transform: translateY(0) rotate(0deg); }
}
@keyframes nhn-letter {
  0% { transform: rotate(-10deg) translateY(0); }
  50% { transform: rotate(-5deg) translateY(-2px); }
  100% { transform: rotate(-10deg) translateY(0); }
}
@keyframes nhn-flowers {
  0% { transform: scale(0.95); }
  100% { transform: scale(1.05); }
}

/* money-philosophy: calm, bright interior */
.scn-money-philosophy {
  background: linear-gradient(180deg, #d9d4c0 0%, #c4bda0 60%, #a89878 100%);
}
.scn-money-philosophy .room-back {
  position:absolute; inset:0 0 45% 0;
  background: linear-gradient(135deg, #e0d8c0 0%, #c8b898 100%);
}
.scn-money-philosophy .bookshelf {
  position:absolute; top:10%; left:10%; width:80px; height:120px;
  background: linear-gradient(180deg, #6a5a4a 0%, #4a3a2a 100%);
  border-radius: 4px;
  box-shadow: 4px 0 8px rgba(0,0,0,0.2);
}
.scn-money-philosophy .mrs-linde {
  position:absolute; bottom:25%; left:22%; width:30px; height:60px;
  background: linear-gradient(180deg, #4a6a5a 0%, #2a4a3a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: mp-linde 7s ease-in-out infinite;
}
.scn-money-philosophy .nora-talking {
  position:absolute; bottom:22%; right:20%; width:28px; height:64px;
  background: linear-gradient(180deg, #c8a870 0%, #a88850 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: mp-nora 5s ease-in-out infinite;
}
.scn-money-philosophy .coin-pile {
  position:absolute; bottom:12%; left:45%; width:50px; height:20px;
  background: radial-gradient(ellipse at 50% 100%, #f0c040 0%, #b08020 60%, transparent 80%);
  border-radius: 50%;
  box-shadow: 0 0 20px 6px rgba(240,192,64,0.5);
  animation: mp-coins 3s ease-in-out infinite alternate;
}
.scn-money-philosophy .desk-edge {
  position:absolute; bottom:8%; left:10%; right:10%; height:18px;
  background: linear-gradient(180deg, #7a6a5a 0%, #5a4a3a 100%);
  border-radius: 6px 6px 0 0;
}
.scn-money-philosophy .lamp-glow {
  position:absolute; top:15%; left:65%; width:30px; height:40px;
  background: radial-gradient(circle at 50% 50%, #ffe8a0 0%, transparent 70%);
  border-radius: 50%;
  filter: blur(8px);
  animation: mp-lamp 4s ease-in-out infinite alternate;
}
@keyframes mp-linde {
  0% { transform: translateX(0) rotate(0deg); }
  50% { transform: translateX(-3px) rotate(-1deg); }
  100% { transform: translateX(0) rotate(0deg); }
}
@keyframes mp-nora {
  0% { transform: translateY(0) rotate(1deg); }
  30% { transform: translateY(-2px) rotate(-1deg); }
  70% { transform: translateY(1px) rotate(1deg); }
  100% { transform: translateY(0) rotate(1deg); }
}
@keyframes mp-coins {
  0% { transform: scaleY(1); opacity: 0.8; }
  100% { transform: scaleY(1.3); opacity: 1; }
}
@keyframes mp-lamp {
  0% { opacity: 0.6; filter: blur(6px); }
  100% { opacity: 0.9; filter: blur(10px); }
}

/* nora-work-secret: warm, bright interior at desk */
.scn-nora-work-secret {
  background: linear-gradient(180deg, #2a2a3a 0%, #3a2a1a 60%, #1a1a2a 100%);
}
.scn-nora-work-secret .night-outer {
  position:absolute; inset:0 0 65% 0;
  background: linear-gradient(180deg, #1a1a3e 0%, #2a2a4e 100%);
}
.scn-nora-work-secret .desk-surface {
  position:absolute; bottom:20%; left:10%; right:10%; height:25%;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 12px 12px 0 0;
  box-shadow: 0 -10px 30px rgba(0,0,0,0.5);
}
.scn-nora-work-secret .nora-secret {
  position:absolute; bottom:28%; left:35%; width:28px; height:55px;
  background: linear-gradient(180deg, #c8a870 0%, #a88850 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: nws-nora 4s ease-in-out infinite;
}
.scn-nora-work-secret .document {
  position:absolute; bottom:38%; left:42%; width:20px; height:26px;
  background: #f0e0c0;
  border-radius: 2px;
  box-shadow: 2px 2px 6px rgba(0,0,0,0.3);
  transform: rotate(-8deg);
  animation: nws-doc 6s ease-in-out infinite alternate;
}
.scn-nora-work-secret .candle {
  position:absolute; bottom:45%; left:52%; width:8px; height:30px;
  background: linear-gradient(180deg, #f0d8a0 0%, #c8a060 100%);
  border-radius: 2px 2px 4px 4px;
  box-shadow: 0 0 30px 10px rgba(255,200,80,0.6);
  animation: nws-candle 3s ease-in-out infinite alternate;
}
.scn-nora-work-secret .inkwell {
  position:absolute; bottom:38%; left:58%; width:14px; height:16px;
  background: #2a2a3a;
  border-radius: 50% 50% 30% 30%;
  box-shadow: 0 2px 4px rgba(0,0,0,0.5);
}
.scn-nora-work-secret .shadow-large {
  position:absolute; bottom:0; left:20%; right:20%; height:40%;
  background: radial-gradient(ellipse at 50% 0%, rgba(0,0,0,0.7) 0%, transparent 80%);
  filter: blur(10px);
  animation: nws-shadow 10s ease-in-out infinite;
}
.scn-nora-work-secret .clock {
  position:absolute; top:10%; right:15%; width:30px; height:30px;
  border: 3px solid #8a7a5a;
  border-radius: 50%;
  background: radial-gradient(circle, #f0e0c0 0%, #d0c0a0 100%);
  animation: nws-clock 2s linear infinite;
}
@keyframes nws-nora {
  0% { transform: translateY(0) rotate(0deg); }
  50% { transform: translateY(-2px) rotate(2deg); }
  100% { transform: translateY(0) rotate(0deg); }
}
@keyframes nws-doc {
  0% { transform: rotate(-8deg) translateX(0); }
  100% { transform: rotate(5deg) translateX(4px); }
}
@keyframes nws-candle {
  0% { box-shadow: 0 0 20px 5px rgba(255,200,80,0.5); }
  100% { box-shadow: 0 0 35px 15px rgba(255,200,80,0.8); }
}
@keyframes nws-shadow {
  0%,100% { opacity: 0.6; transform: scaleY(1); }
  50% { opacity: 0.9; transform: scaleY(1.1); }
}
@keyframes nws-clock {
  0% { transform: rotate(0deg); }
  100% { transform: rotate(360deg); }
}

.scn-helmer-change-promise { background: linear-gradient(180deg, #1a1412 0%, #2b221c 35%, #3a2e26 100%), radial-gradient(ellipse at 70% 60%, #4a3c32 0%, transparent 60%); position:relative; overflow:hidden; min-height:100vh; }
.scn-helmer-change-promise .door-frame { position:absolute; right:10%; top:10%; width:30%; height:80%; background: linear-gradient(180deg, #2a1f1a 0%, #1a1210 100%); border-radius:8% 8% 0 0; box-shadow: inset 0 0 20px rgba(0,0,0,.6); border:4px solid #3d2b22; }
.scn-helmer-change-promise .wall-left { position:absolute; left:0; top:0; width:60%; height:100%; background: linear-gradient(135deg, #2e241e 0%, #1c1512 100%); box-shadow: inset 0 0 30px rgba(0,0,0,.4); }
.scn-helmer-change-promise .wall-right { position:absolute; right:0; top:0; width:40%; height:100%; background: linear-gradient(135deg, #3d2e26 0%, #241b17 100%); }
.scn-helmer-change-promise .figure-woman { position:absolute; bottom:18%; left:45%; width:14%; height:55%; background: radial-gradient(ellipse at 50% 20%, #2a1f1a 0%, #0d0907 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: hcp-fig 6s ease-in-out infinite; }
.scn-helmer-change-promise .cloak { position:absolute; bottom:20%; left:42%; width:20%; height:40%; background: linear-gradient(180deg, #3d2b1f 0%, #24180f 100%); border-radius: 30% 30% 20% 20% / 50% 50% 20% 20%; transform: rotate(5deg); box-shadow: 0 8px 16px rgba(0,0,0,.5); animation: hcp-cloak 9s ease-in-out infinite; }
.scn-helmer-change-promise .lamp-glow { position:absolute; top:15%; left:35%; width:8%; height:10%; background: radial-gradient(circle, #e8c060 0%, #c09040 40%, transparent 70%); border-radius:50%; filter: blur(8px); animation: hcp-lamp 4s ease-in-out infinite alternate; }
.scn-helmer-change-promise .shadow-floor { position:absolute; bottom:0; left:0; width:100%; height:20%; background: linear-gradient(180deg, transparent 0%, #0a0705 100%); }
@keyframes hcp-fig { 0% { transform: translateX(0) rotate(0deg); } 50% { transform: translateX(-15px) rotate(-2deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes hcp-cloak { 0% { transform: rotate(5deg) scale(1); opacity:0.9; } 50% { transform: rotate(8deg) scale(1.05); opacity:1; } 100% { transform: rotate(5deg) scale(1); opacity:0.9; } }
@keyframes hcp-lamp { 0% { opacity:0.6; transform: scale(0.9); } 100% { opacity:1; transform: scale(1.2); } }

.scn-item-cloak-hat-bag { background: linear-gradient(180deg, #1f1814 0%, #2b211b 50%, #3d2e26 100%), radial-gradient(ellipse at 50% 80%, #4a382e 0%, transparent 60%); position:relative; overflow:hidden; min-height:100vh; }
.scn-item-cloak-hat-bag .table-top { position:absolute; bottom:20%; left:15%; width:70%; height:8%; background: linear-gradient(180deg, #3a2b20 0%, #2a1e15 100%); border-radius:2% 2% 0 0; box-shadow: 0 4px 12px rgba(0,0,0,.6); }
.scn-item-cloak-hat-bag .table-legs { position:absolute; bottom:0; left:20%; width:4%; height:20%; background: linear-gradient(0deg, #1c130e 0%, #2a1e15 100%); border-radius:2px; box-shadow: 30px 0 0 #1c130e, 160px 0 0 #1c130e, 190px 0 0 #1c130e; }
.scn-item-cloak-hat-bag .cloak-fold { position:absolute; bottom:28%; left:20%; width:30%; height:25%; background: linear-gradient(135deg, #3d2b1f 0%, #24180f 100%); border-radius: 20% 30% 10% 20% / 30% 40% 20% 30%; transform: rotate(-5deg); box-shadow: 0 8px 16px rgba(0,0,0,.5); animation: ich-cloak 10s ease-in-out infinite; }
.scn-item-cloak-hat-bag .hat-crown { position:absolute; bottom:32%; left:55%; width:12%; height:18%; background: linear-gradient(180deg, #2a1e15 0%, #1a120c 100%); border-radius:50% 50% 10% 10% / 70% 70% 20% 20%; box-shadow: 0 4px 8px rgba(0,0,0,.4); animation: ich-hat 7s ease-in-out infinite; }
.scn-item-cloak-hat-bag .hat-brim { position:absolute; bottom:28%; left:51%; width:20%; height:6%; background: #1a120c; border-radius:50%; box-shadow: 0 2px 4px rgba(0,0,0,.4); }
.scn-item-cloak-hat-bag .bag-body { position:absolute; bottom:26%; left:42%; width:15%; height:20%; background: linear-gradient(135deg, #2a1e15 0%, #1a120c 100%); border-radius:15% 15% 30% 30% / 20% 20% 30% 30%; box-shadow: 0 6px 12px rgba(0,0,0,.5); animation: ich-bag 12s ease-in-out infinite; }
.scn-item-cloak-hat-bag .bag-handle { position:absolute; bottom:45%; left:46%; width:8%; height:4%; background: transparent; border: 3px solid #3d2b1f; border-radius:50%; border-bottom-color: transparent; animation: ich-handle 4s ease-in-out infinite alternate; }
.scn-item-cloak-hat-bag .candle-glow { position:absolute; top:20%; left:40%; width:10%; height:15%; background: radial-gradient(circle, #ffd080 0%, #e8a040 40%, transparent 70%); border-radius:50%; filter: blur(10px); animation: ich-candle 3s ease-in-out infinite alternate; }
.scn-item-cloak-hat-bag .shadow-fall { position:absolute; bottom:0; left:0; width:100%; height:25%; background: linear-gradient(180deg, transparent 0%, rgba(0,0,0,.6) 100%); }
@keyframes ich-cloak { 0% { transform: rotate(-5deg) scale(1); } 50% { transform: rotate(-3deg) scale(1.03); } 100% { transform: rotate(-5deg) scale(1); } }
@keyframes ich-hat { 0% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-4px) rotate(2deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes ich-bag { 0% { transform: scale(1) rotate(0deg); } 50% { transform: scale(1.02) rotate(1deg); } 100% { transform: scale(1) rotate(0deg); } }
@keyframes ich-handle { 0% { transform: rotate(-5deg); } 100% { transform: rotate(5deg); } }
@keyframes ich-candle { 0% { opacity:0.7; transform: scale(0.9); } 100% { opacity:1; transform: scale(1.1); } }

.scn-item-ring-exchange { background: linear-gradient(180deg, #1f1814 0%, #2b211b 50%, #3d2e26 100%), radial-gradient(ellipse at 50% 40%, #4a382e 0%, transparent 70%); position:relative; overflow:hidden; min-height:100vh; }
.scn-item-ring-exchange .background-dark { position:absolute; inset:0; background: #0d0907; opacity:0.3; }
.scn-item-ring-exchange .table-surface { position:absolute; bottom:25%; left:10%; width:80%; height:10%; background: linear-gradient(180deg, #3a2b20 0%, #2a1e15 100%); border-radius:2% 2% 0 0; box-shadow: 0 4px 12px rgba(0,0,0,.6); }
.scn-item-ring-exchange .hand-left { position:absolute; bottom:38%; left:25%; width:18%; height:30%; background: radial-gradient(ellipse at 50% 30%, #2a1e15 0%, #1a120c 100%); border-radius: 40% 40% 30% 30% / 60% 60% 30% 30%; transform: rotate(-20deg); transform-origin: bottom center; animation: ire-hand-l 5s ease-in-out infinite alternate; }
.scn-item-ring-exchange .hand-right { position:absolute; bottom:38%; right:25%; width:18%; height:30%; background: radial-gradient(ellipse at 50% 30%, #2a1e15 0%, #1a120c 100%); border-radius: 40% 40% 30% 30% / 60% 60% 30% 30%; transform: rotate(20deg); transform-origin: bottom center; animation: ire-hand-r 5s ease-in-out infinite alternate; }
.scn-item-ring-exchange .ring { position:absolute; bottom:42%; left:50%; width:6%; height:6%; background: radial-gradient(circle, #e0c080 0%, #b09850 50%, #8a7030 100%); border-radius:50%; box-shadow: 0 0 12px 4px rgba(224,192,128,.5); transform: translateX(-50%) translateY(-50%); animation: ire-ring 4s ease-in-out infinite alternate; }
.scn-item-ring-exchange .ring-shadow { position:absolute; bottom:39%; left:49%; width:8%; height:4%; background: rgba(0,0,0,.4); border-radius:50%; filter: blur(3px); animation: ire-shadow 4s ease-in-out infinite alternate; }
.scn-item-ring-exchange .lamp-light { position:absolute; top:15%; left:42%; width:16%; height:20%; background: radial-gradient(circle, #e8c060 0%, #c09040 30%, transparent 60%); border-radius:50%; filter: blur(12px); animation: ire-lamp 6s ease-in-out infinite alternate; }
@keyframes ire-hand-l { 0% { transform: rotate(-20deg) translateY(0); } 50% { transform: rotate(-15deg) translateY(-5px); } 100% { transform: rotate(-20deg) translateY(0); } }
@keyframes ire-hand-r { 0% { transform: rotate(20deg) translateY(0); } 50% { transform: rotate(15deg) translateY(-5px); } 100% { transform: rotate(20deg) translateY(0); } }
@keyframes ire-ring { 0% { transform: translateX(-50%) translateY(-50%) scale(1) rotate(0deg); } 50% { transform: translateX(-50%) translateY(-50%) scale(1.1) rotate(10deg); } 100% { transform: translateX(-50%) translateY(-50%) scale(1) rotate(0deg); } }
@keyframes ire-shadow { 0% { opacity:0.5; transform: scale(1); } 50% { opacity:0.8; transform: scale(1.2); } 100% { opacity:0.5; transform: scale(1); } }
@keyframes ire-lamp { 0% { opacity:0.6; transform: scale(0.95); } 100% { opacity:1; transform: scale(1.05); } }

.scn-final-departure { background: linear-gradient(180deg, #0d0907 0%, #1a1210 40%, #2b1f1a 100%), radial-gradient(ellipse at 50% 30%, #3d2e26 0%, transparent 70%); position:relative; overflow:hidden; min-height:100vh; }
.scn-final-departure .doorway-dark { position:absolute; right:5%; top:5%; width:35%; height:90%; background: linear-gradient(180deg, #1a1210 0%, #0d0907 100%); border-radius:10% 10% 0 0; box-shadow: inset 0 0 40px rgba(0,0,0,.8); }
.scn-final-departure .floor-planks { position:absolute; bottom:0; left:0; width:100%; height:15%; background: repeating-linear-gradient(90deg, #1a1210 0px, #2b1f1a 4px, #1a1210 8px); opacity:0.5; }
.scn-final-departure .wall-shadow { position:absolute; left:0; top:0; width:60%; height:100%; background: linear-gradient(90deg, #0d0907 0%, transparent 100%); }
.scn-final-departure .figure-back { position:absolute; bottom:18%; left:20%; width:15%; height:55%; background: radial-gradient(ellipse at 50% 20%, #1a1210 0%, #0d0907 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: fdp-fig 7s ease-in-out infinite; }
.scn-final-departure .bag-carried { position:absolute; bottom:20%; left:25%; width:12%; height:18%; background: linear-gradient(135deg, #2a1e15 0%, #1a120c 100%); border-radius:10% 10% 30% 30% / 20% 20% 30% 30%; box-shadow: 0 4px 8px rgba(0,0,0,.5); animation: fdp-bag 5s ease-in-out infinite alternate; }
.scn-final-departure .light-spill { position:absolute; bottom:0; left:0; width:100%; height:40%; background: linear-gradient(0deg, rgba(200,160,100,0.1) 0%, transparent 100%); animation: fdp-light 8s ease-in-out infinite alternate; }
.scn-final-departure .coat-tail { position:absolute; bottom:18%; left:18%; width:20%; height:40%; background: linear-gradient(135deg, #1a1210 0%, #0d0907 100%); border-radius: 20% 40% 20% 40% / 30% 50% 30% 50%; transform: rotate(10deg); box-shadow: 0 4px 8px rgba(0,0,0,.3); animation: fdp-tail 6s ease-in-out infinite; }
@keyframes fdp-fig { 0% { transform: translateX(0) rotate(0deg); } 50% { transform: translateX(10px) rotate(1deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes fdp-bag { 0% { transform: rotate(0deg) scale(1); } 50% { transform: rotate(-3deg) scale(1.05); } 100% { transform: rotate(0deg) scale(1); } }
@keyframes fdp-light { 0% { opacity:0.2; } 100% { opacity:0.6; } }
@keyframes fdp-tail { 0% { transform: rotate(10deg) scale(1); } 50% { transform: rotate(15deg) scale(1.03); } 100% { transform: rotate(10deg) scale(1); } }

/* --- helmer-nora-return (hnr1) --- */
.scn-helmer-nora-return {
  background: 
    linear-gradient(180deg, #1f1a17 0%, #2a221d 40%, #3a2e25 100%),
    radial-gradient(ellipse at 30% 70%, #4a3a2a 0%, transparent 60%);
}
.scn-helmer-nora-return .doorway {
  position: absolute; inset: 15% 30% 15% 30%;
  border: 8px solid #5a4a3a;
  background: #3a2e25;
  border-radius: 6px;
  box-shadow: inset 0 0 40px rgba(0,0,0,0.6);
}
.scn-helmer-nora-return .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 20%;
  background: linear-gradient(0deg, #2a1e14 0%, #3a2a1a 100%);
}
.scn-helmer-nora-return .light-spill {
  position: absolute; bottom: 25%; left: 20%; width: 60%; height: 40%;
  background: radial-gradient(ellipse 60% 40% at 50% 100%, rgba(200,160,100,0.25) 0%, transparent 100%);
  animation: hnr1-light 4s ease-in-out infinite alternate;
}
.scn-helmer-nora-return .figure-left {
  position: absolute; bottom: 22%; left: 38%; width: 20px; height: 50px;
  background: linear-gradient(180deg, #1a1410 0%, #0e0a08 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: hnr1-pull 3s ease-in-out infinite;
}
.scn-helmer-nora-return .figure-right {
  position: absolute; bottom: 22%; left: 48%; width: 18px; height: 46px;
  background: linear-gradient(180deg, #1a1410 0%, #0e0a08 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: hnr1-resist 3s ease-in-out infinite alternate;
}
.scn-helmer-nora-return .shadows {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, rgba(0,0,0,0.3) 0%, transparent 50%, rgba(0,0,0,0.5) 100%);
  animation: hnr1-shadow 6s ease-in-out infinite;
}
@keyframes hnr1-light {
  0% { opacity:0.6; transform:scale(1) }
  50% { opacity:1; transform:scale(1.1) }
  100% { opacity:0.7; transform:scale(1) }
}
@keyframes hnr1-pull {
  0% { transform: translateX(0) rotate(2deg) scaleY(1) }
  25% { transform: translateX(4px) rotate(0deg) scaleY(1.02) }
  50% { transform: translateX(-2px) rotate(-2deg) scaleY(0.98) }
  75% { transform: translateX(5px) rotate(1deg) scaleY(1.01) }
  100% { transform: translateX(0) rotate(0deg) scaleY(1) }
}
@keyframes hnr1-resist {
  0% { transform: translateX(0) rotate(-3deg) scaleY(1) }
  25% { transform: translateX(-5px) rotate(0deg) scaleY(0.98) }
  50% { transform: translateX(2px) rotate(3deg) scaleY(1.02) }
  75% { transform: translateX(-4px) rotate(-1deg) scaleY(0.99) }
  100% { transform: translateX(0) rotate(0deg) scaleY(1) }
}
@keyframes hnr1-shadow {
  0% { opacity:0.8 }
  50% { opacity:1 }
  100% { opacity:0.8 }
}

/* --- helmer-nora-intimate (hnr2) --- */
.scn-helmer-nora-intimate {
  background: 
    linear-gradient(180deg, #2a221a 0%, #3a2e22 30%, #4a3a2a 60%, #3a2a1a 100%),
    radial-gradient(ellipse at 50% 50%, #5a4a3a 0%, transparent 70%);
}
.scn-helmer-nora-intimate .wall {
  position: absolute; inset: 0;
  background: linear-gradient(135deg, #2a221a 0%, #1f1814 100%);
}
.scn-helmer-nora-intimate .table {
  position: absolute; bottom: 20%; left: 30%; right: 30%; height: 12%;
  background: linear-gradient(180deg, #5a4030 0%, #3a2a1a 100%);
  border-radius: 8px;
  box-shadow: 0 4px 12px rgba(0,0,0,0.5);
  animation: hnr2-table 10s ease-in-out infinite;
}
.scn-helmer-nora-intimate .candle {
  position: absolute; bottom: 36%; left: 50%; width: 8px; height: 16px;
  margin-left: -4px;
  background: linear-gradient(180deg, #d0b080 0%, #b08050 100%);
  border-radius: 4px;
  animation: hnr2-candle 2s ease-in-out infinite alternate;
}
.scn-helmer-nora-intimate .glow {
  position: absolute; bottom: 30%; left: 40%; width: 20%; height: 30%;
  background: radial-gradient(ellipse, rgba(220,180,120,0.25) 0%, transparent 100%);
  animation: hnr2-glow 3s ease-in-out infinite alternate;
}
.scn-helmer-nora-intimate .figure-left {
  position: absolute; bottom: 22%; left: 35%; width: 22px; height: 48px;
  background: linear-gradient(180deg, #1a1410 0%, #0e0a08 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: hnr2-fig-l 5s ease-in-out infinite;
}
.scn-helmer-nora-intimate .figure-right {
  position: absolute; bottom: 22%; right: 35%; width: 20px; height: 44px;
  background: linear-gradient(180deg, #1a1410 0%, #0e0a08 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: hnr2-fig-r 5s ease-in-out infinite 0.5s;
}
@keyframes hnr2-table {
  0% { transform: translateY(0) }
  50% { transform: translateY(-2px) }
  100% { transform: translateY(0) }
}
@keyframes hnr2-candle {
  0% { height:14px; opacity:0.9 }
  50% { height:18px; opacity:1; transform: translateY(-2px) }
  100% { height:14px; opacity:0.9 }
}
@keyframes hnr2-glow {
  0% { opacity:0.5; transform:scale(0.95) }
  50% { opacity:0.8; transform:scale(1.1) }
  100% { opacity:0.5; transform:scale(1) }
}
@keyframes hnr2-fig-l {
  0% { transform: rotate(1deg) translateY(0) }
  25% { transform: rotate(-1deg) translateY(-2px) }
  50% { transform: rotate(2deg) translateY(0) }
  75% { transform: rotate(0deg) translateY(-1px) }
  100% { transform: rotate(1deg) translateY(0) }
}
@keyframes hnr2-fig-r {
  0% { transform: rotate(-1deg) translateY(0) }
  25% { transform: rotate(1deg) translateY(-2px) }
  50% { transform: rotate(-2deg) translateY(0) }
  75% { transform: rotate(0deg) translateY(-1px) }
  100% { transform: rotate(-1deg) translateY(0) }
}

/* --- rank-visit (rv3) --- */
.scn-rank-visit {
  background: 
    linear-gradient(180deg, #1a1412 0%, #2a221e 40%, #362c24 100%),
    radial-gradient(ellipse at 50% 80%, #3a2e26 0%, transparent 70%);
}
.scn-rank-visit .doorway {
  position: absolute; inset: 10% 20% 20% 50%;
  border: 6px solid #4a3a30;
  background: #2a221e;
  border-radius: 4px;
  box-shadow: inset 0 0 30px rgba(0,0,0,0.8);
  animation: rv3-door 8s ease-in-out infinite;
}
.scn-rank-visit .figure-host {
  position: absolute; bottom: 22%; left: 35%; width: 22px; height: 50px;
  background: linear-gradient(180deg, #1a1410 0%, #0e0a08 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: rv3-host 6s ease-in-out infinite;
}
.scn-rank-visit .figure-visitor {
  position: absolute; bottom: 22%; left: 55%; width: 20px; height: 48px;
  background: linear-gradient(180deg, #1a1410 0%, #0e0a08 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: rv3-visitor 6s ease-in-out infinite 1s;
  opacity: 0.8;
}
.scn-rank-visit .room-shadow {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, rgba(0,0,0,0.2) 0%, transparent 30%, rgba(0,0,0,0.6) 100%);
  animation: rv3-shadow 10s ease-in-out infinite;
}
.scn-rank-visit .door-shadow {
  position: absolute; bottom: 20%; left: 50%; width: 8px; height: 60%;
  background: linear-gradient(180deg, rgba(0,0,0,0.5) 0%, transparent 100%);
  transform: skewX(5deg);
  animation: rv3-doorsh 8s ease-in-out infinite;
}
@keyframes rv3-door {
  0% { transform: scaleX(1) translateX(0) }
  30% { transform: scaleX(0.8) translateX(10px) }
  60% { transform: scaleX(1.1) translateX(-5px) }
  100% { transform: scaleX(1) translateX(0) }
}
@keyframes rv3-host {
  0% { transform: translateY(0) rotate(2deg) }
  25% { transform: translateY(-2px) rotate(0deg) }
  50% { transform: translateY(0) rotate(-2deg) }
  75% { transform: translateY(-1px) rotate(1deg) }
  100% { transform: translateY(0) rotate(2deg) }
}
@keyframes rv3-visitor {
  0% { transform: translateX(0) translateY(0) rotate(-3deg); opacity:0.7 }
  20% { transform: translateX(-8px) translateY(-2px) rotate(0deg); opacity:0.9 }
  40% { transform: translateX(-4px) translateY(0) rotate(2deg); opacity:0.8 }
  60% { transform: translateX(-10px) translateY(-1px) rotate(-1deg); opacity:1 }
  80% { transform: translateX(-6px) translateY(0) rotate(0deg); opacity:0.9 }
  100% { transform: translateX(0) translateY(0) rotate(-3deg); opacity:0.7 }
}
@keyframes rv3-shadow {
  0% { opacity:0.7 }
  50% { opacity:1 }
  100% { opacity:0.7 }
}
@keyframes rv3-doorsh {
  0% { opacity:0.6; transform: skewX(5deg) translateX(0) }
  50% { opacity:0.9; transform: skewX(5deg) translateX(6px) }
  100% { opacity:0.6; transform: skewX(5deg) translateX(0) }
}

/* --- item-rank-cards (irc4) --- */
.scn-item-rank-cards {
  background: 
    linear-gradient(180deg, #1a1410 0%, #241e18 50%, #1c1612 100%),
    radial-gradient(ellipse at 50% 60%, #2a221a 0%, transparent 70%);
}
.scn-item-rank-cards .table {
  position: absolute; bottom: 0; left: 0; right: 0; height: 40%;
  background: linear-gradient(180deg, #3a2e24 0%, #1f1811 100%);
  border-radius: 40% 40% 0 0 / 20% 20% 0 0;
}
.scn-item-rank-cards .hand {
  position: absolute; bottom: 25%; left: 40%; width: 30px; height: 40px;
  background: linear-gradient(180deg, #2a1e14 0%, #1a120c 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%;
  transform-origin: bottom center;
  animation: irc4-hand 4s ease-in-out infinite;
}
.scn-item-rank-cards .cards {
  position: absolute; bottom: 28%; left: 42%; width: 24px; height: 34px;
  background: linear-gradient(180deg, #b0a080 0%, #8a7050 100%);
  border-radius: 4px;
  box-shadow: 0 2px 6px rgba(0,0,0,0.5);
  transform: rotate(-8deg);
  animation: irc4-cards 4s ease-in-out infinite alternate;
}
.scn-item-rank-cards .cross {
  position: absolute; bottom: 30%; left: 43.8%; width: 14px; height: 18px;
  background: linear-gradient(180deg, #1a0e0a 0%, #0e0805 100%);
  clip-path: polygon(20% 0%, 80% 0%, 80% 35%, 100% 35%, 100% 65%, 80% 65%, 80% 100%, 20% 100%, 20% 65%, 0% 65%, 0% 35%, 20% 35%);
  opacity: 0.8;
  animation: irc4-cross 6s ease-in-out infinite;
}
.scn-item-rank-cards .candle {
  position: absolute; bottom: 38%; left: 65%; width: 10px; height: 20px;
  background: linear-gradient(180deg, #d0b080 0%, #a08050 100%);
  border-radius: 3px;
  animation: irc4-candle 3s ease-in-out infinite alternate;
}
.scn-item-rank-cards .candle-glow {
  position: absolute; bottom: 30%; left: 55%; width: 18%; height: 30%;
  background: radial-gradient(ellipse, rgba(200,160,100,0.2) 0%, transparent 100%);
  animation: irc4-glow 4s ease-in-out infinite alternate;
}
@keyframes irc4-hand {
  0% { transform: translateX(0) rotate(2deg) }
  25% { transform: translateX(2px) rotate(-2deg) }
  50% { transform: translateX(-1px) rotate(3deg) }
  75% { transform: translateX(1px) rotate(-3deg) }
  100% { transform: translateX(0) rotate(2deg) }
}
@keyframes irc4-cards {
  0% { transform: rotate(-8deg) translateY(0) }
  50% { transform: rotate(-6deg) translateY(-2px) }
  100% { transform: rotate(-10deg) translateY(0) }
}
@keyframes irc4-cross {
  0% { opacity:0.5; transform:scale(1) }
  30% { opacity:0.8; transform:scale(1.1) }
  60% { opacity:0.6; transform:scale(0.95) }
  100% { opacity:0.5; transform:scale(1) }
}
@keyframes irc4-candle {
  0% { height:18px; opacity:0.9 }
  50% { height:22px; opacity:1; transform: translateY(-2px) }
  100% { height:18px; opacity:0.9 }
}
@keyframes irc4-glow {
  0% { opacity:0.3; transform:scale(1) }
  50% { opacity:0.6; transform:scale(1.2) }
  100% { opacity:0.3; transform:scale(1) }
}

.scn-item-fancy-dress-box {
  background: 
    linear-gradient(135deg, #2a1a0e 0%, #3a2a1e 50%, #1a1008 100%),
    radial-gradient(ellipse at 30% 50%, #4a3a2a 0%, transparent 60%);
  position: relative;
  overflow: hidden;
}
.scn-item-fancy-dress-box .wall-left { position:absolute; inset:0 0 0 0; background: linear-gradient(90deg, #2a1a0e 0%, transparent 50%); animation: fdb-wall 20s ease-in-out infinite alternate; }
.scn-item-fancy-dress-box .table { position:absolute; bottom:10%; left:20%; right:20%; height:8%; background: linear-gradient(180deg, #5a3a2a 0%, #3a2210 100%); border-radius: 4px; box-shadow: 0 -2px 8px rgba(0,0,0,.6); animation: fdb-table 12s ease-in-out infinite; }
.scn-item-fancy-dress-box .box { position:absolute; bottom:18%; left:35%; width:30%; height:22%; background: linear-gradient(180deg, #8a6a4a 0%, #5a3a2a 100%); border-radius: 6px; box-shadow: 0 4px 12px rgba(0,0,0,.5), inset 0 1px 0 rgba(255,255,255,.1); animation: fdb-box 15s ease-in-out infinite alternate; }
.scn-item-fancy-dress-box .figure-nurse { position:absolute; bottom:12%; left:30%; width:16%; height:45%; background: linear-gradient(180deg, #3a2a1e 0%, #1a1008 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; box-shadow: 0 0 20px rgba(0,0,0,.4); animation: fdb-nurse 8s ease-in-out infinite; }
.scn-item-fancy-dress-box .lamp-glow { position:absolute; top:15%; left:15%; width:20%; height:40%; background: radial-gradient(ellipse at 50% 100%, #c08040 0%, transparent 70%); filter: blur(8px); opacity: .5; animation: fdb-lamp 6s ease-in-out infinite alternate; }
.scn-item-fancy-dress-box .shadow-floor { position:absolute; bottom:0; left:0; right:0; height:10%; background: linear-gradient(180deg, rgba(0,0,0,.4) 0%, transparent 100%); animation: fdb-shadow 10s linear infinite; }
.scn-item-fancy-dress-box .dust { position:absolute; inset:0; background: radial-gradient(circle at 25% 30%, rgba(200,180,160,.03) 0%, transparent 50%); animation: fdb-dust 25s linear infinite; }

@keyframes fdb-wall { 0% { opacity:.7 } 50% { opacity:.9 } 100% { opacity:.8 } }
@keyframes fdb-table { 0%,100% { transform: translateY(0); } 50% { transform: translateY(-2px); } }
@keyframes fdb-box { 0% { transform: rotate(0deg) scale(1); } 50% { transform: rotate(1deg) scale(1.02); } 100% { transform: rotate(-1deg) scale(0.98); } }
@keyframes fdb-nurse { 0%,100% { transform: translateX(0) rotate(0deg); } 25% { transform: translateX(-3px) rotate(-1deg); } 50% { transform: translateX(2px) rotate(2deg); } 75% { transform: translateX(-1px) rotate(-1deg); } }
@keyframes fdb-lamp { 0% { opacity:.4; transform: scale(1); } 100% { opacity:.7; transform: scale(1.1); } }
@keyframes fdb-shadow { 0% { opacity:.5; } 50% { opacity:.7; } 100% { opacity:.5; } }
@keyframes fdb-dust { 0% { transform: translate(0,0); } 50% { transform: translate(5px,-3px); } 100% { transform: translate(-5px,2px); } }

.scn-nora-asks-about-forgetting {
  background: 
    linear-gradient(180deg, #1a1a2e 0%, #2a2a3e 40%, #1a1a2e 100%),
    radial-gradient(ellipse at 60% 40%, #3a3a5a 0%, transparent 70%);
  position: relative;
  overflow: hidden;
}
.scn-nora-asks-about-forgetting .bg-wall { position:absolute; inset:0; background: linear-gradient(90deg, #1a1a2e 0%, #2a2a3e 50%, #1a1a2e 100%); animation: naf-wall 15s linear infinite alternate; }
.scn-nora-asks-about-forgetting .figure-nora { position:absolute; bottom:15%; left:25%; width:14%; height:50%; background: linear-gradient(180deg, #2a2a4e 0%, #0a0a1e 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: naf-nora 6s ease-in-out infinite; }
.scn-nora-asks-about-forgetting .figure-nurse-right { position:absolute; bottom:15%; right:25%; width:16%; height:48%; background: linear-gradient(180deg, #3a2a3e 0%, #1a0a1e 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: naf-nurse 7s ease-in-out infinite; }
.scn-nora-asks-about-forgetting .lamp-top { position:absolute; top:10%; left:45%; width:10%; height:15%; background: radial-gradient(ellipse at 50% 100%, #c0a060 0%, transparent 60%); box-shadow: 0 0 30px 10px rgba(192,160,96,.2); animation: naf-lamp 8s ease-in-out infinite alternate; }
.scn-nora-asks-about-forgetting .lamp-beam { position:absolute; top:20%; left:42%; width:16%; height:60%; background: linear-gradient(180deg, rgba(192,160,96,.15) 0%, transparent 100%); clip-path: polygon(20% 0, 80% 0, 60% 100%, 40% 100%); animation: naf-beam 4s ease-in-out infinite; }
.scn-nora-asks-about-forgetting .child-silhouette { position:absolute; bottom:10%; left:48%; width:6%; height:20%; background: #0a0a1a; border-radius: 50% 50% 30% 30% / 40% 40% 30% 30%; opacity: .6; animation: naf-child 9s ease-in-out infinite; }
.scn-nora-asks-about-forgetting .cracked-shadow { position:absolute; bottom:0; left:0; right:0; height:15%; background: linear-gradient(180deg, rgba(0,0,0,.6) 0%, transparent 100%); animation: naf-crack 12s linear infinite; }

@keyframes naf-wall { 0% { opacity:.6; } 50% { opacity:.8; } 100% { opacity:.6; } }
@keyframes naf-nora { 0%,100% { transform: translateX(0) scale(1); } 30% { transform: translateX(4px) scale(1.03); } 60% { transform: translateX(-2px) scale(0.97); } }
@keyframes naf-nurse { 0%,100% { transform: translateX(0) rotate(0deg); } 25% { transform: translateX(-3px) rotate(2deg); } 50% { transform: translateX(2px) rotate(-1deg); } 75% { transform: translateX(-1px) rotate(1deg); } }
@keyframes naf-lamp { 0% { transform: scaleY(1); opacity:.5; } 100% { transform: scaleY(1.1); opacity:.8; } }
@keyframes naf-beam { 0%,100% { opacity:.3; transform: rotate(0deg); } 50% { opacity:.6; transform: rotate(2deg); } }
@keyframes naf-child { 0%,100% { transform: translateY(0) scale(1); } 50% { transform: translateY(-2px) scale(1.02); } }
@keyframes naf-crack { 0% { opacity:0; } 50% { opacity:.5; } 100% { opacity:0; } }

.scn-nora-embraces-nurse {
  background: 
    linear-gradient(180deg, #3a2a1a 0%, #5a3a2a 30%, #3a2a1a 100%),
    radial-gradient(ellipse at 50% 40%, #8a6a4a 0%, transparent 60%);
  position: relative;
  overflow: hidden;
}
.scn-nora-embraces-nurse .bg-warm { position:absolute; inset:0; background: linear-gradient(90deg, #3a2a1a 0%, #5a3a2a 50%, #3a2a1a 100%); animation: nen-wall 20s ease-in-out infinite alternate; }
.scn-nora-embraces-nurse .embrace-left { position:absolute; bottom:20%; left:30%; width:18%; height:45%; background: linear-gradient(180deg, #4a2a1a 0%, #2a1a0a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: nen-left 10s ease-in-out infinite; }
.scn-nora-embraces-nurse .embrace-right { position:absolute; bottom:20%; right:30%; width:18%; height:45%; background: linear-gradient(180deg, #5a3a2a 0%, #3a1a0a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: nen-right 10s ease-in-out infinite; }
.scn-nora-embraces-nurse .hearth-glow { position:absolute; bottom:5%; left:40%; width:20%; height:30%; background: radial-gradient(ellipse at 50% 50%, #c08040 0%, transparent 70%); filter: blur(12px); opacity: .6; animation: nen-hearth 5s ease-in-out infinite alternate; }
.scn-nora-embraces-nurse .table-corner { position:absolute; bottom:15%; left:25%; right:25%; height:6%; background: linear-gradient(180deg, #6a4a2a 0%, #3a2a1a 100%); border-radius: 4px; box-shadow: 0 -2px 6px rgba(0,0,0,.5); animation: nen-table 14s ease-in-out infinite; }
.scn-nora-embraces-nurse .wall-texture { position:absolute; inset:0; background: linear-gradient(45deg, transparent 70%, rgba(0,0,0,.05) 100%); animation: nen-texture 30s linear infinite; }
.scn-nora-embraces-nurse .warm-dust { position:absolute; inset:0; background: radial-gradient(circle at 20% 40%, rgba(200,180,140,.03) 0%, transparent 40%); animation: nen-dust 20s linear infinite; }

@keyframes nen-wall { 0% { opacity:.7; } 100% { opacity:.9; } }
@keyframes nen-left { 0%,100% { transform: translateX(0) rotate(0deg); } 30% { transform: translateX(2px) rotate(-2deg); } 60% { transform: translateX(-1px) rotate(1deg); } }
@keyframes nen-right { 0%,100% { transform: translateX(0) rotate(0deg); } 30% { transform: translateX(-2px) rotate(2deg); } 60% { transform: translateX(1px) rotate(-1deg); } }
@keyframes nen-hearth { 0% { opacity:.4; transform: scale(1); } 100% { opacity:.7; transform: scale(1.15); } }
@keyframes nen-table { 0%,100% { transform: translateY(0); } 50% { transform: translateY(-1px); } }
@keyframes nen-texture { 0% { transform: translateX(0); } 100% { transform: translateX(10px); } }
@keyframes nen-dust { 0% { transform: translate(0,0); } 50% { transform: translate(3px,2px); } 100% { transform: translate(-3px,-2px); } }

.scn-mrslinde-arrives {
  background: 
    linear-gradient(180deg, #1a1a2e 0%, #2a2a3e 50%, #1a1a2e 100%),
    radial-gradient(ellipse at 80% 30%, #3a3a5a 0%, transparent 60%);
  position: relative;
  overflow: hidden;
}
.scn-mrslinde-arrives .bg-hall { position:absolute; inset:0; background: linear-gradient(90deg, #1a1a2e 0%, #2a2a3e 40%, #1a1a2e 100%); animation: mla-bg 18s linear infinite alternate; }
.scn-mrslinde-arrives .door-frame { position:absolute; left:5%; top:5%; width:20%; height:90%; background: linear-gradient(180deg, #3a2a3a 0%, #1a1a2e 100%); border-radius: 4px; box-shadow: 0 0 15px rgba(0,0,0,.5); animation: mla-frame 12s ease-in-out infinite; }
.scn-mrslinde-arrives .door-open { position:absolute; left:5%; top:5%; width:18%; height:85%; background: linear-gradient(180deg, #2a2a4e 0%, #0a0a1e 100%); border-radius: 2px; transform-origin: left center; animation: mla-door 6s ease-in-out infinite; }
.scn-mrslinde-arrives .figure-mrslinde { position:absolute; bottom:20%; left:12%; width:12%; height:45%; background: linear-gradient(180deg, #3a2a3e 0%, #1a0a1e 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: mla-mrslinde 8s ease-in-out infinite; }
.scn-mrslinde-arrives .figure-nora-startled { position:absolute; bottom:18%; right:25%; width:14%; height:48%; background: linear-gradient(180deg, #2a2a4e 0%, #0a0a1e 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: mla-nora 4s ease-in-out infinite; }
.scn-mrslinde-arrives .shadow-sweep { position:absolute; bottom:0; left:0; right:0; height:10%; background: linear-gradient(90deg, rgba(0,0,0,.6) 0%, transparent 50%, rgba(0,0,0,.6) 100%); animation: mla-sweep 9s linear infinite; }
.scn-mrslinde-arrives .light-spill { position:absolute; top:5%; left:20%; width:20%; height:70%; background: linear-gradient(135deg, rgba(100,80,120,.1) 0%, transparent 100%); clip-path: polygon(0 0, 100% 0, 80% 100%, 20% 100%); animation: mla-spill 5s ease-in-out infinite alternate; }
.scn-mrslinde-arrives .cloak-drape { position:absolute; bottom:22%; left:10%; width:8%; height:30%; background: linear-gradient(180deg, #2a1a2a 0%, #0a0a1a 100%); border-radius: 50% 50% 30% 30% / 40% 40% 30% 30%; transform: rotate(10deg); animation: mla-cloak 7s ease-in-out infinite; }

@keyframes mla-bg { 0% { opacity:.6; } 50% { opacity:.8; } 100% { opacity:.6; } }
@keyframes mla-frame { 0%,100% { transform: scaleY(1); } 50% { transform: scaleY(1.02); } }
@keyframes mla-door { 0%,100% { transform: rotateY(0deg); } 50% { transform: rotateY(-15deg); } }
@keyframes mla-mrslinde { 0%,100% { transform: translateX(0) rotate(0deg); } 25% { transform: translateX(3px) rotate(-1deg); } 50% { transform: translateX(0) rotate(1deg); } 75% { transform: translateX(-2px) rotate(-1deg); } }
@keyframes mla-nora { 0%,100% { transform: scale(1); } 30% { transform: scale(1.05); } 60% { transform: scale(0.95); } }
@keyframes mla-sweep { 0% { opacity:.3; } 50% { opacity:.6; } 100% { opacity:.3; } }
@keyframes mla-spill { 0% { opacity:.2; transform: rotate(0deg); } 100% { opacity:.5; transform: rotate(3deg); } }
@keyframes mla-cloak { 0%,100% { transform: rotate(10deg) scaleY(1); } 50% { transform: rotate(15deg) scaleY(1.05); } }

/* Krogstad Final Threat - tense dim interior */
.scn-krogstad-final-threat {
  background: linear-gradient(180deg, #1b1a1e 0%, #2a2526 30%, #1e1b1c 70%, #141213 100%),
              radial-gradient(ellipse at 30% 80%, #2f2a2b 0%, transparent 70%);
}
.scn-krogstad-final-threat .wall-bg { position:absolute; inset:0 0 40% 0; background: linear-gradient(180deg, #2b2627 0%, #1f1b1c 100%); }
.scn-krogstad-final-threat .floor { position:absolute; bottom:0; left:0; right:0; height:40%; background: linear-gradient(180deg, #2a2220 0%, #1a1413 100%); border-radius: 20% 10% 0 0; }
.scn-krogstad-final-threat .table { position:absolute; bottom:22%; left:35%; width:70px; height:15px; background: linear-gradient(180deg, #4a3b32 0%, #2e241e 100%); border-radius: 4px; box-shadow: 0 3px 8px rgba(0,0,0,.6); animation: kft-table 6s ease-in-out infinite; }
.scn-krogstad-final-threat .nora-figure { position:absolute; bottom:14%; left:40%; width:24px; height:70px; background: linear-gradient(180deg, #2e2826 0%, #1a1514 100%); border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%; transform-origin: bottom center; animation: kft-nora 4s ease-in-out infinite; }
.scn-krogstad-final-threat .krogstad-figure { position:absolute; bottom:14%; right:25%; width:28px; height:78px; background: linear-gradient(180deg, #1c1a18 0%, #0c0a09 100%); border-radius: 45% 45% 30% 30% / 60% 60% 40% 40%; animation: kft-krogstad 5s ease-in-out infinite; }
.scn-krogstad-final-threat .doorway { position:absolute; bottom:40%; right:20%; width:50px; height:80px; background: linear-gradient(180deg, #0f0d0e 0%, #1a1617 100%); border-radius: 0 0 8% 8%; box-shadow: inset -4px 0 10px rgba(0,0,0,.5); }
.scn-krogstad-final-threat .lamp-glow { position:absolute; bottom:50%; left:50%; width:10px; height:10px; background: radial-gradient(circle, #dbb066 0%, #b07a3a 60%, transparent 100%); border-radius: 50%; box-shadow: 0 0 40px 12px rgba(200,140,60,.6); animation: kft-lamp 2s ease-in-out infinite alternate; }
.scn-krogstad-final-threat .shadow-sharp { position:absolute; bottom:0; left:0; right:0; height:60%; background: linear-gradient(180deg, transparent 0%, rgba(0,0,0,.4) 100%); animation: kft-shadow 8s ease-in-out infinite; }
@keyframes kft-table { 0% { transform: translateX(0) } 25% { transform: translateX(-2px) rotate(.5deg) } 50% { transform: translateX(0) rotate(0) } 75% { transform: translateX(2px) rotate(-.3deg) } 100% { transform: translateX(0) } }
@keyframes kft-nora { 0%,100% { transform: translateY(0) rotate(0) } 20% { transform: translateY(-2px) rotate(1deg) } 40% { transform: translateY(0) rotate(-1deg) } 60% { transform: translateY(-1px) rotate(.5deg) } 80% { transform: translateY(1px) rotate(-.5deg) } }
@keyframes kft-krogstad { 0%,100% { transform: translateX(0) } 30% { transform: translateX(-3px) rotate([.5deg) } 60% { transform: translateX(2px) rotate(-1deg) } 90% { transform: translateX(-1px) rotate(.8deg) } }
@keyframes kft-lamp { 0% { opacity:.7; box-shadow: 0 0 30px 8px rgba(200,140,60,.5) } 50% { opacity:1; box-shadow: 0 0 50px 16px rgba(220,160,80,.8) } 100% { opacity:.8; box-shadow: 0 0 35px 10px rgba(200,140,60,.6) } }
@keyframes kft-shadow { 0%,100% { opacity:.6 } 40% { opacity:.8 } 70% { opacity:.5 } }

/* Nora with Children - calm dim interior */
.scn-nora-with-children {
  background: linear-gradient(180deg, #252225 0%, #1e1b1e 40%, #171417 100%),
              radial-gradient(ellipse at 70% 60%, #2e2a2e 0%, transparent 60%);
}
.scn-nora-with-children .wall-bg { position:absolute; inset:0 0 30% 0; background: linear-gradient(180deg, #2b272b 0%, #1d1a1d 100%); }
.scn-nora-with-children .floor { position:absolute; bottom:0; left:0; right:0; height:30%; background: linear-gradient(180deg, #2a2424 0%, #1a1515 100%); border-radius: 30% 20% 0 0; }
.scn-nora-with-children .tree-base { position:absolute; bottom:20%; left:55%; width:30px; height:60px; background: linear-gradient(180deg, #3a3520 0%, #1a1810 100%); border-radius: 10% 10% 20% 20%; clip-path: polygon(50% 0%, 20% 100%, 80% 100%); animation: nwc-tree 8s ease-in-out infinite; }
.scn-nora-with-children .tree-ornament { position:absolute; bottom:40%; left:57%; width:8px; height:8px; background: radial-gradient(circle, #d0a050 0%, #806020 100%); border-radius: 50%; box-shadow: 0 0 10px 3px rgba(200,160,60,.5); animation: nwc-ornament 4s ease-in-out infinite alternate; }
.scn-nora-with-children .nora-sitting { position:absolute; bottom:10%; left:35%; width:30px; height:50px; background: linear-gradient(180deg, #352e2b 0%, #1d1816 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: nwc-nora 6s ease-in-out infinite; }
.scn-nora-with-children .child-left { position:absolute; bottom:8%; left:28%; width:18px; height:30px; background: linear-gradient(180deg, #2a2420 0%, #14100e 100%); border-radius: 50% 50% 40% 40% / 50% 50% 40% 40%; transform-origin: bottom center; animation: nwc-child 5s ease-in-out infinite; }
.scn-nora-with-children .child-right { position:absolute; bottom:8%; left:48%; width:18px; height:30px; background: linear-gradient(180deg, #2a2420 0%, #14100e 100%); border-radius: 50% 50% 40% 40% / 50% 50% 40% 40%; transform-origin: bottom center; animation: nwc-child 5s ease-in-out infinite reverse; animation-delay: 1s; }
.scn-nora-with-children .soft-light { position:absolute; top:20%; left:40%; width:40px; height:40px; background: radial-gradient(circle, rgba(220,180,140,.3) 0%, rgba(220,180,140,.05) 100%); border-radius: 50%; filter: blur(10px); animation: nwc-light 10s ease-in-out infinite alternate; }
@keyframes nwc-tree { 0%,100% { transform: scale(1) translateY(0) } 50% { transform: scale(1.02) translateY(-2px) } }
@keyframes nwc-ornament { 0% { opacity:.6; transform: scale(1) } 50% { opacity:1; transform: scale(1.3) } 100% { opacity:.8; transform: scale(1.1) } }
@keyframes nwc-nora { 0%,100% { transform: translateY(0) rotate(0) } 30% { transform: translateY(-1px) rotate(2deg) } 60% { transform: translateY(0) rotate(-1deg) } 80% { transform: translateY(1px) rotate(1deg) } }
@keyframes nwc-child { 0%,100% { transform: translateX(0) rotate(0) } 25% { transform: translateX(3px) rotate(5deg) translateY(-2px) } 50% { transform: translateX(-2px) rotate(-3deg) } 75% { transform: translateX(1px) rotate(2deg) translateY(-1px) } }
@keyframes nwc-light { 0% { opacity:.3; transform: scale(1) } 50% { opacity:.5; transform: scale(1.2) } 100% { opacity:.4; transform: scale(1.1) } }

/* Nora alone worried - tense dim interior */
.scn-nora-alone-worried {
  background: linear-gradient(180deg, #1e1c20 0%, #2a262a 30%, #1c181c 70%, #121012 100%),
              radial-gradient(ellipse at 50% 60%, #2e2a2e 0%, transparent 60%);
}
.scn-nora-alone-worried .wall-bg { position:absolute; inset:0 0 35% 0; background: linear-gradient(180deg, #282428 0%, #181518 100%); }
.scn-nora-alone-worried .floor { position:absolute; bottom:0; left:0; right:0; height:35%; background: linear-gradient(180deg, #2a2426 0%, #191415 100%); border-radius: 15% 20% 0 0; }
.scn-nora-alone-worried .work-table { position:absolute; bottom:18%; left:30%; width:60px; height:12px; background: linear-gradient(180deg, #3a3028 0%, #221c18 100%); border-radius: 3px; box-shadow: 0 4px 10px rgba(0,0,0,.5); animation: naw-table 3s ease-in-out infinite; }
.scn-nora-alone-worried .nora-standing { position:absolute; bottom:12%; left:35%; width:22px; height:65px; background: linear-gradient(180deg, #2e2624 0%, #1a1412 100%); border-radius: 50% 50% 40% 40% / 55% 55% 40% 40%; transform-origin: bottom center; animation: naw-nora 4s ease-in-out infinite; }
.scn-nora-alone-worried .christmas-tree { position:absolute; bottom:10%; right:25%; width:40px; height:70px; background: linear-gradient(180deg, #2a2a1e 0%, #14140e 100%); clip-path: polygon(50% 0%, 15% 100%, 85% 100%); animation: naw-tree 6s ease-in-out infinite; }
.scn-nora-alone-worried .doorway-shadow { position:absolute; bottom:35%; right:15%; width:40px; height:60px; background: linear-gradient(180deg, #0e0c0e 0%, #181418 100%); border-radius: 0 0 10% 10%; box-shadow: inset 0 0 15px rgba(0,0,0,.6); }
.scn-nora-alone-worried .candle-flicker { position:absolute; bottom:40%; left:50%; width:8px; height:12px; background: radial-gradient(circle, #e0b060 0%, #a07030 80%); border-radius: 20% 20% 10% 10%; box-shadow: 0 0 20px 6px rgba(200,140,60,.5), 0 0 40px 12px rgba(200,140,60,.2); animation: naw-candle 0.8s ease-in-out infinite alternate; }
@keyframes naw-table { 0%,100% { transform: rotate(0) } 30% { transform: rotate(1deg) translateX(1px) } 60% { transform: rotate(-1deg) translateX(-1px) } }
@keyframes naw-nora { 0% { transform: translateY(0) rotate(-1deg) } 20% { transform: translateY(-3px) rotate(2deg) } 40% { transform: translateY(0) rotate(-2deg) } 60% { transform: translateY(1px) rotate(1deg) } 80% { transform: translateY(-2px) rotate(0) } 100% { transform: translateY(0) rotate(-1deg) } }
@keyframes naw-tree { 0%,100% { transform: scaleY(1) translateY(0) } 50% { transform: scaleY(1.01) translateY(-1px) } }
@keyframes naw-candle { 0% { opacity:.6; transform: scaleY(1) } 50% { opacity:1; transform: scaleY(1.2) scaleX(.9) } 100% { opacity:.7; transform: scaleY(1.1) } }

/* Helmer returns suspicious - tense dim interior */
.scn-helmer-returns-suspicious {
  background: linear-gradient(180deg, #1a191d 0%, #262327 30%, #19161a 70%, #100e12 100%),
              radial-gradient(ellipse at 40% 70%, #2e2a2e 0%, transparent 70%);
}
.scn-helmer-returns-suspicious .wall-bg { position:absolute; inset:0 0 40% 0; background: linear-gradient(180deg, #282528 0%, #1a171a 100%); }
.scn-helmer-returns-suspicious .floor { position:absolute; bottom:0; left:0; right:0; height:40%; background: linear-gradient(180deg, #2b2426 0%, #1a1415 100%); border-radius: 10% 15% 0 0; }
.scn-helmer-returns-suspicious .door-frame { position:absolute; bottom:40%; left:15%; width:50px; height:80px; background: linear-gradient(180deg, #1e1a1c 0%, #120e10 100%); border-radius: 0 0 12% 12%; box-shadow: inset -3px 0 8px rgba(0,0,0,.5); }
.scn-helmer-returns-suspicious .helmer-figure { position:absolute; bottom:18%; left:20%; width:26px; height:72px; background: linear-gradient(180deg, #2c2624 0%, #1a1412 100%); border-radius: 45% 45% 35% 35% / 55% 55% 40% 40%; transform-origin: bottom center; animation: hrs-helmer 5s ease-in-out infinite; }
.scn-helmer-returns-suspicious .nora-figure { position:absolute; bottom:20%; right:25%; width:22px; height:65px; background: linear-gradient(180deg, #2e2624 0%, #1a1412 100%); border-radius: 50% 50% 40% 40% / 55% 55% 40% 40%; animation: hrs-nora 4s ease-in-out infinite; }
.scn-helmer-returns-suspicious .papers-shadow { position:absolute; bottom:30%; left:35%; width:30px; height:20px; background: linear-gradient(180deg, #e0d0c0 0%, #b0a090 100%); border-radius: 2px; box-shadow: 0 2px 6px rgba(0,0,0,.4); animation: hrs-papers 3s ease-in-out infinite alternate; }
.scn-helmer-returns-suspicious .gaslight-pulse { position:absolute; top:15%; left:40%; width:20px; height:20px; background: radial-gradient(circle, #e8b860 0%, #b08030 70%, transparent 100%); border-radius: 50%; box-shadow: 0 0 60px 20px rgba(200,140,60,.4); animation: hrs-gaslight 2s ease-in-out infinite alternate; }
@keyframes hrs-helmer { 0%,100% { transform: translateX(0) rotate(0) } 30% { transform: translateX(-2px) rotate(1deg) translateY(-1px) } 50% { transform: translateX(0) rotate(-1deg) } 70% { transform: translateX(1px) rotate(0) translateY(1px) } }
@keyframes hrs-nora { 0%,100% { transform: translateY(0) rotate(0) } 25% { transform: translateY(-2px) rotate(1.5deg) } 50% { transform: translateY(0) rotate(-1deg) } 75% { transform: translateY(1px) rotate(.5deg) } }
@keyframes hrs-papers { 0% { transform: translateX(0) rotate(0) } 30% { transform: translateX(2px) rotate(2deg) } 60% { transform: translateX(-1px) rotate(-1deg) } 100% { transform: translateX(0) rotate(0) } }
@keyframes hrs-gaslight { 0% { opacity:.6; box-shadow: 0 0 40px 12px rgba(200,140,60,.3) } 50% { opacity:1; box-shadow: 0 0 80px 25px rgba(220,160,80,.6) } 100% { opacity:.7; box-shadow: 0 0 50px 15px rgba(200,140,60,.4) } }

/* Scene: goodbye-scene */
.scn-goodbye-scene {
  background: 
    linear-gradient(180deg, #fce4c8 0%, #e8c9a0 30%, #c9a67a 60%, #a07a4e 100%),
    radial-gradient(ellipse at 70% 80%, #ffd580 0%, transparent 60%);
}
.scn-goodbye-scene .wall-bg {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(90deg, #eddcc0 0%, #f0e0c8 50%, #dcc8a0 100%);
  animation: gb-wall 12s ease-in-out infinite alternate;
}
.scn-goodbye-scene .door-frame {
  position: absolute; bottom: 30%; left: 42%; width: 18%; height: 55%;
  background: linear-gradient(180deg, #8a6e4a 0%, #6a5030 100%);
  border-radius: 2px; box-shadow: inset 0 0 30px rgba(0,0,0,0.25);
}
.scn-goodbye-scene .door-open {
  position: absolute; bottom: 30%; left: 42%; width: 16%; height: 52%;
  background: linear-gradient(135deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 0 4px 4px 0; transform-origin: left center;
  animation: gb-door 6s ease-in-out infinite alternate;
}
.scn-goodbye-scene .cloak-figure {
  position: absolute; bottom: 24%; left: 45%; width: 8%; height: 40%;
  background: linear-gradient(180deg, #6a5040 0%, #4a3222 80%, #2a1a12 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 30% 30%;
  animation: gb-cloak 4s ease-in-out infinite;
}
.scn-goodbye-scene .hat-rack {
  position: absolute; bottom: 34%; left: 65%; width: 3%; height: 35%;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 2px;
}
.scn-goodbye-scene .window-light {
  position: absolute; bottom: 50%; right: 10%; width: 14%; height: 30%;
  background: radial-gradient(ellipse at 50% 50%, #ffe8b0 0%, transparent 100%);
  filter: blur(4px);
  animation: gb-window-light 5s ease-in-out infinite alternate;
}
.scn-goodbye-scene .floor-shadow {
  position: absolute; bottom: 28%; left: 0; right: 0; height: 8%;
  background: linear-gradient(180deg, transparent 0%, rgba(0,0,0,0.15) 100%);
}

@keyframes gb-wall {
  0% { opacity: 0.85; }
  50% { opacity: 1; }
  100% { opacity: 0.8; }
}
@keyframes gb-door {
  0% { transform: rotateY(0deg); }
  50% { transform: rotateY(-40deg); }
  100% { transform: rotateY(0deg); }
}
@keyframes gb-cloak {
  0% { transform: translateX(0) translateY(0); }
  30% { transform: translateX(2%) translateY(-2%); }
  60% { transform: translateX(5%) translateY(0); }
  100% { transform: translateX(0) translateY(0); }
}
@keyframes gb-window-light {
  0% { opacity: 0.5; transform: scale(1); }
  50% { opacity: 1; transform: scale(1.05); }
  100% { opacity: 0.6; transform: scale(1); }
}

/* Scene: children-arrive */
.scn-children-arrive {
  background:
    linear-gradient(180deg, #ffebd0 0%, #f2dbb8 40%, #ccaa80 80%, #a07a4e 100%),
    radial-gradient(ellipse at 30% 80%, #ffe090 0%, transparent 70%);
}
.scn-children-arrive .hall-bg {
  position: absolute; inset: 0;
  background: linear-gradient(135deg, #f4e4cc 0%, #dac4a0 100%);
  animation: ca-hall 10s ease-in-out infinite alternate;
}
.scn-children-arrive .doorway-arch {
  position: absolute; bottom: 30%; left: 15%; width: 22%; height: 55%;
  background: radial-gradient(ellipse at 50% 0%, #b09a7a 0%, #8a6e4a 100%);
  border-radius: 50% 50% 0 0 / 40% 40% 0 0;
  box-shadow: 0 10px 30px rgba(0,0,0,0.2);
}
.scn-children-arrive .mother-figure {
  position: absolute; bottom: 25%; left: 25%; width: 10%; height: 45%;
  background: linear-gradient(180deg, #7a6a5a 0%, #4a3a2a 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%;
  animation: ca-mother 6s ease-in-out infinite;
}
.scn-children-arrive .child-left {
  position: absolute; bottom: 27%; left: 18%; width: 6%; height: 30%;
  background: linear-gradient(180deg, #b08060 0%, #8a6040 100%);
  border-radius: 50% 50% 40% 40% / 50% 50% 30% 30%;
  animation: ca-child-run 3s ease-in-out infinite;
}
.scn-children-arrive .child-right {
  position: absolute; bottom: 28%; left: 22%; width: 6%; height: 28%;
  background: linear-gradient(180deg, #c09070 0%, #9a7050 100%);
  border-radius: 50% 50% 40% 40% / 50% 50% 30% 30%;
  animation: ca-child-run 3s ease-in-out infinite reverse;
}
.scn-children-arrive .nurse-figure {
  position: absolute; bottom: 23%; right: 20%; width: 11%; height: 48%;
  background: linear-gradient(180deg, #5a4a4a 0%, #2a1a1a 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%;
  animation: ca-nurse 7s ease-in-out infinite;
}
.scn-children-arrive .coat-hooks {
  position: absolute; bottom: 40%; right: 30%; width: 2%; height: 20%;
  background: #6a5020;
  border-radius: 1px;
  box-shadow: 4px 0 0 #6a5020, 8px 0 0 #6a5020;
}
.scn-children-arrive .cheek-glows {
  position: absolute; bottom: 33%; left: 19%; width: 3%; height: 3%;
  background: radial-gradient(circle, #d08060 0%, transparent 100%);
  border-radius: 50%;
  animation: ca-glows 2s ease-in-out infinite alternate;
}
.scn-children-arrive .cheek-glows::after {
  content: '';
  position: absolute; left: 35%; bottom: 0; width: 3%; height: 3%;
  background: radial-gradient(circle, #d08060 0%, transparent 100%);
  border-radius: 50%;
  animation: ca-glows 2s ease-in-out infinite alternate 0.5s;
}

@keyframes ca-hall {
  0% { filter: brightness(1); }
  50% { filter: brightness(1.1); }
  100% { filter: brightness(0.95); }
}
@keyframes ca-mother {
  0% { transform: translateY(0) rotate(-2deg); }
  30% { transform: translateY(-3%) rotate(1deg); }
  60% { transform: translateY(0) rotate(0deg); }
  100% { transform: translateY(-1%) rotate(-1deg); }
}
@keyframes ca-child-run {
  0% { transform: translateX(0) rotate(5deg); }
  30% { transform: translateX(4%) rotate(-5deg); }
  60% { transform: translateX(8%) rotate(3deg); }
  100% { transform: translateX(0) rotate(5deg); }
}
@keyframes ca-nurse {
  0% { transform: scale(1); }
  50% { transform: scale(1.02); }
  100% { transform: scale(1); }
}
@keyframes ca-glows {
  0% { opacity: 0.6; transform: scale(1); }
  100% { opacity: 1; transform: scale(1.2); }
}

/* Scene: hide-and-seek-game */
.scn-hide-and-seek-game {
  background:
    linear-gradient(180deg, #fcf4e0 0%, #f0e0c0 40%, #d4b890 80%, #a08a6a 100%),
    radial-gradient(ellipse at 50% 60%, #ffe8b0 0%, transparent 70%);
}
.scn-hide-and-seek-game .room-bg {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, #f4e8d0 0%, #d8c8a8 100%);
  animation: hs-room 8s ease-in-out infinite alternate;
}
.scn-hide-and-seek-game .curtain-left {
  position: absolute; bottom: 20%; left: 5%; width: 15%; height: 60%;
  background: linear-gradient(90deg, #c49a70 0%, #a07a5a 100%);
  border-radius: 0 20% 20% 0 / 0 30% 30% 0;
  animation: hs-curtain 12s ease-in-out infinite;
}
.scn-hide-and-seek-game .curtain-right {
  position: absolute; bottom: 20%; right: 5%; width: 15%; height: 60%;
  background: linear-gradient(90deg, #a07a5a 0%, #c49a70 100%);
  border-radius: 20% 0 0 20% / 30% 0 0 30%;
  animation: hs-curtain 12s ease-in-out infinite 2s;
}
.scn-hide-and-seek-game .child-crouch {
  position: absolute; bottom: 22%; left: 20%; width: 7%; height: 25%;
  background: linear-gradient(180deg, #7a5a3a 0%, #4a2a1a 100%);
  border-radius: 50% 50% 40% 40% / 50% 50% 20% 20%;
  transform: scaleY(0.8);
  animation: hs-crouch 4s ease-in-out infinite;
}
.scn-hide-and-seek-game .child-peek {
  position: absolute; bottom: 26%; right: 20%; width: 6%; height: 28%;
  background: linear-gradient(180deg, #9a7a5a 0%, #6a4a2a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 30% 30%;
  animation: hs-peek 3s ease-in-out infinite alternate;
}
.scn-hide-and-seek-game .scattered-coats {
  position: absolute; bottom: 18%; left: 30%; width: 20%; height: 6%;
  background: linear-gradient(90deg, #6a4a3a 0%, #8a6a4a 30%, #5a3a2a 70%, transparent 100%);
  border-radius: 30%;
  filter: blur(2px);
  animation: hs-coats 6s ease-in-out infinite;
}
.scn-hide-and-seek-game .table-lamp {
  position: absolute; bottom: 35%; left: 55%; width: 4%; height: 20%;
  background: linear-gradient(180deg, #c0a070 0%, #8a6a40 100%);
  border-radius: 30% 30% 10% 10%;
  box-shadow: 0 0 30px 10px #ffd080;
  animation: hs-lamp 5s ease-in-out infinite alternate;
}
.scn-hide-and-seek-game .toy-box {
  position: absolute; bottom: 18%; right: 35%; width: 12%; height: 10%;
  background: linear-gradient(135deg, #8a6a4a 0%, #6a4a2a 100%);
  border-radius: 10%;
  animation: hs-box 7s ease-in-out infinite;
}

@keyframes hs-room {
  0% { filter: saturate(1.1); }
  50% { filter: saturate(1); }
  100% { filter: saturate(1.05); }
}
@keyframes hs-curtain {
  0% { transform: scaleX(1); }
  30% { transform: scaleX(0.9); }
  60% { transform: scaleX(1.05); }
  100% { transform: scaleX(1); }
}
@keyframes hs-crouch {
  0% { transform: translateY(0) scaleY(0.8); }
  30% { transform: translateY(-5%) scaleY(0.85); }
  60% { transform: translateY(0) scaleY(0.8); }
  100% { transform: translateY(2%) scaleY(0.75); }
}
@keyframes hs-peek {
  0% { transform: translateX(0) rotate(0); }
  50% { transform: translateX(-10%) rotate(-10deg); }
  100% { transform: translateX(0) rotate(0); }
}
@keyframes hs-coats {
  0% { opacity: 0.8; transform: translateY(0); }
  50% { opacity: 1; transform: translateY(-2%); }
  100% { opacity: 0.9; transform: translateY(1%); }
}
@keyframes hs-lamp {
  0% { box-shadow: 0 0 20px 5px #ffd080; }
  50% { box-shadow: 0 0 40px 15px #ffd080; }
  100% { box-shadow: 0 0 25px 8px #ffd080; }
}
@keyframes hs-box {
  0% { transform: scale(1); }
  50% { transform: scale(1.03); }
  100% { transform: scale(1); }
}

/* Scene: krogstad-returns */
.scn-krogstad-returns {
  background:
    linear-gradient(180deg, #2a2a2a 0%, #1a1a1a 30%, #0a0a0a 100%),
    radial-gradient(ellipse at 40% 60%, #ffd080 0%, transparent 70%);
}
.scn-krogstad-returns .entrance-bg {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, #3a3a3a 0%, #1a1a1a 100%);
  animation: kr-entrance 6s ease-in-out infinite alternate;
}
.scn-krogstad-returns .door-ajar {
  position: absolute; bottom: 20%; left: 15%; width: 25%; height: 60%;
  background: linear-gradient(135deg, #0a0a0a 0%, #222222 100%);
  border-radius: 0 4px 4px 0;
  transform-origin: left;
  animation: kr-door 5s ease-in-out infinite alternate;
}
.scn-krogstad-returns .krogstad-silhouette {
  position: absolute; bottom: 20%; left: 18%; width: 12%; height: 55%;
  background: #0a0a0a;
  border-radius: 10% 10% 5% 5% / 20% 20% 10% 10%;
  box-shadow: 0 0 40px 10px rgba(0,0,0,0.8);
  animation: kr-krogstad 4s ease-in-out infinite;
}
.scn-krogstad-returns .nora-kneeling {
  position: absolute; bottom: 22%; left: 45%; width: 12%; height: 30%;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 30% 30%;
  transform: scaleY(0.7);
  animation: kr-nora 3s ease-in-out infinite alternate;
}
.scn-krogstad-returns .shadow-sharp {
  position: absolute; bottom: 18%; left: 0; right: 0; height: 15%;
  background: linear-gradient(180deg, transparent 0%, rgba(0,0,0,0.6) 100%);
  clip-path: polygon(0 0, 100% 0, 100% 100%, 0 100%);
}
.scn-krogstad-returns .outer-door-glow {
  position: absolute; bottom: 20%; left: 14%; width: 27%; height: 62%;
  background: radial-gradient(ellipse at 80% 50%, rgba(255,200,100,0.3) 0%, transparent 100%);
  animation: kr-glow 4s ease-in-out infinite alternate;
}
.scn-krogstad-returns .floor-tension {
  position: absolute; bottom: 0; left: 0; right: 0; height: 20%;
  background: linear-gradient(0deg, #0a0a0a 0%, #1a1a1a 100%);
  animation: kr-floor 5s ease-in-out infinite alternate;
}

@keyframes kr-entrance {
  0% { filter: brightness(1); }
  50% { filter: brightness(0.85); }
  100% { filter: brightness(1); }
}
@keyframes kr-door {
  0% { transform: rotateY(0deg); }
  50% { transform: rotateY(-60deg); }
  100% { transform: rotateY(0deg); }
}
@keyframes kr-krogstad {
  0% { transform: translateX(0) scaleX(1); }
  30% { transform: translateX(5%) scaleX(1.1); }
  60% { transform: translateX(2%) scaleX(1); }
  100% { transform: translateX(0) scaleX(1); }
}
@keyframes kr-nora {
  0% { transform: translateY(0) rotate(0); }
  50% { transform: translateY(-5%) rotate(10deg); }
  100% { transform: translateY(0) rotate(-5deg); }
}
@keyframes kr-glow {
  0% { opacity: 0.3; }
  50% { opacity: 0.6; }
  100% { opacity: 0.4; }
}
@keyframes kr-floor {
  0% { opacity: 0.9; }
  50% { opacity: 1; }
  100% { opacity: 0.95; }
}

/* Scene: rank-reveals-illness */
.scn-rank-reveals-illness {
  background: linear-gradient(180deg, #1e1210 0%, #2a1a14 40%, #3a221c 100%), radial-gradient(ellipse at 30% 60%, #4a2a22 0%, transparent 70%);
}
.scn-rank-reveals-illness .shadow-room {
  position: absolute; inset: 0; background: linear-gradient(135deg, #0e0a08 0%, #1a1210 50%, #221515 100%); 
  animation: rri-room 12s ease-in-out infinite alternate;
}
.scn-rank-reveals-illness .stove {
  position: absolute; bottom: 28%; left: 22%; width: 80px; height: 120px; 
  background: linear-gradient(180deg, #5a3a2a 0%, #3a221a 50%, #1e1210 100%); 
  border-radius: 20% 20% 8% 8% / 30% 30% 10% 10%; 
  box-shadow: inset 0 -10px 20px rgba(0,0,0,.6), 0 8px 16px rgba(0,0,0,.4); 
  transform: rotate(-2deg); animation: rri-stove 8s ease-in-out infinite;
}
.scn-rank-reveals-illness .stove-glow {
  position: absolute; bottom: 35%; left: 25%; width: 40px; height: 50px; 
  background: radial-gradient(circle, #c8553d 0%, #8a3020 60%, transparent 100%);
  border-radius: 50%; filter: blur(8px); 
  animation: rri-glow 3s ease-in-out infinite alternate;
}
.scn-rank-reveals-illness .figure-sitting {
  position: absolute; bottom: 24%; left: 52%; width: 60px; height: 100px; 
  background: linear-gradient(180deg, #1a1210 0%, #0e0a08 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; 
  transform-origin: bottom center; 
  animation: rri-sit 4s ease-in-out infinite;
}
.scn-rank-reveals-illness .figure-head {
  position: absolute; bottom: 84%; left: 54%; width: 24px; height: 28px; 
  background: radial-gradient(circle, #1a1210 0%, #0e0a08 100%);
  border-radius: 50%; 
  animation: rri-head 4s ease-in-out infinite;
}
.scn-rank-reveals-illness .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 25%; 
  background: linear-gradient(180deg, #3a221c 0%, #1e1210 100%);
  box-shadow: inset 0 12px 20px rgba(0,0,0,.5);
}
@keyframes rri-room { 0% { opacity: .7 } 50% { opacity: 1 } 100% { opacity: .8 } }
@keyframes rri-stove { 0%, 100% { transform: rotate(-2deg) } 50% { transform: rotate(0deg) } }
@keyframes rri-glow { 0% { opacity: .6; box-shadow: 0 0 20px 4px #c8553d } 50% { opacity: 1; box-shadow: 0 0 40px 12px #a0461a } 100% { opacity: .7; box-shadow: 0 0 25px 6px #c8553d } }
@keyframes rri-sit { 0% { transform: translateY(0) rotate(-2deg) } 25% { transform: translateY(-4px) rotate(0deg) } 75% { transform: translateY(-2px) rotate(1deg) } 100% { transform: translateY(0) rotate(0deg) } }
@keyframes rri-head { 0%, 100% { transform: translateY(0) rotate(-3deg) } 50% { transform: translateY(-2px) rotate(3deg) } }

/* Scene: rank-rambles */
.scn-rank-rambles {
  background: linear-gradient(180deg, #1a1a1e 0%, #2a2226 40%, #3a2a2e 100%), radial-gradient(ellipse at 70% 30%, #3a2a2e 0%, transparent 60%);
}
.scn-rank-rambles .shadow-room {
  position: absolute; inset: 0; background: linear-gradient(135deg, #101014 0%, #1a181c 50%, #26222a 100%);
  animation: rrm-room 15s ease-in-out infinite alternate;
}
.scn-rank-rambles .wallpaper {
  position: absolute; top: 10%; left: 5%; right: 5%; height: 60%; 
  background: repeating-linear-gradient(45deg, rgba(60,40,30,.3) 0px, rgba(60,40,30,.3) 4px, transparent 4px, transparent 8px),
              repeating-linear-gradient(-45deg, rgba(60,40,30,.3) 0px, rgba(60,40,30,.3) 4px, transparent 4px, transparent 8px);
  opacity: .2; animation: rrm-wall 20s linear infinite;
}
.scn-rank-rambles .figure-standing {
  position: absolute; bottom: 24%; left: 60%; width: 44px; height: 130px; 
  background: linear-gradient(180deg, #1a1a22 0%, #0e0e14 100%);
  border-radius: 50% 50% 10% 10% / 60% 60% 20% 20%;
  transform-origin: bottom center; 
  animation: rrm-stand 6s ease-in-out infinite;
}
.scn-rank-rambles .clock-pendulum {
  position: absolute; bottom: 50%; left: 30%; width: 6px; height: 60px; 
  background: linear-gradient(180deg, #8a6a4a 0%, #5a3a2a 100%);
  border-radius: 10%; transform-origin: top center; 
  animation: rrm-pend 3s ease-in-out infinite alternate;
}
.scn-rank-rambles .death-shadow {
  position: absolute; bottom: 20%; left: 50%; width: 120px; height: 140px; 
  background: radial-gradient(ellipse, rgba(20,10,10,.5) 0%, transparent 70%);
  filter: blur(15px); 
  animation: rrm-death 10s ease-in-out infinite alternate;
}
.scn-rank-rambles .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 24%; 
  background: linear-gradient(180deg, #2e1e1a 0%, #1a1210 100%);
  box-shadow: inset 0 8px 16px rgba(0,0,0,.6);
}
@keyframes rrm-room { 0% { opacity: .6 } 50% { opacity: .9 } 100% { opacity: .7 } }
@keyframes rrm-wall { 0% { background-position: 0 0 } 100% { background-position: 40px 40px } }
@keyframes rrm-stand { 0%,100% { transform: translateX(0) rotate(0deg) } 25% { transform: translateX(4px) rotate(-2deg) } 50% { transform: translateX(0) rotate(0deg) } 75% { transform: translateX(-4px) rotate(2deg) } }
@keyframes rrm-pend { 0% { transform: rotate(-15deg) } 50% { transform: rotate(0deg) } 100% { transform: rotate(15deg) } }
@keyframes rrm-death { 0% { opacity: .3; transform: scale(.9) } 50% { opacity: .7; transform: scale(1.1) } 100% { opacity: .4; transform: scale(1) } }

/* Scene: rank-laughs */
.scn-rank-laughs {
  background: linear-gradient(180deg, #2a221e 0%, #3a3028 40%, #4a3c32 100%), radial-gradient(ellipse at 60% 40%, #4a3c32 0%, transparent 70%);
}
.scn-rank-laughs .shadow-room {
  position: absolute; inset: 0; background: linear-gradient(135deg, #1e1a16 0%, #2a241e 50%, #362e26 100%);
  animation: rla-room 10s ease-in-out infinite alternate;
}
.scn-rank-laughs .lamp {
  position: absolute; bottom: 40%; left: 35%; width: 30px; height: 60px; 
  background: linear-gradient(180deg, #6a4a3a 0%, #3a2a1a 100%);
  border-radius: 20% 20% 10% 10% / 30% 30% 10% 10%;
}
.scn-rank-laughs .lamp-glow {
  position: absolute; bottom: 45%; left: 34%; width: 50px; height: 60px; 
  background: radial-gradient(circle, #c8a060 0%, #8a6a30 50%, transparent 100%);
  border-radius: 50%; filter: blur(12px); 
  animation: rla-glow 4s ease-in-out infinite alternate;
}
.scn-rank-laughs .figure-seated {
  position: absolute; bottom: 22%; left: 45%; width: 60px; height: 90px; 
  background: linear-gradient(180deg, #1a161e 0%, #0e0a12 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%;
  transform-origin: bottom center; 
  animation: rla-seat 5s ease-in-out infinite;
}
.scn-rank-laughs .figure-standing-smile {
  position: absolute; bottom: 22%; left: 55%; width: 40px; height: 120px; 
  background: linear-gradient(180deg, #1e1a22 0%, #0e0a14 100%);
  border-radius: 50% 50% 10% 10% / 60% 60% 20% 20%;
  transform-origin: bottom center; 
  animation: rla-stand 4s ease-in-out infinite;
}
.scn-rank-laughs .sofa {
  position: absolute; bottom: 18%; left: 40%; width: 90px; height: 40px; 
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a12 100%);
  border-radius: 20% 20% 10% 10% / 40% 40% 20% 20%;
  box-shadow: inset 0 -6px 10px rgba(0,0,0,.4);
}
.scn-rank-laughs .carpet {
  position: absolute; bottom: 0; left: 10%; right: 10%; height: 20%; 
  background: linear-gradient(180deg, #4a3a32 0%, #2a1e1a 100%);
  border-radius: 30% 30% 0 0 / 60% 60% 0 0;
  box-shadow: inset 0 8px 14px rgba(0,0,0,.4);
}
@keyframes rla-room { 0% { opacity: .7 } 50% { opacity: 1 } 100% { opacity: .8 } }
@keyframes rla-glow { 0% { opacity: .6; box-shadow: 0 0 30px 6px #c8a060 } 50% { opacity: 1; box-shadow: 0 0 50px 12px #e0b870 } 100% { opacity: .7; box-shadow: 0 0 35px 8px #c8a060 } }
@keyframes rla-seat { 0%,100% { transform: translateY(0) rotate(2deg) } 25% { transform: translateY(-3px) rotate(-1deg) } 50% { transform: translateY(-1px) rotate(0deg) } 75% { transform: translateY(-2px) rotate(1deg) } }
@keyframes rla-stand { 0%,100% { transform: rotate(0deg) } 25% { transform: rotate(-4deg) translateY(-2px) } 50% { transform: rotate(0deg) } 75% { transform: rotate(4deg) translateY(-2px) } }

/* Scene: item-silk-stockings */
.scn-item-silk-stockings {
  background: linear-gradient(180deg, #2a1e1a 0%, #3a2a22 40%, #4a3630 100%), radial-gradient(ellipse at 60% 50%, #4a3630 0%, transparent 60%);
}
.scn-item-silk-stockings .shadow-room {
  position: absolute; inset: 0; background: linear-gradient(135deg, #1e1612 0%, #2a221c 50%, #362e28 100%);
  animation: sto-room 14s ease-in-out infinite alternate;
}
.scn-item-silk-stockings .lamp {
  position: absolute; bottom: 30%; left: 25%; width: 34px; height: 70px; 
  background: linear-gradient(180deg, #6a4a3a 0%, #3a2a1a 100%);
  border-radius: 20% 20% 10% 10% / 30% 30% 10% 10%;
  transform: rotate(-10deg);
}
.scn-item-silk-stockings .lamp-glow {
  position: absolute; bottom: 35%; left: 22%; width: 70px; height: 80px; 
  background: radial-gradient(circle, #d0a060 0%, #a07030 50%, transparent 100%);
  border-radius: 50%; filter: blur(15px); 
  animation: sto-glow 3s ease-in-out infinite alternate;
}
.scn-item-silk-stockings .legs {
  position: absolute; bottom: 20%; left: 48%; width: 36px; height: 80px; 
  background: linear-gradient(180deg, #1a1210 0%, #0e0a08 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  transform: rotate(5deg); 
  animation: sto-legs 5s ease-in-out infinite;
}
.scn-item-silk-stockings .skirt-hem {
  position: absolute; bottom: 55%; left: 42%; width: 70px; height: 20px; 
  background: linear-gradient(180deg, #3a2a22 0%, #1e1612 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%;
  transform: rotate(-3deg);
  box-shadow: inset 0 4px 8px rgba(0,0,0,.4);
  animation: sto-skirt 4s ease-in-out infinite;
}
.scn-item-silk-stockings .stocking-texture {
  position: absolute; bottom: 30%; left: 46%; width: 30px; height: 40px; 
  background: repeating-linear-gradient(90deg, transparent 0px, transparent 3px, rgba(200,160,120,.15) 3px, rgba(200,160,120,.15) 4px);
  border-radius: 0 0 30% 30% / 0 0 50% 50%;
  filter: blur(1px);
  animation: sto-text 2s ease-in-out infinite alternate;
}
.scn-item-silk-stockings .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 22%; 
  background: linear-gradient(180deg, #3a2a22 0%, #1e1612 100%);
  box-shadow: inset 0 10px 18px rgba(0,0,0,.5);
}
@keyframes sto-room { 0% { opacity: .6 } 50% { opacity: .9 } 100% { opacity: .7 } }
@keyframes sto-glow { 0% { opacity: .7; box-shadow: 0 0 30px 8px #d0a060 } 50% { opacity: 1; box-shadow: 0 0 50px 16px #e0b870 } 100% { opacity: .8; box-shadow: 0 0 35px 10px #d0a060 } }
@keyframes sto-legs { 0%,100% { transform: rotate(5deg) translateY(0) } 25% { transform: rotate(3deg) translateY(-2px) } 75% { transform: rotate(7deg) translateY(-1px) } }
@keyframes sto-skirt { 0%,100% { transform: rotate(-3deg) } 50% { transform: rotate(0deg) } }
@keyframes sto-text { 0% { opacity: .3 } 100% { opacity: .6 } }

.scn-cat-and-ornament {
  background: linear-gradient(180deg, #f5e6c8 0%, #e8d5a8 50%, #d4b884 100%),
              radial-gradient(ellipse at 70% 20%, #fff5e0 0%, transparent 70%);
}
.scn-cat-and-ornament .wall { position:absolute; inset:0; background: linear-gradient(180deg, #f0dfb8 0%, #dcc39a 100%); }
.scn-cat-and-ornament .window { position:absolute; top:8%; left:20%; width:35%; height:45%; background: linear-gradient(135deg, #b0d4f0 0%, #d0e8ff 100%); border: 8px solid #8c6e4e; border-radius:6px; box-shadow: inset 0 0 30px rgba(255,255,200,0.4); animation: cat-window-glow 8s ease-in-out infinite alternate; }
.scn-cat-and-ornament .curtain-left { position:absolute; top:8%; left:20%; width:12%; height:45%; background: linear-gradient(135deg, #c49a6c 0%, #a87c50 100%); border-radius:0 20px 20px 0; animation: cat-curtain 6s ease-in-out infinite alternate; }
.scn-cat-and-ornament .curtain-right { position:absolute; top:8%; right:45%; width:12%; height:45%; background: linear-gradient(135deg, #c49a6c 0%, #a87c50 100%); border-radius:20px 0 0 20px; animation: cat-curtain 6s ease-in-out infinite alternate-reverse; }
.scn-cat-and-ornament .cat { position:absolute; bottom:15%; left:45%; width:40px; height:50px; background: radial-gradient(ellipse 70% 50% at 50% 60%, #3a2a1a 0%, #2a1a0a 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: cat-sit 4s ease-in-out infinite; }
.scn-cat-and-ornament .ornament { position:absolute; top:30%; left:58%; width:14px; height:20px; background: radial-gradient(circle at 50% 30%, #f0c040 0%, #c08020 100%); border-radius:50% 50% 50% 50% / 60% 60% 40% 40%; box-shadow: 0 0 12px 4px rgba(192,128,32,0.6); animation: cat-swing 3s ease-in-out infinite; }
.scn-cat-and-ornament .table { position:absolute; bottom:10%; left:35%; width:30%; height:6%; background: linear-gradient(180deg, #6a4a2a 0%, #4a2a1a 100%); border-radius:4px; box-shadow: 0 4px 8px rgba(0,0,0,0.3); }
.scn-cat-and-ornament .plant { position:absolute; bottom:12%; left:40%; width:18px; height:30px; background: radial-gradient(ellipse at 50% 20%, #4a8a3a 0%, #2a5a1a 100%); border-radius:50% 50% 40% 40%; animation: cat-bob 5s ease-in-out infinite; }
@keyframes cat-window-glow { 0% { opacity:0.7; filter:brightness(1); } 50% { opacity:1; filter:brightness(1.2); } 100% { opacity:0.8; filter:brightness(1.1); } }
@keyframes cat-curtain { 0% { transform:translateX(0); } 50% { transform:translateX(4px); } 100% { transform:translateX(-2px); } }
@keyframes cat-sit { 0% { transform:translateY(0) rotate(-2deg); } 25% { transform:translateY(-3px) rotate(1deg); } 50% { transform:translateY(0) rotate(2deg); } 75% { transform:translateY(-2px) rotate(-1deg); } 100% { transform:translateY(0) rotate(0deg); } }
@keyframes cat-swing { 0% { transform:rotate(-5deg) translateX(0); } 50% { transform:rotate(5deg) translateX(3px); } 100% { transform:rotate(-3deg) translateX(1px); } }
@keyframes cat-bob { 0% { transform:scale(1) translateY(0); } 50% { transform:scale(1.02) translateY(-2px); } 100% { transform:scale(1) translateY(0); } }

.scn-bell-interrupts {
  background: linear-gradient(180deg, #f5edd6 0%, #e8d8b8 50%, #d4c4a0 100%),
              radial-gradient(ellipse at 50% 30%, #fff8e8 0%, transparent 80%);
}
.scn-bell-interrupts .wall-bg { position:absolute; inset:0; background: linear-gradient(180deg, #ebddc4 0%, #d6c6a8 100%); }
.scn-bell-interrupts .door-frame { position:absolute; top:0; left:30%; width:40%; height:100%; background: linear-gradient(180deg, #8a6e4a 0%, #6a4e2a 100%); border-radius:8px 8px 0 0; box-shadow: inset 0 0 20px rgba(0,0,0,0.2); }
.scn-bell-interrupts .door { position:absolute; top:4%; left:34%; width:32%; height:92%; background: linear-gradient(135deg, #b89a70 0%, #9a7c52 100%); border:2px solid #7a603c; border-radius:4px; transform-origin: left center; animation: bell-door-open 6s ease-in-out infinite; }
.scn-bell-interrupts .bell-rope { position:absolute; top:8%; left:42%; width:2%; height:20%; background: linear-gradient(180deg, #c8a060 0%, #a07848 100%); border-radius:2px; animation: bell-rope 4s ease-in-out infinite; }
.scn-bell-interrupts .bell { position:absolute; top:6%; left:41.5%; width:5%; height:8%; background: radial-gradient(circle at 50% 40%, #f0d080 0%, #c09840 100%); border-radius:50% 50% 40% 40%; box-shadow: 0 0 12px 3px rgba(192,152,64,0.5); animation: bell-ring 4s ease-in-out infinite; }
.scn-bell-interrupts .figure-nora { position:absolute; bottom:8%; left:55%; width:20px; height:60px; background: linear-gradient(180deg, #3a2a1a 0%, #1a120a 100%); border-radius:40% 40% 30% 30% / 50% 50% 30% 30%; transform-origin: bottom center; animation: bell-nora-move 8s ease-in-out infinite; }
.scn-bell-interrupts .chair { position:absolute; bottom:10%; left:60%; width:24px; height:20px; background: linear-gradient(180deg, #5a3a1a 0%, #3a2210 100%); border-radius:6px; transform-origin: bottom center; animation: bell-chair 8s ease-in-out infinite; }
@keyframes bell-door-open { 0% { transform:rotateY(0deg); } 30% { transform:rotateY(-30deg); } 60% { transform:rotateY(0deg); } 100% { transform:rotateY(0deg); } }
@keyframes bell-rope { 0% { transform:translateY(0); } 20% { transform:translateY(10px); } 40% { transform:translateY(0); } 100% { transform:translateY(0); } }
@keyframes bell-ring { 0% { transform:translateX(0) rotate(0); } 15% { transform:translateX(3px) rotate(5deg); } 30% { transform:translateX(-3px) rotate(-5deg); } 45% { transform:translateX(2px) rotate(3deg); } 60% { transform:translateX(0) rotate(0); } 100% { transform:translateX(0) rotate(0); } }
@keyframes bell-nora-move { 0% { transform:translateX(0) translateY(0); } 25% { transform:translateX(-4px) translateY(-2px); } 50% { transform:translateX(2px) translateY(-1px); } 75% { transform:translateX(-3px) translateY(0); } 100% { transform:translateX(0) translateY(0); } }
@keyframes bell-chair { 0% { transform:translateX(0) rotate(0); } 50% { transform:translateX(2px) rotate(2deg); } 100% { transform:translateX(0) rotate(0); } }

.scn-mrs-linde-arrival {
  background: linear-gradient(180deg, #ede1c8 0%, #d8ccb0 50%, #c4b89a 100%),
              radial-gradient(ellipse at 40% 60%, #fff5e0 0%, transparent 70%);
}
.scn-mrs-linde-arrival .hallway { position:absolute; inset:0; background: linear-gradient(135deg, #e4d6b8 0%, #c8b898 100%); }
.scn-mrs-linde-arrival .doorway { position:absolute; top:0; left:50%; width:35%; height:100%; background: linear-gradient(180deg, #806040 0%, #604020 100%); border-radius:12px 12px 0 0; box-shadow: inset 0 0 30px rgba(0,0,0,0.3); }
.scn-mrs-linde-arrival .nora-sil { position:absolute; bottom:10%; left:40%; width:22px; height:70px; background: linear-gradient(180deg, #2a1a0a 0%, #120a04 100%); border-radius:40% 40% 30% 30% / 60% 60% 30% 30%; transform-origin: bottom center; animation: lind-nora 6s ease-in-out infinite alternate; }
.scn-mrs-linde-arrival .linde-sil { position:absolute; bottom:10%; left:55%; width:24px; height:72px; background: linear-gradient(180deg, #3a2a1a 0%, #1a1008 100%); border-radius:40% 40% 30% 30% / 60% 60% 30% 30%; transform-origin: bottom center; animation: lind-linde 6s ease-in-out infinite alternate; }
.scn-mrs-linde-arrival .luggage { position:absolute; bottom:10%; left:52%; width:30px; height:16px; background: linear-gradient(180deg, #6a4a2a 0%, #4a2a12 100%); border-radius:4px; transform-origin: bottom center; animation: lind-lug 8s ease-in-out infinite; }
.scn-mrs-linde-arrival .hatbox { position:absolute; bottom:20%; left:56%; width:20px; height:20px; background: radial-gradient(circle at 50% 50%, #a08060 0%, #705038 100%); border-radius:50%; box-shadow: 0 2px 6px rgba(0,0,0,0.2); animation: lind-hat 8s ease-in-out infinite; }
@keyframes lind-nora { 0% { transform:translateX(0) translateY(0) rotate(-2deg); } 50% { transform:translateX(-3px) translateY(-4px) rotate(1deg); } 100% { transform:translateX(0) translateY(0) rotate(2deg); } }
@keyframes lind-linde { 0% { transform:translateX(0) translateY(0) rotate(2deg); } 50% { transform:translateX(3px) translateY(-3px) rotate(-1deg); } 100% { transform:translateX(0) translateY(0) rotate(-2deg); } }
@keyframes lind-lug { 0% { transform:scale(1) translateY(0); } 50% { transform:scale(1.03) translateY(-2px); } 100% { transform:scale(1) translateY(0); } }
@keyframes lind-hat { 0% { transform:rotate(0) translateY(0); } 50% { transform:rotate(10deg) translateY(-3px); } 100% { transform:rotate(0) translateY(0); } }

.scn-mrs-linde-details {
  background: linear-gradient(180deg, #f0e6c8 0%, #e0d0a8 50%, #cebc94 100%),
              radial-gradient(ellipse at 30% 70%, #ffeedd 0%, transparent 80%);
}
.scn-mrs-linde-details .room-bg { position:absolute; inset:0; background: linear-gradient(135deg, #ece0b8 0%, #d4c498 100%); }
.scn-mrs-linde-details .stove { position:absolute; bottom:5%; left:25%; width:25%; height:35%; background: linear-gradient(180deg, #6a4a2a 0%, #3a2210 100%); border-radius:20% 20% 5% 5%; box-shadow: inset 0 -10px 20px rgba(0,0,0,0.4); }
.scn-mrs-linde-details .fire-glow { position:absolute; bottom:10%; left:30%; width:15%; height:20%; background: radial-gradient(ellipse at 50% 80%, #ff8030 0%, #ff6020 40%, transparent 70%); border-radius:50%; animation: mrsl-fire 3s ease-in-out infinite alternate; }
.scn-mrs-linde-details .figure-left { position:absolute; bottom:10%; left:30%; width:24px; height:65px; background: linear-gradient(180deg, #2a1a0a 0%, #120804 100%); border-radius:45% 45% 35% 35% / 55% 55% 35% 35%; transform-origin: bottom center; animation: mrsl-sit-left 6s ease-in-out infinite; }
.scn-mrs-linde-details .figure-right { position:absolute; bottom:10%; left:42%; width:24px; height:62px; background: linear-gradient(180deg, #3a2a1a 0%, #1a1008 100%); border-radius:45% 45% 35% 35% / 55% 55% 35% 35%; transform-origin: bottom center; animation: mrsl-sit-right 6s ease-in-out infinite; }
.scn-mrs-linde-details .rug { position:absolute; bottom:0; left:20%; width:60%; height:8%; background: linear-gradient(180deg, #8a6a4a 0%, #5a3a22 100%); border-radius:30% 30% 0 0; box-shadow: 0 -4px 12px rgba(0,0,0,0.2); }
.scn-mrs-linde-details .window-snow { position:absolute; top:5%; right:5%; width:30%; height:40%; background: linear-gradient(180deg, #b0c8e0 0%, #d0dff0 100%); border:6px solid #7a5a3a; border-radius:4px; overflow:hidden; }
@keyframes mrsl-fire { 0% { opacity:0.6; transform:scale(1); } 50% { opacity:1; transform:scale(1.05); } 100% { opacity:0.8; transform:scale(0.98); } }
@keyframes mrsl-sit-left { 0% { transform:translateY(0) rotate(-3deg); } 50% { transform:translateY(-4px) rotate(1deg); } 100% { transform:translateY(0) rotate(3deg); } }
@keyframes mrsl-sit-right { 0% { transform:translateY(0) rotate(2deg); } 50% { transform:translateY(-3px) rotate(-2deg); } 100% { transform:translateY(0) rotate(4deg); } }

.scn-helmer-reveals-past-friendship {
  background: 
    linear-gradient(180deg, #2b1d14 0%, #3a2a1e 40%, #1f1510 100%),
    radial-gradient(ellipse at 50% 30%, #4a3222 0%, transparent 60%);
}
.scn-helmer-reveals-past-friendship .wall {
  position: absolute; inset: 0 0 45% 0;
  background: linear-gradient(180deg, #3b2a1f 0%, #251a14 100%);
  animation: hpf-wall 12s ease-in-out infinite alternate;
}
.scn-helmer-reveals-past-friendship .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 45%;
  background: linear-gradient(180deg, #1a110c 0%, #0f0a06 100%);
  border-radius: 30% 30% 0 0 / 20% 20% 0 0;
}
.scn-helmer-reveals-past-friendship .lamp {
  position: absolute; bottom: 45%; left: 50%; width: 8px; height: 40px;
  background: linear-gradient(180deg, #5a3f2b 0%, #3b281a 100%);
  transform: translateX(-50%);
  border-radius: 2px;
}
.scn-helmer-reveals-past-friendship .lamp-glow {
  position: absolute; bottom: 55%; left: 50%; width: 80px; height: 80px;
  transform: translate(-50%, -50%);
  background: radial-gradient(circle, #e8b870 0%, #c8933a 40%, transparent 70%);
  animation: hpf-glow 3s ease-in-out infinite alternate;
  mix-blend-mode: screen;
}
.scn-helmer-reveals-past-friendship .figure-left {
  position: absolute; bottom: 42%; left: 30%; width: 28px; height: 60px;
  background: linear-gradient(180deg, #1a1410 0%, #0d0907 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%;
  transform-origin: bottom center;
  animation: hpf-fig1 6s ease-in-out infinite;
}
.scn-helmer-reveals-past-friendship .figure-right {
  position: absolute; bottom: 42%; right: 30%; width: 28px; height: 58px;
  background: linear-gradient(180deg, #1a1410 0%, #0d0907 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%;
  transform-origin: bottom center;
  animation: hpf-fig2 6s ease-in-out infinite reverse;
}
.scn-helmer-reveals-past-friendship .table {
  position: absolute; bottom: 37%; left: 38%; right: 38%; height: 10px;
  background: linear-gradient(180deg, #3a281c 0%, #1f150f 100%);
  border-radius: 4px;
  box-shadow: 0 4px 8px rgba(0,0,0,.6);
}
.scn-helmer-reveals-past-friendship .letter {
  position: absolute; bottom: 44%; left: 50%; width: 20px; height: 14px;
  background: linear-gradient(135deg, #d9c5a0 0%, #b8a077 50%, #8c7553 100%);
  transform: translateX(-50%) rotate(-5deg);
  border-radius: 2px;
  box-shadow: 0 2px 4px rgba(0,0,0,.4);
  animation: hpf-letter 8s ease-in-out infinite;
}

@keyframes hpf-wall { 0% { opacity: .9 } 50% { opacity: 1 } 100% { opacity: .85 } }
@keyframes hpf-glow { 0% { transform: translate(-50%, -50%) scale(1); opacity: .7 } 50% { transform: translate(-50%, -50%) scale(1.1); opacity: 1 } 100% { transform: translate(-50%, -50%) scale(.95); opacity: .8 } }
@keyframes hpf-fig1 { 0% { transform: rotate(0deg) } 25% { transform: rotate(2deg) translateY(-1px) } 50% { transform: rotate(-1deg) } 75% { transform: rotate(1deg) translateY(0) } 100% { transform: rotate(0deg) } }
@keyframes hpf-fig2 { 0% { transform: rotate(0deg) } 25% { transform: rotate(-1deg) translateY(-1px) } 50% { transform: rotate(2deg) } 75% { transform: rotate(-2deg) translateY(0) } 100% { transform: rotate(0deg) } }
@keyframes hpf-letter { 0%,100% { transform: translateX(-50%) rotate(-5deg) } 50% { transform: translateX(-50%) rotate(5deg) translateY(-2px) } }

.scn-helmer-sends-letter {
  background: 
    linear-gradient(180deg, #2a1e18 0%, #1c1410 40%, #0e0a07 100%),
    radial-gradient(ellipse at 50% 50%, #3a281c 0%, transparent 70%);
}
.scn-helmer-sends-letter .bg-dark {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, #1e1510 0%, #0e0a07 100%);
  animation: hsl-bg 15s ease-in-out infinite alternate;
}
.scn-helmer-sends-letter .desk {
  position: absolute; bottom: 20%; left: 20%; right: 20%; height: 12px;
  background: linear-gradient(180deg, #3a281c 0%, #1f150f 100%);
  border-radius: 4px;
  box-shadow: 0 4px 8px rgba(0,0,0,.6);
}
.scn-helmer-sends-letter .candle {
  position: absolute; bottom: 30%; left: 45%; width: 10px; height: 30px;
  background: linear-gradient(180deg, #c9a86c 0%, #a07949 100%);
  border-radius: 2px;
}
.scn-helmer-sends-letter .flame {
  position: absolute; bottom: 47%; left: 45%; width: 8px; height: 16px;
  margin-left: 1px;
  background: radial-gradient(circle at 50% 50%, #ffdd80 0%, #ffa500 40%, transparent 60%);
  transform: translateX(-50%);
  animation: hsl-flame 0.8s ease-in-out infinite alternate;
  mix-blend-mode: screen;
}
.scn-helmer-sends-letter .hand {
  position: absolute; bottom: 20%; right: 30%; width: 24px; height: 30px;
  background: linear-gradient(180deg, #2a1e18 0%, #1a120e 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform: rotate(-10deg);
  transform-origin: bottom center;
  animation: hsl-hand 4s ease-in-out infinite;
}
.scn-helmer-sends-letter .envelope {
  position: absolute; bottom: 28%; right: 35%; width: 28px; height: 18px;
  background: linear-gradient(135deg, #d9c5a0 0%, #b8a077 50%, #8c7553 100%);
  border-radius: 2px;
  transform: rotate(-5deg);
  box-shadow: 0 2px 6px rgba(0,0,0,.5);
  animation: hsl-env 5s ease-in-out infinite;
}
.scn-helmer-sends-letter .seal {
  position: absolute; bottom: 30%; right: 38%; width: 8px; height: 8px;
  background: radial-gradient(circle, #c8553d 0%, #8c3320 100%);
  border-radius: 50%;
  box-shadow: 0 0 4px rgba(200,85,61,.5);
}
.scn-helmer-sends-letter .shadow-hand {
  position: absolute; bottom: 18%; right: 28%; width: 20px; height: 25px;
  background: rgba(0,0,0,.4);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform: rotate(-15deg) scaleX(-1);
  filter: blur(2px);
  animation: hsl-shadow 4s ease-in-out infinite;
}

@keyframes hsl-bg { 0% { opacity: .8 } 50% { opacity: .95 } 100% { opacity: .85 } }
@keyframes hsl-flame { 0% { transform: translateX(-50%) scaleY(1) scaleX(1); opacity: .9 } 50% { transform: translateX(-50%) scaleY(1.2) scaleX(.8); opacity: 1 } 100% { transform: translateX(-50%) scaleY(1) scaleX(1); opacity: .85 } }
@keyframes hsl-hand { 0%,100% { transform: rotate(-10deg) } 50% { transform: rotate(-5deg) translateY(-1px) } }
@keyframes hsl-env { 0%,100% { transform: rotate(-5deg) } 50% { transform: rotate(8deg) translateY(-2px) } }
@keyframes hsl-shadow { 0%,100% { transform: rotate(-15deg) scaleX(-1); opacity: .4 } 50% { transform: rotate(-10deg) scaleX(-1); opacity: .6 } }

.scn-helmer-comforts-nora {
  background: 
    linear-gradient(180deg, #2d221c 0%, #1c1510 50%, #0f0b07 100%),
    radial-gradient(ellipse at 40% 30%, #4a3526 0%, transparent 70%);
}
.scn-helmer-comforts-nora .wall-soft {
  position: absolute; inset: 0 0 35% 0;
  background: linear-gradient(180deg, #3b2a1f 0%, #241a15 100%);
  animation: hcn-wall 10s ease-in-out infinite alternate;
}
.scn-helmer-comforts-nora .window {
  position: absolute; top: 10%; left: 50%; width: 80px; height: 100px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #3a4a5a 0%, #2a3a4a 100%);
  border: 4px solid #2a1f18;
  border-radius: 8px;
  box-shadow: inset 0 0 20px rgba(0,0,0,.6);
}
.scn-helmer-comforts-nora .curtain-left {
  position: absolute; top: 10%; left: calc(50% - 44px); width: 20px; height: 100px;
  background: linear-gradient(180deg, #4a3526 0%, #2a1f18 100%);
  border-radius: 0 4px 4px 0;
  transform-origin: top left;
  animation: hcn-curtain 8s ease-in-out infinite;
}
.scn-helmer-comforts-nora .curtain-right {
  position: absolute; top: 10%; right: calc(50% - 44px); width: 20px; height: 100px;
  background: linear-gradient(180deg, #4a3526 0%, #2a1f18 100%);
  border-radius: 4px 0 0 4px;
  transform-origin: top right;
  animation: hcn-curtain 8s ease-in-out infinite reverse;
}
.scn-helmer-comforts-nora .figure-helmer {
  position: absolute; bottom: 25%; left: 35%; width: 30px; height: 65px;
  background: linear-gradient(180deg, #1a1410 0%, #0d0907 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%;
  transform-origin: bottom center;
  animation: hcn-helmer 5s ease-in-out infinite;
}
.scn-helmer-comforts-nora .figure-nora {
  position: absolute; bottom: 25%; right: 35%; width: 26px; height: 60px;
  background: linear-gradient(180deg, #1a1410 0%, #0d0907 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%;
  transform-origin: bottom center;
  animation: hcn-nora 5s ease-in-out infinite reverse;
}
.scn-helmer-comforts-nora .rug {
  position: absolute; bottom: 10%; left: 25%; right: 25%; height: 20px;
  background: linear-gradient(180deg, #3a281c 0%, #1f150f 100%);
  border-radius: 50% / 100% 100% 0 0;
  opacity: .7;
}
.scn-helmer-comforts-nora .lamp-small {
  position: absolute; bottom: 35%; left: 20%; width: 6px; height: 30px;
  background: linear-gradient(180deg, #5a3f2b 0%, #2a1f18 100%);
  border-radius: 2px;
}
.scn-helmer-comforts-nora .lamp-small::before {
  content: '';
  position: absolute; top: -8px; left: -8px; width: 22px; height: 22px;
  background: radial-gradient(circle, #e0b060 0%, transparent 60%);
  animation: hcn-lamp 4s ease-in-out infinite alternate;
  mix-blend-mode: screen;
}

@keyframes hcn-wall { 0% { opacity: .85 } 50% { opacity: 1 } 100% { opacity: .9 } }
@keyframes hcn-curtain { 0%,100% { transform: scaleX(1) } 50% { transform: scaleX(1.1) } }
@keyframes hcn-helmer { 0% { transform: rotate(0deg) } 25% { transform: rotate(1deg) translateY(-1px) } 50% { transform: rotate(-1deg) } 75% { transform: rotate(1deg) translateY(0) } 100% { transform: rotate(0deg) } }
@keyframes hcn-nora { 0% { transform: rotate(0deg) } 25% { transform: rotate(-1deg) translateY(-1px) } 50% { transform: rotate(1deg) } 75% { transform: rotate(-1deg) translateY(0) } 100% { transform: rotate(0deg) } }
@keyframes hcn-lamp { 0% { opacity: .6; transform: scale(1) } 50% { opacity: 1; transform: scale(1.05) } 100% { opacity: .7; transform: scale(1) } }

.scn-nora-alone-panicking {
  background: 
    linear-gradient(180deg, #15121a 0%, #0d0a12 40%, #0a0810 100%),
    radial-gradient(ellipse at 50% 30%, #1e1a2a 0%, transparent 60%);
}
.scn-nora-alone-panicking .deep-bg {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, #1a1620 0%, #0d0a10 100%);
  animation: nap-bg 20s ease-in-out infinite alternate;
}
.scn-nora-alone-panicking .door {
  position: absolute; top: 10%; left: 50%; width: 60px; height: 130px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #2a2218 0%, #1a140e 100%);
  border: 2px solid #1a1410;
  border-radius: 2px;
  box-shadow: inset 0 0 20px rgba(0,0,0,.7);
}
.scn-nora-alone-panicking .door-frame {
  position: absolute; top: 8%; left: calc(50% - 34px); width: 68px; height: 134px;
  border: 2px solid #2a1f18;
  border-radius: 4px;
  background: transparent;
}
.scn-nora-alone-panicking .nora-figure {
  position: absolute; bottom: 25%; left: 50%; width: 24px; height: 55px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #1a1410 0%, #0d0907 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%;
  transform-origin: bottom center;
  animation: nap-nora 3s ease-in-out infinite;
}
.scn-nora-alone-panicking .shadow-long {
  position: absolute; bottom: 10%; left: 50%; width: 40px; height: 80px;
  transform: translateX(-50%) rotate(10deg);
  background: linear-gradient(180deg, rgba(0,0,0,.5) 0%, transparent 100%);
  border-radius: 50% 50% 20% 20%;
  filter: blur(3px);
  animation: nap-shadow 3s ease-in-out infinite;
}
.scn-nora-alone-panicking .clock {
  position: absolute; top: 20%; right: 15%; width: 30px; height: 30px;
  background: radial-gradient(circle, #5a4a3a 30%, #2a1f18 70%);
  border-radius: 50%;
  border: 2px solid #3a281c;
  box-shadow: 0 2px 6px rgba(0,0,0,.5);
}
.scn-nora-alone-panicking .clock-pendulum {
  position: absolute; top: 35%; right: 15%; width: 2px; height: 30px;
  background: linear-gradient(180deg, #5a4a3a 0%, #2a1f18 100%);
  transform-origin: top center;
  margin-left: 14px;
  animation: nap-pendulum 1.2s ease-in-out infinite;
}
.scn-nora-alone-panicking .floor-line {
  position: absolute; bottom: 15%; left: 10%; right: 10%; height: 2px;
  background: linear-gradient(90deg, transparent, #3a2a1e 20%, #3a2a1e 80%, transparent);
}

@keyframes nap-bg { 0% { opacity: .7 } 50% { opacity: .9 } 100% { opacity: .75 } }
@keyframes nap-nora { 0%,100% { transform: translateX(-50%) rotate(0deg) } 25% { transform: translateX(-50%) rotate(3deg) translateY(-2px) } 50% { transform: translateX(-50%) rotate(-2deg) translateY(0) } 75% { transform: translateX(-50%) rotate(1deg) translateY(-1px) } }
@keyframes nap-shadow { 0%,100% { transform: translateX(-50%) rotate(10deg) scaleX(1); opacity: .5 } 50% { transform: translateX(-50%) rotate(10deg) scaleX(1.1); opacity: .7 } }
@keyframes nap-pendulum { 0% { transform: rotate(0deg) } 25% { transform: rotate(8deg) } 50% { transform: rotate(0deg) } 75% { transform: rotate(-8deg) } 100% { transform: rotate(0deg) } }

/* mrslinde-helps-with-dress */
.scn-mrslinde-helps-with-dress {
  background: linear-gradient(180deg, #2a1e14 0%, #1a120a 40%, #3a2515 100%), radial-gradient(ellipse at 50% 30%, #4a3a2a 0%, transparent 70%);
}
.scn-mrslinde-helps-with-dress .bg-wall {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a120a 100%);
  animation: mlhwd-wall 15s ease-in-out infinite alternate;
}
.scn-mrslinde-helps-with-dress .bg-shadow {
  position: absolute; inset: 0;
  background: radial-gradient(ellipse at 60% 50%, transparent 40%, rgba(0,0,0,0.4) 80%);
  animation: mlhwd-shadow 12s ease-in-out infinite alternate;
}
.scn-mrslinde-helps-with-dress .figure-left {
  position: absolute; bottom: 20%; left: 25%; width: 45px; height: 90px;
  background: linear-gradient(180deg, #2a1e14 0%, #0e0a06 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: mlhwd-figleft 6s ease-in-out infinite;
}
.scn-mrslinde-helps-with-dress .figure-right {
  position: absolute; bottom: 22%; right: 28%; width: 40px; height: 85px;
  background: linear-gradient(180deg, #1f1610 0%, #0a0805 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: mlhwd-figright 5s ease-in-out infinite;
}
.scn-mrslinde-helps-with-dress .dress {
  position: absolute; bottom: 24%; left: 35%; width: 60px; height: 15px;
  background: linear-gradient(90deg, #3a2a1a, #2a1e14, #3a2a1a);
  border-radius: 20% 20% 10% 10%;
  animation: mlhwd-dress 4s ease-in-out infinite;
}
.scn-mrslinde-helps-with-dress .needle {
  position: absolute; bottom: 30%; left: 40%; width: 2px; height: 14px;
  background: #6b4e3a;
  transform: rotate(30deg);
  animation: mlhwd-needle 2s ease-in-out infinite alternate;
}
.scn-mrslinde-helps-with-dress .lamp {
  position: absolute; bottom: 60%; left: 50%; width: 18px; height: 24px;
  background: radial-gradient(circle at 50% 30%, #d4974a 0%, #8a5e2e 70%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  box-shadow: 0 0 30px 10px rgba(212,151,74,0.5), 0 0 60px 20px rgba(212,151,74,0.2);
  animation: mlhwd-lamp 4s ease-in-out infinite alternate;
}
@keyframes mlhwd-wall {
  0% { opacity: 0.8; filter: brightness(0.9); }
  50% { opacity: 1; filter: brightness(1); }
  100% { opacity: 0.85; filter: brightness(0.95); }
}
@keyframes mlhwd-shadow {
  0% { opacity: 0.6; }
  50% { opacity: 0.4; }
  100% { opacity: 0.7; }
}
@keyframes mlhwd-figleft {
  0% { transform: translateX(0) translateY(0) rotate(-1deg); }
  50% { transform: translateX(3px) translateY(-2px) rotate(1deg); }
  100% { transform: translateX(0) translateY(0) rotate(-1deg); }
}
@keyframes mlhwd-figright {
  0% { transform: translateX(0) translateY(0) rotate(1deg); }
  50% { transform: translateX(-2px) translateY(-2px) rotate(-1deg); }
  100% { transform: translateX(0) translateY(0) rotate(1deg); }
}
@keyframes mlhwd-dress {
  0% { transform: scaleX(1) translateY(0); }
  50% { transform: scaleX(1.03) translateY(-1px); }
  100% { transform: scaleX(1) translateY(0); }
}
@keyframes mlhwd-needle {
  0% { transform: rotate(25deg) translateY(0); }
  50% { transform: rotate(35deg) translateY(-2px); }
  100% { transform: rotate(25deg) translateY(0); }
}
@keyframes mlhwd-lamp {
  0% { box-shadow: 0 0 20px 8px rgba(212,151,74,0.4), 0 0 40px 15px rgba(212,151,74,0.15); opacity: 0.9; }
  50% { box-shadow: 0 0 35px 12px rgba(212,151,74,0.6), 0 0 70px 25px rgba(212,151,74,0.3); opacity: 1; }
  100% { box-shadow: 0 0 25px 10px rgba(212,151,74,0.45), 0 0 50px 18px rgba(212,151,74,0.2); opacity: 0.95; }
}

/* nora-gossips-about-rank */
.scn-nora-gossips-about-rank {
  background: linear-gradient(180deg, #2c2218 0%, #1a1410 50%, #2c2016 100%), radial-gradient(ellipse at 70% 40%, #3a2d1e 0%, transparent 60%);
}
.scn-nora-gossips-about-rank .bg-wall {
  position: absolute; inset: 0 0 35% 0;
  background: linear-gradient(180deg, #3a2d1e 0%, #1a1410 100%);
  animation: ngar-wall 20s ease-in-out infinite alternate;
}
.scn-nora-gossips-about-rank .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #2c2218 0%, #1a1410 100%);
  animation: ngar-floor 15s ease-in-out infinite alternate;
}
.scn-nora-gossips-about-rank .sofa {
  position: absolute; bottom: 20%; left: 30%; width: 80px; height: 40px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1e14 100%);
  border-radius: 8% 8% 20% 20%;
  box-shadow: 0 4px 8px rgba(0,0,0,0.5);
  animation: ngar-sofa 10s ease-in-out infinite;
}
.scn-nora-gossips-about-rank .figure-seated {
  position: absolute; bottom: 25%; left: 35%; width: 35px; height: 55px;
  background: linear-gradient(180deg, #2c2218 0%, #0e0a06 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: ngar-seated 8s ease-in-out infinite;
}
.scn-nora-gossips-about-rank .figure-walking {
  position: absolute; bottom: 15%; right: 20%; width: 30px; height: 70px;
  background: linear-gradient(180deg, #1f1610 0%, #0a0805 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: ngar-walk 5s ease-in-out infinite;
}
.scn-nora-gossips-about-rank .candle {
  position: absolute; bottom: 55%; left: 50%; width: 8px; height: 20px;
  background: linear-gradient(180deg, #d4974a 0%, #8a5e2e 100%);
  border-radius: 50% 50% 10% 10%;
  box-shadow: 0 0 20px 6px rgba(212,151,74,0.5);
  animation: ngar-candle 6s ease-in-out infinite alternate;
}
.scn-nora-gossips-about-rank .shadow-walk {
  position: absolute; bottom: 5%; right: 10%; width: 40px; height: 10px;
  background: rgba(0,0,0,0.3);
  border-radius: 50%;
  filter: blur(3px);
  animation: ngar-shadow 5s ease-in-out infinite;
}
@keyframes ngar-wall {
  0% { opacity: 0.7; }
  50% { opacity: 1; }
  100% { opacity: 0.75; }
}
@keyframes ngar-floor {
  0% { opacity: 0.8; }
  50% { opacity: 1; }
  100% { opacity: 0.85; }
}
@keyframes ngar-sofa {
  0% { transform: translateY(0); }
  50% { transform: translateY(-2px); }
  100% { transform: translateY(0); }
}
@keyframes ngar-seated {
  0% { transform: translateX(0) rotate(-2deg); }
  50% { transform: translateX(2px) rotate(0deg); }
  100% { transform: translateX(0) rotate(-2deg); }
}
@keyframes ngar-walk {
  0% { transform: translateX(0) translateY(0) rotate(-3deg); }
  25% { transform: translateX(10px) translateY(-2px) rotate(2deg); }
  50% { transform: translateX(20px) translateY(0) rotate(-1deg); }
  75% { transform: translateX(10px) translateY(-1px) rotate(3deg); }
  100% { transform: translateX(0) translateY(0) rotate(-3deg); }
}
@keyframes ngar-candle {
  0% { opacity: 0.9; transform: scaleY(1); box-shadow: 0 0 15px 5px rgba(212,151,74,0.3); }
  50% { opacity: 1; transform: scaleY(1.05); box-shadow: 0 0 25px 8px rgba(212,151,74,0.6); }
  100% { opacity: 0.95; transform: scaleY(1); box-shadow: 0 0 18px 6px rgba(212,151,74,0.4); }
}
@keyframes ngar-shadow {
  0% { transform: scaleX(1); opacity: 0.3; }
  50% { transform: scaleX(1.2); opacity: 0.5; }
  100% { transform: scaleX(1); opacity: 0.3; }
}

/* mrslinde-warns-nora */
.scn-mrslinde-warns-nora {
  background: linear-gradient(180deg, #1a1410 0%, #0e0a06 50%, #1a1410 100%), radial-gradient(ellipse at 50% 40%, #2c2016 0%, transparent 60%);
}
.scn-mrslinde-warns-nora .bg-wall {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, #2c2016 0%, #0e0a06 100%);
  animation: mlwn-wall 8s ease-in-out infinite alternate;
}
.scn-mrslinde-warns-nora .bg-shadow {
  position: absolute; inset: 0;
  background: radial-gradient(ellipse at 40% 50%, transparent 30%, rgba(0,0,0,0.5) 80%);
  animation: mlwn-shadow 6s ease-in-out infinite alternate;
}
.scn-mrslinde-warns-nora .table {
  position: absolute; bottom: 20%; left: 30%; width: 100px; height: 12px;
  background: linear-gradient(90deg, #2a1e14 0%, #1a120a 50%, #2a1e14 100%);
  border-radius: 10%;
  animation: mlwn-table 12s ease-in-out infinite;
}
.scn-mrslinde-warns-nora .figure-left {
  position: absolute; bottom: 22%; left: 20%; width: 40px; height: 80px;
  background: linear-gradient(180deg, #1f1610 0%, #0a0805 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: mlwn-figleft 4s ease-in-out infinite;
}
.scn-mrslinde-warns-nora .figure-right {
  position: absolute; bottom: 24%; right: 22%; width: 38px; height: 78px;
  background: linear-gradient(180deg, #2a1e14 0%, #0e0a06 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: mlwn-figright 3.5s ease-in-out infinite;
}
.scn-mrslinde-warns-nora .lamp-flicker {
  position: absolute; bottom: 50%; left: 50%; width: 12px; height: 20px;
  background: radial-gradient(circle at 50% 40%, #c4873a 0%, #6b4226 70%);
  border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%;
  box-shadow: 0 0 40px 15px rgba(196,135,58,0.7), 0 0 80px 30px rgba(196,135,58,0.3);
  animation: mlwn-lamp 2s steps(2) infinite;
}
.scn-mrslinde-warns-nora .glare {
  position: absolute; bottom: 25%; left: 40%; width: 20px; height: 30px;
  background: radial-gradient(circle, rgba(196,135,58,0.3) 0%, transparent 70%);
  filter: blur(4px);
  animation: mlwn-glare 4s ease-in-out infinite alternate;
}
@keyframes mlwn-wall {
  0% { filter: brightness(0.8); }
  50% { filter: brightness(1.1); }
  100% { filter: brightness(0.9); }
}
@keyframes mlwn-shadow {
  0% { opacity: 0.5; }
  50% { opacity: 0.7; }
  100% { opacity: 0.5; }
}
@keyframes mlwn-table {
  0% { transform: translateY(0); }
  50% { transform: translateY(-1px); }
  100% { transform: translateY(0); }
}
@keyframes mlwn-figleft {
  0% { transform: translateX(0) rotate(-3deg); }
  50% { transform: translateX(2px) rotate(3deg); }
  100% { transform: translateX(0) rotate(-3deg); }
}
@keyframes mlwn-figright {
  0% { transform: translateX(0) rotate(2deg); }
  50% { transform: translateX(-2px) rotate(-2deg); }
  100% { transform: translateX(0) rotate(2deg); }
}
@keyframes mlwn-lamp {
  0% { opacity: 0.8; transform: scaleY(0.95); }
  50% { opacity: 1; transform: scaleY(1.05); }
  100% { opacity: 0.85; transform: scaleY(0.95); }
}
@keyframes mlwn-glare {
  0% { opacity: 0.4; transform: scale(1); }
  50% { opacity: 0.8; transform: scale(1.2); }
  100% { opacity: 0.5; transform: scale(1); }
}

/* nora-hints-at-secret-plan */
.scn-nora-hints-at-secret-plan {
  background: linear-gradient(180deg, #1a1410 0%, #0e0a06 50%, #1a1410 100%), radial-gradient(ellipse at 50% 30%, #1f1610 0%, transparent 60%);
}
.scn-nora-hints-at-secret-plan .bg-depth {
  position: absolute; inset: 0;
  background: radial-gradient(ellipse at 50% 40%, #2c2016 0%, transparent 70%);
  animation: nhsp-depth 10s ease-in-out infinite alternate;
}
.scn-nora-hints-at-secret-plan .bg-wall {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #2c2016 0%, #0e0a06 100%);
  animation: nhsp-wall 12s ease-in-out infinite alternate;
}
.scn-nora-hints-at-secret-plan .figure-nora {
  position: absolute; top: 30%; left: 30%; width: 50px; height: 90px;
  background: linear-gradient(180deg, #1f1610 0%, #0a0805 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: nhsp-nora 5s ease-in-out infinite;
}
.scn-nora-hints-at-secret-plan .hand {
  position: absolute; top: 35%; left: 42%; width: 10px; height: 18px;
  background: #2c2016;
  border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%;
  transform: rotate(15deg);
  animation: nhsp-hand 3s ease-in-out infinite alternate;
}
.scn-nora-hints-at-secret-plan .lamp-spot {
  position: absolute; top: 20%; left: 50%; width: 16px; height: 22px;
  background: radial-gradient(circle at 50% 30%, #d4974a 0%, #8a5e2e 70%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  box-shadow: 0 0 45px 18px rgba(212,151,74,0.6), 0 0 90px 35px rgba(212,151,74,0.2);
  animation: nhsp-lamp 3s ease-in-out infinite alternate;
}
.scn-nora-hints-at-secret-plan .shadow-whisper {
  position: absolute; top: 40%; left: 25%; width: 30px; height: 40px;
  background: radial-gradient(ellipse, rgba(0,0,0,0.4) 0%, transparent 70%);
  filter: blur(5px);
  animation: nhsp-shadow 4s ease-in-out infinite alternate;
}
@keyframes nhsp-depth {
  0% { opacity: 0.6; }
  50% { opacity: 1; }
  100% { opacity: 0.7; }
}
@keyframes nhsp-wall {
  0% { filter: brightness(0.7); }
  50% { filter: brightness(1); }
  100% { filter: brightness(0.8); }
}
@keyframes nhsp-nora {
  0% { transform: translateX(0) rotate(-2deg); }
  50% { transform: translateX(4px) rotate(2deg); }
  100% { transform: translateX(0) rotate(-2deg); }
}
@keyframes nhsp-hand {
  0% { transform: rotate(10deg) translateX(0); }
  50% { transform: rotate(20deg) translateX(3px); }
  100% { transform: rotate(10deg) translateX(0); }
}
@keyframes nhsp-lamp {
  0% { box-shadow: 0 0 30px 12px rgba(212,151,74,0.4), 0 0 60px 20px rgba(212,151,74,0.15); opacity: 0.8; }
  50% { box-shadow: 0 0 50px 20px rgba(212,151,74,0.7), 0 0 100px 40px rgba(212,151,74,0.3); opacity: 1; }
  100% { box-shadow: 0 0 35px 14px rgba(212,151,74,0.5), 0 0 70px 25px rgba(212,151,74,0.2); opacity: 0.9; }
}
@keyframes nhsp-shadow {
  0% { opacity: 0.2; transform: scale(0.8); }
  50% { opacity: 0.5; transform: scale(1.1); }
  100% { opacity: 0.3; transform: scale(0.9); }
}

/* Scene: nora-panics-before-krogstad */
.scn-nora-panics-before-krogstad {
  background:
    radial-gradient(ellipse at 30% 60%, #2a1e14 0%, transparent 60%),
    linear-gradient(180deg, #0e0b0a 0%, #1a1410 40%, #0e0b0a 100%);
}
.scn-nora-panics-before-krogstad .bg-wall { position:absolute; inset:0 0 45% 0; background:linear-gradient(180deg, #2a201a 0%, #1a1410 100%); animation: np-bgwall 8s ease-in-out infinite alternate; }
.scn-nora-panics-before-krogstad .bg-floor { position:absolute; bottom:0; left:0; right:0; height:45%; background:linear-gradient(180deg, #1f1814 0%, #0f0c0a 100%); }
.scn-nora-panics-before-krogstad .door { position:absolute; bottom:35%; left:22%; width:75px; height:100px; background:linear-gradient(180deg, #3a2b1e 0%, #1e1610 100%); border-radius: 4px; box-shadow: inset 0 2px 6px rgba(0,0,0,0.6), 0 8px 16px rgba(0,0,0,0.5); transform-origin: left center; animation: np-door 6s ease-in-out infinite alternate; }
.scn-nora-panics-before-krogstad .door-frame { position:absolute; bottom:35%; left:21%; width:8px; height:104px; background:#2a1e14; border-radius:2px; }
.scn-nora-panics-before-krogstad .lamp-glow { position:absolute; bottom:40%; right:25%; width:60px; height:60px; background:radial-gradient(circle, #e8b060 0%, #b07030 50%, transparent 70%); border-radius:50%; mix-blend-mode: screen; animation: np-lamp 4s ease-in-out infinite alternate; }
.scn-nora-panics-before-krogstad .figure-krogstad { position:absolute; bottom:32%; left:30%; width:45px; height:70px; background:linear-gradient(180deg, #1e1a14 0%, #0a0806 100%); border-radius: 40% 40% 30% 30% / 60% 60% 30% 30%; transform: rotate(5deg); animation: np-walk 10s ease-in-out infinite; }
.scn-nora-panics-before-krogstad .figure-nora { position:absolute; bottom:33%; left:12%; width:30px; height:55px; background:linear-gradient(180deg, #1a1412 0%, #0e0a08 100%); border-radius: 45% 45% 35% 35% / 60% 60% 35% 35%; animation: np-cower 8s ease-in-out infinite alternate; }
.scn-nora-panics-before-krogstad .table { position:absolute; bottom:35%; right:18%; width:60px; height:10px; background: #2a201a; border-radius: 4px; box-shadow: 0 4px 8px rgba(0,0,0,0.3); }
@keyframes np-bgwall { 0% { opacity:0.8; } 50% { opacity:1; } 100% { opacity:0.7; } }
@keyframes np-door { 0% { transform: rotate(0deg); } 30% { transform: rotate(-15deg); } 70% { transform: rotate(-5deg); } 100% { transform: rotate(0deg); } }
@keyframes np-lamp { 0% { opacity:0.5; transform:scale(0.95); } 50% { opacity:0.9; transform:scale(1.05); } 100% { opacity:0.6; transform:scale(0.98); } }
@keyframes np-walk { 0% { transform:translateX(0) rotate(5deg); } 25% { transform:translateX(5px) rotate(3deg); } 50% { transform:translateX(10px) rotate(0deg); } 75% { transform:translateX(15px) rotate(-2deg); } 100% { transform:translateX(20px) rotate(-5deg); } }
@keyframes np-cower { 0% { transform:scale(1) translateX(0); } 50% { transform:scale(0.9) translateX(-4px); } 100% { transform:scale(1) translateX(0); } }

/* Scene: krogstad-threatens-reveal */
.scn-krogstad-threatens-reveal {
  background:
    radial-gradient(ellipse at 70% 40%, #fff5e6 0%, transparent 50%),
    linear-gradient(180deg, #f2e8d0 0%, #e0d0b0 30%, #c8b89a 60%, #a09078 100%);
}
.scn-krogstad-threatens-reveal .bright-wall { position:absolute; inset:0 0 40% 0; background:linear-gradient(180deg, #fff5e6 0%, #f0e0c0 100%); }
.scn-krogstad-threatens-reveal .window-glare { position:absolute; top:10%; left:60%; width:120px; height:80px; background:linear-gradient(135deg, #ffffff 0%, transparent 100%); opacity:0.6; clip-path: polygon(10% 0, 100% 0, 90% 100%, 0 100%); animation: kt-glare 12s ease-in-out infinite alternate; }
.scn-krogstad-threatens-reveal .desk { position:absolute; bottom:20%; left:20%; width:200px; height:30px; background:linear-gradient(180deg, #8a7a62 0%, #6a5a42 100%); border-radius: 4px; box-shadow: 0 6px 12px rgba(0,0,0,0.3); }
.scn-krogstad-threatens-reveal .figure-left { position:absolute; bottom:30%; left:18%; width:35px; height:65px; background:linear-gradient(180deg, #1a1412 0%, #0e0a08 100%); border-radius: 45% 45% 30% 30% / 60% 60% 30% 30%; transform: rotate(-8deg); animation: kt-figureL 8s ease-in-out infinite alternate; }
.scn-krogstad-threatens-reveal .figure-right { position:absolute; bottom:30%; right:20%; width:40px; height:70px; background:linear-gradient(180deg, #2a221c 0%, #1a1410 100%); border-radius: 40% 40% 35% 35% / 60% 60% 35% 35%; transform: rotate(5deg); animation: kt-figureR 6s ease-in-out infinite alternate; }
.scn-krogstad-threatens-reveal .shadow-stripe { position:absolute; bottom:10%; left:0; right:0; height:8px; background:linear-gradient(90deg, transparent 0%, #00000033 30%, #00000055 50%, #00000033 70%, transparent 100%); animation: kt-stripe 5s ease-in-out infinite alternate; }
.scn-krogstad-threatens-reveal .paper { position:absolute; bottom:35%; left:35%; width:50px; height:40px; background: #f5ead0; border-radius: 2px; box-shadow: 0 2px 4px rgba(0,0,0,0.2); transform: rotate(-10deg); animation: kt-paper 7s ease-in-out infinite alternate; }
@keyframes kt-glare { 0% { opacity:0.4; transform:scale(0.95); } 50% { opacity:0.7; transform:scale(1.1); } 100% { opacity:0.5; transform:scale(1); } }
@keyframes kt-figureL { 0% { transform:translateX(0) rotate(-8deg); } 50% { transform:translateX(8px) rotate(-5deg); } 100% { transform:translateX(0) rotate(-8deg); } }
@keyframes kt-figureR { 0% { transform:translateX(0) rotate(5deg); } 50% { transform:translateX(-6px) rotate(8deg); } 100% { transform:translateX(0) rotate(5deg); } }
@keyframes kt-stripe { 0% { opacity:0.3; } 50% { opacity:0.8; } 100% { opacity:0.3; } }
@keyframes kt-paper { 0% { transform:rotate(-10deg) translateY(0); } 50% { transform:rotate(-5deg) translateY(-3px); } 100% { transform:rotate(-10deg) translateY(0); } }

/* Scene: letter-drops-in-box */
.scn-letter-drops-in-box {
  background:
    radial-gradient(ellipse at 50% 30%, #fff8ee 0%, transparent 60%),
    linear-gradient(180deg, #e8ddce 0%, #d0c0a8 50%, #b8a890 100%);
}
.scn-letter-drops-in-box .door-panel { position:absolute; top:10%; left:30%; width:160px; height:200px; background:linear-gradient(180deg, #c8b89a 0%, #a08a70 100%); border-radius: 6px; box-shadow: inset 0 2px 4px rgba(0,0,0,0.1), 0 8px 20px rgba(0,0,0,0.3); }
.scn-letter-drops-in-box .letter-slot { position:absolute; top:45%; left:38%; width:40px; height:8px; background:#4a3a28; border-radius: 2px; box-shadow: 0 0 6px 2px rgba(180,140,80,0.4); animation: ld-slot 2s ease-in-out infinite alternate; }
.scn-letter-drops-in-box .envelope { position:absolute; top:43%; left:39%; width:36px; height:28px; background:linear-gradient(180deg, #f0e0c0 0%, #d0c0a0 100%); border-radius: 2px; transform: rotate(-15deg); animation: ld-envelope 4s ease-in-out infinite alternate; }
.scn-letter-drops-in-box .hand-silhouette { position:absolute; top:38%; left:34%; width:20px; height:30px; background:#1a1410; border-radius: 40% 40% 20% 20% / 60% 60% 20% 20%; transform: rotate(20deg); animation: ld-hand 5s ease-in-out infinite alternate; }
.scn-letter-drops-in-box .light-beam { position:absolute; top:0; left:50%; width:80px; height:100%; background:linear-gradient(180deg, rgba(255,240,200,0.3) 0%, transparent 100%); clip-path: polygon(10% 0, 90% 0, 70% 100%, 30% 100%); animation: ld-beam 8s ease-in-out infinite alternate; }
.scn-letter-drops-in-box .floor-line { position:absolute; bottom:0; left:10%; right:10%; height:2px; background: #4a3a28; box-shadow: 0 0 10px 2px rgba(0,0,0,0.2); }
@keyframes ld-slot { 0% { opacity:0.6; } 50% { opacity:1; } 100% { opacity:0.7; } }
@keyframes ld-envelope { 0% { transform:rotate(-15deg) translateY(0); } 50% { transform:rotate(-10deg) translateY(4px); } 100% { transform:rotate(-15deg) translateY(0); } }
@keyframes ld-hand { 0% { transform:rotate(20deg) translateX(0); } 50% { transform:rotate(15deg) translateX(6px); } 100% { transform:rotate(20deg) translateX(0); } }
@keyframes ld-beam { 0% { opacity:0.2; } 50% { opacity:0.5; } 100% { opacity:0.3; } }

/* Scene: nora-reveals-forgery */
.scn-nora-reveals-forgery {
  background:
    radial-gradient(ellipse at 30% 50%, #ffe8d0 0%, transparent 60%),
    linear-gradient(180deg, #f0e0c8 0%, #d8c8b0 40%, #bba88a 100%);
}
.scn-nora-reveals-forgery .room-wall { position:absolute; inset:0 0 35% 0; background:linear-gradient(180deg, #f0e0c8 0%, #d8c0a8 100%); }
.scn-nora-reveals-forgery .sofa { position:absolute; bottom:35%; left:35%; width:180px; height:50px; background:linear-gradient(180deg, #8a7050 0%, #6a5030 100%); border-radius: 8px 8px 4px 4px; box-shadow: 0 6px 12px rgba(0,0,0,0.2); }
.scn-nora-reveals-forgery .dress { position:absolute; bottom:40%; left:38%; width:60px; height:40px; background:linear-gradient(180deg, #a07858 0%, #705038 100%); border-radius: 40% 40% 20% 20% / 60% 60% 20% 20%; transform: rotate(30deg); animation: nr-dress 7s ease-in-out infinite alternate; }
.scn-nora-reveals-forgery .letter-box { position:absolute; top:30%; right:10%; width:40px; height:30px; background: #c8b090; border-radius: 4px; box-shadow: inset 0 0 0 2px #887060, 0 0 12px 4px rgba(200,176,144,0.3); animation: nr-box 3s ease-in-out infinite alternate; }
.scn-nora-reveals-forgery .figure-box { position:absolute; bottom:30%; right:15%; width:25px; height:55px; background:linear-gradient(180deg, #1a1410 0%, #0e0a08 100%); border-radius: 45% 45% 30% 30% / 60% 60% 30% 30%; transform: rotate(10deg); animation: nr-figure1 9s ease-in-out infinite alternate; }
.scn-nora-reveals-forgery .figure-sofa { position:absolute; bottom:34%; left:32%; width:30px; height:50px; background:linear-gradient(180deg, #2a1e14 0%, #12100a 100%); border-radius: 45% 45% 30% 30% / 60% 60% 30% 30%; transform: rotate(-10deg); animation: nr-figure2 8s ease-in-out infinite alternate; }
.scn-nora-reveals-forgery .shadow-pool { position:absolute; bottom:0; left:20%; right:20%; height:30px; background:radial-gradient(ellipse at 50% 100%, rgba(0,0,0,0.3) 0%, transparent 70%); }
@keyframes nr-dress { 0% { transform:rotate(30deg) translateY(0); } 50% { transform:rotate(25deg) translateY(-5px); } 100% { transform:rotate(30deg) translateY(0); } }
@keyframes nr-box { 0% { opacity:0.7; } 50% { opacity:1; box-shadow:0 0 18px 6px rgba(200,176,144,0.5); } 100% { opacity:0.8; } }
@keyframes nr-figure1 { 0% { transform:rotate(10deg) translateX(0); } 50% { transform:rotate(5deg) translateX(-5px); } 100% { transform:rotate(10deg) translateX(0); } }
@keyframes nr-figure2 { 0% { transform:rotate(-10deg) translateX(0); } 50% { transform:rotate(-5deg) translateX(6px); } 100% { transform:rotate(-10deg) translateX(0); } }

.scn-torvald-gives-money {
  background:
    linear-gradient(180deg, #f5e6c8 0%, #e8d5a8 40%, #d4b888 100%),
    radial-gradient(ellipse at 70% 30%, #fff8e0 0%, transparent 60%);
}
.scn-torvald-gives-money .bg {
  position: absolute; inset: 0;
  background: repeating-linear-gradient(45deg, rgba(139,94,60,.1) 0, rgba(139,94,60,.1) 2px, transparent 2px, transparent 6px);
}
.scn-torvald-gives-money .window {
  position: absolute; top: 10%; left: 15%; width: 80px; height: 120px;
  background: linear-gradient(135deg, #fff8e0 0%, #f0d880 100%);
  border-radius: 8px 8px 4px 4px;
  box-shadow: inset 0 0 20px rgba(255,200,100,.5), 0 0 30px rgba(255,200,100,.3);
  animation: tgm-win 6s ease-in-out infinite alternate;
}
.scn-torvald-gives-money .arm-t {
  position: absolute; bottom: 30%; left: 35%; width: 12px; height: 80px;
  background: linear-gradient(180deg, #6b4a2e 0%, #4a3020 100%);
  border-radius: 40% 40% 20% 20% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: tgm-armt 4s ease-in-out infinite;
}
.scn-torvald-gives-money .purse {
  position: absolute; bottom: 45%; left: 38%; width: 30px; height: 24px;
  background: radial-gradient(circle at 40% 30%, #d4a855 0%, #b08030 60%, #8a6020 100%);
  border-radius: 30% 30% 40% 40%;
  box-shadow: 0 0 12px rgba(180,120,40,.6);
  animation: tgm-purse 4s ease-in-out infinite;
}
.scn-torvald-gives-money .arm-n {
  position: absolute; bottom: 25%; left: 50%; width: 10px; height: 70px;
  background: linear-gradient(180deg, #f0d0a0 0%, #d4b080 100%);
  border-radius: 40% 40% 20% 20% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: tgm-armn 4s ease-in-out infinite alternate;
}
.scn-torvald-gives-money .coin {
  position: absolute; bottom: 50%; left: 42%;
  width: 12px; height: 12px;
  background: radial-gradient(circle at 40% 30%, #f0d080 0%, #c0a050 100%);
  border-radius: 50%;
  box-shadow: 0 0 6px rgba(200,160,50,.7);
  animation: tgm-coin 3s ease-in-out infinite;
}
.scn-torvald-gives-money .shadow {
  position: absolute; bottom: 18%; left: 30%; width: 120px; height: 20px;
  background: radial-gradient(ellipse, rgba(0,0,0,.2) 0%, transparent 70%);
  animation: tgm-shadow 8s ease-in-out infinite;
}
@keyframes tgm-win {
  0% { opacity: .7; box-shadow: inset 0 0 15px rgba(255,200,100,.3), 0 0 20px rgba(255,200,100,.2); }
  50% { opacity: 1; box-shadow: inset 0 0 25px rgba(255,220,130,.6), 0 0 40px rgba(255,220,130,.4); }
  100% { opacity: .8; box-shadow: inset 0 0 18px rgba(255,200,100,.4), 0 0 25px rgba(255,200,100,.25); }
}
@keyframes tgm-armt {
  0% { transform: rotate(-10deg) translateX(0); }
  50% { transform: rotate(5deg) translateX(10px); }
  100% { transform: rotate(-5deg) translateX(5px); }
}
@keyframes tgm-purse {
  0% { transform: translateY(0) rotate(-5deg); }
  50% { transform: translateY(-8px) rotate(5deg); }
  100% { transform: translateY(0) rotate(-3deg); }
}
@keyframes tgm-armn {
  0% { transform: rotate(15deg) translateX(-5px); }
  50% { transform: rotate(-5deg) translateX(15px); }
  100% { transform: rotate(10deg) translateX(0); }
}
@keyframes tgm-coin {
  0% { transform: translateY(0) scale(1); opacity: 1; }
  50% { transform: translateY(-20px) scale(.8); opacity: .7; }
  100% { transform: translateY(0) scale(1); opacity: 1; }
}
@keyframes tgm-shadow {
  0% { transform: scaleX(1) scaleY(1); }
  50% { transform: scaleX(1.2) scaleY(.8); }
  100% { transform: scaleX(1) scaleY(1); }
}

/* Scene 2 */
.scn-christmas-gift-list {
  background:
    linear-gradient(180deg, #e8d5a8 0%, #d4b888 50%, #c0a070 100%),
    radial-gradient(ellipse at 50% 100%, #d4b888 0%, transparent 60%);
}
.scn-christmas-gift-list .bg {
  position: absolute; inset: 0;
  background: linear-gradient(135deg, rgba(200,180,140,.3) 0%, transparent 30%, rgba(180,150,100,.15) 70%);
}
.scn-christmas-gift-list .gift1 {
  position: absolute; bottom: 20%; left: 20%; width: 50px; height: 40px;
  background: linear-gradient(135deg, #b08050 0%, #906040 100%);
  border-radius: 6px;
  box-shadow: 0 4px 8px rgba(0,0,0,.2), inset 0 2px 4px rgba(255,255,200,.3);
  animation: cgl-gift 5s ease-in-out infinite;
}
.scn-christmas-gift-list .gift2 {
  position: absolute; bottom: 15%; left: 40%; width: 60px; height: 50px;
  background: linear-gradient(135deg, #c09060 0%, #a07040 100%);
  border-radius: 6px;
  box-shadow: 0 4px 10px rgba(0,0,0,.25), inset 0 2px 4px rgba(255,255,200,.3);
  animation: cgl-gift 6s ease-in-out infinite 1s;
}
.scn-christmas-gift-list .gift3 {
  position: absolute; bottom: 25%; left: 60%; width: 40px; height: 35px;
  background: linear-gradient(135deg, #d0a070 0%, #b08050 100%);
  border-radius: 6px;
  box-shadow: 0 4px 8px rgba(0,0,0,.2), inset 0 2px 4px rgba(255,255,200,.3);
  animation: cgl-gift 7s ease-in-out infinite 2s;
}
.scn-christmas-gift-list .hand {
  position: absolute; bottom: 20%; left: 50%; width: 12px; height: 60px;
  background: linear-gradient(180deg, #f0d0a0 0%, #d4b080 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: cgl-hand 4s ease-in-out infinite;
}
.scn-christmas-gift-list .coins {
  position: absolute; bottom: 40%; left: 30%; width: 30px; height: 20px;
  background: radial-gradient(circle at 30% 40%, #e8c060 0%, #c0a040 60%, #a08030 100%);
  border-radius: 50%;
  box-shadow: 0 2px 6px rgba(180,130,40,.5);
  animation: cgl-coins 3s ease-in-out infinite alternate;
}
.scn-christmas-gift-list .light {
  position: absolute; top: 5%; left: 35%; width: 40px; height: 40px;
  background: radial-gradient(circle, #fff8e0 0%, transparent 70%);
  border-radius: 50%;
  animation: cgl-light 8s ease-in-out infinite;
}
@keyframes cgl-gift {
  0% { transform: translateY(0) rotate(0); }
  50% { transform: translateY(-4px) rotate(3deg); }
  100% { transform: translateY(0) rotate(0); }
}
@keyframes cgl-hand {
  0% { transform: rotate(10deg) translateX(0); }
  50% { transform: rotate(-5deg) translateX(20px); }
  100% { transform: rotate(10deg) translateX(0); }
}
@keyframes cgl-coins {
  0% { transform: translateY(0) scaleX(1); }
  50% { transform: translateY(-5px) scaleX(1.2); }
  100% { transform: translateY(0) scaleX(1); }
}
@keyframes cgl-light {
  0% { transform: scale(1); opacity: .4; }
  50% { transform: scale(1.5); opacity: .8; }
  100% { transform: scale(1); opacity: .5; }
}

/* Scene 3 */
.scn-nora-asks-for-cash {
  background:
    linear-gradient(180deg, #f0d8b0 0%, #e0c090 40%, #d0a870 100%),
    radial-gradient(ellipse at 50% 100%, #d0a870 0%, transparent 60%);
}
.scn-nora-asks-for-cash .bg {
  position: absolute; inset: 0;
  background: linear-gradient(135deg, rgba(180,150,100,.2) 0%, transparent 50%, rgba(160,130,80,.1) 100%);
}
.scn-nora-asks-for-cash .fig-t {
  position: absolute; bottom: 10%; left: 20%; width: 30px; height: 90px;
  background: linear-gradient(180deg, #4a3020 0%, #2a1a10 100%);
  border-radius: 30% 30% 20% 20% / 50% 50% 30% 30%;
  transform-origin: bottom center;
  animation: nac-figt 5s ease-in-out infinite;
}
.scn-nora-asks-for-cash .fig-n {
  position: absolute; bottom: 10%; right: 20%; width: 25px; height: 80px;
  background: linear-gradient(180deg, #6b4a2e 0%, #4a3020 100%);
  border-radius: 30% 30% 20% 20% / 50% 50% 30% 30%;
  transform-origin: bottom center;
  animation: nac-fign 5s ease-in-out infinite 1s;
}
.scn-nora-asks-for-cash .money {
  position: absolute; bottom: 50%; left: 45%; width: 30px; height: 20px;
  background: radial-gradient(circle at 40% 30%, #f0d080 0%, #d4a855 100%);
  border-radius: 30% 30% 40% 40%;
  box-shadow: 0 0 10px rgba(200,160,50,.5);
  animation: nac-money 4s ease-in-out infinite;
}
.scn-nora-asks-for-cash .window {
  position: absolute; top: 8%; left: 40%; width: 70px; height: 100px;
  background: linear-gradient(135deg, #fff8e0 0%, #f0d880 100%);
  border-radius: 8px;
  box-shadow: inset 0 0 20px rgba(255,200,100,.5), 0 0 30px rgba(255,200,100,.3);
  animation: nac-win 6s ease-in-out infinite alternate;
}
.scn-nora-asks-for-cash .rug {
  position: absolute; bottom: 0; left: 10%; width: 80%; height: 8px;
  background: linear-gradient(90deg, #c0a070 0%, #a08050 50%, #c0a070 100%);
  border-radius: 50%;
  animation: nac-rug 10s ease-in-out infinite;
}
@keyframes nac-figt {
  0% { transform: translateX(0) rotate(0); }
  50% { transform: translateX(10px) rotate(5deg); }
  100% { transform: translateX(0) rotate(0); }
}
@keyframes nac-fign {
  0% { transform: translateX(0) rotate(0); }
  50% { transform: translateX(-10px) rotate(-5deg); }
  100% { transform: translateX(0) rotate(0); }
}
@keyframes nac-money {
  0% { transform: translateY(0) rotate(0) scale(1); }
  50% { transform: translateY(-15px) rotate(15deg) scale(1.1); }
  100% { transform: translateY(0) rotate(0) scale(1); }
}
@keyframes nac-win {
  0% { opacity: .6; box-shadow: inset 0 0 10px rgba(255,200,100,.3), 0 0 15px rgba(255,200,100,.2); }
  50% { opacity: 1; box-shadow: inset 0 0 25px rgba(255,220,130,.6), 0 0 40px rgba(255,220,130,.4); }
  100% { opacity: .7; box-shadow: inset 0 0 15px rgba(255,200,100,.4), 0 0 20px rgba(255,200,100,.25); }
}
@keyframes nac-rug {
  0% { transform: scaleX(1); }
  50% { transform: scaleX(1.05); }
  100% { transform: scaleX(1); }
}

/* Scene 4 */
.scn-torvald-warns-spendthrift {
  background:
    linear-gradient(180deg, #f5e6c8 0%, #e8d5a8 40%, #d4b888 100%),
    radial-gradient(ellipse at 40% 20%, #fff8e0 0%, transparent 60%);
}
.scn-torvald-warns-spendthrift .bg {
  position: absolute; inset: 0;
  background: repeating-linear-gradient(45deg, rgba(139,94,60,.08) 0, rgba(139,94,60,.08) 1px, transparent 1px, transparent 4px);
}
.scn-torvald-warns-spendthrift .fig-t {
  position: absolute; bottom: 15%; left: 30%; width: 28px; height: 85px;
  background: linear-gradient(180deg, #4a3020 0%, #2a1a10 100%);
  border-radius: 40% 40% 20% 20% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: tws-figt 4s ease-in-out infinite;
}
.scn-torvald-warns-spendthrift .fig-n {
  position: absolute; bottom: 12%; right: 30%; width: 24px; height: 75px;
  background: linear-gradient(180deg, #6b4a2e 0%, #4a3020 100%);
  border-radius: 40% 40% 20% 20% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: tws-fign 4s ease-in-out infinite 1s;
}
.scn-torvald-warns-spendthrift .exclamation {
  position: absolute; top: 15%; left: 35%; width: 8px; height: 30px;
  background: #d4a855;
  border-radius: 50% 50% 4px 4px;
  box-shadow: 0 0 10px rgba(200,160,50,.6);
  animation: tws-excl 2s ease-in-out infinite;
}
.scn-torvald-warns-spendthrift .shadow {
  position: absolute; bottom: 5%; left: 25%; width: 150px; height: 15px;
  background: radial-gradient(ellipse, rgba(0,0,0,.25) 0%, transparent 70%);
  animation: tws-shadow 8s ease-in-out infinite;
}
.scn-torvald-warns-spendthrift .lamp {
  position: absolute; top: 5%; left: 50%; width: 30px; height: 40px;
  background: radial-gradient(circle at 50% 30%, #fff8e0 0%, #f0d880 60%, transparent 100%);
  border-radius: 30% 30% 10% 10%;
  box-shadow: 0 0 30px rgba(255,200,100,.4);
  animation: tws-lamp 5s ease-in-out infinite alternate;
}
@keyframes tws-figt {
  0% { transform: translateX(0) rotate(0); }
  50% { transform: translateX(-8px) rotate(-3deg); }
  100% { transform: translateX(0) rotate(0); }
}
@keyframes tws-fign {
  0% { transform: translateX(0) rotate(0); }
  50% { transform: translateX(5px) rotate(5deg); }
  100% { transform: translateX(0) rotate(0); }
}
@keyframes tws-excl {
  0% { transform: translateY(0) scale(1); opacity: 1; }
  50% { transform: translateY(-10px) scale(1.5); opacity: .6; }
  100% { transform: translateY(0) scale(1); opacity: 1; }
}
@keyframes tws-shadow {
  0% { transform: scaleX(1); }
  50% { transform: scaleX(1.1); }
  100% { transform: scaleX(1); }
}
@keyframes tws-lamp {
  0% { opacity: .6; transform: scale(1); }
  50% { opacity: 1; transform: scale(1.1); }
  100% { opacity: .7; transform: scale(1); }
}

/* ===== helmer-returns-again ===== */
.scn-helmer-returns-again {
  background:
    linear-gradient(180deg, #1a1a2e 0%, #2c2240 40%, #1a1a2e 100%),
    radial-gradient(ellipse at 60% 80%, #3a2a4e 0%, transparent 70%);
}
.scn-helmer-returns-again .wall {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(180deg, #2a2a3e 0%, #1a1a2e 100%);
  animation: hr1-wall 12s ease-in-out infinite alternate;
}
.scn-helmer-returns-again .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 40%;
  background: linear-gradient(180deg, #2a1a1a 0%, #0e0e0e 100%);
  border-radius: 20% 20% 0 0;
  box-shadow: inset 0 10px 20px rgba(0,0,0,.6);
}
.scn-helmer-returns-again .table {
  position: absolute; bottom: 28%; left: 45%; width: 80px; height: 40px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a1a0a 100%);
  border-radius: 4px;
  transform: translateX(-50%);
  box-shadow: 0 4px 8px rgba(0,0,0,.5);
  animation: hr1-table 8s ease-in-out infinite;
}
.scn-helmer-returns-again .lamp {
  position: absolute; bottom: 38%; left: 48%; width: 10px; height: 30px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a1a 100%);
  border-radius: 20%;
  transform: translateX(-50%);
  box-shadow: inset 0 0 4px #6a4a2a;
  animation: hr1-lamp 3s ease-in-out infinite alternate;
}
.scn-helmer-returns-again .lamp::after {
  content: ''; position: absolute; bottom: 100%; left: -4px; width: 18px; height: 12px;
  background: radial-gradient(circle, #f0c060 0%, #c08030 60%, transparent 100%);
  border-radius: 50%;
  box-shadow: 0 0 20px 6px #f0c060, 0 0 40px 12px rgba(240,192,96,.4);
  animation: hr1-glow 2s ease-in-out infinite alternate;
}
.scn-helmer-returns-again .door {
  position: absolute; bottom: 20%; right: 20%; width: 50px; height: 120px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0e0e 100%);
  border-radius: 4px;
  transform-origin: right center;
  animation: hr1-door 6s ease-in-out infinite;
}
.scn-helmer-returns-again .helmer {
  position: absolute; bottom: 25%; left: 30%; width: 28px; height: 70px;
  background: linear-gradient(180deg, #1a1a2e 0%, #0a0a1a 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: hr1-walk 8s ease-in-out infinite;
}
.scn-helmer-returns-again .linde {
  position: absolute; bottom: 25%; left: 55%; width: 24px; height: 64px;
  background: linear-gradient(180deg, #2a1a2a 0%, #1a0a1a 100%);
  border-radius: 45% 40% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: hr1-bend 4s ease-in-out infinite alternate;
}
.scn-helmer-returns-again .shadow-helmer {
  position: absolute; bottom: 15%; left: 28%; width: 40px; height: 20px;
  background: rgba(0,0,0,.5);
  border-radius: 50%;
  filter: blur(6px);
  animation: hr1-shadow 8s ease-in-out infinite;
}
@keyframes hr1-wall { 0% { opacity:.9 } 50% { opacity:1 } 100% { opacity:.8 } }
@keyframes hr1-table { 0%,100% { transform: translateX(-50%) } 50% { transform: translateX(-50%) translateY(-2px) } }
@keyframes hr1-lamp { 0% { opacity:.8 } 50% { opacity:1 } 100% { opacity:.7 } }
@keyframes hr1-glow { 0% { box-shadow: 0 0 15px 4px #f0c060, 0 0 30px 8px rgba(240,192,96,.3); opacity:.85 } 50% { box-shadow: 0 0 25px 8px #ffd080, 0 0 50px 16px rgba(255,208,128,.5); opacity:1 } 100% { box-shadow: 0 0 18px 5px #f0c060, 0 0 35px 10px rgba(240,192,96,.35); opacity:.9 } }
@keyframes hr1-door { 0% { transform: rotateY(0deg) } 50% { transform: rotateY(20deg) } 100% { transform: rotateY(0deg) } }
@keyframes hr1-walk { 0% { transform: translateX(0) rotate(0deg) } 25% { transform: translateX(5px) rotate(-2deg) } 50% { transform: translateX(0) rotate(0deg) } 75% { transform: translateX(-5px) rotate(2deg) } 100% { transform: translateX(0) rotate(0deg) } }
@keyframes hr1-bend { 0% { transform: rotate(0deg) } 50% { transform: rotate(-5deg) translateY(-2px) } 100% { transform: rotate(0deg) } }
@keyframes hr1-shadow { 0%,100% { transform: scale(1) } 50% { transform: scale(1.1) } }

/* ===== nora-begs-again ===== */
.scn-nora-begs-again {
  background:
    linear-gradient(180deg, #1e1e30 0%, #2c2240 50%, #1a1a2e 100%),
    radial-gradient(ellipse at 40% 60%, #3a2e4a 0%, transparent 70%);
}
.scn-nora-begs-again .bg {
  position: absolute; inset: 0 0 35% 0;
  background: linear-gradient(180deg, #2e2e42 0%, #1a1a2e 100%);
}
.scn-nora-begs-again .console {
  position: absolute; bottom: 22%; left: 50%; width: 100px; height: 30px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a1a0a 100%);
  border-radius: 6px;
  transform: translateX(-50%);
  box-shadow: 0 4px 10px rgba(0,0,0,.5);
  animation: nb2-console 10s ease-in-out infinite;
}
.scn-nora-begs-again .torvald {
  position: absolute; bottom: 28%; left: 35%; width: 30px; height: 75px;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: nb2-torvald 6s ease-in-out infinite;
}
.scn-nora-begs-again .nora {
  position: absolute; bottom: 28%; left: 55%; width: 24px; height: 66px;
  background: linear-gradient(180deg, #2a1a2e 0%, #1a0a1a 100%);
  border-radius: 45% 40% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: nb2-nora 4s ease-in-out infinite alternate;
}
.scn-nora-begs-again .hands {
  position: absolute; bottom: 45%; left: 56%; width: 14px; height: 16px;
  background: radial-gradient(circle at 50% 50%, #3a2a2e 0%, #1a0e1a 100%);
  border-radius: 50% 50% 30% 30%;
  transform: rotate(-10deg);
  animation: nb2-hands 3s ease-in-out infinite alternate;
}
.scn-nora-begs-again .letter {
  position: absolute; bottom: 50%; left: 48%; width: 16px; height: 20px;
  background: linear-gradient(180deg, #c0b0a0 0%, #a09080 100%);
  border-radius: 2px;
  box-shadow: 0 2px 4px rgba(0,0,0,.3);
  transform: rotate(-15deg);
  animation: nb2-letter 5s ease-in-out infinite;
}
.scn-nora-begs-again .candle {
  position: absolute; bottom: 38%; left: 52%; width: 4px; height: 20px;
  background: linear-gradient(180deg, #8a7a5a 0%, #5a4a3a 100%);
  border-radius: 2px;
  animation: nb2-candle 4s ease-in-out infinite alternate;
}
.scn-nora-begs-again .candle::after {
  content: ''; position: absolute; top: 0; left: -2px; width: 8px; height: 8px;
  background: radial-gradient(circle, #f0e060 0%, #d0a040 40%, transparent 100%);
  border-radius: 50%;
  box-shadow: 0 0 12px 4px #f0e060, 0 0 24px 8px rgba(240,224,96,.4);
  animation: nb2-flame 1s ease-in-out infinite alternate;
}
@keyframes nb2-console { 0%,100% { transform: translateX(-50%) } 50% { transform: translateX(-50%) translateY(-3px) } }
@keyframes nb2-torvald { 0% { transform: rotate(0deg) } 50% { transform: rotate(3deg) translateX(2px) } 100% { transform: rotate(0deg) } }
@keyframes nb2-nora { 0% { transform: rotate(0deg) scaleY(1) } 50% { transform: rotate(-5deg) scaleY(.95) translateX(-2px) } 100% { transform: rotate(0deg) scaleY(1) } }
@keyframes nb2-hands { 0% { transform: rotate(-10deg) } 50% { transform: rotate(5deg) } 100% { transform: rotate(-10deg) } }
@keyframes nb2-letter { 0%,100% { transform: rotate(-15deg) } 50% { transform: rotate(-10deg) } }
@keyframes nb2-candle { 0% { opacity:.8 } 50% { opacity:1 } 100% { opacity:.7 } }
@keyframes nb2-flame { 0% { transform: scale(1) } 50% { transform: scale(1.2) } 100% { transform: scale(.9) } }

/* ===== helmer-refuses ===== */
.scn-helmer-refuses {
  background:
    linear-gradient(180deg, #1a1a2e 0%, #2c2240 60%, #1a1a2e 100%),
    radial-gradient(ellipse at 30% 70%, #3a2e4a 0%, transparent 80%);
}
.scn-helmer-refuses .wall-dark {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #22223a 0%, #12122a 100%);
  animation: hr3-wall 14s ease-in-out infinite alternate;
}
.scn-helmer-refuses .desk {
  position: absolute; bottom: 18%; left: 40%; width: 120px; height: 35px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a1a0a 100%);
  border-radius: 4px;
  transform: translateX(-50%);
  box-shadow: 0 6px 12px rgba(0,0,0,.6);
  animation: hr3-desk 9s ease-in-out infinite;
}
.scn-helmer-refuses .helmer-firm {
  position: absolute; bottom: 24%; left: 35%; width: 30px; height: 80px;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: hr3-helmer 7s ease-in-out infinite alternate;
}
.scn-helmer-refuses .nora-shrink {
  position: absolute; bottom: 24%; left: 60%; width: 22px; height: 60px;
  background: linear-gradient(180deg, #2a1a2e 0%, #1a0a1a 100%);
  border-radius: 45% 40% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: hr3-nora 5s ease-in-out infinite;
}
.scn-helmer-refuses .paper {
  position: absolute; bottom: 35%; left: 45%; width: 18px; height: 24px;
  background: linear-gradient(180deg, #c0b0a0 0%, #a09080 100%);
  border-radius: 2px;
  box-shadow: 0 2px 6px rgba(0,0,0,.4);
  transform: rotate(10deg);
  animation: hr3-paper 6s ease-in-out infinite alternate;
}
.scn-helmer-refuses .lamp-overhead {
  position: absolute; top: 5%; left: 50%; width: 14px; height: 20px;
  background: radial-gradient(ellipse at 50% 100%, #f0c060 0%, #c08030 60%, transparent 100%);
  border-radius: 50% 50% 20% 20%;
  transform: translateX(-50%);
  box-shadow: 0 0 30px 8px #f0c060, 0 0 60px 16px rgba(240,192,96,.3);
  animation: hr3-lamp 3s ease-in-out infinite alternate;
}
.scn-helmer-refuses .shadow-nora {
  position: absolute; bottom: 15%; left: 58%; width: 30px; height: 12px;
  background: rgba(0,0,0,.5);
  border-radius: 50%;
  filter: blur(5px);
  animation: hr3-shadow 5s ease-in-out infinite;
}
@keyframes hr3-wall { 0% { opacity:.9 } 50% { opacity:1 } 100% { opacity:.8 } }
@keyframes hr3-desk { 0%,100% { transform: translateX(-50%) } 50% { transform: translateX(-50%) translateY(-2px) } }
@keyframes hr3-helmer { 0% { transform: rotate(0deg) scaleY(1) } 50% { transform: rotate(2deg) scaleY(1.02) } 100% { transform: rotate(0deg) scaleY(1) } }
@keyframes hr3-nora { 0%,100% { transform: translateX(0) scaleY(1) } 50% { transform: translateX(-3px) scaleY(.95) } }
@keyframes hr3-paper { 0% { transform: rotate(10deg) } 50% { transform: rotate(15deg) } 100% { transform: rotate(10deg) } }
@keyframes hr3-lamp { 0% { opacity:.85; box-shadow: 0 0 20px 4px #f0c060, 0 0 40px 10px rgba(240,192,96,.3) } 50% { opacity:1; box-shadow: 0 0 35px 10px #ffd080, 0 0 70px 20px rgba(255,208,128,.5) } 100% { opacity:.9; box-shadow: 0 0 25px 6px #f0c060, 0 0 50px 14px rgba(240,192,96,.35) } }
@keyframes hr3-shadow { 0%,100% { transform: scale(1) } 50% { transform: scale(1.15) } }

/* ===== helmer-compares-father ===== */
.scn-helmer-compares-father {
  background:
    linear-gradient(180deg, #1a1a2e 0%, #2c2240 50%, #1a1a2e 100%),
    radial-gradient(ellipse at 70% 60%, #3a2e4a 0%, transparent 70%);
}
.scn-helmer-compares-father .wall-deep {
  position: absolute; inset: 0 0 35% 0;
  background: linear-gradient(180deg, #2a2a3e 0%, #1a1a2e 100%);
  animation: hc4-wall 13s ease-in-out infinite alternate;
}
.scn-helmer-compares-father .chair {
  position: absolute; bottom: 20%; left: 55%; width: 40px; height: 50px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a1a0a 100%);
  border-radius: 10% 10% 4% 4%;
  transform: translateX(-50%);
  box-shadow: 0 4px 8px rgba(0,0,0,.5);
  animation: hc4-chair 8s ease-in-out infinite;
}
.scn-helmer-compares-father .helmer-point {
  position: absolute; bottom: 28%; left: 30%; width: 30px; height: 78px;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: hc4-helmer 6s ease-in-out infinite alternate;
}
.scn-helmer-compares-father .helmer-point::after {
  content: ''; position: absolute; top: 25%; left: 90%; width: 12px; height: 24px;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 30% 30% 20% 20%;
  transform: rotate(15deg);
  transform-origin: bottom left;
  animation: hc4-arm 4s ease-in-out infinite alternate;
}
.scn-helmer-compares-father .nora-seated {
  position: absolute; bottom: 22%; left: 58%; width: 24px; height: 55px;
  background: linear-gradient(180deg, #2a1a2e 0%, #1a0a1a 100%);
  border-radius: 45% 40% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: hc4-nora 7s ease-in-out infinite;
}
.scn-helmer-compares-father .portrait {
  position: absolute; bottom: 42%; right: 15%; width: 30px; height: 40px;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 4px;
  box-shadow: 0 0 0 3px #8a7a5a, 0 4px 8px rgba(0,0,0,.4);
  animation: hc4-portrait 10s ease-in-out infinite;
}
.scn-helmer-compares-father .lamp-side {
  position: absolute; bottom: 38%; left: 20%; width: 6px; height: 18px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a1a 100%);
  border-radius: 2px;
  animation: hc4-lamp 3s ease-in-out infinite alternate;
}
.scn-helmer-compares-father .lamp-side::after {
  content: ''; position: absolute; top: 0; left: -3px; width: 12px; height: 10px;
  background: radial-gradient(circle, #f0c060 0%, #c08030 50%, transparent 100%);
  border-radius: 50%;
  box-shadow: 0 0 16px 4px #f0c060, 0 0 32px 8px rgba(240,192,96,.4);
  animation: hc4-glow 2s ease-in-out infinite alternate;
}
.scn-helmer-compares-father .frame-glow {
  position: absolute; bottom: 42%; right: 15%; width: 30px; height: 40px;
  background: transparent;
  box-shadow: 0 0 10px 2px rgba(240,192,96,.3);
  border-radius: 4px;
  animation: hc4-frame 5s ease-in-out infinite;
}
@keyframes hc4-wall { 0% { opacity:.9 } 50% { opacity:1 } 100% { opacity:.8 } }
@keyframes hc4-chair { 0%,100% { transform: translateX(-50%) } 50% { transform: translateX(-50%) translateY(-2px) } }
@keyframes hc4-helmer { 0% { transform: rotate(0deg) } 50% { transform: rotate(3deg) } 100% { transform: rotate(0deg) } }
@keyframes hc4-arm { 0% { transform: rotate(15deg) } 50% { transform: rotate(25deg) } 100% { transform: rotate(15deg) } }
@keyframes hc4-nora { 0%,100% { transform: translateY(0) } 50% { transform: translateY(-2px) } }
@keyframes hc4-portrait { 0% { opacity:.9 } 50% { opacity:1 } 100% { opacity:.8 } }
@keyframes hc4-lamp { 0% { opacity:.8 } 50% { opacity:1 } 100% { opacity:.7 } }
@keyframes hc4-glow { 0% { box-shadow: 0 0 12px 3px #f0c060, 0 0 24px 6px rgba(240,192,96,.3); opacity:.85 } 50% { box-shadow: 0 0 20px 6px #ffd080, 0 0 40px 12px rgba(255,208,128,.5); opacity:1 } 100% { box-shadow: 0 0 14px 4px #f0c060, 0 0 28px 8px rgba(240,192,96,.35); opacity:.9 } }
@keyframes hc4-frame { 0%,100% { opacity:.5 } 50% { opacity:1 } }

.scn-nora-defies-krogstad {
  background: linear-gradient(180deg, #f5e6d0 0%, #e3c8a5 40%, #d4b48a 80%), radial-gradient(ellipse at 40% 30%, #fff8f0 0%, transparent 70%);
}
.scn-nora-defies-krogstad .room {
  position: absolute; inset: 10% 10%; background: linear-gradient(135deg, #f0e0c0 0%, #d8c0a0 100%);
  border-radius: 2% 4% 6% 4% / 4% 3% 5% 5%; box-shadow: inset 0 0 30px rgba(0,0,0,0.1);
  animation: ndk-room 15s ease-in-out infinite alternate;
}
.scn-nora-defies-krogstad .door {
  position: absolute; right: 15%; top: 30%; width: 45px; height: 80px;
  background: linear-gradient(180deg, #6b4f3a 0%, #4a3628 100%);
  border-radius: 2px 8px 4px 4px; box-shadow: 4px 0 8px rgba(0,0,0,0.4);
  animation: ndk-door 8s ease-in-out infinite;
}
.scn-nora-defies-krogstad .lamp-glow {
  position: absolute; top: 35%; left: 25%; width: 30px; height: 30px;
  background: radial-gradient(circle, #fff5d0 0%, #f0c860 60%, transparent 100%);
  border-radius: 50%; box-shadow: 0 0 40px 20px rgba(240,200,96,0.5);
  animation: ndk-lamp 4s ease-in-out infinite alternate;
}
.scn-nora-defies-krogstad .nora-silhouette {
  position: absolute; bottom: 20%; left: 35%; width: 22px; height: 48px;
  background: linear-gradient(180deg, #2a1e14 0%, #1a120c 100%);
  border-radius: 50% 40% 40% 40% / 60% 50% 40% 40%; transform-origin: bottom;
  animation: ndk-nora 6s ease-in-out infinite;
}
.scn-nora-defies-krogstad .krogstad-shadow {
  position: absolute; bottom: 15%; right: 22%; width: 28px; height: 52px;
  background: linear-gradient(180deg, #1e1612 0%, #0e0a08 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; filter: blur(2px);
  animation: ndk-krog 5s ease-in-out infinite;
}
.scn-nora-defies-krogstad .table {
  position: absolute; bottom: 12%; left: 30%; right: 20%; height: 12px;
  background: linear-gradient(180deg, #7a5d42 0%, #4d3626 100%);
  border-radius: 10% 10% 0 0; box-shadow: 0 4px 6px rgba(0,0,0,0.3);
  animation: ndk-table 12s ease-in-out infinite alternate;
}
.scn-nora-defies-krogstad .letter {
  position: absolute; bottom: 22%; left: 42%; width: 12px; height: 16px;
  background: linear-gradient(135deg, #f0e0c0 0%, #d0b890 100%);
  border-radius: 1px; box-shadow: 0 2px 4px rgba(0,0,0,0.3);
  animation: ndk-letter 3s ease-in-out infinite;
}
@keyframes ndk-room { 0% { opacity: 0.95; transform: scale(1); } 50% { opacity: 1; transform: scale(1.01); } 100% { opacity: 0.9; transform: scale(1); } }
@keyframes ndk-door { 0%,100% { transform: translateX(0); } 50% { transform: translateX(-2px); } }
@keyframes ndk-lamp { 0% { opacity: 0.8; box-shadow: 0 0 30px 15px rgba(240,200,96,0.4); } 50% { opacity: 1; box-shadow: 0 0 50px 25px rgba(240,200,96,0.6); } 100% { opacity: 0.85; box-shadow: 0 0 35px 18px rgba(240,200,96,0.45); } }
@keyframes ndk-nora { 0% { transform: translateY(0) rotate(0deg); } 25% { transform: translateY(-1px) rotate(-2deg); } 50% { transform: translateY(0) rotate(0deg); } 75% { transform: translateY(-1px) rotate(2deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes ndk-krog { 0%,100% { transform: translateX(0) rotate(0deg); } 50% { transform: translateX(3px) rotate(2deg); } }
@keyframes ndk-table { 0% { transform: translateY(0); } 50% { transform: translateY(-1px); } 100% { transform: translateY(0); } }
@keyframes ndk-letter { 0%,100% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-2px) rotate(5deg); } }

.scn-krogstad-past {
  background: linear-gradient(180deg, #2a2218 0%, #1a1410 60%, #0e0a08 100%), radial-gradient(ellipse at 50% 30%, #3a3024 0%, transparent 80%);
}
.scn-krogstad-past .dark-room {
  position: absolute; inset: 5%; background: linear-gradient(135deg, #1e1814 0%, #0f0b09 100%);
  border-radius: 5%; box-shadow: inset 0 0 40px rgba(0,0,0,0.6);
  animation: kp-room 20s ease-in-out infinite alternate;
}
.scn-krogstad-past .desk {
  position: absolute; left: 20%; right: 20%; bottom: 20%; height: 18px;
  background: linear-gradient(180deg, #4a3828 0%, #2a1e14 100%);
  border-radius: 4px 4px 0 0; box-shadow: 0 -2px 6px rgba(0,0,0,0.5);
  animation: kp-desk 10s ease-in-out infinite;
}
.scn-krogstad-past .lamp-light {
  position: absolute; top: 40%; left: 35%; width: 20px; height: 25px;
  background: radial-gradient(circle at 50% 100%, #fce0b0 0%, #d0a060 60%, transparent 100%);
  border-radius: 50% 50% 20% 20%; box-shadow: 0 0 30px 15px rgba(208,160,96,0.4);
  animation: kp-lamp 3s ease-in-out infinite alternate;
}
.scn-krogstad-past .krogstad-figure {
  position: absolute; left: 30%; bottom: 25%; width: 26px; height: 50px;
  background: linear-gradient(180deg, #1a1410 0%, #0a0806 100%);
  border-radius: 50% 40% 40% 40% / 60% 50% 40% 40%; transform-origin: bottom;
  animation: kp-figure 8s ease-in-out infinite;
}
.scn-krogstad-past .papers {
  position: absolute; left: 35%; bottom: 26%; width: 15px; height: 10px;
  background: linear-gradient(135deg, #e8d8b0 0%, #c8b090 100%);
  border-radius: 1px; transform: rotate(-10deg);
  animation: kp-papers 6s ease-in-out infinite;
}
.scn-krogstad-past .window-shape {
  position: absolute; right: 10%; top: 15%; width: 30px; height: 45px;
  background: linear-gradient(180deg, #3a3024 0%, #2a2218 100%);
  border: 2px solid #4a3828; border-radius: 2px;
  animation: kp-window 15s linear infinite;
}
@keyframes kp-room { 0% { opacity: 0.9; } 50% { opacity: 1; } 100% { opacity: 0.85; } }
@keyframes kp-desk { 0%,100% { transform: translateY(0); } 50% { transform: translateY(-1px); } }
@keyframes kp-lamp { 0% { opacity: 0.7; box-shadow: 0 0 20px 10px rgba(208,160,96,0.3); } 50% { opacity: 1; box-shadow: 0 0 40px 20px rgba(208,160,96,0.5); } 100% { opacity: 0.75; box-shadow: 0 0 25px 12px rgba(208,160,96,0.35); } }
@keyframes kp-figure { 0% { transform: translateY(0) rotate(0deg); } 25% { transform: translateY(-1px) rotate(-1deg); } 50% { transform: translateY(0) rotate(0deg); } 75% { transform: translateY(-1px) rotate(1deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes kp-papers { 0%,100% { transform: rotate(-10deg) translateY(0); } 50% { transform: rotate(-5deg) translateY(-2px); } }
@keyframes kp-window { 0% { opacity: 0.3; } 50% { opacity: 0.5; } 100% { opacity: 0.25; } }

.scn-secret-threat {
  background: linear-gradient(180deg, #ece0d0 0%, #d8c8b0 60%, #c0a890 100%), radial-gradient(ellipse at 60% 50%, #fff5e8 0%, transparent 60%);
}
.scn-secret-threat .bg-wall {
  position: absolute; inset: 5%; background: linear-gradient(135deg, #f0e0c8 0%, #d8c0a0 100%);
  border-radius: 8% 2% 5% 3%; box-shadow: inset 0 0 20px rgba(0,0,0,0.08);
  animation: st-wall 12s ease-in-out infinite alternate;
}
.scn-secret-threat .window-light {
  position: absolute; top: 20%; left: 10%; width: 50px; height: 60px;
  background: linear-gradient(180deg, #fefaf0 0%, #e8dcc8 100%);
  border-radius: 4px; box-shadow: 0 0 30px 15px rgba(255,250,240,0.5);
  animation: st-window 9s ease-in-out infinite;
}
.scn-secret-threat .hand-silhouette {
  position: absolute; left: 45%; top: 40%; width: 18px; height: 30px;
  background: linear-gradient(180deg, #3a2a1e 0%, #1e1410 100%);
  border-radius: 50% 30% 40% 40% / 60% 40% 50% 50%; transform-origin: bottom;
  animation: st-hand 4s ease-in-out infinite;
}
.scn-secret-threat .letter-envelope {
  position: absolute; left: 38%; top: 55%; width: 20px; height: 14px;
  background: linear-gradient(135deg, #f0e0c0 0%, #d0b890 100%);
  border-radius: 2px; transform: rotate(15deg);
  animation: st-letter 5s ease-in-out infinite;
}
.scn-secret-threat .shadow-cross {
  position: absolute; right: 20%; bottom: 30%; width: 40px; height: 8px;
  background: rgba(0,0,0,0.15); border-radius: 60%;
  filter: blur(3px); transform: rotate(-20deg);
  animation: st-cross 7s ease-in-out infinite alternate;
}
.scn-secret-threat .tear-drop {
  position: absolute; left: 50%; top: 60%; width: 4px; height: 6px;
  background: radial-gradient(circle at 50% 30%, #7ab8d4 0%, #4a8a9a 100%);
  border-radius: 50% 50% 50% 50% / 60% 60% 40% 40%; opacity: 0.8;
  animation: st-tear 3s ease-in-out infinite;
}
@keyframes st-wall { 0% { opacity: 0.95; } 50% { opacity: 1; } 100% { opacity: 0.9; } }
@keyframes st-window { 0%,100% { opacity: 0.7; transform: scale(1); } 50% { opacity: 1; transform: scale(1.02); } }
@keyframes st-hand { 0% { transform: translateY(0) rotate(-3deg); } 25% { transform: translateY(-2px) rotate(0deg); } 50% { transform: translateY(0) rotate(3deg); } 75% { transform: translateY(-2px) rotate(0deg); } 100% { transform: translateY(0) rotate(-3deg); } }
@keyframes st-letter { 0%,100% { transform: rotate(15deg) translateY(0); } 50% { transform: rotate(10deg) translateY(-3px); } }
@keyframes st-cross { 0% { opacity: 0.1; transform: rotate(-20deg) scale(1); } 50% { opacity: 0.3; transform: rotate(-15deg) scale(1.1); } 100% { opacity: 0.15; transform: rotate(-25deg) scale(0.9); } }
@keyframes st-tear { 0% { opacity: 0.8; transform: translateY(0); } 50% { opacity: 0.6; transform: translateY(5px); } 100% { opacity: 0.2; transform: translateY(10px); } }

.scn-krogstad-accusation {
  background: linear-gradient(180deg, #1a1410 0%, #2a1e14 30%, #0e0a08 80%), radial-gradient(ellipse at 50% 20%, #3a2a1e 0%, transparent 70%);
}
.scn-krogstad-accusation .dim-room {
  position: absolute; inset: 3%; background: linear-gradient(135deg, #1e1612 0%, #0d0907 100%);
  border-radius: 6% 4% 8% 2%; box-shadow: inset 0 0 30px rgba(0,0,0,0.7);
  animation: ka-room 18s ease-in-out infinite alternate;
}
.scn-krogstad-accusation .candle-glow {
  position: absolute; top: 35%; left: 50%; transform: translateX(-50%); width: 16px; height: 22px;
  background: radial-gradient(circle at 50% 80%, #fce0b0 0%, #d0a060 40%, transparent 100%);
  border-radius: 50% 50% 20% 20%; box-shadow: 0 0 40px 20px rgba(208,160,96,0.5);
  animation: ka-candle 3s ease-in-out infinite alternate;
}
.scn-krogstad-accusation .desk-surface {
  position: absolute; left: 15%; right: 15%; bottom: 18%; height: 14px;
  background: linear-gradient(180deg, #4a3828 0%, #2a1e14 100%);
  border-radius: 4px 4px 0 0; box-shadow: 0 -2px 8px rgba(0,0,0,0.6);
  animation: ka-desk 12s ease-in-out infinite;
}
.scn-krogstad-accusation .nora-back {
  position: absolute; left: 25%; bottom: 22%; width: 20px; height: 44px;
  background: linear-gradient(180deg, #3a2a1e 0%, #1a120c 100%);
  border-radius: 50% 40% 40% 40% / 60% 50% 40% 40%; transform-origin: bottom;
  animation: ka-nora 6s ease-in-out infinite;
}
.scn-krogstad-accusation .krogstad-approach {
  position: absolute; right: 18%; bottom: 15%; width: 30px; height: 54px;
  background: linear-gradient(180deg, #1e1410 0%, #0a0604 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; filter: blur(1px);
  animation: ka-krog 5s ease-in-out infinite;
}
.scn-krogstad-accusation .inkwell {
  position: absolute; left: 40%; bottom: 25%; width: 8px; height: 12px;
  background: linear-gradient(180deg, #4a3828 0%, #2a1e14 100%);
  border-radius: 20% 20% 40% 40%; box-shadow: 0 2px 4px rgba(0,0,0,0.4);
  animation: ka-ink 9s ease-in-out infinite alternate;
}
.scn-krogstad-accusation .papers-stack {
  position: absolute; left: 32%; bottom: 24%; width: 14px; height: 8px;
  background: linear-gradient(135deg, #d8c0a0 0%, #b8a088 100%);
  border-radius: 1px; transform: rotate(-5deg);
  animation: ka-papers 7s ease-in-out infinite;
}
@keyframes ka-room { 0% { opacity: 0.9; } 50% { opacity: 1; } 100% { opacity: 0.85; } }
@keyframes ka-candle { 0% { opacity: 0.7; box-shadow: 0 0 30px 15px rgba(208,160,96,0.3); } 50% { opacity: 1; box-shadow: 0 0 50px 25px rgba(208,160,96,0.5); } 100% { opacity: 0.75; box-shadow: 0 0 35px 18px rgba(208,160,96,0.35); } }
@keyframes ka-desk { 0%,100% { transform: translateY(0); } 50% { transform: translateY(-1px); } }
@keyframes ka-nora { 0% { transform: translateY(0) rotate(0deg); } 25% { transform: translateY(-1px) rotate(-2deg); } 50% { transform: translateY(0) rotate(0deg); } 75% { transform: translateY(-1px) rotate(2deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes ka-krog { 0%,100% { transform: translateX(0) rotate(0deg); } 50% { transform: translateX(4px) rotate(2deg); } }
@keyframes ka-ink { 0% { transform: translateY(0); } 50% { transform: translateY(-1px); } 100% { transform: translateY(0); } }
@keyframes ka-papers { 0%,100% { transform: rotate(-5deg) translateY(0); } 50% { transform: rotate(0deg) translateY(-2px); } }

/* Scene: character-jest */
.scn-character-jest {
  background: linear-gradient(180deg, #f5e0c0 0%, #e8c8a0 40%, #c8a870 100%), 
              radial-gradient(ellipse at 50% 100%, #dbb880 0%, transparent 60%);
}
.scn-character-jest .bg-room {
  position: absolute; inset: 0 0 0 0;
  background: linear-gradient(135deg, #f0d8b0 0%, #e0c090 100%);
  border-radius: 4%;
  box-shadow: inset 0 0 60px rgba(100,60,20,0.15);
}
.scn-character-jest .window-glow {
  position: absolute; top: 8%; left: 12%; width: 30%; height: 40%;
  background: radial-gradient(ellipse at 30% 40%, #ffe8a0 0%, transparent 70%);
  border-radius: 20%;
  animation: cj-glow 4s ease-in-out infinite alternate;
}
.scn-character-jest .chair {
  position: absolute; bottom: 22%; left: 35%; width: 18%; height: 28%;
  background: linear-gradient(180deg, #8a6a4a 0%, #5a3a1a 100%);
  border-radius: 20% 20% 10% 10% / 30% 30% 10% 10%;
  box-shadow: 0 4px 12px rgba(0,0,0,0.3);
  animation: cj-chair 6s ease-in-out infinite;
}
.scn-character-jest .figure-jest {
  position: absolute; bottom: 20%; left: 42%; width: 14%; height: 36%;
  background: linear-gradient(180deg, #d8a050 0%, #a07030 60%, #604020 100%);
  border-radius: 50% 50% 40% 40% / 70% 70% 30% 30%;
  transform-origin: bottom center;
  animation: cj-laugh 2s ease-in-out infinite, cj-bounce 4s ease-in-out infinite;
}
.scn-character-jest .squirrel {
  position: absolute; bottom: 26%; left: 56%; width: 8%; height: 10%;
  background: radial-gradient(ellipse at 50% 30%, #c08040 0%, #805020 100%);
  border-radius: 50% 50% 40% 40%;
  box-shadow: 0 2px 6px rgba(0,0,0,0.2);
  animation: cj-scurry 3s ease-in-out infinite alternate;
}
.scn-character-jest .lantern-jest {
  position: absolute; bottom: 28%; left: 30%; width: 3%; height: 5%;
  background: radial-gradient(circle, #ffd080 0%, #b07020 100%);
  border-radius: 50%;
  box-shadow: 0 0 20px 8px #f0a040;
  animation: cj-swing 5s ease-in-out infinite;
}
.scn-character-jest .sparkle-a,
.scn-character-jest .sparkle-b {
  position: absolute; width: 2%; height: 2%;
  background: #ffe080;
  border-radius: 50%;
  filter: blur(2px);
  animation: cj-sparkle 3s ease-in-out infinite alternate;
}
.scn-character-jest .sparkle-a { top: 25%; left: 20%; animation-delay: 0s; }
.scn-character-jest .sparkle-b { top: 30%; left: 70%; animation-delay: 1.5s; }
@keyframes cj-glow {
  0% { opacity: 0.6; transform: scale(1); }
  50% { opacity: 1; transform: scale(1.02); }
  100% { opacity: 0.7; transform: scale(0.98); }
}
@keyframes cj-chair {
  0% { transform: translateY(0) rotate(0deg); }
  50% { transform: translateY(-3px) rotate(1deg); }
  100% { transform: translateY(0) rotate(0deg); }
}
@keyframes cj-laugh {
  0% { transform: translateY(0) rotate(-2deg); }
  25% { transform: translateY(-4px) rotate(3deg); }
  50% { transform: translateY(-6px) rotate(-1deg); }
  75% { transform: translateY(-3px) rotate(4deg); }
  100% { transform: translateY(0) rotate(0deg); }
}
@keyframes cj-bounce {
  0% { height: 36%; }
  50% { height: 34%; }
  100% { height: 36%; }
}
@keyframes cj-scurry {
  0% { transform: translateX(0) rotate(0deg); }
  50% { transform: translateX(8px) rotate(-5deg); }
  100% { transform: translateX(0) rotate(5deg); }
}
@keyframes cj-swing {
  0% { transform: rotate(-5deg); }
  50% { transform: rotate(5deg); }
  100% { transform: rotate(-3deg); }
}
@keyframes cj-sparkle {
  0% { opacity: 0; transform: scale(0); }
  50% { opacity: 1; transform: scale(1.5); }
  100% { opacity: 0.3; transform: scale(0.8); }
}

/* Scene: inheritance-talk */
.scn-inheritance-talk {
  background: linear-gradient(180deg, #f0e0c0 0%, #d8c0a0 50%, #b09878 100%),
              radial-gradient(ellipse at 50% 30%, #e8d0a8 0%, transparent 70%);
}
.scn-inheritance-talk .bg-study {
  position: absolute; inset: 0 0 0 0;
  background: linear-gradient(135deg, #e0c8a8 0%, #c8a880 100%);
  border-radius: 3%;
  box-shadow: inset 0 0 50px rgba(80,50,20,0.12);
}
.scn-inheritance-talk .desk {
  position: absolute; bottom: 20%; left: 20%; width: 60%; height: 10%;
  background: linear-gradient(180deg, #7a5a3a 0%, #4a3018 100%);
  border-radius: 10% 10% 0 0;
  box-shadow: 0 4px 10px rgba(0,0,0,0.3);
}
.scn-inheritance-talk .document {
  position: absolute; bottom: 28%; left: 40%; width: 20%; height: 6%;
  background: linear-gradient(180deg, #f5f0e0 0%, #dcd0b0 100%);
  border-radius: 4%;
  box-shadow: 0 2px 6px rgba(0,0,0,0.1);
  animation: it-doc 8s ease-in-out infinite alternate;
}
.scn-inheritance-talk .lamp-glow {
  position: absolute; top: 12%; left: 48%; width: 16%; height: 20%;
  background: radial-gradient(circle, #ffd090 0%, transparent 70%);
  border-radius: 50%;
  box-shadow: 0 0 40px 12px #f0b060;
  animation: it-lamp 5s ease-in-out infinite alternate;
}
.scn-inheritance-talk .figure-left,
.scn-inheritance-talk .figure-right {
  position: absolute; width: 12%; height: 34%;
  background: linear-gradient(180deg, #a08050 0%, #604020 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
}
.scn-inheritance-talk .figure-left { bottom: 20%; left: 22%; animation: it-nod 6s ease-in-out infinite; }
.scn-inheritance-talk .figure-right { bottom: 20%; right: 22%; animation: it-shake 7s ease-in-out infinite; }
.scn-inheritance-talk .dust-mote {
  position: absolute; top: 30%; left: 30%; width: 2%; height: 2%;
  background: rgba(200,180,140,0.6);
  border-radius: 50%;
  filter: blur(1px);
  animation: it-drift 20s linear infinite;
}
@keyframes it-doc {
  0% { transform: rotate(0deg); }
  50% { transform: rotate(-2deg) translateY(-2px); }
  100% { transform: rotate(1deg) translateY(1px); }
}
@keyframes it-lamp {
  0% { opacity: 0.7; transform: scale(1); }
  50% { opacity: 1; transform: scale(1.05); }
  100% { opacity: 0.8; transform: scale(0.95); }
}
@keyframes it-nod {
  0% { transform: translateY(0) rotate(0deg); }
  25% { transform: translateY(-2px) rotate(3deg); }
  50% { transform: translateY(0) rotate(0deg); }
  75% { transform: translateY(-3px) rotate(-2deg); }
  100% { transform: translateY(0) rotate(1deg); }
}
@keyframes it-shake {
  0% { transform: translateX(0); }
  20% { transform: translateX(4px) rotate(2deg); }
  40% { transform: translateX(-3px) rotate(-1deg); }
  60% { transform: translateX(2px) rotate(1deg); }
  80% { transform: translateX(-4px) rotate(-2deg); }
  100% { transform: translateX(0); }
}
@keyframes it-drift {
  0% { transform: translateY(0) translateX(0) scale(1); }
  50% { transform: translateY(-20px) translateX(30px) scale(0.8); }
  100% { transform: translateY(-40px) translateX(60px) scale(0.5); }
}

/* Scene: macaroon-interrogation */
.scn-macaroon-interrogation {
  background: linear-gradient(180deg, #ffe0b0 0%, #f0c890 40%, #d8a868 100%),
              radial-gradient(ellipse at 50% 60%, #f5d8a0 0%, transparent 60%);
}
.scn-macaroon-interrogation .bg-kitchen {
  position: absolute; inset: 0 0 0 0;
  background: linear-gradient(135deg, #f0d0a0 0%, #e0b878 100%);
  border-radius: 5%;
}
.scn-macaroon-interrogation .table {
  position: absolute; bottom: 18%; left: 10%; width: 80%; height: 12%;
  background: linear-gradient(180deg, #8a6040 0%, #5a3820 100%);
  border-radius: 10% 10% 0 0;
  box-shadow: 0 6px 12px rgba(0,0,0,0.2);
}
.scn-macaroon-interrogation .plate {
  position: absolute; bottom: 28%; left: 35%; width: 30%; height: 6%;
  background: radial-gradient(ellipse at 50% 40%, #f8f0e0 0%, #d8c8b0 100%);
  border-radius: 50%;
  box-shadow: 0 2px 8px rgba(0,0,0,0.1);
  animation: mi-plate 3s ease-in-out infinite;
}
.scn-macaroon-interrogation .macaroon-top,
.scn-macaroon-interrogation .macaroon-bottom {
  position: absolute; width: 8%; height: 8%;
  border-radius: 50%;
}
.scn-macaroon-interrogation .macaroon-top {
  bottom: 30%; left: 45%;
  background: radial-gradient(circle at 40% 30%, #f5c0a0 0%, #d08050 100%);
  box-shadow: 0 0 8px 2px #e0a070;
  animation: mi-top 1s ease-in-out infinite alternate;
}
.scn-macaroon-interrogation .macaroon-bottom {
  bottom: 28%; left: 46%;
  background: radial-gradient(circle at 40% 30%, #f0b890 0%, #c07040 100%);
  box-shadow: 0 0 6px 2px #d08850;
  animation: mi-bottom 1s ease-in-out infinite alternate-reverse;
}
.scn-macaroon-interrogation .hand {
  position: absolute; bottom: 24%; left: 55%; width: 16%; height: 20%;
  background: linear-gradient(180deg, #d0a070 0%, #a06830 100%);
  border-radius: 30% 30% 20% 20% / 60% 60% 20% 20%;
  transform-origin: 80% 100%;
  animation: mi-hand 3s ease-in-out infinite;
}
.scn-macaroon-interrogation .finger {
  position: absolute; bottom: 32%; left: 68%; width: 4%; height: 10%;
  background: linear-gradient(180deg, #d0a070 0%, #b08050 100%);
  border-radius: 40% 20% 0 0;
  transform: rotate(-20deg);
  transform-origin: bottom center;
  animation: mi-finger 2s ease-in-out infinite alternate;
}
.scn-macaroon-interrogation .crumbs {
  position: absolute; bottom: 26%; left: 42%; width: 6%; height: 2%;
  background: #b08040;
  border-radius: 50%;
  filter: blur(1px);
  animation: mi-crumbs 4s ease-in-out infinite;
}
@keyframes mi-plate {
  0% { transform: translateY(0); }
  50% { transform: translateY(-2px); }
  100% { transform: translateY(0); }
}
@keyframes mi-top {
  0% { transform: scale(1) rotate(0deg); }
  100% { transform: scale(1.05) rotate(5deg); }
}
@keyframes mi-bottom {
  0% { transform: scale(1) rotate(0deg); }
  100% { transform: scale(0.95) rotate(-5deg); }
}
@keyframes mi-hand {
  0% { transform: rotate(0deg); }
  25% { transform: rotate(-5deg); }
  50% { transform: rotate(0deg); }
  75% { transform: rotate(3deg); }
  100% { transform: rotate(-2deg); }
}
@keyframes mi-finger {
  0% { transform: rotate(-30deg) scaleX(1); }
  100% { transform: rotate(10deg) scaleX(1.1); }
}
@keyframes mi-crumbs {
  0% { transform: translateY(0) scale(1); opacity: 0.6; }
  50% { transform: translateY(-4px) scale(0.8); opacity: 0.3; }
  100% { transform: translateY(0) scale(1); opacity: 0.6; }
}

/* Scene: christmas-past-memory */
.scn-christmas-past-memory {
  background: linear-gradient(180deg, #f5e8d0 0%, #e0d0b8 40%, #c0a880 100%),
              radial-gradient(ellipse at 50% 20%, #f0d8b8 0%, transparent 70%);
}
.scn-christmas-past-memory .bg-parlor {
  position: absolute; inset: 0 0 0 0;
  background: linear-gradient(135deg, #e8d8c0 0%, #d0b898 100%);
  border-radius: 4%;
  box-shadow: inset 0 0 80px rgba(100,60,20,0.1);
}
.scn-christmas-past-memory .tree {
  position: absolute; bottom: 20%; left: 30%; width: 40%; height: 50%;
  background: linear-gradient(180deg, #6a8a40 0%, #2a5a20 100%);
  clip-path: polygon(50% 0%, 0% 100%, 100% 100%);
  box-shadow: 0 8px 20px rgba(0,0,0,0.3);
  animation: cp-tree 8s ease-in-out infinite;
}
.scn-christmas-past-memory .star {
  position: absolute; bottom: 66%; left: 47%; width: 6%; height: 6%;
  background: radial-gradient(circle, #ffd080 0%, #f0a020 100%);
  clip-path: polygon(50% 0%, 61% 35%, 98% 35%, 68% 57%, 79% 91%, 50% 70%, 21% 91%, 32% 57%, 2% 35%, 39% 35%);
  box-shadow: 0 0 30px 10px #e0a030;
  animation: cp-star 3s ease-in-out infinite alternate;
}
.scn-christmas-past-memory .ornament-a,
.scn-christmas-past-memory .ornament-b {
  position: absolute; width: 5%; height: 5%;
  border-radius: 50%;
  box-shadow: inset 0 -2px 4px rgba(0,0,0,0.3);
  animation: cp-ornament 4s ease-in-out infinite alternate;
}
.scn-christmas-past-memory .ornament-a {
  bottom: 48%; left: 38%;
  background: radial-gradient(circle at 35% 35%, #e06040 0%, #a03020 100%);
  animation-delay: 0s;
}
.scn-christmas-past-memory .ornament-b {
  bottom: 40%; left: 55%;
  background: radial-gradient(circle at 35% 35%, #c0a060 0%, #906030 100%);
  animation-delay: 2s;
}
.scn-christmas-past-memory .gift {
  position: absolute; bottom: 14%; left: 35%; width: 12%; height: 8%;
  background: linear-gradient(135deg, #a06040 0%, #703820 100%);
  border-radius: 8%;
  box-shadow: 0 2px 6px rgba(0,0,0,0.2);
  animation: cp-gift 5s ease-in-out infinite;
}
.scn-christmas-past-memory .figure-christmas {
  position: absolute; bottom: 18%; left: 58%; width: 10%; height: 30%;
  background: linear-gradient(180deg, #907050 0%, #503820 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  box-shadow: 0 0 12px 4px rgba(0,0,0,0.2);
  animation: cp-figure 6s ease-in-out infinite;
}
.scn-christmas-past-memory .candle-glow {
  position: absolute; bottom: 30%; left: 50%; width: 6%; height: 10%;
  background: radial-gradient(ellipse at 50% 50%, #ffe080 0%, transparent 70%);
  border-radius: 50%;
  box-shadow: 0 0 40px 12px #ffc060;
  animation: cp-candle 4s ease-in-out infinite alternate;
}
.scn-christmas-past-memory .snow-flurry {
  position: absolute; top: 0; left: 0; width: 100%; height: 100%;
  background: transparent;
  pointer-events: none;
  animation: cp-snow 10s linear infinite;
}
.scn-christmas-past-memory .snow-flurry::before {
  content: '';
  position: absolute; top: -10%; left: -10%; width: 120%; height: 120%;
  background: radial-gradient(2px 2px at 10% 20%, rgba(255,255,255,0.6) 0%, transparent 50%),
              radial-gradient(2px 2px at 30% 40%, rgba(255,255,255,0.5) 0%, transparent 50%),
              radial-gradient(2px 2px at 60% 10%, rgba(255,255,255,0.4) 0%, transparent 50%),
              radial-gradient(2px 2px at 80% 70%, rgba(255,255,255,0.5) 0%, transparent 50%),
              radial-gradient(2px 2px at 50% 90%, rgba(255,255,255,0.3) 0%, transparent 50%);
  background-size: 200% 200%;
  animation: cp-flurry 12s linear infinite;
}
@keyframes cp-tree {
  0% { transform: translateY(0); }
  50% { transform: translateY(-4px); }
  100% { transform: translateY(0); }
}
@keyframes cp-star {
  0% { transform: scale(1) rotate(0deg); opacity: 0.8; }
  50% { transform: scale(1.15) rotate(15deg); opacity: 1; }
  100% { transform: scale(1) rotate(30deg); opacity: 0.9; }
}
@keyframes cp-ornament {
  0% { transform: translateY(0) rotate(0deg); }
  50% { transform: translateY(-4px) rotate(10deg); }
  100% { transform: translateY(0) rotate(20deg); }
}
@keyframes cp-gift {
  0% { transform: scale(1) rotate(-2deg); }
  50% { transform: scale(1.03) rotate(2deg); }
  100% { transform: scale(1) rotate(-2deg); }
}
@keyframes cp-figure {
  0% { transform: translateY(0) rotate(0deg); }
  25% { transform: translateY(-2px) rotate(2deg); }
  50% { transform: translateY(-4px) rotate(-1deg); }
  75% { transform: translateY(-2px) rotate(1deg); }
  100% { transform: translateY(0) rotate(0deg); }
}
@keyframes cp-candle {
  0% { opacity: 0.7; transform: scale(1); }
  50% { opacity: 1; transform: scale(1.2); }
  100% { opacity: 0.8; transform: scale(0.9); }
}
@keyframes cp-flurry {
  0% { background-position: 0% 0%; }
  100% { background-position: 100% 100%; }
}
@keyframes cp-snow {
  0% { transform: translateY(0); }
  100% { transform: translateY(10%); }
}

/* Scene: helmer-returns – warm bright interior, doorway peep */
.scn-helmer-returns {
  background: linear-gradient(180deg, #f5e6c8 0%, #d4a56a 40%, #b08050 100%),
              radial-gradient(ellipse at 80% 40%, #ffdd99 0%, transparent 70%);
}
.scn-helmer-returns .wall { position:absolute; inset:0 0 30% 0; background: linear-gradient(90deg, #c9a56a 0%, #e0c080 50%, #c9a56a 100%); animation: hr-wall 20s ease-in-out infinite alternate; }
.scn-helmer-returns .door-frame { position:absolute; bottom:20%; left:50%; width:100px; height:180px; transform:translateX(-50%); background: linear-gradient(180deg, #a08050 0%, #7a5a3a 100%); border-radius:4px; box-shadow: inset 0 0 20px rgba(0,0,0,0.4); }
.scn-helmer-returns .door-open { position:absolute; bottom:20%; left:50%; width:80px; height:170px; transform:translateX(-50%) rotateY(10deg); background: linear-gradient(180deg, #b89060 0%, #8a6a4a 100%); border-radius:3px; transform-origin: left center; animation: hr-door 6s ease-in-out infinite alternate; }
.scn-helmer-returns .figure-peep { position:absolute; bottom:18%; left:53%; width:30px; height:100px; background: linear-gradient(180deg, #3a2a1a 0%, #1a0a0a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform: translateX(-50%) rotate(0deg); animation: hr-peep 4s ease-in-out infinite; }
.scn-helmer-returns .room-glow { position:absolute; bottom:18%; left:50%; width:120px; height:130px; transform:translateX(-50%); background: radial-gradient(circle, #ffdd99 0%, #e0a060 40%, transparent 70%); border-radius:50%; filter: blur(15px); animation: hr-glow 3s ease-in-out infinite alternate; }
.scn-helmer-returns .floor { position:absolute; bottom:0; left:0; right:0; height:20%; background: linear-gradient(0deg, #6a4a3a 0%, #8a6a4a 100%); border-radius: 20% 20% 0 0; animation: hr-floor 12s linear infinite; }
@keyframes hr-wall { 0% { opacity:.9 } 50% { opacity:1 } 100% { opacity:.8 } }
@keyframes hr-door { 0% { transform:translateX(-50%) rotateY(10deg); } 50% { transform:translateX(-50%) rotateY(15deg); } 100% { transform:translateX(-50%) rotateY(8deg); } }
@keyframes hr-peep { 0% { transform:translateX(-50%) rotate(0deg) translateY(0); } 50% { transform:translateX(-50%) rotate(-2deg) translateY(-2px); } 100% { transform:translateX(-50%) rotate(2deg) translateY(0); } }
@keyframes hr-glow { 0% { opacity:.6; box-shadow: 0 0 30px 10px #ffdd99; } 50% { opacity:1; box-shadow: 0 0 50px 20px #ffdd99; } 100% { opacity:.7; box-shadow: 0 0 35px 15px #ffdd99; } }
@keyframes hr-floor { 0% { background-position: 0 0; } 100% { background-position: 100% 0; } }

/* Scene: tarantella-preparations – bright tense interior, dance figure */
.scn-tarantella-preparations {
  background: linear-gradient(180deg, #f7e8d0 0%, #d4c4a0 50%, #b0a080 100%),
              radial-gradient(ellipse at 50% 60%, #ffeeaa 0%, transparent 60%);
}
.scn-tarantella-preparations .floor { position:absolute; bottom:0; left:0; right:0; height:30%; background: linear-gradient(0deg, #8a7a6a 0%, #b0a090 100%); border-radius: 10% 10% 0 0; }
.scn-tarantella-preparations .wall { position:absolute; inset:0 0 30% 0; background: linear-gradient(180deg, #e0d0b0 0%, #c0b0a0 100%); animation: tp-wall 8s ease-in-out infinite alternate; }
.scn-tarantella-preparations .figure-dance { position:absolute; bottom:20%; left:50%; width:40px; height:120px; transform:translateX(-50%); background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: tp-dance 0.8s ease-in-out infinite; }
.scn-tarantella-preparations .tambourine { position:absolute; bottom:35%; left:55%; width:30px; height:30px; border-radius:50%; background: radial-gradient(circle, #d08050 0%, #a06030 100%); box-shadow: 0 0 10px 3px rgba(200,150,100,0.5); animation: tp-tambourine 0.4s ease-in-out infinite alternate; }
.scn-tarantella-preparations .shadow-dance { position:absolute; bottom:10%; left:40%; width:50px; height:80px; background: rgba(0,0,0,0.3); border-radius:50% 50% 40% 40%; filter: blur(8px); transform: skewX(-10deg); animation: tp-shadow 1.2s ease-in-out infinite; }
.scn-tarantella-preparations .clock { position:absolute; top:15%; right:10%; width:40px; height:40px; border-radius:50%; background: radial-gradient(circle, #c0b090 0%, #8a7a6a 100%); box-shadow: inset 0 0 6px rgba(0,0,0,0.3); animation: tp-clock 2s linear infinite; }
.scn-tarantella-preparations .light-beam { position:absolute; top:0; left:50%; width:120px; height:200px; transform:translateX(-50%); background: linear-gradient(180deg, rgba(255,238,170,0.3) 0%, transparent 100%); clip-path: polygon(20% 0, 80% 0, 60% 100%, 40% 100%); animation: tp-beam 3s ease-in-out infinite alternate; }
@keyframes tp-wall { 0% { opacity:.95 } 50% { opacity:1 } 100% { opacity:.9 } }
@keyframes tp-dance { 0% { transform:translateX(-50%) rotate(-5deg) scale(1); } 50% { transform:translateX(-50%) rotate(5deg) scale(1.02); } 100% { transform:translateX(-50%) rotate(-5deg) scale(1); } }
@keyframes tp-tambourine { 0% { transform:translate(0,0) rotate(0deg); } 50% { transform:translate(3px,-3px) rotate(15deg); } 100% { transform:translate(0,0) rotate(0deg); } }
@keyframes tp-shadow { 0% { transform:skewX(-10deg) scale(1); } 50% { transform:skewX(10deg) scale(1.1); } 100% { transform:skewX(-10deg) scale(1); } }
@keyframes tp-clock { 0% { transform:rotate(0deg); } 100% { transform:rotate(360deg); } }
@keyframes tp-beam { 0% { opacity:0.3; transform:translateX(-50%) scale(1); } 50% { opacity:0.6; transform:translateX(-50%) scale(1.05); } 100% { opacity:0.3; transform:translateX(-50%) scale(1); } }

/* Scene: tarantella-aftermath – dim tense interior, seated figure, discarded tambourine */
.scn-tarantella-aftermath {
  background: linear-gradient(180deg, #2a2a1a 0%, #4a3a2a 40%, #3a2a1a 100%),
              radial-gradient(ellipse at 50% 30%, #6a4a3a 0%, transparent 70%);
}
.scn-tarantella-aftermath .floor { position:absolute; bottom:0; left:0; right:0; height:35%; background: linear-gradient(0deg, #1a1a0a 0%, #3a2a1a 100%); border-radius: 15% 15% 0 0; }
.scn-tarantella-aftermath .wall { position:absolute; inset:0 0 35% 0; background: linear-gradient(180deg, #3a2a1a 0%, #2a1a1a 100%); animation: ta-wall 10s ease-in-out infinite alternate; }
.scn-tarantella-aftermath .figure-seated { position:absolute; bottom:15%; left:40%; width:50px; height:80px; background: linear-gradient(180deg, #1a0a0a 0%, #0a0000 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform: translateX(-50%) rotate(0deg); animation: ta-seated 5s ease-in-out infinite; }
.scn-tarantella-aftermath .tambourine-discard { position:absolute; bottom:8%; left:60%; width:25px; height:25px; border-radius:50%; background: radial-gradient(circle, #a06030 0%, #7a4020 100%); transform: rotate(20deg); animation: ta-discard 4s ease-in-out infinite alternate; }
.scn-tarantella-aftermath .lamp { position:absolute; top:20%; left:50%; width:30px; height:50px; transform:translateX(-50%); background: linear-gradient(180deg, #c08050 0%, #8a5a3a 100%); border-radius: 50% 50% 0 0; box-shadow: 0 0 20px 8px rgba(200,150,100,0.4); animation: ta-lamp 3s ease-in-out infinite alternate; }
.scn-tarantella-aftermath .shadow-seated { position:absolute; bottom:5%; left:35%; width:80px; height:30px; background: rgba(0,0,0,0.5); border-radius:50%; filter: blur(10px); transform: translateX(-50%); animation: ta-shadow 6s ease-in-out infinite; }
@keyframes ta-wall { 0% { opacity:.85 } 50% { opacity:.95 } 100% { opacity:.8 } }
@keyframes ta-seated { 0% { transform:translateX(-50%) rotate(0deg) translateY(0); } 50% { transform:translateX(-50%) rotate(-3deg) translateY(-2px); } 100% { transform:translateX(-50%) rotate(2deg) translateY(0); } }
@keyframes ta-discard { 0% { transform:rotate(20deg) translate(0,0); } 50% { transform:rotate(30deg) translate(2px,-2px); } 100% { transform:rotate(20deg) translate(0,0); } }
@keyframes ta-lamp { 0% { opacity:.7; box-shadow: 0 0 15px 5px rgba(200,150,100,0.3); } 50% { opacity:1; box-shadow: 0 0 30px 12px rgba(200,150,100,0.5); } 100% { opacity:.8; box-shadow: 0 0 20px 8px rgba(200,150,100,0.35); } }
@keyframes ta-shadow { 0% { opacity:.4; transform:translateX(-50%) scale(1); } 50% { opacity:.6; transform:translateX(-50%) scale(1.1); } 100% { opacity:.4; transform:translateX(-50%) scale(1); } }

/* Scene: mrs-linde-krogstad-reconciliation – dim calm interior, two figures at table */
.scn-mrs-linde-krogstad-reconciliation {
  background: linear-gradient(180deg, #2a221a 0%, #3a2e22 40%, #1e1610 100%),
              radial-gradient(ellipse at 50% 50%, #4a3a2a 0%, transparent 70%);
}
.scn-mrs-linde-krogstad-reconciliation .floor { position:absolute; bottom:0; left:0; right:0; height:25%; background: linear-gradient(0deg, #1a0e0a 0%, #2a1e12 100%); border-radius: 10% 10% 0 0; }
.scn-mrs-linde-krogstad-reconciliation .wall { position:absolute; inset:0 0 25% 0; background: linear-gradient(180deg, #2a1e12 0%, #1a120a 100%); animation: lk-wall 12s ease-in-out infinite alternate; }
.scn-mrs-linde-krogstad-reconciliation .table { position:absolute; bottom:15%; left:50%; width:120px; height:40px; transform:translateX(-50%); background: linear-gradient(180deg, #4a3a2a 0%, #2a1e12 100%); border-radius:20% 20% 5% 5%; box-shadow: 0 4px 8px rgba(0,0,0,0.6); }
.scn-mrs-linde-krogstad-reconciliation .figure-left { position:absolute; bottom:25%; left:35%; width:30px; height:90px; background: linear-gradient(180deg, #1a0e0a 0%, #0a0600 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform: translateX(-50%); animation: lk-figure-l 8s ease-in-out infinite; }
.scn-mrs-linde-krogstad-reconciliation .figure-right { position:absolute; bottom:25%; left:65%; width:30px; height:90px; background: linear-gradient(180deg, #1a0e0a 0%, #0a0600 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform: translateX(-50%) scaleX(-1); animation: lk-figure-r 8s ease-in-out infinite; }
.scn-mrs-linde-krogstad-reconciliation .lamp-soft { position:absolute; top:10%; left:50%; width:40px; height:60px; transform:translateX(-50%); background: linear-gradient(180deg, #c09060 0%, #8a5a3a 100%); border-radius: 50% 50% 0 0; box-shadow: 0 0 30px 15px rgba(200,150,100,0.2); animation: lk-lamp 6s ease-in-out infinite alternate; }
.scn-mrs-linde-krogstad-reconciliation .glow-soft { position:absolute; top:8%; left:50%; width:200px; height:200px; transform:translateX(-50%); background: radial-gradient(circle, rgba(200,150,100,0.15) 0%, transparent 100%); border-radius:50%; filter: blur(30px); animation: lk-glow 9s ease-in-out infinite alternate; }
@keyframes lk-wall { 0% { opacity:.9 } 50% { opacity:1 } 100% { opacity:.85 } }
@keyframes lk-figure-l { 0% { transform:translateX(-50%) rotate(0deg) translateY(0); } 33% { transform:translateX(-50%) rotate(-2deg) translateY(-1px); } 66% { transform:translateX(-50%) rotate(2deg) translateY(0); } 100% { transform:translateX(-50%) rotate(0deg) translateY(0); } }
@keyframes lk-figure-r { 0% { transform:translateX(-50%) scaleX(-1) rotate(0deg) translateY(0); } 33% { transform:translateX(-50%) scaleX(-1) rotate(-2deg) translateY(-1px); } 66% { transform:translateX(-50%) scaleX(-1) rotate(2deg) translateY(0); } 100% { transform:translateX(-50%) scaleX(-1) rotate(0deg) translateY(0); } }
@keyframes lk-lamp { 0% { opacity:.6; box-shadow: 0 0 20px 8px rgba(200,150,100,0.15); } 50% { opacity:.9; box-shadow: 0 0 40px 20px rgba(200,150,100,0.25); } 100% { opacity:.7; box-shadow: 0 0 25px 12px rgba(200,150,100,0.18); } }
@keyframes lk-glow { 0% { opacity:.4; transform:translateX(-50%) scale(1); } 50% { opacity:.6; transform:translateX(-50%) scale(1.05); } 100% { opacity:.5; transform:translateX(-50%) scale(1); } }

/* empty-life-feeling */
.scn-empty-life-feeling {
  background:
    linear-gradient(180deg, #1b1730 0%, #2a2140 40%, #14101f 100%),
    radial-gradient(ellipse at 30% 50%, #2e264a 0%, transparent 70%);
}
.scn-empty-life-feeling .room-bg {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #1f1b32 0%, #161226 100%);
  animation: elf-bg 20s ease-in-out infinite alternate;
}
.scn-empty-life-feeling .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #2a1f17 0%, #1a120c 100%);
  border-radius: 0 0 40% 40% / 0 0 20% 20%;
}
.scn-empty-life-feeling .window {
  position: absolute; top: 18%; left: 50%; width: 100px; height: 130px;
  transform: translateX(-50%);
  background: radial-gradient(ellipse at 50% 70%, #3a3350 0%, #1d1930 70%);
  border: 8px solid #2a2238; border-radius: 4px;
  box-shadow: inset 0 0 30px rgba(0,0,0,0.6);
}
.scn-empty-life-feeling .window-light {
  position: absolute; top: 22%; left: 50%; width: 80px; height: 100px;
  transform: translateX(-50%);
  background: radial-gradient(ellipse at 50% 60%, #5a4a6a 0%, transparent 100%);
  opacity: 0.4;
  animation: elf-window-light 6s ease-in-out infinite alternate;
}
.scn-empty-life-feeling .figure {
  position: absolute; bottom: 28%; left: 45%; width: 28px; height: 52px;
  background: linear-gradient(180deg, #1a1820 0%, #0d0b12 100%);
  border-radius: 50% 50% 40% 40% / 70% 70% 40% 40%;
  transform-origin: bottom center;
  animation: elf-figure 7s ease-in-out infinite;
}
.scn-empty-life-feeling .lamp {
  position: absolute; bottom: 32%; left: 38%; width: 10px; height: 10px;
  background: radial-gradient(circle, #8a7a5a 0%, #4a3a2a 100%);
  border-radius: 50%;
  box-shadow: 0 0 20px 6px rgba(138,122,90,0.5), 0 0 40px 12px rgba(138,122,90,0.2);
  animation: elf-lamp 4s ease-in-out infinite alternate;
}
.scn-empty-life-feeling .shadow {
  position: absolute; bottom: 0; left: 42%; width: 40px; height: 20px;
  background: radial-gradient(ellipse, rgba(0,0,0,0.4) 0%, transparent 100%);
  animation: elf-shadow 7s ease-in-out infinite;
}
@keyframes elf-bg {
  0%,100% { opacity: 0.7; }
  50% { opacity: 0.9; }
}
@keyframes elf-window-light {
  0% { opacity: 0.3; transform: translateX(-50%) scale(0.95); }
  50% { opacity: 0.6; transform: translateX(-50%) scale(1.05); }
  100% { opacity: 0.4; transform: translateX(-50%) scale(0.98); }
}
@keyframes elf-figure {
  0% { transform: translateY(0) rotate(0deg); }
  25% { transform: translateY(-3px) rotate(3deg); }
  50% { transform: translateY(-1px) rotate(-2deg) scale(1.01); }
  75% { transform: translateY(-2px) rotate(4deg); }
  100% { transform: translateY(0) rotate(0deg); }
}
@keyframes elf-lamp {
  0% { opacity: 0.6; box-shadow: 0 0 15px 4px rgba(138,122,90,0.4); }
  50% { opacity: 0.9; box-shadow: 0 0 25px 8px rgba(138,122,90,0.6); }
  100% { opacity: 0.7; box-shadow: 0 0 18px 5px rgba(138,122,90,0.5); }
}
@keyframes elf-shadow {
  0%,100% { transform: scale(1); opacity: 0.5; }
  50% { transform: scale(1.2) translateX(5px); opacity: 0.7; }
}

/* nora-promise-help */
.scn-nora-promise-help {
  background:
    linear-gradient(180deg, #f5e6d0 0%, #e8d5b8 50%, #d4bea0 100%),
    radial-gradient(ellipse at 70% 30%, #ffeedd 0%, transparent 60%);
}
.scn-nora-promise-help .wall-warm {
  position: absolute; inset: 0 0 25% 0;
  background: linear-gradient(180deg, #f0dcc0 0%, #e0c8a8 100%);
}
.scn-nora-promise-help .floor-warm {
  position: absolute; bottom: 0; left: 0; right: 0; height: 25%;
  background: linear-gradient(180deg, #c4a882 0%, #a88c66 100%);
  border-radius: 0 0 30% 30% / 0 0 10% 10%;
}
.scn-nora-promise-help .window-bright {
  position: absolute; top: 12%; left: 65%; width: 90px; height: 120px;
  transform: translateX(-50%);
  background: radial-gradient(ellipse at 50% 50%, #fff8ee 0%, #e0d4c0 100%);
  border: 6px solid #b89e7a; border-radius: 3px;
  box-shadow: inset 0 0 30px rgba(255,248,238,0.6);
}
.scn-nora-promise-help .sunbeam {
  position: absolute; top: 20%; left: 60%; width: 80px; height: 80px;
  background: linear-gradient(135deg, rgba(255,235,190,0.4) 0%, transparent 100%);
  filter: blur(8px);
  animation: nph-sunbeam 12s ease-in-out infinite alternate;
}
.scn-nora-promise-help .figure-a {
  position: absolute; bottom: 22%; left: 30%; width: 24px; height: 48px;
  background: linear-gradient(180deg, #8a7058 0%, #5a4a38 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: nph-fig-a 8s ease-in-out infinite;
}
.scn-nora-promise-help .figure-b {
  position: absolute; bottom: 24%; left: 52%; width: 22px; height: 44px;
  background: linear-gradient(180deg, #c8a88a 0%, #907860 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: nph-fig-b 6s ease-in-out infinite;
}
.scn-nora-promise-help .table {
  position: absolute; bottom: 18%; left: 40%; width: 40px; height: 14px;
  background: linear-gradient(180deg, #b89e7a 0%, #8a7252 100%);
  border-radius: 4px;
  box-shadow: 0 4px 8px rgba(0,0,0,0.2);
  animation: nph-table 10s ease-in-out infinite;
}
@keyframes nph-sunbeam {
  0% { opacity: 0.3; transform: rotate(-5deg) scale(0.9); }
  50% { opacity: 0.7; transform: rotate(3deg) scale(1.1); }
  100% { opacity: 0.4; transform: rotate(0deg) scale(1); }
}
@keyframes nph-fig-a {
  0% { transform: translateX(0) translateY(0) rotate(0deg); }
  30% { transform: translateX(8px) translateY(-2px) rotate(2deg); }
  60% { transform: translateX(16px) translateY(0) rotate(-1deg); }
  100% { transform: translateX(0) translateY(0) rotate(0deg); }
}
@keyframes nph-fig-b {
  0%,100% { transform: translateY(0) scale(1); }
  50% { transform: translateY(-6px) scale(1.03) rotate(1deg); }
}
@keyframes nph-table {
  0%,100% { transform: scale(1); }
  50% { transform: scale(1.02); }
}

/* job-favor-request */
.scn-job-favor-request {
  background:
    linear-gradient(180deg, #e8dccc 0%, #ccc0b0 60%, #b0a090 100%),
    radial-gradient(ellipse at 50% 20%, #fff8f0 0%, transparent 50%);
}
.scn-job-favor-request .ceiling {
  position: absolute; top: 0; left: 0; right: 0; height: 20%;
  background: linear-gradient(180deg, #d8c8b8 0%, #c8b8a8 100%);
  box-shadow: inset 0 -10px 20px rgba(0,0,0,0.15);
}
.scn-job-favor-request .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #a89080 0%, #887060 100%);
  border-radius: 0 0 20% 20% / 0 0 10% 10%;
}
.scn-job-favor-request .light-cone {
  position: absolute; top: 0; left: 30%; width: 120px; height: 100%;
  background: linear-gradient(180deg, rgba(255,240,220,0.5) 0%, transparent 100%);
  clip-path: polygon(20% 0%, 80% 0%, 60% 100%, 40% 100%);
  animation: jfr-light 9s ease-in-out infinite alternate;
}
.scn-job-favor-request .shadow-sharp {
  position: absolute; bottom: 28%; left: 20%; width: 100px; height: 60px;
  background: linear-gradient(135deg, rgba(0,0,0,0.3) 0%, transparent 100%);
  filter: blur(2px);
  animation: jfr-shadow 12s ease-in-out infinite alternate;
}
.scn-job-favor-request .figure-nora {
  position: absolute; bottom: 26%; left: 35%; width: 22px; height: 46px;
  background: linear-gradient(180deg, #c8a88a 0%, #907860 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: jfr-nora 5s ease-in-out infinite;
}
.scn-job-favor-request .figure-christine {
  position: absolute; bottom: 24%; left: 55%; width: 24px; height: 48px;
  background: linear-gradient(180deg, #a08068 0%, #6a5442 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: jfr-christine 8s ease-in-out infinite;
}
.scn-job-favor-request .desk {
  position: absolute; bottom: 20%; left: 40%; width: 50px; height: 16px;
  background: linear-gradient(180deg, #b09a82 0%, #806a52 100%);
  border-radius: 2px;
  box-shadow: 0 6px 10px rgba(0,0,0,0.3);
}
@keyframes jfr-light {
  0% { opacity: 0.6; transform: skewX(-2deg); }
  50% { opacity: 0.9; transform: skewX(0deg); }
  100% { opacity: 0.7; transform: skewX(2deg); }
}
@keyframes jfr-shadow {
  0% { opacity: 0.3; transform: scaleY(0.95); }
  50% { opacity: 0.6; transform: scaleY(1.05); }
  100% { opacity: 0.4; transform: scaleY(1); }
}
@keyframes jfr-nora {
  0%,100% { transform: translateY(0) rotate(0deg); }
  25% { transform: translateY(-2px) rotate(2deg) scale(1.01); }
  50% { transform: translateY(0) rotate(-1deg); }
  75% { transform: translateY(-1px) rotate(1deg); }
}
@keyframes jfr-christine {
  0%,100% { transform: translateX(0); }
  50% { transform: translateX(4px); }
}

/* nora-defends-self */
.scn-nora-defends-self {
  background:
    linear-gradient(180deg, #fcf6ea 0%, #e6daca 40%, #ccc0b0 100%),
    radial-gradient(ellipse at 50% 0%, #fffefc 0%, transparent 80%);
}
.scn-nora-defends-self .bg-bright {
  position: absolute; inset: 0 0 20% 0;
  background: linear-gradient(180deg, #fdf7ed 0%, #eadec8 100%);
  animation: nds-bright 10s ease-in-out infinite alternate;
}
.scn-nora-defends-self .floor-stage {
  position: absolute; bottom: 0; left: 0; right: 0; height: 20%;
  background: linear-gradient(180deg, #b8a492 0%, #907c6a 100%);
  border-radius: 0 0 30% 30% / 0 0 10% 10%;
}
.scn-nora-defends-self .curtain-left {
  position: absolute; top: 0; left: 0; width: 20%; height: 100%;
  background: linear-gradient(90deg, #a86a52 0%, #7a4a38 100%);
  clip-path: polygon(0 0, 100% 0, 80% 100%, 0 100%);
  animation: nds-curtain-l 7s ease-in-out infinite alternate;
}
.scn-nora-defends-self .curtain-right {
  position: absolute; top: 0; right: 0; width: 20%; height: 100%;
  background: linear-gradient(270deg, #a86a52 0%, #7a4a38 100%);
  clip-path: polygon(0 0, 100% 0, 100% 100%, 20% 100%);
  animation: nds-curtain-r 7s ease-in-out infinite alternate;
}
.scn-nora-defends-self .figure-nora-def {
  position: absolute; bottom: 18%; left: 50%; width: 30px; height: 56px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #1c1820 0%, #0c0a10 100%);
  border-radius: 50% 50% 40% 40% / 70% 70% 40% 40%;
  transform-origin: bottom center;
  animation: nds-figure 4s ease-in-out infinite;
}
.scn-nora-defends-self .shadow-nora {
  position: absolute; bottom: 0; left: 43%; width: 80px; height: 30px;
  background: radial-gradient(ellipse, rgba(0,0,0,0.35) 0%, transparent 100%);
  animation: nds-shadow 4s ease-in-out infinite;
}
.scn-nora-defends-self .light-source {
  position: absolute; top: 5%; left: 45%; width: 30px; height: 30px;
  background: radial-gradient(circle, #fff8e0 0%, #ffe8b0 50%, transparent 100%);
  filter: blur(4px);
  animation: nds-light 6s ease-in-out infinite alternate;
}
@keyframes nds-bright {
  0% { opacity: 0.8; }
  50% { opacity: 1; }
  100% { opacity: 0.85; }
}
@keyframes nds-curtain-l {
  0% { transform: translateX(0); }
  50% { transform: translateX(-8px); }
  100% { transform: translateX(0); }
}
@keyframes nds-curtain-r {
  0% { transform: translateX(0); }
  50% { transform: translateX(8px); }
  100% { transform: translateX(0); }
}
@keyframes nds-figure {
  0% { transform: translateX(-50%) rotate(-4deg); }
  25% { transform: translateX(-50%) rotate(6deg) scale(1.02); }
  50% { transform: translateX(-50%) rotate(-2deg); }
  75% { transform: translateX(-50%) rotate(8deg) scale(0.98); }
  100% { transform: translateX(-50%) rotate(0deg); }
}
@keyframes nds-shadow {
  0%,100% { transform: scaleX(1) translateX(0); opacity: 0.4; }
  50% { transform: scaleX(1.4) translateX(10px); opacity: 0.7; }
}
@keyframes nds-light {
  0% { opacity: 0.6; transform: scale(0.9); }
  50% { opacity: 1; transform: scale(1.1); }
  100% { opacity: 0.7; transform: scale(1); }
}

.scn-debt-progress {
  background: linear-gradient(180deg, #f5e6d0 0%, #d8c4a8 50%, #b8a088 100%), radial-gradient(ellipse at 50% 20%, #fff4e0 0%, transparent 60%);
  background-blend-mode: overlay;
}
.scn-debt-progress .desk {
  position: absolute; bottom: 0; left: 0; right: 0; height: 55%;
  background: linear-gradient(180deg, #8b6f5e 0%, #6b5040 100%);
  border-radius: 8% 8% 0 0 / 12% 12% 0 0;
  box-shadow: inset 0 8px 20px rgba(0,0,0,.25);
  z-index: 1;
}
.scn-debt-progress .ledger {
  position: absolute; bottom: 30%; left: 25%; width: 40%; height: 25%;
  background: linear-gradient(180deg, #c8b28a 0%, #a08060 100%);
  border-radius: 4% 4% 2% 2%;
  box-shadow: 0 4px 12px rgba(0,0,0,.15);
  animation: dp-ledger 6s ease-in-out infinite alternate;
  z-index: 2;
}
.scn-debt-progress .coin-1,
.scn-debt-progress .coin-2 {
  position: absolute; bottom: 35%; width: 6%; aspect-ratio: 1;
  background: radial-gradient(circle, #f0d090 0%, #c09040 60%, #806020 100%);
  border-radius: 50%;
  box-shadow: 0 2px 6px rgba(0,0,0,.2);
  animation: dp-coin 4s ease-in-out infinite alternate;
  z-index: 3;
}
.scn-debt-progress .coin-1 { left: 20%; }
.scn-debt-progress .coin-2 { left: 70%; animation-delay: -2s; }
.scn-debt-progress .lamp {
  position: absolute; bottom: 42%; left: 50%; transform: translateX(-50%);
  width: 8%; height: 12%;
  background: radial-gradient(circle at 50% 30%, #ffe080 0%, #f0b040 50%, #c08020 100%);
  border-radius: 50% 50% 10% 10% / 60% 60% 20% 20%;
  filter: blur(1px);
  box-shadow: 0 0 40px 20px rgba(240,176,64,.4), 0 0 80px 40px rgba(240,176,64,.2);
  animation: dp-lamp 3s ease-in-out infinite alternate;
  z-index: 4;
}
.scn-debt-progress .hand {
  position: absolute; bottom: 28%; left: 55%; width: 15%; height: 18%;
  background: linear-gradient(180deg, #c8a080 0%, #a07040 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%;
  transform-origin: bottom left;
  animation: dp-hand 5s ease-in-out infinite;
  z-index: 5;
}
.scn-debt-progress .paper {
  position: absolute; bottom: 32%; left: 30%; width: 18%; height: 14%;
  background: #f5e8d8;
  border-radius: 2% 4% 2% 4%;
  box-shadow: 0 0 4px rgba(0,0,0,.1);
  animation: dp-paper 8s ease-in-out infinite alternate;
  z-index: 3;
}
@keyframes dp-ledger {
  0% { transform: translateY(0) rotate(0deg); }
  50% { transform: translateY(-3px) rotate(0.5deg); }
  100% { transform: translateY(0) rotate(0deg); }
}
@keyframes dp-coin {
  0% { transform: translateY(0) rotate(0deg); }
  50% { transform: translateY(-2px) rotate(30deg); }
  100% { transform: translateY(0) rotate(0deg); }
}
@keyframes dp-lamp {
  0% { opacity: 0.85; box-shadow: 0 0 30px 15px rgba(240,176,64,.3); }
  50% { opacity: 1; box-shadow: 0 0 60px 30px rgba(240,176,64,.5); }
  100% { opacity: 0.9; box-shadow: 0 0 40px 20px rgba(240,176,64,.35); }
}
@keyframes dp-hand {
  0% { transform: translate(0, 0) rotate(-5deg); }
  25% { transform: translate(5px, -2px) rotate(-2deg); }
  50% { transform: translate(10px, 0) rotate(1deg); }
  75% { transform: translate(15px, -1px) rotate(-2deg); }
  100% { transform: translate(20px, 0) rotate(-5deg); }
}
@keyframes dp-paper {
  0% { transform: translateY(0) scale(1); }
  50% { transform: translateY(-2px) scale(1.02); }
  100% { transform: translateY(0) scale(1); }
}

.scn-item-fantasy-will {
  background: linear-gradient(180deg, #fdf4e0 0%, #e8d4b8 50%, #c8b098 100%), radial-gradient(ellipse at 50% 30%, #fff8ec 0%, transparent 70%);
}
.scn-item-fantasy-will .table {
  position: absolute; bottom: 0; left: 0; right: 0; height: 70%;
  background: linear-gradient(180deg, #a08870 0%, #80604a 100%);
  border-radius: 10% 10% 0 0 / 15% 15% 0 0;
  z-index: 1;
}
.scn-item-fantasy-will .will {
  position: absolute; bottom: 40%; left: 50%; transform: translateX(-50%);
  width: 45%; height: 30%;
  background: #f5eadc;
  border-radius: 4% 4% 2% 2%;
  box-shadow: 0 6px 20px rgba(0,0,0,.1);
  animation: ifw-will 4s ease-in-out infinite alternate;
  z-index: 2;
}
.scn-item-fantasy-will .inkwell {
  position: absolute; bottom: 38%; left: 28%; width: 8%; height: 10%;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0e06 100%);
  border-radius: 50% 50% 20% 20%;
  box-shadow: 0 2px 8px rgba(0,0,0,.3);
  animation: ifw-inkwell 5s ease-in-out infinite alternate;
  z-index: 3;
}
.scn-item-fantasy-will .pen {
  position: absolute; bottom: 42%; left: 32%; width: 12%; height: 4%;
  background: linear-gradient(180deg, #5a3a2a 0%, #3a1a0a 100%);
  border-radius: 40% 40% 10% 10%;
  transform-origin: bottom left;
  animation: ifw-pen 3s ease-in-out infinite;
  z-index: 3;
}
.scn-item-fantasy-will .hand-point {
  position: absolute; bottom: 38%; left: 65%; width: 14%; height: 16%;
  background: linear-gradient(180deg, #d4b594 0%, #a88060 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%;
  transform-origin: bottom left;
  animation: ifw-hand 6s ease-in-out infinite;
  z-index: 4;
}
@keyframes ifw-will {
  0% { transform: translateX(-50%) scale(1) rotate(0deg); }
  50% { transform: translateX(-50%) scale(1.05) rotate(1deg); }
  100% { transform: translateX(-50%) scale(1) rotate(0deg); }
}
@keyframes ifw-inkwell {
  0% { transform: translateY(0) rotate(0deg); }
  50% { transform: translateY(-2px) rotate(-2deg); }
  100% { transform: translateY(0) rotate(0deg); }
}
@keyframes ifw-pen {
  0% { transform: rotate(0deg) translateY(0); }
  25% { transform: rotate(-10deg) translateY(-2px); }
  50% { transform: rotate(0deg) translateY(0); }
  75% { transform: rotate(10deg) translateY(-1px); }
  100% { transform: rotate(0deg) translateY(0); }
}
@keyframes ifw-hand {
  0% { transform: translate(0, 0) rotate(-8deg); }
  30% { transform: translate(5px, -3px) rotate(-2deg); }
  60% { transform: translate(2px, -1px) rotate(-6deg); }
  100% { transform: translate(0, 0) rotate(-8deg); }
}

.scn-freedom-ecstasy {
  background: linear-gradient(180deg, #ffe8d0 0%, #ffd4a0 30%, #f0b880 70%, #d09860 100%), radial-gradient(ellipse at 50% 60%, #fff0d8 0%, transparent 50%);
}
.scn-freedom-ecstasy .window {
  position: absolute; top: 0; left: 0; right: 0; height: 70%;
  background: linear-gradient(180deg, #ffe4b0 0%, #ffc880 50%, #f0a858 100%);
  border-radius: 0 0 20% 20% / 0 0 30% 30%;
  z-index: 1;
}
.scn-freedom-ecstasy .sunlight {
  position: absolute; top: 10%; left: 20%; width: 60%; height: 50%;
  background: linear-gradient(135deg, rgba(255,200,100,0.3) 0%, transparent 100%);
  clip-path: polygon(0 0, 100% 0, 80% 100%, 20% 100%);
  animation: fe-sunlight 8s ease-in-out infinite alternate;
  z-index: 2;
}
.scn-freedom-ecstasy .woman {
  position: absolute; bottom: 20%; left: 50%; transform: translateX(-50%);
  width: 18%; height: 40%;
  background: linear-gradient(180deg, #2a1a0a 0%, #0a0502 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: fe-woman 6s ease-in-out infinite;
  z-index: 3;
}
.scn-freedom-ecstasy .child-1,
.scn-freedom-ecstasy .child-2 {
  position: absolute; bottom: 16%; width: 10%; height: 22%;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  z-index: 4;
}
.scn-freedom-ecstasy .child-1 {
  left: 20%;
  animation: fe-child1 5s ease-in-out infinite alternate;
}
.scn-freedom-ecstasy .child-2 {
  right: 20%;
  animation: fe-child2 5s ease-in-out infinite alternate-reverse;
}
.scn-freedom-ecstasy .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 20%;
  background: linear-gradient(180deg, #b08860 0%, #906840 100%);
  border-radius: 10% 10% 0 0 / 20% 20% 0 0;
  z-index: 0;
}
@keyframes fe-sunlight {
  0% { opacity: 0.6; transform: scale(1) rotate(0deg); }
  50% { opacity: 1; transform: scale(1.1) rotate(2deg); }
  100% { opacity: 0.6; transform: scale(1) rotate(0deg); }
}
@keyframes fe-woman {
  0% { transform: translateX(-50%) translateY(0) rotate(-2deg); }
  25% { transform: translateX(-50%) translateY(-10px) rotate(0deg); }
  50% { transform: translateX(-50%) translateY(0) rotate(2deg); }
  75% { transform: translateX(-50%) translateY(-8px) rotate(0deg); }
  100% { transform: translateX(-50%) translateY(0) rotate(-2deg); }
}
@keyframes fe-child1 {
  0% { transform: translate(0, 0) rotate(-5deg); }
  50% { transform: translate(2px, -5px) rotate(3deg); }
  100% { transform: translate(0, 0) rotate(-5deg); }
}
@keyframes fe-child2 {
  0% { transform: translate(0, 0) rotate(5deg); }
  50% { transform: translate(-2px, -5px) rotate(-3deg); }
  100% { transform: translate(0, 0) rotate(5deg); }
}

.scn-bell-announces-krogstad {
  background: linear-gradient(180deg, #d8c8b0 0%, #b8a080 40%, #90705a 100%), radial-gradient(ellipse at 50% 30%, #e8d8c0 0%, transparent 70%);
}
.scn-bell-announces-krogstad .wall {
  position: absolute; top: 0; left: 0; right: 0; height: 85%;
  background: linear-gradient(180deg, #c8b8a0 0%, #a08870 100%);
  z-index: 1;
}
.scn-bell-announces-krogstad .door {
  position: absolute; bottom: 15%; left: 50%; transform: translateX(-50%);
  width: 30%; height: 70%;
  background: linear-gradient(180deg, #7a604a 0%, #5a4030 100%);
  border-radius: 4% 4% 2% 2%;
  box-shadow: inset 0 0 20px rgba(0,0,0,.2), 4px 0 8px rgba(0,0,0,.15);
  z-index: 2;
}
.scn-bell-announces-krogstad .bell-rope {
  position: absolute; top: 20%; left: 70%; width: 2%; height: 25%;
  background: #a08060;
  border-radius: 10%;
  transform-origin: top center;
  animation: bak-rope 4s ease-in-out infinite alternate;
  z-index: 3;
}
.scn-bell-announces-krogstad .bell {
  position: absolute; top: 15%; left: 68%; width: 8%; height: 10%;
  background: radial-gradient(circle at 50% 40%, #d0a050 0%, #a07030 60%, #704820 100%);
  border-radius: 50% 50% 30% 30%;
  box-shadow: 0 0 12px rgba(160,112,48,.3);
  animation: bak-bell 4s ease-in-out infinite alternate;
  z-index: 4;
}
.scn-bell-announces-krogstad .figure-waiting {
  position: absolute; bottom: 20%; right: 15%; width: 12%; height: 35%;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0e06 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: bak-figure 6s ease-in-out infinite;
  z-index: 5;
}
.scn-bell-announces-krogstad .floor-inner {
  position: absolute; bottom: 0; left: 0; right: 0; height: 15%;
  background: linear-gradient(180deg, #806850 0%, #605040 100%);
  z-index: 0;
}
@keyframes bak-rope {
  0% { transform: rotate(0deg); }
  50% { transform: rotate(5deg); }
  100% { transform: rotate(0deg); }
}
@keyframes bak-bell {
  0% { transform: rotate(0deg) translateY(0); }
  50% { transform: rotate(3deg) translateY(-2px); }
  100% { transform: rotate(0deg) translateY(0); }
}
@keyframes bak-figure {
  0% { transform: translateY(0) rotate(0deg); }
  25% { transform: translateY(-3px) rotate(1deg); }
  50% { transform: translateY(0) rotate(0deg); }
  75% { transform: translateY(-2px) rotate(-1deg); }
  100% { transform: translateY(0) rotate(0deg); }
}

.scn-helmer-lecture {
  background: repeating-linear-gradient(180deg, #1c1410 0%, #2a1e18 8%, #1c1410 12%, #2a1e18 20%), radial-gradient(ellipse at 40% 60%, #3a2620 0%, #0e0a08 70%);
}
.scn-helmer-lecture .wall {
  position: absolute; inset: 0 0 25% 0;
  background: linear-gradient(90deg, transparent 20%, rgba(60,44,30,0.3) 40%, transparent 80%);
  animation: hml-wall 8s ease-in-out infinite alternate;
}
.scn-helmer-lecture .table {
  position: absolute; bottom: 10%; left: 20%; width: 60%; height: 8%;
  background: linear-gradient(180deg, #3a2a1a 0%, #241810 100%);
  border-radius: 4px; box-shadow: 0 2px 8px rgba(0,0,0,0.6);
}
.scn-helmer-lecture .lamp-glow {
  position: absolute; bottom: 32%; left: 38%; width: 40px; height: 40px;
  background: radial-gradient(circle, #d4a060 0%, #a07030 60%, transparent 80%);
  border-radius: 50%;
  box-shadow: 0 0 30px 10px rgba(180,120,60,0.4);
  animation: hml-lamp 4s ease-in-out infinite alternate;
}
.scn-helmer-lecture .helmer-torso {
  position: absolute; bottom: 12%; left: 32%; width: 60px; height: 80px;
  background: linear-gradient(180deg, #2a1e1a 0%, #1a1210 100%);
  border-radius: 45% 45% 40% 40% / 50% 50% 30% 30%;
  transform-origin: bottom center;
  animation: hml-torso 3s ease-in-out infinite;
}
.scn-helmer-lecture .helmer-arm {
  position: absolute; bottom: 30%; left: 62%; width: 12px; height: 50px;
  background: #2a1e1a;
  border-radius: 30% 30% 10% 10%;
  transform: rotate(-15deg);
  transform-origin: top left;
  animation: hml-arm 4s ease-in-out infinite;
}
.scn-helmer-lecture .helmer-finger {
  position: absolute; bottom: 60%; left: 78%; width: 6px; height: 14px;
  background: linear-gradient(45deg, #3a2a22 0%, #2a1e18 100%);
  border-radius: 30% 30% 50% 50%;
  transform: rotate(-25deg);
  transform-origin: bottom center;
  animation: hml-finger 2s ease-in-out infinite alternate;
}
.scn-helmer-lecture .nora-silhouette {
  position: absolute; bottom: 10%; left: 12%; width: 50px; height: 100px;
  background: linear-gradient(180deg, #1a1412 0%, #0e0a08 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  box-shadow: -4px 0 6px rgba(0,0,0,0.5);
  animation: hml-nora 6s ease-in-out infinite alternate;
}
.scn-helmer-lecture .shadow-floor {
  position: absolute; bottom: 0; left: 10%; width: 80%; height: 10%;
  background: linear-gradient(180deg, rgba(0,0,0,0.4) 0%, transparent 100%);
  animation: hml-shadow 4s ease-in-out infinite alternate;
}
@keyframes hml-wall { 0% {opacity:0.1} 50% {opacity:0.3} 100% {opacity:0.15} }
@keyframes hml-lamp { 0% {transform:scale(1); opacity:0.7} 50% {transform:scale(1.1) translate(2px,-2px); opacity:1} 100% {transform:scale(0.95); opacity:0.8} }
@keyframes hml-torso { 0% {transform:translateX(0) rotate(0)} 30% {transform:translateX(-4px) rotate(1deg)} 70% {transform:translateX(2px) rotate(-1deg)} 100% {transform:translateX(0) rotate(0)} }
@keyframes hml-arm { 0% {transform:rotate(-15deg) translate(0,0)} 40% {transform:rotate(-10deg) translate(2px,-1px)} 80% {transform:rotate(-18deg) translate(-1px,1px)} 100% {transform:rotate(-15deg) translate(0,0)} }
@keyframes hml-finger { 0% {transform:rotate(-25deg) translateX(0)} 40% {transform:rotate(-20deg) translateX(-2px)} 80% {transform:rotate(-30deg) translateX(1px)} 100% {transform:rotate(-25deg) translateX(0)} }
@keyframes hml-nora { 0% {transform:translateX(0) rotate(0)} 30% {transform:translateX(3px) rotate(2deg)} 60% {transform:translateX(-2px) rotate(-1deg)} 100% {transform:translateX(0) rotate(0)} }
@keyframes hml-shadow { 0% {opacity:0.4; transform:scaleY(1)} 50% {opacity:0.6; transform:scaleY(1.1)} 100% {opacity:0.45; transform:scaleY(0.95)} }

.scn-nora-distraction {
  background: linear-gradient(180deg, #3a3028 0%, #2a221c 50%, #1e1814 100%), radial-gradient(ellipse at 50% 100%, #3a3028 0%, transparent 70%);
}
.scn-nora-distraction .wall {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #2c221c 0%, transparent 100%);
  animation: nd-wall 10s ease-in-out infinite alternate;
}
.scn-nora-distraction .tree-trunk {
  position: absolute; bottom: 28%; left: 46%; width: 8%; height: 45%;
  background: linear-gradient(180deg, #6a4a30 0%, #4a2e1a 100%);
  border-radius: 20% 20% 10% 10%;
  box-shadow: inset 0 4px 8px rgba(0,0,0,0.5);
}
.scn-nora-distraction .tree-foliage {
  position: absolute; bottom: 50%; left: 34%; width: 32%; height: 30%;
  background: radial-gradient(ellipse at 50% 100%, #3a5a3a 0%, #1a2a1a 70%);
  border-radius: 50% 50% 50% 50% / 60% 60% 40% 40%;
  box-shadow: 0 8px 20px rgba(0,0,0,0.6);
  animation: nd-tree 14s ease-in-out infinite alternate;
}
.scn-nora-distraction .ornament-1 {
  position: absolute; bottom: 58%; left: 40%; width: 10px; height: 10px;
  background: #a0461a;
  border-radius: 50%;
  box-shadow: 0 0 6px 2px rgba(160,70,26,0.4);
  animation: nd-orb1 5s ease-in-out infinite alternate;
}
.scn-nora-distraction .ornament-2 {
  position: absolute; bottom: 64%; left: 54%; width: 8px; height: 8px;
  background: #5e1a1d;
  border-radius: 50%;
  box-shadow: 0 0 4px 1px rgba(94,26,29,0.5);
  animation: nd-orb2 7s ease-in-out infinite alternate-reverse;
}
.scn-nora-distraction .ornament-3 {
  position: absolute; bottom: 52%; left: 52%; width: 7px; height: 7px;
  background: #c8553d;
  border-radius: 50%;
  box-shadow: 0 0 5px 1px rgba(200,85,61,0.3);
  animation: nd-orb3 6s ease-in-out infinite alternate;
}
.scn-nora-distraction .nora-side {
  position: absolute; bottom: 10%; left: 20%; width: 40px; height: 100px;
  background: linear-gradient(180deg, #2a2220 0%, #1a1412 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: nd-nora 8s ease-in-out infinite;
}
.scn-nora-distraction .chair-back {
  position: absolute; bottom: 30%; left: 14%; width: 30px; height: 40px;
  background: #3a3028;
  border-radius: 20% 20% 0 0;
  box-shadow: inset -4px 0 6px rgba(0,0,0,0.5);
  animation: nd-chair 6s ease-in-out infinite alternate;
}
@keyframes nd-wall { 0% {opacity:0.2} 50% {opacity:0.4} 100% {opacity:0.25} }
@keyframes nd-tree { 0% {transform:scaleY(0.95) scaleX(0.98)} 50% {transform:scaleY(1.02) scaleX(1)} 100% {transform:scaleY(0.97) scaleX(0.99)} }
@keyframes nd-orb1 { 0% {transform:translateY(0) scale(1); opacity:0.7} 50% {transform:translateY(-2px) scale(1.1); opacity:1} 100% {transform:translateY(0) scale(0.95); opacity:0.8} }
@keyframes nd-orb2 { 0% {transform:translateY(0) rotate(0)} 50% {transform:translateY(-3px) rotate(15deg)} 100% {transform:translateY(0) rotate(0)} }
@keyframes nd-orb3 { 0% {transform:scale(1) translateX(0)} 50% {transform:scale(1.2) translateX(2px)} 100% {transform:scale(0.9) translateX(-1px)} }
@keyframes nd-nora { 0% {transform:translateX(0) rotate(0)} 30% {transform:translateX(2px) rotate(2deg)} 60% {transform:translateX(-1px) rotate(-1deg)} 100% {transform:translateX(0) rotate(0)} }
@keyframes nd-chair { 0% {transform:rotate(-1deg)} 50% {transform:rotate(1deg)} 100% {transform:rotate(-0.5deg)} }

.scn-nora-begs-for-krogstad {
  background: linear-gradient(180deg, #2a1e1a 0%, #1e1410 40%, #0e0a08 100%), radial-gradient(ellipse at 30% 60%, #2a1e1a 0%, transparent 80%);
}
.scn-nora-begs-for-krogstad .wall {
  position: absolute; inset: 0 0 20% 0;
  background: linear-gradient(90deg, transparent 10%, rgba(30,20,16,0.4) 40%, transparent 90%);
  animation: nbk-wall 12s ease-in-out infinite alternate;
}
.scn-nora-begs-for-krogstad .desk {
  position: absolute; bottom: 8%; left: 25%; width: 50%; height: 6%;
  background: linear-gradient(180deg, #3a2a1e 0%, #1e1410 100%);
  border-radius: 2px; box-shadow: 0 4px 10px rgba(0,0,0,0.7);
}
.scn-nora-begs-for-krogstad .helmer-chair {
  position: absolute; bottom: 14%; left: 60%; width: 40px; height: 50px;
  background: linear-gradient(180deg, #2e221c 0%, #1e1410 100%);
  border-radius: 20% 20% 0 0;
  box-shadow: inset -4px 0 6px rgba(0,0,0,0.6);
}
.scn-nora-begs-for-krogstad .helmer-lean {
  position: absolute; bottom: 24%; left: 62%; width: 50px; height: 60px;
  background: linear-gradient(180deg, #281e1a 0%, #1a1210 100%);
  border-radius: 45% 45% 40% 40% / 50% 50% 30% 30%;
  transform-origin: bottom center;
  animation: nbk-helmer 5s ease-in-out infinite;
}
.scn-nora-begs-for-krogstad .nora-bent {
  position: absolute; bottom: 8%; left: 20%; width: 36px; height: 70px;
  background: linear-gradient(180deg, #2a1e1a 0%, #1a1210 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: nbk-nora 4s ease-in-out infinite alternate;
}
.scn-nora-begs-for-krogstad .lamp-edge {
  position: absolute; bottom: 40%; left: 14%; width: 12px; height: 30px;
  background: radial-gradient(ellipse, #d4a060 0%, transparent 70%);
  border-radius: 50%;
  box-shadow: 0 0 20px 6px rgba(180,120,60,0.3);
  animation: nbk-lamp 3s ease-in-out infinite alternate;
}
.scn-nora-begs-for-krogstad .shadow-cast {
  position: absolute; bottom: 0; left: 15%; width: 70%; height: 8%;
  background: linear-gradient(180deg, rgba(0,0,0,0.5) 0%, transparent 100%);
  animation: nbk-shadow 6s ease-in-out infinite alternate;
}
@keyframes nbk-wall { 0% {opacity:0.1} 50% {opacity:0.3} 100% {opacity:0.15} }
@keyframes nbk-helmer { 0% {transform:rotate(0) translateX(0)} 30% {transform:rotate(3deg) translateX(-2px)} 60% {transform:rotate(-2deg) translateX(1px)} 100% {transform:rotate(0) translateX(0)} }
@keyframes nbk-nora { 0% {transform:rotate(-5deg) translateY(0)} 50% {transform:rotate(-2deg) translateY(-4px)} 100% {transform:rotate(-7deg) translateY(0)} }
@keyframes nbk-lamp { 0% {opacity:0.5; transform:scale(0.9)} 50% {opacity:0.8; transform:scale(1.1)} 100% {opacity:0.6; transform:scale(1)} }
@keyframes nbk-shadow { 0% {opacity:0.4; transform:scaleX(0.95)} 50% {opacity:0.7; transform:scaleX(1.05)} 100% {opacity:0.5; transform:scaleX(0.98)} }

.scn-nora-probes-about-krogstad {
  background: linear-gradient(180deg, #2e221c 0%, #1e1612 50%, #120e0a 100%), radial-gradient(ellipse at 50% 40%, #2e221c 0%, transparent 70%);
}
.scn-nora-probes-about-krogstad .wall {
  position: absolute; inset: 0 0 25% 0;
  background: linear-gradient(180deg, #1e1612 0%, transparent 100%);
  animation: npk-wall 9s ease-in-out infinite alternate;
}
.scn-nora-probes-about-krogstad .tree-top {
  position: absolute; bottom: 45%; left: 38%; width: 24%; height: 18%;
  background: radial-gradient(ellipse at 50% 100%, #3a5a3a 0%, #1a2a1a 70%);
  border-radius: 50% 50% 50% 50% / 60% 60% 40% 40%;
  box-shadow: 0 6px 16px rgba(0,0,0,0.5);
  animation: npk-tree-top 15s ease-in-out infinite alternate;
}
.scn-nora-probes-about-krogstad .tree-mid {
  position: absolute; bottom: 32%; left: 36%; width: 28%; height: 20%;
  background: radial-gradient(ellipse at 50% 100%, #2e4a2e 0%, #122212 70%);
  border-radius: 50% 50% 50% 50% / 60% 60% 40% 40%;
  box-shadow: 0 6px 16px rgba(0,0,0,0.5);
  animation: npk-tree-mid 18s ease-in-out infinite alternate-reverse;
}
.scn-nora-probes-about-krogstad .tree-base {
  position: absolute; bottom: 18%; left: 40%; width: 20%; height: 18%;
  background: radial-gradient(ellipse at 50% 100%, #2a4a2a 0%, #0a1a0a 70%);
  border-radius: 50% 50% 50% 50% / 60% 60% 40% 40%;
  box-shadow: 0 6px 16px rgba(0,0,0,0.5);
  animation: npk-tree-base 20s ease-in-out infinite alternate;
}
.scn-nora-probes-about-krogstad .ornament-glow-1 {
  position: absolute; bottom: 40%; left: 44%; width: 8px; height: 8px;
  background: #a0461a;
  border-radius: 50%;
  box-shadow: 0 0 10px 3px rgba(160,70,26,0.5);
  animation: npk-org1 4s ease-in-out infinite alternate;
}
.scn-nora-probes-about-krogstad .ornament-glow-2 {
  position: absolute; bottom: 28%; left: 50%; width: 6px; height: 6px;
  background: #5e1a1d;
  border-radius: 50%;
  box-shadow: 0 0 8px 2px rgba(94,26,29,0.4);
  animation: npk-org2 6s ease-in-out infinite alternate-reverse;
}
.scn-nora-probes-about-krogstad .nora-reach {
  position: absolute; bottom: 8%; left: 20%; width: 36px; height: 90px;
  background: linear-gradient(180deg, #2a1e1a 0%, #1a1210 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: npk-nora 5s ease-in-out infinite;
}
.scn-nora-probes-about-krogstad .table-candle {
  position: absolute; bottom: 12%; left: 60%; width: 20px; height: 30px;
  background: linear-gradient(180deg, #d4a060 0%, #a07030 70%);
  border-radius: 30% 30% 10% 10%;
  box-shadow: 0 0 20px 6px rgba(180,120,60,0.4);
  animation: npk-candle 3s ease-in-out infinite alternate;
}
@keyframes npk-wall { 0% {opacity:0.15} 50% {opacity:0.35} 100% {opacity:0.2} }
@keyframes npk-tree-top { 0% {transform:scaleY(0.95)} 50% {transform:scaleY(1.05)} 100% {transform:scaleY(0.98)} }
@keyframes npk-tree-mid { 0% {transform:scaleX(0.98) translateY(0)} 50% {transform:scaleX(1.02) translateY(-2px)} 100% {transform:scaleX(0.99) translateY(0)} }
@keyframes npk-tree-base { 0% {transform:scale(0.97)} 50% {transform:scale(1.03)} 100% {transform:scale(0.99)} }
@keyframes npk-org1 { 0% {transform:scale(0.9); opacity:0.6} 50% {transform:scale(1.2); opacity:1} 100% {transform:scale(0.95); opacity:0.7} }
@keyframes npk-org2 { 0% {transform:translateY(0) rotate(0)} 50% {transform:translateY(-3px) rotate(10deg)} 100% {transform:translateY(0) rotate(0)} }
@keyframes npk-nora { 0% {transform:translateX(0) rotate(0)} 30% {transform:translateX(4px) rotate(2deg)} 60% {transform:translateX(-2px) rotate(-1deg)} 100% {transform:translateX(0) rotate(0)} }
@keyframes npk-candle { 0% {opacity:0.5; transform:scaleY(0.95)} 50% {opacity:1; transform:scaleY(1.1)} 100% {opacity:0.7; transform:scaleY(0.98)} }

/* krogstad-forgery-revelation */
.scn-krogstad-forgery-revelation {
  background: linear-gradient(180deg, #0d0d0a 0%, #1a100b 40%, #2a1a0f 100%),
              radial-gradient(ellipse at 50% 30%, #3a2a1a 0%, transparent 70%);
}
.scn-krogstad-forgery-revelation .bg {
  position: absolute; inset: 0;
  background: linear-gradient(135deg, #1a100b 0%, #0d0a07 100%);
  animation: kfr-bg 6s ease-in-out infinite alternate;
}
.scn-krogstad-forgery-revelation .desk {
  position: absolute; bottom: 15%; left: 10%; right: 10%; height: 40%;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a100b 100%);
  border-radius: 4px; box-shadow: inset 0 4px 12px rgba(0,0,0,0.6);
  animation: kfr-desk 8s ease-in-out infinite;
}
.scn-krogstad-forgery-revelation .document {
  position: absolute; bottom: 45%; left: 38%; width: 24%; height: 20%;
  background: linear-gradient(135deg, #c8b898 0%, #a89070 100%);
  border-radius: 2px; box-shadow: 0 4px 8px rgba(0,0,0,0.5);
  transform: rotate(-3deg);
  animation: kfr-doc 4s ease-in-out infinite alternate;
}
.scn-krogstad-forgery-revelation .hand {
  position: absolute; bottom: 40%; left: 28%; width: 20%; height: 30%;
  background: linear-gradient(180deg, #6a5a4a 0%, #3a2a1a 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%;
  transform-origin: bottom center;
  animation: kfr-hand 2.5s ease-in-out infinite;
}
.scn-krogstad-forgery-revelation .lamp {
  position: absolute; top: 12%; left: 42%; width: 16%; height: 18%;
  background: radial-gradient(circle at 50% 30%, #f0c878 0%, #b89050 60%, transparent 100%);
  border-radius: 50% 50% 30% 30%;
  box-shadow: 0 0 40px 20px rgba(232, 184, 120, 0.3), 0 0 80px 40px rgba(232, 184, 120, 0.15);
  animation: kfr-lamp 3s ease-in-out infinite alternate;
}
.scn-krogstad-forgery-revelation .shadow {
  position: absolute; bottom: 12%; left: 20%; right: 30%; height: 50%;
  background: radial-gradient(ellipse at 50% 100%, rgba(0,0,0,0.5) 0%, transparent 60%);
  animation: kfr-shadow 5s ease-in-out infinite alternate;
}
.scn-krogstad-forgery-revelation .flicker {
  position: absolute; inset: 0;
  background: radial-gradient(ellipse at 50% 20%, rgba(232, 184, 120, 0.08) 0%, transparent 60%);
  animation: kfr-flicker 0.8s steps(2) infinite;
}
@keyframes kfr-bg { 0% { opacity: 0.85; } 50% { opacity: 1; } 100% { opacity: 0.9; } }
@keyframes kfr-desk { 0% { transform: scaleY(1); } 50% { transform: scaleY(0.98); } 100% { transform: scaleY(1.01); } }
@keyframes kfr-doc { 0% { transform: rotate(-3deg) translateY(0); } 50% { transform: rotate(-2deg) translateY(-2px); } 100% { transform: rotate(-4deg) translateY(1px); } }
@keyframes kfr-hand { 0% { transform: translate(0, 0) rotate(-2deg); } 25% { transform: translate(3px, -2px) rotate(1deg); } 50% { transform: translate(6px, 0) rotate(0deg); } 75% { transform: translate(3px, -1px) rotate(-1deg); } 100% { transform: translate(0, 0) rotate(-2deg); } }
@keyframes kfr-lamp { 0% { box-shadow: 0 0 30px 15px rgba(232,184,120,0.25), 0 0 60px 30px rgba(232,184,120,0.1); transform: scale(1); } 50% { box-shadow: 0 0 50px 25px rgba(232,184,120,0.4), 0 0 100px 50px rgba(232,184,120,0.2); transform: scale(1.02); } 100% { box-shadow: 0 0 35px 18px rgba(232,184,120,0.3), 0 0 70px 35px rgba(232,184,120,0.12); transform: scale(0.98); } }
@keyframes kfr-shadow { 0% { opacity: 0.5; transform: scaleX(1); } 50% { opacity: 0.7; transform: scaleX(0.95); } 100% { opacity: 0.6; transform: scaleX(1.05); } }
@keyframes kfr-flicker { 0% { opacity: 0; } 50% { opacity: 0.15; } 100% { opacity: 0; } }

/* item-forged-bond */
.scn-item-forged-bond {
  background: linear-gradient(180deg, #0f0f0a 0%, #1a1410 40%, #2a1e14 100%),
              radial-gradient(ellipse at 40% 50%, #4a382e 0%, transparent 60%);
}
.scn-item-forged-bond .bg {
  position: absolute; inset: 0;
  background: linear-gradient(135deg, #18120e 0%, #0e0a07 100%);
  animation: ifb-bg 8s ease-in-out infinite alternate;
}
.scn-item-forged-bond .desk {
  position: absolute; bottom: 10%; left: 5%; right: 5%; height: 45%;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a100b 100%);
  border-radius: 6px; box-shadow: inset 0 6px 16px rgba(0,0,0,0.7);
  animation: ifb-desk 10s ease-in-out infinite;
}
.scn-item-forged-bond .figure-left {
  position: absolute; bottom: 30%; left: 12%; width: 18%; height: 50%;
  background: linear-gradient(180deg, #3a2e24 0%, #1a1410 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: ifb-figL 3s ease-in-out infinite;
}
.scn-item-forged-bond .figure-right {
  position: absolute; bottom: 30%; right: 12%; width: 16%; height: 48%;
  background: linear-gradient(180deg, #2a1e14 0%, #0e0a07 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: ifb-figR 4s ease-in-out infinite alternate;
}
.scn-item-forged-bond .bond {
  position: absolute; bottom: 40%; left: 42%; width: 16%; height: 12%;
  background: linear-gradient(135deg, #b8a080 0%, #8a7050 100%);
  border-radius: 2px;
  box-shadow: 0 2px 6px rgba(0,0,0,0.6);
  animation: ifb-bond 2s ease-in-out infinite;
}
.scn-item-forged-bond .lamp {
  position: absolute; top: 8%; left: 38%; width: 24%; height: 20%;
  background: radial-gradient(circle at 50% 30%, #f0c878 0%, #b89050 60%, transparent 100%);
  border-radius: 50% 50% 20% 20%;
  box-shadow: 0 0 60px 30px rgba(232,184,120,0.3), 0 0 120px 60px rgba(232,184,120,0.1);
  animation: ifb-lamp 3.5s ease-in-out infinite alternate;
}
.scn-item-forged-bond .shadow {
  position: absolute; bottom: 5%; left: 10%; right: 10%; height: 60%;
  background: radial-gradient(ellipse at 50% 100%, rgba(0,0,0,0.6) 0%, transparent 60%);
  animation: ifb-shadow 6s ease-in-out infinite alternate;
}
.scn-item-forged-bond .vignette {
  position: absolute; inset: 0;
  background: radial-gradient(ellipse at 50% 50%, transparent 60%, rgba(0,0,0,0.4) 100%);
  animation: ifb-vign 10s ease-in-out infinite alternate;
}
@keyframes ifb-bg { 0% { opacity: 0.8; } 50% { opacity: 1; } 100% { opacity: 0.85; } }
@keyframes ifb-desk { 0% { transform: scaleY(1); } 50% { transform: scaleY(0.97); } 100% { transform: scaleY(1.02); } }
@keyframes ifb-figL { 0% { transform: translateX(0) rotate(0deg); } 25% { transform: translateX(4px) rotate(-2deg); } 50% { transform: translateX(-2px) rotate(1deg); } 75% { transform: translateX(3px) rotate(-1deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes ifb-figR { 0% { transform: translateX(0) translateY(0); } 50% { transform: translateX(-3px) translateY(-2px); } 100% { transform: translateX(2px) translateY(0); } }
@keyframes ifb-bond { 0% { transform: rotate(-2deg) scale(1); } 50% { transform: rotate(1deg) scale(1.02); } 100% { transform: rotate(-3deg) scale(0.98); } }
@keyframes ifb-lamp { 0% { box-shadow: 0 0 40px 20px rgba(232,184,120,0.25), 0 0 80px 40px rgba(232,184,120,0.1); } 50% { box-shadow: 0 0 70px 35px rgba(232,184,120,0.4), 0 0 140px 70px rgba(232,184,120,0.2); } 100% { box-shadow: 0 0 50px 25px rgba(232,184,120,0.3), 0 0 100px 50px rgba(232,184,120,0.15); } }
@keyframes ifb-shadow { 0% { opacity: 0.5; transform: scaleX(1); } 50% { opacity: 0.7; transform: scaleX(0.9); } 100% { opacity: 0.6; transform: scaleX(1.1); } }
@keyframes ifb-vign { 0% { opacity: 0.3; } 50% { opacity: 0.5; } 100% { opacity: 0.4; } }

/* nora-desperate-confession */
.scn-nora-desperate-confession {
  background: linear-gradient(180deg, #0e0e0a 0%, #1a120e 50%, #2a1a10 100%),
              radial-gradient(ellipse at 50% 60%, #3a2a1a 0%, transparent 70%);
}
.scn-nora-desperate-confession .bg {
  position: absolute; inset: 0;
  background: linear-gradient(135deg, #14100c 0%, #0a0806 100%);
  animation: ndc-bg 7s ease-in-out infinite alternate;
}
.scn-nora-desperate-confession .wall {
  position: absolute; top: 0; left: 0; right: 0; bottom: 40%;
  background: linear-gradient(180deg, #1a1410 0%, #0e0a07 100%);
  border-radius: 0 0 20% 20%;
  animation: ndc-wall 12s ease-in-out infinite alternate;
}
.scn-nora-desperate-confession .figure-nora {
  position: absolute; bottom: 30%; left: 35%; width: 30%; height: 60%;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a100b 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 35% 35%;
  transform-origin: bottom center;
  animation: ndc-nora 3s ease-in-out infinite;
}
.scn-nora-desperate-confession .hand-nora {
  position: absolute; bottom: 35%; left: 40%; width: 10%; height: 12%;
  background: linear-gradient(180deg, #6a5a4a 0%, #3a2a1a 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  transform-origin: bottom center;
  animation: ndc-hand 2s ease-in-out infinite alternate;
}
.scn-nora-desperate-confession .lamp {
  position: absolute; top: 10%; left: 42%; width: 16%; height: 20%;
  background: radial-gradient(circle at 50% 30%, #e8b878 0%, #b89050 60%, transparent 100%);
  border-radius: 50% 50% 30% 30%;
  box-shadow: 0 0 50px 25px rgba(232,184,120,0.3), 0 0 100px 50px rgba(232,184,120,0.15);
  animation: ndc-lamp 4s ease-in-out infinite alternate;
}
.scn-nora-desperate-confession .shadow-nora {
  position: absolute; bottom: 12%; left: 30%; right: 30%; height: 40%;
  background: radial-gradient(ellipse at 50% 100%, rgba(0,0,0,0.5) 0%, transparent 60%);
  animation: ndc-shadow 5s ease-in-out infinite alternate;
}
.scn-nora-desperate-confession .tear {
  position: absolute; bottom: 50%; left: 52%; width: 4%; height: 6%;
  background: radial-gradient(circle, #c8d8e8 0%, transparent 60%);
  border-radius: 50%;
  animation: ndc-tear 1.5s ease-in-out infinite;
}
@keyframes ndc-bg { 0% { opacity: 0.8; } 50% { opacity: 1; } 100% { opacity: 0.85; } }
@keyframes ndc-wall { 0% { transform: scaleY(1); } 50% { transform: scaleY(0.96); } 100% { transform: scaleY(1.02); } }
@keyframes ndc-nora { 0% { transform: translateY(0) rotate(0deg); } 25% { transform: translateY(-3px) rotate(-2deg); } 50% { transform: translateY(0) rotate(1deg); } 75% { transform: translateY(-2px) rotate(-1deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes ndc-hand { 0% { transform: translateY(0) scale(1); } 50% { transform: translateY(-4px) scale(1.1); } 100% { transform: translateY(0) scale(0.95); } }
@keyframes ndc-lamp { 0% { box-shadow: 0 0 40px 20px rgba(232,184,120,0.25), 0 0 80px 40px rgba(232,184,120,0.1); transform: scale(1); } 50% { box-shadow: 0 0 60px 30px rgba(232,184,120,0.4), 0 0 120px 60px rgba(232,184,120,0.2); transform: scale(1.02); } 100% { box-shadow: 0 0 45px 22px rgba(232,184,120,0.3), 0 0 90px 45px rgba(232,184,120,0.12); transform: scale(0.98); } }
@keyframes ndc-shadow { 0% { opacity: 0.4; transform: scaleX(1); } 50% { opacity: 0.6; transform: scaleX(0.9); } 100% { opacity: 0.5; transform: scaleX(1.1); } }
@keyframes ndc-tear { 0% { transform: translateY(0) scale(0.8); opacity: 0.6; } 50% { transform: translateY(10px) scale(1); opacity: 0.2; } 100% { transform: translateY(20px) scale(0.5); opacity: 0; } }

/* krogstad-threat */
.scn-krogstad-threat {
  background: linear-gradient(180deg, #0d0b08 0%, #1a120c 40%, #2a1a0e 100%),
              radial-gradient(ellipse at 50% 30%, #3a2818 0%, transparent 70%);
}
.scn-krogstad-threat .bg {
  position: absolute; inset: 0;
  background: linear-gradient(135deg, #120e0a 0%, #0a0806 100%);
  animation: kt-bg 6s ease-in-out infinite alternate;
}
.scn-krogstad-threat .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #2a1a10 0%, #0e0a07 100%);
  border-radius: 0 0 10% 10%;
  animation: kt-floor 10s ease-in-out infinite;
}
.scn-krogstad-threat .figure-krogstad {
  position: absolute; bottom: 25%; left: 15%; width: 25%; height: 65%;
  background: linear-gradient(180deg, #4a3828 0%, #1a100b 100%);
  border-radius: 45% 45% 35% 35% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: kt-krog 3s ease-in-out infinite;
}
.scn-krogstad-threat .figure-nora-small {
  position: absolute; bottom: 30%; right: 20%; width: 18%; height: 40%;
  background: linear-gradient(180deg, #2a1a10 0%, #0e0a07 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  transform-origin: bottom center;
  animation: kt-nora 4s ease-in-out infinite alternate;
}
.scn-krogstad-threat .desk {
  position: absolute; bottom: 15%; left: 30%; right: 25%; height: 20%;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a100b 100%);
  border-radius: 4px;
  box-shadow: inset 0 4px 12px rgba(0,0,0,0.6);
  animation: kt-desk 8s ease-in-out infinite;
}
.scn-krogstad-threat .lamp {
  position: absolute; top: 8%; left: 38%; width: 24%; height: 20%;
  background: radial-gradient(circle at 50% 30%, #e8b878 0%, #b89050 60%, transparent 100%);
  border-radius: 50% 50% 20% 20%;
  box-shadow: 0 0 60px 30px rgba(232,184,120,0.3), 0 0 120px 60px rgba(232,184,120,0.1);
  animation: kt-lamp 3.5s ease-in-out infinite alternate;
}
.scn-krogstad-threat .shadow-threat {
  position: absolute; bottom: 5%; left: 10%; right: 10%; height: 60%;
  background: radial-gradient(ellipse at 50% 100%, rgba(0,0,0,0.6) 0%, transparent 60%);
  animation: kt-shadow 6s ease-in-out infinite alternate;
}
.scn-krogstad-threat .hand-threat {
  position: absolute; bottom: 30%; left: 32%; width: 12%; height: 20%;
  background: linear-gradient(180deg, #6a5a4a 0%, #3a2a1a 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  transform-origin: top center;
  animation: kt-hand 2s ease-in-out infinite;
}
@keyframes kt-bg { 0% { opacity: 0.8; } 50% { opacity: 1; } 100% { opacity: 0.85; } }
@keyframes kt-floor { 0% { transform: scaleY(1); } 50% { transform: scaleY(0.98); } 100% { transform: scaleY(1.02); } }
@keyframes kt-krog { 0% { transform: translateY(0) rotate(0deg); } 25% { transform: translateY(-3px) rotate(2deg); } 50% { transform: translateY(0) rotate(-1deg); } 75% { transform: translateY(-2px) rotate(1deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes kt-nora { 0% { transform: translateX(0) scale(1); } 50% { transform: translateX(5px) scale(0.95); } 100% { transform: translateX(-2px) scale(1); } }
@keyframes kt-desk { 0% { transform: scaleY(1); } 50% { transform: scaleY(0.97); } 100% { transform: scaleY(1.01); } }
@keyframes kt-lamp { 0% { box-shadow: 0 0 40px 20px rgba(232,184,120,0.25), 0 0 80px 40px rgba(232,184,120,0.1); transform: scale(1); } 50% { box-shadow: 0 0 70px 35px rgba(232,184,120,0.4), 0 0 140px 70px rgba(232,184,120,0.2); transform: scale(1.03); } 100% { box-shadow: 0 0 50px 25px rgba(232,184,120,0.3), 0 0 100px 50px rgba(232,184,120,0.12); transform: scale(0.98); } }
@keyframes kt-shadow { 0% { opacity: 0.5; transform: scaleX(1); } 50% { opacity: 0.7; transform: scaleX(0.85); } 100% { opacity: 0.6; transform: scaleX(1.15); } }
@keyframes kt-hand { 0% { transform: translate(0, 0) rotate(-5deg); } 50% { transform: translate(5px, -3px) rotate(5deg); } 100% { transform: translate(0, 0) rotate(-5deg); } }

.scn-father-concealment {
  background: linear-gradient(135deg, #f5e6d3 0%, #d4c4a8 40%, #b8a68a 100%);
}
.scn-father-concealment .wall {
  position: absolute; inset: 0 0 35% 0;
  background: linear-gradient(180deg, #ede0d0 0%, #d9cbb5 60%, #c2b19a 100%);
  box-shadow: inset 0 4px 12px rgba(90,60,30,.2);
  animation: fc-wall 10s ease-in-out infinite;
}
.scn-father-concealment .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 35%;
  background: linear-gradient(180deg, #6b4e37 0%, #4d3625 60%, #322114 100%);
  border-radius: 8% 8% 0 0;
}
.scn-father-concealment .window {
  position: absolute; top: 10%; left: 65%; width: 22%; height: 45%;
  background: radial-gradient(ellipse at 50% 30%, #fef7e0 0%, #e6d8b8 40%, transparent 70%);
  border: 8px solid #8b7355; border-radius: 4px;
  box-shadow: inset 0 0 30px rgba(255,230,150,.4);
  animation: fc-window 8s ease-in-out infinite alternate;
}
.scn-father-concealment .desk {
  position: absolute; bottom: 20%; left: 30%; width: 40%; height: 12%;
  background: linear-gradient(180deg, #7a5d42 0%, #5c412a 100%);
  border-radius: 4px 4px 12px 12px;
  box-shadow: 0 6px 12px rgba(0,0,0,.3);
  transform: perspective(600px) rotateX(6deg);
}
.scn-father-concealment .figure {
  position: absolute; bottom: 28%; left: 38%; width: 22px; height: 50px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a1008 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: fc-figure 4s ease-in-out infinite;
}
.scn-father-concealment .letter {
  position: absolute; bottom: 32%; left: 48%; width: 30px; height: 20px;
  background: #f0e6d0;
  border: 1px solid #8b7355; border-radius: 2px;
  transform: rotate(-10deg);
  box-shadow: 0 2px 4px rgba(0,0,0,.2);
  animation: fc-letter 3s ease-in-out infinite alternate;
}
.scn-father-concealment .shadow {
  position: absolute; bottom: 20%; left: 35%; width: 30%; height: 8%;
  background: radial-gradient(ellipse, rgba(0,0,0,.25) 0%, transparent 70%);
  filter: blur(6px);
  animation: fc-shadow 5s ease-in-out infinite alternate;
}
.scn-father-concealment .lamp {
  position: absolute; top: 20%; left: 20%; width: 12px; height: 18px;
  background: radial-gradient(circle, #ffd080 0%, #c89350 70%);
  border-radius: 40% 40% 20% 20%;
  box-shadow: 0 0 30px 8px rgba(200,147,80,.6), 0 0 60px 20px rgba(200,147,80,.3);
  animation: fc-lamp 4s ease-in-out infinite alternate;
}
@keyframes fc-wall {
  0%,100% { opacity: 0.9; }
  50% { opacity: 1; }
}
@keyframes fc-window {
  0% { transform: translateY(0); opacity: 0.8; }
  50% { transform: translateY(-2px); opacity: 1; }
  100% { transform: translateY(2px); opacity: 0.85; }
}
@keyframes fc-figure {
  0% { transform: translateX(0) rotate(0deg); }
  25% { transform: translateX(4px) rotate(-2deg); }
  50% { transform: translateX(0) rotate(2deg); }
  75% { transform: translateX(-4px) rotate(0deg); }
  100% { transform: translateX(0) rotate(-1deg); }
}
@keyframes fc-letter {
  0% { transform: rotate(-10deg) translateY(0); }
  100% { transform: rotate(-8deg) translateY(-2px); }
}
@keyframes fc-shadow {
  0% { transform: scaleX(1); opacity: 0.6; }
  100% { transform: scaleX(1.05); opacity: 0.8; }
}
@keyframes fc-lamp {
  0% { box-shadow: 0 0 20px 6px rgba(200,147,80,.4), 0 0 50px 15px rgba(200,147,80,.2); }
  50% { box-shadow: 0 0 40px 12px rgba(255,208,128,.6), 0 0 80px 25px rgba(255,208,128,.3); }
  100% { box-shadow: 0 0 25px 8px rgba(200,147,80,.5), 0 0 60px 20px rgba(200,147,80,.25); }
}

.scn-husband-kept-ignorant {
  background: linear-gradient(180deg, #e8dfd2 0%, #d4c5b2 100%);
}
.scn-husband-kept-ignorant .bg-wall {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #f0e8dc 0%, #d8ccbc 60%, #bfb09e 100%);
}
.scn-husband-kept-ignorant .sofa {
  position: absolute; bottom: 20%; left: 15%; width: 70%; height: 20%;
  background: linear-gradient(180deg, #6d4935 0%, #4f3220 100%);
  border-radius: 30% 30% 10% 10% / 50% 50% 20% 20%;
  box-shadow: 0 8px 16px rgba(0,0,0,.2);
}
.scn-husband-kept-ignorant .man-silhouette {
  position: absolute; bottom: 22%; left: 25%; width: 30px; height: 55px;
  background: #2a1e12;
  border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%;
  animation: hk-man 6s ease-in-out infinite;
}
.scn-husband-kept-ignorant .woman-profile {
  position: absolute; bottom: 22%; left: 55%; width: 24px; height: 52px;
  background: #382a1c;
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform: scaleX(-1); /* faces right, towards man */
  animation: hk-woman 4s ease-in-out infinite alternate;
}
.scn-husband-kept-ignorant .envelope {
  position: absolute; bottom: 30%; left: 60%; width: 28px; height: 18px;
  background: #f0e2cc;
  border: 1px solid #8b7355;
  border-radius: 2px;
  transform: rotate(15deg);
  box-shadow: 0 2px 6px rgba(0,0,0,.15);
  animation: hk-envelope 7s ease-in-out infinite alternate;
}
.scn-husband-kept-ignorant .newspaper {
  position: absolute; bottom: 28%; left: 28%; width: 36px; height: 26px;
  background: #f5f0e6;
  border-radius: 2px;
  transform: perspective(400px) rotateY(10deg);
  box-shadow: 0 2px 4px rgba(0,0,0,.1);
  animation: hk-paper 8s linear infinite;
}
.scn-husband-kept-ignorant .lamp-light {
  position: absolute; top: 12%; left: 40%; width: 20px; height: 30px;
  background: radial-gradient(ellipse at 50% 100%, #ffd89b 0%, #e6b87a 60%, transparent 80%);
  border-radius: 50% 50% 0 0;
  box-shadow: 0 0 40px 12px rgba(230,184,122,.5), 0 0 80px 25px rgba(230,184,122,.2);
  animation: hk-lamp 5s ease-in-out infinite alternate;
}
@keyframes hk-man {
  0%,100% { transform: translateY(0) rotate(0deg); }
  50% { transform: translateY(-2px) rotate(2deg); }
}
@keyframes hk-woman {
  0% { transform: scaleX(-1) translateY(0); }
  50% { transform: scaleX(-1) translateY(-1px); }
  100% { transform: scaleX(-1) translateY(2px); }
}
@keyframes hk-envelope {
  0% { transform: rotate(15deg) translateX(0); }
  100% { transform: rotate(12deg) translateX(1px); }
}
@keyframes hk-paper {
  0% { transform: perspective(400px) rotateY(10deg); }
  50% { transform: perspective(400px) rotateY(12deg); }
  100% { transform: perspective(400px) rotateY(8deg); }
}
@keyframes hk-lamp {
  0% { box-shadow: 0 0 30px 10px rgba(230,184,122,.4), 0 0 60px 20px rgba(230,184,122,.15); }
  50% { box-shadow: 0 0 50px 15px rgba(255,216,155,.6), 0 0 90px 30px rgba(255,216,155,.3); }
  100% { box-shadow: 0 0 35px 12px rgba(230,184,122,.5), 0 0 70px 25px rgba(230,184,122,.2); }
}

.scn-future-revelation-plan {
  background: linear-gradient(180deg, #fdf6ed 0%, #f0e4d4 100%);
}
.scn-future-revelation-plan .bg-soft {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(180deg, #fff9f0 0%, #f2eadc 60%, #e4d6c4 100%);
  animation: fr-bg 12s ease-in-out infinite alternate;
}
.scn-future-revelation-plan .curtains {
  position: absolute; top: 0; left: 60%; width: 40%; height: 100%;
  background: linear-gradient(135deg, #d4b896 0%, #b89e7a 100%);
  border-radius: 80% 0 0 80% / 100% 0 0 100%;
  box-shadow: inset -6px 0 12px rgba(0,0,0,.1);
  animation: fr-curtains 15s ease-in-out infinite alternate;
}
.scn-future-revelation-plan .mirror-stand {
  position: absolute; bottom: 18%; left: 38%; width: 24%; height: 35%;
  background: linear-gradient(180deg, #7a5d42 0%, #4d3625 100%);
  border-radius: 8px 8px 4px 4px;
  box-shadow: 0 8px 16px rgba(0,0,0,.15);
}
.scn-future-revelation-plan .mirror-glass {
  position: absolute; bottom: 25%; left: 40%; width: 20%; height: 28%;
  background: radial-gradient(ellipse at 50% 40%, #fefef5 0%, #e0d8c8 80%);
  border: 6px solid #8b7355;
  border-radius: 4px;
  box-shadow: inset 0 0 20px rgba(200,180,150,.5);
  animation: fr-mirror 8s ease-in-out infinite alternate;
}
.scn-future-revelation-plan .woman-reflection {
  position: absolute; bottom: 30%; left: 44%; width: 18px; height: 42px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1c0e 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform: scaleX(-1);
  opacity: 0.7;
  animation: fr-reflection 5s ease-in-out infinite;
}
.scn-future-revelation-plan .flowers {
  position: absolute; bottom: 22%; left: 38%; width: 20px; height: 30px;
  background: radial-gradient(circle at 50% 80%, #e8c8a0 0%, #c8a880 60%, transparent 80%);
  border-radius: 50% 50% 30% 30%;
  box-shadow: 0 4px 8px rgba(0,0,0,.1);
  animation: fr-flowers 6s ease-in-out infinite alternate;
}
.scn-future-revelation-plan .sunbeam {
  position: absolute; top: 5%; left: 20%; width: 30%; height: 60%;
  background: linear-gradient(135deg, rgba(255,240,200,.3) 0%, rgba(255,240,200,.1) 40%, transparent 60%);
  filter: blur(15px);
  animation: fr-sunbeam 20s linear infinite;
}
@keyframes fr-bg {
  0% { opacity: 0.9; }
  50% { opacity: 1; }
  100% { opacity: 0.95; }
}
@keyframes fr-curtains {
  0% { transform: translateX(0); }
  50% { transform: translateX(-3px); }
  100% { transform: translateX(0); }
}
@keyframes fr-mirror {
  0% { box-shadow: inset 0 0 15px rgba(200,180,150,.4); }
  50% { box-shadow: inset 0 0 30px rgba(255,245,220,.6); }
  100% { box-shadow: inset 0 0 20px rgba(200,180,150,.5); }
}
@keyframes fr-reflection {
  0% { transform: scaleX(-1) translateY(0) rotate(0deg); }
  25% { transform: scaleX(-1) translateY(-1px) rotate(2deg); }
  50% { transform: scaleX(-1) translateY(0) rotate(-1deg); }
  75% { transform: scaleX(-1) translateY(1px) rotate(1deg); }
  100% { transform: scaleX(-1) translateY(0) rotate(0deg); }
}
@keyframes fr-flowers {
  0% { transform: translateY(0) rotate(-5deg); }
  50% { transform: translateY(-2px) rotate(0deg); }
  100% { transform: translateY(0) rotate(5deg); }
}
@keyframes fr-sunbeam {
  0% { transform: rotate(0deg) translateX(0); }
  33% { transform: rotate(2deg) translateX(5px); }
  66% { transform: rotate(-1deg) translateX(-3px); }
  100% { transform: rotate(0deg) translateX(0); }
}

.scn-self-denial-struggle {
  background: linear-gradient(180deg, #e3d6c8 0%, #cfbfad 100%);
}
.scn-self-denial-struggle .room-bg {
  position: absolute; inset: 0 0 35% 0;
  background: linear-gradient(180deg, #eae2d6 0%, #d8cebe 60%, #c4b8a6 100%);
  box-shadow: inset 0 6px 18px rgba(0,0,0,.05);
  animation: sd-bg 14s ease-in-out infinite alternate;
}
.scn-self-denial-struggle .table {
  position: absolute; bottom: 18%; left: 25%; right: 25%; height: 20%;
  background: linear-gradient(180deg, #6b4e37 0%, #4d3625 100%);
  border-radius: 8px 8px 20px 20px;
  box-shadow: 0 8px 16px rgba(0,0,0,.2);
  transform: perspective(600px) rotateX(4deg);
}
.scn-self-denial-struggle .sewing-basket {
  position: absolute; bottom: 28%; left: 35%; width: 28px; height: 22px;
  background: radial-gradient(ellipse at 50% 40%, #c8a880 0%, #a88c6a 70%);
  border-radius: 40% 40% 20% 20%;
  box-shadow: inset 0 -4px 6px rgba(0,0,0,.2);
  animation: sd-basket 6s ease-in-out infinite alternate;
}
.scn-self-denial-struggle .woman-bent {
  position: absolute; bottom: 22%; left: 45%; width: 20px; height: 48px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a1008 100%);
  border-radius: 50% 50% 40% 40% / 70% 70% 30% 30%;
  transform-origin: bottom center;
  animation: sd-woman 5s ease-in-out infinite;
}
.scn-self-denial-struggle .coins {
  position: absolute; bottom: 26%; left: 52%; width: 16px; height: 16px;
  background: radial-gradient(circle, #ffd080 0%, #b89350 70%);
  border-radius: 50%;
  box-shadow: 0 0 8px 2px rgba(184,147,80,.3);
  animation: sd-coins 4s ease-in-out infinite alternate;
}
.scn-self-denial-struggle .lamp-glow {
  position: absolute; top: 12%; left: 42%; width: 18px; height: 24px;
  background: radial-gradient(ellipse at 50% 100%, #ffdba0 0%, #e6b87a 50%, transparent 80%);
  border-radius: 50% 50% 0 0;
  box-shadow: 0 0 40px 12px rgba(230,184,122,.4), 0 0 80px 25px rgba(230,184,122,.15);
  animation: sd-lamp 7s ease-in-out infinite alternate;
}
.scn-self-denial-struggle .shadow-dark {
  position: absolute; bottom: 16%; left: 40%; width: 20%; height: 10%;
  background: radial-gradient(ellipse, rgba(0,0,0,.2) 0%, transparent 70%);
  filter: blur(8px);
  animation: sd-shadow 8s ease-in-out infinite alternate;
}
@keyframes sd-bg {
  0% { opacity: 0.85; }
  50% { opacity: 1; }
  100% { opacity: 0.9; }
}
@keyframes sd-basket {
  0% { transform: translateY(0) rotate(-2deg); }
  50% { transform: translateY(-1px) rotate(0deg); }
  100% { transform: translateY(0) rotate(2deg); }
}
@keyframes sd-woman {
  0% { transform: translateY(0) rotate(0deg); }
  25% { transform: translateY(-2px) rotate(-3deg); }
  50% { transform: translateY(0) rotate(3deg); }
  75% { transform: translateY(2px) rotate(-1deg); }
  100% { transform: translateY(0) rotate(0deg); }
}
@keyframes sd-coins {
  0% { transform: translateY(0) scale(1); }
  50% { transform: translateY(-2px) scale(1.05); }
  100% { transform: translateY(2px) scale(0.95); }
}
@keyframes sd-lamp {
  0% { box-shadow: 0 0 30px 8px rgba(230,184,122,.3), 0 0 60px 20px rgba(230,184,122,.1); }
  50% { box-shadow: 0 0 50px 15px rgba(255,219,160,.5), 0 0 90px 30px rgba(255,219,160,.2); }
  100% { box-shadow: 0 0 35px 10px rgba(230,184,122,.4), 0 0 70px 25px rgba(230,184,122,.15); }
}
@keyframes sd-shadow {
  0% { transform: scaleX(1); opacity: 0.5; }
  100% { transform: scaleX(1.04); opacity: 0.7; }
}

/* rank-confesses-love */
.scn-rank-confesses-love {
  background: linear-gradient(180deg, #3a2210 0%, #1a0e06 30%, #0d0703 70%, #000000 100%), radial-gradient(ellipse at 50% 100%, #5c3a1a 0%, transparent 60%);
}
.scn-rank-confesses-love .wall {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #4a2a0e 0%, #2a1a0a 100%);
  animation: rc-wall 20s ease-in-out infinite alternate;
}
.scn-rank-confesses-love .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #2a1a0a 0%, #1a0e06 100%);
  border-radius: 40% 30% 0 0 / 20% 15% 0 0;
  box-shadow: inset 0 10px 20px rgba(0,0,0,0.7);
}
.scn-rank-confesses-love .lamp {
  position: absolute; bottom: 45%; left: 25%; width: 20px; height: 30px;
  background: radial-gradient(circle, #f0b060 0%, #c08040 60%, #804020 100%);
  border-radius: 40% 40% 20% 20%;
  box-shadow: 0 0 40px 15px #c08040, 0 0 80px 30px rgba(192,128,64,0.5);
  animation: rc-lamp 3s ease-in-out infinite alternate;
}
.scn-rank-confesses-love .glow {
  position: absolute; inset: 0;
  background: radial-gradient(ellipse at 25% 45%, rgba(200,160,80,0.15) 0%, transparent 60%);
  animation: rc-glow 4s ease-in-out infinite alternate;
}
.scn-rank-confesses-love .figure {
  position: absolute; bottom: 25%; right: 25%; width: 30px; height: 70px;
  background: linear-gradient(180deg, #0a0502 0%, #1a0e06 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: rc-figure 5s ease-in-out infinite alternate;
}
.scn-rank-confesses-love .table {
  position: absolute; bottom: 20%; left: 35%; width: 60px; height: 12px;
  background: linear-gradient(180deg, #5c3a1a 0%, #3a2210 100%);
  border-radius: 4px;
  box-shadow: 0 4px 8px rgba(0,0,0,0.6);
  animation: rc-table 8s ease-in-out infinite alternate;
}
.scn-rank-confesses-love .shadow {
  position: absolute; bottom: 18%; left: 20%; width: 40px; height: 20px;
  background: rgba(0,0,0,0.5);
  border-radius: 50%;
  filter: blur(6px);
  animation: rc-shadow 5s ease-in-out infinite alternate;
}
@keyframes rc-wall {
  0% { opacity: 0.8; }
  50% { opacity: 1; }
  100% { opacity: 0.85; }
}
@keyframes rc-lamp {
  0% { transform: scale(1); box-shadow: 0 0 30px 10px #c08040; }
  50% { transform: scale(1.05); box-shadow: 0 0 50px 20px #d0a060; }
  100% { transform: scale(0.97); box-shadow: 0 0 35px 12px #b07040; }
}
@keyframes rc-glow {
  0% { opacity: 0.4; }
  50% { opacity: 0.7; }
  100% { opacity: 0.5; }
}
@keyframes rc-figure {
  0% { transform: translateX(0) translateY(0) rotate(-1deg); }
  25% { transform: translateX(-2px) translateY(-2px) rotate(1deg); }
  50% { transform: translateX(2px) translateY(-1px) rotate(-2deg); }
  75% { transform: translateX(-1px) translateY(1px) rotate(0deg); }
  100% { transform: translateX(0) translateY(0) rotate(1deg); }
}
@keyframes rc-table {
  0% { transform: scaleY(1); }
  50% { transform: scaleY(1.02); }
  100% { transform: scaleY(0.98); }
}
@keyframes rc-shadow {
  0% { transform: scaleX(1) scaleY(1); opacity: 0.5; }
  50% { transform: scaleX(1.2) scaleY(0.8); opacity: 0.7; }
  100% { transform: scaleX(0.9) scaleY(1.1); opacity: 0.4; }
}

/* rank-declares-himself */
.scn-rank-declares-himself {
  background: linear-gradient(180deg, #1a1a2e 0%, #0e0e1a 40%, #050510 100%), radial-gradient(ellipse at 50% 100%, #2a2a3e 0%, transparent 70%);
}
.scn-rank-declares-himself .bg-deep {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #1a1a2e 0%, #0e0e1a 100%);
  animation: rd-bg 15s ease-in-out infinite alternate;
}
.scn-rank-declares-himself .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #0e0e1a 0%, #050510 100%);
  border-radius: 50% 40% 0 0 / 30% 20% 0 0;
  box-shadow: inset 0 8px 20px rgba(0,0,0,0.8);
}
.scn-rank-declares-himself .light {
  position: absolute; bottom: 50%; left: 50%; width: 8px; height: 8px;
  background: radial-gradient(circle, #d0b060 0%, #807040 60%, #402020 100%);
  border-radius: 50%;
  box-shadow: 0 0 30px 15px rgba(128,112,64,0.6), 0 0 60px 30px rgba(64,32,32,0.3);
  animation: rd-light 2s ease-in-out infinite alternate;
}
.scn-rank-declares-himself .figure-a {
  position: absolute; bottom: 25%; left: 30%; width: 25px; height: 65px;
  background: linear-gradient(180deg, #0a0a14 0%, #1a1a2e 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%;
  transform: translate(-50%, 0) rotate(-5deg);
  transform-origin: bottom center;
  animation: rd-figure-a 4s ease-in-out infinite alternate;
}
.scn-rank-declares-himself .figure-b {
  position: absolute; bottom: 25%; left: 70%; width: 25px; height: 60px;
  background: linear-gradient(180deg, #0a0a14 0%, #1a1a2e 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%;
  transform-origin: bottom center;
  animation: rd-figure-b 5s ease-in-out infinite alternate;
}
.scn-rank-declares-himself .table {
  position: absolute; bottom: 22%; left: 50%; width: 40px; height: 10px;
  background: linear-gradient(180deg, #2a2a3e 0%, #1a1a2e 100%);
  border-radius: 3px;
  transform: translateX(-50%);
  box-shadow: 0 4px 8px rgba(0,0,0,0.7);
}
.scn-rank-declares-himself .shadow {
  position: absolute; bottom: 18%; left: 35%; width: 60px; height: 15px;
  background: rgba(0,0,0,0.6);
  border-radius: 50%;
  filter: blur(5px);
  animation: rd-shadow 6s ease-in-out infinite alternate;
}
@keyframes rd-bg {
  0% { opacity: 0.7; }
  50% { opacity: 1; }
  100% { opacity: 0.8; }
}
@keyframes rd-light {
  0% { transform: scale(1); box-shadow: 0 0 20px 10px rgba(128,112,64,0.5); }
  50% { transform: scale(1.1); box-shadow: 0 0 40px 20px rgba(128,112,64,0.8); }
  100% { transform: scale(0.95); box-shadow: 0 0 25px 12px rgba(128,112,64,0.4); }
}
@keyframes rd-figure-a {
  0% { transform: translate(-50%, 0) rotate(-5deg); }
  50% { transform: translate(-50%, -3px) rotate(-2deg); }
  100% { transform: translate(-50%, 0) rotate(-7deg); }
}
@keyframes rd-figure-b {
  0% { transform: translate(0, 0) rotate(3deg); }
  50% { transform: translate(-2px, -2px) rotate(5deg); }
  100% { transform: translate(1px, 0) rotate(1deg); }
}
@keyframes rd-shadow {
  0% { transform: scaleX(1); opacity: 0.5; }
  50% { transform: scaleX(1.3); opacity: 0.8; }
  100% { transform: scaleX(0.9); opacity: 0.4; }
}

/* nora-rejects-help */
.scn-nora-rejects-help {
  background: linear-gradient(180deg, #1a2a1a 0%, #0e1a0e 40%, #000a00 100%), radial-gradient(ellipse at 70% 50%, #2a3a2a 0%, transparent 60%);
}
.scn-nora-rejects-help .bg-green {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #1a2a1a 0%, #0e1a0e 100%);
  animation: nr-bg 18s ease-in-out infinite alternate;
}
.scn-nora-rejects-help .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #0e1a0e 0%, #000a00 100%);
  border-radius: 30% 40% 0 0 / 20% 30% 0 0;
  box-shadow: inset 0 8px 20px rgba(0,0,0,0.8);
}
.scn-nora-rejects-help .gaslamp {
  position: absolute; bottom: 45%; right: 20%; width: 12px; height: 20px;
  background: radial-gradient(circle, #c8e06a 0%, #809040 60%, #405020 100%);
  border-radius: 40% 40% 20% 20%;
  box-shadow: 0 0 30px 10px #c8e06a, 0 0 60px 25px rgba(200,224,106,0.4);
  animation: nr-lamp 3s ease-in-out infinite alternate;
}
.scn-nora-rejects-help .halo {
  position: absolute; inset: 0;
  background: radial-gradient(ellipse at 80% 45%, rgba(200,224,106,0.12) 0%, transparent 60%);
  animation: nr-halo 5s ease-in-out infinite alternate;
}
.scn-nora-rejects-help .nora {
  position: absolute; bottom: 25%; left: 25%; width: 28px; height: 70px;
  background: linear-gradient(180deg, #0a0a0a 0%, #1a1a1a 100%);
  border-radius: 45% 45% 35% 35% / 55% 55% 45% 45%;
  transform: rotate(10deg);
  transform-origin: bottom center;
  animation: nr-nora 4s ease-in-out infinite alternate;
}
.scn-nora-rejects-help .rank-arm {
  position: absolute; bottom: 30%; left: 55%; width: 8px; height: 40px;
  background: linear-gradient(180deg, #2a2a2a 0%, #1a1a1a 100%);
  border-radius: 30% 30% 10% 10%;
  transform: rotate(20deg);
  transform-origin: bottom left;
  animation: nr-arm 6s ease-in-out infinite alternate;
}
.scn-nora-rejects-help .shadow {
  position: absolute; bottom: 18%; left: 20%; width: 40px; height: 15px;
  background: rgba(0,0,0,0.7);
  border-radius: 50%;
  filter: blur(6px);
  animation: nr-shadow 5s ease-in-out infinite alternate;
}
@keyframes nr-bg {
  0% { opacity: 0.8; }
  50% { opacity: 1; }
  100% { opacity: 0.85; }
}
@keyframes nr-lamp {
  0% { transform: scale(1); box-shadow: 0 0 20px 8px #c8e06a; }
  50% { transform: scale(1.08); box-shadow: 0 0 40px 18px #d8f07a; }
  100% { transform: scale(0.95); box-shadow: 0 0 25px 10px #b0c85a; }
}
@keyframes nr-halo {
  0% { opacity: 0.3; }
  50% { opacity: 0.6; }
  100% { opacity: 0.4; }
}
@keyframes nr-nora {
  0% { transform: rotate(10deg) translateX(0); }
  50% { transform: rotate(15deg) translateX(-3px); }
  100% { transform: rotate(8deg) translateX(2px); }
}
@keyframes nr-arm {
  0% { transform: rotate(20deg); }
  50% { transform: rotate(25deg); }
  100% { transform: rotate(18deg); }
}
@keyframes nr-shadow {
  0% { transform: scaleX(1); opacity: 0.6; }
  50% { transform: scaleX(1.2); opacity: 0.8; }
  100% { transform: scaleX(0.9); opacity: 0.5; }
}

/* nora-compares-rank-to-maids */
.scn-nora-compares-rank-to-maids {
  background: linear-gradient(180deg, #2a3a2a 0%, #1a2a1a 40%, #0a1a0a 100%), radial-gradient(ellipse at 50% 100%, #3a4a3a 0%, transparent 70%);
}
.scn-nora-compares-rank-to-maids .bg-soft {
  position: absolute; inset: 0 0 35% 0;
  background: linear-gradient(180deg, #2a3a2a 0%, #1a2a1a 100%);
  animation: nc-bg 20s ease-in-out infinite alternate;
}
.scn-nora-compares-rank-to-maids .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 35%;
  background: linear-gradient(180deg, #1a2a1a 0%, #0a1a0a 100%);
  border-radius: 35% 45% 0 0 / 25% 35% 0 0;
  box-shadow: inset 0 10px 20px rgba(0,0,0,0.6);
}
.scn-nora-compares-rank-to-maids .chair {
  position: absolute; bottom: 20%; left: 35%; width: 50px; height: 35px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 10% 10% 5% 5%;
  box-shadow: 0 4px 8px rgba(0,0,0,0.5);
  animation: nc-chair 10s ease-in-out infinite alternate;
}
.scn-nora-compares-rank-to-maids .nora-sit {
  position: absolute; bottom: 28%; left: 40%; width: 25px; height: 50px;
  background: linear-gradient(180deg, #0a0a0a 0%, #1a1a1a 100%);
  border-radius: 45% 45% 35% 35% / 50% 50% 40% 40%;
  transform-origin: bottom center;
  animation: nc-nora 6s ease-in-out infinite alternate;
}
.scn-nora-compares-rank-to-maids .maid-cap {
  position: absolute; bottom: 55%; left: 42%; width: 18px; height: 12px;
  background: radial-gradient(ellipse, #c8c8c8 0%, #a0a0a0 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%;
  filter: blur(1px);
  animation: nc-cap 8s ease-in-out infinite alternate;
}
.scn-nora-compares-rank-to-maids .glow-soft {
  position: absolute; inset: 0;
  background: radial-gradient(ellipse at 50% 70%, rgba(200,224,106,0.08) 0%, transparent 60%);
  animation: nc-glow 7s ease-in-out infinite alternate;
}
.scn-nora-compares-rank-to-maids .broom {
  position: absolute; bottom: 18%; right: 25%; width: 6px; height: 40px;
  background: linear-gradient(180deg, #8a7a6a 0%, #5a4a3a 100%);
  border-radius: 10% 10% 40% 40%;
  transform: rotate(-15deg);
  transform-origin: bottom center;
  animation: nc-broom 12s ease-in-out infinite alternate;
}
@keyframes nc-bg {
  0% { opacity: 0.7; }
  50% { opacity: 1; }
  100% { opacity: 0.8; }
}
@keyframes nc-chair {
  0% { transform: translateY(0); }
  50% { transform: translateY(-2px); }
  100% { transform: translateY(0); }
}
@keyframes nc-nora {
  0% { transform: translateY(0) rotate(-2deg); }
  50% { transform: translateY(-2px) rotate(1deg); }
  100% { transform: translateY(0) rotate(2deg); }
}
@keyframes nc-cap {
  0% { transform: translateY(0) rotate(0deg); }
  50% { transform: translateY(-1px) rotate(3deg); }
  100% { transform: translateY(0) rotate(-2deg); }
}
@keyframes nc-glow {
  0% { opacity: 0.3; }
  50% { opacity: 0.6; }
  100% { opacity: 0.4; }
}
@keyframes nc-broom {
  0% { transform: rotate(-15deg); }
  50% { transform: rotate(-10deg); }
  100% { transform: rotate(-18deg); }
}

.scn-rank-death-cards {
  background: linear-gradient(180deg, #1a1220 0%, #2a1a30 40%, #1e1428 100%),
              radial-gradient(ellipse at 50% 60%, #3a2540 0%, transparent 70%);
}
.scn-rank-death-cards .room-bg {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #2a1e30 0%, transparent 100%);
  animation: rdc-sky 15s ease-in-out infinite alternate;
}
.scn-rank-death-cards .table {
  position: absolute; bottom: 10%; left: 50%; width: 55%; height: 8%;
  transform: translateX(-50%) perspective(800px) rotateX(30deg);
  background: linear-gradient(180deg, #4a2e28 0%, #2e1a14 100%);
  border-radius: 2% 2% 8% 8%;
  box-shadow: 0 8px 20px rgba(0,0,0,.7);
  animation: rdc-table 12s ease-in-out infinite;
}
.scn-rank-death-cards .cards {
  position: absolute; bottom: 14%; left: 50%; width: 30%; height: 5%;
  transform: translateX(-50%);
  background: repeating-linear-gradient(
    90deg, #f0e0c0 0px, #f0e0c0 3px, #e0c8a0 3px, #e0c8a0 6px
  );
  border-radius: 3%;
  box-shadow: 0 4px 6px rgba(0,0,0,.5);
  animation: rdc-cards 8s ease-in-out infinite alternate;
}
.scn-rank-death-cards .lamp-glow {
  position: absolute; bottom: 40%; left: 30%; width: 8%; height: 12%;
  background: radial-gradient(circle at 50% 100%, #d08040 0%, transparent 70%);
  border-radius: 50%;
  box-shadow: 0 0 40px 15px #b06030, 0 0 80px 30px rgba(176,96,48,.3);
  animation: rdc-lamp 4s ease-in-out infinite alternate;
}
.scn-rank-death-cards .figure-seated {
  position: absolute; bottom: 18%; left: 38%; width: 12%; height: 30%;
  background: linear-gradient(180deg, #2a1a1a 0%, #0e0a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: rdc-figure 6s ease-in-out infinite;
}
.scn-rank-death-cards .shadow {
  position: absolute; bottom: 10%; left: 25%; width: 50%; height: 6%;
  background: radial-gradient(ellipse at 50% 0%, rgba(0,0,0,.6) 0%, transparent 100%);
  animation: rdc-shadow 12s ease-in-out infinite alternate;
}
@keyframes rdc-sky {
  0% { opacity: .6; }
  50% { opacity: .9; background-position: 0% 0%; }
  100% { opacity: .7; }
}
@keyframes rdc-table {
  0% { transform: translateX(-50%) perspective(800px) rotateX(30deg) translateY(0); }
  50% { transform: translateX(-50%) perspective(800px) rotateX(30deg) translateY(-2px) scale(1.01); }
  100% { transform: translateX(-50%) perspective(800px) rotateX(30deg) translateY(0); }
}
@keyframes rdc-cards {
  0% { transform: translateX(-50%) rotate(-2deg); }
  50% { transform: translateX(-50%) rotate(2deg) scale(1.02); }
  100% { transform: translateX(-50%) rotate(-1deg); }
}
@keyframes rdc-lamp {
  0% { box-shadow: 0 0 30px 10px #b06030, 0 0 60px 20px rgba(176,96,48,.2); opacity: .8; }
  50% { box-shadow: 0 0 50px 20px #e08040, 0 0 90px 30px rgba(224,128,64,.5); opacity: 1; }
  100% { box-shadow: 0 0 35px 12px #b06030, 0 0 70px 25px rgba(176,96,48,.3); opacity: .85; }
}
@keyframes rdc-figure {
  0% { transform: translateY(0) rotate(-2deg); }
  25% { transform: translateY(-1px) rotate(1deg) scale(1.005); }
  50% { transform: translateY(1px) rotate(-1deg); }
  75% { transform: translateY(-2px) rotate(2deg) scale(0.995); }
  100% { transform: translateY(0) rotate(-2deg); }
}
@keyframes rdc-shadow {
  0% { opacity: .5; transform: scaleX(1); }
  50% { opacity: .8; transform: scaleX(1.1); }
  100% { opacity: .5; transform: scaleX(1); }
}

/* scene nora-desperation */
.scn-nora-desperation {
  background: linear-gradient(180deg, #121a24 0%, #1c2838 50%, #0a1018 100%),
              radial-gradient(ellipse at 50% 40%, #2a3a50 0%, transparent 70%);
}
.scn-nora-desperation .wall-dark {
  position: absolute; inset: 0 0 20% 0;
  background: linear-gradient(90deg, #0e141c 0%, #1c2838 50%, #0e141c 100%);
  animation: nd-wall 20s ease-in-out infinite alternate;
}
.scn-nora-desperation .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 20%;
  background: linear-gradient(180deg, #141818 0%, #0a0e0e 100%);
  box-shadow: inset 0 8px 12px rgba(0,0,0,.6);
}
.scn-nora-desperation .door {
  position: absolute; bottom: 20%; left: 65%; width: 15%; height: 50%;
  background: linear-gradient(180deg, #2a2218 0%, #1a140e 100%);
  border-radius: 2% 2% 0 0;
  box-shadow: -4px 0 10px rgba(0,0,0,.5), inset 0 0 20px rgba(0,0,0,.3);
  animation: nd-door 8s ease-in-out infinite;
}
.scn-nora-desperation .figure-nora {
  position: absolute; bottom: 20%; left: 35%; width: 14%; height: 40%;
  background: linear-gradient(180deg, #1a222a 0%, #0a0e14 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: nd-figure 3s ease-in-out infinite;
}
.scn-nora-desperation .cloak {
  position: absolute; bottom: 20%; left: 30%; width: 20%; height: 35%;
  background: linear-gradient(180deg, #2a3038 0%, #1a1e24 100%);
  border-radius: 50% 50% 20% 20% / 70% 70% 30% 30%;
  opacity: .9;
  animation: nd-cloak 4s ease-in-out infinite alternate;
}
.scn-nora-desperation .shawl {
  position: absolute; bottom: 38%; left: 32%; width: 16%; height: 8%;
  background: linear-gradient(90deg, #3a2a30 0%, #2a1a20 100%);
  border-radius: 50% / 30% 30% 70% 70%;
  transform: rotate(-20deg);
  animation: nd-shawl 5s ease-in-out infinite;
}
.scn-nora-desperation .shadow {
  position: absolute; bottom: 20%; left: 30%; width: 30%; height: 10%;
  background: radial-gradient(ellipse at 50% 0%, rgba(0,0,0,.5) 0%, transparent 100%);
  animation: nd-shadow 3s ease-in-out infinite alternate;
}
@keyframes nd-wall {
  0% { opacity: .7; }
  50% { opacity: 1; }
  100% { opacity: .8; }
}
@keyframes nd-door {
  0% { transform: scaleX(1); }
  50% { transform: scaleX(0.95) translateY(2px); }
  100% { transform: scaleX(1); }
}
@keyframes nd-figure {
  0% { transform: translateY(0) rotate(-3deg) scale(1); }
  25% { transform: translateY(-4px) rotate(2deg) scale(1.02); }
  50% { transform: translateY(0) rotate(-2deg) scale(0.98); }
  75% { transform: translateY(2px) rotate(3deg) scale(1.01); }
  100% { transform: translateY(0) rotate(-3deg) scale(1); }
}
@keyframes nd-cloak {
  0% { transform: rotate(0deg) translateX(0); }
  50% { transform: rotate(5deg) translateX(4px) scale(1.03); }
  100% { transform: rotate(-3deg) translateX(-2px) scale(0.97); }
}
@keyframes nd-shawl {
  0% { transform: rotate(-20deg) translateY(0); }
  50% { transform: rotate(-15deg) translateY(-3px); }
  100% { transform: rotate(-22deg) translateY(0); }
}
@keyframes nd-shadow {
  0% { opacity: .4; transform: scaleX(1); }
  50% { opacity: .8; transform: scaleX(1.2); }
  100% { opacity: .4; transform: scaleX(1); }
}

/* scene confrontation-nora-helmer */
.scn-confrontation-nora-helmer {
  background: linear-gradient(180deg, #1a1410 0%, #2a2018 40%, #140e0a 100%),
              radial-gradient(ellipse at 50% 70%, #3a2818 0%, transparent 70%);
}
.scn-confrontation-nora-helmer .bg {
  position: absolute; inset: 0 0 25% 0;
  background: linear-gradient(90deg, #1c1612 0%, #2a221c 50%, #16100c 100%);
  animation: cnh-bg 12s ease-in-out infinite alternate;
}
.scn-confrontation-nora-helmer .door-locked {
  position: absolute; bottom: 25%; right: 10%; width: 18%; height: 50%;
  background: linear-gradient(180deg, #2e2218 0%, #1a120e 100%);
  border-radius: 4% 4% 0 0;
  box-shadow: inset 0 0 10px rgba(0,0,0,.5), 4px 0 8px rgba(0,0,0,.4);
  animation: cnh-door 10s ease-in-out infinite;
}
.scn-confrontation-nora-helmer .lamp {
  position: absolute; bottom: 50%; left: 20%; width: 10%; height: 16%;
  background: radial-gradient(circle at 50% 40%, #d09850 0%, #b07030 60%, transparent 100%);
  border-radius: 50% 50% 10% 10%;
  box-shadow: 0 0 50px 20px #b07030, 0 0 100px 40px rgba(176,112,48,.3);
  animation: cnh-lamp 3s ease-in-out infinite alternate;
}
.scn-confrontation-nora-helmer .figure-torvald {
  position: absolute; bottom: 25%; right: 30%; width: 16%; height: 45%;
  background: linear-gradient(180deg, #1a1612 0%, #0e0a08 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: cnh-torvald 4s ease-in-out infinite;
}
.scn-confrontation-nora-helmer .figure-nora-confront {
  position: absolute; bottom: 25%; left: 30%; width: 14%; height: 40%;
  background: linear-gradient(180deg, #1c1e22 0%, #0c0e12 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: cnh-nora 5s ease-in-out infinite;
}
.scn-confrontation-nora-helmer .key {
  position: absolute; bottom: 40%; left: 55%; width: 4%; height: 6%;
  background: linear-gradient(180deg, #a09070 0%, #706050 100%);
  border-radius: 10% 10% 30% 30% / 20% 20% 50% 50%;
  box-shadow: 0 2px 4px rgba(0,0,0,.5);
  animation: cnh-key 6s ease-in-out infinite;
}
@keyframes cnh-bg {
  0% { opacity: .8; }
  50% { opacity: 1; }
  100% { opacity: .9; }
}
@keyframes cnh-door {
  0% { transform: translateX(0) rotateY(0deg); }
  50% { transform: translateX(-2px) rotateY(2deg) scale(1.01); }
  100% { transform: translateX(0) rotateY(0deg); }
}
@keyframes cnh-lamp {
  0% { box-shadow: 0 0 40px 15px #b07030, 0 0 80px 30px rgba(176,112,48,.2); opacity: .85; }
  50% { box-shadow: 0 0 60px 25px #d09850, 0 0 120px 50px rgba(208,152,80,.4); opacity: 1; }
  100% { box-shadow: 0 0 45px 18px #b07030, 0 0 90px 35px rgba(176,112,48,.25); opacity: .9; }
}
@keyframes cnh-torvald {
  0% { transform: translateY(0) rotate(-2deg); }
  25% { transform: translateY(-3px) rotate(1deg) scale(1.02); }
  50% { transform: translateY(1px) rotate(-1deg) scale(0.98); }
  75% { transform: translateY(-2px) rotate(2deg) scale(1.01); }
  100% { transform: translateY(0) rotate(-2deg); }
}
@keyframes cnh-nora {
  0% { transform: translateY(0) rotate(2deg); }
  25% { transform: translateY(2px) rotate(-1deg) scale(1.01); }
  50% { transform: translateY(-1px) rotate(3deg) scale(0.99); }
  75% { transform: translateY(1px) rotate(-2deg) scale(1.02); }
  100% { transform: translateY(0) rotate(2deg); }
}
@keyframes cnh-key {
  0% { transform: rotate(0deg) translateY(0); }
  50% { transform: rotate(5deg) translateY(-2px) scale(1.1); }
  100% { transform: rotate(0deg) translateY(0); }
}

/* scene krogstad-second-letter */
.scn-krogstad-second-letter {
  background: linear-gradient(180deg, #1c2018 0%, #2a2e24 50%, #141810 100%),
              radial-gradient(ellipse at 50% 50%, #303a2a 0%, transparent 70%);
}
.scn-krogstad-second-letter .room-dark {
  position: absolute; inset: 0 0 15% 0;
  background: linear-gradient(180deg, #22261e 0%, #181c14 100%);
  animation: ksl-room 18s ease-in-out infinite alternate;
}
.scn-krogstad-second-letter .desk {
  position: absolute; bottom: 8%; left: 50%; width: 60%; height: 6%;
  transform: translateX(-50%) perspective(600px) rotateX(20deg);
  background: linear-gradient(180deg, #3a3228 0%, #1e1a14 100%);
  border-radius: 2%;
  box-shadow: 0 6px 12px rgba(0,0,0,.7);
  animation: ksl-desk 15s ease-in-out infinite;
}
.scn-krogstad-second-letter .lamp-light {
  position: absolute; bottom: 28%; left: 35%; width: 10%; height: 18%;
  background: radial-gradient(circle at 50% 0%, #c0a050 0%, #907030 60%, transparent 100%);
  border-radius: 50% 50% 10% 10%;
  box-shadow: 0 0 60px 20px #907030, 0 0 120px 40px rgba(144,112,48,.3);
  animation: ksl-lamp 3.5s ease-in-out infinite alternate;
}
.scn-krogstad-second-letter .figure-krogstad {
  position: absolute; bottom: 14%; left: 25%; width: 15%; height: 35%;
  background: linear-gradient(180deg, #1a1e1a 0%, #0a0e0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: ksl-figure 6s ease-in-out infinite;
}
.scn-krogstad-second-letter .letter {
  position: absolute; bottom: 12%; left: 45%; width: 10%; height: 12%;
  background: linear-gradient(180deg, #e8dcc0 0%, #c8b890 100%);
  border-radius: 4% 4% 8% 8%;
  box-shadow: 0 2px 4px rgba(0,0,0,.4);
  animation: ksl-letter 8s ease-in-out infinite;
}
.scn-krogstad-second-letter .glow-burst {
  position: absolute; bottom: 30%; left: 40%; width: 20%; height: 20%;
  background: radial-gradient(circle, #ffffc0 0%, #ffe080 30%, transparent 70%);
  border-radius: 50%;
  opacity: 0;
  animation: ksl-burst 4s ease-in-out infinite;
}
@keyframes ksl-room {
  0% { opacity: .7; }
  50% { opacity: .95; }
  100% { opacity: .8; }
}
@keyframes ksl-desk {
  0% { transform: translateX(-50%) perspective(600px) rotateX(20deg) translateY(0); }
  50% { transform: translateX(-50%) perspective(600px) rotateX(20deg) translateY(-1px) scale(1.005); }
  100% { transform: translateX(-50%) perspective(600px) rotateX(20deg) translateY(0); }
}
@keyframes ksl-lamp {
  0% { box-shadow: 0 0 40px 15px #907030, 0 0 80px 30px rgba(144,112,48,.2); opacity: .8; }
  50% { box-shadow: 0 0 70px 25px #c0a050, 0 0 140px 50px rgba(192,160,80,.4); opacity: 1; }
  100% { box-shadow: 0 0 50px 18px #907030, 0 0 100px 40px rgba(144,112,48,.25); opacity: .85; }
}
@keyframes ksl-figure {
  0% { transform: translateY(0) rotate(-1deg) scale(1); }
  25% { transform: translateY(-2px) rotate(2deg) scale(1.01); }
  50% { transform: translateY(1px) rotate(-2deg) scale(0.99); }
  75% { transform: translateY(-1px) rotate(1deg) scale(1.015); }
  100% { transform: translateY(0) rotate(-1deg) scale(1); }
}
@keyframes ksl-letter {
  0% { transform: rotate(0deg) translateY(0); }
  50% { transform: rotate(3deg) translateY(-3px) scale(1.05); }
  100% { transform: rotate(0deg) translateY(0); }
}
@keyframes ksl-burst {
  0% { opacity: 0; transform: scale(0.5); }
  25% { opacity: .7; transform: scale(1.3); }
  50% { opacity: .2; transform: scale(1.6); }
  75% { opacity: .1; transform: scale(1.2); }
  100% { opacity: 0; transform: scale(0.5); }
}

/* Scene: krogstad-blackmail (tag: kb) */
.scn-krogstad-blackmail {
  background: linear-gradient(180deg, #1e1e2a 0%, #2a2a3e 30%, #3a3a4e 70%, #4a3a3a 100%),
              radial-gradient(ellipse at 60% 30%, #5a4a3a 0%, transparent 60%);
}
.scn-krogstad-blackmail .bg {
  position: absolute; inset: 0; background: linear-gradient(180deg, #1a1a2e 0%, #2a2a40 40%, #3a2a2a 100%); animation: kb-bg 15s ease-in-out infinite alternate;
}
.scn-krogstad-blackmail .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 25%; background: linear-gradient(0deg, #2a1a1a 0%, #3a2a1a 50%, #4a3a2a 100%); border-radius: 20% 20% 0 0; animation: kb-floor 12s ease-in-out infinite;
}
.scn-krogstad-blackmail .desk {
  position: absolute; bottom: 20%; left: 50%; width: 140px; height: 50px; transform: translateX(-50%); background: linear-gradient(180deg, #5a3a2a 0%, #3a2a1a 100%); border-radius: 4% 4% 0 0; box-shadow: 0 6px 12px rgba(0,0,0,0.6); animation: kb-desk 8s ease-in-out infinite alternate;
}
.scn-krogstad-blackmail .figure-krogstad {
  position: absolute; bottom: 20%; left: 36%; width: 24px; height: 80px; background: linear-gradient(180deg, #1a1a1a 0%, #0a0a0a 100%); border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%; transform-origin: bottom center; animation: kb-figure1 4s ease-in-out infinite;
}
.scn-krogstad-blackmail .figure-nora {
  position: absolute; bottom: 22%; right: 34%; width: 20px; height: 70px; background: linear-gradient(180deg, #2a1a2a 0%, #1a0a1a 100%); border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%; transform-origin: bottom center; animation: kb-figure2 5s ease-in-out infinite;
}
.scn-krogstad-blackmail .lamp {
  position: absolute; bottom: 50%; left: 50%; width: 12px; height: 20px; transform: translateX(-50%); background: radial-gradient(circle, #e0b060 0%, #c08030 70%); border-radius: 20% 20% 0 0; box-shadow: 0 0 20px 10px #c08030, 0 0 40px 20px rgba(192,128,48,0.4); animation: kb-lamp-glow 3s ease-in-out infinite alternate;
}
.scn-krogstad-blackmail .window {
  position: absolute; top: 10%; right: 10%; width: 60px; height: 80px; background: linear-gradient(135deg, #4a4a6a 0%, #2a2a4a 100%); border-radius: 4% 4% 2% 2%; box-shadow: inset 0 0 12px #6a6a8a; animation: kb-window 9s ease-in-out infinite alternate;
}
.scn-krogstad-blackmail .shadow-lamp {
  position: absolute; bottom: 20%; left: 45%; width: 80px; height: 60px; background: radial-gradient(ellipse, rgba(0,0,0,0.5) 0%, transparent 70%); filter: blur(6px); animation: kb-shadow 6s ease-in-out infinite alternate;
}
@keyframes kb-bg { 0% { opacity:0.8 } 50% { opacity:1 } 100% { opacity:0.7 } }
@keyframes kb-floor { 0% { transform: scaleY(1) } 50% { transform: scaleY(1.02) } 100% { transform: scaleY(0.98) } }
@keyframes kb-desk { 0% { transform: translateX(-50%) scale(1) } 50% { transform: translateX(-50%) scale(1.02) } 100% { transform: translateX(-50%) scale(0.98) } }
@keyframes kb-figure1 { 0% { transform: translateX(0) rotate(0deg) } 25% { transform: translateX(4px) rotate(2deg) } 50% { transform: translateX(0) rotate(-1deg) } 75% { transform: translateX(-4px) rotate(1deg) } 100% { transform: translateX(0) rotate(0deg) } }
@keyframes kb-figure2 { 0% { transform: translateX(0) translateY(0) rotate(0) } 30% { transform: translateX(3px) translateY(-2px) rotate(2deg) } 60% { transform: translateX(-2px) translateY(1px) rotate(-1deg) } 100% { transform: translateX(0) translateY(0) rotate(0) } }
@keyframes kb-lamp-glow { 0% { box-shadow: 0 0 12px 4px #c08030, 0 0 24px 8px rgba(192,128,48,0.3); opacity:0.85 } 50% { box-shadow: 0 0 24px 10px #e0b060, 0 0 48px 20px rgba(224,176,96,0.5); opacity:1 } 100% { box-shadow: 0 0 16px 6px #c08030, 0 0 32px 12px rgba(192,128,48,0.35); opacity:0.9 } }
@keyframes kb-window { 0% { background: linear-gradient(135deg, #4a4a6a 0%, #2a2a4a 100%) } 50% { background: linear-gradient(135deg, #5a5a7a 0%, #3a3a5a 100%) } 100% { background: linear-gradient(135deg, #4a4a6a 0%, #2a2a4a 100%) } }
@keyframes kb-shadow { 0% { transform: scaleX(1) scaleY(0.8) } 50% { transform: scaleX(1.1) scaleY(1) } 100% { transform: scaleX(0.9) scaleY(0.9) } }

/* Scene: krogstad-question-linde (tag: kq) */
.scn-krogstad-question-linde {
  background: linear-gradient(180deg, #1e1a2e 0%, #2a2a3e 40%, #3a2a3a 70%, #3a2a2a 100%),
              radial-gradient(ellipse at 40% 50%, #4a3a4a 0%, transparent 60%);
}
.scn-krogstad-question-linde .bg {
  position: absolute; inset: 0; background: linear-gradient(180deg, #1a1a2a 0%, #2a2a3a 50%, #3a2a3a 100%); animation: kq-bg 14s ease-in-out infinite alternate;
}
.scn-krogstad-question-linde .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 28%; background: linear-gradient(0deg, #2a1a1a 0%, #3a2a1a 50%, #4a3a2a 100%); border-radius: 30% 30% 0 0; animation: kq-floor 10s ease-in-out infinite;
}
.scn-krogstad-question-linde .door {
  position: absolute; bottom: 20%; left: 15%; width: 50px; height: 90px; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius: 4% 4% 2% 2%; box-shadow: inset 0 0 8px rgba(0,0,0,0.6); animation: kq-door 18s ease-in-out infinite alternate;
}
.scn-krogstad-question-linde .figure-krogstad {
  position: absolute; bottom: 18%; left: 40%; width: 22px; height: 78px; background: linear-gradient(180deg, #1a1a1a 0%, #0a0a0a 100%); border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%; transform-origin: bottom center; animation: kq-fig1 4s ease-in-out infinite;
}
.scn-krogstad-question-linde .figure-linde {
  position: absolute; bottom: 20%; right: 35%; width: 20px; height: 72px; background: linear-gradient(180deg, #2a1a2a 0%, #1a0a1a 100%); border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%; transform-origin: bottom center; animation: kq-fig2 5s ease-in-out infinite;
}
.scn-krogstad-question-linde .chair {
  position: absolute; bottom: 18%; right: 20%; width: 30px; height: 40px; background: linear-gradient(180deg, #5a3a2a 0%, #3a2a1a 100%); border-radius: 10% 10% 30% 30%; box-shadow: 0 4px 8px rgba(0,0,0,0.5); animation: kq-chair 8s ease-in-out infinite alternate;
}
.scn-krogstad-question-linde .envelope {
  position: absolute; bottom: 30%; left: 48%; width: 30px; height: 20px; background: linear-gradient(135deg, #c8a060 0%, #a08040 100%); border-radius: 6% 6% 3% 3%; box-shadow: 0 2px 4px rgba(0,0,0,0.4); transform: rotate(-10deg); animation: kq-env 6s ease-in-out infinite alternate;
}
@keyframes kq-bg { 0% { opacity:0.8 } 50% { opacity:1 } 100% { opacity:0.7 } }
@keyframes kq-floor { 0% { transform: scaleY(1) translateY(0) } 50% { transform: scaleY(1.01) translateY(-1px) } 100% { transform: scaleY(0.99) translateY(1px) } }
@keyframes kq-door { 0% { transform: scaleX(1) } 50% { transform: scaleX(0.96) } 100% { transform: scaleX(1.02) } }
@keyframes kq-fig1 { 0% { transform: translateX(0) rotate(-1deg) } 25% { transform: translateX(5px) rotate(2deg) } 50% { transform: translateX(0) rotate(1deg) } 75% { transform: translateX(-5px) rotate(-2deg) } 100% { transform: translateX(0) rotate(0) } }
@keyframes kq-fig2 { 0% { transform: translateX(0) translateY(0) } 30% { transform: translateX(-3px) translateY(-2px) } 60% { transform: translateX(2px) translateY(1px) } 100% { transform: translateX(0) translateY(0) } }
@keyframes kq-chair { 0% { transform: scale(1) } 50% { transform: scale(1.03) } 100% { transform: scale(0.97) } }
@keyframes kq-env { 0% { transform: rotate(-10deg) translateX(0) } 50% { transform: rotate(-5deg) translateX(4px) } 100% { transform: rotate(-12deg) translateX(-2px) } }

/* Scene: influence-threat (tag: it) */
.scn-influence-threat {
  background: linear-gradient(180deg, #1a1a2a 0%, #2a2a3e 30%, #3a2a3a 70%, #3a2a2a 100%),
              radial-gradient(ellipse at 70% 40%, #4a3a3a 0%, transparent 60%);
}
.scn-influence-threat .bg {
  position: absolute; inset: 0; background: linear-gradient(180deg, #1a1a2e 0%, #2a2a40 40%, #2a2a3a 100%); animation: it-bg 16s ease-in-out infinite alternate;
}
.scn-influence-threat .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%; background: linear-gradient(0deg, #2a1a1a 0%, #3a2a1a 50%, #4a3a2a 100%); border-radius: 40% 40% 0 0; animation: it-floor 11s ease-in-out infinite;
}
.scn-influence-threat .table {
  position: absolute; bottom: 22%; left: 50%; width: 120px; height: 40px; transform: translateX(-50%); background: linear-gradient(180deg, #5a3a2a 0%, #3a2a1a 100%); border-radius: 8% 8% 2% 2%; box-shadow: 0 6px 12px rgba(0,0,0,0.5); animation: it-table 7s ease-in-out infinite alternate;
}
.scn-influence-threat .figure-pacing {
  position: absolute; bottom: 20%; right: 30%; width: 24px; height: 82px; background: linear-gradient(180deg, #1a1a1a 0%, #0a0a0a 100%); border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%; transform-origin: bottom center; animation: it-pace 4s ease-in-out infinite;
}
.scn-influence-threat .shadow {
  position: absolute; bottom: 18%; left: 20%; width: 60px; height: 80px; background: radial-gradient(ellipse, rgba(0,0,0,0.4) 0%, transparent 70%); filter: blur(8px); animation: it-shadow 7s ease-in-out infinite alternate;
}
.scn-influence-threat .chair {
  position: absolute; bottom: 18%; left: 20%; width: 34px; height: 44px; background: linear-gradient(180deg, #5a3a2a 0%, #3a2a1a 100%); border-radius: 10% 10% 30% 30%; box-shadow: 0 4px 8px rgba(0,0,0,0.4); animation: it-chair 9s ease-in-out infinite alternate;
}
.scn-influence-threat .lamp {
  position: absolute; bottom: 48%; left: 60%; width: 14px; height: 22px; transform: translateX(-50%); background: radial-gradient(circle, #e0b060 0%, #c08030 70%); border-radius: 20% 20% 0 0; box-shadow: 0 0 18px 8px #c08030, 0 0 36px 16px rgba(192,128,48,0.3); animation: it-lamp 3s ease-in-out infinite alternate;
}
.scn-influence-threat .curtain {
  position: absolute; top: 0; left: 0; width: 25%; height: 100%; background: linear-gradient(135deg, #4a2a2a 0%, #2a1a1a 100%); border-radius: 0 20% 20% 0; filter: blur(2px); animation: it-curtain 20s ease-in-out infinite alternate;
}
@keyframes it-bg { 0% { opacity:0.8 } 50% { opacity:1 } 100% { opacity:0.7 } }
@keyframes it-floor { 0% { transform: scaleY(1) } 50% { transform: scaleY(1.02) translateY(-1px) } 100% { transform: scaleY(0.98) translateY(1px) } }
@keyframes it-table { 0% { transform: translateX(-50%) scale(1) } 50% { transform: translateX(-50%) scale(1.02) rotate(-1deg) } 100% { transform: translateX(-50%) scale(0.98) rotate(1deg) } }
@keyframes it-pace { 0% { transform: translateX(0) rotate(0deg) } 20% { transform: translateX(10px) rotate(2deg) } 40% { transform: translateX(20px) rotate(-1deg) } 60% { transform: translateX(10px) rotate(1deg) } 80% { transform: translateX(0) rotate(-2deg) } 100% { transform: translateX(-10px) rotate(0deg) } }
@keyframes it-shadow { 0% { transform: scale(1) } 50% { transform: scale(1.1) translateX(5px) } 100% { transform: scale(0.9) translateX(-5px) } }
@keyframes it-chair { 0% { transform: scale(1) rotate(0) } 50% { transform: scale(1.04) rotate(-2deg) } 100% { transform: scale(0.96) rotate(2deg) } }
@keyframes it-lamp { 0% { box-shadow: 0 0 12px 4px #c08030, 0 0 24px 8px rgba(192,128,48,0.2); opacity:0.85 } 50% { box-shadow: 0 0 24px 10px #e0b060, 0 0 48px 20px rgba(224,176,96,0.5); opacity:1 } 100% { box-shadow: 0 0 16px 6px #c08030, 0 0 32px 12px rgba(192,128,48,0.35); opacity:0.9 } }
@keyframes it-curtain { 0% { transform: scaleX(1) } 50% { transform: scaleX(1.05) } 100% { transform: scaleX(0.95) } }

/* Scene: krogstad-desperation (tag: kd) */
.scn-krogstad-desperation {
  background: linear-gradient(180deg, #1a1a2e 0%, #2a2a3e 30%, #3a2a3a 70%, #2a1a1a 100%),
              radial-gradient(ellipse at 50% 30%, #4a3a3a 0%, transparent 60%);
}
.scn-krogstad-desperation .bg {
  position: absolute; inset: 0; background: linear-gradient(180deg, #1a1a2a 0%, #2a2a3a 40%, #3a2a3a 100%); animation: kd-bg 15s ease-in-out infinite alternate;
}
.scn-krogstad-desperation .window {
  position: absolute; top: 12%; left: 10%; width: 60px; height: 80px; background: linear-gradient(135deg, #4a4a6a 0%, #2a2a4a 100%); border-radius: 4% 4% 2% 2%; box-shadow: inset 0 0 12px #6a6a8a; animation: kd-window 12s ease-in-out infinite alternate;
}
.scn-krogstad-desperation .desk {
  position: absolute; bottom: 20%; left: 40%; width: 130px; height: 45px; background: linear-gradient(180deg, #5a3a2a 0%, #3a2a1a 100%); border-radius: 6% 6% 0 0; box-shadow: 0 6px 12px rgba(0,0,0,0.5); animation: kd-desk 9s ease-in-out infinite alternate;
}
.scn-krogstad-desperation .figure {
  position: absolute; bottom: 18%; left: 32%; width: 22px; height: 80px; background: linear-gradient(180deg, #1a1a1a 0%, #0a0a0a 100%); border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%; transform-origin: bottom center; animation: kd-figure 4.5s ease-in-out infinite;
}
.scn-krogstad-desperation .letter {
  position: absolute; bottom: 28%; left: 44%; width: 34px; height: 24px; background: linear-gradient(135deg, #c8a060 0%, #a08040 100%); border-radius: 4% 4% 2% 2%; box-shadow: 0 2px 6px rgba(0,0,0,0.5); transform: rotate(5deg); animation: kd-letter 7s ease-in-out infinite alternate;
}
.scn-krogstad-desperation .lamp {
  position: absolute; bottom: 45%; left: 55%; width: 12px; height: 20px; transform: translateX(-50%); background: radial-gradient(circle, #e0b060 0%, #c08030 70%); border-radius: 20% 20% 0 0; box-shadow: 0 0 18px 8px #c08030, 0 0 36px 16px rgba(192,128,48,0.3); animation: kd-lamp 3s ease-in-out infinite alternate;
}
.scn-krogstad-desperation .chair {
  position: absolute; bottom: 18%; right: 20%; width: 30px; height: 40px; background: linear-gradient(180deg, #5a3a2a 0%, #3a2a1a 100%); border-radius: 10% 10% 30% 30%; box-shadow: 0 4px 8px rgba(0,0,0,0.4); animation: kd-chair 8s ease-in-out infinite alternate;
}
.scn-krogstad-desperation .coat {
  position: absolute; top: 10%; right: 15%; width: 30px; height: 50px; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius: 20% 20% 10% 10%; box-shadow: 0 2px 4px rgba(0,0,0,0.3); transform: rotate(10deg); animation: kd-coat 13s ease-in-out infinite alternate;
}
@keyframes kd-bg { 0% { opacity:0.8 } 50% { opacity:1 } 100% { opacity:0.7 } }
@keyframes kd-window { 0% { background: linear-gradient(135deg, #4a4a6a 0%, #2a2a4a 100%) } 50% { background: linear-gradient(135deg, #5a5a7a 0%, #3a3a5a 100%) } 100% { background: linear-gradient(135deg, #4a4a6a 0%, #2a2a4a 100%) } }
@keyframes kd-desk { 0% { transform: translateX(0) scale(1) } 50% { transform: translateX(-2px) scale(1.02) } 100% { transform: translateX(2px) scale(0.98) } }
@keyframes kd-figure { 0% { transform: translateX(0) rotate(0deg) } 25% { transform: translateX(3px) rotate(-2deg) } 50% { transform: translateX(0) rotate(1deg) } 75% { transform: translateX(-3px) rotate(2deg) } 100% { transform: translateX(0) rotate(0deg) } }
@keyframes kd-letter { 0% { transform: rotate(5deg) translateX(0) } 50% { transform: rotate(8deg) translateX(4px) } 100% { transform: rotate(3deg) translateX(-2px) } }
@keyframes kd-lamp { 0% { box-shadow: 0 0 12px 4px #c08030, 0 0 24px 8px rgba(192,128,48,0.2); opacity:0.85 } 50% { box-shadow: 0 0 24px 10px #e0b060, 0 0 48px 20px rgba(224,176,96,0.5); opacity:1 } 100% { box-shadow: 0 0 16px 6px #c08030, 0 0 32px 12px rgba(192,128,48,0.35); opacity:0.9 } }
@keyframes kd-chair { 0% { transform: scale(1) } 50% { transform: scale(1.03) rotate(-1deg) } 100% { transform: scale(0.97) rotate(1deg) } }
@keyframes kd-coat { 0% { transform: rotate(10deg) scale(1) } 50% { transform: rotate(15deg) scale(1.05) } 100% { transform: rotate(5deg) scale(0.95) } }

.scn-forgiveness-and-new-bond { background: linear-gradient(180deg, #2a1a0a 0%, #3a2a1a 40%, #5a3a1a 100%), radial-gradient(ellipse at 50% 100%, #7a5a2a 0%, transparent 70%); }
.scn-forgiveness-and-new-bond .wall    { position:absolute; inset:0 0 30% 0; background: linear-gradient(90deg, #1a1008 0%, #2a1a0a 50%, #1a1008 100%); }
.scn-forgiveness-and-new-bond .floor   { position:absolute; bottom:0; left:0; right:0; height:30%; background: linear-gradient(180deg, #3a2a1a 0%, #1a1008 100%); }
.scn-forgiveness-and-new-bond .window  { position:absolute; top:15%; left:10%; width:30%; height:55%; background: #1a2028; border-radius:4% 4% 2% 2%; box-shadow: inset 0 0 20px #0a0a0a; animation: fnb-window 20s ease-in-out infinite alternate; }
.scn-forgiveness-and-new-bond .curtain { position:absolute; top:15%; left:8%; width:34%; height:55%; background: linear-gradient(180deg, #b87878 0%, #7a4040 100%); border-radius: 8% 8% 4% 4%; opacity:0.6; transform-origin: top center; animation: fnb-curtain 12s ease-in-out infinite alternate; }
.scn-forgiveness-and-new-bond .figure-husband { position:absolute; bottom:30%; left:40%; width:28px; height:70px; background: linear-gradient(180deg, #2a1a10 0%, #1a0f08 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: fnb-sway 8s ease-in-out infinite; }
.scn-forgiveness-and-new-bond .figure-wife   { position:absolute; bottom:30%; left:48%; width:24px; height:60px; background: linear-gradient(180deg, #3a2a1a 0%, #1f1409 100%); border-radius: 50% 50% 40% 40% / 55% 55% 45% 45%; transform-origin: bottom center; animation: fnb-sway 8s ease-in-out 1s infinite; }
.scn-forgiveness-and-new-bond .lamp    { position:absolute; bottom:40%; right:15%; width:12px; height:18px; background: radial-gradient(circle, #f0c060 0%, #b87a3a 70%); border-radius: 30% 30% 20% 20%; box-shadow: 0 0 24px 8px #b87a3a, 0 0 48px 12px rgba(184,122,58,0.5); animation: fnb-glow 4s ease-in-out infinite alternate; }
.scn-forgiveness-and-new-bond .dust    { position:absolute; top:20%; left:30%; width:4px; height:4px; background: rgba(200,180,140,0.6); border-radius:50%; filter: blur(2px); animation: fnb-dust 18s linear infinite; }
@keyframes fnb-window  { 0% { opacity:0.3; transform:scaleX(1); } 50% { opacity:0.6; transform:scaleX(0.95); } 100% { opacity:0.4; transform:scaleX(1.02); } }
@keyframes fnb-curtain { 0% { transform:scaleY(1) translateY(0); } 50% { transform:scaleY(0.98) translateY(-2px); } 100% { transform:scaleY(1) translateY(0); } }
@keyframes fnb-sway    { 0% { transform:translateX(0) rotate(0deg); } 25% { transform:translateX(2px) rotate(2deg); } 50% { transform:translateX(0) rotate(0deg); } 75% { transform:translateX(-2px) rotate(-2deg); } 100% { transform:translateX(0) rotate(0deg); } }
@keyframes fnb-glow    { 0% { box-shadow:0 0 18px 4px #b87a3a,0 0 36px 8px rgba(184,122,58,0.4); opacity:0.8; } 50% { box-shadow:0 0 28px 8px #f0c060,0 0 56px 14px rgba(240,192,96,0.6); opacity:1; } 100% { box-shadow:0 0 20px 5px #b87a3a,0 0 40px 10px rgba(184,122,58,0.5); opacity:0.9; } }
@keyframes fnb-dust    { 0% { transform:translateY(0) translateX(0); opacity:0; } 20% { opacity:0.8; } 50% { transform:translateY(-30px) translateX(20px); opacity:0.4; } 80% { opacity:0.6; } 100% { transform:translateY(-60px) translateX(-10px); opacity:0; } }

.scn-helmer-forgiveness-speech { background: linear-gradient(180deg, #1f1508 0%, #2a1a0a 40%, #4a2a12 100%), radial-gradient(ellipse at 50% 30%, #6a4a2a 0%, transparent 70%); }
.scn-helmer-forgiveness-speech .wall         { position:absolute; inset:0 0 25% 0; background: linear-gradient(180deg, #2a1a0a 0%, #1a0f05 100%); }
.scn-helmer-forgiveness-speech .floor        { position:absolute; bottom:0; left:0; right:0; height:25%; background: linear-gradient(180deg, #3a2a1a 0%, #1a1008 100%); }
.scn-helmer-forgiveness-speech .door         { position:absolute; top:10%; left:5%; width:20%; height:65%; background: #1a1008; border-radius:4% 4% 0 0; box-shadow: inset 0 0 10px #0a0500; animation: hfs-door 20s ease-in-out infinite alternate; }
.scn-helmer-forgiveness-speech .figure-helmer{ position:absolute; bottom:25%; left:30%; width:30px; height:80px; background: linear-gradient(180deg, #2a1a10 0%, #140a05 100%); border-radius: 50% 50% 40% 40% / 65% 65% 35% 35%; transform-origin: bottom center; animation: hfs-arms 6s ease-in-out infinite; }
.scn-helmer-forgiveness-speech .figure-nora  { position:absolute; bottom:25%; left:50%; width:22px; height:55px; background: linear-gradient(180deg, #3a2a1a 0%, #1a0f05 100%); border-radius: 50% 50% 40% 40% / 55% 55% 45% 45%; transform-origin: bottom center; animation: hfs-nora 8s ease-in-out infinite; }
.scn-helmer-forgiveness-speech .lamp         { position:absolute; bottom:35%; right:20%; width:10px; height:14px; background: radial-gradient(circle, #f0c060 0%, #b87a3a 70%); border-radius:30%; box-shadow: 0 0 20px 6px #b87a3a, 0 0 40px 12px rgba(184,122,58,0.4); animation: hfs-lamp 3s ease-in-out infinite alternate; }
.scn-helmer-forgiveness-speech .shadow-wing  { position:absolute; bottom:25%; left:25%; width:60px; height:40px; background: rgba(10,5,0,0.3); border-radius: 50% 50% 0 0; filter: blur(8px); transform: skewY(10deg); animation: hfs-wing 6s ease-in-out infinite; }
@keyframes hfs-door    { 0% { transform:scaleY(1); opacity:0.7; } 50% { transform:scaleY(0.98); opacity:0.9; } 100% { transform:scaleY(1); opacity:0.8; } }
@keyframes hfs-arms    { 0% { transform:translateX(0) rotate(-5deg); } 25% { transform:translateX(-5px) rotate(20deg); } 50% { transform:translateX(0) rotate(30deg); } 75% { transform:translateX(5px) rotate(20deg); } 100% { transform:translateX(0) rotate(-5deg); } }
@keyframes hfs-nora    { 0% { transform:translateY(0) rotate(0); } 25% { transform:translateY(-2px) rotate(2deg); } 50% { transform:translateY(0) rotate(0); } 75% { transform:translateY(-1px) rotate(-2deg); } 100% { transform:translateY(0) rotate(0); } }
@keyframes hfs-lamp    { 0% { box-shadow:0 0 14px 3px #b87a3a,0 0 28px 6px rgba(184,122,58,0.3); opacity:0.8; } 50% { box-shadow:0 0 24px 8px #f0c060,0 0 48px 12px rgba(240,192,96,0.5); opacity:1; } 100% { box-shadow:0 0 18px 5px #b87a3a,0 0 35px 8px rgba(184,122,58,0.4); opacity:0.9; } }
@keyframes hfs-wing    { 0% { transform:skewY(10deg) translateX(0); opacity:0.3; } 50% { transform:skewY(15deg) translateX(10px); opacity:0.5; } 100% { transform:skewY(10deg) translateX(0); opacity:0.3; } }

.scn-nora-changed-appearance { background: linear-gradient(180deg, #1f1408 0%, #2a1a0a 30%, #3a2a1a 100%), radial-gradient(ellipse at 40% 50%, #4a2a12 0%, transparent 80%); }
.scn-nora-changed-appearance .wall          { position:absolute; inset:0 0 20% 0; background: linear-gradient(90deg, #1a0f05 0%, #2a1a0a 50%, #1a0f05 100%); }
.scn-nora-changed-appearance .floor         { position:absolute; bottom:0; left:0; right:0; height:20%; background: linear-gradient(180deg, #3a2a1a 0%, #1a1008 100%); }
.scn-nora-changed-appearance .clock         { position:absolute; top:10%; left:70%; width:10%; height:12%; background: #2a2018; border-radius:50%; box-shadow: inset 0 0 8px #0a0500; animation: nca-clock 4s ease-in-out infinite; }
.scn-nora-changed-appearance .chair-torvald { position:absolute; bottom:20%; left:10%; width:50px; height:60px; background: #1f1408; border-radius: 10% 10% 20% 20%; box-shadow: inset 0 -10px 10px #0a0500; animation: nca-chair 9s ease-in-out infinite; }
.scn-nora-changed-appearance .figure-nora   { position:absolute; bottom:20%; left:55%; width:20px; height:65px; background: linear-gradient(180deg, #3a2a1a 0%, #1a0f05 100%); border-radius: 50% 50% 40% 40% / 55% 55% 45% 45%; animation: nca-nora 7s ease-in-out infinite; }
.scn-nora-changed-appearance .figure-torvald{ position:absolute; bottom:20%; left:15%; width:28px; height:55px; background: linear-gradient(180deg, #2a1a10 0%, #140a05 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: nca-torvald 6s ease-in-out infinite alternate; }
.scn-nora-changed-appearance .lamp          { position:absolute; bottom:35%; right:15%; width:10px; height:14px; background: radial-gradient(circle, #f0c060 0%, #b87a3a 70%); border-radius:30%; box-shadow: 0 0 20px 6px #b87a3a, 0 0 40px 12px rgba(184,122,58,0.4); animation: nca-lamp 2s ease-in-out infinite alternate; }
.scn-nora-changed-appearance .shadow        { position:absolute; bottom:20%; left:10%; width:80%; height:30%; background: linear-gradient(180deg, transparent 0%, rgba(10,5,0,0.4) 100%); filter: blur(6px); animation: nca-shadow 10s ease-in-out infinite alternate; }
@keyframes nca-clock { 0% { transform:rotate(0deg); } 25% { transform:rotate(10deg); } 50% { transform:rotate(0deg); } 75% { transform:rotate(-10deg); } 100% { transform:rotate(0deg); } }
@keyframes nca-chair { 0% { transform:translateY(0) scaleY(1); } 50% { transform:translateY(-3px) scaleY(0.98); } 100% { transform:translateY(0) scaleY(1); } }
@keyframes nca-nora   { 0% { transform:translateX(0) rotate(0); } 25% { transform:translateX(2px) rotate(1deg); } 50% { transform:translateX(0) rotate(0); } 75% { transform:translateX(-2px) rotate(-1deg); } 100% { transform:translateX(0) rotate(0); } }
@keyframes nca-torvald { 0% { transform:translateY(0) rotate(0); } 50% { transform:translateY(4px) rotate(2deg); } 100% { transform:translateY(0) rotate(0); } }
@keyframes nca-lamp    { 0% { box-shadow:0 0 14px 3px #b87a3a,0 0 28px 6px rgba(184,122,58,0.3); opacity:0.7; } 50% { box-shadow:0 0 28px 8px #f0c060,0 0 56px 14px rgba(240,192,96,0.5); opacity:1; } 100% { box-shadow:0 0 16px 4px #b87a3a,0 0 32px 8px rgba(184,122,58,0.35); opacity:0.8; } }
@keyframes nca-shadow { 0% { opacity:0.3; transform:scaleY(0.9); } 50% { opacity:0.6; transform:scaleY(1.05); } 100% { opacity:0.4; transform:scaleY(0.95); } }

.scn-settling-accounts { background: linear-gradient(180deg, #1f1408 0%, #2a1a0a 40%, #3a2a1a 100%), radial-gradient(ellipse at 50% 60%, #4a2a12 0%, transparent 70%); }
.scn-settling-accounts .wall         { position:absolute; inset:0 0 15% 0; background: linear-gradient(180deg, #1a0f05 0%, #2a1a0a 100%); }
.scn-settling-accounts .floor        { position:absolute; bottom:0; left:0; right:0; height:15%; background: linear-gradient(180deg, #3a2a1a 0%, #1a1008 100%); }
.scn-settling-accounts .table        { position:absolute; bottom:15%; left:20%; width:60%; height:10%; background: #2a1a0a; border-radius: 4% 4% 0 0; box-shadow: 0 4px 10px #0a0500; animation: sa-table 30s ease-in-out infinite alternate; }
.scn-settling-accounts .chair-left   { position:absolute; bottom:15%; left:10%; width:40px; height:50px; background: #1f1408; border-radius: 10% 10% 20% 20%; box-shadow: inset 0 -8px 8px #0a0500; animation: sa-chair 12s ease-in-out infinite; }
.scn-settling-accounts .chair-right  { position:absolute; bottom:15%; right:10%; width:40px; height:50px; background: #1f1408; border-radius: 10% 10% 20% 20%; box-shadow: inset 0 -8px 8px #0a0500; animation: sa-chair 12s ease-in-out 6s infinite; }
.scn-settling-accounts .lamp         { position:absolute; bottom:30%; left:48%; width:8px; height:12px; background: radial-gradient(circle, #f0c060 0%, #b87a3a 70%); border-radius:30%; box-shadow: 0 0 20px 6px #b87a3a, 0 0 40px 12px rgba(184,122,58,0.4); animation: sa-lamp 2.5s ease-in-out infinite alternate; }
.scn-settling-accounts .vase         { position:absolute; bottom:18%; left:48%; width:6px; height:16px; background: linear-gradient(180deg, #5a3a1a 0%, #2a1a0a 100%); border-radius: 30% 30% 10% 10%; transform:translateX(-50%); animation: sa-vase 8s ease-in-out infinite; }
.scn-settling-accounts .dust-particle{ position:absolute; top:20%; left:20%; width:3px; height:3px; background: rgba(200,180,140,0.5); border-radius:50%; filter: blur(2px); animation: sa-dust 15s linear infinite; }
@keyframes sa-table { 0% { transform:scaleX(1) translateY(0); } 50% { transform:scaleX(1.02) translateY(-1px); } 100% { transform:scaleX(1) translateY(0); } }
@keyframes sa-chair { 0% { transform:translateY(0) rotate(0); } 25% { transform:translateY(-2px) rotate(1deg); } 50% { transform:translateY(0) rotate(0); } 75% { transform:translateY(-1px) rotate(-1deg); } 100% { transform:translateY(0) rotate(0); } }
@keyframes sa-lamp   { 0% { box-shadow:0 0 14px 3px #b87a3a,0 0 28px 6px rgba(184,122,58,0.3); opacity:0.7; } 50% { box-shadow:0 0 30px 8px #f0c060,0 0 60px 14px rgba(240,192,96,0.5); opacity:1; } 100% { box-shadow:0 0 18px 4px #b87a3a,0 0 36px 8px rgba(184,122,58,0.35); opacity:0.8; } }
@keyframes sa-vase   { 0% { transform:translateX(-50%) scaleY(1); } 50% { transform:translateX(-50%) scaleY(1.03); } 100% { transform:translateX(-50%) scaleY(1); } }
@keyframes sa-dust   { 0% { transform:translateY(0) translateX(0); opacity:0; } 20% { opacity:0.8; } 50% { transform:translateY(-40px) translateX(30px); opacity:0.3; } 80% { opacity:0.5; } 100% { transform:translateY(-80px) translateX(-20px); opacity:0; } }

.scn-helmer-on-moral-poison {
  background: linear-gradient(180deg, #2e1e14 0%, #1f120b 50%, #0d0805 100%),
              radial-gradient(ellipse at 40% 30%, #3a2518 0%, transparent 60%);
}

.scn-helmer-on-moral-poison .room-back {
  position: absolute; inset: 0 0 35% 0;
  background: linear-gradient(135deg, #3a2820 0%, #1f140e 100%);
  animation: hp1-wall 12s ease-in-out infinite alternate;
}
.scn-helmer-on-moral-poison .room-floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 35%;
  background: linear-gradient(180deg, #2a1c12 0%, #1a0f08 100%);
  animation: hp1-floor 8s ease-in-out infinite alternate;
}
.scn-helmer-on-moral-poison .desk {
  position: absolute; bottom: 20%; left: 35%; width: 28%; height: 18%;
  background: linear-gradient(180deg, #4a3520 0%, #2a1c10 100%);
  border-radius: 4% 4% 0 0;
  box-shadow: 0 -4px 12px rgba(0,0,0,0.7), inset 0 2px 4px #5a4030;
  animation: hp1-desk 6s ease-in-out infinite;
}
.scn-helmer-on-moral-poison .lamp-glow {
  position: absolute; bottom: 38%; left: 48%; width: 12%; height: 16%;
  background: radial-gradient(circle at 50% 80%, #f0c060 0%, #c09040 40%, transparent 70%);
  box-shadow: 0 0 40px 20px rgba(180, 120, 40, 0.5), 0 0 80px 40px rgba(120, 80, 20, 0.3);
  border-radius: 50%;
  animation: hp1-lamp 4s ease-in-out infinite alternate;
}
.scn-helmer-on-moral-poison .figure-helmer {
  position: absolute; bottom: 18%; left: 28%; width: 14%; height: 42%;
  background: linear-gradient(180deg, #1a0f0a 0%, #0d0704 100%);
  border-radius: 40% 40% 20% 20% / 50% 50% 30% 30%;
  transform-origin: bottom center;
  animation: hp1-helmer 10s ease-in-out infinite;
}
.scn-helmer-on-moral-poison .child-left {
  position: absolute; bottom: 6%; left: 22%; width: 8%; height: 22%;
  background: linear-gradient(180deg, #1f140e 0%, #120b07 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%;
  animation: hp1-child 8s ease-in-out infinite;
}
.scn-helmer-on-moral-poison .child-right {
  position: absolute; bottom: 8%; left: 38%; width: 7%; height: 20%;
  background: linear-gradient(180deg, #231610 0%, #140c08 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%;
  animation: hp1-child 8s ease-in-out infinite 4s;
}
.scn-helmer-on-moral-poison .mask-shadow {
  position: absolute; bottom: 32%; left: 30%; width: 16%; height: 24%;
  background: radial-gradient(ellipse at 50% 30%, rgba(0,0,0,0.6) 0%, transparent 70%);
  filter: blur(8px);
  animation: hp1-mask 10s ease-in-out infinite alternate;
}

@keyframes hp1-wall {
  0% { opacity: 0.9; }
  50% { opacity: 1; }
  100% { opacity: 0.85; }
}
@keyframes hp1-floor {
  0% { transform: translateY(0); }
  50% { transform: translateY(-2px); }
  100% { transform: translateY(0); }
}
@keyframes hp1-desk {
  0% { transform: scale(1); }
  50% { transform: scale(1.01); }
  100% { transform: scale(1); }
}
@keyframes hp1-lamp {
  0% { box-shadow: 0 0 30px 15px rgba(180,120,40,0.4), 0 0 60px 30px rgba(120,80,20,0.2); }
  50% { box-shadow: 0 0 50px 25px rgba(200,140,60,0.6), 0 0 100px 50px rgba(140,100,30,0.3); }
  100% { box-shadow: 0 0 35px 18px rgba(180,120,40,0.45), 0 0 70px 35px rgba(120,80,20,0.25); }
}
@keyframes hp1-helmer {
  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 hp1-child {
  0% { transform: translateY(0) rotate(-2deg); }
  50% { transform: translateY(-3px) rotate(2deg); }
  100% { transform: translateY(0) rotate(-2deg); }
}
@keyframes hp1-mask {
  0% { opacity: 0.3; transform: scale(1); }
  50% { opacity: 0.7; transform: scale(1.2); }
  100% { opacity: 0.3; transform: scale(1); }
}

.scn-helmer-dismisses-plea {
  background: linear-gradient(180deg, #2e1a12 0%, #1f100b 50%, #0d0705 100%),
              radial-gradient(ellipse at 35% 40%, #3a2218 0%, transparent 50%);
}

.scn-helmer-dismisses-plea .room-back {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(135deg, #3a241c 0%, #1f120c 100%);
  animation: hp2-wall 14s ease-in-out infinite alternate;
}
.scn-helmer-dismisses-plea .room-floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #2a1a12 0%, #1a0e08 100%);
  animation: hp2-floor 10s ease-in-out infinite alternate;
}
.scn-helmer-dismisses-plea .table {
  position: absolute; bottom: 22%; left: 30%; width: 30%; height: 14%;
  background: linear-gradient(180deg, #4a3020 0%, #2a1a10 100%);
  border-radius: 4% 4% 0 0;
  box-shadow: 0 -4px 10px rgba(0,0,0,0.7), inset 0 2px 4px #5a3c2a;
  animation: hp2-table 7s ease-in-out infinite;
}
.scn-helmer-dismisses-plea .lamp-glow {
  position: absolute; bottom: 36%; left: 42%; width: 10%; height: 14%;
  background: radial-gradient(circle at 50% 80%, #f0c060 0%, #c09040 40%, transparent 70%);
  box-shadow: 0 0 40px 20px rgba(180,120,40,0.5), 0 0 80px 40px rgba(120,80,20,0.3);
  border-radius: 50%;
  animation: hp2-lamp 4s ease-in-out infinite alternate;
}
.scn-helmer-dismisses-plea .figure-helmer {
  position: absolute; bottom: 22%; left: 32%; width: 16%; height: 45%;
  background: linear-gradient(180deg, #1a0f0a 0%, #0d0704 100%);
  border-radius: 40% 40% 20% 20% / 50% 50% 30% 30%;
  transform-origin: bottom center;
  animation: hp2-helmer 12s ease-in-out infinite;
}
.scn-helmer-dismisses-plea .figure-nora {
  position: absolute; bottom: 20%; left: 50%; width: 12%; height: 38%;
  background: linear-gradient(180deg, #1f120c 0%, #120a06 100%);
  border-radius: 45% 45% 25% 25% / 55% 55% 35% 35%;
  transform-origin: bottom center;
  animation: hp2-nora 8s ease-in-out infinite;
}
.scn-helmer-dismisses-plea .hand-out {
  position: absolute; bottom: 38%; left: 44%; width: 6%; height: 10%;
  background: linear-gradient(180deg, #2a1a12 0%, #1a0f0a 100%);
  border-radius: 40% 40% 30% 30%;
  transform-origin: 0% 100%;
  animation: hp2-hand 4s ease-in-out infinite;
}

@keyframes hp2-wall {
  0% { opacity: 0.9; }
  50% { opacity: 1; }
  100% { opacity: 0.85; }
}
@keyframes hp2-floor {
  0% { transform: translateY(0); }
  50% { transform: translateY(-2px); }
  100% { transform: translateY(0); }
}
@keyframes hp2-table {
  0% { transform: scale(1); }
  50% { transform: scale(1.01) rotate(0.5deg); }
  100% { transform: scale(1); }
}
@keyframes hp2-lamp {
  0% { box-shadow: 0 0 30px 15px rgba(180,120,40,0.4), 0 0 60px 30px rgba(120,80,20,0.2); }
  50% { box-shadow: 0 0 50px 25px rgba(200,140,60,0.6), 0 0 100px 50px rgba(140,100,30,0.3); }
  100% { box-shadow: 0 0 35px 18px rgba(180,120,40,0.45), 0 0 70px 35px rgba(120,80,20,0.25); }
}
@keyframes hp2-helmer {
  0% { transform: translateX(0) rotate(-1deg); }
  30% { transform: translateX(3px) rotate(1deg); }
  60% { transform: translateX(-2px) rotate(-1deg); }
  100% { transform: translateX(0) rotate(0deg); }
}
@keyframes hp2-nora {
  0% { transform: translateX(0) rotate(0deg); }
  50% { transform: translateX(-5px) rotate(-2deg); }
  100% { transform: translateX(0) rotate(0deg); }
}
@keyframes hp2-hand {
  0% { transform: rotate(-15deg) scaleX(0.8); }
  50% { transform: rotate(5deg) scaleX(1.2); }
  100% { transform: rotate(-15deg) scaleX(0.8); }
}

.scn-helmer-sends-dismissal-letter {
  background: linear-gradient(180deg, #2e1e14 0%, #1f120b 50%, #0d0805 100%),
              radial-gradient(ellipse at 40% 35%, #3a2518 0%, transparent 55%);
}

.scn-helmer-sends-dismissal-letter .room-back {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(135deg, #3a2820 0%, #1f140e 100%);
  animation: hp3-wall 12s ease-in-out infinite alternate;
}
.scn-helmer-sends-dismissal-letter .room-floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #2a1c12 0%, #1a0f08 100%);
  animation: hp3-floor 8s ease-in-out infinite alternate;
}
.scn-helmer-sends-dismissal-letter .desk {
  position: absolute; bottom: 18%; left: 25%; width: 30%; height: 20%;
  background: linear-gradient(180deg, #4a3520 0%, #2a1c10 100%);
  border-radius: 4% 4% 0 0;
  box-shadow: 0 -4px 12px rgba(0,0,0,0.7), inset 0 2px 4px #5a4030;
  animation: hp3-desk 6s ease-in-out infinite;
}
.scn-helmer-sends-dismissal-letter .chair {
  position: absolute; bottom: 16%; left: 20%; width: 8%; height: 30%;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a1008 100%);
  border-radius: 30% 30% 10% 10% / 40% 40% 20% 20%;
  animation: hp3-chair 7s ease-in-out infinite;
}
.scn-helmer-sends-dismissal-letter .lamp-glow {
  position: absolute; bottom: 34%; left: 48%; width: 12%; height: 16%;
  background: radial-gradient(circle at 50% 80%, #f0c060 0%, #c09040 40%, transparent 70%);
  box-shadow: 0 0 40px 20px rgba(180,120,40,0.5), 0 0 80px 40px rgba(120,80,20,0.3);
  border-radius: 50%;
  animation: hp3-lamp 4s ease-in-out infinite alternate;
}
.scn-helmer-sends-dismissal-letter .figure-seated {
  position: absolute; bottom: 16%; left: 22%; width: 14%; height: 40%;
  background: linear-gradient(180deg, #1a0f0a 0%, #0d0704 100%);
  border-radius: 40% 40% 20% 20% / 50% 50% 30% 30%;
  transform-origin: bottom center;
  animation: hp3-seated 12s ease-in-out infinite;
}
.scn-helmer-sends-dismissal-letter .letter {
  position: absolute; bottom: 28%; left: 38%; width: 10%; height: 6%;
  background: linear-gradient(135deg, #e8d4b0 0%, #c8b090 100%);
  border-radius: 2px;
  box-shadow: 0 2px 6px rgba(0,0,0,0.5);
  animation: hp3-letter 6s ease-in-out infinite;
}
.scn-helmer-sends-dismissal-letter .inkwell {
  position: absolute; bottom: 28%; left: 34%; width: 4%; height: 4%;
  background: radial-gradient(circle at 50% 50%, #1a0f0a 0%, #0d0704 100%);
  border-radius: 50%;
  box-shadow: 0 1px 3px rgba(0,0,0,0.6);
}
.scn-helmer-sends-dismissal-letter .tree-dist {
  position: absolute; bottom: 22%; right: 18%; width: 20%; height: 35%;
  background: linear-gradient(180deg, #2a4a2a 0%, #1a2a1a 100%);
  clip-path: polygon(50% 0%, 10% 100%, 90% 100%);
  opacity: 0.4;
  animation: hp3-tree 15s ease-in-out infinite;
}

@keyframes hp3-wall {
  0% { opacity: 0.9; }
  50% { opacity: 1; }
  100% { opacity: 0.85; }
}
@keyframes hp3-floor {
  0% { transform: translateY(0); }
  50% { transform: translateY(-2px); }
  100% { transform: translateY(0); }
}
@keyframes hp3-desk {
  0% { transform: scale(1); }
  50% { transform: scale(1.01); }
  100% { transform: scale(1); }
}
@keyframes hp3-chair {
  0% { transform: rotate(0deg); }
  50% { transform: rotate(1deg); }
  100% { transform: rotate(0deg); }
}
@keyframes hp3-lamp {
  0% { box-shadow: 0 0 30px 15px rgba(180,120,40,0.4), 0 0 60px 30px rgba(120,80,20,0.2); }
  50% { box-shadow: 0 0 50px 25px rgba(200,140,60,0.6), 0 0 100px 50px rgba(140,100,30,0.3); }
  100% { box-shadow: 0 0 35px 18px rgba(180,120,40,0.45), 0 0 70px 35px rgba(120,80,20,0.25); }
}
@keyframes hp3-seated {
  0% { transform: translateX(0) rotate(0deg); }
  30% { transform: translateX(2px) rotate(1deg); }
  60% { transform: translateX(-1px) rotate(-1deg); }
  100% { transform: translateX(0) rotate(0deg); }
}
@keyframes hp3-letter {
  0% { transform: translateY(0) rotate(0deg); }
  50% { transform: translateY(-2px) rotate(2deg); }
  100% { transform: translateY(0) rotate(0deg); }
}
@keyframes hp3-tree {
  0% { transform: scaleY(1); }
  50% { transform: scaleY(0.95); }
  100% { transform: scaleY(1); }
}

.scn-christmas-morning-alone {
  background: linear-gradient(180deg, #1e1a1a 0%, #141010 50%, #0a0808 100%),
              radial-gradient(ellipse at 40% 50%, #2a2020 0%, transparent 60%);
}

.scn-christmas-morning-alone .room-back {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(135deg, #2a1e1e 0%, #161010 100%);
  animation: cm4-wall 18s ease-in-out infinite alternate;
}
.scn-christmas-morning-alone .room-floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #1a1212 0%, #0e0a0a 100%);
  animation: cm4-floor 12s ease-in-out infinite alternate;
}
.scn-christmas-morning-alone .sofa {
  position: absolute; bottom: 8%; left: 10%; width: 30%; height: 20%;
  background: linear-gradient(180deg, #2a1c1c 0%, #1a1010 100%);
  border-radius: 10% 10% 20% 20% / 20% 20% 30% 30%;
  box-shadow: 0 4px 12px rgba(0,0,0,0.6);
  animation: cm4-sofa 14s ease-in-out infinite;
}
.scn-christmas-morning-alone .tree-stripped {
  position: absolute; bottom: 12%; right: 20%; width: 25%; height: 45%;
  background: linear-gradient(180deg, #2a3a2a 0%, #1a2a1a 100%);
  clip-path: polygon(50% 0%, 10% 100%, 90% 100%);
  opacity: 0.6;
  animation: cm4-tree 20s ease-in-out infinite;
}
.scn-christmas-morning-alone .candle-end-1 {
  position: absolute; bottom: 38%; right: 32%; width: 3%; height: 5%;
  background: #d0a070;
  border-radius: 50% 50% 10% 10%;
  box-shadow: 0 0 6px 2px rgba(200,150,100,0.3);
  animation: cm4-candle 6s ease-in-out infinite;
}
.scn-christmas-morning-alone .candle-end-2 {
  position: absolute; bottom: 45%; right: 28%; width: 2.5%; height: 4%;
  background: #c09060;
  border-radius: 50% 50% 10% 10%;
  box-shadow: 0 0 5px 2px rgba(200,150,100,0.3);
  animation: cm4-candle 6s ease-in-out infinite 3s;
}
.scn-christmas-morning-alone .figure-nora-walk {
  position: absolute; bottom: 10%; left: 40%; width: 12%; height: 38%;
  background: linear-gradient(180deg, #1a1212 0%, #0a0808 100%);
  border-radius: 45% 45% 25% 25% / 55% 55% 35% 35%;
  transform-origin: bottom center;
  animation: cm4-walk 10s ease-in-out infinite;
}
.scn-christmas-morning-alone .cloak {
  position: absolute; bottom: 6%; left: 55%; width: 14%; height: 18%;
  background: linear-gradient(180deg, #2a1a1a 0%, #1a0e0e 100%);
  border-radius: 30% 30% 50% 50% / 20% 20% 60% 60%;
  transform-origin: bottom center;
  animation: cm4-cloak 8s ease-in-out infinite;
}
.scn-christmas-morning-alone .hat {
  position: absolute; bottom: 10%; left: 62%; width: 8%; height: 6%;
  background: #1a1212;
  border-radius: 50% 50% 30% 30%;
  transform: rotate(-10deg);
  animation: cm4-hat 6s ease-in-out infinite;
}

@keyframes cm4-wall {
  0% { opacity: 0.8; }
  50% { opacity: 1; }
  100% { opacity: 0.75; }
}
@keyframes cm4-floor {
  0% { transform: translateY(0); }
  50% { transform: translateY(-2px); }
  100% { transform: translateY(0); }
}
@keyframes cm4-sofa {
  0% { transform: scale(1); }
  50% { transform: scale(1.005); }
  100% { transform: scale(1); }
}
@keyframes cm4-tree {
  0% { transform: scaleY(1) rotate(0deg); }
  50% { transform: scaleY(0.97) rotate(1deg); }
  100% { transform: scaleY(1) rotate(0deg); }
}
@keyframes cm4-candle {
  0% { opacity: 0.4; transform: translateY(0); }
  50% { opacity: 1; transform: translateY(-2px); }
  100% { opacity: 0.4; transform: translateY(0); }
}
@keyframes cm4-walk {
  0% { transform: translateX(0) rotate(0deg); }
  20% { transform: translateX(10px) rotate(2deg); }
  40% { transform: translateX(20px) rotate(0deg); }
  60% { transform: translateX(10px) rotate(-2deg); }
  80% { transform: translateX(0) rotate(0deg); }
  100% { transform: translateX(0) rotate(0deg); }
}
@keyframes cm4-cloak {
  0% { transform: translateX(0) rotate(0deg); }
  50% { transform: translateX(2px) rotate(3deg); }
  100% { transform: translateX(0) rotate(0deg); }
}
@keyframes cm4-hat {
  0% { transform: rotate(-10deg); }
  50% { transform: rotate(-5deg); }
  100% { transform: rotate(-10deg); }
}

/* krogstad-confrontation */
.scn-krogstad-confrontation {
  background: linear-gradient(180deg, #b8a08e 0%, #8a705a 100%), radial-gradient(ellipse at 50% 30%, #d4b89a 0%, transparent 70%);
}
.scn-krogstad-confrontation .bg {
  position: absolute; inset: 0; background: linear-gradient(180deg, #c4aa94 0%, #9a826a 100%); animation: kc1-bg 12s ease-in-out infinite alternate;
}
.scn-krogstad-confrontation .figure-left {
  position: absolute; bottom: 25%; left: 20%; width: 38px; height: 64px;
  background: linear-gradient(180deg, #2a1a1a 0%, #1a0a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: kc1-fL 4s ease-in-out infinite alternate;
}
.scn-krogstad-confrontation .figure-right {
  position: absolute; bottom: 25%; right: 20%; width: 40px; height: 68px;
  background: linear-gradient(180deg, #3a2a2a 0%, #1a0a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: kc1-fR 5s ease-in-out infinite alternate;
}
.scn-krogstad-confrontation .desk {
  position: absolute; bottom: 20%; left: 50%; width: 130px; height: 18px; transform: translateX(-50%);
  background: linear-gradient(180deg, #5a3e2e 0%, #3a261a 100%);
  border-radius: 4px; box-shadow: 0 4px 8px rgba(0,0,0,0.5);
  animation: kc1-desk 7s ease-in-out infinite;
}
.scn-krogstad-confrontation .lamp {
  position: absolute; bottom: 30%; left: 50%; width: 14px; height: 20px; transform: translateX(-50%);
  background: linear-gradient(180deg, #8a6a4a 0%, #6a4a3a 100%);
  border-radius: 4px 4px 2px 2px; box-shadow: 0 -2px 4px rgba(0,0,0,0.3);
  animation: kc1-lamp 3s ease-in-out infinite alternate;
}
.scn-krogstad-confrontation .lamp-light {
  position: absolute; top: 20%; left: 50%; width: 120px; height: 120px; transform: translate(-50%, -50%);
  background: radial-gradient(circle, rgba(255,200,100,0.5) 0%, rgba(255,200,100,0.1) 60%, transparent 100%);
  border-radius: 50%; filter: blur(10px);
  animation: kc1-glow 4s ease-in-out infinite alternate;
}
.scn-krogstad-confrontation .shadow {
  position: absolute; inset: 0; pointer-events: none;
  background: radial-gradient(ellipse at 50% 80%, rgba(0,0,0,0.3) 0%, transparent 70%);
  animation: kc1-shadow 8s ease-in-out infinite;
}
@keyframes kc1-bg    { 0% { opacity:0.9 } 50% { opacity:1 } 100% { opacity:0.85 } }
@keyframes kc1-fL    { 0% { transform: translateX(0) rotate(0) } 50% { transform: translateX(4px) rotate(2deg) scaleY(1.02) } 100% { transform: translateX(0) rotate(-2deg) } }
@keyframes kc1-fR    { 0% { transform: translateX(0) rotate(0) scaleY(1) } 50% { transform: translateX(-3px) rotate(-3deg) scaleY(0.98) } 100% { transform: translateX(0) rotate(1deg) } }
@keyframes kc1-desk  { 0% { transform: translateX(-50%) translateY(0) } 50% { transform: translateX(-50%) translateY(-2px) } 100% { transform: translateX(-50%) translateY(0) } }
@keyframes kc1-lamp  { 0% { opacity:0.8 } 100% { opacity:1 } }
@keyframes kc1-glow  { 0% { opacity:0.4; transform: translate(-50%,-50%) scale(0.9) } 50% { opacity:0.7; transform: translate(-50%,-50%) scale(1.1) } 100% { opacity:0.5; transform: translate(-50%,-50%) scale(0.95) } }
@keyframes kc1-shadow{ 0% { opacity:0.3 } 50% { opacity:0.5 } 100% { opacity:0.3 } }

/* krogstad-history */
.scn-krogstad-history {
  background: linear-gradient(180deg, #c8b49a 0%, #9a826a 100%), radial-gradient(ellipse at 50% 30%, #d4bc9e 0%, transparent 60%);
}
.scn-krogstad-history .bg {
  position: absolute; inset: 0; background: linear-gradient(180deg, #c8b49a 0%, #a88e78 100%); animation: kh2-bg 14s ease-in-out infinite alternate;
}
.scn-krogstad-history .desk {
  position: absolute; bottom: 20%; left: 30%; width: 180px; height: 16px;
  background: linear-gradient(180deg, #4a3422 0%, #2a1e12 100%);
  border-radius: 3px; box-shadow: 0 3px 6px rgba(0,0,0,0.4);
  animation: kh2-desk 6s ease-in-out infinite;
}
.scn-krogstad-history .figure {
  position: absolute; bottom: 25%; left: 38%; width: 36px; height: 60px;
  background: linear-gradient(180deg, #2a1a1a 0%, #1a0a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: kh2-fig 5s ease-in-out infinite alternate;
}
.scn-krogstad-history .stove {
  position: absolute; bottom: 18%; right: 20%; width: 40px; height: 50px;
  background: linear-gradient(180deg, #3a3a3a 0%, #2a2a2a 100%);
  border-radius: 6px 6px 2px 2px; box-shadow: inset 0 -4px 8px rgba(0,0,0,0.3);
  animation: kh2-stove 8s ease-in-out infinite;
}
.scn-krogstad-history .papers {
  position: absolute; bottom: 22%; left: 35%; width: 40px; height: 30px;
  background: linear-gradient(180deg, #e0d0b0 0%, #c0b090 100%);
  border-radius: 2px; box-shadow: 0 2px 4px rgba(0,0,0,0.2);
  animation: kh2-papers 10s ease-in-out infinite alternate;
}
.scn-krogstad-history .flame {
  position: absolute; bottom: 40%; right: 25%; width: 16px; height: 24px;
  background: radial-gradient(circle, #ffa040 0%, #ff6000 60%, transparent 100%);
  border-radius: 50%; filter: blur(4px);
  animation: kh2-flame 3s ease-in-out infinite alternate;
}
.scn-krogstad-history .shadow {
  position: absolute; inset: 0; pointer-events: none;
  background: radial-gradient(ellipse at 50% 80%, rgba(0,0,0,0.2) 0%, transparent 70%);
  animation: kh2-shadow 9s ease-in-out infinite;
}
@keyframes kh2-bg    { 0% { opacity:0.9 } 50% { opacity:1 } 100% { opacity:0.85 } }
@keyframes kh2-desk  { 0% { transform: translateY(0) } 50% { transform: translateY(-2px) } 100% { transform: translateY(0) } }
@keyframes kh2-fig   { 0% { transform: translateX(0) rotate(0) } 50% { transform: translateX(5px) rotate(2deg) scaleY(1.02) } 100% { transform: translateX(0) rotate(-2deg) } }
@keyframes kh2-stove { 0% { opacity:0.8 } 50% { opacity:1 } 100% { opacity:0.85 } }
@keyframes kh2-papers{ 0% { transform: rotate(0) } 50% { transform: rotate(5deg) } 100% { transform: rotate(-3deg) } }
@keyframes kh2-flame { 0% { opacity:0.5; transform: scale(0.9) } 50% { opacity:1; transform: scale(1.2) } 100% { opacity:0.6; transform: scale(0.95) } }
@keyframes kh2-shadow{ 0% { opacity:0.2 } 50% { opacity:0.4 } 100% { opacity:0.2 } }

/* doctor-rank-greeting */
.scn-doctor-rank-greeting {
  background: linear-gradient(180deg, #f0e0c8 0%, #d4bc9e 100%), radial-gradient(ellipse at 50% 30%, #fff0e0 0%, transparent 60%);
}
.scn-doctor-rank-greeting .bg {
  position: absolute; inset: 0; background: linear-gradient(180deg, #f0e0c8 0%, #d4bc9e 100%); animation: drg3-bg 10s ease-in-out infinite alternate;
}
.scn-doctor-rank-greeting .stair {
  position: absolute; bottom: 0; left: 0; right: 0; height: 60%;
  background: linear-gradient(180deg, #c8b49a 0%, #b4a08a 100%);
  clip-path: polygon(0% 40%, 100% 40%, 100% 100%, 0% 100%);
  animation: drg3-stair 8s ease-in-out infinite;
}
.scn-doctor-rank-greeting .railing {
  position: absolute; bottom: 40%; left: 10%; right: 10%; height: 6px;
  background: linear-gradient(90deg, #8a705a 0%, #6a5a4a 100%);
  border-radius: 3px; box-shadow: 0 2px 4px rgba(0,0,0,0.2);
  animation: drg3-rail 12s ease-in-out infinite;
}
.scn-doctor-rank-greeting .figure-rank {
  position: absolute; bottom: 42%; left: 30%; width: 38px; height: 66px;
  background: linear-gradient(180deg, #2a1a1a 0%, #1a0a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: drg3-rank 4s ease-in-out infinite alternate;
}
.scn-doctor-rank-greeting .figure-linde {
  position: absolute; bottom: 38%; left: 55%; width: 34px; height: 60px;
  background: linear-gradient(180deg, #4a3a2a 0%, #3a2a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: drg3-linde 5s ease-in-out infinite alternate;
}
.scn-doctor-rank-greeting .light {
  position: absolute; top: 10%; left: 50%; width: 100px; height: 100px; transform: translateX(-50%);
  background: radial-gradient(circle, rgba(255,255,200,0.3) 0%, transparent 70%);
  border-radius: 50%; filter: blur(20px);
  animation: drg3-light 6s ease-in-out infinite alternate;
}
@keyframes drg3-bg   { 0% { opacity:0.95 } 50% { opacity:1 } 100% { opacity:0.9 } }
@keyframes drg3-stair { 0% { transform: translateY(0) } 50% { transform: translateY(-3px) } 100% { transform: translateY(0) } }
@keyframes drg3-rail { 0% { transform: scaleY(1) } 50% { transform: scaleY(1.1) } 100% { transform: scaleY(1) } }
@keyframes drg3-rank { 0% { transform: translateX(0) rotate(0) } 50% { transform: translateX(6px) rotate(3deg) scaleY(1.02) } 100% { transform: translateX(0) rotate(-3deg) } }
@keyframes drg3-linde{ 0% { transform: translateX(0) rotate(0) scaleY(1) } 50% { transform: translateX(-4px) rotate(-2deg) scaleY(0.98) } 100% { transform: translateX(0) rotate(2deg) } }
@keyframes drg3-light{ 0% { opacity:0.4; transform: translateX(-50%) scale(0.9) } 50% { opacity:0.8; transform: translateX(-50%) scale(1.1) } 100% { opacity:0.5; transform: translateX(-50%) scale(0.95) } }

/* doctor-rank-cynicism */
.scn-doctor-rank-cynicism {
  background: linear-gradient(180deg, #4a3a3a 0%, #2a1e1e 100%), radial-gradient(ellipse at 50% 30%, #5a4a4a 0%, transparent 60%);
}
.scn-doctor-rank-cynicism .bg {
  position: absolute; inset: 0; background: linear-gradient(180deg, #5a4a4a 0%, #3a2a2a 100%); animation: drc4-bg 15s ease-in-out infinite alternate;
}
.scn-doctor-rank-cynicism .chair {
  position: absolute; bottom: 20%; left: 40%; width: 50px; height: 60px;
  background: linear-gradient(180deg, #3a2a1a 0%, #2a1a0a 100%);
  border-radius: 10% 10% 30% 30% / 20% 20% 40% 40%;
  box-shadow: 0 4px 8px rgba(0,0,0,0.6);
  animation: drc4-chair 7s ease-in-out infinite;
}
.scn-doctor-rank-cynicism .figure-rank {
  position: absolute; bottom: 28%; left: 44%; width: 36px; height: 58px;
  background: linear-gradient(180deg, #2a1a1a 0%, #1a0a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: drc4-rank 5s ease-in-out infinite alternate;
}
.scn-doctor-rank-cynicism .drink {
  position: absolute; bottom: 32%; left: 52%; width: 10px; height: 14px;
  background: linear-gradient(180deg, #c8a868 0%, #a88848 100%);
  border-radius: 4px 4px 2px 2px; box-shadow: 0 0 8px rgba(200,168,104,0.4);
  animation: drc4-drink 3s ease-in-out infinite alternate;
}
.scn-doctor-rank-cynicism .shadow {
  position: absolute; inset: 0; pointer-events: none;
  background: radial-gradient(ellipse at 50% 70%, rgba(0,0,0,0.5) 0%, transparent 70%);
  animation: drc4-shadow 8s ease-in-out infinite;
}
.scn-doctor-rank-cynicism .clock {
  position: absolute; top: 10%; right: 15%; width: 20px; height: 20px;
  background: radial-gradient(circle, #8a7a6a 0%, #6a5a4a 100%);
  border-radius: 50%; box-shadow: 0 0 4px rgba(0,0,0,0.3);
  animation: drc4-clock 20s linear infinite;
}
@keyframes drc4-bg    { 0% { opacity:0.85 } 50% { opacity:1 } 100% { opacity:0.9 } }
@keyframes drc4-chair { 0% { transform: translateY(0) } 50% { transform: translateY(-2px) } 100% { transform: translateY(0) } }
@keyframes drc4-rank  { 0% { transform: translateX(0) rotate(0) scaleY(1) } 50% { transform: translateX(3px) rotate(-3deg) scaleY(0.98) } 100% { transform: translateX(0) rotate(2deg) } }
@keyframes drc4-drink { 0% { transform: translateY(0) rotate(0) } 50% { transform: translateY(-2px) rotate(10deg) } 100% { transform: translateY(0) rotate(-5deg) } }
@keyframes drc4-shadow{ 0% { opacity:0.4 } 50% { opacity:0.6 } 100% { opacity:0.4 } }
@keyframes drc4-clock { 0% { transform: rotate(0deg) } 100% { transform: rotate(360deg) } }

.scn-italy-trip-story {
  background:
    linear-gradient(135deg, #f9e4b7 0%, #e2c78f 50%, #c9a96e 100%),
    radial-gradient(ellipse at 30% 40%, #f0d6a0 10%, transparent 60%);
}
.scn-italy-trip-story .window-frame {
  position: absolute; top: 10%; left: 5%; width: 30%; height: 55%;
  background: linear-gradient(180deg, #a07858 0%, #7a5a3a 100%);
  border-radius: 6px; box-shadow: inset 0 0 10px rgba(0,0,0,0.4);
  animation: its-frame 12s ease-in-out infinite alternate;
}
.scn-italy-trip-story .window-glass {
  position: absolute; top: 13%; left: 8%; width: 24%; height: 49%;
  background: linear-gradient(180deg, #87ceeb 0%, #b0e0e6 50%, #d8f0fa 100%);
  border-radius: 4px; opacity: 0.85;
  animation: its-sky 18s linear infinite alternate;
}
.scn-italy-trip-story .suitcase {
  position: absolute; bottom: 22%; left: 38%; width: 18%; height: 14%;
  background: linear-gradient(180deg, #8b5e3c 0%, #5a3a1a 50%, #4a2a0a 100%);
  border-radius: 8% 8% 4% 4%; box-shadow: 0 5px 10px rgba(0,0,0,0.3);
  animation: its-suitcase 8s ease-in-out infinite;
}
.scn-italy-trip-story .armchair {
  position: absolute; bottom: 18%; right: 10%; width: 28%; height: 40%;
  background: linear-gradient(135deg, #c0734a 0%, #a05030 50%, #7a3a1a 100%);
  border-radius: 30% 30% 10% 10%; box-shadow: 0 8px 20px rgba(0,0,0,0.4);
  animation: its-chair 6s ease-in-out infinite alternate;
}
.scn-italy-trip-story .figure-its {
  position: absolute; bottom: 22%; right: 18%; width: 12%; height: 28%;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0a00 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  animation: its-figure 4s ease-in-out infinite;
}
.scn-italy-trip-story .lamp {
  position: absolute; bottom: 35%; left: 50%; width: 6%; height: 25%;
  background: linear-gradient(180deg, #b09060 0%, #605030 100%);
  border-radius: 10% 10% 5% 5%;
}
.scn-italy-trip-story .lamplight {
  position: absolute; bottom: 30%; left: 48%; width: 10%; height: 10%;
  background: radial-gradient(circle, #ffd080 0%, #f0b040 50%, transparent 70%);
  border-radius: 50%; animation: its-glow 3s ease-in-out infinite alternate;
}
.scn-italy-trip-story .book {
  position: absolute; bottom: 18%; left: 52%; width: 8%; height: 6%;
  background: linear-gradient(180deg, #8a6a4a 0%, #4a2a1a 100%);
  border-radius: 4px; transform: rotate(-10deg);
  animation: its-book 9s ease-in-out infinite alternate;
}
@keyframes its-frame {
  0% { box-shadow: inset 0 0 10px rgba(0,0,0,0.4); }
  50% { box-shadow: inset 0 0 15px rgba(0,0,0,0.3); transform: scale(1.01); }
  100% { box-shadow: inset 0 0 8px rgba(0,0,0,0.5); }
}
@keyframes its-sky {
  0% { background-position: 0% 0%; }
  50% { background-position: 50% 0%; }
  100% { background-position: 100% 0%; }
}
@keyframes its-suitcase {
  0%,100% { transform: translateY(0) rotate(0deg); }
  50% { transform: translateY(-2px) rotate(1deg); }
}
@keyframes its-chair {
  0% { transform: scale(1); }
  50% { transform: scale(1.02) translateY(-1px); }
  100% { transform: scale(1); }
}
@keyframes its-figure {
  0%,100% { transform: translateY(0) rotate(-2deg); }
  25% { transform: translateY(-1px) rotate(0deg); }
  50% { transform: translateY(0) rotate(2deg); }
  75% { transform: translateY(-1px) rotate(0deg); }
}
@keyframes its-glow {
  0% { opacity: 0.7; transform: scale(0.9); }
  50% { opacity: 1; transform: scale(1.1); }
  100% { opacity: 0.8; transform: scale(0.95); }
}
@keyframes its-book {
  0% { transform: rotate(-10deg) translateY(0); }
  50% { transform: rotate(-8deg) translateY(-1px); }
  100% { transform: rotate(-12deg) translateY(0); }
}

.scn-italy-recovery {
  background:
    linear-gradient(180deg, #f5e6d0 0%, #e0cfa8 50%, #c8b080 100%),
    radial-gradient(ellipse at 50% 30%, #f0e0c0 10%, transparent 70%);
}
.scn-italy-recovery .daybed {
  position: absolute; bottom: 18%; left: 15%; width: 60%; height: 35%;
  background: linear-gradient(180deg, #d09870 0%, #a06a40 100%);
  border-radius: 20% 20% 5% 5%; box-shadow: 0 6px 15px rgba(0,0,0,0.3);
  animation: ire-bed 10s ease-in-out infinite;
}
.scn-italy-recovery .figure-ire {
  position: absolute; bottom: 22%; left: 30%; width: 15%; height: 25%;
  background: linear-gradient(180deg, #4a3020 0%, #2a1808 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  animation: ire-figure 5s ease-in-out infinite alternate;
}
.scn-italy-recovery .side-table {
  position: absolute; bottom: 20%; right: 15%; width: 12%; height: 18%;
  background: linear-gradient(180deg, #b09070 0%, #705030 100%);
  border-radius: 8% 8% 4% 4%;
}
.scn-italy-recovery .bell {
  position: absolute; bottom: 32%; right: 18%; width: 5%; height: 5%;
  background: radial-gradient(circle, #e0c880 0%, #b09850 70%);
  border-radius: 50%; box-shadow: 0 2px 6px rgba(0,0,0,0.3);
  animation: ire-bell 4s ease-in-out infinite alternate;
}
.scn-italy-recovery .window-ire {
  position: absolute; top: 8%; left: 5%; width: 30%; height: 45%;
  background: linear-gradient(180deg, #a8d8ea 0%, #c8e8f8 50%, #e0f0ff 100%);
  border-radius: 4px; opacity: 0.8; box-shadow: inset 0 0 8px rgba(0,0,0,0.2);
  animation: ire-window 20s ease-in-out infinite alternate;
}
.scn-italy-recovery .curtain-l {
  position: absolute; top: 6%; left: 4%; width: 8%; height: 50%;
  background: linear-gradient(180deg, #f0d8b0 0%, #d0b890 100%);
  border-radius: 0 30% 30% 0; opacity: 0.7;
  animation: ire-curtain-l 12s ease-in-out infinite alternate;
}
.scn-italy-recovery .curtain-r {
  position: absolute; top: 6%; right: 4%; width: 8%; height: 50%;
  background: linear-gradient(180deg, #f0d8b0 0%, #d0b890 100%);
  border-radius: 30% 0 0 30%; opacity: 0.7;
  animation: ire-curtain-r 12s ease-in-out infinite alternate;
}
.scn-italy-recovery .vase {
  position: absolute; bottom: 22%; left: 10%; width: 6%; height: 12%;
  background: linear-gradient(180deg, #9a7a5a 0%, #5a3a1a 100%);
  border-radius: 20% 20% 5% 5%;
  animation: ire-vase 9s ease-in-out infinite;
}
@keyframes ire-bed {
  0%,100% { transform: translateY(0); }
  50% { transform: translateY(-2px); }
}
@keyframes ire-figure {
  0% { transform: translateY(0) rotate(-1deg); }
  50% { transform: translateY(-1px) rotate(0); }
  100% { transform: translateY(0) rotate(1deg); }
}
@keyframes ire-bell {
  0% { transform: scale(1) rotate(0deg); }
  50% { transform: scale(1.05) rotate(3deg); }
  100% { transform: scale(1) rotate(0deg); }
}
@keyframes ire-window {
  0% { background-position: 0% 0%; opacity: 0.75; }
  50% { background-position: 50% 0%; opacity: 0.85; }
  100% { background-position: 100% 0%; opacity: 0.75; }
}
@keyframes ire-curtain-l {
  0% { transform: translateX(0); }
  50% { transform: translateX(5px); }
  100% { transform: translateX(0); }
}
@keyframes ire-curtain-r {
  0% { transform: translateX(0); }
  50% { transform: translateX(-5px); }
  100% { transform: translateX(0); }
}
@keyframes ire-vase {
  0%,100% { transform: translateY(0) rotate(0deg); }
  50% { transform: translateY(-2px) rotate(1deg); }
}

.scn-doctor-rank-intro {
  background:
    linear-gradient(135deg, #f4d9b0 0%, #e0b880 50%, #c89860 100%),
    radial-gradient(ellipse at 40% 50%, #f0c890 20%, transparent 70%);
}
.scn-doctor-rank-intro .table-dri {
  position: absolute; bottom: 22%; left: 30%; width: 40%; height: 12%;
  background: linear-gradient(180deg, #b09070 0%, #805030 100%);
  border-radius: 6px; box-shadow: 0 4px 10px rgba(0,0,0,0.3);
  animation: dri-table 15s ease-in-out infinite;
}
.scn-doctor-rank-intro .chair-left {
  position: absolute; bottom: 18%; left: 28%; width: 14%; height: 22%;
  background: linear-gradient(180deg, #c07040 0%, #904820 100%);
  border-radius: 30% 30% 10% 10%; box-shadow: 0 4px 10px rgba(0,0,0,0.3);
  animation: dri-chair-l 8s ease-in-out infinite alternate;
}
.scn-doctor-rank-intro .chair-right {
  position: absolute; bottom: 18%; right: 28%; width: 14%; height: 22%;
  background: linear-gradient(180deg, #c07040 0%, #904820 100%);
  border-radius: 30% 30% 10% 10%; box-shadow: 0 4px 10px rgba(0,0,0,0.3);
  animation: dri-chair-r 8s ease-in-out infinite alternate;
}
.scn-doctor-rank-intro .doctor-bag {
  position: absolute; bottom: 18%; left: 48%; width: 10%; height: 8%;
  background: linear-gradient(180deg, #6a4a3a 0%, #4a2a1a 100%);
  border-radius: 10% 10% 6% 6%; transform: rotate(-5deg);
  animation: dri-bag 6s ease-in-out infinite;
}
.scn-doctor-rank-intro .lamp-dri {
  position: absolute; top: 12%; left: 45%; width: 5%; height: 20%;
  background: linear-gradient(180deg, #b09060 0%, #605030 100%);
  border-radius: 10% 10% 5% 5%;
}
.scn-doctor-rank-intro .lamplight-dri {
  position: absolute; top: 20%; left: 43%; width: 14%; height: 10%;
  background: radial-gradient(circle, #ffd080 0%, #f0b040 50%, transparent 70%);
  border-radius: 50%; animation: dri-glow 3s ease-in-out infinite alternate;
}
.scn-doctor-rank-intro .plant {
  position: absolute; bottom: 28%; right: 10%; width: 10%; height: 20%;
  background: linear-gradient(180deg, #3a7a3a 0%, #1a4a1a 100%);
  border-radius: 40% 40% 20% 20% / 60% 60% 20% 20%;
  animation: dri-plant 7s ease-in-out infinite alternate;
}
.scn-doctor-rank-intro .rug {
  position: absolute; bottom: 12%; left: 25%; width: 50%; height: 10%;
  background: linear-gradient(90deg, #c8a070 0%, #a08050 50%, #c8a070 100%);
  border-radius: 20%; opacity: 0.6;
  animation: dri-rug 20s ease-in-out infinite;
}
@keyframes dri-table {
  0%,100% { transform: translateY(0); }
  50% { transform: translateY(-1px); }
}
@keyframes dri-chair-l {
  0% { transform: translateY(0) rotate(-1deg); }
  50% { transform: translateY(-2px) rotate(0deg); }
  100% { transform: translateY(0) rotate(1deg); }
}
@keyframes dri-chair-r {
  0% { transform: translateY(0) rotate(1deg); }
  50% { transform: translateY(-2px) rotate(0deg); }
  100% { transform: translateY(0) rotate(-1deg); }
}
@keyframes dri-bag {
  0%,100% { transform: rotate(-5deg) translateY(0); }
  50% { transform: rotate(-3deg) translateY(-2px); }
}
@keyframes dri-glow {
  0% { opacity: 0.7; transform: scale(0.9); }
  50% { opacity: 1; transform: scale(1.1); }
  100% { opacity: 0.8; transform: scale(0.95); }
}
@keyframes dri-plant {
  0% { transform: scale(1) rotate(0deg); }
  50% { transform: scale(1.02) rotate(2deg); }
  100% { transform: scale(1) rotate(0deg); }
}
@keyframes dri-rug {
  0% { background-position: 0% 0%; }
  50% { background-position: 50% 0%; }
  100% { background-position: 100% 0%; }
}

.scn-mrs-linde-marriage-story {
  background:
    linear-gradient(135deg, #f2dcc2 0%, #ddc4a0 50%, #c5a87c 100%),
    radial-gradient(ellipse at 60% 40%, #e8d0b0 15%, transparent 65%);
}
.scn-mrs-linde-marriage-story .stool {
  position: absolute; bottom: 20%; left: 40%; width: 12%; height: 20%;
  background: linear-gradient(180deg, #b09070 0%, #705030 100%);
  border-radius: 30% 30% 5% 5%;
  animation: mls-stool 12s ease-in-out infinite;
}
.scn-mrs-linde-marriage-story .figure-mls {
  position: absolute; bottom: 25%; left: 38%; width: 16%; height: 30%;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0a00 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  animation: mls-figure 5s ease-in-out infinite alternate;
}
.scn-mrs-linde-marriage-story .window-mls {
  position: absolute; top: 10%; right: 8%; width: 25%; height: 45%;
  background: linear-gradient(180deg, #b8d8e8 0%, #d0e8f8 50%, #e8f0ff 100%);
  border-radius: 4px; opacity: 0.75;
  animation: mls-window 30s linear infinite alternate;
}
.scn-mrs-linde-marriage-story .small-table {
  position: absolute; bottom: 22%; right: 10%; width: 12%; height: 14%;
  background: linear-gradient(180deg, #a08060 0%, #605040 100%);
  border-radius: 6px;
}
.scn-mrs-linde-marriage-story .candle {
  position: absolute; bottom: 30%; right: 13%; width: 3%; height: 10%;
  background: linear-gradient(180deg, #e8d8b0 0%, #c8b080 100%);
  border-radius: 10% 10% 5% 5%;
}
.scn-mrs-linde-marriage-story .candle-glow {
  position: absolute; bottom: 28%; right: 11%; width: 7%; height: 7%;
  background: radial-gradient(circle, #ffd080 0%, #f0b040 50%, transparent 70%);
  border-radius: 50%; animation: mls-candle 2s ease-in-out infinite alternate;
}
.scn-mrs-linde-marriage-story .curtain-mls {
  position: absolute; top: 8%; right: 6%; width: 6%; height: 48%;
  background: linear-gradient(180deg, #e8c8a0 0%, #c8a880 100%);
  border-radius: 30% 0 0 30%; opacity: 0.6;
  animation: mls-curtain 15s ease-in-out infinite alternate;
}
@keyframes mls-stool {
  0%,100% { transform: translateY(0); }
  50% { transform: translateY(-1px); }
}
@keyframes mls-figure {
  0% { transform: translateY(0) rotate(-2deg); }
  50% { transform: translateY(-1px) rotate(0); }
  100% { transform: translateY(0) rotate(2deg); }
}
@keyframes mls-window {
  0% { background-position: 0% 0%; opacity: 0.7; }
  50% { background-position: 50% 0%; opacity: 0.8; }
  100% { background-position: 100% 0%; opacity: 0.7; }
}
@keyframes mls-candle {
  0% { opacity: 0.75; transform: scale(0.95); }
  50% { opacity: 1; transform: scale(1.05); }
  100% { opacity: 0.85; transform: scale(0.95); }
}
@keyframes mls-curtain {
  0% { transform: translateX(0); }
  50% { transform: translateX(-3px); }
  100% { transform: translateX(0); }
}

/* nora-reveals-secret */
.scn-nora-reveals-secret {
  background: 
    linear-gradient(180deg, #f5e6c8 0%, #d4b48a 40%, #b8966e 100%),
    radial-gradient(ellipse at 50% 60%, #ffdd99 0%, transparent 70%);
}
.scn-nora-reveals-secret .wall {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(180deg, #ede0c0 0%, #c8a87c 100%);
  box-shadow: inset 0 -4px 12px rgba(0,0,0,0.15);
}
.scn-nora-reveals-secret .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 40%;
  background: linear-gradient(180deg, #a08060 0%, #806040 100%);
  border-radius: 20% 20% 0 0 / 10% 10% 0 0;
  animation: nrs-floor 12s ease-in-out infinite;
}
.scn-nora-reveals-secret .window {
  position: absolute; top: 15%; left: 38%; width: 24%; height: 30%;
  background: linear-gradient(180deg, #ffeedd 0%, #ffccaa 100%);
  border: 3px solid #8b6f4e; border-radius: 4px;
  box-shadow: inset 0 0 20px #ffd699, 0 0 30px rgba(255,214,153,0.3);
  animation: nrs-window 6s ease-in-out infinite alternate;
}
.scn-nora-reveals-secret .lamp {
  position: absolute; bottom: 30%; left: 50%; transform: translateX(-50%);
  width: 14px; height: 30px;
  background: linear-gradient(180deg, #b08040 0%, #805020 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%;
  box-shadow: 0 0 40px 10px rgba(255,200,100,0.6), 0 0 80px 20px rgba(255,200,100,0.2);
  animation: nrs-lamp 4s ease-in-out infinite alternate;
}
.scn-nora-reveals-secret .figure-left {
  position: absolute; bottom: 22%; left: 28%; width: 20px; height: 48px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a1008 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: nrs-fig-left 3s ease-in-out infinite;
}
.scn-nora-reveals-secret .figure-right {
  position: absolute; bottom: 22%; right: 28%; width: 22px; height: 50px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: nrs-fig-right 3.5s ease-in-out infinite;
}
.scn-nora-reveals-secret .shadow {
  position: absolute; bottom: 18%; left: 30%; right: 30%; height: 20%;
  background: radial-gradient(ellipse at 50% 100%, rgba(0,0,0,0.3) 0%, transparent 70%);
  animation: nrs-shadow 5s ease-in-out infinite alternate;
}
@keyframes nrs-floor { 0% { transform: translateY(0); } 50% { transform: translateY(-2px) scale(1.005); } 100% { transform: translateY(0); } }
@keyframes nrs-window { 0% { opacity: 0.85; box-shadow: inset 0 0 15px #ffdd99, 0 0 20px rgba(255,214,153,0.2); } 50% { opacity: 1; box-shadow: inset 0 0 25px #ffdd99, 0 0 40px rgba(255,214,153,0.4); } 100% { opacity: 0.9; box-shadow: inset 0 0 18px #ffdd99, 0 0 25px rgba(255,214,153,0.25); } }
@keyframes nrs-lamp { 0% { transform: translateX(-50%) scaleY(1); box-shadow: 0 0 30px 8px rgba(255,200,100,0.5), 0 0 60px 15px rgba(255,200,100,0.15); } 50% { transform: translateX(-50%) scaleY(1.05) scaleX(0.95); box-shadow: 0 0 50px 12px rgba(255,200,100,0.7), 0 0 80px 20px rgba(255,200,100,0.25); } 100% { transform: translateX(-50%) scaleY(1); box-shadow: 0 0 35px 9px rgba(255,200,100,0.55), 0 0 65px 16px rgba(255,200,100,0.2); } }
@keyframes nrs-fig-left { 0% { transform: translateX(0) rotate(-2deg); } 50% { transform: translateX(3px) rotate(2deg); } 100% { transform: translateX(0) rotate(-1deg); } }
@keyframes nrs-fig-right { 0% { transform: translateX(0) rotate(2deg); } 50% { transform: translateX(-3px) rotate(-2deg); } 100% { transform: translateX(0) rotate(1deg); } }
@keyframes nrs-shadow { 0% { opacity: 0.6; transform: scale(1); } 50% { opacity: 0.8; transform: scale(1.05); } 100% { opacity: 0.65; transform: scale(1); } }

/* secret-money-source */
.scn-secret-money-source {
  background: 
    linear-gradient(180deg, #fff5e6 0%, #f0dab6 40%, #c8a87c 100%),
    radial-gradient(ellipse at 50% 30%, #ffe0b0 0%, transparent 60%);
}
.scn-secret-money-source .table {
  position: absolute; bottom: 20%; left: 20%; right: 20%; top: 30%;
  background: linear-gradient(180deg, #b8966e 0%, #8b6f4e 100%);
  border-radius: 50% 50% 20% 20% / 30% 30% 10% 10%;
  box-shadow: 0 8px 20px rgba(0,0,0,0.3);
  animation: sms-table 8s ease-in-out infinite alternate;
}
.scn-secret-money-source .chair-left {
  position: absolute; bottom: 15%; left: 10%; width: 40px; height: 50px;
  background: linear-gradient(180deg, #6a4a3a 0%, #3a2a1a 100%);
  border-radius: 30% 30% 10% 10% / 50% 50% 20% 20%;
  animation: sms-chair 5s ease-in-out infinite;
}
.scn-secret-money-source .chair-right {
  position: absolute; bottom: 15%; right: 10%; width: 40px; height: 50px;
  background: linear-gradient(180deg, #6a4a3a 0%, #3a2a1a 100%);
  border-radius: 30% 30% 10% 10% / 50% 50% 20% 20%;
  animation: sms-chair 5s ease-in-out infinite reverse;
}
.scn-secret-money-source .money {
  position: absolute; bottom: 25%; left: 50%; transform: translateX(-50%);
  width: 30px; height: 14px;
  background: linear-gradient(180deg, #d4a76a 0%, #a08040 100%);
  border-radius: 4px;
  box-shadow: 0 0 12px 2px #d4a76a, 0 0 24px 4px rgba(212,167,106,0.3);
  animation: sms-money 3s ease-in-out infinite alternate;
}
.scn-secret-money-source .lamp-top {
  position: absolute; top: 10%; left: 50%; transform: translateX(-50%);
  width: 20px; height: 20px;
  background: radial-gradient(circle, #ffdd99 0%, #c08040 70%);
  border-radius: 50%;
  box-shadow: 0 0 30px 6px #ffdd99, 0 0 60px 12px rgba(255,221,153,0.3);
  animation: sms-lamp 4s ease-in-out infinite alternate;
}
.scn-secret-money-source .shadow-table {
  position: absolute; bottom: 10%; left: 20%; right: 20%; height: 15%;
  background: radial-gradient(ellipse at 50% 0%, rgba(0,0,0,0.25) 0%, transparent 70%);
  animation: sms-shadow 6s ease-in-out infinite;
}
@keyframes sms-table { 0% { transform: rotate(-1deg) scale(1); } 50% { transform: rotate(1deg) scale(1.01); } 100% { transform: rotate(0deg) scale(1); } }
@keyframes sms-chair { 0% { transform: rotate(0deg) translateY(0); } 25% { transform: rotate(-3deg) translateY(-2px); } 50% { transform: rotate(2deg) translateY(0); } 75% { transform: rotate(4deg) translateY(-1px); } 100% { transform: rotate(0deg) translateY(0); } }
@keyframes sms-money { 0% { opacity: 0.8; transform: translateX(-50%) scale(1); } 100% { opacity: 1; transform: translateX(-50%) scale(1.2); } }
@keyframes sms-lamp { 0% { transform: translateX(-50%) scale(0.95); box-shadow: 0 0 25px 4px #ffdd99, 0 0 50px 8px rgba(255,221,153,0.2); } 100% { transform: translateX(-50%) scale(1.05); box-shadow: 0 0 35px 8px #ffdd99, 0 0 70px 14px rgba(255,221,153,0.35); } }
@keyframes sms-shadow { 0% { opacity: 0.5; transform: scale(1); } 50% { opacity: 0.7; transform: scale(1.03); } 100% { opacity: 0.5; transform: scale(1); } }

/* secret-borrowing */
.scn-secret-borrowing {
  background: 
    linear-gradient(135deg, #f0e6d0 0%, #d4c0a0 50%, #b8a080 100%),
    radial-gradient(ellipse at 60% 50%, #ffe0b0 0%, transparent 60%);
}
.scn-secret-borrowing .wall-bg {
  position: absolute; inset: 0 0 20% 0;
  background: linear-gradient(180deg, #e0d0b8 0%, #c8b098 100%);
  box-shadow: inset 0 -6px 12px rgba(0,0,0,0.1);
}
.scn-secret-borrowing .door {
  position: absolute; bottom: 10%; left: 10%; width: 18%; height: 70%;
  background: linear-gradient(180deg, #8b6f4e 0%, #5a4028 100%);
  border-radius: 4px;
  box-shadow: 0 4px 10px rgba(0,0,0,0.3);
  animation: sbo-door 10s ease-in-out infinite alternate;
}
.scn-secret-borrowing .lamp-side {
  position: absolute; bottom: 30%; left: 45%; width: 12px; height: 24px;
  background: linear-gradient(180deg, #b08040 0%, #805020 100%);
  border-radius: 40% 40% 20% 20% / 50% 50% 30% 30%;
  box-shadow: 0 0 20px 4px rgba(255,200,100,0.5), 0 0 40px 8px rgba(255,200,100,0.2);
  animation: sbo-lamp 5s ease-in-out infinite alternate;
}
.scn-secret-borrowing .figure-standing {
  position: absolute; bottom: 15%; left: 55%; width: 24px; height: 56px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: sbo-stand 4s ease-in-out infinite;
}
.scn-secret-borrowing .figure-sitting {
  position: absolute; bottom: 10%; left: 70%; width: 28px; height: 38px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a1008 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: sbo-sit 6s ease-in-out infinite;
}
.scn-secret-borrowing .rug {
  position: absolute; bottom: 5%; left: 30%; right: 30%; height: 12%;
  background: radial-gradient(ellipse at 50% 100%, #c8a87c 0%, #8b6f4e 100%);
  border-radius: 50% 50% 0 0 / 100% 100% 0 0;
  animation: sbo-rug 8s ease-in-out infinite alternate;
}
@keyframes sbo-door { 0% { transform: scaleX(1); } 50% { transform: scaleX(1.03) skewX(-2deg); } 100% { transform: scaleX(1); } }
@keyframes sbo-lamp { 0% { opacity: 0.8; box-shadow: 0 0 15px 2px rgba(255,200,100,0.4); } 100% { opacity: 1; box-shadow: 0 0 30px 6px rgba(255,200,100,0.7); } }
@keyframes sbo-stand { 0% { transform: translateX(0) rotate(0deg); } 25% { transform: translateX(4px) rotate(2deg); } 50% { transform: translateX(-2px) rotate(-1deg); } 75% { transform: translateX(3px) rotate(1deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes sbo-sit { 0% { transform: translateX(0) scaleY(1); } 50% { transform: translateX(2px) scaleY(0.98); } 100% { transform: translateX(0) scaleY(1); } }
@keyframes sbo-rug { 0% { opacity: 0.7; transform: scaleX(1); } 50% { opacity: 0.9; transform: scaleX(1.02); } 100% { opacity: 0.75; transform: scaleX(1); } }

/* imprudence-accusation */
.scn-imprudence-accusation {
  background: 
    linear-gradient(180deg, #f0e0c0 0%, #d4b896 40%, #b89a78 100%),
    radial-gradient(ellipse at 30% 70%, #ffe0b0 0%, transparent 60%);
}
.scn-imprudence-accusation .back-wall {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #e8d8c0 0%, #c8b098 100%);
  box-shadow: inset 0 -8px 16px rgba(0,0,0,0.1);
}
.scn-imprudence-accusation .mirror {
  position: absolute; top: 12%; left: 30%; width: 40%; height: 50%;
  background: linear-gradient(180deg, #a8c8e0 0%, #708898 100%);
  border: 4px solid #8b6f4e;
  border-radius: 6px;
  box-shadow: inset 0 0 30px rgba(255,255,255,0.3), 0 4px 12px rgba(0,0,0,0.2);
  animation: ima-mirror 10s ease-in-out infinite alternate;
}
.scn-imprudence-accusation .reflection-left {
  position: absolute; top: 18%; left: 35%; width: 12%; height: 30%;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  opacity: 0.6;
  animation: ima-reflect 8s ease-in-out infinite;
}
.scn-imprudence-accusation .reflection-right {
  position: absolute; top: 18%; right: 35%; width: 14%; height: 32%;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a1008 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  opacity: 0.6;
  animation: ima-reflect 8s ease-in-out infinite reverse;
}
.scn-imprudence-accusation .lamp-floor {
  position: absolute; bottom: 15%; left: 50%; transform: translateX(-50%);
  width: 16px; height: 36px;
  background: linear-gradient(180deg, #b08040 0%, #805020 100%);
  border-radius: 50% 50% 20% 20% / 70% 70% 30% 30%;
  box-shadow: 0 0 30px 6px rgba(255,200,100,0.5), 0 0 60px 12px rgba(255,200,100,0.2);
  animation: ima-lamp 4s ease-in-out infinite alternate;
}
.scn-imprudence-accusation .curtain {
  position: absolute; top: 0; right: 0; width: 15%; height: 100%;
  background: linear-gradient(180deg, #8b6f4e 0%, #5a4028 100%);
  border-radius: 0 0 0 20%;
  animation: ima-curtain 15s ease-in-out infinite alternate;
}
@keyframes ima-mirror { 0% { box-shadow: inset 0 0 20px rgba(255,255,255,0.2), 0 4px 12px rgba(0,0,0,0.2); } 50% { box-shadow: inset 0 0 40px rgba(255,255,255,0.4), 0 4px 12px rgba(0,0,0,0.15); } 100% { box-shadow: inset 0 0 25px rgba(255,255,255,0.3), 0 4px 12px rgba(0,0,0,0.2); } }
@keyframes ima-reflect { 0% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-4px) rotate(2deg); } 100% { transform: translateY(0) rotate(-1deg); } }
@keyframes ima-lamp { 0% { transform: translateX(-50%) scaleY(1); box-shadow: 0 0 20px 4px rgba(255,200,100,0.4); } 100% { transform: translateX(-50%) scaleY(1.04) scaleX(0.96); box-shadow: 0 0 40px 8px rgba(255,200,100,0.7); } }
@keyframes ima-curtain { 0% { transform: scaleX(1); } 50% { transform: scaleX(1.05); } 100% { transform: scaleX(1); } }

.scn-krogstad-moral-disease {
  background:
    linear-gradient(180deg, #2a1e0e 0%, #1f1410 40%, #14100c 100%),
    radial-gradient(circle at 70% 50%, #f0c060 0%, transparent 60%);
}
.scn-krogstad-moral-disease .wall {
  position: absolute; inset: 0; background: linear-gradient(135deg, #3a2a1a 0%, #2a1a10 100%);
  box-shadow: inset 0 0 80px rgba(0,0,0,0.4);
}
.scn-krogstad-moral-disease .desk {
  position: absolute; bottom: 10%; left: 20%; right: 20%; height: 40%;
  background: linear-gradient(180deg, #4a3828 0%, #2c1e14 100%);
  border-radius: 4% 4% 0 0; box-shadow: 0 8px 20px rgba(0,0,0,0.6);
}
.scn-krogstad-moral-disease .lamp {
  position: absolute; bottom: 45%; left: 65%; width: 12px; height: 20px;
  background: radial-gradient(circle, #fce4a0 0%, #d4a050 70%);
  border-radius: 40% 40% 10% 10%;
  box-shadow: 0 0 30px 10px #d4a050, 0 0 60px 20px rgba(212,160,80,0.3);
  animation: kro-lamp 4s ease-in-out infinite alternate;
}
.scn-krogstad-moral-disease .figure {
  position: absolute; bottom: 20%; left: 35%; width: 30px; height: 70px;
  background: linear-gradient(180deg, #1a1210 0%, #0a0808 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: kro-figure 6s ease-in-out infinite;
}
.scn-krogstad-moral-disease .shadow {
  position: absolute; bottom: 10%; left: 30%; width: 80px; height: 40px;
  background: radial-gradient(ellipse, rgba(0,0,0,0.5) 0%, transparent 70%);
  transform-origin: center top;
  animation: kro-shadow 8s ease-in-out infinite alternate;
}
.scn-krogstad-moral-disease .papers {
  position: absolute; bottom: 30%; left: 55%; width: 50px; height: 30px;
  background: #c8b898; border-radius: 2px;
  box-shadow: 2px 4px 8px rgba(0,0,0,0.3);
  animation: kro-papers 10s ease-in-out infinite;
}
@keyframes kro-lamp {
  0% { box-shadow: 0 0 20px 5px #d4a050, 0 0 40px 10px rgba(212,160,80,0.2); opacity: 0.8; }
  50% { box-shadow: 0 0 40px 15px #f0c060, 0 0 80px 30px rgba(240,192,96,0.5); opacity: 1; }
  100% { box-shadow: 0 0 25px 8px #d4a050, 0 0 50px 15px rgba(212,160,80,0.3); opacity: 0.85; }
}
@keyframes kro-figure {
  0% { transform: translateX(0) translateY(0) rotate(0deg); }
  50% { transform: translateX(2px) translateY(-1px) rotate(1deg); }
  100% { transform: translateX(0) translateY(0) rotate(0deg); }
}
@keyframes kro-shadow {
  0% { transform: scaleX(1) scaleY(1); opacity: 0.6; }
  50% { transform: scaleX(1.2) scaleY(1.1); opacity: 0.8; }
  100% { transform: scaleX(1) scaleY(0.9); opacity: 0.5; }
}
@keyframes kro-papers {
  0% { transform: translateY(0) rotate(0deg); }
  25% { transform: translateY(-2px) rotate(2deg); }
  50% { transform: translateY(0) rotate(0deg); }
  75% { transform: translateY(-1px) rotate(-1deg); }
  100% { transform: translateY(0) rotate(0deg); }
}

.scn-bank-influence-thought {
  background:
    linear-gradient(180deg, #f2ede8 0%, #d9d0c8 50%, #b8ada5 100%),
    radial-gradient(circle at 30% 50%, #faf3ed 0%, transparent 60%);
}
.scn-bank-influence-thought .counter {
  position: absolute; bottom: 30%; left: 10%; right: 10%; height: 15%;
  background: linear-gradient(180deg, #c0b5a8 0%, #a89b8e 100%);
  border-radius: 4px; box-shadow: 0 6px 15px rgba(0,0,0,0.2);
}
.scn-bank-influence-thought .teller {
  position: absolute; bottom: 38%; left: 25%; width: 20px; height: 50px;
  background: linear-gradient(180deg, #4a4040 0%, #2c2828 100%);
  border-radius: 45% 45% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: bnk-teller 5s ease-in-out infinite alternate;
}
.scn-bank-influence-thought .customer {
  position: absolute; bottom: 35%; right: 25%; width: 22px; height: 45px;
  background: linear-gradient(180deg, #705848 0%, #403020 100%);
  border-radius: 50% 50% 35% 35% / 55% 55% 45% 45%;
  transform-origin: bottom center;
  animation: bnk-customer 7s ease-in-out infinite;
}
.scn-bank-influence-thought .ledger {
  position: absolute; bottom: 38%; left: 40%; width: 40px; height: 20px;
  background: #d8ccb8; border-radius: 2px;
  box-shadow: inset 0 2px 4px rgba(0,0,0,0.1);
  transform-origin: left center;
  animation: bnk-ledger 12s ease-in-out infinite;
}
.scn-bank-influence-thought .money {
  position: absolute; bottom: 40%; left: 55%; width: 30px; height: 15px;
  background: linear-gradient(180deg, #8a9b6a 0%, #6a7a4a 100%);
  border-radius: 3px; box-shadow: 0 3px 6px rgba(0,0,0,0.2);
  animation: bnk-money 4s ease-in-out infinite;
}
.scn-bank-influence-thought .lurker {
  position: absolute; bottom: 20%; right: 15%; width: 18px; height: 70px;
  background: linear-gradient(180deg, #1a1818 0%, #0a0a0a 100%);
  border-radius: 40% 40% 35% 35% / 55% 55% 45% 45%;
  transform-origin: bottom center;
  animation: bnk-lurker 8s ease-in-out infinite alternate;
}
@keyframes bnk-teller {
  0% { transform: translateY(0) rotate(0deg); }
  50% { transform: translateY(-1px) rotate(2deg); }
  100% { transform: translateY(0) rotate(0deg); }
}
@keyframes bnk-customer {
  0% { transform: translateX(0) scaleY(1); }
  50% { transform: translateX(-2px) scaleY(0.95); }
  100% { transform: translateX(0) scaleY(1); }
}
@keyframes bnk-ledger {
  0% { transform: scaleY(1); }
  25% { transform: scaleY(1.05); }
  50% { transform: scaleY(1); }
  75% { transform: scaleY(0.95); }
  100% { transform: scaleY(1); }
}
@keyframes bnk-money {
  0%, 100% { transform: translateY(0) rotate(0deg); }
  50% { transform: translateY(-2px) rotate(3deg); }
}
@keyframes bnk-lurker {
  0% { transform: translateX(0) rotate(0deg); }
  50% { transform: translateX(1px) rotate(1deg); }
  100% { transform: translateX(0) rotate(0deg); }
}

.scn-nora-power-fantasy {
  background:
    linear-gradient(180deg, #faf2e0 0%, #f0e0c0 40%, #e0c8a0 100%),
    radial-gradient(circle at 70% 30%, #fef8e8 0%, transparent 60%);
}
.scn-nora-power-fantasy .nora {
  position: absolute; bottom: 20%; left: 45%; width: 30px; height: 80px;
  background: linear-gradient(180deg, #c8705a 0%, #a05040 100%);
  border-radius: 50% 50% 40% 40% / 65% 65% 35% 35%;
  transform-origin: bottom center;
  animation: nor-nora 6s ease-in-out infinite;
}
.scn-nora-power-fantasy .chair {
  position: absolute; bottom: 15%; right: 20%; width: 40px; height: 50px;
  background: linear-gradient(180deg, #6a5030 0%, #4a3820 100%);
  border-radius: 8px 8px 4px 4px;
  box-shadow: 0 4px 10px rgba(0,0,0,0.3);
  animation: nor-chair 10s ease-in-out infinite alternate;
}
.scn-nora-power-fantasy .window {
  position: absolute; top: 10%; left: 15%; width: 80px; height: 120px;
  background: linear-gradient(180deg, #d0e0f0 0%, #a0b8d0 100%);
  border-radius: 4px; box-shadow: inset 0 0 20px rgba(255,255,255,0.3);
  border: 4px solid #4a3a20;
}
.scn-nora-power-fantasy .flowers {
  position: absolute; top: 15%; left: 18%; width: 20px; height: 30px;
  background: radial-gradient(circle at 50% 30%, #e08060 0%, #a04030 70%);
  border-radius: 50% 50% 30% 30%;
  transform-origin: bottom center;
  animation: nor-flowers 4s ease-in-out infinite;
}
.scn-nora-power-fantasy .lamp {
  position: absolute; bottom: 35%; right: 35%; width: 8px; height: 18px;
  background: radial-gradient(circle, #fce8c0 0%, #d4a850 70%);
  border-radius: 40% 40% 10% 10%;
  box-shadow: 0 0 20px 6px #d4a850, 0 0 40px 12px rgba(212,168,80,0.3);
  animation: nor-lamp 3s ease-in-out infinite alternate;
}
.scn-nora-power-fantasy .rug {
  position: absolute; bottom: 5%; left: 25%; right: 25%; height: 10%;
  background: radial-gradient(ellipse, #b89070 0%, #805840 100%);
  border-radius: 50% 50% 40% 40%;
  opacity: 0.6;
  animation: nor-rug 15s ease-in-out infinite;
}
@keyframes nor-nora {
  0% { transform: translateX(0) rotate(0deg) scaleY(1); }
  50% { transform: translateX(2px) rotate(2deg) scaleY(1.02); }
  100% { transform: translateX(0) rotate(0deg) scaleY(1); }
}
@keyframes nor-chair {
  0% { transform: translateY(0) rotate(0deg); }
  50% { transform: translateY(-2px) rotate(-1deg); }
  100% { transform: translateY(0) rotate(0deg); }
}
@keyframes nor-flowers {
  0%, 100% { transform: rotate(0deg) scale(1); }
  50% { transform: rotate(5deg) scale(1.05); }
}
@keyframes nor-lamp {
  0% { box-shadow: 0 0 15px 4px #d4a850, 0 0 30px 8px rgba(212,168,80,0.3); opacity: 0.85; }
  50% { box-shadow: 0 0 30px 10px #f0d080, 0 0 60px 20px rgba(240,208,128,0.5); opacity: 1; }
  100% { box-shadow: 0 0 18px 6px #d4a850, 0 0 40px 12px rgba(212,168,80,0.4); opacity: 0.9; }
}
@keyframes nor-rug {
  0% { transform: scaleX(1); opacity: 0.5; }
  50% { transform: scaleX(1.05); opacity: 0.7; }
  100% { transform: scaleX(1); opacity: 0.6; }
}

.scn-item-macaroon-offer {
  background:
    linear-gradient(180deg, #f8f0e0 0%, #e8d8c0 50%, #d8c0a0 100%),
    radial-gradient(circle at 50% 70%, #fef8f0 0%, transparent 60%);
}
.scn-item-macaroon-offer .table {
  position: absolute; bottom: 20%; left: 5%; right: 5%; height: 50%;
  background: linear-gradient(180deg, #c8b898 0%, #a89070 100%);
  border-radius: 30% 30% 10% 10% / 20% 20% 10% 10%;
  box-shadow: 0 -10px 30px rgba(0,0,0,0.15);
}
.scn-item-macaroon-offer .plate {
  position: absolute; bottom: 40%; left: 35%; right: 35%; top: 30%;
  background: radial-gradient(circle, #f0e8d8 0%, #d8c8b0 100%);
  border-radius: 50%; box-shadow: 0 4px 12px rgba(0,0,0,0.15);
  animation: mac-plate 20s ease-in-out infinite;
}
.scn-item-macaroon-offer .macaroon1 {
  position: absolute; bottom: 50%; left: 42%; width: 12px; height: 10px;
  background: radial-gradient(circle at 50% 40%, #e09070 0%, #c07050 100%);
  border-radius: 50% 50% 40% 40%;
  box-shadow: 0 2px 4px rgba(0,0,0,0.2);
  animation: mac-macaroon 5s ease-in-out infinite;
}
.scn-item-macaroon-offer .macaroon2 {
  position: absolute; bottom: 48%; left: 50%; width: 12px; height: 10px;
  background: radial-gradient(circle at 50% 40%, #b8a070 0%, #988058 100%);
  border-radius: 50% 50% 40% 40%;
  box-shadow: 0 2px 4px rgba(0,0,0,0.2);
  animation: mac-macaroon 6s ease-in-out infinite reverse;
}
.scn-item-macaroon-offer .hand-offer {
  position: absolute; bottom: 35%; left: 5%; width: 50px; height: 20px;
  background: linear-gradient(180deg, #e8c8a0 0%, #c8a080 100%);
  border-radius: 30% 30% 30% 30% / 60% 60% 40% 40%;
  transform-origin: right center;
  animation: mac-hand-offer 8s ease-in-out infinite alternate;
}
.scn-item-macaroon-offer .hand-receive {
  position: absolute; bottom: 38%; right: 5%; width: 45px; height: 18px;
  background: linear-gradient(180deg, #ddd0c0 0%, #b8a890 100%);
  border-radius: 30% 30% 30% 30% / 60% 60% 40% 40%;
  transform-origin: left center;
  animation: mac-hand-receive 8s ease-in-out infinite alternate;
}
@keyframes mac-plate {
  0% { transform: rotate(0deg) translateY(0); }
  50% { transform: rotate(2deg) translateY(-1px); }
  100% { transform: rotate(0deg) translateY(0); }
}
@keyframes mac-macaroon {
  0% { transform: translateY(0) rotate(0deg) scale(1); }
  50% { transform: translateY(-1px) rotate(5deg) scale(1.05); }
  100% { transform: translateY(0) rotate(0deg) scale(1); }
}
@keyframes mac-hand-offer {
  0% { transform: translateX(0) rotate(0deg); }
  50% { transform: translateX(8px) rotate(-3deg); }
  100% { transform: translateX(0) rotate(0deg); }
}
@keyframes mac-hand-receive {
  0% { transform: translateX(0) rotate(0deg); }
  50% { transform: translateX(-6px) rotate(2deg); }
  100% { transform: translateX(0) rotate(0deg); }
}

.scn-nora-wish-word {
  background: linear-gradient(180deg, #f5e6d3 0%, #e0d0b8 40%, #c4b28a 100%),
              radial-gradient(ellipse at 70% 30%, #ffe28a 0%, transparent 60%);
}
.scn-nora-wish-word .room-bg { position:absolute; inset:0 0 30% 0; background: linear-gradient(180deg, #e8d9c4 0%, #d4c4a8 100%); animation: nww-sky 8s ease-in-out infinite alternate; }
.scn-nora-wish-word .floor { position:absolute; bottom:0; inset-inline:0; height:30%; background: linear-gradient(180deg, #8b7355 0%, #6b5535 100%); border-radius: 20% 20% 0 0 / 10% 10% 0 0; box-shadow: inset 0 10px 20px rgba(0,0,0,.2); }
.scn-nora-wish-word .window { position:absolute; top:10%; left:60%; width:25%; height:40%; background: radial-gradient(ellipse at 50% 30%, #fff8e0 0%, #d4c4a8 70%, #b09878 100%); border: 2px solid #a08060; border-radius: 4px; box-shadow: inset 0 0 30px #ffe28a; animation: nww-glow 4s ease-in-out infinite; }
.scn-nora-wish-word .curtain-left { position:absolute; top:10%; left:55%; width:8%; height:38%; background: linear-gradient(180deg, #c8b088 0%, #a88c6c 100%); border-radius: 0 0 50% 0; transform-origin: top left; animation: nww-sway 6s ease-in-out infinite; }
.scn-nora-wish-word .curtain-right { position:absolute; top:10%; right:15%; width:8%; height:38%; background: linear-gradient(180deg, #c8b088 0%, #a88c6c 100%); border-radius: 0 0 0 50%; transform-origin: top right; animation: nww-sway 6s ease-in-out infinite reverse; }
.scn-nora-wish-word .table { position:absolute; bottom:28%; left:10%; width:30%; height:12%; background: linear-gradient(180deg, #7a5a3a 0%, #5a3a1a 100%); border-radius: 4px; box-shadow: 0 4px 8px rgba(0,0,0,.3); }
.scn-nora-wish-word .lamp { position:absolute; bottom:38%; left:22%; width:4%; height:6%; background: radial-gradient(ellipse at 50% 0%, #ffd060 0%, #e0b040 80%); border-radius: 50%; box-shadow: 0 0 20px 6px rgba(255,208,96,.5), 0 0 40px 12px rgba(255,208,96,.2); animation: nww-lamp 3s ease-in-out infinite alternate; }
.scn-nora-wish-word .nora { position:absolute; bottom:30%; left:40%; width:12%; height:28%; background: linear-gradient(180deg, #404040 0%, #202020 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: nww-walk 4s ease-in-out infinite; }
.scn-nora-wish-word .chair { position:absolute; bottom:30%; left:70%; width:14%; height:20%; background: linear-gradient(180deg, #6a5030 0%, #4a3010 100%); border-radius: 20% 20% 10% 10%; box-shadow: 0 4px 8px rgba(0,0,0,.3); animation: nww-breathe 6s ease-in-out infinite; }

@keyframes nww-sky { 0%{opacity:.9} 50%{opacity:1} 100%{opacity:.85} }
@keyframes nww-glow { 0%{box-shadow:inset 0 0 20px #ffe28a; opacity:.8} 50%{box-shadow:inset 0 0 40px #ffedb0; opacity:1} 100%{box-shadow:inset 0 0 25px #ffe28a; opacity:.85} }
@keyframes nww-sway { 0%{transform:rotate(0deg)} 50%{transform:rotate(-3deg)} 100%{transform:rotate(0deg)} }
@keyframes nww-lamp { 0%{box-shadow:0 0 15px 4px #ffd060,0 0 30px 8px rgba(255,208,96,.3); opacity:.8} 100%{box-shadow:0 0 30px 10px #ffd060,0 0 60px 16px rgba(255,208,96,.5); opacity:1} }
@keyframes nww-walk { 0%{transform:translateX(0) rotate(-2deg)} 25%{transform:translateX(8px) rotate(2deg)} 50%{transform:translateX(16px) rotate(-2deg)} 75%{transform:translateX(24px) rotate(2deg)} 100%{transform:translateX(32px) rotate(0deg)} }
@keyframes nww-breathe { 0%{transform:scaleY(1)} 50%{transform:scaleY(1.02)} 100%{transform:scaleY(1)} }

.scn-helmer-meets-linde {
  background: linear-gradient(180deg, #f0e0d0 0%, #dcd0b8 40%, #c4b098 100%),
              radial-gradient(ellipse at 80% 20%, #fff0c0 0%, transparent 50%);
}
.scn-helmer-meets-linde .room-bg { position:absolute; inset:0 0 25% 0; background: linear-gradient(180deg, #e8d5c0 0%, #d0c0a8 100%); animation: hml-sky 10s ease-in-out infinite alternate; }
.scn-helmer-meets-linde .floor { position:absolute; bottom:0; inset-inline:0; height:25%; background: linear-gradient(180deg, #7a654a 0%, #5a4530 100%); border-radius: 20% 20% 0 0 / 10% 10% 0 0; box-shadow: inset 0 8px 16px rgba(0,0,0,.2); }
.scn-helmer-meets-linde .doorway { position:absolute; top:5%; left:10%; width:30%; height:70%; background: linear-gradient(180deg, #b8a088 0%, #a08870 100%); border: 2px solid #8a7050; border-radius: 0 0 40% 40% / 0 0 20% 20%; box-shadow: inset 0 0 20px #c0a080; }
.scn-helmer-meets-linde .helmer { position:absolute; bottom:25%; left:25%; width:10%; height:35%; background: linear-gradient(180deg, #505050 0%, #303030 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: hml-figure 6s ease-in-out infinite; }
.scn-helmer-meets-linde .linde { position:absolute; bottom:25%; left:40%; width:9%; height:32%; background: linear-gradient(180deg, #606060 0%, #404040 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: hml-figure 6s ease-in-out infinite reverse; }
.scn-helmer-meets-linde .handshake { position:absolute; bottom:38%; left:32%; width:5%; height:3%; background: radial-gradient(ellipse at 50% 50%, #a08060 0%, #705040 100%); border-radius: 50%; animation: hml-shake 4s ease-in-out infinite; }
.scn-helmer-meets-linde .hatstand { position:absolute; bottom:28%; right:15%; width:3%; height:25%; background: linear-gradient(180deg, #6a4a2a 0%, #4a2a10 100%); border-radius: 4px; animation: hml-stand 12s ease-in-out infinite; }
.scn-helmer-meets-linde .lamp { position:absolute; top:8%; right:25%; width:4%; height:6%; background: radial-gradient(ellipse at 50% 0%, #ffd060 0%, #e0b040 80%); border-radius: 50%; box-shadow: 0 0 20px 6px rgba(255,208,96,.4); animation: hml-lamp 3s ease-in-out infinite alternate; }
.scn-helmer-meets-linde .picture { position:absolute; top:12%; left:55%; width:12%; height:18%; background: linear-gradient(135deg, #b0a088 0%, #907060 100%); border: 2px solid #705040; border-radius: 2px; box-shadow: 2px 2px 6px rgba(0,0,0,.3); animation: hml-picture 15s ease-in-out infinite; }

@keyframes hml-sky { 0%{opacity:.9} 50%{opacity:1} 100%{opacity:.85} }
@keyframes hml-figure { 0%{transform:translateY(0) rotate(-1deg)} 50%{transform:translateY(-2px) rotate(1deg)} 100%{transform:translateY(0) rotate(0)} }
@keyframes hml-shake { 0%{transform:scaleX(1) rotate(0)} 25%{transform:scaleX(0.9) rotate(-5deg)} 50%{transform:scaleX(1) rotate(0)} 75%{transform:scaleX(0.9) rotate(5deg)} 100%{transform:scaleX(1) rotate(0)} }
@keyframes hml-stand { 0%{transform:scaleY(1)} 50%{transform:scaleY(0.95)} 100%{transform:scaleY(1)} }
@keyframes hml-lamp { 0%{box-shadow:0 0 15px 4px #ffd060; opacity:.8} 100%{box-shadow:0 0 30px 10px #ffd060; opacity:1} }
@keyframes hml-picture { 0%{transform:rotate(0deg)} 50%{transform:rotate(1deg)} 100%{transform:rotate(0deg)} }

.scn-nora-plots-job {
  background: linear-gradient(180deg, #f5e8d8 0%, #e0d0b0 40%, #c8b890 100%),
              radial-gradient(ellipse at 50% 40%, #fff4d0 0%, transparent 50%);
}
.scn-nora-plots-job .room-bg { position:absolute; inset:0 0 35% 0; background: linear-gradient(180deg, #e8d5c0 0%, #d0c0a8 100%); animation: npj-sky 9s ease-in-out infinite alternate; }
.scn-nora-plots-job .desk { position:absolute; bottom:30%; left:20%; width:60%; height:20%; background: linear-gradient(180deg, #6a5030 0%, #4a3010 100%); border-radius: 4px; box-shadow: 0 6px 12px rgba(0,0,0,.3); animation: npj-desk 12s ease-in-out infinite; }
.scn-nora-plots-job .paper { position:absolute; bottom:46%; left:30%; width:16%; height:10%; background: linear-gradient(135deg, #fff8e0 0%, #e8dcc0 100%); border: 1px solid #c0b098; border-radius: 2px; transform: rotate(-2deg); animation: npj-paper 8s ease-in-out infinite; }
.scn-nora-plots-job .inkwell { position:absolute; bottom:44%; left:50%; width:4%; height:6%; background: radial-gradient(ellipse at 50% 30%, #3a2a1a 0%, #1a0a00 100%); border-radius: 50%; box-shadow: 0 2px 4px rgba(0,0,0,.4); }
.scn-nora-plots-job .lamp { position:absolute; bottom:48%; left:65%; width:5%; height:8%; background: radial-gradient(ellipse at 50% 0%, #ffd060 0%, #e0b040 80%); border-radius: 50%; box-shadow: 0 0 20px 6px rgba(255,208,96,.4); animation: npj-lamp 3s ease-in-out infinite alternate; }
.scn-nora-plots-job .nora { position:absolute; bottom:40%; left:28%; width:12%; height:30%; background: linear-gradient(180deg, #404040 0%, #202020 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: npj-nora 5s ease-in-out infinite; }
.scn-nora-plots-job .arm { position:absolute; bottom:45%; left:38%; width:8%; height:3%; background: linear-gradient(180deg, #404040 0%, #202020 100%); border-radius: 40% 40% 20% 20%; transform-origin: left center; animation: npj-write 3s ease-in-out infinite; }
.scn-nora-plots-job .shadow { position:absolute; bottom:20%; left:20%; width:60%; height:8%; background: radial-gradient(ellipse, rgba(0,0,0,.15) 0%, transparent 100%); animation: npj-shadow 6s ease-in-out infinite; }

@keyframes npj-sky { 0%{opacity:.9} 50%{opacity:1} 100%{opacity:.85} }
@keyframes npj-desk { 0%{transform:translateY(0)} 50%{transform:translateY(-2px)} 100%{transform:translateY(0)} }
@keyframes npj-paper { 0%{transform:rotate(-2deg) translateY(0)} 50%{transform:rotate(-1deg) translateY(-2px)} 100%{transform:rotate(-2deg) translateY(0)} }
@keyframes npj-lamp { 0%{box-shadow:0 0 15px 4px #ffd060; opacity:.8} 100%{box-shadow:0 0 30px 10px #ffd060; opacity:1} }
@keyframes npj-nora { 0%{transform:translateY(0) rotate(-2deg)} 50%{transform:translateY(-3px) rotate(2deg)} 100%{transform:translateY(0) rotate(-1deg)} }
@keyframes npj-write { 0%{transform:rotate(-10deg)} 50%{transform:rotate(10deg)} 100%{transform:rotate(-10deg)} }
@keyframes npj-shadow { 0%{opacity:.6} 50%{opacity:.8} 100%{opacity:.6} }

.scn-helmer-offers-job {
  background: linear-gradient(180deg, #f2e4d0 0%, #dfceb0 40%, #c4b490 100%),
              radial-gradient(ellipse at 60% 40%, #fff0c0 0%, transparent 50%);
}
.scn-helmer-offers-job .room-bg { position:absolute; inset:0 0 30% 0; background: linear-gradient(180deg, #e5d5c0 0%, #d0c0a8 100%); animation: hoj-sky 8s ease-in-out infinite alternate; }
.scn-helmer-offers-job .floor { position:absolute; bottom:0; inset-inline:0; height:30%; background: linear-gradient(180deg, #8b7355 0%, #6b5535 100%); border-radius: 20% 20% 0 0 / 10% 10% 0 0; box-shadow: inset 0 8px 16px rgba(0,0,0,.2); }
.scn-helmer-offers-job .desk { position:absolute; bottom:25%; left:20%; width:60%; height:22%; background: linear-gradient(180deg, #7a5a3a 0%, #5a3a1a 100%); border-radius: 4px; box-shadow: 0 6px 12px rgba(0,0,0,.3); }
.scn-helmer-offers-job .helmer { position:absolute; bottom:35%; left:30%; width:10%; height:35%; background: linear-gradient(180deg, #505050 0%, #303030 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: hoj-helmer 7s ease-in-out infinite; }
.scn-helmer-offers-job .nora { position:absolute; bottom:35%; left:50%; width:11%; height:30%; background: linear-gradient(180deg, #606060 0%, #404040 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: hoj-nora 5s ease-in-out infinite; }
.scn-helmer-offers-job .lamp { position:absolute; top:8%; left:45%; width:5%; height:8%; background: radial-gradient(ellipse at 50% 0%, #ffd060 0%, #e0b040 80%); border-radius: 50%; box-shadow: 0 0 20px 6px rgba(255,208,96,.4); animation: hoj-lamp 3s ease-in-out infinite alternate; }
.scn-helmer-offers-job .light-rays { position:absolute; top:0; left:40%; width:20%; height:100%; background: linear-gradient(180deg, rgba(255,255,200,.3) 0%, transparent 100%); clip-path: polygon(40% 0, 60% 0, 70% 100%, 30% 100%); animation: hoj-rays 6s ease-in-out infinite; }
.scn-helmer-offers-job .chair { position:absolute; bottom:28%; left:55%; width:14%; height:18%; background: linear-gradient(180deg, #6a5030 0%, #4a3010 100%); border-radius: 20% 20% 10% 10%; box-shadow: 0 4px 8px rgba(0,0,0,.3); animation: hoj-chair 8s ease-in-out infinite; }

@keyframes hoj-sky { 0%{opacity:.9} 50%{opacity:1} 100%{opacity:.85} }
@keyframes hoj-helmer { 0%{transform:translateY(0) rotate(-1deg)} 50%{transform:translateY(-2px) rotate(1deg)} 100%{transform:translateY(0) rotate(0)} }
@keyframes hoj-nora { 0%{transform:translateY(0) rotate(0) scaleX(1)} 25%{transform:translateY(-5px) rotate(5deg) scaleX(0.9)} 50%{transform:translateY(0) rotate(0) scaleX(1)} 75%{transform:translateY(-5px) rotate(-5deg) scaleX(0.9)} 100%{transform:translateY(0) rotate(0) scaleX(1)} }
@keyframes hoj-lamp { 0%{box-shadow:0 0 15px 4px #ffd060; opacity:.8} 100%{box-shadow:0 0 30px 10px #ffd060; opacity:1} }
@keyframes hoj-rays { 0%{opacity:.3; transform:scaleY(1)} 50%{opacity:.5; transform:scaleY(1.05)} 100%{opacity:.3; transform:scaleY(1)} }
@keyframes hoj-chair { 0%{transform:translateY(0)} 50%{transform:translateY(-3px)} 100%{transform:translateY(0)} }

/* Scenes CSS – one block per id */

/* nora-revelation-unloved – tense interior, Nora’s silhouette by a window */
.scn-nora-revelation-unloved {
  background: linear-gradient(135deg, #1e1c2a 0%, #2a2640 40%, #16141c 100%),
              radial-gradient(ellipse at 20% 60%, #3b3550 0%, transparent 70%);
}
.scn-nora-revelation-unloved .room-bg {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, #1b1925 0%, #120f1a 100%);
  animation: nlr-room-pulse 6s ease-in-out infinite alternate;
}
.scn-nora-revelation-unloved .window {
  position: absolute; top: 18%; left: 65%; width: 28%; height: 38%;
  background: radial-gradient(ellipse at 50% 50%, #4a5a6a 0%, #2a3a4a 60%, transparent 80%);
  border-radius: 4% / 8%;
  box-shadow: inset 0 0 20px 6px #2a3a4a;
  animation: nlr-window-glow 4s ease-in-out infinite alternate;
}
.scn-nora-revelation-unloved .streetlamp {
  position: absolute; top: 20%; left: 68%; width: 8px; height: 60%;
  background: linear-gradient(180deg, #3a4a5a 0%, #1a2a3a 100%);
  border-radius: 2px;
}
.scn-nora-revelation-unloved .streetlamp::after {
  content: ""; position: absolute; top: 0; left: -4px; width: 16px; height: 16px;
  background: radial-gradient(circle, #a0b0c0 0%, #607080 60%);
  border-radius: 50%; filter: blur(3px);
  animation: nlr-lamp-flicker 2.5s ease-in-out infinite alternate;
}
.scn-nora-revelation-unloved .table {
  position: absolute; bottom: 22%; left: 55%; width: 30%; height: 8%;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 4% 4% 0 0;
  box-shadow: 0 4px 12px rgba(0,0,0,.6);
}
.scn-nora-revelation-unloved .lamp-glow {
  position: absolute; bottom: 28%; left: 62%; width: 12px; height: 16px;
  background: radial-gradient(circle, #ffd080 0%, #c89040 60%, transparent 100%);
  border-radius: 50%; box-shadow: 0 0 30px 12px rgba(200,144,64,.5), 0 0 60px 24px rgba(200,144,64,.25);
  animation: nlr-lamp-flicker 2.5s ease-in-out infinite alternate;
}
.scn-nora-revelation-unloved .figure-nora {
  position: absolute; bottom: 20%; left: 28%; width: 14%; height: 40%;
  background: linear-gradient(180deg, #2a2a3a 0%, #12121a 100%);
  border-radius: 50% 50% 40% 40% / 70% 70% 30% 30%;
  transform-origin: bottom center;
  box-shadow: 0 0 20px 4px rgba(18,18,26,.8) inset;
  animation: nlr-figure-breathe 3s ease-in-out infinite;
}
.scn-nora-revelation-unloved .shadow-floor {
  position: absolute; bottom: 0; left: 10%; width: 80%; height: 20%;
  background: linear-gradient(180deg, rgba(0,0,0,.6) 0%, transparent 100%);
  border-radius: 50% / 20%;
  filter: blur(8px);
  animation: nlr-shadow-shift 5s ease-in-out infinite alternate;
}
.scn-nora-revelation-unloved .curtain {
  position: absolute; top: 0; left: 0; width: 100%; height: 100%;
  background: linear-gradient(90deg, rgba(30,28,42,.7) 0%, transparent 20%, transparent 80%, rgba(30,28,42,.7) 100%);
  pointer-events: none;
  animation: nlr-curtain-sway 12s ease-in-out infinite alternate;
}

@keyframes nlr-room-pulse { 0% { opacity: .85; } 50% { opacity: 1; } 100% { opacity: .9; } }
@keyframes nlr-window-glow { 0% { opacity: .7; box-shadow: inset 0 0 15px 4px #2a3a4a; } 50% { opacity: 1; box-shadow: inset 0 0 30px 8px #4a6a8a; } 100% { opacity: .8; box-shadow: inset 0 0 20px 5px #2a3a4a; } }
@keyframes nlr-lamp-flicker { 0% { opacity: .8; transform: scale(0.95); } 50% { opacity: 1; transform: scale(1.05); } 100% { opacity: .85; transform: scale(0.98); } }
@keyframes nlr-figure-breathe { 0%,100% { transform: translateY(0) rotate(0deg); } 25% { transform: translateY(-2px) rotate(-1deg); } 50% { transform: translateY(-4px) rotate(0deg); } 75% { transform: translateY(-1px) rotate(1deg); } }
@keyframes nlr-shadow-shift { 0% { transform: translateX(0); } 50% { transform: translateX(8px); } 100% { transform: translateX(-4px); } }
@keyframes nlr-curtain-sway { 0% { transform: translateX(0); } 50% { transform: translateX(-6px); } 100% { transform: translateX(4px); } }

/* doll-wife-confession – stage scene with two figures */
.scn-doll-wife-confession {
  background: linear-gradient(180deg, #1f1a2a 0%, #2a2438 50%, #16121c 100%),
              radial-gradient(ellipse at 50% 80%, #2a2440 0%, transparent 60%);
}
.scn-doll-wife-confession .stage-bg {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, #181422 0%, #0e0c16 100%);
  animation: dwc-stage-pulse 8s ease-in-out infinite alternate;
}
.scn-doll-wife-confession .curtain-l {
  position: absolute; top: 0; left: 0; width: 18%; height: 100%;
  background: linear-gradient(180deg, #4a2a2a 0%, #2a1414 100%);
  border-radius: 0 60% 60% 0 / 0 40% 40% 0;
  filter: drop-shadow(4px 0 6px rgba(0,0,0,.5));
  animation: dwc-curtain-a 10s ease-in-out infinite alternate;
}
.scn-doll-wife-confession .curtain-r {
  position: absolute; top: 0; right: 0; width: 18%; height: 100%;
  background: linear-gradient(180deg, #4a2a2a 0%, #2a1414 100%);
  border-radius: 60% 0 0 60% / 40% 0 0 40%;
  filter: drop-shadow(-4px 0 6px rgba(0,0,0,.5));
  animation: dwc-curtain-b 10s ease-in-out infinite alternate;
}
.scn-doll-wife-confession .stage-floor {
  position: absolute; bottom: 0; left: 5%; width: 90%; height: 18%;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0e06 100%);
  border-radius: 50% / 30%;
  box-shadow: 0 -4px 12px rgba(0,0,0,.6);
}
.scn-doll-wife-confession .figure-helmer {
  position: absolute; bottom: 16%; left: 38%; width: 12%; height: 38%;
  background: linear-gradient(180deg, #1a1a2e 0%, #0a0a18 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  box-shadow: inset 0 -8px 12px rgba(0,0,0,.6);
  animation: dwc-helmer-loom 5s ease-in-out infinite;
}
.scn-doll-wife-confession .figure-nora {
  position: absolute; bottom: 16%; left: 52%; width: 10%; height: 34%;
  background: linear-gradient(180deg, #2a1a2a 0%, #120a12 100%);
  border-radius: 50% 50% 40% 40% / 70% 70% 30% 30%;
  transform-origin: bottom center;
  box-shadow: inset 0 -6px 10px rgba(0,0,0,.5);
  animation: dwc-nora-flinch 4s ease-in-out infinite;
}
.scn-doll-wife-confession .spotlight {
  position: absolute; top: 0; left: 40%; width: 20%; height: 60%;
  background: radial-gradient(ellipse at 50% 0%, rgba(255,230,180,.15) 0%, transparent 70%);
  pointer-events: none;
  animation: dwc-spotlight-flicker 3s ease-in-out infinite alternate;
}
.scn-doll-wife-confession .shadow-doll {
  position: absolute; bottom: 0; left: 30%; width: 40%; height: 20%;
  background: linear-gradient(180deg, rgba(0,0,0,.5) 0%, transparent 100%);
  border-radius: 50% / 30%;
  filter: blur(6px);
  animation: dwc-shadow-shape 6s ease-in-out infinite alternate;
}

@keyframes dwc-stage-pulse { 0% { opacity: .9; } 50% { opacity: 1; } 100% { opacity: .85; } }
@keyframes dwc-curtain-a { 0% { transform: translateX(0); } 50% { transform: translateX(-6px); } 100% { transform: translateX(4px); } }
@keyframes dwc-curtain-b { 0% { transform: translateX(0); } 50% { transform: translateX(6px); } 100% { transform: translateX(-4px); } }
@keyframes dwc-helmer-loom { 0%,100% { transform: translateY(0) rotate(2deg); } 25% { transform: translateY(-3px) rotate(0deg); } 50% { transform: translateY(-6px) rotate(-2deg); } 75% { transform: translateY(-2px) rotate(1deg); } }
@keyframes dwc-nora-flinch { 0%,100% { transform: translateY(0) rotate(-1deg) scale(1); } 30% { transform: translateY(-4px) rotate(2deg) scale(0.95); } 60% { transform: translateY(-1px) rotate(1deg) scale(1); } }
@keyframes dwc-spotlight-flicker { 0% { opacity: .6; } 50% { opacity: 1; } 100% { opacity: .7; } }
@keyframes dwc-shadow-shape { 0% { transform: scaleX(1); } 50% { transform: scaleX(1.2); } 100% { transform: scaleX(0.9); } }

/* helmer-reaction-doll-wife – playroom interior, Nora near a chair */
.scn-helmer-reaction-doll-wife {
  background: linear-gradient(180deg, #1f1a2a 0%, #2a2440 45%, #16121e 100%),
              radial-gradient(ellipse at 50% 40%, #3a2a4a 0%, transparent 60%);
}
.scn-helmer-reaction-doll-wife .playroom-wall {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, #1c1828 0%, #120e1c 100%);
  animation: hrw-wall-pulse 7s ease-in-out infinite alternate;
}
.scn-helmer-reaction-doll-wife .shelf {
  position: absolute; top: 12%; left: 10%; width: 60%; height: 6%;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0e06 100%);
  border-radius: 2px;
  box-shadow: 0 4px 8px rgba(0,0,0,.5);
}
.scn-helmer-reaction-doll-wife .dollhouse {
  position: absolute; top: 18%; right: 8%; width: 20%; height: 30%;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 8% 8% 4% 4%;
  clip-path: polygon(0% 0%, 100% 0%, 100% 80%, 60% 100%, 40% 100%, 0% 80%);
  box-shadow: 0 4px 12px rgba(0,0,0,.6);
  animation: hrw-dollhouse-sway 12s ease-in-out infinite alternate;
}
.scn-helmer-reaction-doll-wife .toy-block {
  position: absolute; bottom: 18%; left: 20%; width: 6%; height: 6%;
  background: linear-gradient(135deg, #6a4a3a 0%, #3a2a1a 100%);
  border-radius: 6%;
  box-shadow: 2px 2px 0 #1a0e06;
  animation: hrw-block-move 5s ease-in-out infinite;
}
.scn-helmer-reaction-doll-wife .toy-ball {
  position: absolute; bottom: 30%; left: 35%; width: 8%; height: 8%;
  background: radial-gradient(circle at 40% 40%, #5a4a4a 0%, #2a1a1a 100%);
  border-radius: 50%;
  box-shadow: -2px -2px 4px rgba(0,0,0,.4), 2px 2px 4px rgba(0,0,0,.6);
  animation: hrw-ball-roll 8s ease-in-out infinite alternate;
}
.scn-helmer-reaction-doll-wife .chair {
  position: absolute; bottom: 16%; left: 50%; width: 16%; height: 20%;
  background: linear-gradient(180deg, #4a2a1a 0%, #2a120a 100%);
  border-radius: 10% 10% 6% 6%;
  box-shadow: inset 0 -4px 8px rgba(0,0,0,.6);
  transform-origin: bottom center;
  animation: hrw-chair-rock 4s ease-in-out infinite;
}
.scn-helmer-reaction-doll-wife .figure-nora {
  position: absolute; bottom: 16%; left: 62%; width: 10%; height: 36%;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 50% 50% 40% 40% / 70% 70% 30% 30%;
  transform-origin: bottom center;
  box-shadow: inset 0 -6px 10px rgba(0,0,0,.5);
  animation: hrw-nora-shift 6s ease-in-out infinite;
}
.scn-helmer-reaction-doll-wife .shadow-toy {
  position: absolute; bottom: 0; left: 10%; width: 80%; height: 16%;
  background: linear-gradient(180deg, rgba(0,0,0,.4) 0%, transparent 100%);
  border-radius: 50% / 20%;
  filter: blur(8px);
  animation: hrw-shadow-toys 7s ease-in-out infinite alternate;
}

@keyframes hrw-wall-pulse { 0% { opacity: .85; } 50% { opacity: 1; } 100% { opacity: .9; } }
@keyframes hrw-dollhouse-sway { 0% { transform: rotate(0deg); } 50% { transform: rotate(2deg); } 100% { transform: rotate(-1deg); } }
@keyframes hrw-block-move { 0%,100% { transform: translateX(0) rotate(0deg); } 25% { transform: translateX(10px) rotate(15deg); } 50% { transform: translateX(5px) rotate(-10deg); } 75% { transform: translateX(15px) rotate(5deg); } }
@keyframes hrw-ball-roll { 0% { transform: translateX(0) rotate(0deg); } 50% { transform: translateX(20px) rotate(180deg); } 100% { transform: translateX(-10px) rotate(360deg); } }
@keyframes hrw-chair-rock { 0%,100% { transform: rotate(0deg); } 25% { transform: rotate(3deg); } 50% { transform: rotate(-2deg); } 75% { transform: rotate(4deg); } }
@keyframes hrw-nora-shift { 0%,100% { transform: translateY(0) rotate(0deg); } 30% { transform: translateY(-3px) rotate(-2deg); } 60% { transform: translateY(-1px) rotate(1deg); } }
@keyframes hrw-shadow-toys { 0% { transform: translateX(0); } 50% { transform: translateX(12px); } 100% { transform: translateX(-6px); } }

/* nora-leaving-decision – hallway with door, Nora ready to leave */
.scn-nora-leaving-decision {
  background: linear-gradient(180deg, #1a1728 0%, #2a2440 50%, #120f1c 100%),
              radial-gradient(ellipse at 30% 60%, #2a2440 0%, transparent 70%);
}
.scn-nora-leaving-decision .hall-wall {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, #1c182a 0%, #100c1a 100%);
  animation: nld-wall-dim 8s ease-in-out infinite alternate;
}
.scn-nora-leaving-decision .door {
  position: absolute; top: 12%; left: 54%; width: 18%; height: 60%;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0e06 100%);
  border-radius: 4% 4% 0 0;
  border: 3px solid #2a1a0a;
  box-shadow: -4px 0 12px rgba(0,0,0,.5), inset 0 0 20px rgba(0,0,0,.4);
  animation: nld-door-open 12s ease-in-out infinite alternate;
}
.scn-nora-leaving-decision .door-handle {
  position: absolute; top: 50%; left: 56%; width: 4px; height: 20px;
  background: radial-gradient(circle, #a08060 0%, #604020 100%);
  border-radius: 2px;
  box-shadow: 0 0 6px #604020;
  animation: nld-handle-glow 3s ease-in-out infinite alternate;
}
.scn-nora-leaving-decision .coat-rack {
  position: absolute; bottom: 18%; left: 16%; width: 8%; height: 38%;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0e06 100%);
  border-radius: 4px;
  box-shadow: 0 4px 8px rgba(0,0,0,.5);
}
.scn-nora-leaving-decision .coat-rack::after {
  content: ""; position: absolute; top: 0; left: -4px; width: 20px; height: 20px;
  background: radial-gradient(circle, #5a4a3a 0%, #2a1a0a 100%);
  border-radius: 50%;
  box-shadow: 0 2px 4px rgba(0,0,0,.4);
}
.scn-nora-leaving-decision .bag {
  position: absolute; bottom: 16%; left: 40%; width: 8%; height: 6%;
  background: linear-gradient(135deg, #4a3a2a 0%, #1a120a 100%);
  border-radius: 20% 20% 10% 10%;
  box-shadow: 0 2px 6px rgba(0,0,0,.4);
  animation: nld-bag-swing 5s ease-in-out infinite alternate;
}
.scn-nora-leaving-decision .figure-nora {
  position: absolute; bottom: 14%; left: 36%; width: 10%; height: 36%;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 50% 50% 40% 40% / 70% 70% 30% 30%;
  transform-origin: bottom center;
  box-shadow: inset 0 -6px 10px rgba(0,0,0,.5);
  animation: nld-nora-move 7s ease-in-out infinite;
}
.scn-nora-leaving-decision .lamp {
  position: absolute; top: 8%; left: 26%; width: 6%; height: 12%;
  background: radial-gradient(circle at 50% 30%, #ffd080 0%, #b08040 60%, transparent 100%);
  box-shadow: 0 0 40px 16px rgba(200,144,64,.4), 0 0 80px 30px rgba(200,144,64,.2);
  border-radius: 50% 50% 30% 30% / 40% 40% 20% 20%;
  animation: nld-lamp-flicker 2s ease-in-out infinite alternate;
}
.scn-nora-leaving-decision .shadow-leave {
  position: absolute; bottom: 0; left: 20%; width: 60%; height: 14%;
  background: linear-gradient(180deg, rgba(0,0,0,.5) 0%, transparent 100%);
  border-radius: 50% / 30%;
  filter: blur(6px);
  animation: nld-shadow-stretch 6s ease-in-out infinite alternate;
}

@keyframes nld-wall-dim { 0% { opacity: .8; } 50% { opacity: 1; } 100% { opacity: .85; } }
@keyframes nld-door-open { 0% { transform: rotateY(0deg); } 30% { transform: rotateY(-5deg); } 70% { transform: rotateY(4deg); } 100% { transform: rotateY(0deg); } }
@keyframes nld-handle-glow { 0% { opacity: .7; box-shadow: 0 0 4px #604020; } 50% { opacity: 1; box-shadow: 0 0 12px #c08040; } 100% { opacity: .8; box-shadow: 0 0 6px #604020; } }
@keyframes nld-bag-swing { 0% { transform: rotate(0deg) translateX(0); } 50% { transform: rotate(5deg) translateX(3px); } 100% { transform: rotate(-3deg) translateX(-2px); } }
@keyframes nld-nora-move { 0%,100% { transform: translateY(0) rotate(0deg); } 25% { transform: translateY(-2px) rotate(-1deg); } 50% { transform: translateY(-5px) rotate(0deg); } 75% { transform: translateY(-1px) rotate(1deg); } }
@keyframes nld-lamp-flicker { 0% { opacity: .8; transform: scale(0.95); } 50% { opacity: 1; transform: scale(1.05); } 100% { opacity: .9; transform: scale(1); } }
@keyframes nld-shadow-stretch { 0% { transform: scaleX(1); } 50% { transform: scaleX(1.3); } 100% { transform: scaleX(0.8); } }

/* ========== item-christmas-tree (ct) ========== */
.scn-item-christmas-tree {
  background:
    radial-gradient(ellipse 80% 60% at 30% 20%, rgba(255, 240, 200, 0.4), transparent 70%),
    linear-gradient(175deg, #d9c8a0 0%, #b8a080 50%, #8a7a60 100%);
}
.scn-item-christmas-tree .wall-bg {
  position: absolute; inset: 0 0 35% 0;
  background: linear-gradient(90deg, transparent 0%, rgba(220, 200, 160, 0.3) 50%, transparent 100%);
  animation: ct-panel 14s ease-in-out infinite alternate;
}
.scn-item-christmas-tree .floor-planks {
  position: absolute; bottom: 0; left: 0; right: 0; height: 35%;
  background: repeating-linear-gradient(90deg, #5a4a3a 0px, #5a4a3a 2px, #6a5a4a 2px, #6a5a4a 6px);
  transform-origin: bottom center;
  animation: ct-floor 8s ease-in-out infinite;
}
.scn-item-christmas-tree .door-porter {
  position: absolute; bottom: 20%; right: 10%; width: 22%; height: 65%;
  background: linear-gradient(180deg, #4a3a2a 0%, #3a2a1a 100%);
  border-radius: 2% 2% 0 0;
  box-shadow: inset -8px 0 12px rgba(0,0,0,0.4);
  animation: ct-door 0s linear infinite; /* static, kept for consistency */
}
.scn-item-christmas-tree .tree-cone {
  position: absolute; bottom: 28%; left: 50%; width: 26%; height: 48%;
  transform: translateX(-50%);
  background:
    radial-gradient(ellipse 40% 60% at 30% 50%, #4a7a3a 0%, #1a3a1a 100%);
  border-radius: 40% 40% 10% 10% / 60% 60% 10% 10%;
  box-shadow: inset 0 -20px 30px rgba(0,0,0,0.5), inset 0 20px 30px rgba(100,180,80,0.3);
  animation: ct-tree 12s ease-in-out infinite alternate;
}
.scn-item-christmas-tree .tree-cloth {
  position: absolute; bottom: 58%; left: 38%; width: 30%; height: 20%;
  background: linear-gradient(160deg, rgba(255, 250, 230, 0.8) 0%, rgba(230, 210, 170, 0.4) 100%);
  border-radius: 50% 50% 50% 50% / 60% 60% 40% 40%;
  filter: blur(2px);
  animation: ct-cloth 9s ease-in-out infinite alternate;
}
.scn-item-christmas-tree .ornament-gold {
  position: absolute; bottom: 48%; left: 52%; width: 5%; height: 8%;
  background: radial-gradient(circle at 30% 30%, #ffe080 0%, #c09040 100%);
  border-radius: 50%;
  box-shadow: 0 0 12px 4px rgba(200, 150, 60, 0.6);
  animation: ct-ornament 4s ease-in-out infinite;
}
.scn-item-christmas-tree .basket-woven {
  position: absolute; bottom: 26%; left: 42%; width: 20%; height: 10%;
  background: repeating-linear-gradient(45deg, #6a4a2a 0px, #6a4a2a 3px, #8a6a4a 3px, #8a6a4a 6px);
  border-radius: 20% 20% 10% 10%;
  box-shadow: inset 0 -4px 6px rgba(0,0,0,0.3);
  animation: ct-basket 6s ease-in-out infinite;
}
.scn-item-christmas-tree .glow-soft {
  position: absolute; top: 20%; left: 30%; width: 40%; height: 40%;
  background: radial-gradient(circle, rgba(255, 230, 180, 0.3) 0%, transparent 70%);
  animation: ct-glow 5s ease-in-out infinite alternate;
}
.scn-item-christmas-tree .shadow-leaving {
  position: absolute; bottom: 20%; right: 12%; width: 15%; height: 50%;
  background: radial-gradient(ellipse at 50% 100%, rgba(0,0,0,0.4) 0%, transparent 70%);
  filter: blur(6px);
  animation: ct-shadow 18s linear infinite;
}
@keyframes ct-panel { 0% { opacity: 0.7; } 50% { opacity: 1; } 100% { opacity: 0.8; } }
@keyframes ct-floor { 0% { transform: scaleY(1); } 50% { transform: scaleY(0.98); } 100% { transform: scaleY(1); } }
@keyframes ct-tree { 0% { transform: translateX(-50%) scale(1); } 50% { transform: translateX(-50%) scale(1.02); } 100% { transform: translateX(-50%) scale(0.99); } }
@keyframes ct-cloth { 0% { transform: skewX(0deg) translateY(0); } 50% { transform: skewX(-2deg) translateY(-4px); } 100% { transform: skewX(1deg) translateY(2px); } }
@keyframes ct-ornament { 0% { transform: rotate(-6deg) translateX(0); } 50% { transform: rotate(6deg) translateX(4px); } 100% { transform: rotate(-3deg) translateX(-2px); } }
@keyframes ct-basket { 0% { transform: translateY(0); } 50% { transform: translateY(-2px); } 100% { transform: translateY(0); } }
@keyframes ct-glow { 0% { opacity: 0.5; transform: scale(1); } 100% { opacity: 1; transform: scale(1.2); } }
@keyframes ct-shadow { 0% { transform: translateX(0) scaleX(1); } 50% { transform: translateX(20px) scaleX(0.8); } 100% { transform: translateX(0) scaleX(1); } }

/* ========== item-macaroon-packet (mp) ========== */
.scn-item-macaroon-packet {
  background:
    radial-gradient(ellipse 60% 80% at 60% 50%, rgba(180, 130, 70, 0.4), transparent 80%),
    linear-gradient(165deg, #d4b896 0%, #b89870 60%, #8a6a4a 100%);
}
.scn-item-macaroon-packet .wall-shadow {
  position: absolute; inset: 0 40% 0 0;
  background: linear-gradient(90deg, rgba(40, 30, 20, 0.15) 0%, transparent 100%);
  animation: mp-shadow 9s ease-in-out infinite alternate;
}
.scn-item-macaroon-packet .door-heavy {
  position: absolute; top: 0; left: 60%; width: 40%; height: 100%;
  background: linear-gradient(180deg, #6a5a4a 0%, #4a3a2a 100%);
  border-radius: 0 0 4% 4%;
  box-shadow: inset 8px 0 20px rgba(0,0,0,0.5);
  animation: mp-door 12s ease-in-out infinite;
}
.scn-item-macaroon-packet .figure-nora {
  position: absolute; bottom: 10%; left: 30%; width: 22%; height: 60%;
  background: linear-gradient(135deg, #6a8a9a 0%, #3a5a6a 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%;
  transform-origin: bottom center;
  animation: mp-figure 6s ease-in-out infinite alternate;
}
.scn-item-macaroon-packet .hand-sneak {
  position: absolute; bottom: 35%; left: 42%; width: 8%; height: 12%;
  background: radial-gradient(circle at 40% 40%, #e8d0b0 0%, #c8a880 100%);
  border-radius: 40% 40% 30% 30%;
  animation: mp-hand 3s ease-in-out infinite alternate;
}
.scn-item-macaroon-packet .coat-drape {
  position: absolute; bottom: 8%; left: 18%; width: 20%; height: 30%;
  background: linear-gradient(180deg, #4a3a3a 0%, #2a1a1a 100%);
  border-radius: 20% 20% 40% 40% / 30% 30% 50% 50%;
  animation: mp-coat 8s ease-in-out infinite;
}
.scn-item-macaroon-packet .table-round {
  position: absolute; bottom: 6%; left: 50%; width: 16%; height: 8%;
  background: radial-gradient(ellipse at 50% 30%, #c8b090 0%, #8a7050 100%);
  border-radius: 50%;
  box-shadow: 0 4px 8px rgba(0,0,0,0.3);
  animation: mp-table 7s ease-in-out infinite;
}
.scn-item-macaroon-packet .packet-gold {
  position: absolute; bottom: 12%; left: 52%; width: 5%; height: 6%;
  background: linear-gradient(135deg, #f0d890 0%, #c8a850 100%);
  border-radius: 10% 10% 10% 10%;
  box-shadow: 0 0 8px 2px rgba(200, 160, 60, 0.5);
  animation: mp-packet 4s ease-in-out infinite alternate;
}
@keyframes mp-shadow { 0% { transform: translateX(0); opacity: 0.6; } 100% { transform: translateX(-10px); opacity: 1; } }
@keyframes mp-door { 0% { transform: scaleX(1); } 50% { transform: scaleX(0.98); } 100% { transform: scaleX(1); } }
@keyframes mp-figure { 0% { transform: translateY(0) rotate(0); } 50% { transform: translateY(-4px) rotate(1deg); } 100% { transform: translateY(2px) rotate(-1deg); } }
@keyframes mp-hand { 0% { transform: translateY(0) rotate(0); } 50% { transform: translateY(-8px) rotate(5deg); } 100% { transform: translateY(-2px) rotate(2deg); } }
@keyframes mp-coat { 0% { transform: translateX(0) skewX(0); } 50% { transform: translateX(4px) skewX(2deg); } 100% { transform: translateX(0) skewX(0); } }
@keyframes mp-table { 0% { transform: translateX(0); } 50% { transform: translateX(2px); } 100% { transform: translateX(0); } }
@keyframes mp-packet { 0% { transform: scale(1) rotate(0); } 50% { transform: scale(1.05) rotate(3deg); } 100% { transform: scale(0.95) rotate(-2deg); } }

/* ========== spendthrift-argument (sa) ========== */
.scn-spendthrift-argument {
  background:
    radial-gradient(ellipse 70% 50% at 50% 100%, rgba(160, 60, 40, 0.5) 0%, transparent 70%),
    linear-gradient(180deg, #6a3a2a 0%, #4a2a1a 50%, #2a1a10 100%);
}
.scn-spendthrift-argument .bg-burgundy {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, rgba(80, 30, 30, 0.4) 0%, transparent 100%);
  animation: sa-bg 15s ease-in-out infinite alternate;
}
.scn-spendthrift-argument .fireplace-dark {
  position: absolute; bottom: 20%; left: 50%; width: 40%; height: 50%;
  transform: translateX(-50%);
  background: radical-gradient(ellipse at 50% 100%, #1a0a0a 0%, #2a1a1a 100%);
  border-radius: 10% 10% 0 0;
  box-shadow: inset 0 -20px 30px rgba(0,0,0,0.8);
  animation: sa-fireplace 6s ease-in-out infinite alternate;
}
.scn-spendthrift-argument .mantle-wood {
  position: absolute; bottom: 55%; left: 30%; width: 40%; height: 6%;
  background: linear-gradient(90deg, #5a3a2a 0%, #8a6a4a 50%, #5a3a2a 100%);
  border-radius: 4px;
  box-shadow: 0 4px 8px rgba(0,0,0,0.5);
  animation: sa-mantle 9s ease-in-out infinite;
}
.scn-spendthrift-argument .figure-torvald {
  position: absolute; bottom: 10%; left: 25%; width: 20%; height: 55%;
  background: linear-gradient(135deg, #3a4a5a 0%, #1a2a3a 100%);
  border-radius: 30% 30% 20% 20% / 40% 40% 30% 30%;
  transform-origin: bottom center;
  animation: sa-torvald 7s ease-in-out infinite alternate;
}
.scn-spendthrift-argument .figure-nora-bright {
  position: absolute; bottom: 10%; right: 25%; width: 20%; height: 50%;
  background: linear-gradient(135deg, #4a8a7a 0%, #2a5a4a 100%);
  border-radius: 30% 30% 20% 20% / 40% 40% 30% 30%;
  transform-origin: bottom center;
  animation: sa-nora 5s ease-in-out infinite alternate;
}
.scn-spendthrift-argument .parcels-stack {
  position: absolute; bottom: 58%; left: 48%; width: 10%; height: 10%;
  background: linear-gradient(180deg, #d4b060 0%, #b09040 100%);
  border-radius: 10%;
  box-shadow: 2px 2px 6px rgba(0,0,0,0.4);
  animation: sa-parcels 4s ease-in-out infinite alternate;
}
.scn-spendthrift-argument .squirrel-bronze {
  position: absolute; bottom: 60%; left: 36%; width: 6%; height: 8%;
  background: radial-gradient(circle at 40% 30%, #c8a050 0%, #8a6a30 100%);
  border-radius: 50% 50% 30% 30%;
  animation: sa-squirrel 2s ease-in-out infinite;
}
.scn-spendthrift-argument .fire-glow-warm {
  position: absolute; bottom: 0; left: 40%; width: 20%; height: 40%;
  background: radial-gradient(circle at 50% 100%, rgba(200, 100, 50, 0.4) 0%, transparent 70%);
  animation: sa-fire 3s ease-in-out infinite alternate;
}
@keyframes sa-bg { 0% { opacity: 0.7; } 100% { opacity: 1; } }
@keyframes sa-fireplace { 0% { box-shadow: inset 0 -10px 20px rgba(0,0,0,0.8); } 100% { box-shadow: inset 0 -30px 40px rgba(0,0,0,0.9); } }
@keyframes sa-mantle { 0% { transform: translateY(0); } 50% { transform: translateY(-2px); } 100% { transform: translateY(0); } }
@keyframes sa-torvald { 0% { transform: translateY(0) rotate(0); } 50% { transform: translateY(-6px) rotate(-2deg); } 100% { transform: translateY(2px) rotate(1deg); } }
@keyframes sa-nora { 0% { transform: translateY(0) rotate(0); } 50% { transform: translateY(-8px) rotate(3deg); } 100% { transform: translateY(0) rotate(-1deg); } }
@keyframes sa-parcels { 0% { transform: scale(1) translateY(0); } 100% { transform: scale(1.05) translateY(-4px); } }
@keyframes sa-squirrel { 0% { transform: translateY(0) scale(1); } 25% { transform: translateY(-8px) scale(1.1); } 50% { transform: translateY(0) scale(1); } 75% { transform: translateY(-4px) scale(1.05); } 100% { transform: translateY(0) scale(1); } }
@keyframes sa-fire { 0% { opacity: 0.6; transform: scale(1); } 100% { opacity: 1; transform: scale(1.15); } }

/* ========== debt-moral-talk (dt) ========== */
.scn-debt-moral-talk {
  background:
    radial-gradient(ellipse 60% 70% at 50% 40%, rgba(180, 100, 60, 0.3) 0%, transparent 70%),
    linear-gradient(170deg, #4a3a3a 0%, #2a1a1a 60%, #1a0a0a 100%);
}
.scn-debt-moral-talk .bg-contrast {
  position: absolute; inset: 0;
  background: linear-gradient(90deg, rgba(0,0,0,0.2) 0%, transparent 30%, transparent 70%, rgba(0,0,0,0.3) 100%);
  animation: dt-contrast 11s ease-in-out infinite alternate;
}
.scn-debt-moral-talk .figure-torvald-back {
  position: absolute; bottom: 10%; left: 20%; width: 30%; height: 70%;
  background: linear-gradient(135deg, #2a3a4a 0%, #0a1a2a 100%);
  border-radius: 30% 30% 20% 20% / 40% 40% 30% 30%;
  transform-origin: bottom center;
  animation: dt-torvald 8s ease-in-out infinite alternate;
}
.scn-debt-moral-talk .figure-nora-profile {
  position: absolute; bottom: 10%; right: 25%; width: 25%; height: 65%;
  background: linear-gradient(135deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 30% 30% 20% 20% / 40% 40% 30% 30%;
  clip-path: polygon(0 0, 100% 0, 100% 100%, 0 100%);
  animation: dt-nora 6s ease-in-out infinite alternate;
}
.scn-debt-moral-talk .hand-stretch {
  position: absolute; bottom: 40%; left: 48%; width: 12%; height: 18%;
  background: linear-gradient(135deg, #d4b8a0 0%, #b89880 100%);
  border-radius: 30% 30% 20% 20%;
  transform-origin: bottom left;
  animation: dt-hand 0.5s ease-in-out infinite alternate;
}
.scn-debt-moral-talk .eye-wide {
  position: absolute; bottom: 52%; left: 40%; width: 5%; height: 6%;
  background: radial-gradient(circle at 40% 40%, #f0e8d0 0%, #c8b8a0 100%);
  border-radius: 50%;
  box-shadow: 0 0 12px 4px rgba(200, 180, 150, 0.6);
  animation: dt-eye 4s ease-in-out infinite;
}
.scn-debt-moral-talk .shadow-hard {
  position: absolute; top: 10%; left: 10%; width: 80%; height: 80%;
  background: linear-gradient(135deg, transparent 40%, rgba(0,0,0,0.4) 60%);
  filter: blur(8px);
  animation: dt-shadow 7s ease-in-out infinite alternate;
}
@keyframes dt-contrast { 0% { opacity: 0.6; } 50% { opacity: 1; } 100% { opacity: 0.8; } }
@keyframes dt-torvald { 0% { transform: translateY(0) rotate(0); } 50% { transform: translateY(-4px) rotate(-1deg); } 100% { transform: translateY(0) rotate(1deg); } }
@keyframes dt-nora { 0% { transform: translateY(0) rotate(0) scale(1); } 50% { transform: translateY(-6px) rotate(2deg) scale(1.02); } 100% { transform: translateY(0) rotate(0) scale(1); } }
@keyframes dt-hand { 0% { transform: rotate(0deg) translateX(0); } 50% { transform: rotate(-5deg) translateX(2px); } 100% { transform: rotate(5deg) translateX(-2px); } }
@keyframes dt-eye { 0% { transform: scaleY(1); } 45% { transform: scaleY(1); } 48% { transform: scaleY(0.1); } 52% { transform: scaleY(1); } 100% { transform: scaleY(1); } }
@keyframes dt-shadow { 0% { transform: translateX(0) scale(1); opacity: 0.7; } 50% { transform: translateX(15px) scale(1.05); opacity: 1; } 100% { transform: translateX(-10px) scale(0.95); opacity: 0.8; } }

.scn-helmer-forbids-leaving { background: linear-gradient(180deg, #1a1a1a 0%, #2a2a2a 50%, #1a1a1a 100%), radial-gradient(ellipse at 30% 50%, #3a3a3a 0%, transparent 60%); }
.scn-helmer-forbids-leaving .wall-bg { position:absolute; inset:0; background: linear-gradient(135deg, #3a3a2a 0%, #1a1a1a 100%); }
.scn-helmer-forbids-leaving .door-frame { position:absolute; bottom:10%; left:30%; width:40%; height:80%; border:4px solid #4a4a3a; border-radius:4px; background:transparent; }
.scn-helmer-forbids-leaving .door { position:absolute; bottom:10%; left:32%; width:36%; height:78%; background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%); border-radius:2px; }
.scn-helmer-forbids-leaving .lamp { position:absolute; top:30%; left:55%; width:12px; height:20px; background: radial-gradient(circle, #f0d090 0%, #b07030 70%); border-radius:50% 50% 20% 20%; box-shadow:0 0 30px 10px #b07030; animation:hfl-lamp 1.5s ease-in-out infinite; }
.scn-helmer-forbids-leaving .figure-helmer { position:absolute; bottom:12%; left:45%; width:20px; height:60px; background: linear-gradient(180deg, #2a2a2a 0%, #1a1a1a 100%); border-radius:40% 40% 30% 30% / 50% 50% 40% 40%; transform-origin:bottom; animation:hfl-helmer 3s ease-in-out infinite; }
.scn-helmer-forbids-leaving .figure-nora { position:absolute; bottom:12%; left:35%; width:18px; height:55px; background: linear-gradient(180deg, #2a2a2a 0%, #151515 100%); border-radius:40% 40% 30% 30% / 50% 50% 40% 40%; transform-origin:bottom; animation:hfl-nora 3.5s ease-in-out infinite 0.5s; }
.scn-helmer-forbids-leaving .shadow-helmer { position:absolute; bottom:10%; left:42%; width:30px; height:8px; background:rgba(0,0,0,0.4); border-radius:50%; filter:blur(3px); animation:hfl-shadow 3s ease-in-out infinite; }
.scn-helmer-forbids-leaving .shadow-nora { position:absolute; bottom:10%; left:30%; width:24px; height:6px; background:rgba(0,0,0,0.3); border-radius:50%; filter:blur(2px); animation:hfl-shadow 3.5s ease-in-out infinite 0.5s; }
@keyframes hfl-lamp { 0%{opacity:.8;box-shadow:0 0 20px 5px #b07030} 50%{opacity:1;box-shadow:0 0 40px 15px #d09040} 100%{opacity:.9;box-shadow:0 0 25px 8px #b07030} }
@keyframes hfl-helmer { 0%{transform:translateY(0) rotate(0deg)} 25%{transform:translateY(-2px) rotate(1deg)} 50%{transform:translateY(1px) rotate(-1deg)} 75%{transform:translateY(-1px) rotate(.5deg)} 100%{transform:translateY(0) rotate(0)} }
@keyframes hfl-nora { 0%{transform:translateY(0) rotate(0deg) scaleX(1)} 25%{transform:translateY(-1px) rotate(-1deg) scaleX(.95)} 50%{transform:translateY(1px) rotate(0deg) scaleX(1)} 75%{transform:translateY(-2px) rotate(1deg) scaleX(1.05)} 100%{transform:translateY(0) rotate(0) scaleX(1)} }
@keyframes hfl-shadow { 0%{opacity:.3;transform:scaleX(1)} 25%{opacity:.5;transform:scaleX(1.1)} 50%{opacity:.2;transform:scaleX(.9)} 75%{opacity:.4;transform:scaleX(1.05)} 100%{opacity:.3;transform:scaleX(1)} }

.scn-duties-to-self { background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 50%, #2a2a3a 100%), radial-gradient(ellipse at 60% 70%, #3a3a4a 0%, transparent 70%); }
.scn-duties-to-self .room-wall { position:absolute; inset:0; background: linear-gradient(135deg, #1e1e2e 0%, #2a2a3a 100%); }
.scn-duties-to-self .mirror { position:absolute; top:15%; left:35%; width:30%; height:40%; background: linear-gradient(135deg, #505060 0%, #303040 100%); border-radius:8% 8% 4% 4%; box-shadow:inset 0 0 20px rgba(0,0,0,.5), 0 0 10px rgba(255,255,200,.1); }
.scn-duties-to-self .frame { position:absolute; top:calc(15% - 4px); left:calc(35% - 4px); width:calc(30% + 8px); height:calc(40% + 8px); border:4px solid #4a3a2a; border-radius:8% 8% 4% 4%; background:transparent; }
.scn-duties-to-self .figure-back { position:absolute; bottom:15%; left:43%; width:20px; height:55px; background: linear-gradient(180deg, #2a2a2a 0%, #1a1a1a 100%); border-radius:30% 30% 30% 30% / 40% 40% 30% 30%; transform-origin:bottom; animation:dts-figure 4s ease-in-out infinite; }
.scn-duties-to-self .candle { position:absolute; bottom:18%; left:60%; width:8px; height:30px; background: linear-gradient(180deg, #e0c090 0%, #a08050 100%); border-radius:4px 4px 2px 2px; animation:dts-candle 3s ease-in-out infinite; }
.scn-duties-to-self .candle-glow { position:absolute; bottom:18%; left:60%; width:20px; height:20px; margin-left:-6px; background: radial-gradient(circle, #ffd080 0%, #b07020 70%, transparent 100%); border-radius:50%; animation:dts-glow 1.5s ease-in-out infinite; }
.scn-duties-to-self .shadow-fig { position:absolute; bottom:12%; left:38%; width:30px; height:10px; background:rgba(0,0,0,.4); border-radius:50%; filter:blur(4px); animation:dts-shadow 4s ease-in-out infinite; }
@keyframes dts-figure { 0%{transform:translateY(0) rotate(0deg)} 25%{transform:translateY(1px) rotate(1deg)} 50%{transform:translateY(0) rotate(-1deg)} 75%{transform:translateY(-1px) rotate(2deg)} 100%{transform:translateY(0) rotate(0)} }
@keyframes dts-candle { 0%{transform:scaleY(1);opacity:.9} 25%{transform:scaleY(1.02);opacity:1} 50%{transform:scaleY(.98);opacity:.8} 75%{transform:scaleY(1.01);opacity:.95} 100%{transform:scaleY(1);opacity:.9} }
@keyframes dts-glow { 0%{opacity:.5;transform:scale(1)} 50%{opacity:.8;transform:scale(1.3)} 100%{opacity:.6;transform:scale(1)} }
@keyframes dts-shadow { 0%{opacity:.3;transform:scaleX(1)} 25%{opacity:.5;transform:scaleX(1.1)} 50%{opacity:.2;transform:scaleX(.9)} 75%{opacity:.4;transform:scaleX(1.05)} 100%{opacity:.3;transform:scaleX(1)} }

.scn-religion-conscience { background: linear-gradient(180deg, #0d0d1a 0%, #1a1a2e 50%, #0d0d1a 100%), radial-gradient(ellipse at 50% 20%, #2a2a4e 0%, transparent 60%); }
.scn-religion-conscience .bg-church { position:absolute; inset:0; background: linear-gradient(180deg, #1a1a2e 0%, #0a0a1a 100%); }
.scn-religion-conscience .window-arch { position:absolute; top:5%; left:30%; width:40%; height:50%; border:4px solid #4a4a5a; border-radius:50% 50% 0 0; background:transparent; animation:rc-window 5s ease-in-out infinite; }
.scn-religion-conscience .light-beam { position:absolute; top:5%; left:35%; width:30%; height:60%; background: linear-gradient(180deg, rgba(255,255,200,.15) 0%, rgba(255,255,200,0) 100%); transform:rotate(10deg); animation:rc-beam 6s ease-in-out infinite; }
.scn-religion-conscience .kneeling-figure { position:absolute; bottom:18%; left:46%; width:18px; height:40px; background: linear-gradient(180deg, #1e1e2e 0%, #0a0a1a 100%); border-radius:30% 30% 50% 50% / 40% 40% 30% 30%; transform-origin:bottom; animation:rc-kneel 4s ease-in-out infinite; }
.scn-religion-conscience .cross-v { position:absolute; bottom:30%; left:50%; width:6px; height:40px; background:#5a4a3a; transform:translateX(-3px); border-radius:2px; }
.scn-religion-conscience .cross-h { position:absolute; bottom:47%; left:47%; width:14px; height:6px; background:#5a4a3a; transform:translateX(-7px); border-radius:2px; }
.scn-religion-conscience .cross-glow { position:absolute; bottom:30%; left:50%; width:40px; height:60px; background: radial-gradient(ellipse, rgba(255,255,200,.2) 0%, transparent 70%); transform:translateX(-20px); animation:rc-glow 3s ease-in-out infinite; }
@keyframes rc-window { 0%{border-color:#4a4a5a} 50%{border-color:#6a6a8a} 100%{border-color:#4a4a5a} }
@keyframes rc-beam { 0%{opacity:.3;transform:rotate(8deg)} 50%{opacity:.7;transform:rotate(12deg)} 100%{opacity:.4;transform:rotate(10deg)} }
@keyframes rc-kneel { 0%{transform:translateY(0) scaleY(1)} 25%{transform:translateY(-1px) scaleY(.95)} 50%{transform:translateY(0) scaleY(1)} 75%{transform:translateY(1px) scaleY(.98)} 100%{transform:translateY(0) scaleY(1)} }
@keyframes rc-glow { 0%{opacity:.1;transform:scale(.8)} 50%{opacity:.4;transform:scale(1.2)} 100%{opacity:.2;transform:scale(.9)} }

.scn-law-and-justice { background: linear-gradient(180deg, #2a2a2a 0%, #1a1a1a 50%, #2a2a2a 100%), radial-gradient(ellipse at 50% 40%, #3a3a3a 0%, transparent 60%); }
.scn-law-and-justice .wall-court { position:absolute; inset:0; background: linear-gradient(180deg, #222222 0%, #111111 100%); }
.scn-law-and-justice .desk { position:absolute; bottom:10%; left:15%; width:70%; height:15%; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius:4px; box-shadow:0 -4px 10px rgba(0,0,0,.3); }
.scn-law-and-justice .scales-base { position:absolute; bottom:35%; left:50%; width:10px; height:30px; background:#6a5a4a; transform:translateX(-5px); border-radius:2px; animation:lj-scales-base 4s ease-in-out infinite; }
.scn-law-and-justice .scales-pan-l { position:absolute; bottom:35%; left:44%; width:20px; height:4px; background:#5a4a3a; border-radius:2px; transform-origin:top right; animation:lj-pan-l 4s ease-in-out infinite; }
.scn-law-and-justice .scales-pan-r { position:absolute; bottom:35%; left:56%; width:20px; height:4px; background:#5a4a3a; border-radius:2px; transform-origin:top left; animation:lj-pan-r 4s ease-in-out infinite .5s; }
.scn-law-and-justice .gavel { position:absolute; bottom:15%; left:30%; width:14px; height:8px; background:#6a5a4a; border-radius:2px; transform-origin:50% 100%; animation:lj-gavel 2s ease-in-out infinite; }
.scn-law-and-justice .lamp-court { position:absolute; top:30%; left:60%; width:12px; height:25px; background: radial-gradient(circle at 50% 30%, #f0d090 0%, #a08050 70%); border-radius:50% 50% 10% 10%; box-shadow:0 0 20px 8px #a08050; animation:lj-lamp 3s ease-in-out infinite; }
@keyframes lj-scales-base { 0%{transform:translateX(-5px) rotate(0deg)} 25%{transform:translateX(-5px) rotate(1deg)} 50%{transform:translateX(-5px) rotate(-1deg)} 75%{transform:translateX(-5px) rotate(2deg)} 100%{transform:translateX(-5px) rotate(0deg)} }
@keyframes lj-pan-l { 0%{transform:rotate(0deg)} 25%{transform:rotate(5deg)} 50%{transform:rotate(-5deg)} 75%{transform:rotate(3deg)} 100%{transform:rotate(0deg)} }
@keyframes lj-pan-r { 0%{transform:rotate(0deg)} 25%{transform:rotate(-5deg)} 50%{transform:rotate(5deg)} 75%{transform:rotate(-3deg)} 100%{transform:rotate(0deg)} }
@keyframes lj-gavel { 0%{transform:translateY(0) rotate(0deg)} 10%{transform:translateY(-5px) rotate(20deg)} 20%{transform:translateY(0) rotate(0deg)} 100%{transform:translateY(0) rotate(0deg)} }
@keyframes lj-lamp { 0%{opacity:.7;box-shadow:0 0 20px 5px #a08050} 50%{opacity:1;box-shadow:0 0 30px 15px #c09060} 100%{opacity:.8;box-shadow:0 0 25px 8px #a08050} }
/* end per-scene blocks */

/* auto-stub: parent tag-classes flagged by CSS audit */
.crumb { position: absolute; pointer-events: none; }
.scn { position: absolute; pointer-events: none; }
.smoke { position: absolute; pointer-events: none; }

/* ============ tier A ============ */
/* per-scene blocks (EXP step_scenes) */
.scn-helmer-agrees-to-help {
  background:
    radial-gradient(ellipse at 50% 50%, #5a3020 0%, #1a0c05 60%, #0a0402 100%),
    linear-gradient(180deg, #2a1a0a 0%, #1a0c05 50%, #0a0402 100%);
}
.scn-helmer-agrees-to-help .floor { position:absolute; bottom:0; left:0; right:0; height:35%; background: linear-gradient(180deg, #3a2010 0%, #1a0c05 100%); border-radius: 30% 0 0 0; }
.scn-helmer-agrees-to-help .wall { position:absolute; top:0; left:0; right:0; bottom:35%; background: linear-gradient(180deg, #4a2a18 0%, #3a1a0a 100%); }
.scn-helmer-agrees-to-help .desk { position:absolute; bottom:28%; left:20%; width:45%; height:20%; background: linear-gradient(180deg, #5a3a20 0%, #3a2010 100%); border-radius: 4% 4% 0 0; box-shadow: 0 8px 30px rgba(0,0,0,0.7); }
.scn-helmer-agrees-to-help .chair-left { position:absolute; bottom:25%; left:12%; width:16%; height:28%; background: linear-gradient(180deg, #4a2a18 0%, #2a1508 100%); border-radius: 20% 20% 10% 10%; box-shadow: inset 0 -8px 20px rgba(0,0,0,0.5); }
.scn-helmer-agrees-to-help .chair-right { position:absolute; bottom:25%; right:18%; width:16%; height:28%; background: linear-gradient(180deg, #4a2a18 0%, #2a1508 100%); border-radius: 20% 20% 10% 10%; box-shadow: inset 0 -8px 20px rgba(0,0,0,0.5); }
.scn-helmer-agrees-to-help .figure-standing { position:absolute; bottom:30%; left:40%; width:14%; height:40%; background: linear-gradient(180deg, #3a2010 0%, #1a0c05 100%); border-radius: 40% 40% 20% 20% / 60% 60% 30% 30%; transform-origin: bottom center; animation: hah-figure 6s ease-in-out infinite; }
.scn-helmer-agrees-to-help .fire-glow { position:absolute; bottom:30%; left:55%; width:12%; height:12%; background: radial-gradient(circle, #ff8040 0%, #ff6020 40%, transparent 70%); border-radius: 50%; animation: hah-fire 3s ease-in-out infinite alternate; }
.scn-helmer-agrees-to-help .letter { position:absolute; bottom:32%; left:30%; width:8%; height:6%; background: #b08050; border-radius: 2px; transform: rotate(-10deg); box-shadow: 0 2px 8px rgba(0,0,0,0.3); animation: hah-letter 8s ease-in-out infinite; }
.scn-helmer-agrees-to-help .hands-clapping { position:absolute; bottom:55%; left:48%; width:10%; height:8%; background: transparent; border: 2px solid #c09060; border-radius: 50%; box-shadow: inset 0 0 10px #c09060; animation: hah-clap 1s ease-in-out infinite; }
@keyframes hah-figure { 0%,100% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-3px) rotate(1deg); } }
@keyframes hah-fire { 0% { opacity:0.7; transform: scale(0.95); } 100% { opacity:1; transform: scale(1.05); box-shadow: 0 0 40px 10px #ff6020; } }
@keyframes hah-letter { 0%,100% { transform: rotate(-10deg); } 50% { transform: rotate(-5deg) translateY(-2px); } }
@keyframes hah-clap { 0%,100% { opacity:0.3; transform: scale(1); } 50% { opacity:1; transform: scale(1.2); } }

.scn-children-return {
  background:
    radial-gradient(ellipse at 60% 50%, #5a3020 0%, #1a0c05 60%, #0a0402 100%),
    linear-gradient(180deg, #2a1a0a 0%, #1a0c05 50%, #0a0402 100%);
}
.scn-children-return .floor { position:absolute; bottom:0; left:0; right:0; height:30%; background: linear-gradient(180deg, #3a2010 0%, #1a0c05 100%); }
.scn-children-return .wall-back { position:absolute; top:0; left:0; right:0; bottom:30%; background: linear-gradient(180deg, #4a2a18 0%, #3a1a0a 100%); }
.scn-children-return .door-frame { position:absolute; bottom:20%; left:20%; width:30%; height:55%; background: linear-gradient(180deg, #5a3a20 0%, #3a2010 100%); border-radius: 4% 4% 0 0; box-shadow: inset 0 0 20px rgba(0,0,0,0.6); }
.scn-children-return .door-open { position:absolute; bottom:20%; left:20%; width:30%; height:55%; background: linear-gradient(180deg, #2a1508 0%, #1a0c05 100%); border-radius: 0 8% 0 0; transform: skewY(5deg); animation: cr-door 5s ease-in-out infinite; }
.scn-children-return .child-left { position:absolute; bottom:25%; left:25%; width:10%; height:25%; background: linear-gradient(180deg, #4a2a18 0%, #2a1508 100%); border-radius: 40% 40% 20% 20% / 60% 60% 30% 30%; animation: cr-child-in 8s ease-in-out infinite; }
.scn-children-return .child-right { position:absolute; bottom:25%; left:35%; width:10%; height:25%; background: linear-gradient(180deg, #4a2a18 0%, #2a1508 100%); border-radius: 40% 40% 20% 20% / 60% 60% 30% 30%; animation: cr-child-in 8s ease-in-out infinite 1s; }
.scn-children-return .nurse { position:absolute; bottom:20%; right:15%; width:16%; height:40%; background: linear-gradient(180deg, #5a3a20 0%, #3a2010 100%); border-radius: 40% 40% 20% 20% / 60% 60% 30% 30%; transform-origin: bottom; animation: cr-nurse 10s ease-in-out infinite; }
.scn-children-return .warm-light { position:absolute; bottom:25%; left:40%; width:20%; height:30%; background: radial-gradient(ellipse at center, #ff8040 0%, transparent 70%); mix-blend-mode: screen; animation: cr-light 4s ease-in-out infinite alternate; }
.scn-children-return .coat-rack { position:absolute; bottom:25%; left:5%; width:8%; height:35%; background: linear-gradient(180deg, #3a2010 0%, #1a0c05 100%); border-radius: 10% 10% 0 0; box-shadow: inset 0 0 10px rgba(0,0,0,0.5); }
@keyframes cr-door { 0%,100% { transform: skewY(5deg) translateX(0); } 50% { transform: skewY(3deg) translateX(5px); } }
@keyframes cr-child-in { 0% { transform: translateX(-10px) scale(0.95); opacity:0.5; } 50% { transform: translateX(0) scale(1); opacity:1; } 100% { transform: translateX(-10px) scale(0.95); opacity:0.5; } }
@keyframes cr-nurse { 0%,100% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-4px) rotate(2deg); } }
@keyframes cr-light { 0% { opacity:0.6; transform: scale(0.9); } 100% { opacity:1; transform: scale(1.1); } }

.scn-playing-with-children {
  background:
    radial-gradient(ellipse at 50% 30%, #5a3020 0%, #1a0c05 60%, #0a0402 100%),
    linear-gradient(180deg, #2a1a0a 0%, #1a0c05 50%, #0a0402 100%);
}
.scn-playing-with-children .floor { position:absolute; bottom:0; left:0; right:0; height:40%; background: linear-gradient(180deg, #3a2010 0%, #1a0c05 100%); border-radius: 20% 0 0 0; }
.scn-playing-with-children .wall { position:absolute; top:0; left:0; right:0; bottom:40%; background: linear-gradient(180deg, #4a2a18 0%, #3a1a0a 100%); }
.scn-playing-with-children .carpet { position:absolute; bottom:10%; left:10%; width:80%; height:20%; background: linear-gradient(180deg, #5a3a20 0%, #3a2010 100%); border-radius: 20% 20% 0 0; opacity:0.8; }
.scn-playing-with-children .child-running { position:absolute; bottom:30%; left:30%; width:12%; height:30%; background: linear-gradient(180deg, #4a2a18 0%, #2a1508 100%); border-radius: 40% 40% 20% 20% / 60% 60% 30% 30%; animation: pwc-run 2s ease-in-out infinite; }
.scn-playing-with-children .child-sitting { position:absolute; bottom:22%; left:55%; width:12%; height:20%; background: linear-gradient(180deg, #4a2a18 0%, #2a1508 100%); border-radius: 40% 40% 60% 60% / 60% 60% 40% 40%; animation: pwc-sit 4s ease-in-out infinite; }
.scn-playing-with-children .toy-block { position:absolute; bottom:28%; left:45%; width:8%; height:8%; background: linear-gradient(135deg, #b08050 0%, #906030 100%); border-radius: 10%; box-shadow: 0 2px 6px rgba(0,0,0,0.4); animation: pwc-toy 6s ease-in-out infinite; }
.scn-playing-with-children .toy-ball { position:absolute; bottom:35%; left:20%; width:6%; height:6%; background: radial-gradient(circle at 30% 30%, #c09060 0%, #906030 100%); border-radius: 50%; animation: pwc-ball 3s ease-in-out infinite; }
.scn-playing-with-children .nurse-arms { position:absolute; bottom:25%; right:15%; width:20%; height:35%; background: linear-gradient(180deg, #5a3a20 0%, #3a2010 100%); border-radius: 50% 50% 20% 20% / 60% 60% 30% 30%; transform-origin: top; animation: pwc-nurse 7s ease-in-out infinite; }
.scn-playing-with-children .fire-glow { position:absolute; bottom:30%; left:10%; width:25%; height:25%; background: radial-gradient(circle, #ff8040 0%, #ff6020 30%, transparent 70%); mix-blend-mode: screen; animation: pwc-fire 3s ease-in-out infinite alternate; }
@keyframes pwc-run { 0%,100% { transform: translateX(0) rotate(0deg); } 50% { transform: translateX(10px) rotate(5deg); } }
@keyframes pwc-sit { 0%,100% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-2px) rotate(-3deg); } }
@keyframes pwc-toy { 0%,100% { transform: rotate(0deg); } 50% { transform: rotate(90deg) scale(1.1); } }
@keyframes pwc-ball { 0%,100% { transform: translateY(0) scaleX(1); } 50% { transform: translateY(-8px) scaleX(0.8); } }
@keyframes pwc-nurse { 0%,100% { transform: rotate(0deg); } 50% { transform: rotate(-5deg); } }
@keyframes pwc-fire { 0% { opacity:0.7; transform: scale(0.9); } 100% { opacity:1; transform: scale(1.1); } }

.scn-krogstad-returns {
  background:
    radial-gradient(ellipse at 40% 50%, #2a0a04 0%, #0a0200 70%, #050101 100%),
    linear-gradient(180deg, #1a0a04 0%, #0a0200 50%, #050101 100%);
}
.scn-krogstad-returns .floor { position:absolute; bottom:0; left:0; right:0; height:35%; background: linear-gradient(180deg, #1a0c05 0%, #0a0402 100%); }
.scn-krogstad-returns .wall-dark { position:absolute; top:0; left:0; right:0; bottom:35%; background: linear-gradient(180deg, #0a0402 0%, #050101 100%); }
.scn-krogstad-returns .door { position:absolute; bottom:20%; left:10%; width:25%; height:60%; background: linear-gradient(180deg, #2a1508 0%, #1a0c05 100%); border-radius: 4% 4% 0 0; box-shadow: inset 0 0 30px rgba(0,0,0,0.8); }
.scn-krogstad-returns .shadow-figure { position:absolute; bottom:22%; left:15%; width:18%; height:50%; background: linear-gradient(180deg, #0a0402 0%, #000 100%); border-radius: 40% 40% 20% 20% / 60% 60% 30% 30%; transform-origin: bottom; animation: kr-shadow 1s ease-in-out infinite; }
.scn-krogstad-returns .nora-silhouette { position:absolute; bottom:30%; right:20%; width:12%; height:35%; background: linear-gradient(180deg, #1a0c05 0%, #0a0402 100%); border-radius: 40% 40% 20% 20% / 60% 60% 30% 30%; animation: kr-nora 2s ease-in-out infinite alternate; }
.scn-krogstad-returns .lamp-glow { position:absolute; bottom:35%; left:50%; width:15%; height:15%; background: radial-gradient(circle, #ff8040 0%, #ff6020 40%, transparent 70%); mix-blend-mode: screen; animation: kr-lamp 2s ease-in-out infinite alternate; }
.scn-krogstad-returns .stairs-edge { position:absolute; bottom:0; right:0; width:30%; height:50%; background: linear-gradient(135deg, #1a0c05 0%, transparent 100%); clip-path: polygon(100% 0, 100% 100%, 0 100%); }
.scn-krogstad-returns .warm-haze { position:absolute; inset:0; background: radial-gradient(ellipse at 40% 50%, #ff6020 0%, transparent 80%); opacity:0.3; mix-blend-mode: overlay; animation: kr-haze 4s ease-in-out infinite alternate; }
@keyframes kr-shadow { 0%,100% { transform: scaleY(1) rotate(0deg); } 50% { transform: scaleY(1.02) rotate(2deg); } }
@keyframes kr-nora { 0% { transform: translateX(0) scale(1); } 100% { transform: translateX(-5px) scale(0.95); } }
@keyframes kr-lamp { 0% { opacity:0.6; transform: scale(0.8); } 100% { opacity:1; transform: scale(1.2); } }
@keyframes kr-haze { 0% { opacity:0.2; } 100% { opacity:0.4; } }

.scn-nora-rejects-roles {
  background: linear-gradient(180deg, #2c1810 0%, #3a2218 40%, #4a2c1e 70%, #382218 100%),
              radial-gradient(ellipse at 50% 20%, #6a3e2a 0%, transparent 60%);
  position: relative; overflow: hidden;
}
.scn-nora-rejects-roles .bg { position:absolute; inset:0; background: linear-gradient(180deg, transparent 0%, rgba(0,0,0,0.3) 100%); }
.scn-nora-rejects-roles .wall-left { position:absolute; bottom:30%; left:0; width:45%; height:70%; background: linear-gradient(135deg, #4a3020 0%, #2e1a0e 100%); border-right: 4px solid #1a0e08; box-shadow: inset -10px 0 20px rgba(0,0,0,0.4); }
.scn-nora-rejects-roles .wall-right { position:absolute; bottom:30%; right:0; width:45%; height:70%; background: linear-gradient(225deg, #4a3020 0%, #2e1a0e 100%); border-left: 4px solid #1a0e08; box-shadow: inset 10px 0 20px rgba(0,0,0,0.4); }
.scn-nora-rejects-roles .floor { position:absolute; bottom:0; left:0; right:0; height:30%; background: linear-gradient(0deg, #1a0e08 0%, #2c1a10 100%); box-shadow: inset 0 4px 10px #0a0604; }
.scn-nora-rejects-roles .table { position:absolute; bottom:30%; left:38%; width:24%; height:6%; background: linear-gradient(0deg, #5a3a28 0%, #6a4a34 100%); border-radius: 4px; box-shadow: 0 -2px 8px rgba(0,0,0,0.5); animation: nr1-table 20s ease-in-out infinite; }
.scn-nora-rejects-roles .candle { position:absolute; bottom:38%; left:50%; width:6px; height:20px; transform:translateX(-50%); background: linear-gradient(180deg, #fad6a0 0%, #b88a5a 80%, #6a4a34 100%); border-radius: 2px 2px 4px 4px; }
.scn-nora-rejects-roles .flame-glow { position:absolute; bottom:42%; left:50%; width:30px; height:30px; transform:translate(-50%,-50%); background: radial-gradient(circle, #ffd080 0%, rgba(255,208,128,0.3) 50%, transparent 70%); border-radius:50%; animation: nr1-flicker 2s ease-in-out infinite; }
.scn-nora-rejects-roles .figure-nora { position:absolute; bottom:30%; left:45%; width:20px; height:60px; transform:translateX(-50%); background: linear-gradient(180deg, #2a1a12 0%, #1a0e08 100%); border-radius: 50% 50% 40% 40% / 40% 40% 50% 50%; transform-origin: bottom center; animation: nr1-figure 6s ease-in-out infinite; }
.scn-nora-rejects-roles .door { position:absolute; bottom:30%; left:70%; width:25%; height:55%; top:15%; background: linear-gradient(180deg, #3a2218 0%, #2c1810 100%); border: 3px solid #1a0e08; border-radius: 6px 6px 0 0; opacity:0.7; box-shadow: inset 0 0 10px rgba(0,0,0,0.6), 0 0 20px rgba(0,0,0,0.3); animation: nr1-door 15s ease-in-out infinite alternate; }
@keyframes nr1-table { 0%,100% { transform: scaleY(1); } 50% { transform: scaleY(0.98) translateY(2px); } }
@keyframes nr1-flicker { 0%,100% { opacity:0.9; transform: translate(-50%,-50%) scale(1); } 25% { opacity:1; transform: translate(-48%,-52%) scale(1.1); } 50% { opacity:0.8; transform: translate(-52%,-48%) scale(0.9); } 75% { opacity:1; transform: translate(-50%,-50%) scale(1.05); } }
@keyframes nr1-figure { 0%,100% { transform: translateX(-50%) rotate(0deg); } 25% { transform: translateX(-48%) rotate(2deg) translateY(-2px); } 50% { transform: translateX(-50%) rotate(-1deg) translateY(0); } 75% { transform: translateX(-52%) rotate(3deg) translateY(-1px); } }
@keyframes nr1-door { 0%,100% { opacity:0.7; } 50% { opacity:0.85; box-shadow: inset 0 0 15px rgba(0,0,0,0.8), 0 0 30px rgba(0,0,0,0.4); } }

.scn-why-love-ended {
  background: linear-gradient(180deg, #2a1814 0%, #3a2218 50%, #2c1810 100%),
              radial-gradient(ellipse at 40% 50%, #4a2e1e 0%, transparent 70%);
  position: relative; overflow: hidden;
}
.scn-why-love-ended .bg { position:absolute; inset:0; background: linear-gradient(180deg, transparent 0%, rgba(0,0,0,0.4) 100%); }
.scn-why-love-ended .floor { position:absolute; bottom:0; left:0; right:0; height:28%; background: linear-gradient(0deg, #1a0e08 0%, #2c1a10 100%); box-shadow: inset 0 4px 8px #0a0604; }
.scn-why-love-ended .doorway { position:absolute; bottom:28%; left:20%; width:60%; height:50%; top:22%; background: #1a0e08; border-radius: 12px 12px 0 0; box-shadow: inset 0 0 30px rgba(0,0,0,0.7); }
.scn-why-love-ended .figure-a { position:absolute; bottom:28%; left:32%; width:20px; height:58px; background: linear-gradient(180deg, #2a1a12 0%, #1a0e08 100%); border-radius: 50% 50% 40% 40% / 40% 40% 50% 50%; transform-origin: bottom center; animation: wle-figA 8s ease-in-out infinite; }
.scn-why-love-ended .figure-b { position:absolute; bottom:28%; left:48%; width:22px; height:62px; background: linear-gradient(180deg, #2a1a12 0%, #1a0e08 100%); border-radius: 50% 50% 40% 40% / 40% 40% 50% 50%; transform-origin: bottom center; animation: wle-figB 8s ease-in-out infinite alternate; }
.scn-why-love-ended .candle { position:absolute; bottom:34%; left:50%; width:5px; height:18px; transform:translateX(-50%); background: linear-gradient(180deg, #fad6a0 0%, #b88a5a 80%, #6a4a34 100%); border-radius: 2px; }
.scn-why-love-ended .candle-halo { position:absolute; bottom:39%; left:50%; width:40px; height:40px; transform:translate(-50%,-50%); background: radial-gradient(circle, #ffd080 0%, rgba(255,208,128,0.2) 40%, transparent 70%); border-radius:50%; animation: wle-halo 3s ease-in-out infinite alternate; }
@keyframes wle-figA { 0%,100% { transform: translateX(0) rotate(0deg); } 50% { transform: translateX(5px) rotate(3deg) translateY(-3px); } }
@keyframes wle-figB { 0%,100% { transform: translateX(0) rotate(0deg); } 50% { transform: translateX(-4px) rotate(-2deg) translateY(2px); } }
@keyframes wle-halo { 0%,100% { opacity:0.7; transform: translate(-50%,-50%) scale(0.9); } 50% { opacity:1; transform: translate(-50%,-50%) scale(1.1); } }

.scn-rings-exchanged {
  background: linear-gradient(180deg, #2c1810 0%, #3a2218 40%, #4a2c1e 70%, #382218 100%),
              radial-gradient(ellipse at 50% 50%, #5a3a2a 0%, transparent 60%);
  position: relative; overflow: hidden;
}
.scn-rings-exchanged .bg { position:absolute; inset:0; background: linear-gradient(180deg, transparent 0%, rgba(0,0,0,0.3) 100%); }
.scn-rings-exchanged .wall { position:absolute; bottom:25%; left:0; right:0; height:75%; background: linear-gradient(135deg, #4a3020 0%, #3a2218 100%); box-shadow: inset 0 0 30px rgba(0,0,0,0.4); }
.scn-rings-exchanged .floor { position:absolute; bottom:0; left:0; right:0; height:25%; background: linear-gradient(0deg, #1a0e08 0%, #2c1a10 100%); box-shadow: inset 0 4px 8px #0a0604; }
.scn-rings-exchanged .table { position:absolute; bottom:22%; left:30%; width:40%; height:8%; background: linear-gradient(0deg, #5a3a28 0%, #6a4a34 100%); border-radius: 4px; box-shadow: 0 -2px 12px rgba(0,0,0,0.5); animation: re-table 25s ease-in-out infinite; }
.scn-rings-exchanged .chair { position:absolute; bottom:22%; left:48%; width:14%; height:18%; background: linear-gradient(180deg, #4a3020 0%, #2c1a10 100%); border-radius: 6px 6px 0 0; transform-origin: bottom center; animation: re-chair 12s ease-in-out infinite; }
.scn-rings-exchanged .cloak { position:absolute; bottom:28%; left:54%; width:20%; height:22%; background: linear-gradient(180deg, #3a2a1a 0%, #2c1a10 100%); border-radius: 50% 50% 20% 20%; transform: rotate(-15deg); animation: re-cloak 15s ease-in-out infinite alternate; }
.scn-rings-exchanged .hat { position:absolute; bottom:44%; left:58%; width:12%; height:12%; transform: rotate(20deg); background: radial-gradient(circle at 50% 30%, #4a3a2a 0%, #2c1a10 100%); border-radius: 50%; animation: re-hat 18s ease-in-out infinite; }
.scn-rings-exchanged .bag { position:absolute; bottom:26%; left:48%; width:10%; height:8%; background: #3a2a1a; border-radius: 20% 20% 0 0; box-shadow: 0 2px 8px rgba(0,0,0,0.4); animation: re-bag 20s ease-in-out infinite; }
.scn-rings-exchanged .candle-glow { position:absolute; bottom:30%; left:35%; width:30px; height:30px; background: radial-gradient(circle, #ffd080 0%, rgba(255,208,128,0.2) 40%, transparent 70%); border-radius:50%; animation: re-glow 2.5s ease-in-out infinite alternate; }
@keyframes re-table { 0%,100% { transform: scaleY(1); } 50% { transform: scaleY(0.97) translateY(3px); } }
@keyframes re-chair { 0%,100% { transform: rotate(0deg); } 50% { transform: rotate(2deg) translateY(-2px); } }
@keyframes re-cloak { 0%,100% { transform: rotate(-15deg); } 50% { transform: rotate(-12deg) scale(1.02); } }
@keyframes re-hat { 0%,100% { transform: rotate(20deg); } 50% { transform: rotate(25deg) scale(1.05); } }
@keyframes re-bag { 0%,100% { transform: translateY(0); } 50% { transform: translateY(-3px); } }
@keyframes re-glow { 0%,100% { opacity:0.7; } 50% { opacity:1; } }

.scn-final-goodbye {
  background: linear-gradient(180deg, #2c1810 0%, #3a2218 40%, #4a2c1e 70%, #382218 100%),
              radial-gradient(ellipse at 50% 30%, #5a3a2a 0%, transparent 60%);
  position: relative; overflow: hidden;
}
.scn-final-goodbye .bg { position:absolute; inset:0; background: linear-gradient(180deg, transparent 0%, rgba(0,0,0,0.4) 100%); }
.scn-final-goodbye .door-frame { position:absolute; bottom:25%; left:10%; width:80%; height:55%; top:20%; background: transparent; border: 8px solid #1a0e08; border-radius: 8px 8px 0 0; box-shadow: inset 0 0 30px rgba(0,0,0,0.6); animation: fg-door 20s ease-in-out infinite alternate; }
.scn-final-goodbye .floor { position:absolute; bottom:0; left:0; right:0; height:25%; background: linear-gradient(0deg, #1a0e08 0%, #2c1a10 100%); box-shadow: inset 0 4px 8px #0a0604; }
.scn-final-goodbye .figure-torvald { position:absolute; bottom:25%; left:55%; width:24px; height:64px; background: linear-gradient(180deg, #2a1a12 0%, #1a0e08 100%); border-radius: 50% 50% 40% 40% / 40% 40% 50% 50%; transform-origin: bottom center; animation: fg-torvald 10s ease-in-out infinite; }
.scn-final-goodbye .figure-nora { position:absolute; bottom:25%; left:30%; width:20px; height:60px; background: linear-gradient(180deg, #2a1a12 0%, #1a0e08 100%); border-radius: 50% 50% 40% 40% / 40% 40% 50% 50%; transform-origin: bottom center; animation: fg-nora 10s ease-in-out infinite alternate; }
.scn-final-goodbye .candle { position:absolute; bottom:32%; left:50%; width:5px; height:20px; transform:translateX(-50%); background: linear-gradient(180deg, #fad6a0 0%, #b88a5a 80%, #6a4a34 100%); border-radius: 2px; }
.scn-final-goodbye .halo { position:absolute; bottom:39%; left:50%; width:50px; height:50px; transform:translate(-50%,-50%); background: radial-gradient(circle, #ffd080 0%, rgba(255,208,128,0.15) 40%, transparent 70%); border-radius:50%; animation: fg-halo 3.5s ease-in-out infinite alternate; }
@keyframes fg-door { 0%,100% { border-width:8px; } 50% { border-width:6px; box-shadow: 0 0 20px rgba(0,0,0,0.4); } }
@keyframes fg-torvald { 0%,100% { transform: translateX(0) rotate(0deg); } 50% { transform: translateX(-3px) rotate(2deg); } }
@keyframes fg-nora { 0%,100% { transform: translateX(0) rotate(0deg); } 50% { transform: translateX(4px) rotate(-3deg) translateY(-2px); } }
@keyframes fg-halo { 0%,100% { opacity:0.6; transform: translate(-50%,-50%) scale(0.95); } 50% { opacity:1; transform: translate(-50%,-50%) scale(1.1); } }

/* Scene: nora-denies-rank (calm dim-interior) */
.scn-nora-denies-rank {
  background:
    linear-gradient(180deg, #2a2418 0%, #3a2e20 30%, #4a3828 60%, #3a2e20 100%),
    radial-gradient(ellipse at 50% 60%, #5c4a34 0%, transparent 70%);
}
.scn-nora-denies-rank .bg-wall { position:absolute; inset:0 0 40% 0; background: linear-gradient(90deg, #2a1f14 0%, #3d2e1e 40%, #4a3828 70%, #2a1f14 100%); }
.scn-nora-denies-rank .bg-floor { position:absolute; bottom:0; left:0; right:0; height:40%; background: linear-gradient(180deg, #4a3828 0%, #2a1f14 100%); box-shadow: inset 0 8px 12px rgba(0,0,0,.4); }
.scn-nora-denies-rank .desk { position:absolute; bottom:22%; left:30%; width:35%; height:18%; background: linear-gradient(180deg, #6a4a2a 0%, #4a3018 100%); border-radius: 4% 4% 0 0; box-shadow: 0 4px 8px rgba(0,0,0,.5); transform: perspective(300px) rotateX(10deg); }
.scn-nora-denies-rank .lamp { position:absolute; bottom:38%; left:50%; width:10px; height:30px; background: linear-gradient(180deg, #b09060 0%, #8a7040 100%); border-radius: 40% 40% 10% 10% / 60% 60% 20% 20%; transform-origin: bottom center; animation: ndr-lamp-sway 6s ease-in-out infinite alternate; }
.scn-nora-denies-rank .lampglow { position:absolute; bottom:36%; left:50%; width:60px; height:60px; transform:translate(-50%, -50%); background: radial-gradient(circle, rgba(200,170,100,.6) 0%, rgba(200,170,100,.2) 40%, transparent 70%); filter: blur(8px); animation: ndr-glow-pulse 4s ease-in-out infinite alternate; }
.scn-nora-denies-rank .figure-nora { position:absolute; bottom:16%; left:42%; width:20px; height:50px; background: linear-gradient(180deg, #2a1f14 0%, #1a1008 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: ndr-turn-away 8s ease-in-out infinite; }
.scn-nora-denies-rank .shadow { position:absolute; bottom:0; left:35%; width:30%; height:20%; background: rgba(0,0,0,.3); border-radius: 50% 50% 0 0 / 100% 100% 0 0; filter: blur(6px); animation: ndr-shadow-waver 10s ease-in-out infinite alternate; }

@keyframes ndr-lamp-sway { 0% { transform: rotate(-2deg) } 50% { transform: rotate(0deg) } 100% { transform: rotate(2deg) } }
@keyframes ndr-glow-pulse { 0% { opacity:.6; transform:translate(-50%, -50%) scale(1) } 50% { opacity:1; transform:translate(-50%, -50%) scale(1.2) } 100% { opacity:.7; transform:translate(-50%, -50%) scale(1) } }
@keyframes ndr-turn-away { 0% { transform: rotate(0deg) } 25% { transform: rotate(5deg) translateX(5px) } 50% { transform: rotate(0deg) translateX(10px) } 75% { transform: rotate(-5deg) translateX(5px) } 100% { transform: rotate(0deg) translateX(0) } }
@keyframes ndr-shadow-waver { 0% { opacity:.3; transform: scaleX(1) } 50% { opacity:.5; transform: scaleX(1.1) } 100% { opacity:.3; transform: scaleX(1) } }

/* Scene: mrs-linde-presses (tense dim-interior) */
.scn-mrs-linde-presses {
  background:
    linear-gradient(180deg, #1c1a16 0%, #2a241e 40%, #3a3026 70%, #2a241e 100%),
    radial-gradient(ellipse at 30% 50%, #4a3c30 0%, transparent 70%);
}
.scn-mrs-linde-presses .bg-dark { position:absolute; inset:0; background: linear-gradient(135deg, #1a1612 0%, #2e2822 50%, #1a1612 100%); }
.scn-mrs-linde-presses .wall-left { position:absolute; top:0; left:0; width:30%; height:100%; background: linear-gradient(180deg, #2a221a 0%, #1a140e 100%); border-right: 2px solid #3a3026; box-shadow: inset -10px 0 15px rgba(0,0,0,.5); }
.scn-mrs-linde-presses .wall-right { position:absolute; top:0; right:0; width:30%; height:100%; background: linear-gradient(180deg, #2a221a 0%, #1a140e 100%); border-left: 2px solid #3a3026; box-shadow: inset 10px 0 15px rgba(0,0,0,.5); }
.scn-mrs-linde-presses .figure-left { position:absolute; bottom:18%; left:18%; width:18px; height:48px; background: linear-gradient(180deg, #2a1f14 0%, #140e08 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: mlp-pressure-a 3s ease-in-out infinite; }
.scn-mrs-linde-presses .figure-right { position:absolute; bottom:18%; right:18%; width:18px; height:48px; background: linear-gradient(180deg, #2a1f14 0%, #140e08 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform: scaleX(-1); transform-origin: bottom center; animation: mlp-pressure-b 3.5s ease-in-out infinite; }
.scn-mrs-linde-presses .table { position:absolute; bottom:20%; left:50%; width:40px; height:12px; transform:translateX(-50%); background: linear-gradient(180deg, #6a4a2a 0%, #4a3018 100%); border-radius: 6px; box-shadow: 0 4px 6px rgba(0,0,0,.4); }
.scn-mrs-linde-presses .candle { position:absolute; bottom:30%; left:50%; width:4px; height:20px; transform:translateX(-50%); background: linear-gradient(180deg, #d0b070 0%, #a08040 100%); border-radius: 2px; box-shadow: 0 0 6px 2px rgba(200,160,80,.4); animation: mlp-candle-flicker 1s ease-in-out infinite alternate; }
.scn-mrs-linde-presses .candleglow { position:absolute; bottom:28%; left:50%; width:80px; height:80px; transform:translate(-50%, -50%); background: radial-gradient(circle, rgba(200,160,80,.5) 0%, rgba(200,160,80,.15) 40%, transparent 70%); filter: blur(10px); animation: mlp-glow-flash 2s ease-in-out infinite alternate; }

@keyframes mlp-pressure-a { 0% { transform: rotate(-3deg) translateY(0) } 25% { transform: rotate(0deg) translateY(-3px) } 50% { transform: rotate(3deg) translateY(0) } 75% { transform: rotate(0deg) translateY(-2px) } 100% { transform: rotate(-3deg) translateY(0) } }
@keyframes mlp-pressure-b { 0% { transform: scaleX(-1) rotate(3deg) translateY(0) } 25% { transform: scaleX(-1) rotate(0deg) translateY(-3px) } 50% { transform: scaleX(-1) rotate(-3deg) translateY(0) } 75% { transform: scaleX(-1) rotate(0deg) translateY(-2px) } 100% { transform: scaleX(-1) rotate(3deg) translateY(0) } }
@keyframes mlp-candle-flicker { 0% { opacity:.8; box-shadow: 0 0 4px 1px rgba(200,160,80,.3) } 50% { opacity:1; box-shadow: 0 0 8px 3px rgba(200,160,80,.5) } 100% { opacity:.85; box-shadow: 0 0 5px 2px rgba(200,160,80,.4) } }
@keyframes mlp-glow-flash { 0% { opacity:.4; transform: translate(-50%, -50%) scale(1) } 50% { opacity:.7; transform: translate(-50%, -50%) scale(1.15) } 100% { opacity:.5; transform: translate(-50%, -50%) scale(1) } }

/* Scene: nora-asks-again (tense dim-interior) */
.scn-nora-asks-again {
  background:
    linear-gradient(180deg, #1e1a14 0%, #2e261e 40%, #3e3428 70%, #2e261e 100%),
    radial-gradient(ellipse at 40% 40%, #4a3c2e 0%, transparent 70%);
}
.scn-nora-asks-again .bg-room { position:absolute; inset:0; background: linear-gradient(135deg, #1c1812 0%, #302a20 50%, #1c1812 100%); }
.scn-nora-asks-again .doorframe { position:absolute; top:5%; left:25%; width:50%; height:95%; border: 3px solid #4a3a2a; border-bottom: none; background: rgba(0,0,0,.2); box-shadow: inset 0 0 20px rgba(0,0,0,.3); }
.scn-nora-asks-again .figure-helmer { position:absolute; bottom:18%; left:45%; width:22px; height:55px; background: linear-gradient(180deg, #2a1f14 0%, #140e08 100%); border-radius: 50% 50% 35% 35% / 60% 60% 40% 40%; transform-origin: bottom right; animation: nar-helmer-shift 5s ease-in-out infinite; }
.scn-nora-asks-again .figure-nora { position:absolute; bottom:18%; left:30%; width:18px; height:44px; background: linear-gradient(180deg, #3a2a1e 0%, #1a1008 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: nar-nora-plead 4s ease-in-out infinite; }
.scn-nora-asks-again .rug { position:absolute; bottom:0; left:20%; width:60%; height:15%; background: linear-gradient(180deg, #5a4030 0%, #3a2820 100%); border-radius: 50% 50% 0 0 / 100% 100% 0 0; box-shadow: 0 -4px 6px rgba(0,0,0,.3); }
.scn-nora-asks-again .fireplace { position:absolute; bottom:10%; left:70%; width:16%; height:40%; background: linear-gradient(180deg, #4a3020 0%, #2a1a10 100%); border-radius: 10% 10% 0 0; box-shadow: inset 0 0 15px #1a0e08; }
.scn-nora-asks-again .fireglow { position:absolute; bottom:12%; left:70%; width:12%; height:20%; background: radial-gradient(ellipse at 50% 100%, rgba(255,150,50,.4) 0%, rgba(255,100,20,.1) 50%, transparent 80%); filter: blur(6px); animation: nar-fireflicker 0.8s ease-in-out infinite alternate; }

@keyframes nar-helmer-shift { 0% { transform: rotate(-2deg) translateX(0) } 25% { transform: rotate(0deg) translateX(-3px) } 50% { transform: rotate(2deg) translateX(0) } 75% { transform: rotate(0deg) translateX(-2px) } 100% { transform: rotate(-2deg) translateX(0) } }
@keyframes nar-nora-plead { 0% { transform: rotate(5deg) translateY(0) } 30% { transform: rotate(-3deg) translateY(-4px) } 60% { transform: rotate(4deg) translateY(-2px) } 100% { transform: rotate(5deg) translateY(0) } }
@keyframes nar-fireflicker { 0% { opacity:.5; transform: scaleY(1) } 50% { opacity:1; transform: scaleY(1.1) } 100% { opacity:.6; transform: scaleY(1) } }

/* Scene: helmer-refuses (tense dim-interior) */
.scn-helmer-refuses {
  background:
    linear-gradient(180deg, #1a1610 0%, #2a221a 40%, #3a2e22 70%, #2a221a 100%),
    radial-gradient(ellipse at 60% 40%, #4a3a28 0%, transparent 70%);
}
.scn-helmer-refuses .bg-study { position:absolute; inset:0; background: linear-gradient(135deg, #16120c 0%, #2a241c 50%, #16120c 100%); }
.scn-helmer-refuses .bookshelf { position:absolute; top:5%; right:5%; width:20%; height:70%; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a10 100%); border-radius: 4px; box-shadow: inset 2px 0 8px rgba(0,0,0,.4); }
.scn-helmer-refuses .desk { position:absolute; bottom:18%; left:15%; width:45%; height:20%; background: linear-gradient(180deg, #6a4a2a 0%, #4a3018 100%); border-radius: 4px 4px 0 0; box-shadow: 0 4px 8px rgba(0,0,0,.5); transform: perspective(400px) rotateX(8deg); }
.scn-helmer-refuses .figure-helmer { position:absolute; bottom:14%; left:35%; width:22px; height:55px; background: linear-gradient(180deg, #2a1f14 0%, #140e08 100%); border-radius: 50% 50% 35% 35% / 60% 60% 40% 40%; transform-origin: bottom center; animation: hr-refuse-turn 6s ease-in-out infinite; }
.scn-helmer-refuses .letter { position:absolute; bottom:20%; left:25%; width:12px; height:16px; background: #b8a88a; border-radius: 2px; transform: rotate(-10deg); box-shadow: 0 2px 4px rgba(0,0,0,.3); animation: hr-letter-shake 2s ease-in-out infinite alternate; }
.scn-helmer-refuses .lamplight { position:absolute; bottom:25%; left:12%; width:40px; height:50px; background: radial-gradient(ellipse, rgba(200,170,100,.4) 0%, rgba(200,170,100,.1) 50%, transparent 80%); filter: blur(8px); animation: hr-light-pulse 5s ease-in-out infinite alternate; }
.scn-helmer-refuses .shadow { position:absolute; bottom:0; right:10%; width:30%; height:30%; background: rgba(0,0,0,.4); border-radius: 50% 50% 0 0 / 100% 100% 0 0; filter: blur(8px); animation: hr-shadow-grow 7s ease-in-out infinite alternate; }

@keyframes hr-refuse-turn { 0% { transform: rotate(0deg) } 20% { transform: rotate(-8deg) translateX(-5px) } 50% { transform: rotate(0deg) translateX(0) } 80% { transform: rotate(8deg) translateX(5px) } 100% { transform: rotate(0deg) } }
@keyframes hr-letter-shake { 0% { transform: rotate(-10deg) translateX(0) } 50% { transform: rotate(-5deg) translateX(2px) } 100% { transform: rotate(-10deg) translateX(0) } }
@keyframes hr-light-pulse { 0% { opacity:.4; transform: scale(1) } 50% { opacity:.8; transform: scale(1.1) } 100% { opacity:.5; transform: scale(1) } }
@keyframes hr-shadow-grow { 0% { transform: scaleX(1); opacity:.4 } 50% { transform: scaleX(1.15); opacity:.6 } 100% { transform: scaleX(1); opacity:.4 } }

/* Scene: letter-must-stay */
.scn-letter-must-stay {
  background: 
    linear-gradient(180deg, #2a2a2a 0%, #1a1a1a 40%, #0e0e0e 100%),
    radial-gradient(ellipse at 60% 60%, #5a4a2a 0%, transparent 70%);
}
.scn-letter-must-stay .bg {
  position: absolute; inset: 0; background: linear-gradient(180deg, rgba(80,70,40,0.4) 0%, transparent 100%);
  animation: lms1-bg 8s ease-in-out infinite alternate;
}
.scn-letter-must-stay .table {
  position: absolute; bottom: 10%; left: 50%; width: 70%; height: 20%; transform: translateX(-50%);
  background: linear-gradient(180deg, #3a3020 0%, #2a2010 100%); border-radius: 4% 4% 0 0;
  box-shadow: 0 8px 24px rgba(0,0,0,0.6); animation: lms1-table 12s ease-in-out infinite alternate;
}
.scn-letter-must-stay .letter {
  position: absolute; bottom: 25%; left: 50%; width: 12%; height: 8%; transform: translateX(-50%);
  background: #d4c4a0; border-radius: 4px; box-shadow: 0 4px 8px rgba(0,0,0,0.3);
  animation: lms1-letter 4s ease-in-out infinite;
}
.scn-letter-must-stay .figure-left {
  position: absolute; bottom: 10%; left: 15%; width: 12%; height: 35%;
  background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: lms1-figure 5s ease-in-out infinite alternate;
}
.scn-letter-must-stay .figure-right {
  position: absolute; bottom: 10%; right: 15%; width: 12%; height: 35%;
  background: linear-gradient(180deg, #2a3a2a 0%, #1a2a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: lms1-figure 6s ease-in-out infinite alternate reverse;
}
.scn-letter-must-stay .lamp {
  position: absolute; bottom: 30%; left: 50%; width: 6%; height: 12%; transform: translateX(-50%);
  background: radial-gradient(ellipse at 50% 20%, #d4a060 0%, #8a6030 100%);
  border-radius: 20% 20% 10% 10%; box-shadow: 0 0 30px 8px #a07030, 0 0 60px 20px rgba(160,112,48,0.4);
  animation: lms1-lamp 3s ease-in-out infinite alternate;
}
.scn-letter-must-stay .shadow {
  position: absolute; inset: 0; background: radial-gradient(ellipse at 50% 100%, rgba(0,0,0,0.6) 0%, transparent 60%);
  pointer-events: none; animation: lms1-shad 7s ease-in-out infinite alternate;
}
@keyframes lms1-bg { 0% { opacity: 0.7; } 50% { opacity: 1; } 100% { opacity: 0.6; } }
@keyframes lms1-table { 0% { transform: translateX(-50%) translateY(0); } 50% { transform: translateX(-50%) translateY(-2px); } 100% { transform: translateX(-50%) translateY(0); } }
@keyframes lms1-letter { 0%,100% { transform: translateX(-50%) rotate(0deg); } 50% { transform: translateX(-50%) rotate(2deg); } }
@keyframes lms1-figure { 0% { transform: translateY(0) rotate(-2deg); } 50% { transform: translateY(-3px) rotate(2deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes lms1-lamp { 0% { box-shadow: 0 0 20px 6px #a07030, 0 0 40px 12px rgba(160,112,48,0.3); } 50% { box-shadow: 0 0 40px 12px #c08040, 0 0 80px 24px rgba(192,128,64,0.5); } 100% { box-shadow: 0 0 25px 8px #a07030, 0 0 50px 16px rgba(160,112,48,0.35); } }
@keyframes lms1-shad { 0% { opacity: 0.8; } 50% { opacity: 1; } 100% { opacity: 0.7; } }

/* Scene: nora-brought-home */
.scn-nora-brought-home {
  background: 
    linear-gradient(180deg, #3a2a1a 0%, #2a1a0a 40%, #1a1008 100%),
    radial-gradient(ellipse at 70% 50%, #c09050 0%, transparent 70%);
}
.scn-nora-brought-home .bg {
  position: absolute; inset: 0; background: linear-gradient(180deg, rgba(60,40,20,0.5) 0%, transparent 100%);
  animation: nbhh1-bg 10s ease-in-out infinite alternate;
}
.scn-nora-brought-home .doorway {
  position: absolute; left: 20%; right: 30%; top: 10%; bottom: 30%;
  background: linear-gradient(180deg, #2a1a0a 0%, #1a1008 100%);
  border-radius: 30% 30% 0 0; box-shadow: inset 0 0 40px rgba(0,0,0,0.6);
  animation: nbhh1-door 15s ease-in-out infinite alternate;
}
.scn-nora-brought-home .figure-entering {
  position: absolute; bottom: 10%; left: 45%; width: 10%; height: 30%;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: nbhh1-enter 4s ease-in-out infinite;
}
.scn-nora-brought-home .figure-standing {
  position: absolute; bottom: 10%; right: 35%; width: 10%; height: 32%;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a1008 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: nbhh1-stand 3s ease-in-out infinite alternate;
}
.scn-nora-brought-home .warm-glow {
  position: absolute; bottom: 20%; left: 30%; width: 40%; height: 60%;
  background: radial-gradient(ellipse at 50% 80%, rgba(200,150,80,0.4) 0%, transparent 60%);
  animation: nbhh1-glow 5s ease-in-out infinite alternate;
}
.scn-nora-brought-home .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #2a1a0a 0%, #1a1008 100%);
  border-radius: 20% 20% 0 0; box-shadow: inset 0 8px 20px rgba(0,0,0,0.5);
  animation: nbhh1-floor 8s ease-in-out infinite alternate;
}
@keyframes nbhh1-bg { 0% { opacity: 0.8; } 50% { opacity: 1; } 100% { opacity: 0.7; } }
@keyframes nbhh1-door { 0% { transform: scaleY(1); } 50% { transform: scaleY(0.98); } 100% { transform: scaleY(1); } }
@keyframes nbhh1-enter { 0% { transform: translateX(-10px) rotate(-2deg); } 25% { transform: translateX(-5px) rotate(0deg); } 50% { transform: translateX(0) rotate(2deg); } 75% { transform: translateX(-5px) rotate(0deg); } 100% { transform: translateX(-10px) rotate(-2deg); } }
@keyframes nbhh1-stand { 0% { transform: translateY(0); } 50% { transform: translateY(-3px); } 100% { transform: translateY(0); } }
@keyframes nbhh1-glow { 0% { opacity: 0.6; transform: scale(1); } 50% { opacity: 1; transform: scale(1.05); } 100% { opacity: 0.7; transform: scale(1); } }
@keyframes nbhh1-floor { 0% { box-shadow: inset 0 8px 20px rgba(0,0,0,0.5); } 50% { box-shadow: inset 0 12px 30px rgba(0,0,0,0.7); } 100% { box-shadow: inset 0 8px 20px rgba(0,0,0,0.5); } }

/* Scene: mrs-linde-warns */
.scn-mrs-linde-warns {
  background: 
    linear-gradient(180deg, #1a1410 0%, #0e0a06 100%),
    radial-gradient(ellipse at 50% 60%, #4a2a18 0%, transparent 70%);
}
.scn-mrs-linde-warns .bg {
  position: absolute; inset: 0; background: linear-gradient(180deg, rgba(20,15,10,0.6) 0%, transparent 100%);
  animation: mlw1-bg 9s ease-in-out infinite alternate;
}
.scn-mrs-linde-warns .candle {
  position: absolute; bottom: 35%; left: 50%; width: 4%; height: 15%; transform: translateX(-50%);
  background: linear-gradient(180deg, #d4c0a0 0%, #8a7050 100%); border-radius: 20% 20% 10% 10%;
  box-shadow: 0 0 30px 8px #b08030; animation: mlw1-candle 3s ease-in-out infinite alternate;
}
.scn-mrs-linde-warns .candle-glow {
  position: absolute; bottom: 30%; left: 40%; width: 20%; height: 40%;
  background: radial-gradient(ellipse at 50% 50%, rgba(200,140,60,0.5) 0%, transparent 70%);
  animation: mlw1-glow 4s ease-in-out infinite alternate;
}
.scn-mrs-linde-warns .figure-left {
  position: absolute; bottom: 10%; left: 20%; width: 12%; height: 30%;
  background: linear-gradient(180deg, #2a2018 0%, #1a1410 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: mlw1-figure 5s ease-in-out infinite alternate;
}
.scn-mrs-linde-warns .figure-right {
  position: absolute; bottom: 10%; right: 20%; width: 12%; height: 30%;
  background: linear-gradient(180deg, #1a1810 0%, #0e0c06 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: mlw1-figure 6s ease-in-out infinite alternate reverse;
}
.scn-mrs-linde-warns .table {
  position: absolute; bottom: 10%; left: 30%; right: 30%; height: 15%;
  background: linear-gradient(180deg, #3a2a1a 0%, #2a1a0a 100%);
  border-radius: 10% 10% 0 0; box-shadow: 0 4px 12px rgba(0,0,0,0.5);
  animation: mlw1-table 8s ease-in-out infinite alternate;
}
@keyframes mlw1-bg { 0% { opacity: 0.8; } 50% { opacity: 1; } 100% { opacity: 0.6; } }
@keyframes mlw1-candle { 0% { transform: translateX(-50%) scaleY(1); box-shadow: 0 0 20px 6px #b08030; } 50% { transform: translateX(-50%) scaleY(1.02); box-shadow: 0 0 40px 12px #c09040; } 100% { transform: translateX(-50%) scaleY(1); box-shadow: 0 0 25px 8px #b08030; } }
@keyframes mlw1-glow { 0% { opacity: 0.4; transform: scale(0.95); } 50% { opacity: 0.8; transform: scale(1.1); } 100% { opacity: 0.5; transform: scale(1); } }
@keyframes mlw1-figure { 0% { transform: translateY(0) rotate(-2deg); } 50% { transform: translateY(-2px) rotate(2deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes mlw1-table { 0% { transform: translateY(0); } 50% { transform: translateY(-1px); } 100% { transform: translateY(0); } }

/* Scene: helmer-romantic */
.scn-helmer-romantic {
  background: 
    linear-gradient(180deg, #3a2010 0%, #2a1808 50%, #1a1008 100%),
    radial-gradient(ellipse at 50% 60%, #d09050 0%, transparent 70%);
}
.scn-helmer-romantic .bg {
  position: absolute; inset: 0; background: linear-gradient(180deg, rgba(60,30,15,0.5) 0%, transparent 100%);
  animation: hrro1-bg 12s ease-in-out infinite alternate;
}
.scn-helmer-romantic .bed {
  position: absolute; bottom: 10%; left: 20%; right: 20%; height: 35%;
  background: linear-gradient(180deg, #5a4028 0%, #3a2818 100%);
  border-radius: 30% 30% 0 0; box-shadow: inset 0 -10px 30px rgba(0,0,0,0.6);
  animation: hrro1-bed 15s ease-in-out infinite alternate;
}
.scn-helmer-romantic .figure-left {
  position: absolute; bottom: 15%; left: 30%; width: 10%; height: 20%;
  background: linear-gradient(180deg, #4a3020 0%, #2a1a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: hrro1-fig 4s ease-in-out infinite alternate;
}
.scn-helmer-romantic .figure-right {
  position: absolute; bottom: 15%; right: 30%; width: 10%; height: 20%;
  background: linear-gradient(180deg, #4a3020 0%, #2a1a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: hrro1-fig 5s ease-in-out infinite alternate reverse;
}
.scn-helmer-romantic .candle {
  position: absolute; bottom: 25%; left: 50%; width: 3%; height: 12%; transform: translateX(-50%);
  background: linear-gradient(180deg, #d4c0a0 0%, #8a7050 100%); border-radius: 20% 20% 10% 10%;
  box-shadow: 0 0 25px 6px #c08040; animation: hrro1-candle 3s ease-in-out infinite alternate;
}
.scn-helmer-romantic .warm-light {
  position: absolute; top: 10%; left: 20%; right: 20%; bottom: 20%;
  background: radial-gradient(ellipse at 50% 80%, rgba(200,120,50,0.3) 0%, transparent 70%);
  animation: hrro1-light 6s ease-in-out infinite alternate;
}
@keyframes hrro1-bg { 0% { opacity: 0.7; } 50% { opacity: 1; } 100% { opacity: 0.6; } }
@keyframes hrro1-bed { 0% { transform: scaleY(1); } 50% { transform: scaleY(0.98); } 100% { transform: scaleY(1); } }
@keyframes hrro1-fig { 0% { transform: translateY(0) rotate(-2deg); } 50% { transform: translateY(-3px) rotate(3deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes hrro1-candle { 0% { transform: translateX(-50%) scaleY(1); box-shadow: 0 0 20px 6px #c08040; } 50% { transform: translateX(-50%) scaleY(1.03); box-shadow: 0 0 35px 10px #d09050; } 100% { transform: translateX(-50%) scaleY(1); box-shadow: 0 0 25px 8px #c08040; } }
@keyframes hrro1-light { 0% { opacity: 0.3; } 50% { opacity: 0.6; } 100% { opacity: 0.4; } }

.scn-helmer-insists { background: linear-gradient(135deg, #2a1f1a 0%, #1a1210 50%, #0f0a08 100%), radial-gradient(ellipse at 60% 30%, #4a3a30 0%, transparent 60%); }
.scn-helmer-insists .bg { position:absolute; inset:0; background: linear-gradient(180deg, #2a1f1a 0%, #1a1210 100%); }
.scn-helmer-insists .wall { position:absolute; left:0; right:0; top:0; bottom:40%; background: linear-gradient(180deg, #3a2a20 0%, #2a1f1a 100%); box-shadow: inset 0 0 40px #0f0a08; }
.scn-helmer-insists .desk { position:absolute; bottom:15%; left:28%; width:44%; height:12%; background: linear-gradient(160deg, #5a4030 0%, #3a2a20 100%); border-radius: 4% 4% 8% 8%; box-shadow: 0 8px 20px rgba(0,0,0,0.6); }
.scn-helmer-insists .lamp { position:absolute; bottom:32%; left:62%; width:12px; height:20px; background: radial-gradient(circle, #d4a060 0%, #b07030 60%); border-radius: 50% 50% 10% 10%; box-shadow: 0 0 30px 10px #b07030, 0 0 60px 20px rgba(176,112,48,0.3); animation: hi-lamp 3s ease-in-out infinite alternate; }
.scn-helmer-insists .figure-standing { position:absolute; bottom:28%; left:45%; width:24px; height:56px; background: linear-gradient(180deg, #1a1210 0%, #0f0a08 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: hi-stand 5s ease-in-out infinite; }
.scn-helmer-insists .figure-seated { position:absolute; bottom:22%; left:30%; width:30px; height:38px; background: linear-gradient(180deg, #1a1210 0%, #0f0a08 100%); border-radius: 50% 50% 50% 50% / 40% 40% 60% 60%; transform-origin: bottom center; animation: hi-seat 6s ease-in-out infinite; }
.scn-helmer-insists .shadow { position:absolute; bottom:15%; left:40%; width:20%; height:8%; background: radial-gradient(ellipse, rgba(0,0,0,0.6) 0%, transparent 70%); animation: hi-shadow 8s ease-in-out infinite alternate; }
.scn-helmer-insists .letter { position:absolute; bottom:18%; left:50%; width:16px; height:22px; background: linear-gradient(180deg, #e8d8b0 0%, #c0b090 100%); border-radius: 2px; box-shadow: 0 2px 6px rgba(0,0,0,0.4); animation: hi-letter 9s ease-in-out infinite; }

@keyframes hi-lamp { 0% { box-shadow: 0 0 20px 5px #b07030, 0 0 40px 10px rgba(176,112,48,0.2); opacity:0.9; } 50% { box-shadow: 0 0 40px 12px #d4a060, 0 0 80px 25px rgba(212,160,96,0.4); opacity:1; } 100% { box-shadow: 0 0 25px 6px #b07030, 0 0 50px 15px rgba(176,112,48,0.25); opacity:0.85; } }
@keyframes hi-stand { 0%,100% { transform: translateY(0) rotate(0deg); } 30% { transform: translateY(-1px) rotate(-0.5deg); } 60% { transform: translateY(0) rotate(0.5deg); } }
@keyframes hi-seat { 0%,100% { transform: translateY(0) rotate(0deg); } 40% { transform: translateY(1px) rotate(1deg); } 70% { transform: translateY(-1px) rotate(-1deg); } }
@keyframes hi-shadow { 0% { opacity:0.5; transform: scaleX(0.95); } 100% { opacity:0.8; transform: scaleX(1.05); } }
@keyframes hi-letter { 0%,100% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-3px) rotate(2deg); } }

.scn-helmer-reveals-personal-grudge { background: linear-gradient(180deg, #1a1410 0%, #0f0a08 50%, #080504 100%), radial-gradient(ellipse at 50% 40%, #3a2a20 0%, transparent 70%); }
.scn-helmer-reveals-personal-grudge .bg-close { position:absolute; inset:0; background: linear-gradient(135deg, #1a1410 0%, #0f0a08 100%); }
.scn-helmer-reveals-personal-grudge .desk-close { position:absolute; bottom:10%; left:10%; width:80%; height:30%; background: linear-gradient(160deg, #5a4030 0%, #3a2a20 100%); border-radius: 4% 4% 8% 8%; box-shadow: 0 8px 30px rgba(0,0,0,0.7); }
.scn-helmer-reveals-personal-grudge .letter-close { position:absolute; bottom:25%; left:45%; width:40px; height:55px; background: linear-gradient(180deg, #e8d8b0 0%, #c0b090 100%); border-radius: 2px; transform: rotate(-5deg); box-shadow: 0 4px 12px rgba(0,0,0,0.5); animation: hrg-letter 7s ease-in-out infinite; }
.scn-helmer-reveals-personal-grudge .hand { position:absolute; bottom:28%; left:52%; width:20px; height:30px; background: linear-gradient(180deg, #2a1f1a 0%, #1a1210 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: hrg-hand 4s ease-in-out infinite; }
.scn-helmer-reveals-personal-grudge .inkwell { position:absolute; bottom:20%; left:30%; width:18px; height:24px; background: radial-gradient(circle at 50% 30%, #3a2a20 0%, #1a1210 100%); border-radius: 50% 50% 30% 30% / 40% 40% 60% 60%; box-shadow: 0 4px 10px rgba(0,0,0,0.5); animation: hrg-ink 10s ease-in-out infinite; }
.scn-helmer-reveals-personal-grudge .shadow-close { position:absolute; bottom:12%; left:20%; width:60%; height:15%; background: radial-gradient(ellipse, rgba(0,0,0,0.7) 0%, transparent 70%); animation: hrg-shadow 8s linear infinite alternate; }
.scn-helmer-reveals-personal-grudge .paper-stack { position:absolute; bottom:22%; left:20%; width:30px; height:12px; background: linear-gradient(180deg, #e0d0b0 0%, #c0b090 100%); border-radius: 2px; transform: rotate(3deg); box-shadow: 0 2px 6px rgba(0,0,0,0.3); animation: hrg-paper 6s ease-in-out infinite; }

@keyframes hrg-letter { 0%,100% { transform: rotate(-5deg) translateY(0); } 50% { transform: rotate(-3deg) translateY(-2px); } }
@keyframes hrg-hand { 0%,100% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(1px) rotate(3deg); } }
@keyframes hrg-ink { 0%,100% { transform: scaleY(1); } 50% { transform: scaleY(0.95); } }
@keyframes hrg-shadow { 0% { opacity:0.6; } 50% { opacity:0.9; } 100% { opacity:0.5; } }
@keyframes hrg-paper { 0%,100% { transform: rotate(3deg) translateY(0); } 50% { transform: rotate(1deg) translateY(-1px); } }

.scn-helmer-sends-dismissal-letter { background: linear-gradient(180deg, #1a1210 0%, #0f0a08 40%, #080504 100%), radial-gradient(ellipse at 30% 50%, #2a1f1a 0%, transparent 70%); }
.scn-helmer-sends-dismissal-letter .bg-hall { position:absolute; inset:0; background: linear-gradient(90deg, #1a1210 0%, #0f0a08 50%, #1a1210 100%); }
.scn-helmer-sends-dismissal-letter .door { position:absolute; right:0; top:5%; width:50%; height:95%; background: linear-gradient(180deg, #3a2a20 0%, #2a1f1a 100%); border-left: 4px solid #1a1210; box-shadow: -10px 0 30px rgba(0,0,0,0.6); animation: hsl-door 10s ease-in-out infinite alternate; }
.scn-helmer-sends-dismissal-letter .shadow-hall { position:absolute; bottom:0; left:0; right:0; height:20%; background: linear-gradient(180deg, transparent 0%, rgba(0,0,0,0.5) 100%); animation: hsl-shadow 8s ease-in-out infinite alternate; }
.scn-helmer-sends-dismissal-letter .figure-helmer { position:absolute; bottom:12%; left:15%; width:26px; height:60px; background: linear-gradient(180deg, #1a1210 0%, #0f0a08 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: hsl-helmer 5s ease-in-out infinite; }
.scn-helmer-sends-dismissal-letter .figure-servant { position:absolute; bottom:10%; left:40%; width:22px; height:52px; background: linear-gradient(180deg, #1a1210 0%, #0f0a08 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: hsl-servant 6s ease-in-out infinite; }
.scn-helmer-sends-dismissal-letter .letter-hand { position:absolute; bottom:16%; left:20%; width:14px; height:20px; background: linear-gradient(180deg, #e8d8b0 0%, #c0b090 100%); border-radius: 2px; transform: rotate(-10deg); box-shadow: 0 2px 8px rgba(0,0,0,0.5); animation: hsl-letter 4s ease-in-out infinite; }
.scn-helmer-sends-dismissal-letter .hall-panel { position:absolute; bottom:25%; left:55%; width:30%; height:60%; background: linear-gradient(180deg, #2a1f1a 0%, #1a1210 100%); border-radius: 2px; box-shadow: inset 0 0 20px rgba(0,0,0,0.5); animation: hsl-panel 12s linear infinite alternate; }
.scn-helmer-sends-dismissal-letter .carpet { position:absolute; bottom:0; left:5%; width:90%; height:12%; background: linear-gradient(90deg, #2a1f1a, #3a2a20, #2a1f1a); border-radius: 30% 30% 0 0 / 100% 100% 0 0; animation: hsl-carpet 7s ease-in-out infinite; }

@keyframes hsl-door { 0% { transform: translateX(0); } 100% { transform: translateX(-5px); } }
@keyframes hsl-shadow { 0% { opacity:0.3; } 100% { opacity:0.7; } }
@keyframes hsl-helmer { 0%,100% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-1px) rotate(1deg); } }
@keyframes hsl-servant { 0%,100% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(1px) rotate(-1deg); } }
@keyframes hsl-letter { 0%,100% { transform: rotate(-10deg) translateY(0); } 50% { transform: rotate(-8deg) translateY(-2px); } }
@keyframes hsl-panel { 0% { opacity:0.6; } 100% { opacity:0.9; } }
@keyframes hsl-carpet { 0%,100% { transform: scaleX(1); } 50% { transform: scaleX(1.02); } }

.scn-helmer-promises-to-take-all { background: linear-gradient(180deg, #2a1f1a 0%, #1a1210 40%, #0f0a08 100%), radial-gradient(ellipse at 50% 60%, #5a4030 0%, transparent 70%); }
.scn-helmer-promises-to-take-all .bg-warm { position:absolute; inset:0; background: linear-gradient(135deg, #2a1f1a, #1a1210); }
.scn-helmer-promises-to-take-all .glow { position:absolute; bottom:20%; left:35%; width:30%; height:50%; background: radial-gradient(ellipse, #b07030 0%, transparent 70%); animation: hpta-glow 4s ease-in-out infinite alternate; }
.scn-helmer-promises-to-take-all .figure-nora { position:absolute; bottom:15%; left:35%; width:24px; height:48px; background: linear-gradient(180deg, #1a1210 0%, #0f0a08 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: hpta-nora 6s ease-in-out infinite; }
.scn-helmer-promises-to-take-all .figure-helmer-embrace { position:absolute; bottom:18%; left:45%; width:28px; height:56px; background: linear-gradient(180deg, #1a1210 0%, #0f0a08 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: hpta-helmer 7s ease-in-out infinite; }
.scn-helmer-promises-to-take-all .arms { position:absolute; bottom:20%; left:38%; width:30px; height:14px; background: linear-gradient(180deg, #1a1210 0%, #0f0a08 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform: rotate(-10deg); animation: hpta-arms 5s ease-in-out infinite; }
.scn-helmer-promises-to-take-all .warm-light { position:absolute; bottom:15%; left:30%; width:40%; height:40%; background: radial-gradient(ellipse, #d4a060 0%, transparent 70%); opacity:0.3; animation: hpta-light 8s ease-in-out infinite alternate; }
.scn-helmer-promises-to-take-all .shadow-intimate { position:absolute; bottom:10%; left:20%; width:60%; height:20%; background: radial-gradient(ellipse, rgba(0,0,0,0.7) 0%, transparent 80%); animation: hpta-shadow 10s ease-in-out infinite alternate; }

@keyframes hpta-glow { 0% { opacity:0.5; transform: scale(0.95); } 50% { opacity:0.8; transform: scale(1.05); } 100% { opacity:0.6; transform: scale(1); } }
@keyframes hpta-nora { 0%,100% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-1px) rotate(2deg); } }
@keyframes hpta-helmer { 0%,100% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(1px) rotate(-1deg); } }
@keyframes hpta-arms { 0%,100% { transform: rotate(-10deg) scaleX(1); } 50% { transform: rotate(-5deg) scaleX(0.95); } }
@keyframes hpta-light { 0% { opacity:0.2; } 100% { opacity:0.4; } }
@keyframes hpta-shadow { 0% { opacity:0.5; } 100% { opacity:0.8; } }

.scn-plan-to-tell-later {
  background:
    radial-gradient(ellipse at 50% 100%, #4a2a1a 0%, transparent 60%),
    linear-gradient(180deg, #1a1a1a 0%, #2a1a0a 40%, #3a2a1a 70%, #4a3a2a 100%);
}
.scn-plan-to-tell-later .pttl-wall {
  position: absolute; inset: 0; background: linear-gradient(180deg, #2a1a0a 0%, #1a0a00 100%); opacity: 0.6;
  animation: pttl-wall 12s ease-in-out infinite alternate;
}
.scn-plan-to-tell-later .pttl-hearth {
  position: absolute; bottom: 0; left: 20%; width: 60%; height: 20%;
  background: linear-gradient(180deg, #3a1a0a 0%, #1a0a00 100%);
  border-radius: 30% 30% 0 0 / 100% 100% 0 0; box-shadow: inset 0 10px 30px rgba(0,0,0,.6);
}
.scn-plan-to-tell-later .pttl-fire {
  position: absolute; bottom: 12%; left: 40%; width: 20%; height: 25%;
  background: radial-gradient(ellipse at 50% 80%, #ff7a2a 0%, #d05a1a 30%, #8a3a0a 60%, transparent 100%);
  border-radius: 50%; filter: blur(3px);
  animation: pttl-fire 3s ease-in-out infinite alternate;
}
.scn-plan-to-tell-later .pttl-armchair {
  position: absolute; bottom: 8%; left: 45%; width: 28%; height: 30%;
  background: linear-gradient(135deg, #4a2a1a 0%, #2a1000 100%);
  border-radius: 20% 20% 10% 10% / 30% 30% 20% 20%; box-shadow: 5px 5px 15px rgba(0,0,0,.5);
  animation: pttl-chair 8s ease-in-out infinite alternate;
}
.scn-plan-to-tell-later .pttl-figure {
  position: absolute; bottom: 18%; left: 48%; width: 10%; height: 25%;
  background: linear-gradient(180deg, #1a0a00 0%, #0a0000 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center;
  animation: pttl-figure 6s ease-in-out infinite;
}
.scn-plan-to-tell-later .pttl-skirt {
  position: absolute; bottom: 10%; left: 46%; width: 16%; height: 12%;
  background: radial-gradient(ellipse at 50% 0%, #6a3a2a 0%, #4a2010 100%);
  border-radius: 50% 50% 0 0; transform-origin: top center;
  animation: pttl-skirt 6s ease-in-out infinite alternate;
}
.scn-plan-to-tell-later .pttl-window {
  position: absolute; top: 10%; right: 10%; width: 25%; height: 35%;
  background: linear-gradient(180deg, #0a1a2a 0%, #05101a 100%);
  border: 3px solid #2a1a0a; border-radius: 5px; box-shadow: inset 0 0 20px rgba(0,20,30,.5);
  animation: pttl-window 20s ease-in-out infinite alternate;
}
.scn-plan-to-tell-later .pttl-moon {
  position: absolute; top: 8%; right: 18%; width: 6%; height: 6%;
  background: radial-gradient(circle, #c8c8a0 0%, #a0a080 80%, transparent 100%);
  border-radius: 50%; filter: blur(1px);
  animation: pttl-moon 30s linear infinite alternate;
}
@keyframes pttl-wall { 0% { opacity: 0.5; } 50% { opacity: 0.7; } 100% { opacity: 0.6; } }
@keyframes pttl-fire { 0% { transform: scaleY(1); opacity: 0.8; } 50% { transform: scaleY(1.15); opacity: 1; } 100% { transform: scaleY(0.9); opacity: 0.7; } }
@keyframes pttl-chair { 0% { transform: translateY(0); } 50% { transform: translateY(-2px); } 100% { transform: translateY(0); } }
@keyframes pttl-figure { 0% { transform: translateX(0) rotate(-2deg); } 25% { transform: translateX(3px) rotate(0deg); } 50% { transform: translateX(0) rotate(2deg); } 75% { transform: translateX(-3px) rotate(0deg); } 100% { transform: translateX(0) rotate(-2deg); } }
@keyframes pttl-skirt { 0% { transform: rotate(-2deg) scaleY(1); } 50% { transform: rotate(2deg) scaleY(1.05); } 100% { transform: rotate(-2deg) scaleY(1); } }
@keyframes pttl-window { 0% { box-shadow: inset 0 0 20px rgba(0,20,30,.3); } 50% { box-shadow: inset 0 0 30px rgba(0,20,30,.6); } 100% { box-shadow: inset 0 0 20px rgba(0,20,30,.3); } }
@keyframes pttl-moon { 0% { transform: translateX(-5px); } 100% { transform: translateX(5px); } }

.scn-painful-savings {
  background:
    radial-gradient(ellipse at 50% 80%, #2a1000 0%, #1a0000 60%, transparent 100%),
    linear-gradient(180deg, #0a0a0a 0%, #1a0a00 40%, #2a1000 100%);
}
.scn-painful-savings .ps-desk {
  position: absolute; bottom: 0; left: 5%; width: 90%; height: 35%;
  background: linear-gradient(180deg, #3a2010 0%, #1a0a00 100%);
  border-radius: 5% 5% 0 0 / 20% 20% 0 0; box-shadow: inset 0 5px 15px rgba(0,0,0,.7);
  animation: ps-desk 20s ease-in-out infinite alternate;
}
.scn-painful-savings .ps-lamp {
  position: absolute; bottom: 30%; left: 40%; width: 10%; height: 20%;
  background: linear-gradient(180deg, #8a4a1a 0%, #4a2000 100%);
  border-radius: 10% 10% 0 0 / 30% 30% 0 0; box-shadow: 0 -5px 10px rgba(200,100,20,.4);
  animation: ps-lamp 4s ease-in-out infinite alternate;
}
.scn-painful-savings .ps-hand {
  position: absolute; bottom: 22%; left: 45%; width: 12%; height: 15%;
  background: linear-gradient(180deg, #6a3a20 0%, #3a1a0a 100%);
  border-radius: 30% 30% 20% 20%; transform-origin: bottom center;
  animation: ps-hand 3s ease-in-out infinite;
}
.scn-painful-savings .ps-coins {
  position: absolute; bottom: 12%; left: 48%; width: 6%; height: 8%;
  background: radial-gradient(ellipse, #c8a060 0%, #a08040 50%, #604020 100%);
  border-radius: 50%; box-shadow: 0 0 8px #ffc070;
  animation: ps-coins 5s ease-in-out infinite alternate;
}
.scn-painful-savings .ps-shadow {
  position: absolute; bottom: 0; left: 0; width: 100%; height: 50%;
  background: linear-gradient(180deg, transparent 0%, rgba(0,0,0,.6) 100%);
  animation: ps-shadow 8s ease-in-out infinite alternate;
}
.scn-painful-savings .ps-letter {
  position: absolute; bottom: 18%; left: 55%; width: 15%; height: 10%;
  background: linear-gradient(135deg, #e8e0c0 0%, #c0b090 100%);
  border-radius: 5%; box-shadow: 2px 2px 5px rgba(0,0,0,.3);
  animation: ps-letter 12s ease-in-out infinite;
}
@keyframes ps-desk { 0% { opacity: 0.8; } 50% { opacity: 1; } 100% { opacity: 0.8; } }
@keyframes ps-lamp { 0% { transform: rotate(-2deg); } 50% { transform: rotate(2deg); } 100% { transform: rotate(-2deg); } }
@keyframes ps-hand { 0% { transform: translateY(0) scaleY(1); } 25% { transform: translateY(-2px) scaleY(1.05); } 50% { transform: translateY(0) scaleY(1); } 75% { transform: translateY(-2px) scaleY(1.05); } 100% { transform: translateY(0) scaleY(1); } }
@keyframes ps-coins { 0% { transform: scale(0.8) rotate(-10deg); opacity: 0.7; } 50% { transform: scale(1) rotate(0deg); opacity: 1; } 100% { transform: scale(0.8) rotate(10deg); opacity: 0.7; } }
@keyframes ps-shadow { 0% { opacity: 0.4; } 100% { opacity: 0.8; } }
@keyframes ps-letter { 0% { transform: translateX(0); } 50% { transform: translateX(3px); } 100% { transform: translateX(0); } }

.scn-imaginary-rich-admirer {
  background:
    radial-gradient(ellipse at 50% 50%, #4a2a0a 0%, #2a1000 60%, #0a0000 100%),
    linear-gradient(180deg, #1a0a00 0%, #2a1a00 50%, #1a0a00 100%);
}
.scn-imaginary-rich-admirer .ira-bg {
  position: absolute; inset: 0; background: linear-gradient(135deg, #3a200a, #1a0a00); opacity: 0.5;
  animation: ira-bg 15s ease-in-out infinite alternate;
}
.scn-imaginary-rich-admirer .ira-moneybag {
  position: absolute; bottom: 15%; left: 30%; width: 30%; height: 25%;
  background: radial-gradient(ellipse at 40% 40%, #c08040 0%, #8a5a20 60%, #4a2a00 100%);
  border-radius: 30% 30% 20% 20% / 50% 50% 40% 40%; box-shadow: 0 10px 20px rgba(0,0,0,.5);
  animation: ira-moneybag 6s ease-in-out infinite alternate;
}
.scn-imaginary-rich-admirer .ira-gentleman {
  position: absolute; bottom: 10%; right: 20%; width: 20%; height: 40%;
  background: linear-gradient(180deg, #1a1a1a 0%, #0a0a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center;
  animation: ira-gentleman 4s ease-in-out infinite;
}
.scn-imaginary-rich-admirer .ira-cane {
  position: absolute; bottom: 15%; right: 16%; width: 3%; height: 35%;
  background: linear-gradient(180deg, #2a1a0a 0%, #0a0500 100%);
  border-radius: 20%; transform: rotate(5deg);
  animation: ira-cane 4s ease-in-out infinite alternate;
}
.scn-imaginary-rich-admirer .ira-glint {
  position: absolute; top: 45%; left: 55%; width: 5%; height: 5%;
  background: radial-gradient(circle, #ffe080 0%, transparent 60%);
  border-radius: 50%; filter: blur(3px);
  animation: ira-glint 2s ease-in-out infinite alternate;
}
.scn-imaginary-rich-admirer .ira-heart {
  position: absolute; top: 30%; left: 35%; width: 8%; height: 8%;
  background: radial-gradient(ellipse, #c8553d 0%, #8a2a1a 60%, transparent 100%);
  border-radius: 50% 50% 0 0; transform: rotate(45deg);
  animation: ira-heart 3s ease-in-out infinite;
}
@keyframes ira-bg { 0% { opacity: 0.4; } 50% { opacity: 0.7; } 100% { opacity: 0.4; } }
@keyframes ira-moneybag { 0% { transform: scale(1) translateY(0); } 50% { transform: scale(1.05) translateY(-5px); } 100% { transform: scale(1) translateY(0); } }
@keyframes ira-gentleman { 0% { transform: translateX(0) rotate(-3deg); } 25% { transform: translateX(5px) rotate(0deg); } 50% { transform: translateX(0) rotate(3deg); } 75% { transform: translateX(-5px) rotate(0deg); } 100% { transform: translateX(0) rotate(-3deg); } }
@keyframes ira-cane { 0% { transform: rotate(3deg); } 50% { transform: rotate(7deg); } 100% { transform: rotate(3deg); } }
@keyframes ira-glint { 0% { opacity: 0; transform: scale(0.5); } 50% { opacity: 1; transform: scale(1.2); } 100% { opacity: 0; transform: scale(0.5); } }
@keyframes ira-heart { 0% { transform: rotate(45deg) scale(1); } 50% { transform: rotate(45deg) scale(1.2); } 100% { transform: rotate(45deg) scale(1); } }

.scn-doorbell-disturbance {
  background:
    radial-gradient(ellipse at 50% 60%, #3a1a0a 0%, #1a0a00 70%, transparent 100%),
    linear-gradient(180deg, #0a0500 0%, #1a0a00 30%, #2a1500 70%, #1a0a00 100%);
}
.scn-doorbell-disturbance .dd-hall {
  position: absolute; inset: 0; background: linear-gradient(90deg, transparent 0%, #2a1500 30%, #3a2010 70%, transparent 100%); opacity: 0.3;
  animation: dd-hall 20s ease-in-out infinite alternate;
}
.scn-doorbell-disturbance .dd-door {
  position: absolute; left: 35%; bottom: 0; width: 30%; height: 80%;
  background: linear-gradient(180deg, #4a2a10 0%, #2a1000 100%);
  border-radius: 5% 5% 0 0 / 10% 10% 0 0; box-shadow: inset 0 0 20px rgba(0,0,0,.5);
  animation: dd-door 8s ease-in-out infinite alternate;
}
.scn-doorbell-disturbance .dd-light {
  position: absolute; left: 40%; bottom: 20%; width: 20%; height: 30%;
  background: radial-gradient(ellipse at 50% 100%, #ffc860 0%, transparent 70%);
  border-radius: 0 0 40% 40%; opacity: 0.6;
  animation: dd-light 4s ease-in-out infinite alternate;
}
.scn-doorbell-disturbance .dd-figure {
  position: absolute; left: 45%; bottom: 10%; width: 14%; height: 30%;
  background: linear-gradient(180deg, #1a0a00 0%, #0a0000 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center;
  animation: dd-figure 6s ease-in-out infinite;
}
.scn-doorbell-disturbance .dd-bell {
  position: absolute; top: 60%; left: 40%; width: 6%; height: 6%;
  background: radial-gradient(circle, #e0a050 0%, #a06020 80%, transparent 100%);
  border-radius: 50%; box-shadow: 0 0 10px #d08040;
  animation: dd-bell 2s ease-in-out infinite alternate;
}
.scn-doorbell-disturbance .dd-shadow {
  position: absolute; bottom: 0; left: 0; width: 100%; height: 50%;
  background: linear-gradient(180deg, transparent 0%, rgba(0,0,0,.6) 100%);
  animation: dd-shadow 12s ease-in-out infinite alternate;
}
@keyframes dd-hall { 0% { opacity: 0.2; } 100% { opacity: 0.5; } }
@keyframes dd-door { 0% { transform: translateX(0); } 50% { transform: translateX(-3px); } 100% { transform: translateX(0); } }
@keyframes dd-light { 0% { opacity: 0.4; transform: scaleY(0.9); } 50% { opacity: 0.8; transform: scaleY(1.1); } 100% { opacity: 0.4; transform: scaleY(0.9); } }
@keyframes dd-figure { 0% { transform: translateX(0) rotate(-2deg); } 25% { transform: translateX(4px) rotate(1deg); } 50% { transform: translateX(0) rotate(2deg); } 75% { transform: translateX(-4px) rotate(-1deg); } 100% { transform: translateX(0) rotate(-2deg); } }
@keyframes dd-bell { 0% { transform: scale(0.8); opacity: 0.5; } 50% { transform: scale(1.2); opacity: 1; } 100% { transform: scale(0.8); opacity: 0.5; } }
@keyframes dd-shadow { 0% { opacity: 0.3; } 100% { opacity: 0.7; } }

.scn-nora-laughs-at-society {
  background: linear-gradient(180deg, #2a1a0e 0%, #4a2a1a 40%, #3a1a0a 100%), radial-gradient(ellipse at 50% 30%, #6a3a1a 0%, transparent 70%);
}
.scn-nora-laughs-at-society .bg-fire      { position:absolute; inset:0; background: radial-gradient(circle at 70% 50%, #b85c2a 0%, transparent 50%); animation: nls-fire 4s ease-in-out infinite alternate; }
.scn-nora-laughs-at-society .wall         { position:absolute; top:10%; left:10%; right:10%; bottom:30%; background: linear-gradient(90deg, #3a2010 0%, #4a2a1a 50%, #3a2010 100%); border-radius: 4px; box-shadow: inset 0 0 20px #1a0a00; }
.scn-nora-laughs-at-society .sofa         { position:absolute; bottom:0; left:15%; width:50%; height:40%; background: linear-gradient(180deg, #5a3a2a 0%, #3a2010 100%); border-radius: 60% 60% 0 0 / 80% 80% 0 0; box-shadow: 0 -4px 20px rgba(0,0,0,.6); }
.scn-nora-laughs-at-society .nora-silhouette { position:absolute; bottom:20%; left:35%; width:50px; height:70px; background: linear-gradient(180deg, #1a0a00 0%, #0a0500 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: nls-body 2s ease-in-out infinite; }
.scn-nora-laughs-at-society .nora-hands   { position:absolute; bottom:45%; left:37%; width:30px; height:20px; background: radial-gradient(circle, #2a1a0a 0%, transparent 70%); border-radius: 50%; transform: translate(-10%, -10%); animation: nls-clap 0.8s ease-in-out infinite alternate; }
.scn-nora-laughs-at-society .flicker      { position:absolute; inset:0; background: radial-gradient(circle at 70% 50%, #ff8c42 0%, transparent 30%); opacity:.15; animation: nls-flicker 0.5s ease-in-out infinite alternate; }
.scn-nora-laughs-at-society .sparkle      { position:absolute; top:30%; right:20%; width:8px; height:8px; background: #ffaa55; border-radius: 50%; box-shadow: 0 0 10px #ffaa55; animation: nls-sparkle 3s ease-in-out infinite; }
@keyframes nls-fire    { 0% { opacity:.7 } 100% { opacity:1 } }
@keyframes nls-body    { 0%,100% { transform: rotate(-2deg) } 50% { transform: rotate(3deg) translateY(-2px) } }
@keyframes nls-clap    { 0% { transform: scale(1) translate(0,0) } 100% { transform: scale(1.2) translate(8px,-5px) } }
@keyframes nls-flicker { 0% { opacity:.1 } 100% { opacity:.25 } }
@keyframes nls-sparkle { 0%,100% { transform: scale(0.5); opacity:0 } 50% { transform: scale(1.5); opacity:1 } }

.scn-macaroons-offered {
  background: linear-gradient(180deg, #3a2010 0%, #5a3020 40%, #2a150a 100%), radial-gradient(ellipse at 50% 30%, #8a4a2a 0%, transparent 60%);
}
.scn-macaroons-offered .bg-warm    { position:absolute; inset:0; background: radial-gradient(circle at 60% 40%, #c86a2a 0%, transparent 50%); animation: mac-glow 6s ease-in-out infinite alternate; }
.scn-macaroons-offered .table      { position:absolute; bottom:5%; left:20%; right:20%; height:10%; background: linear-gradient(180deg, #5a3a2a 0%, #3a2010 100%); border-radius: 10px; box-shadow: 0 -2px 10px #1a0a00; }
.scn-macaroons-offered .nora-arm   { position:absolute; bottom:15%; left:30%; width:40px; height:60px; background: linear-gradient(180deg, #2a1a0a 0%, #1a0a00 100%); border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%; transform: rotate(-20deg); transform-origin: 50% 80%; animation: mac-arm1 4s ease-in-out infinite; }
.scn-macaroons-offered .dr-arm     { position:absolute; bottom:15%; right:30%; width:40px; height:60px; background: linear-gradient(180deg, #2a1a0a 0%, #1a0a00 100%); border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%; transform: rotate(20deg); transform-origin: 50% 80%; animation: mac-arm2 4s ease-in-out infinite 2s; }
.scn-macaroons-offered .packet     { position:absolute; bottom:20%; left:38%; width:30px; height:20px; background: #6a4a2a; border-radius: 4px; box-shadow: 0 2px 4px #1a0a00; animation: mac-packet 4s ease-in-out infinite; }
.scn-macaroons-offered .macaroon-1 { position:absolute; bottom:25%; left:35%; width:10px; height:10px; background: #d48a50; border-radius: 50%; box-shadow: 0 0 4px #d48a50; animation: mac-move1 4s ease-in-out infinite 0.5s; }
.scn-macaroons-offered .macaroon-2 { position:absolute; bottom:28%; left:40%; width:8px; height:8px; background: #d48a50; border-radius: 50%; box-shadow: 0 0 3px #d48a50; animation: mac-move2 4s ease-in-out infinite 1.5s; }
.scn-macaroons-offered .glow       { position:absolute; bottom:20%; left:36%; width:40px; height:40px; background: radial-gradient(circle, #ffaa55 0%, transparent 70%); opacity:.3; animation: mac-glow-pulse 3s ease-in-out infinite alternate; }
@keyframes mac-glow       { 0% { opacity:.6 } 100% { opacity:1 } }
@keyframes mac-arm1       { 0%,100% { transform: rotate(-20deg) } 50% { transform: rotate(-10deg) translateY(-5px) } }
@keyframes mac-arm2       { 0%,100% { transform: rotate(20deg) } 50% { transform: rotate(10deg) translateY(-5px) } }
@keyframes mac-packet     { 0%,100% { transform: translateY(0) } 50% { transform: translateY(-3px) } }
@keyframes mac-move1      { 0% { transform: translate(0,0); opacity:1 } 50% { transform: translate(10px,-5px); opacity:0.8 } 100% { transform: translate(0,0); opacity:1 } }
@keyframes mac-move2      { 0% { transform: translate(0,0); opacity:1 } 50% { transform: translate(-5px,-8px); opacity:0.7 } 100% { transform: translate(0,0); opacity:1 } }
@keyframes mac-glow-pulse { 0% { transform: scale(1); opacity:.2 } 100% { transform: scale(1.3); opacity:.4 } }

.scn-shocking-wish {
  background: linear-gradient(180deg, #1a0a00 0%, #3a1a0a 30%, #2a1005 100%), radial-gradient(ellipse at 40% 60%, #5a2a15 0%, transparent 70%);
}
.scn-shocking-wish .bg-dim          { position:absolute; inset:0; background: radial-gradient(circle at 60% 40%, #7a3a1a 0%, transparent 40%); animation: shw-dim 8s ease-in-out infinite alternate; }
.scn-shocking-wish .nora-profile    { position:absolute; bottom:20%; left:20%; width:50px; height:80px; background: linear-gradient(180deg, #2a1a0a 0%, #0a0500 100%); border-radius: 60% 40% 30% 50% / 70% 50% 50% 50%; transform: rotate(10deg); animation: shw-turn 6s ease-in-out infinite; }
.scn-shocking-wish .nora-hand-mouth { position:absolute; bottom:40%; left:22%; width:20px; height:20px; background: radial-gradient(circle, #1a0a00 0%, transparent 60%); border-radius: 50%; transform: translate(10px, -5px); animation: shw-hand 2s ease-in-out infinite alternate; }
.scn-shocking-wish .whisper-line    { position:absolute; bottom:55%; left:25%; width:60px; height:2px; background: #5a3a1a; border-radius: 1px; animation: shw-whisper 3s ease-in-out infinite; }
.scn-shocking-wish .torvald-silhouette { position:absolute; bottom:20%; right:20%; width:40px; height:90px; background: #1a0a00; border-radius: 30% 30% 20% 20% / 50% 50% 30% 30%; transform: rotate(-5deg); animation: shw-torvald 4s ease-in-out infinite; }
.scn-shocking-wish .shadow-shape    { position:absolute; bottom:0; left:0; right:0; height:30%; background: linear-gradient(0deg, #0a0500 0%, transparent 100%); }
.scn-shocking-wish .fire-ember      { position:absolute; top:30%; left:70%; width:6px; height:6px; background: #ff8844; border-radius: 50%; box-shadow: 0 0 8px #ff8844; animation: shw-ember 2s ease-in-out infinite; }
@keyframes shw-dim       { 0% { opacity:.5 } 100% { opacity:1 } }
@keyframes shw-turn      { 0%,100% { transform: rotate(10deg) } 50% { transform: rotate(-5deg) translateX(5px) } }
@keyframes shw-hand      { 0% { transform: translate(10px, -5px) scale(1) } 100% { transform: translate(15px, -8px) scale(1.2) } }
@keyframes shw-whisper   { 0% { width: 60px; opacity:0.3 } 50% { width: 80px; opacity:0.8 } 100% { width: 60px; opacity:0.3 } }
@keyframes shw-torvald   { 0%,100% { transform: rotate(-5deg) } 50% { transform: rotate(3deg) } }
@keyframes shw-ember     { 0% { top:30%; opacity:1 } 100% { top:20%; opacity:0 } }

.scn-introduce-mrs-linde-to-helmer {
  background: linear-gradient(180deg, #2a1505 0%, #4a2a15 30%, #1a0a00 100%), radial-gradient(ellipse at 50% 30%, #7a4020 0%, transparent 60%);
}
.scn-introduce-mrs-linde-to-helmer .bg-amber    { position:absolute; inset:0; background: radial-gradient(circle at 50% 40%, #9a5a30 0%, transparent 50%); animation: int-amber 10s ease-in-out infinite alternate; }
.scn-introduce-mrs-linde-to-helmer .doorway     { position:absolute; bottom:0; left:35%; width:30%; height:90%; background: linear-gradient(180deg, #1a0a00 0%, #0a0500 100%); border-radius: 40% 40% 0 0 / 60% 60% 0 0; box-shadow: inset -5px 0 10px #0a0500, inset 5px 0 10px #0a0500; }
.scn-introduce-mrs-linde-to-helmer .nora-standing { position:absolute; bottom:0; left:30%; width:40px; height:90px; background: linear-gradient(180deg, #2a1a0a 0%, #1a0a00 100%); border-radius: 40% 40% 20% 20% / 60% 60% 30% 30%; animation: int-nora 8s ease-in-out infinite; }
.scn-introduce-mrs-linde-to-helmer .linde-standing { position:absolute; bottom:0; left:45%; width:40px; height:85px; background: linear-gradient(180deg, #3a2010 0%, #1a0a00 100%); border-radius: 40% 40% 20% 20% / 60% 60% 30% 30%; animation: int-linde 8s ease-in-out infinite 2s; }
.scn-introduce-mrs-linde-to-helmer .helmer-silhouette { position:absolute; bottom:0; right:20%; width:50px; height:100px; background: #0a0500; border-radius: 30% 30% 10% 10% / 50% 50% 20% 20%; animation: int-helmer 6s ease-in-out infinite; }
.scn-introduce-mrs-linde-to-helmer .handshake   { position:absolute; bottom:50%; left:38%; width:20px; height:20px; background: radial-gradient(circle, #2a1a0a 0%, transparent 60%); border-radius: 50%; transform: translate(-50%, -50%); animation: int-hand 4s ease-in-out infinite; }
.scn-introduce-mrs-linde-to-helmer .floor-line  { position:absolute; bottom:0; left:0; right:0; height:4px; background: linear-gradient(90deg, transparent 0%, #2a1505 20%, #4a2a15 50%, #2a1505 80%, transparent 100%); }
@keyframes int-amber    { 0% { opacity:.7 } 100% { opacity:1 } }
@keyframes int-nora     { 0%,100% { transform: rotate(0deg) } 50% { transform: rotate(2deg) translateX(3px) } }
@keyframes int-linde    { 0%,100% { transform: rotate(0deg) } 50% { transform: rotate(-2deg) translateX(-3px) } }
@keyframes int-helmer   { 0%,100% { transform: rotate(0deg) } 50% { transform: rotate(1deg) } }
@keyframes int-hand     { 0% { transform: translate(-50%, -50%) scale(1) } 50% { transform: translate(-30%, -60%) scale(1.2) } 100% { transform: translate(-50%, -50%) scale(1) } }

/* Scene 1: krogstad-introduced (tense, firelit) */
.scn-krogstad-introduced {
  background:
    radial-gradient(ellipse at 50% 70%, #3a1a0a 0%, #1a0800 60%, #0a0400 100%),
    linear-gradient(180deg, #2a1000 0%, #1a0800 100%);
}
.scn-krogstad-introduced .bg-fire   { position:absolute; bottom:0; left:15%; width:20%; height:25%; background: radial-gradient(ellipse at 50% 100%, #d06020 0%, #8a3010 40%, transparent 70%); border-radius: 50% 50% 0 0; animation: kr-fire 2s ease-in-out infinite; }
.scn-krogstad-introduced .bg-wall   { position:absolute; inset:0 30% 0 0; background: linear-gradient(180deg, #1a0a00 0%, #2a1505 50%, #1a0a00 100%); }
.scn-krogstad-introduced .door      { position:absolute; top:30%; left:80%; width:15%; height:55%; background: linear-gradient(180deg, #3a2010 0%, #1a0c00 100%); border-radius: 4% 4% 0 0; box-shadow: inset -4px 0 8px rgba(0,0,0,.6); animation: kr-door 4s ease-in-out infinite alternate; }
.scn-krogstad-introduced .nora      { position:absolute; bottom:20%; left:25%; width:10%; height:30%; background: linear-gradient(180deg, #2a1a0a 0%, #0a0500 100%); border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%; transform-origin: bottom; animation: kr-nora 3s ease-in-out infinite; }
.scn-krogstad-introduced .krogstad  { position:absolute; bottom:15%; right:10%; width:12%; height:40%; background: linear-gradient(180deg, #1a0a00 0%, #050200 100%); border-radius: 50% 50% 40% 40% / 70% 70% 30% 30%; transform-origin: bottom; animation: kr-krog 2.5s ease-in-out infinite alternate; box-shadow: -8px 0 12px rgba(0,0,0,.7); }
.scn-krogstad-introduced .fire-glow { position:absolute; bottom:5%; left:10%; width:30%; height:35%; background: radial-gradient(ellipse at 50% 80%, rgba(200,80,20,.35) 0%, transparent 70%); animation: kr-glow 1.8s ease-in-out infinite alternate; }
.scn-krogstad-introduced .shadow-1  { position:absolute; bottom:0; left:50%; width:40%; height:20%; background: linear-gradient(180deg, transparent 0%, rgba(0,0,0,.6) 100%); }
.scn-krogstad-introduced .shadow-2  { position:absolute; bottom:0; right:0; width:30%; height:15%; background: linear-gradient(180deg, transparent 0%, rgba(0,0,0,.8) 100%); }
@keyframes kr-fire  { 0% { opacity:.7; transform: scaleY(1); } 50% { opacity:1; transform: scaleY(1.08); } 100% { opacity:.75; transform: scaleY(.95); } }
@keyframes kr-door  { 0% { transform: scaleX(1); } 100% { transform: scaleX(.92); } }
@keyframes kr-nora  { 0% { transform: translateX(0) rotate(-1deg); } 50% { transform: translateX(2px) rotate(1deg); } 100% { transform: translateX(-1px) rotate(0); } }
@keyframes kr-krog  { 0% { transform: translateX(0) rotate(0); } 50% { transform: translateX(-3px) rotate(2deg); } 100% { transform: translateX(1px) rotate(-1deg); } }
@keyframes kr-glow  { 0% { opacity:.4; } 50% { opacity:.7; } 100% { opacity:.5; } }

/* Scene 2: doctor-rank-enters (calm, firelit) */
.scn-doctor-rank-enters {
  background:
    radial-gradient(ellipse at 50% 70%, #4a2a12 0%, #2a1000 60%, #150800 100%),
    linear-gradient(180deg, #2a1000 0%, #1a0800 100%);
}
.scn-doctor-rank-enters .bg-fire   { position:absolute; bottom:0; left:10%; width:18%; height:20%; background: radial-gradient(ellipse at 50% 100%, #d06020 0%, #8a3010 30%, transparent 70%); border-radius: 50% 50% 0 0; animation: dr-fire 3s ease-in-out infinite; }
.scn-doctor-rank-enters .bg-wall   { position:absolute; inset:0 25% 0 0; background: linear-gradient(180deg, #1a0a00 0%, #2a1505 50%, #1a0a00 100%); }
.scn-doctor-rank-enters .door      { position:absolute; top:35%; right:5%; width:18%; height:50%; background: linear-gradient(180deg, #3a2010 0%, #1a0c00 100%); border-radius: 4% 4% 0 0; box-shadow: inset 4px 0 8px rgba(0,0,0,.5); animation: dr-door 6s ease-in-out infinite alternate; }
.scn-doctor-rank-enters .nora      { position:absolute; bottom:20%; left:30%; width:10%; height:28%; background: linear-gradient(180deg, #2a1a0a 0%, #0a0500 100%); border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%; transform-origin: bottom; animation: dr-nora 4s ease-in-out infinite; }
.scn-doctor-rank-enters .rank      { position:absolute; bottom:22%; left:50%; width:11%; height:32%; background: linear-gradient(180deg, #3a2010 0%, #1a0c00 100%); border-radius: 50% 50% 40% 40% / 70% 70% 30% 30%; transform-origin: bottom; animation: dr-rank 5s ease-in-out infinite alternate; box-shadow: -4px 0 10px rgba(0,0,0,.5); }
.scn-doctor-rank-enters .fire-glow { position:absolute; bottom:0; left:5%; width:30%; height:40%; background: radial-gradient(ellipse at 50% 80%, rgba(200,80,20,.25) 0%, transparent 70%); animation: dr-glow 4s ease-in-out infinite alternate; }
.scn-doctor-rank-enters .armchair  { position:absolute; bottom:18%; left:40%; width:14%; height:18%; background: linear-gradient(180deg, #4a2a10 0%, #2a1505 100%); border-radius: 30% 30% 10% 10%; box-shadow: inset 0 -4px 8px rgba(0,0,0,.4); animation: dr-chair 7s ease-in-out infinite; }
@keyframes dr-fire  { 0% { opacity:.6; transform: scaleY(1); } 50% { opacity:.9; transform: scaleY(1.06); } 100% { opacity:.7; transform: scaleY(.98); } }
@keyframes dr-door  { 0% { transform: scaleX(1) translateX(0); } 50% { transform: scaleX(.95) translateX(-2px); } 100% { transform: scaleX(1) translateX(0); } }
@keyframes dr-nora  { 0% { transform: translateX(0) rotate(0); } 33% { transform: translateX(2px) rotate(-1deg); } 66% { transform: translateX(-1px) rotate(1deg); } 100% { transform: translateX(0) rotate(0); } }
@keyframes dr-rank  { 0% { transform: translateY(0) rotate(0); } 50% { transform: translateY(-2px) rotate(2deg); } 100% { transform: translateY(0) rotate(0); } }
@keyframes dr-glow  { 0% { opacity:.3; } 50% { opacity:.6; } 100% { opacity:.4; } }
@keyframes dr-chair { 0% { transform: scale(1); } 50% { transform: scale(1.02); } 100% { transform: scale(1); } }

/* Scene 3: rank-and-mrs-linde (calm, firelit) */
.scn-rank-and-mrs-linde {
  background:
    radial-gradient(ellipse at 50% 70%, #4a2a12 0%, #2a1000 60%, #150800 100%),
    linear-gradient(180deg, #2a1000 0%, #1a0800 100%);
}
.scn-rank-and-mrs-linde .bg-fire   { position:absolute; bottom:0; left:10%; width:14%; height:18%; background: radial-gradient(ellipse at 50% 100%, #d06020 0%, #8a3010 30%, transparent 70%); border-radius: 50% 50% 0 0; animation: rm-fire 4s ease-in-out infinite; }
.scn-rank-and-mrs-linde .bg-wall   { position:absolute; inset:0; background: linear-gradient(180deg, #1a0a00 0%, #2a1505 50%, #1a0a00 100%); }
.scn-rank-and-mrs-linde .table     { position:absolute; bottom:20%; left:50%; width:20%; height:10%; background: linear-gradient(180deg, #3a2010 0%, #1a0c00 100%); border-radius: 10% 10% 0 0; transform: translateX(-50%); box-shadow: 0 4px 12px rgba(0,0,0,.5); animation: rm-table 8s ease-in-out infinite; }
.scn-rank-and-mrs-linde .rank-sit  { position:absolute; bottom:22%; left:35%; width:10%; height:22%; background: linear-gradient(180deg, #3a2010 0%, #1a0c00 100%); border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%; transform-origin: bottom; animation: rm-rank 5s ease-in-out infinite alternate; }
.scn-rank-and-mrs-linde .mrs-linde { position:absolute; bottom:22%; right:35%; width:9%; height:20%; background: linear-gradient(180deg, #2a1a0a 0%, #0a0500 100%); border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%; transform-origin: bottom; animation: rm-linde 5.5s ease-in-out infinite alternate; }
.scn-rank-and-mrs-linde .fire-glow { position:absolute; bottom:0; left:5%; width:25%; height:30%; background: radial-gradient(ellipse at 50% 80%, rgba(200,80,20,.2) 0%, transparent 70%); animation: rm-glow 5s ease-in-out infinite alternate; }
.scn-rank-and-mrs-linde .candle    { position:absolute; bottom:30%; left:50%; width:2%; height:8%; background: linear-gradient(180deg, #d0a060 0%, #8a6020 100%); border-radius: 20% 20% 10% 10%; transform: translateX(-50%); box-shadow: 0 0 12px 4px rgba(200,120,40,.5); animation: rm-candle 3s ease-in-out infinite; }
.scn-rank-and-mrs-linde .vase      { position:absolute; bottom:22%; left:55%; width:4%; height:12%; background: radial-gradient(ellipse at 50% 30%, #5a3020 0%, #2a1505 100%); border-radius: 40% 40% 20% 20%; animation: rm-vase 9s ease-in-out infinite; }
@keyframes rm-fire  { 0% { opacity:.6; transform: scaleY(1); } 50% { opacity:.8; transform: scaleY(1.04); } 100% { opacity:.7; transform: scaleY(.96); } }
@keyframes rm-table { 0% { transform: translateX(-50%) scale(1); } 50% { transform: translateX(-50%) scale(1.01); } 100% { transform: translateX(-50%) scale(1); } }
@keyframes rm-rank  { 0% { transform: translateY(0) rotate(0); } 50% { transform: translateY(-1px) rotate(1deg); } 100% { transform: translateY(0) rotate(0); } }
@keyframes rm-linde { 0% { transform: translateY(0) rotate(0); } 50% { transform: translateY(-1px) rotate(-1deg); } 100% { transform: translateY(0) rotate(0); } }
@keyframes rm-glow  { 0% { opacity:.3; } 50% { opacity:.5; } 100% { opacity:.4; } }
@keyframes rm-candle{ 0% { transform: translateX(-50%) scaleY(1); } 50% { transform: translateX(-50%) scaleY(1.05); } 100% { transform: translateX(-50%) scaleY(1); } }
@keyframes rm-vase  { 0% { transform: rotate(0); } 33% { transform: rotate(1deg); } 66% { transform: rotate(-1deg); } 100% { transform: rotate(0); } }

/* Scene 4: moral-disease (dark, firelit) */
.scn-moral-disease {
  background:
    radial-gradient(ellipse at 30% 60%, #1a0800 0%, #0a0200 60%, #000000 100%),
    linear-gradient(180deg, #0a0200 0%, #050100 100%);
}
.scn-moral-disease .bg-fire   { position:absolute; bottom:0; left:10%; width:16%; height:22%; background: radial-gradient(ellipse at 50% 100%, #b05020 0%, #702010 30%, transparent 70%); border-radius: 50% 50% 0 0; animation: md-fire 1.5s ease-in-out infinite; }
.scn-moral-disease .bg-wall   { position:absolute; inset:0 40% 0 0; background: linear-gradient(180deg, #0a0200 0%, #1a0800 50%, #0a0200 100%); }
.scn-moral-disease .desk      { position:absolute; bottom:10%; left:50%; width:25%; height:8%; background: linear-gradient(180deg, #2a1505 0%, #1a0800 100%); border-radius: 4% 4% 20% 20%; transform: translateX(-40%); box-shadow: 0 4px 16px rgba(0,0,0,.7); animation: md-desk 10s ease-in-out infinite; }
.scn-moral-disease .figure-md { position:absolute; bottom:15%; left:20%; width:12%; height:38%; background: linear-gradient(180deg, #0a0200 0%, #000000 100%); border-radius: 50% 50% 40% 40% / 70% 70% 30% 30%; transform-origin: bottom; animation: md-figure 2s ease-in-out infinite alternate; box-shadow: -6px 0 15px rgba(0,0,0,.8); }
.scn-moral-disease .papers    { position:absolute; bottom:15%; left:55%; width:8%; height:6%; background: linear-gradient(180deg, #5a4020 0%, #3a2008 100%); border-radius: 2% 30% 30% 2%; transform: rotate(15deg); box-shadow: 2px 2px 6px rgba(0,0,0,.5); animation: md-papers 6s ease-in-out infinite; }
.scn-moral-disease .fire-glow { position:absolute; bottom:0; left:5%; width:25%; height:35%; background: radial-gradient(ellipse at 50% 80%, rgba(180,60,15,.25) 0%, transparent 70%); animation: md-glow 2.2s ease-in-out infinite alternate; }
.scn-moral-disease .shadow-md { position:absolute; bottom:0; right:0; width:50%; height:30%; background: linear-gradient(180deg, transparent 0%, rgba(0,0,0,.9) 100%); }
@keyframes md-fire  { 0% { opacity:.5; transform: scaleY(1); } 50% { opacity:1; transform: scaleY(1.1); } 100% { opacity:.6; transform: scaleY(.9); } }
@keyframes md-desk  { 0% { transform: translateX(-40%) scale(1); } 50% { transform: translateX(-40%) scale(1.02); } 100% { transform: translateX(-40%) scale(1); } }
@keyframes md-figure{ 0% { transform: translateY(0) rotate(0); } 50% { transform: translateY(-3px) rotate(1deg); } 100% { transform: translateY(1px) rotate(-1deg); } }
@keyframes md-papers{ 0% { transform: rotate(15deg) translateX(0); } 50% { transform: rotate(20deg) translateX(2px); } 100% { transform: rotate(12deg) translateX(0); } }
@keyframes md-glow  { 0% { opacity:.2; } 50% { opacity:.6; } 100% { opacity:.3; } }

/* Nora - calm before storm */
.scn-nora-calm-before-storm {
  background:
    linear-gradient(180deg, #2b1e1a 0%, #3a2a20 40%, #4c3828 100%),
    radial-gradient(ellipse at 50% 30%, #7a5a3a 0%, transparent 70%);
}
.scn-nora-calm-before-storm .wall-bg {
  position: absolute; inset: 0 0 35% 0;
  background: linear-gradient(135deg, #3a2a20 0%, #4c3828 60%, #2b1e1a 100%);
  animation: ncb-wall 8s ease-in-out infinite alternate;
}
.scn-nora-calm-before-storm .mirror {
  position: absolute; top: 16%; left: 38%; width: 24%; height: 28%;
  background: linear-gradient(180deg, #d4c4a4 0%, #b8a080 60%, #8a7050 100%);
  border-radius: 8% 8% 4% 4%;
  box-shadow: inset 0 0 20px rgba(0,0,0,0.5), 0 0 8px #f0d0a0;
  animation: ncb-mirror 12s ease-in-out infinite;
}
.scn-nora-calm-before-storm .lamp {
  position: absolute; top: 10%; left: 64%; width: 8px; height: 18px;
  background: radial-gradient(circle, #f0c060 0%, #b08030 100%);
  border-radius: 40% 40% 20% 20%;
  box-shadow: 0 0 30px 10px #f0c060, 0 0 60px 20px rgba(240,192,96,0.4);
  animation: ncb-lamp 3s ease-in-out infinite alternate;
}
.scn-nora-calm-before-storm .figure-nora {
  position: absolute; bottom: 25%; left: 30%; width: 14%; height: 35%;
  background: linear-gradient(180deg, #4a2e22 0%, #2d1a12 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: ncb-nora 4s ease-in-out infinite;
}
.scn-nora-calm-before-storm .figure-christine {
  position: absolute; bottom: 25%; left: 46%; width: 12%; height: 34%;
  background: linear-gradient(180deg, #3a261e 0%, #1f120c 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: ncb-christine 4.2s ease-in-out infinite 0.3s;
}
.scn-nora-calm-before-storm .door {
  position: absolute; bottom: 0%; right: 6%; width: 18%; height: 65%;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a10 100%);
  border-radius: 6% 6% 0 0;
  box-shadow: -4px 0 12px rgba(0,0,0,0.6);
}
.scn-nora-calm-before-storm .shadow-shape {
  position: absolute; bottom: 20%; left: 10%; width: 30%; height: 20%;
  background: radial-gradient(ellipse at 50% 0%, rgba(0,0,0,0.5) 0%, transparent 70%);
  filter: blur(8px);
  animation: ncb-shadow 6s ease-in-out infinite alternate;
}
@keyframes ncb-wall { 0% { opacity:0.8 } 50% { opacity:1 } 100% { opacity:0.7 } }
@keyframes ncb-mirror { 0% { transform: scale(1) rotate(0deg) } 50% { transform: scale(1.02) rotate(0.5deg) } 100% { transform: scale(1) rotate(0deg) } }
@keyframes ncb-lamp { 0% { box-shadow: 0 0 20px 6px #f0c060, 0 0 40px 12px rgba(240,192,96,0.3); opacity:0.85 } 50% { box-shadow: 0 0 40px 14px #ffd080, 0 0 80px 24px rgba(255,208,128,0.5); opacity:1 } 100% { box-shadow: 0 0 30px 8px #f0c060, 0 0 60px 16px rgba(240,192,96,0.35); opacity:0.9 } }
@keyframes ncb-nora { 0% { transform: translateX(0) rotate(-2deg) } 25% { transform: translateX(4px) rotate(2deg) } 50% { transform: translateX(8px) rotate(-1deg) } 75% { transform: translateX(4px) rotate(1deg) } 100% { transform: translateX(0) rotate(0deg) } }
@keyframes ncb-christine { 0% { transform: translateX(0) rotate(1deg) } 25% { transform: translateX(-3px) rotate(-1deg) } 50% { transform: translateX(-6px) rotate(2deg) } 75% { transform: translateX(-3px) rotate(0deg) } 100% { transform: translateX(0) rotate(0deg) } }
@keyframes ncb-shadow { 0% { transform: scaleX(1) } 50% { transform: scaleX(1.2) } 100% { transform: scaleX(1) } }

/* Mrs. Linde waits for Krogstad */
.scn-mrs-linde-waits-for-krogstad {
  background:
    linear-gradient(180deg, #1c1815 0%, #2a221c 50%, #3c322a 100%),
    radial-gradient(ellipse at 50% 20%, #6a5535 0%, transparent 80%);
}
.scn-mrs-linde-waits-for-krogstad .floor {
  position: absolute; inset: 70% 0 0 0;
  background: linear-gradient(180deg, #3a2e24 0%, #1c1410 100%);
  animation: mwl-floor 10s ease-in-out infinite alternate;
}
.scn-mrs-linde-waits-for-krogstad .wall {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(135deg, #2a221c 0%, #3c322a 60%, #1c1815 100%);
}
.scn-mrs-linde-waits-for-krogstad .lamp-glow {
  position: absolute; top: 12%; left: 50%; width: 14px; height: 20px;
  background: radial-gradient(circle, #f0c060 0%, #b08030 100%);
  border-radius: 50% 50% 30% 30%;
  box-shadow: 0 0 40px 12px #f0c060, 0 0 80px 24px rgba(240,192,96,0.4);
  animation: mwl-lamp 3s ease-in-out infinite alternate;
}
.scn-mrs-linde-waits-for-krogstad .figure-mrs {
  position: absolute; bottom: 32%; left: 40%; width: 12%; height: 38%;
  background: linear-gradient(180deg, #3a261e 0%, #1f120c 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: mwl-figure 5s ease-in-out infinite;
}
.scn-mrs-linde-waits-for-krogstad .door-way {
  position: absolute; bottom: 28%; right: 8%; width: 16%; height: 72%;
  background: linear-gradient(180deg, #1a120c 0%, #0a0604 100%);
  border-radius: 8% 8% 0 0;
  box-shadow: inset -2px -2px 8px rgba(0,0,0,0.6);
}
.scn-mrs-linde-waits-for-krogstad .table {
  position: absolute; bottom: 22%; left: 28%; width: 20%; height: 8%;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 4%;
  box-shadow: 0 -4px 8px rgba(0,0,0,0.4);
}
.scn-mrs-linde-waits-for-krogstad .chair {
  position: absolute; bottom: 28%; left: 30%; width: 6%; height: 12%;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a10 100%);
  border-radius: 40% 40% 10% 10%;
}
.scn-mrs-linde-waits-for-krogstad .clock-hand {
  position: absolute; top: 10%; left: 70%; width: 2px; height: 20px;
  background: #8a7050;
  border-radius: 50%;
  transform-origin: 50% 100%;
  animation: mwl-clock 4s ease-in-out infinite;
}
@keyframes mwl-floor { 0% { opacity:0.9 } 50% { opacity:1 } 100% { opacity:0.8 } }
@keyframes mwl-lamp { 0% { box-shadow: 0 0 30px 8px #f0c060, 0 0 60px 16px rgba(240,192,96,0.3); opacity:0.85 } 50% { box-shadow: 0 0 50px 18px #ffd080, 0 0 100px 30px rgba(255,208,128,0.5); opacity:1 } 100% { box-shadow: 0 0 40px 12px #f0c060, 0 0 80px 20px rgba(240,192,96,0.35); opacity:0.9 } }
@keyframes mwl-figure { 0% { transform: translateX(0) rotate(1deg) } 30% { transform: translateX(3px) rotate(-1deg) } 60% { transform: translateX(0) rotate(2deg) } 100% { transform: translateX(-2px) rotate(0deg) } }
@keyframes mwl-clock { 0% { transform: rotate(-20deg) } 50% { transform: rotate(20deg) } 100% { transform: rotate(-20deg) } }

/* Mrs. Linde reunion */
.scn-mrs-linde-reunion {
  background:
    linear-gradient(180deg, #2a1e18 0%, #3a2a20 45%, #4c3828 100%),
    radial-gradient(ellipse at 50% 30%, #9a7848 0%, transparent 70%);
}
.scn-mrs-linde-reunion .ground {
  position: absolute; inset: 75% 0 0 0;
  background: linear-gradient(180deg, #3a2e24 0%, #1c1410 100%);
}
.scn-mrs-linde-reunion .backdrop {
  position: absolute; inset: 0 0 25% 0;
  background: linear-gradient(135deg, #2a1e18 0%, #4c3828 60%, #1c1410 100%);
  animation: mre-backdrop 10s ease-in-out infinite alternate;
}
.scn-mrs-linde-reunion .lamp-source {
  position: absolute; top: 14%; left: 52%; width: 10px; height: 16px;
  background: radial-gradient(circle, #f0c060 0%, #b08030 100%);
  border-radius: 50% 50% 30% 30%;
  box-shadow: 0 0 40px 14px #f0c060, 0 0 80px 28px rgba(240,192,96,0.4);
  animation: mre-lamp 3s ease-in-out infinite alternate;
}
.scn-mrs-linde-reunion .figure-krogstad {
  position: absolute; bottom: 28%; left: 26%; width: 14%; height: 42%;
  background: linear-gradient(180deg, #3a2a20 0%, #1a1008 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: mre-krogstad 4s ease-in-out infinite;
}
.scn-mrs-linde-reunion .figure-linde {
  position: absolute; bottom: 28%; left: 50%; width: 12%; height: 40%;
  background: linear-gradient(180deg, #4a3228 0%, #2a1a10 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: mre-linde 4.3s ease-in-out infinite 0.4s;
}
.scn-mrs-linde-reunion .table-round {
  position: absolute; bottom: 22%; left: 36%; width: 18%; height: 10%;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 50%;
  box-shadow: 0 -4px 10px rgba(0,0,0,0.5);
}
.scn-mrs-linde-reunion .wall-panel {
  position: absolute; top: 6%; left: 10%; width: 20%; height: 30%;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a10 100%);
  border-radius: 4%;
  box-shadow: inset 0 0 12px rgba(0,0,0,0.6);
}
@keyframes mre-backdrop { 0% { opacity:0.8 } 50% { opacity:1 } 100% { opacity:0.7 } }
@keyframes mre-lamp { 0% { box-shadow: 0 0 30px 10px #f0c060, 0 0 60px 20px rgba(240,192,96,0.3); opacity:0.85 } 50% { box-shadow: 0 0 50px 18px #ffd080, 0 0 100px 36px rgba(255,208,128,0.5); opacity:1 } 100% { box-shadow: 0 0 40px 14px #f0c060, 0 0 80px 24px rgba(240,192,96,0.35); opacity:0.9 } }
@keyframes mre-krogstad { 0% { transform: translateX(0) rotate(2deg) } 25% { transform: translateX(2px) rotate(-1deg) } 50% { transform: translateX(5px) rotate(3deg) } 75% { transform: translateX(2px) rotate(-2deg) } 100% { transform: translateX(0) rotate(0deg) } }
@keyframes mre-linde { 0% { transform: translateX(0) rotate(-1deg) } 25% { transform: translateX(-3px) rotate(2deg) } 50% { transform: translateX(-6px) rotate(-1deg) } 75% { transform: translateX(-3px) rotate(0deg) } 100% { transform: translateX(0) rotate(0deg) } }

/* Join forces */
.scn-join-forces {
  background:
    linear-gradient(180deg, #2e221c 0%, #4a382c 50%, #6a5040 100%),
    radial-gradient(ellipse at 50% 30%, #b89060 0%, transparent 70%);
}
.scn-join-forces .bg-warm {
  position: absolute; inset: 0 0 25% 0;
  background: linear-gradient(180deg, #4a382c 0%, #6a5040 70%, #2e221c 100%);
  animation: jof-bg 10s ease-in-out infinite alternate;
}
.scn-join-forces .lamp-hearth {
  position: absolute; bottom: 40%; left: 50%; width: 12px; height: 16px;
  background: radial-gradient(circle, #f0c060 0%, #b08030 100%);
  border-radius: 50% 50% 30% 30%;
  box-shadow: 0 0 50px 18px #f0c060, 0 0 100px 36px rgba(240,192,96,0.5);
  animation: jof-lamp 3s ease-in-out infinite alternate;
}
.scn-join-forces .figure-left {
  position: absolute; bottom: 28%; left: 28%; width: 14%; height: 44%;
  background: linear-gradient(180deg, #3a2a20 0%, #1a1008 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: jof-left 5s ease-in-out infinite;
}
.scn-join-forces .figure-right {
  position: absolute; bottom: 28%; left: 50%; width: 13%; height: 43%;
  background: linear-gradient(180deg, #4a3228 0%, #2a1a10 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: jof-right 5.3s ease-in-out infinite 0.5s;
}
.scn-join-forces .table-small {
  position: absolute; bottom: 22%; left: 36%; width: 14%; height: 8%;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 6%;
  box-shadow: 0 -4px 12px rgba(0,0,0,0.5);
}
.scn-join-forces .glow-halo {
  position: absolute; top: 30%; left: 40%; width: 30%; height: 40%;
  background: radial-gradient(ellipse, rgba(240,192,96,0.2) 0%, transparent 70%);
  filter: blur(12px);
  animation: jof-glow 6s ease-in-out infinite;
}
.scn-join-forces .floor-shadow {
  position: absolute; bottom: 18%; left: 20%; width: 50%; height: 8%;
  background: radial-gradient(ellipse, rgba(0,0,0,0.4) 0%, transparent 70%);
  filter: blur(6px);
}
.scn-join-forces .wall-wood {
  position: absolute; top: 6%; left: 5%; width: 12%; height: 30%;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a10 100%);
  border-radius: 4%;
  box-shadow: inset 0 0 10px rgba(0,0,0,0.5);
}
@keyframes jof-bg { 0% { opacity:0.8 } 50% { opacity:1 } 100% { opacity:0.7 } }
@keyframes jof-lamp { 0% { box-shadow: 0 0 30px 10px #f0c060, 0 0 60px 20px rgba(240,192,96,0.3); opacity:0.85 } 50% { box-shadow: 0 0 60px 22px #ffd080, 0 0 120px 44px rgba(255,208,128,0.5); opacity:1 } 100% { box-shadow: 0 0 40px 14px #f0c060, 0 0 80px 24px rgba(240,192,96,0.35); opacity:0.9 } }
@keyframes jof-left { 0% { transform: translateX(0) rotate(0deg) } 30% { transform: translateX(2px) rotate(1deg) } 60% { transform: translateX(4px) rotate(-1deg) } 100% { transform: translateX(0) rotate(0deg) } }
@keyframes jof-right { 0% { transform: translateX(0) rotate(1deg) } 30% { transform: translateX(-2px) rotate(-1deg) } 60% { transform: translateX(-4px) rotate(2deg) } 100% { transform: translateX(0) rotate(0deg) } }
@keyframes jof-glow { 0% { opacity:0.5; transform: scale(0.9) } 50% { opacity:0.8; transform: scale(1.1) } 100% { opacity:0.5; transform: scale(0.9) } }

/* planning-future */
.scn-planning-future {
  background: 
    linear-gradient(180deg, #4a2e1a 0%, #2a1a0a 50%, #1a0e05 100%),
    radial-gradient(ellipse at 30% 60%, #7a4a2a 0%, transparent 60%);
}
.scn-planning-future .wall {
  position: absolute; inset: 0; background: linear-gradient(180deg, #3a2210 0%, #1a0e05 100%);
  animation: pf-wall 30s ease-in-out infinite alternate;
}
.scn-planning-future .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #2a1a08 0%, #1a0e04 100%);
}
.scn-planning-future .fireplace {
  position: absolute; bottom: 28%; left: 50%; transform: translateX(-50%);
  width: 120px; height: 100px;
  background: linear-gradient(180deg, #5a3a1a 0%, #3a2210 100%);
  border-radius: 4% 4% 8% 8% / 6% 6% 10% 10%;
  box-shadow: inset 0 -12px 20px rgba(0,0,0,.5);
}
.scn-planning-future .flame {
  position: absolute; bottom: 33%; left: 50%; transform: translateX(-50%);
  width: 40px; height: 50px;
  background: radial-gradient(ellipse at 50% 80%, #d08030 0%, #a05020 40%, transparent 70%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: pf-flame 1.5s ease-in-out infinite alternate;
}
.scn-planning-future .table {
  position: absolute; bottom: 20%; left: 35%; width: 80px; height: 6px;
  background: linear-gradient(90deg, #5a3a1a, #3a2210);
  border-radius: 2px;
  box-shadow: 0 4px 8px rgba(0,0,0,.4);
}
.scn-planning-future .chair {
  position: absolute; bottom: 22%; left: 65%; width: 40px; height: 50px;
  background: linear-gradient(180deg, #4a2a12 0%, #2a1a08 100%);
  border-radius: 10% 10% 20% 20% / 15% 15% 25% 25%;
  transform: rotate(-2deg);
  animation: pf-chair 6s ease-in-out infinite alternate;
}
.scn-planning-future .figure {
  position: absolute; bottom: 22%; left: 58%; width: 20px; height: 40px;
  background: linear-gradient(180deg, #2a1a0a 0%, #1a0e04 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: pf-figure 4s ease-in-out infinite alternate;
}
.scn-planning-future .lamp {
  position: absolute; bottom: 25%; left: 30%; width: 8px; height: 12px;
  background: radial-gradient(circle, #d0a050 0%, #a07830 60%);
  border-radius: 20%;
  box-shadow: 0 0 20px 6px rgba(200,150,60,.5);
  animation: pf-lamp 3s ease-in-out infinite alternate;
}
.scn-planning-future .wreath {
  position: absolute; top: 15%; left: 50%; transform: translateX(-50%);
  width: 50px; height: 50px;
  background: radial-gradient(circle at 50% 50%, #3a5a2a 30%, #2a4a1a 60%, transparent 70%);
  border-radius: 50%;
  animation: pf-wreath 20s linear infinite;
}
@keyframes pf-wall {
  0% { opacity: 0.9; } 50% { opacity: 1; } 100% { opacity: 0.85; }
}
@keyframes pf-flame {
  0% { transform: translateX(-50%) scaleY(0.9); opacity: 0.8; }
  50% { transform: translateX(-50%) scaleY(1.1); opacity: 1; }
  100% { transform: translateX(-50%) scaleY(0.95); opacity: 0.85; }
}
@keyframes pf-chair {
  0% { transform: rotate(-2deg); } 50% { transform: rotate(0deg); } 100% { transform: rotate(-2deg); }
}
@keyframes pf-figure {
  0% { transform: translateY(0) rotate(-1deg); } 50% { transform: translateY(-2px) rotate(1deg); } 100% { transform: translateY(0) rotate(0); }
}
@keyframes pf-lamp {
  0% { box-shadow: 0 0 15px 4px rgba(200,150,60,.4); } 50% { box-shadow: 0 0 25px 8px rgba(200,150,60,.7); } 100% { box-shadow: 0 0 18px 5px rgba(200,150,60,.5); }
}
@keyframes pf-wreath {
  0% { transform: translateX(-50%) rotate(0deg); } 100% { transform: translateX(-50%) rotate(360deg); }
}

/* mrs-linde-arrives */
.scn-mrs-linde-arrives {
  background: 
    linear-gradient(180deg, #3a220f 0%, #1f0f05 50%, #0f0803 100%),
    radial-gradient(ellipse at 60% 60%, #7a472a 0%, transparent 60%);
}
.scn-mrs-linde-arrives .wall {
  position: absolute; inset: 0; background: linear-gradient(180deg, #2a1a0a 0%, #1a0e05 100%);
}
.scn-mrs-linde-arrives .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 25%;
  background: linear-gradient(180deg, #1f1206 0%, #0f0803 100%);
}
.scn-mrs-linde-arrives .door {
  position: absolute; bottom: 22%; left: 20%; width: 50px; height: 80px;
  background: linear-gradient(180deg, #4a2e1a 0%, #2a1a0a 100%);
  border-radius: 2% 2% 4% 4% / 3% 3% 5% 5%;
  box-shadow: inset 0 -4px 8px rgba(0,0,0,.5);
  transform: scaleX(0.9);
}
.scn-mrs-linde-arrives .fireplace {
  position: absolute; bottom: 28%; right: 20%; width: 100px; height: 90px;
  background: linear-gradient(180deg, #5a3a1a 0%, #3a2210 100%);
  border-radius: 6% 6% 10% 10% / 8% 8% 12% 12%;
  box-shadow: inset 0 -10px 18px rgba(0,0,0,.6);
}
.scn-mrs-linde-arrives .flame {
  position: absolute; bottom: 32%; right: 25%; width: 35px; height: 45px;
  background: radial-gradient(ellipse at 50% 80%, #c08030 0%, #9a5a20 40%, transparent 70%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: ml-flame 2s ease-in-out infinite alternate;
}
.scn-mrs-linde-arrives .figure-left {
  position: absolute; bottom: 20%; left: 40%; width: 22px; height: 45px;
  background: linear-gradient(180deg, #2a1a0a 0%, #1a0e04 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 45% 45%;
  transform-origin: bottom center;
  animation: ml-figure-l 5s ease-in-out infinite alternate;
}
.scn-mrs-linde-arrives .figure-right {
  position: absolute; bottom: 20%; left: 52%; width: 22px; height: 44px;
  background: linear-gradient(180deg, #321c0c 0%, #1a0e04 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 45% 45%;
  transform-origin: bottom center;
  animation: ml-figure-r 5.3s ease-in-out infinite alternate;
}
.scn-mrs-linde-arrives .coat-rack {
  position: absolute; bottom: 22%; left: 12%; width: 8px; height: 60px;
  background: linear-gradient(180deg, #4a2a12, #2a1a08);
  border-radius: 2px;
  box-shadow: 2px 0 4px rgba(0,0,0,.4);
}
@keyframes ml-flame {
  0% { transform: scaleY(0.85) translateX(1px); opacity: 0.7; }
  50% { transform: scaleY(1.15) translateX(-2px); opacity: 1; }
  100% { transform: scaleY(0.9) translateX(1px); opacity: 0.8; }
}
@keyframes ml-figure-l {
  0% { transform: translateY(0) rotate(-2deg); }
  50% { transform: translateY(-2px) rotate(1deg); }
  100% { transform: translateY(0) rotate(-1deg); }
}
@keyframes ml-figure-r {
  0% { transform: translateY(0) rotate(2deg); }
  50% { transform: translateY(-3px) rotate(-1deg); }
  100% { transform: translateY(0) rotate(1deg); }
}

/* widowed-friend */
.scn-widowed-friend {
  background: 
    linear-gradient(180deg, #1a0e08 0%, #0f0805 50%, #050302 100%),
    radial-gradient(ellipse at 50% 60%, #3a1a0a 0%, transparent 60%);
}
.scn-widowed-friend .bg {
  position: absolute; inset: 0; background: radial-gradient(ellipse at 40% 50%, #2a1005 0%, #0a0502 100%);
  animation: wf-bg 20s ease-in-out infinite alternate;
}
.scn-widowed-friend .chair {
  position: absolute; bottom: 18%; left: 50%; transform: translateX(-50%);
  width: 70px; height: 90px;
  background: linear-gradient(180deg, #2a1a0a 0%, #1a0e04 100%);
  border-radius: 20% 20% 30% 30% / 25% 25% 35% 35%;
  box-shadow: inset 0 -10px 20px rgba(0,0,0,.7);
}
.scn-widowed-friend .figure {
  position: absolute; bottom: 22%; left: 50%; transform: translateX(-50%);
  width: 24px; height: 50px;
  background: linear-gradient(180deg, #1f0f06 0%, #0a0502 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 45% 45%;
  transform-origin: bottom center;
  animation: wf-figure 6s ease-in-out infinite alternate;
}
.scn-widowed-friend .candle {
  position: absolute; bottom: 32%; left: 38%; width: 6px; height: 30px;
  background: linear-gradient(180deg, #c0a070, #8a5a30);
  border-radius: 2px;
  box-shadow: 0 0 8px 2px rgba(200,150,60,.3);
}
.scn-widowed-friend .flame {
  position: absolute; bottom: 43%; left: 38%; width: 10px; height: 12px;
  background: radial-gradient(circle, #d0a040 0%, #b07020 50%, transparent 70%);
  border-radius: 50%;
  box-shadow: 0 0 16px 4px rgba(200,100,30,.6);
  animation: wf-flame 2.5s ease-in-out infinite alternate;
}
.scn-widowed-friend .shadow {
  position: absolute; inset: 0; background: radial-gradient(ellipse at 50% 60%, rgba(0,0,0,0) 40%, rgba(0,0,0,.6) 100%);
  pointer-events: none;
}
.scn-widowed-friend .veil {
  position: absolute; bottom: 25%; left: 44%; width: 40px; height: 50px;
  background: linear-gradient(180deg, rgba(30,10,5,0.4) 0%, rgba(10,5,2,0.8) 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%;
  filter: blur(2px);
  animation: wf-veil 8s ease-in-out infinite alternate;
}
@keyframes wf-bg {
  0% { opacity: 0.8; } 50% { opacity: 0.9; } 100% { opacity: 0.75; }
}
@keyframes wf-figure {
  0% { transform: translateX(-50%) scaleY(1); }
  50% { transform: translateX(-50%) scaleY(1.02) rotate(1deg); }
  100% { transform: translateX(-50%) scaleY(1) rotate(-1deg); }
}
@keyframes wf-flame {
  0% { transform: scale(0.85) translateY(1px); opacity: 0.7; }
  50% { transform: scale(1.1) translateY(-2px); opacity: 1; }
  100% { transform: scale(0.9) translateY(0); opacity: 0.8; }
}
@keyframes wf-veil {
  0% { opacity: 0.3; filter: blur(3px); }
  50% { opacity: 0.5; filter: blur(1px); }
  100% { opacity: 0.4; filter: blur(2px); }
}

/* nora-good-fortune */
.scn-nora-good-fortune {
  background: 
    linear-gradient(180deg, #5a3015 0%, #3a1a0a 50%, #1a0a04 100%),
    radial-gradient(ellipse at 40% 50%, #a05020 0%, transparent 70%);
}
.scn-nora-good-fortune .bg {
  position: absolute; inset: 0; background: radial-gradient(ellipse at 50% 40%, #6a3015 0%, #1a0a04 100%);
  animation: ng-bg 25s ease-in-out infinite alternate;
}
.scn-nora-good-fortune .fireplace {
  position: absolute; bottom: 28%; left: 50%; transform: translateX(-50%);
  width: 130px; height: 110px;
  background: linear-gradient(180deg, #6a4020 0%, #3a2010 100%);
  border-radius: 6% 6% 10% 10% / 8% 8% 12% 12%;
  box-shadow: inset 0 -14px 24px rgba(0,0,0,.6);
}
.scn-nora-good-fortune .flame {
  position: absolute; bottom: 32%; left: 50%; transform: translateX(-50%);
  width: 50px; height: 60px;
  background: radial-gradient(ellipse at 50% 80%, #e09040 0%, #b06020 40%, transparent 70%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: ng-flame 1.8s ease-in-out infinite alternate;
}
.scn-nora-good-fortune .table {
  position: absolute; bottom: 18%; left: 30%; width: 100px; height: 8px;
  background: linear-gradient(90deg, #5a3015, #3a1a0a);
  border-radius: 2px;
  box-shadow: 0 6px 12px rgba(0,0,0,.5);
}
.scn-nora-good-fortune .letter {
  position: absolute; bottom: 22%; left: 45%; width: 20px; height: 15px;
  background: linear-gradient(135deg, #d0b080 0%, #a08050 100%);
  border-radius: 1px;
  transform: rotate(5deg);
  box-shadow: 0 4px 6px rgba(0,0,0,.3);
  animation: ng-letter 4s ease-in-out infinite alternate;
}
.scn-nora-good-fortune .figure {
  position: absolute; bottom: 20%; left: 58%; width: 22px; height: 45px;
  background: linear-gradient(180deg, #2a1a0a 0%, #1a0e04 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 45% 45%;
  transform-origin: bottom center;
  animation: ng-figure 3.5s ease-in-out infinite alternate;
}
.scn-nora-good-fortune .sparkle {
  position: absolute; width: 6px; height: 6px;
  background: radial-gradient(circle, #ffd080 0%, transparent 70%);
  border-radius: 50%;
  box-shadow: 0 0 10px 3px rgba(255,200,80,.6);
}
.scn-nora-good-fortune .sparkle-a {
  top: 30%; left: 20%; animation: ng-sparkle-a 3s ease-in-out infinite alternate;
}
.scn-nora-good-fortune .sparkle-b {
  top: 35%; right: 25%; animation: ng-sparkle-b 4.2s ease-in-out infinite alternate-reverse;
}
@keyframes ng-bg {
  0% { opacity: 0.85; } 50% { opacity: 1; } 100% { opacity: 0.9; }
}
@keyframes ng-flame {
  0% { transform: translateX(-50%) scaleY(0.9); opacity: 0.7; }
  50% { transform: translateX(-50%) scaleY(1.2); opacity: 1; }
  100% { transform: translateX(-50%) scaleY(0.95); opacity: 0.8; }
}
@keyframes ng-letter {
  0% { transform: rotate(4deg) translateY(0); }
  50% { transform: rotate(6deg) translateY(-2px); }
  100% { transform: rotate(4deg) translateY(0); }
}
@keyframes ng-figure {
  0% { transform: translateY(0) rotate(-2deg) scaleY(1); }
  50% { transform: translateY(-3px) rotate(1deg) scaleY(1.03); }
  100% { transform: translateY(0) rotate(-1deg) scaleY(1); }
}
@keyframes ng-sparkle-a {
  0% { opacity: 0.3; transform: scale(0.5) translate(0, 0); }
  50% { opacity: 1; transform: scale(1.5) translate(5px, -5px); }
  100% { opacity: 0.4; transform: scale(0.8) translate(2px, -2px); }
}
@keyframes ng-sparkle-b {
  0% { opacity: 0.2; transform: scale(0.4) translate(0, 0); }
  50% { opacity: 1; transform: scale(1.8) translate(-4px, 6px); }
  100% { opacity: 0.3; transform: scale(0.6) translate(-1px, 2px); }
}

/* Nora Arrives Home – firelit interior cutaway */
.scn-nora-arrives-home {
  background:
    linear-gradient(180deg, #2a1f1a 0%, #3a2f2a 50%, #1f1410 100%),
    radial-gradient(ellipse at 60% 80%, #7a5a3a 0%, transparent 60%);
}
.scn-nora-arrives-home .room-wall {
  position: absolute; inset: 0; background: linear-gradient(180deg, #4a3a30 0%, #2a1f1a 100%);
  animation: na1-wall 12s ease-in-out infinite alternate;
}
.scn-nora-arrives-home .stove-glow {
  position: absolute; bottom: 20%; left: 30%; width: 60px; height: 80px;
  background: radial-gradient(circle at 50% 80%, #d08040 0%, #a04520 50%, transparent 90%);
  border-radius: 30% 30% 20% 20%; filter: blur(4px);
  animation: na1-fire 2s ease-in-out infinite alternate;
}
.scn-nora-arrives-home .christmas-tree {
  position: absolute; bottom: 10%; right: 25%; width: 80px; height: 120px;
  background: linear-gradient(180deg, #3a6a2a 0%, #2a4a1a 100%);
  clip-path: polygon(50% 0%, 0% 100%, 100% 100%);
  animation: na1-tree 5s ease-in-out infinite;
}
.scn-nora-arrives-home .figure-arriving {
  position: absolute; bottom: 5%; left: 40%; width: 24px; height: 60px;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%;
  transform-origin: bottom center;
  animation: na1-walk 4s ease-in-out infinite;
}
.scn-nora-arrives-home .parcels {
  position: absolute; bottom: 8%; left: 50%; width: 30px; height: 20px;
  background: linear-gradient(135deg, #8a6030 0%, #5a4020 100%);
  border-radius: 10%; border: 2px solid #b08050;
  animation: na1-bob 6s ease-in-out infinite;
}
.scn-nora-arrives-home .piano {
  position: absolute; bottom: 0%; left: 65%; width: 100px; height: 60px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a1a0a 100%);
  border-radius: 10% 10% 0 0; box-shadow: 0 -4px 12px rgba(0,0,0,.6);
}
.scn-nora-arrives-home .candle-flicker {
  position: absolute; bottom: 55%; left: 55%; width: 4px; height: 10px;
  background: #f0c060; border-radius: 50% 50% 0 0;
  box-shadow: 0 0 12px 4px #f0c060, 0 0 24px 8px rgba(240,192,96,.3);
  animation: na1-candle 1.5s ease-in-out infinite alternate;
}
@keyframes na1-wall { 0% { opacity: .8 } 50% { opacity: .95 } 100% { opacity: .7 } }
@keyframes na1-fire { 0% { transform: scale(1) translateY(0); opacity: .8 } 50% { transform: scale(1.05) translateY(-2px); opacity: 1 } 100% { transform: scale(.95) translateY(1px); opacity: .75 } }
@keyframes na1-tree { 0% { transform: scale(1) rotate(0deg) } 25% { transform: scale(1.02) rotate(-1deg) } 75% { transform: scale(.98) rotate(1deg) } 100% { transform: scale(1) rotate(0deg) } }
@keyframes na1-walk { 0% { transform: translateX(0) translateY(0) rotate(-2deg) } 25% { transform: translateX(8px) translateY(-1px) rotate(1deg) } 50% { transform: translateX(16px) translateY(0) rotate(-1deg) } 75% { transform: translateX(24px) translateY(-1px) rotate(2deg) } 100% { transform: translateX(32px) translateY(0) rotate(0deg) } }
@keyframes na1-bob { 0% { transform: translateY(0) } 50% { transform: translateY(-3px) } 100% { transform: translateY(0) } }
@keyframes na1-candle { 0% { height: 10px; opacity: .7 } 50% { height: 14px; opacity: 1 } 100% { height: 8px; opacity: .6 } }

/* Lark and Squirrel – warm close-up conversation */
.scn-lark-and-squirrel {
  background:
    linear-gradient(135deg, #2a1f15 0%, #4a3525 50%, #1a0f0a 100%),
    radial-gradient(ellipse at 30% 50%, #7a5a3a 0%, transparent 70%);
}
.scn-lark-and-squirrel .room-corner {
  position: absolute; inset: 0; background: linear-gradient(90deg, #3a2a1a 0%, #1a1a1a 100%);
  animation: lk2-wall 15s ease-in-out infinite alternate;
}
.scn-lark-and-squirrel .fireplace {
  position: absolute; bottom: 10%; left: 5%; width: 120px; height: 100px;
  background: radial-gradient(ellipse at 50% 70%, #d08040 0%, #8a4020 50%, transparent 100%);
  border-radius: 20% 20% 0 0; filter: blur(8px);
  animation: lk2-fire 2s ease-in-out infinite alternate;
}
.scn-lark-and-squirrel .figure-left {
  position: absolute; bottom: 5%; left: 30%; width: 30px; height: 70px;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 45% 35% 30% 30% / 50% 45% 40% 40%;
  transform: rotate(5deg); transform-origin: bottom center;
  animation: lk2-left 6s ease-in-out infinite;
}
.scn-lark-and-squirrel .figure-right {
  position: absolute; bottom: 5%; right: 25%; width: 34px; height: 75px;
  background: linear-gradient(180deg, #2a1a1a 0%, #1a0a0a 100%);
  border-radius: 35% 45% 30% 30% / 45% 50% 40% 40%;
  transform: rotate(-5deg); transform-origin: bottom center;
  animation: lk2-right 7s ease-in-out infinite;
}
.scn-lark-and-squirrel .warm-haze {
  position: absolute; inset: 0; background: radial-gradient(ellipse at 50% 60%, rgba(200,140,60,0.15) 0%, transparent 70%);
  animation: lk2-haze 10s ease-in-out infinite alternate;
}
.scn-lark-and-squirrel .lark-glow {
  position: absolute; top: 30%; left: 40%; width: 12px; height: 12px;
  background: radial-gradient(circle, #f0d080 0%, transparent 60%);
  border-radius: 50%; filter: blur(4px);
  animation: lk2-glow 4s ease-in-out infinite alternate;
}
@keyframes lk2-wall { 0% { opacity: .7 } 50% { opacity: .9 } 100% { opacity: .6 } }
@keyframes lk2-fire { 0% { transform: scaleY(.9); opacity: .7 } 50% { transform: scaleY(1.1); opacity: 1 } 100% { transform: scaleY(.95); opacity: .8 } }
@keyframes lk2-left { 0% { transform: rotate(3deg) translateY(0) } 25% { transform: rotate(6deg) translateY(-2px) } 50% { transform: rotate(2deg) translateY(0) } 75% { transform: rotate(7deg) translateY(-1px) } 100% { transform: rotate(3deg) translateY(0) } }
@keyframes lk2-right { 0% { transform: rotate(-3deg) translateY(0) } 25% { transform: rotate(-7deg) translateY(-1px) } 50% { transform: rotate(-2deg) translateY(0) } 75% { transform: rotate(-6deg) translateY(-2px) } 100% { transform: rotate(-3deg) translateY(0) } }
@keyframes lk2-haze { 0% { opacity: .3 } 50% { opacity: .6 } 100% { opacity: .4 } }
@keyframes lk2-glow { 0% { opacity: .4; transform: scale(1) } 50% { opacity: 1; transform: scale(1.5) } 100% { opacity: .6; transform: scale(.8) } }

/* Borrowing and Debt – tense firelit close-up with shadows */
.scn-borrowing-and-debt {
  background:
    linear-gradient(180deg, #1a0a0a 0%, #2a1f1a 50%, #0f0505 100%),
    radial-gradient(ellipse at 40% 70%, #5a2a1a 0%, transparent 60%);
}
.scn-borrowing-and-debt .shadows-deep {
  position: absolute; inset: 0; background: linear-gradient(135deg, #0a0505 30%, #1a0a0a 100%);
  animation: bd3-dark 8s ease-in-out infinite alternate;
}
.scn-borrowing-and-debt .table {
  position: absolute; bottom: 0%; left: 10%; width: 80%; height: 30px;
  background: linear-gradient(180deg, #2a1a0a 0%, #1a0a00 100%);
  border-radius: 10% 10% 0 0; box-shadow: 0 -4px 12px rgba(0,0,0,.8);
}
.scn-borrowing-and-debt .figure-seated {
  position: absolute; bottom: 5%; left: 15%; width: 28px; height: 55px;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%;
  transform: rotate(-3deg) translateX(0);
  animation: bd3-seated 3s ease-in-out infinite;
}
.scn-borrowing-and-debt .figure-standing {
  position: absolute; bottom: 5%; right: 20%; width: 30px; height: 70px;
  background: linear-gradient(180deg, #2a1a1a 0%, #0a0505 100%);
  border-radius: 35% 45% 30% 30% / 45% 50% 40% 40%;
  transform: rotate(5deg);
  animation: bd3-standing 4s ease-in-out infinite;
}
.scn-borrowing-and-debt .coal-glare {
  position: absolute; bottom: 15%; left: 50%; width: 80px; height: 60px;
  background: radial-gradient(ellipse at 50% 80%, #c05a2a 0%, #8a3010 50%, transparent 100%);
  filter: blur(10px);
  animation: bd3-glare 1.8s ease-in-out infinite alternate;
}
.scn-borrowing-and-debt .slate-shadow {
  position: absolute; top: 10%; left: 60%; width: 30px; height: 30px;
  background: radial-gradient(circle, #2a1a1a 0%, transparent 80%);
  border-radius: 10%;
  animation: bd3-slate 5s ease-in-out infinite;
}
.scn-borrowing-and-debt .anxiety-pulse {
  position: absolute; inset: 0; background: radial-gradient(circle at 50% 50%, rgba(80,20,10,0.2) 0%, transparent 70%);
  animation: bd3-pulse 2s ease-in-out infinite;
}
@keyframes bd3-dark { 0% { opacity: .6 } 50% { opacity: .9 } 100% { opacity: .5 } }
@keyframes bd3-seated { 0% { transform: rotate(-2deg) translateX(0) } 25% { transform: rotate(-1deg) translateX(2px) } 50% { transform: rotate(-4deg) translateX(-1px) } 75% { transform: rotate(-2deg) translateX(3px) } 100% { transform: rotate(-3deg) translateX(0) } }
@keyframes bd3-standing { 0% { transform: rotate(3deg) translateY(0) } 25% { transform: rotate(6deg) translateY(-2px) } 50% { transform: rotate(2deg) translateY(0) } 75% { transform: rotate(5deg) translateY(-1px) } 100% { transform: rotate(3deg) translateY(0) } }
@keyframes bd3-glare { 0% { opacity: .5; transform: scale(.8) } 50% { opacity: 1; transform: scale(1.2) } 100% { opacity: .6; transform: scale(.9) } }
@keyframes bd3-slate { 0% { transform: translateY(0) rotate(0deg) } 25% { transform: translateY(-10px) rotate(10deg) } 50% { transform: translateY(0) rotate(-5deg) } 75% { transform: translateY(-8px) rotate(15deg) } 100% { transform: translateY(0) rotate(0deg) } }
@keyframes bd3-pulse { 0% { opacity: .2; transform: scale(1) } 50% { opacity: .5; transform: scale(1.08) } 100% { opacity: .2; transform: scale(1) } }

/* Christmas Presents – warm firelit gift scene */
.scn-christmas-presents {
  background:
    linear-gradient(180deg, #1a1a0a 0%, #2a2a1a 50%, #0f0f05 100%),
    radial-gradient(ellipse at 50% 80%, #6a4a2a 0%, transparent 60%);
}
.scn-christmas-presents .floor-warm {
  position: absolute; bottom: 0%; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a1a0a 100%);
  border-radius: 30% 70% 0 0 / 20% 40% 0 0;
}
.scn-christmas-presents .gift-pile {
  position: absolute; bottom: 5%; left: 10%; width: 70%; height: 50%;
  background:
    radial-gradient(ellipse at 30% 80%, #b08050 30%, transparent 31%),
    radial-gradient(ellipse at 60% 70%, #8a6030 25%, transparent 26%),
    radial-gradient(ellipse at 80% 90%, #7a5020 20%, transparent 21%);
  filter: blur(2px);
  animation: cp4-pile 8s ease-in-out infinite alternate;
}
.scn-christmas-presents .tree-glint {
  position: absolute; bottom: 15%; right: 15%; width: 60px; height: 90px;
  background: linear-gradient(180deg, #3a6a2a 0%, #2a4a1a 100%);
  clip-path: polygon(50% 0%, 0% 100%, 100% 100%);
  box-shadow: 0 0 20px 5px rgba(180,120,40,0.3);
  animation: cp4-tree 6s ease-in-out infinite;
}
.scn-christmas-presents .figure-kneeling {
  position: absolute; bottom: 0%; left: 35%; width: 22px; height: 40px;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%;
  transform: scaleY(.8); transform-origin: bottom center;
  animation: cp4-kneel 4s ease-in-out infinite;
}
.scn-christmas-presents .ribbon-loop {
  position: absolute; bottom: 25%; left: 45%; width: 8px; height: 14px;
  background: linear-gradient(180deg, #d08050 0%, #a05030 100%);
  border-radius: 50% 50% 0 0;
  animation: cp4-ribbon 3s ease-in-out infinite alternate;
}
.scn-christmas-presents .candle-wax {
  position: absolute; bottom: 70%; left: 55%; width: 6px; height: 16px;
  background: linear-gradient(180deg, #e0c080 0%, #b09050 100%);
  border-radius: 30% 30% 10% 10%;
  animation: cp4-wax 7s ease-in-out infinite;
}
.scn-christmas-presents .joy-sparkle {
  position: absolute; inset: 0; background: radial-gradient(circle at 50% 50%, rgba(255,200,100,0.1) 0%, transparent 60%);
  animation: cp4-sparkle 2s ease-in-out infinite alternate;
}
@keyframes cp4-pile { 0% { transform: scaleY(1) } 50% { transform: scaleY(1.03) } 100% { transform: scaleY(.98) } }
@keyframes cp4-tree { 0% { transform: scale(1) rotate(0deg) } 25% { transform: scale(1.02) rotate(-1deg) } 75% { transform: scale(.98) rotate(1deg) } 100% { transform: scale(1) rotate(0deg) } }
@keyframes cp4-kneel { 0% { transform: scaleY(.8) translateY(0) } 25% { transform: scaleY(.82) translateY(-1px) } 50% { transform: scaleY(.78) translateY(0) } 75% { transform: scaleY(.81) translateY(-1px) } 100% { transform: scaleY(.8) translateY(0) } }
@keyframes cp4-ribbon { 0% { transform: translateY(0) rotate(0deg) } 50% { transform: translateY(-3px) rotate(15deg) } 100% { transform: translateY(0) rotate(-5deg) } }
@keyframes cp4-wax { 0% { height: 16px; opacity: .8 } 50% { height: 20px; opacity: 1 } 100% { height: 14px; opacity: .7 } }
@keyframes cp4-sparkle { 0% { opacity: .2 } 50% { opacity: .5 } 100% { opacity: .3 } }

/* ---- krogstad-again ---- */
.scn-krogstad-again {
  background: 
    linear-gradient(180deg, #1a1410 0%, #2a1e14 40%, #3a2a1a 100%),
    radial-gradient(ellipse at 60% 60%, #4a3a2a 0%, transparent 70%);
}
.scn-krogstad-again .wall-left {
  position: absolute; left: 0; top: 0; width: 20%; height: 100%;
  background: linear-gradient(90deg, #1a1410 0%, #2a1e14 100%);
  box-shadow: inset -10px 0 20px rgba(0,0,0,0.6);
}
.scn-krogstad-again .wall-right {
  position: absolute; right: 0; top: 0; width: 30%; height: 100%;
  background: linear-gradient(270deg, #1a1410 0%, #2a1e14 100%);
  box-shadow: inset 10px 0 20px rgba(0,0,0,0.6);
}
.scn-krogstad-again .floor {
  position: absolute; bottom: 0; left: 0; width: 100%; height: 25%;
  background: linear-gradient(180deg, #2a1e14 0%, #0f0a06 100%);
}
.scn-krogstad-again .door {
  position: absolute; left: 35%; top: 10%; width: 30%; height: 75%;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a1410 100%);
  border-left: 4px solid #4a3a2a;
  border-right: 4px solid #1a1410;
  border-radius: 2px;
  box-shadow: inset 0 0 20px rgba(0,0,0,0.5);
  animation: kr-door 6s ease-in-out infinite alternate;
}
.scn-krogstad-again .figure {
  position: absolute; left: 40%; bottom: 25%; width: 15%; height: 55%;
  background: linear-gradient(180deg, #1a1a1a 0%, #0a0a0a 100%);
  border-radius: 40% 40% 20% 20% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: kr-figure 4s ease-in-out infinite alternate;
}
.scn-krogstad-again .hat {
  position: absolute; left: 42%; bottom: 72%; width: 16%; height: 10%;
  background: linear-gradient(180deg, #2a2a2a 0%, #1a1a1a 100%);
  border-radius: 50% 50% 30% 30% / 80% 80% 20% 20%;
  animation: kr-hat 4s ease-in-out infinite alternate;
}
.scn-krogstad-again .lamp {
  position: absolute; left: 70%; top: 15%; width: 6%; height: 8%;
  background: radial-gradient(circle at 50% 80%, #ffd080 0%, #b08040 60%, #4a3020 100%);
  border-radius: 30% 30% 10% 10%;
  box-shadow: 0 0 30px 10px #b08040;
  animation: kr-lamp-flicker 2s ease-in-out infinite alternate;
}
.scn-krogstad-again .glow {
  position: absolute; left: 65%; top: 10%; width: 20%; height: 20%;
  background: radial-gradient(circle at 50% 50%, rgba(255,208,128,0.3) 0%, transparent 70%);
  filter: blur(10px);
  pointer-events: none;
}
@keyframes kr-door { 0% { transform: scaleX(1) translateX(0); } 100% { transform: scaleX(1.02) translateX(5px); } }
@keyframes kr-figure { 0% { transform: translateY(0) rotate(-1deg); } 50% { transform: translateY(-3px) rotate(1deg); } 100% { transform: translateY(0) rotate(0); } }
@keyframes kr-hat { 0% { transform: translateY(0) rotate(0); } 100% { transform: translateY(-2px) rotate(2deg); } }
@keyframes kr-lamp-flicker { 0% { opacity: 0.7; box-shadow: 0 0 20px 5px #b08040; } 50% { opacity: 1; box-shadow: 0 0 40px 15px #ffd080; } 100% { opacity: 0.8; box-shadow: 0 0 25px 8px #b08040; } }

/* ---- krogstad-wavers ---- */
.scn-krogstad-wavers {
  background:
    linear-gradient(180deg, #1e1612 0%, #2a1e14 50%, #1a1410 100%),
    radial-gradient(ellipse at 50% 70%, #3a2a1a 0%, transparent 60%);
}
.scn-krogstad-wavers .table {
  position: absolute; bottom: 30%; left: 20%; width: 60%; height: 12%;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a1410 100%);
  border-radius: 4px 4px 8px 8px;
  box-shadow: 0 8px 16px rgba(0,0,0,0.6);
}
.scn-krogstad-wavers .chair-left {
  position: absolute; bottom: 36%; left: 15%; width: 12%; height: 25%;
  background: linear-gradient(180deg, #2a1e14 0%, #0f0a06 100%);
  border-radius: 20% 20% 5% 5%;
  transform-origin: bottom center;
  animation: kw-chair 7s ease-in-out infinite alternate;
}
.scn-krogstad-wavers .chair-right {
  position: absolute; bottom: 36%; right: 15%; width: 12%; height: 25%;
  background: linear-gradient(180deg, #2a1e14 0%, #0f0a06 100%);
  border-radius: 20% 20% 5% 5%;
  animation: kw-chair 7s ease-in-out infinite alternate-reverse;
}
.scn-krogstad-wavers .lamp {
  position: absolute; top: 10%; left: 45%; width: 8%; height: 12%;
  background: radial-gradient(circle at 50% 80%, #ffd080 0%, #b08040 50%, #4a3020 100%);
  border-radius: 50% 50% 10% 10%;
  box-shadow: 0 0 30px 10px #b08040;
  animation: kw-lamp 3s ease-in-out infinite alternate;
}
.scn-krogstad-wavers .letter {
  position: absolute; bottom: 35%; left: 42%; width: 16%; height: 6%;
  background: linear-gradient(135deg, #e8dcc0 0%, #c0b090 100%);
  border-radius: 2px;
  box-shadow: 0 2px 4px rgba(0,0,0,0.4);
  animation: kw-letter 5s ease-in-out infinite alternate;
}
.scn-krogstad-wavers .hand-left {
  position: absolute; bottom: 34%; left: 32%; width: 10%; height: 14%;
  background: linear-gradient(180deg, #c8b8a0 0%, #a09070 100%);
  border-radius: 50% 20% 30% 40% / 60% 20% 40% 30%;
  transform-origin: 30% 100%;
  animation: kw-hand 6s ease-in-out infinite alternate;
}
.scn-krogstad-wavers .hand-right {
  position: absolute; bottom: 34%; right: 32%; width: 10%; height: 14%;
  background: linear-gradient(180deg, #c8b8a0 0%, #a09070 100%);
  border-radius: 20% 50% 40% 30% / 20% 60% 30% 40%;
  transform-origin: 70% 100%;
  animation: kw-hand 6s ease-in-out infinite alternate-reverse;
}
@keyframes kw-chair { 0% { transform: rotate(0); } 50% { transform: rotate(2deg); } 100% { transform: rotate(-1deg); } }
@keyframes kw-lamp { 0% { opacity: 0.8; box-shadow: 0 0 20px 8px #b08040; } 50% { opacity: 1; box-shadow: 0 0 40px 15px #ffd080; } 100% { opacity: 0.9; box-shadow: 0 0 30px 10px #b08040; } }
@keyframes kw-letter { 0% { transform: translateY(0) rotate(-1deg); } 50% { transform: translateY(-2px) rotate(1deg); } 100% { transform: translateY(0) rotate(0); } }
@keyframes kw-hand { 0% { transform: rotate(0) scaleY(1); } 50% { transform: rotate(5deg) scaleY(1.05); } 100% { transform: rotate(-5deg) scaleY(1); } }

/* ---- krogstad-letter-in-box ---- */
.scn-krogstad-letter-in-box {
  background:
    linear-gradient(180deg, #1a1410 0%, #2a1e14 60%, #0f0a06 100%),
    radial-gradient(ellipse at 50% 40%, #3a2a1a 0%, transparent 70%);
}
.scn-krogstad-letter-in-box .box {
  position: absolute; left: 35%; top: 25%; width: 30%; height: 30%;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a1410 100%);
  border-radius: 8px;
  box-shadow: 0 6px 12px rgba(0,0,0,0.7);
  animation: kl-box 10s ease-in-out infinite alternate;
}
.scn-krogstad-letter-in-box .slot {
  position: absolute; left: 40%; top: 20%; width: 20%; height: 4%;
  background: #0f0a06;
  border-radius: 2px;
  z-index: 2;
}
.scn-krogstad-letter-in-box .envelope {
  position: absolute; left: 36%; top: 18%; width: 28%; height: 8%;
  background: linear-gradient(135deg, #e8dcc0 0%, #c0b090 100%);
  border-radius: 2px;
  box-shadow: 0 1px 3px rgba(0,0,0,0.5);
  animation: kl-envelope 8s ease-in-out infinite alternate;
}
.scn-krogstad-letter-in-box .hand {
  position: absolute; left: 20%; top: 15%; width: 18%; height: 22%;
  background: linear-gradient(180deg, #c8b8a0 0%, #a09070 100%);
  border-radius: 60% 30% 40% 50% / 40% 60% 30% 50%;
  transform-origin: 20% 40%;
  animation: kl-hand 8s ease-in-out infinite alternate;
}
.scn-krogstad-letter-in-box .lamp-glow {
  position: absolute; left: 60%; top: 8%; width: 30%; height: 30%;
  background: radial-gradient(circle at 50% 50%, rgba(255,208,128,0.25) 0%, transparent 70%);
  filter: blur(12px);
  pointer-events: none;
}
@keyframes kl-box { 0% { transform: scale(1); } 100% { transform: scale(1.01) translateY(2px); } }
@keyframes kl-envelope { 0% { transform: translateX(0) rotate(0); } 50% { transform: translateX(15%) rotate(3deg); } 100% { transform: translateX(0) rotate(0); } }
@keyframes kl-hand { 0% { transform: translateX(0) rotate(0); } 50% { transform: translateX(15%) rotate(10deg); } 100% { transform: translateX(0) rotate(0); } }

/* ---- nora-contemplates-suicide ---- */
.scn-nora-contemplates-suicide {
  background:
    linear-gradient(180deg, #0a0a14 0%, #0f1420 40%, #0a0a10 100%),
    radial-gradient(ellipse at 50% 70%, #0f1420 0%, transparent 60%);
}
.scn-nora-contemplates-suicide .sky {
  position: absolute; inset: 0 0 55% 0;
  background: linear-gradient(180deg, #0f1420 0%, #1a2030 40%, #0a0a14 100%);
  animation: nc-sky 20s ease-in-out infinite alternate;
}
.scn-nora-contemplates-suicide .water {
  position: absolute; bottom: 0; left: 0; width: 100%; height: 55%;
  background: linear-gradient(180deg, #0a0e1a 0%, #0f1420 60%, #0a0a14 100%);
  animation: nc-water 15s ease-in-out infinite alternate;
}
.scn-nora-contemplates-suicide .ice {
  position: absolute; bottom: 30%; left: 20%; width: 60%; height: 10%;
  background: linear-gradient(180deg, rgba(200,220,240,0.2) 0%, rgba(200,220,240,0.05) 100%);
  border-radius: 50% 50% 10% 10%;
  filter: blur(4px);
  animation: nc-ice 12s ease-in-out infinite alternate;
}
.scn-nora-contemplates-suicide .pier {
  position: absolute; bottom: 35%; left: 30%; width: 40%; height: 8%;
  background: linear-gradient(180deg, #1a1410 0%, #0f0a06 100%);
  border-radius: 2px 2px 10px 10px;
  box-shadow: 0 -2px 10px rgba(0,0,0,0.6);
}
.scn-nora-contemplates-suicide .lamp-post {
  position: absolute; bottom: 38%; left: 50%; width: 4%; height: 30%;
  background: linear-gradient(180deg, #2a1e14 0%, #1a1410 100%);
  border-radius: 2px;
  transform: translateX(-50%);
}
.scn-nora-contemplates-suicide .lamp-glow {
  position: absolute; bottom: 55%; left: 45%; width: 20%; height: 25%;
  background: radial-gradient(circle at 50% 80%, rgba(255,208,128,0.3) 0%, rgba(200,160,80,0.1) 40%, transparent 70%);
  filter: blur(8px);
  pointer-events: none;
  animation: nc-glow-flicker 4s ease-in-out infinite alternate;
}
.scn-nora-contemplates-suicide .figure {
  position: absolute; bottom: 38%; left: 48%; width: 8%; height: 20%;
  background: linear-gradient(180deg, #0f0a14 0%, #050308 100%);
  border-radius: 40% 40% 20% 20% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: nc-figure 6s ease-in-out infinite alternate;
}
@keyframes nc-sky { 0% { opacity: 0.6; } 50% { opacity: 0.8; } 100% { opacity: 0.5; } }
@keyframes nc-water { 0% { transform: translateY(0); } 100% { transform: translateY(5px); } }
@keyframes nc-ice { 0% { transform: scaleX(1) translateX(0); opacity: 0.3; } 50% { transform: scaleX(1.05) translateX(10px); opacity: 0.5; } 100% { transform: scaleX(1) translateX(0); opacity: 0.3; } }
@keyframes nc-glow-flicker { 0% { opacity: 0.7; } 50% { opacity: 1; } 100% { opacity: 0.8; } }
@keyframes nc-figure { 0% { transform: translateY(0) rotate(0); } 50% { transform: translateY(-2px) rotate(2deg); } 100% { transform: translateY(0) rotate(-1deg); } }

/* Scene 1: nora-impotent */
.scn-nora-impotent {
  background:
    radial-gradient(ellipse at 50% 60%, #4a2a1a 0%, transparent 50%),
    linear-gradient(180deg, #1a0e0a 0%, #2a1810 40%, #3a2018 100%);
}
.scn-nora-impotent .room-bg {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, #2a1810 0%, #1a0e0a 100%);
  opacity: 0.6;
}
.scn-nora-impotent .fire {
  position: absolute; bottom: 20%; left: 50%; width: 60px; height: 80px;
  transform: translateX(-50%);
  background: radial-gradient(ellipse at 50% 100%, #ff8c42 0%, #c8553d 30%, #5e1a1d 60%, transparent 80%);
  border-radius: 50% 50% 20% 20%;
  box-shadow: 0 0 60px 20px rgba(200,85,61,0.6), 0 0 120px 40px rgba(94,26,29,0.3);
  animation: ni-fire 2s ease-in-out infinite alternate;
}
.scn-nora-impotent .figure-left {
  position: absolute; bottom: 18%; left: 25%;
  width: 40px; height: 90px;
  background: linear-gradient(180deg, #2a1a12 0%, #0e0805 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: ni-figure-left 6s ease-in-out infinite;
}
.scn-nora-impotent .figure-right {
  position: absolute; bottom: 18%; right: 25%;
  width: 45px; height: 100px;
  background: linear-gradient(180deg, #1f1410 0%, #0a0604 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: ni-figure-right 8s ease-in-out infinite;
}
.scn-nora-impotent .shadow-left {
  position: absolute; bottom: 18%; left: 18%;
  width: 60px; height: 80px;
  background: radial-gradient(ellipse, rgba(0,0,0,0.5) 0%, transparent 70%);
  border-radius: 50%;
  animation: ni-shadow 10s ease-in-out infinite alternate;
}
.scn-nora-impotent .shadow-right {
  position: absolute; bottom: 18%; right: 18%;
  width: 60px; height: 80px;
  background: radial-gradient(ellipse, rgba(0,0,0,0.4) 0%, transparent 70%);
  border-radius: 50%;
  animation: ni-shadow 10s ease-in-out infinite alternate-reverse;
}
.scn-nora-impotent .ember-a {
  position: absolute; bottom: 22%; left: 48%;
  width: 6px; height: 6px;
  background: #ffb060;
  border-radius: 50%;
  box-shadow: 0 0 8px 2px rgba(255,176,96,0.8);
  animation: ni-ember-a 3s ease-in-out infinite;
}
.scn-nora-impotent .ember-b {
  position: absolute; bottom: 21%; left: 52%;
  width: 4px; height: 4px;
  background: #ff8040;
  border-radius: 50%;
  box-shadow: 0 0 6px 1px rgba(255,128,64,0.7);
  animation: ni-ember-b 4s ease-in-out infinite 1.5s;
}
@keyframes ni-fire {
  0% { transform: translateX(-50%) scale(1); opacity: 0.9; box-shadow: 0 0 60px 20px rgba(200,85,61,0.6); }
  50% { transform: translateX(-50%) scale(1.05, 0.95); opacity: 1; box-shadow: 0 0 80px 30px rgba(200,85,61,0.7); }
  100% { transform: translateX(-50%) scale(0.95, 1.05); opacity: 0.8; box-shadow: 0 0 50px 15px rgba(200,85,61,0.4); }
}
@keyframes ni-figure-left {
  0%,100% { transform: translateX(0) translateY(0) rotate(-1deg); }
  25% { transform: translateX(3px) translateY(-2px) rotate(1deg); }
  50% { transform: translateX(0) translateY(0) rotate(0); }
  75% { transform: translateX(-3px) translateY(-1px) rotate(-2deg); }
}
@keyframes ni-figure-right {
  0%,100% { transform: translateX(0) translateY(0) rotate(1deg); }
  33% { transform: translateX(-4px) translateY(-1px) rotate(0); }
  66% { transform: translateX(2px) translateY(0) rotate(2deg); }
}
@keyframes ni-shadow {
  0% { opacity: 0.3; transform: scaleX(1); }
  50% { opacity: 0.6; transform: scaleX(1.2); }
  100% { opacity: 0.2; transform: scaleX(0.9); }
}
@keyframes ni-ember-a {
  0% { transform: translate(0, 0) rotate(0deg); opacity: 1; }
  50% { transform: translate(2px, -10px) rotate(40deg); opacity: 0.5; }
  100% { transform: translate(-2px, -20px) rotate(80deg); opacity: 0; }
}
@keyframes ni-ember-b {
  0% { transform: translate(0, 0) rotate(0deg); opacity: 1; }
  50% { transform: translate(-3px, -12px) rotate(-30deg); opacity: 0.6; }
  100% { transform: translate(3px, -22px) rotate(-60deg); opacity: 0; }
}

/* Scene 2: krogstad-reveals-forged-bond */
.scn-krogstad-reveals-forged-bond {
  background:
    radial-gradient(ellipse at 50% 70%, #4a2a1a 0%, transparent 60%),
    linear-gradient(180deg, #1a0e0a 0%, #2a1810 40%, #1a0e0a 100%);
}
.scn-krogstad-reveals-forged-bond .desk {
  position: absolute; bottom: 0; left: 10%; right: 10%; height: 40%;
  background: linear-gradient(180deg, #3a2218 0%, #1a100a 100%);
  border-radius: 10% 10% 0 0;
  box-shadow: inset 0 8px 20px rgba(0,0,0,0.6);
}
.scn-krogstad-reveals-forged-bond .bond {
  position: absolute; bottom: 15%; left: 30%; width: 120px; height: 80px;
  background: linear-gradient(135deg, #c8a070 0%, #a08060 100%);
  border-radius: 4px;
  box-shadow: 0 4px 8px rgba(0,0,0,0.5);
  transform: rotate(-5deg);
  animation: kr-bond 10s ease-in-out infinite alternate;
}
.scn-krogstad-reveals-forged-bond .hand-pointing {
  position: absolute; bottom: 20%; right: 25%; width: 30px; height: 50px;
  background: linear-gradient(180deg, #2a1a12 0%, #0e0805 100%);
  border-radius: 50% 50% 40% 40% / 70% 70% 30% 30%;
  transform-origin: bottom left;
  animation: kr-hand-point 6s ease-in-out infinite;
}
.scn-krogstad-reveals-forged-bond .hand-resting {
  position: absolute; bottom: 12%; left: 28%; width: 28px; height: 45px;
  background: linear-gradient(180deg, #1f1410 0%, #0a0604 100%);
  border-radius: 50% 50% 40% 40% / 70% 70% 30% 30%;
  transform: rotate(10deg);
  animation: kr-hand-rest 12s ease-in-out infinite alternate;
}
.scn-krogstad-reveals-forged-bond .inkwell {
  position: absolute; bottom: 30%; left: 20%; width: 24px; height: 20px;
  background: radial-gradient(ellipse at 50% 80%, #2a1a12 0%, #0e0805 100%);
  border-radius: 40% 40% 20% 20%;
  box-shadow: 0 2px 4px rgba(0,0,0,0.4);
}
.scn-krogstad-reveals-forged-bond .candle {
  position: absolute; bottom: 28%; left: 10%; width: 8px; height: 40px;
  background: linear-gradient(180deg, #a08060 0%, #705040 100%);
  border-radius: 2px;
  animation: kr-candle 8s ease-in-out infinite alternate;
}
.scn-krogstad-reveals-forged-bond .candle-glow {
  position: absolute; bottom: 25%; left: 10%; width: 30px; height: 30px;
  background: radial-gradient(circle, #ffa050 0%, #c8553d 40%, transparent 70%);
  border-radius: 50%;
  transform: translate(-50%, -50%);
  animation: kr-candle-glow 4s ease-in-out infinite alternate;
}
.scn-krogstad-reveals-forged-bond .shadow-desk {
  position: absolute; bottom: 0; left: 5%; right: 5%; height: 20%;
  background: linear-gradient(180deg, rgba(0,0,0,0.3) 0%, transparent 100%);
}
@keyframes kr-bond {
  0%,100% { transform: rotate(-5deg) translateY(0); }
  50% { transform: rotate(-6deg) translateY(-2px); }
}
@keyframes kr-hand-point {
  0%,100% { transform: rotate(10deg) translate(0,0); }
  25% { transform: rotate(5deg) translate(2px, -1px); }
  50% { transform: rotate(12deg) translate(0,0); }
  75% { transform: rotate(8deg) translate(-1px, -1px); }
}
@keyframes kr-hand-rest {
  0% { transform: rotate(10deg) translateY(0); }
  50% { transform: rotate(8deg) translateY(2px); }
  100% { transform: rotate(12deg) translateY(0); }
}
@keyframes kr-candle {
  0%,100% { transform: scaleY(1) translateY(0); }
  50% { transform: scaleY(1.05) translateY(-2px); }
}
@keyframes kr-candle-glow {
  0% { opacity: 0.7; transform: translate(-50%, -50%) scale(1); }
  50% { opacity: 1; transform: translate(-50%, -50%) scale(1.2); }
  100% { opacity: 0.8; transform: translate(-50%, -50%) scale(0.9); }
}

/* Scene 3: bond-date-discrepancy */
.scn-bond-date-discrepancy {
  background:
    radial-gradient(ellipse at 50% 50%, #3a2a1a 0%, transparent 70%),
    linear-gradient(180deg, #1a0e0a 0%, #2a1810 50%, #1a0e0a 100%);
}
.scn-bond-date-discrepancy .calendar-bg {
  position: absolute; top: 10%; left: 20%; right: 20%; bottom: 20%;
  background: linear-gradient(135deg, #c8a070 0%, #b09060 100%);
  border-radius: 8px;
  box-shadow: 0 6px 12px rgba(0,0,0,0.5);
}
.scn-bond-date-discrepancy .calendar-date {
  position: absolute; top: 35%; left: 40%; width: 40px; height: 30px;
  background: #e0c8a0;
  border-radius: 4px;
  box-shadow: inset 0 -2px 0 rgba(0,0,0,0.2);
  text-align: center;
  font-size: 0; /* no text per rule 7 */
}
.scn-bond-date-discrepancy .calendar-circle {
  position: absolute; top: 35%; left: 42%; width: 20px; height: 20px;
  border: 2px solid #5e1a1d;
  border-radius: 50%;
  background: transparent;
  animation: bd-circle 4s ease-in-out infinite alternate;
}
.scn-bond-date-discrepancy .finger-pointing {
  position: absolute; bottom: 30%; right: 30%; width: 20px; height: 40px;
  background: linear-gradient(180deg, #2a1a12 0%, #0e0805 100%);
  border-radius: 50% 50% 30% 30% / 70% 70% 30% 30%;
  transform-origin: bottom right;
  animation: bd-finger 6s ease-in-out infinite;
}
.scn-bond-date-discrepancy .hand-shadow {
  position: absolute; bottom: 28%; right: 28%; width: 50px; height: 60px;
  background: radial-gradient(ellipse, rgba(0,0,0,0.4) 0%, transparent 70%);
  border-radius: 50%;
  animation: bd-hand-shadow 10s ease-in-out infinite alternate;
}
.scn-bond-date-discrepancy .magnifier {
  position: absolute; top: 45%; left: 48%; width: 30px; height: 30px;
  border: 3px solid #705040;
  border-radius: 50%;
  background: rgba(200,160,112,0.2);
  transform: rotate(15deg);
  animation: bd-magnifier 8s ease-in-out infinite alternate;
}
.scn-bond-date-discrepancy .perforation {
  position: absolute; top: 50%; left: 45%; width: 4px; height: 4px;
  background: #5e1a1d;
  border-radius: 50%;
  box-shadow: 8px 0 0 #5e1a1d, 16px 0 0 #5e1a1d;
  opacity: 0.6;
}
@keyframes bd-circle {
  0% { transform: scale(1); opacity: 0.8; }
  50% { transform: scale(1.1); opacity: 1; }
  100% { transform: scale(0.9); opacity: 0.6; }
}
@keyframes bd-finger {
  0%,100% { transform: rotate(5deg) translate(0,0); }
  25% { transform: rotate(0deg) translate(4px, -2px); }
  50% { transform: rotate(8deg) translate(0,0); }
  75% { transform: rotate(3deg) translate(-2px, -1px); }
}
@keyframes bd-hand-shadow {
  0% { opacity: 0.2; transform: scaleX(1); }
  50% { opacity: 0.5; transform: scaleX(1.3); }
  100% { opacity: 0.3; transform: scaleX(0.8); }
}
@keyframes bd-magnifier {
  0%,100% { transform: rotate(15deg) scale(1); }
  50% { transform: rotate(10deg) scale(1.05); }
}

/* Scene 4: forgery-confirmed */
.scn-forgery-confirmed {
  background:
    radial-gradient(ellipse at 50% 80%, #4a2a1a 0%, transparent 60%),
    linear-gradient(180deg, #1a0e0a 0%, #2a1810 40%, #1a0e0a 100%);
}
.scn-forgery-confirmed .document {
  position: absolute; bottom: 10%; left: 20%; right: 20%; height: 60%;
  background: linear-gradient(135deg, #d0b080 0%, #b09060 100%);
  border-radius: 4px;
  box-shadow: 0 8px 16px rgba(0,0,0,0.6);
  transform: rotate(-2deg);
  animation: fc-document 12s ease-in-out infinite alternate;
}
.scn-forgery-confirmed .signature-line {
  position: absolute; bottom: 25%; left: 30%; width: 80px; height: 2px;
  background: #5e1a1d;
  box-shadow: 0 2px 4px rgba(0,0,0,0.3);
  transform: rotate(-8deg);
}
.scn-forgery-confirmed .ink-blot {
  position: absolute; bottom: 40%; left: 35%; width: 12px; height: 12px;
  background: radial-gradient(circle, #1a0e0a 0%, #0a0604 100%);
  border-radius: 50%;
  box-shadow: 0 0 6px 2px rgba(0,0,0,0.5);
  animation: fc-ink 6s ease-in-out infinite alternate;
}
.scn-forgery-confirmed .quill {
  position: absolute; bottom: 35%; left: 60%; width: 6px; height: 60px;
  background: linear-gradient(180deg, #705040 0%, #c8a070 30%, #a08060 100%);
  border-radius: 2px 2px 50% 50%;
  transform: rotate(15deg);
  transform-origin: bottom left;
  animation: fc-quill 8s ease-in-out infinite alternate;
}
.scn-forgery-confirmed .quill-shadow {
  position: absolute; bottom: 32%; left: 58%; width: 20px; height: 40px;
  background: radial-gradient(ellipse, rgba(0,0,0,0.3) 0%, transparent 70%);
  border-radius: 50%;
  transform: rotate(15deg);
  animation: fc-quill-shadow 8s ease-in-out infinite alternate;
}
.scn-forgery-confirmed .glow-flame {
  position: absolute; bottom: 5%; left: 15%; width: 40px; height: 60px;
  background: radial-gradient(ellipse at 50% 100%, #ff8c42 0%, #c8553d 40%, transparent 70%);
  border-radius: 50% 50% 20% 20%;
  box-shadow: 0 0 40px 15px rgba(200,85,61,0.5);
  animation: fc-glow 3s ease-in-out infinite alternate;
}
.scn-forgery-confirmed .shadow-top {
  position: absolute; top: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, rgba(0,0,0,0.5) 0%, transparent 100%);
}
@keyframes fc-document {
  0%,100% { transform: rotate(-2deg) translateY(0); }
  50% { transform: rotate(-1deg) translateY(-2px); }
}
@keyframes fc-ink {
  0% { transform: scale(1) translate(0,0); opacity: 0.7; }
  50% { transform: scale(1.2) translate(1px, -1px); opacity: 1; }
  100% { transform: scale(0.9) translate(-1px, 1px); opacity: 0.8; }
}
@keyframes fc-quill {
  0%,100% { transform: rotate(15deg) translateY(0); }
  50% { transform: rotate(10deg) translateY(-3px); }
}
@keyframes fc-quill-shadow {
  0%,100% { opacity: 0.2; transform: rotate(15deg) scaleX(1); }
  50% { opacity: 0.4; transform: rotate(10deg) scaleX(1.2); }
}
@keyframes fc-glow {
  0% { opacity: 0.8; transform: scale(1); box-shadow: 0 0 40px 15px rgba(200,85,61,0.5); }
  50% { opacity: 1; transform: scale(1.05, 0.95); box-shadow: 0 0 60px 25px rgba(200,85,61,0.7); }
  100% { opacity: 0.7; transform: scale(0.95, 1.05); box-shadow: 0 0 30px 10px rgba(200,85,61,0.4); }
}

.scn-nora-promises-help { background: linear-gradient(180deg, #1a0f0a 0%, #2a1a12 40%, #3a2215 100%), radial-gradient(ellipse at 20% 50%, #f09e4b 0%, transparent 60%); }
.scn-nora-promises-help .bg-wall { position:absolute; inset:0; background: radial-gradient(ellipse at 70% 60%, #2a1a12 40%, #0d0805 100%); }
.scn-nora-promises-help .fireplace { position:absolute; left:8%; bottom:20%; width:120px; height:100px; background: linear-gradient(180deg, #4a2a1a 0%, #3a1a0a 100%); border-radius: 10% 10% 5% 5%; box-shadow: inset 0 6px 15px rgba(0,0,0,.6); animation: np-hearth 4s ease-in-out infinite; }
.scn-nora-promises-help .fire-glow { position:absolute; left:12%; bottom:22%; width:80px; height:80px; background: radial-gradient(ellipse, #f09e4b 0%, #d4633a 40%, transparent 70%); border-radius:50%; filter: blur(8px); animation: np-fire 2s ease-in-out infinite alternate; }
.scn-nora-promises-help .chair-left { position:absolute; left:30%; bottom:20%; width:70px; height:90px; background: linear-gradient(180deg, #3a2215 0%, #2a1a12 100%); border-radius: 20% 20% 10% 10%; transform: rotate(5deg); animation: np-chair 6s ease-in-out infinite; }
.scn-nora-promises-help .chair-right { position:absolute; right:25%; bottom:20%; width:70px; height:90px; background: linear-gradient(180deg, #3a2215 0%, #2a1a12 100%); border-radius: 20% 20% 10% 10%; transform: rotate(-5deg); animation: np-chair 6s ease-in-out infinite 3s; }
.scn-nora-promises-help .figure-left { position:absolute; left:34%; bottom:32%; width:24px; height:50px; background: linear-gradient(180deg, #1a0f0a 0%, #0d0805 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: np-figure-l 8s ease-in-out infinite; }
.scn-nora-promises-help .figure-right { position:absolute; right:30%; bottom:32%; width:24px; height:50px; background: linear-gradient(180deg, #1a0f0a 0%, #0d0805 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: np-figure-r 8s ease-in-out infinite 4s; }
.scn-nora-promises-help .rug { position:absolute; left:20%; right:20%; bottom:12%; height:30px; background: radial-gradient(ellipse, #6b2d1a 0%, transparent 80%); border-radius:50%; animation: np-rug 10s ease-in-out infinite; }
@keyframes np-hearth    { 0%,100% { transform: scaleY(1) } 50% { transform: scaleY(1.02) } }
@keyframes np-fire      { 0% { opacity: 0.7; transform: scale(0.9) } 50% { opacity: 1; transform: scale(1.1) } 100% { opacity: 0.8; transform: scale(1) } }
@keyframes np-chair     { 0%,100% { transform: rotate(5deg) translateY(0) } 50% { transform: rotate(3deg) translateY(-1px) } }
@keyframes np-figure-l  { 0%,100% { transform: translateX(0) rotate(0) } 25% { transform: translateX(2px) rotate(-2deg) } 50% { transform: translateX(0) rotate(2deg) } 75% { transform: translateX(-2px) rotate(0) } }
@keyframes np-figure-r  { 0%,100% { transform: translateX(0) rotate(0) } 25% { transform: translateX(-2px) rotate(2deg) } 50% { transform: translateX(0) rotate(-2deg) } 75% { transform: translateX(2px) rotate(0) } }
@keyframes np-rug       { 0%,100% { transform: scaleX(1) } 50% { transform: scaleX(1.05) } }

.scn-nora-important-secret { background: linear-gradient(180deg, #140a05 0%, #2a1a0f 50%, #1a0f0a 100%), radial-gradient(ellipse at 50% 40%, #d4633a 0%, transparent 70%); }
.scn-nora-important-secret .bg-deep { position:absolute; inset:0; background: radial-gradient(ellipse at 40% 50%, #2a1a0f 30%, #0d0805 100%); }
.scn-nora-important-secret .bg-mid { position:absolute; inset:10% 5% 15% 5%; background: linear-gradient(180deg, transparent 0%, #1a0f0a 80%); border-radius: 2%; }
.scn-nora-important-secret .candle { position:absolute; left:47%; bottom:30%; width:16px; height:50px; background: linear-gradient(180deg, #f0c068 20%, #c08040 50%, #8a5a2a 100%); border-radius: 10% 10% 5% 5%; animation: ni-candle 5s ease-in-out infinite; }
.scn-nora-important-secret .candle-glow { position:absolute; left:47%; bottom:60%; width:40px; height:50px; background: radial-gradient(circle, #f0c068 0%, #d4633a 40%, transparent 70%); border-radius:50%; filter: blur(10px); animation: ni-glow 3s ease-in-out infinite alternate; }
.scn-nora-important-secret .figure-left { position:absolute; left:20%; bottom:25%; width:30px; height:70px; background: linear-gradient(180deg, #1a0f0a 0%, #0d0805 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: ni-lean-l 7s ease-in-out infinite; }
.scn-nora-important-secret .figure-right { position:absolute; right:20%; bottom:28%; width:26px; height:55px; background: linear-gradient(180deg, #1a0f0a 0%, #0d0805 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: ni-lean-r 7s ease-in-out infinite 3.5s; }
.scn-nora-important-secret .table-edge { position:absolute; left:15%; right:15%; bottom:22%; height:8px; background: linear-gradient(90deg, transparent, #3a2215 20%, #3a2215 80%, transparent); border-radius: 2px; animation: ni-table 10s ease-in-out infinite; }
@keyframes ni-candle   { 0%,100% { transform: scaleY(1) } 50% { transform: scaleY(1.03) } }
@keyframes ni-glow     { 0% { opacity: 0.6; transform: scale(0.9) } 50% { opacity: 0.9; transform: scale(1.1) } 100% { opacity: 0.7; transform: scale(1) } }
@keyframes ni-lean-l   { 0%,100% { transform: translateX(0) rotate(2deg) } 50% { transform: translateX(3px) rotate(-2deg) } }
@keyframes ni-lean-r   { 0%,100% { transform: translateX(0) rotate(-2deg) } 50% { transform: translateX(-3px) rotate(2deg) } }
@keyframes ni-table    { 0%,100% { transform: translateY(0) } 50% { transform: translateY(-1px) } }

.scn-revealed-loan { background: linear-gradient(180deg, #0d0805 0%, #1a0f0a 40%, #2a1a0f 100%), radial-gradient(ellipse at 50% 40%, #d4633a 0%, transparent 60%); }
.scn-revealed-loan .desk { position:absolute; left:10%; right:10%; bottom:10%; top:40%; background: linear-gradient(180deg, #3a2215 0%, #2a1a0f 100%); border-radius: 3% 3% 1% 1%; box-shadow: inset 0 8px 20px rgba(0,0,0,.6); animation: rl-desk 12s ease-in-out infinite; }
.scn-revealed-loan .paper { position:absolute; left:35%; right:35%; bottom:35%; top:35%; background: linear-gradient(135deg, #e0c8a0 0%, #c8b090 100%); border-radius: 2px; transform: rotate(2deg); animation: rl-paper 8s ease-in-out infinite; }
.scn-revealed-loan .hand { position:absolute; left:25%; bottom:30%; width:40px; height:50px; background: radial-gradient(ellipse at 50% 30%, #c8553d 40%, #a0461a 100%); border-radius: 50% 50% 30% 30% / 40% 40% 60% 60%; transform: rotate(-15deg); animation: rl-hand 4s ease-in-out infinite; }
.scn-revealed-loan .candle { position:absolute; right:20%; bottom:20%; width:14px; height:60px; background: linear-gradient(180deg, #f0c068 20%, #c08040 60%, #8a5a2a 100%); border-radius: 10% 10% 5% 5%; animation: rl-candle 5s ease-in-out infinite; }
.scn-revealed-loan .flame { position:absolute; right:20.5%; bottom:77%; width:12px; height:16px; background: radial-gradient(circle, #f6c16a 0%, #d4633a 60%, transparent 100%); border-radius: 50%; filter: blur(3px); animation: rl-flame 2s ease-in-out infinite alternate; }
.scn-revealed-loan .shadow-overlay { position:absolute; inset:0; background: linear-gradient(180deg, rgba(0,0,0,.3) 0%, transparent 30%, transparent 70%, rgba(0,0,0,.5) 100%); pointer-events:none; animation: rl-shadow 6s ease-in-out infinite; }
@keyframes rl-desk    { 0%,100% { transform: translateY(0) } 50% { transform: translateY(-2px) } }
@keyframes rl-paper   { 0% { transform: rotate(2deg) scale(1) } 50% { transform: rotate(0deg) scale(1.02) } 100% { transform: rotate(2deg) scale(1) } }
@keyframes rl-hand    { 0%,100% { transform: rotate(-15deg) translateY(0) } 50% { transform: rotate(-10deg) translateY(-3px) } }
@keyframes rl-candle  { 0%,100% { transform: scaleY(1) } 50% { transform: scaleY(1.02) } }
@keyframes rl-flame   { 0% { opacity: 0.7; transform: scale(0.9) translateY(0) } 50% { opacity: 1; transform: scale(1.1) translateY(-2px) } 100% { opacity: 0.8; transform: scale(1) translateY(0) } }
@keyframes rl-shadow  { 0%,100% { opacity: 0.8 } 50% { opacity: 1 } }

.scn-secret-kept-from-husband { background: linear-gradient(180deg, #0a0503 0%, #1a0f0a 40%, #2a1a0f 100%), radial-gradient(ellipse at 60% 50%, #d4633a 0%, transparent 80%); }
.scn-secret-kept-from-husband .bg-wall { position:absolute; inset:0; background: radial-gradient(ellipse at 30% 60%, #1a0f0a 30%, #0d0805 100%); }
.scn-secret-kept-from-husband .door-frame.left { position:absolute; left:35%; top:0; bottom:0; width:8px; background: linear-gradient(180deg, #3a2215 0%, #2a1a0f 100%); border-radius: 2px; animation: sh-frame 10s ease-in-out infinite; }
.scn-secret-kept-from-husband .door-frame.right { position:absolute; right:35%; top:0; bottom:0; width:8px; background: linear-gradient(180deg, #3a2215 0%, #2a1a0f 100%); border-radius: 2px; animation: sh-frame 10s ease-in-out infinite 5s; }
.scn-secret-kept-from-husband .door { position:absolute; left:37%; top:5%; bottom:0; width:26%; background: linear-gradient(180deg, #2a1a0f 0%, #1a0f0a 100%); border-radius: 2px 2px 0 0; transform-origin: left center; animation: sh-door 8s ease-in-out infinite; }
.scn-secret-kept-from-husband .light-strip { position:absolute; left:36%; top:5%; bottom:0; width:2%; background: linear-gradient(180deg, #f09e4b 0%, #d4633a 100%); opacity: 0.4; animation: sh-light 4s ease-in-out infinite alternate; }
.scn-secret-kept-from-husband .figure { position:absolute; left:42%; bottom:20%; width:28px; height:70px; background: linear-gradient(180deg, #0d0805 0%, #050200 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: sh-figure 6s ease-in-out infinite; }
.scn-secret-kept-from-husband .floor { position:absolute; left:10%; right:10%; bottom:5%; height:12px; background: linear-gradient(90deg, transparent, #2a1a0f 30%, #3a2215 70%, transparent); border-radius: 2px; animation: sh-floor 12s ease-in-out infinite; }
@keyframes sh-frame   { 0%,100% { transform: scaleY(1) } 50% { transform: scaleY(1.01) } }
@keyframes sh-door    { 0% { transform: skewY(0deg) } 50% { transform: skewY(2deg) } 100% { transform: skewY(0deg) } }
@keyframes sh-light   { 0% { opacity: 0.2; transform: scaleX(1) } 50% { opacity: 0.5; transform: scaleX(1.5) } 100% { opacity: 0.3; transform: scaleX(1) } }
@keyframes sh-figure  { 0%,100% { transform: translateX(0) rotate(0) } 50% { transform: translateX(3px) rotate(1deg) } }
@keyframes sh-floor   { 0%,100% { transform: translateY(0) } 50% { transform: translateY(-1px) } }

.scn-secret-savings {
  background: linear-gradient(180deg, #5e3a2a 0%, #8c5c3a 30%, #4a2a1a 100%), radial-gradient(ellipse at 50% 80%, #c08040 0%, transparent 70%);
}
.scn-secret-savings .wall {
  position: absolute; inset: 0 0 45% 0;
  background: linear-gradient(180deg, #6e4a3a 0%, #3a2a1a 100%);
  animation: ss-wall 20s ease-in-out infinite alternate;
}
.scn-secret-savings .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 45%;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 0 0 30% 30% / 0 0 15% 15%;
}
.scn-secret-savings .table {
  position: absolute; bottom: 30%; left: 40%; width: 120px; height: 15px;
  background: linear-gradient(180deg, #6a4a3a 0%, #3a2a1a 100%);
  border-radius: 4px;
  transform: scaleX(1.2);
  box-shadow: 0 4px 8px rgba(0,0,0,0.5);
}
.scn-secret-savings .lamp {
  position: absolute; bottom: 45%; left: 44%; width: 20px; height: 30px;
  background: linear-gradient(180deg, #8c5c3a 0%, #4a2a1a 100%);
  border-radius: 20% 20% 10% 10%;
  box-shadow: 0 0 20px 6px rgba(255,200,100,0.4);
  animation: ss-lamp 3s ease-in-out infinite alternate;
}
.scn-secret-savings .glow {
  position: absolute; bottom: 44%; left: 43%; width: 60px; height: 60px;
  background: radial-gradient(circle, rgba(255,200,100,0.5) 0%, transparent 70%);
  border-radius: 50%;
  filter: blur(8px);
  animation: ss-glow 4s ease-in-out infinite;
}
.scn-secret-savings .figure {
  position: absolute; bottom: 24%; left: 46%; width: 30px; height: 70px;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: ss-figure 5s ease-in-out infinite alternate;
}
.scn-secret-savings .purse {
  position: absolute; bottom: 28%; left: 48%; width: 14px; height: 10px;
  background: linear-gradient(180deg, #c8553d 0%, #a0461a 100%);
  border-radius: 30% 30% 20% 20%;
  box-shadow: 0 2px 6px rgba(0,0,0,0.6);
  animation: ss-purse 6s ease-in-out infinite;
}
.scn-secret-savings .chair {
  position: absolute; bottom: 22%; left: 38%; width: 40px; height: 50px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 10% 10% 5% 5%;
  box-shadow: 0 4px 8px rgba(0,0,0,0.5);
  animation: ss-chair 10s ease-in-out infinite alternate;
}
@keyframes ss-wall { 0% { opacity: 0.7 } 50% { opacity: 1 } 100% { opacity: 0.8 } }
@keyframes ss-lamp { 0% { box-shadow: 0 0 15px 4px rgba(255,200,100,0.3); } 50% { box-shadow: 0 0 25px 8px rgba(255,200,100,0.6); } 100% { box-shadow: 0 0 18px 5px rgba(255,200,100,0.4); } }
@keyframes ss-glow { 0% { transform: scale(1); opacity: 0.6; } 50% { transform: scale(1.1); opacity: 0.9; } 100% { transform: scale(0.95); opacity: 0.5; } }
@keyframes ss-figure { 0% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-2px) rotate(2deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes ss-purse { 0%,100% { transform: translateY(0); } 50% { transform: translateY(-3px) rotate(5deg); } }
@keyframes ss-chair { 0% { transform: scaleY(1); } 50% { transform: scaleY(1.02); } 100% { transform: scaleY(1); } }

.scn-italy-debt {
  background: linear-gradient(180deg, #4a2a1a 0%, #7a4a2a 40%, #2a1a0a 100%), radial-gradient(ellipse at 50% 70%, #a06030 0%, transparent 60%);
}
.scn-italy-debt .wall {
  position: absolute; inset: 0 0 50% 0;
  background: linear-gradient(180deg, #5e3a2a 0%, #3a2a1a 100%);
  animation: id-wall 15s ease-in-out infinite alternate;
}
.scn-italy-debt .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 50%;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0a00 100%);
  border-radius: 20% 20% 0 0 / 10% 10% 0 0;
}
.scn-italy-debt .desk {
  position: absolute; bottom: 25%; left: 30%; width: 150px; height: 12px;
  background: linear-gradient(180deg, #6a4a3a 0%, #3a2a1a 100%);
  border-radius: 4px;
  transform: scaleX(1.1);
  box-shadow: 0 3px 8px rgba(0,0,0,0.5);
}
.scn-italy-debt .papers {
  position: absolute; bottom: 30%; left: 32%; width: 50px; height: 30px;
  background: linear-gradient(180deg, #b8a888 0%, #a09078 100%);
  border-radius: 2px;
  box-shadow: 0 2px 4px rgba(0,0,0,0.4);
  animation: id-papers 4s ease-in-out infinite;
}
.scn-italy-debt .lamp {
  position: absolute; bottom: 45%; left: 38%; width: 16px; height: 28px;
  background: linear-gradient(180deg, #8c5c3a 0%, #4a2a1a 100%);
  border-radius: 20% 20% 10% 10%;
  box-shadow: 0 0 20px 6px rgba(255,180,60,0.5);
  animation: id-lamp 2s ease-in-out infinite alternate;
}
.scn-italy-debt .glow {
  position: absolute; bottom: 44%; left: 36%; width: 80px; height: 80px;
  background: radial-gradient(circle, rgba(255,180,60,0.4) 0%, transparent 70%);
  border-radius: 50%;
  filter: blur(10px);
  animation: id-glow 3s ease-in-out infinite;
}
.scn-italy-debt .figure {
  position: absolute; bottom: 22%; left: 40%; width: 34px; height: 76px;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: id-figure 5s ease-in-out infinite alternate;
}
.scn-italy-debt .baby {
  position: absolute; bottom: 20%; left: 48%; width: 18px; height: 20px;
  background: linear-gradient(180deg, #2a1a1a 0%, #1a0a0a 100%);
  border-radius: 50%;
  animation: id-baby 6s ease-in-out infinite;
}
@keyframes id-wall { 0% { opacity: 0.6 } 50% { opacity: 1 } 100% { opacity: 0.7 } }
@keyframes id-papers { 0% { transform: translateX(0) rotate(0deg); } 50% { transform: translateX(3px) rotate(2deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes id-lamp { 0% { box-shadow: 0 0 15px 3px rgba(255,180,60,0.3); } 50% { box-shadow: 0 0 30px 10px rgba(255,180,60,0.7); } 100% { box-shadow: 0 0 18px 5px rgba(255,180,60,0.4); } }
@keyframes id-glow { 0% { transform: scale(1); opacity: 0.5; } 50% { transform: scale(1.15); opacity: 0.8; } 100% { transform: scale(0.9); opacity: 0.4; } }
@keyframes id-figure { 0% { transform: translateY(0) rotate(-1deg); } 50% { transform: translateY(-3px) rotate(1deg); } 100% { transform: translateY(0) rotate(-1deg); } }
@keyframes id-baby { 0% { transform: translateY(0); } 50% { transform: translateY(-2px); } 100% { transform: translateY(0); } }

.scn-doctor-rank-introduced {
  background: linear-gradient(180deg, #5e3a2a 0%, #8c5c3a 30%, #4a2a1a 100%), radial-gradient(ellipse at 50% 85%, #c08040 0%, transparent 70%);
}
.scn-doctor-rank-introduced .wall {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(180deg, #6e4a3a 0%, #3a2a1a 100%);
  animation: dr-wall 18s ease-in-out infinite alternate;
}
.scn-doctor-rank-introduced .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 40%;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 0 0 40% 40% / 0 0 20% 20%;
}
.scn-doctor-rank-introduced .sofa {
  position: absolute; bottom: 20%; left: 20%; width: 120px; height: 40px;
  background: linear-gradient(180deg, #5e4a3a 0%, #3a2a1a 100%);
  border-radius: 20% 20% 5% 5%;
  box-shadow: 0 6px 12px rgba(0,0,0,0.5);
  transform: scaleX(0.9);
}
.scn-doctor-rank-introduced .figure-left {
  position: absolute; bottom: 22%; left: 25%; width: 30px; height: 68px;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: dr-fig-left 5s ease-in-out infinite alternate;
}
.scn-doctor-rank-introduced .figure-right {
  position: absolute; bottom: 24%; left: 42%; width: 32px; height: 72px;
  background: linear-gradient(180deg, #2a1a2a 0%, #0a0a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: dr-fig-right 6s ease-in-out infinite alternate;
}
.scn-doctor-rank-introduced .lamp {
  position: absolute; bottom: 45%; left: 58%; width: 18px; height: 30px;
  background: linear-gradient(180deg, #8c5c3a 0%, #4a2a1a 100%);
  border-radius: 20% 20% 10% 10%;
  box-shadow: 0 0 20px 6px rgba(255,200,100,0.4);
  animation: dr-lamp 3s ease-in-out infinite alternate;
}
.scn-doctor-rank-introduced .glow {
  position: absolute; bottom: 44%; left: 55%; width: 70px; height: 70px;
  background: radial-gradient(circle, rgba(255,200,100,0.4) 0%, transparent 70%);
  border-radius: 50%;
  filter: blur(8px);
  animation: dr-glow 4s ease-in-out infinite;
}
.scn-doctor-rank-introduced .child {
  position: absolute; bottom: 20%; left: 50%; width: 16px; height: 22px;
  background: linear-gradient(180deg, #1a2a1a 0%, #0a1a0a 100%);
  border-radius: 50%;
  animation: dr-child 8s ease-in-out infinite;
}
@keyframes dr-wall { 0% { opacity: 0.7 } 50% { opacity: 1 } 100% { opacity: 0.8 } }
@keyframes dr-fig-left { 0% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-2px) rotate(1deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes dr-fig-right { 0% { transform: translateY(0) rotate(1deg); } 50% { transform: translateY(-2px) rotate(-1deg); } 100% { transform: translateY(0) rotate(1deg); } }
@keyframes dr-lamp { 0% { box-shadow: 0 0 15px 4px rgba(255,200,100,0.3); } 50% { box-shadow: 0 0 30px 10px rgba(255,200,100,0.6); } 100% { box-shadow: 0 0 18px 5px rgba(255,200,100,0.4); } }
@keyframes dr-glow { 0% { transform: scale(1); opacity: 0.5; } 50% { transform: scale(1.1); opacity: 0.8; } 100% { transform: scale(0.95); opacity: 0.4; } }
@keyframes dr-child { 0% { transform: translateY(0); } 50% { transform: translateY(-3px); } 100% { transform: translateY(0); } }

.scn-mrs-linde-bitter {
  background: linear-gradient(180deg, #3a2a1a 0%, #5e3a2a 40%, #1a0a00 100%), radial-gradient(ellipse at 40% 70%, #804020 0%, transparent 60%);
}
.scn-mrs-linde-bitter .wall {
  position: absolute; inset: 0 0 55% 0;
  background: linear-gradient(180deg, #4a2a1a 0%, #2a1a0a 100%);
  animation: ml-wall 20s ease-in-out infinite alternate;
}
.scn-mrs-linde-bitter .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 55%;
  background: linear-gradient(180deg, #2a1a0a 0%, #0a0000 100%);
  border-radius: 30% 30% 0 0 / 15% 15% 0 0;
}
.scn-mrs-linde-bitter .desk {
  position: absolute; bottom: 30%; left: 25%; width: 130px; height: 10px;
  background: linear-gradient(180deg, #5e3a2a 0%, #3a1a0a 100%);
  border-radius: 4px;
  transform: scaleX(1.05);
  box-shadow: 0 3px 6px rgba(0,0,0,0.5);
}
.scn-mrs-linde-bitter .candle {
  position: absolute; bottom: 48%; left: 30%; width: 8px; height: 20px;
  background: linear-gradient(180deg, #b8a888 0%, #8a7a6a 100%);
  border-radius: 2px;
  box-shadow: 0 0 12px 4px rgba(255,180,60,0.4);
  animation: ml-candle 2.5s ease-in-out infinite alternate;
}
.scn-mrs-linde-bitter .glow {
  position: absolute; bottom: 46%; left: 28%; width: 50px; height: 50px;
  background: radial-gradient(circle, rgba(255,180,60,0.3) 0%, transparent 70%);
  border-radius: 50%;
  filter: blur(6px);
  animation: ml-glow 3s ease-in-out infinite;
}
.scn-mrs-linde-bitter .figure {
  position: absolute; bottom: 22%; left: 35%; width: 28px; height: 74px;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: ml-figure 5s ease-in-out infinite alternate;
}
.scn-mrs-linde-bitter .chair {
  position: absolute; bottom: 20%; left: 28%; width: 40px; height: 60px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 10% 10% 5% 5%;
  box-shadow: 0 4px 8px rgba(0,0,0,0.6);
  animation: ml-chair 12s ease-in-out infinite alternate;
}
.scn-mrs-linde-bitter .shadow {
  position: absolute; bottom: 0; left: 20%; width: 160px; height: 40px;
  background: linear-gradient(180deg, rgba(0,0,0,0) 0%, rgba(0,0,0,0.6) 100%);
  border-radius: 50%;
  filter: blur(12px);
  animation: ml-shadow 8s ease-in-out infinite alternate;
}
@keyframes ml-wall { 0% { opacity: 0.5 } 50% { opacity: 0.9 } 100% { opacity: 0.6 } }
@keyframes ml-candle { 0% { box-shadow: 0 0 8px 2px rgba(255,180,60,0.3); } 50% { box-shadow: 0 0 18px 6px rgba(255,180,60,0.6); } 100% { box-shadow: 0 0 10px 3px rgba(255,180,60,0.4); } }
@keyframes ml-glow { 0% { transform: scale(1); opacity: 0.4; } 50% { transform: scale(1.1); opacity: 0.7; } 100% { transform: scale(0.9); opacity: 0.3; } }
@keyframes ml-figure { 0% { transform: translateY(0) rotate(1deg); } 50% { transform: translateY(-2px) rotate(-1deg); } 100% { transform: translateY(0) rotate(1deg); } }
@keyframes ml-chair { 0% { transform: scaleY(1); } 50% { transform: scaleY(1.03); } 100% { transform: scaleY(1); } }
@keyframes ml-shadow { 0% { transform: scaleX(1); opacity: 0.6; } 50% { transform: scaleX(1.2); opacity: 1; } 100% { transform: scaleX(0.9); opacity: 0.5; } }

/* rank-arrives */
.scn-rank-arrives {
  background: 
    linear-gradient(180deg, #1a1a2a 0%, #2a2a3a 40%, #3a3a4a 100%),
    radial-gradient(ellipse at 30% 60%, #4a3a2a 0%, transparent 70%);
}
.scn-rank-arrives .ra-door { position:absolute; right:0; bottom:10%; width:35%; height:80%; background: linear-gradient(90deg, #3a2a1a, #2a1a0a 60%, #1a0a00); border-radius: 5% 0 0 5%; box-shadow: -8px 0 20px rgba(0,0,0,0.6); transform-origin: right center; animation: ra-door 12s ease-in-out infinite alternate; }
.scn-rank-arrives .ra-figure { position:absolute; bottom:18%; left:25%; width:24px; height:40px; background: linear-gradient(180deg, #2a2a3a, #1a1a2a); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; box-shadow: 0 0 10px rgba(0,0,0,0.5); animation: ra-figure 6s ease-in-out infinite; }
.scn-rank-arrives .ra-lamp { position:absolute; bottom:35%; left:15%; width:12px; height:20px; background: radial-gradient(circle at 50% 30%, #ffd080 0%, #b08040 60%, #4a2a0a 100%); border-radius: 30% 30% 10% 10%; box-shadow: 0 0 30px 6px #b08040, 0 0 60px 12px rgba(176,128,64,0.4); animation: ra-lamp 4s ease-in-out infinite alternate; }
.scn-rank-arrives .ra-chair { position:absolute; bottom:20%; right:40%; width:40px; height:30px; background: linear-gradient(180deg, #4a3a2a, #2a1a0a); border-radius: 20% 20% 10% 10%; box-shadow: 0 4px 10px rgba(0,0,0,0.5); animation: ra-chair 8s ease-in-out infinite; }
.scn-rank-arrives .ra-rug { position:absolute; bottom:8%; left:10%; right:20%; height:12%; background: linear-gradient(135deg, #5a3a2a 0%, #3a2a1a 50%, #5a3a2a 100%); border-radius: 40% 60% 20% 80% / 30% 20% 80% 70%; filter: blur(1px); animation: ra-rug 20s ease-in-out infinite alternate; }
.scn-rank-arrives .ra-clock { position:absolute; top:10%; right:15%; width:20px; height:20px; background: radial-gradient(circle, #c8b080 0%, #6a4a3a 80%); border-radius: 50%; box-shadow: 0 4px 8px rgba(0,0,0,0.4); animation: ra-clock 3s ease-in-out infinite; }
.scn-rank-arrives .ra-curtain { position:absolute; left:0; top:0; width:12%; height:100%; background: linear-gradient(90deg, #1a1a2a 0%, #2a2a4a 50%, #1a1a2a 100%); border-radius: 0 20% 20% 0; box-shadow: inset -4px 0 8px rgba(0,0,0,0.6); animation: ra-curtain 30s linear infinite; }
@keyframes ra-door { 0% { transform: scaleX(1) } 50% { transform: scaleX(1.02) } 100% { transform: scaleX(0.98) } }
@keyframes ra-figure { 0% { transform: translateX(0) translateY(0) rotate(1deg) } 50% { transform: translateX(8px) translateY(-2px) rotate(-1deg) } 100% { transform: translateX(0) translateY(0) rotate(1deg) } }
@keyframes ra-lamp { 0% { opacity: 0.7; box-shadow: 0 0 20px 4px #b08040 } 50% { opacity: 1; box-shadow: 0 0 40px 10px #ffd080 } 100% { opacity: 0.8; box-shadow: 0 0 25px 6px #b08040 } }
@keyframes ra-chair { 0%,100% { transform: translateY(0) } 50% { transform: translateY(-3px) } }
@keyframes ra-rug { 0% { transform: scaleX(1) } 50% { transform: scaleX(1.03) } 100% { transform: scaleX(0.97) } }
@keyframes ra-clock { 0% { transform: rotate(0deg) } 50% { transform: rotate(5deg) } 100% { transform: rotate(0deg) } }
@keyframes ra-curtain { 0% { transform: translateX(0) } 100% { transform: translateX(-5vw) } }

/* rank-ugly-death */
.scn-rank-ugly-death {
  background: 
    linear-gradient(180deg, #0e0e1a 0%, #1a1a2a 60%, #2a2a3a 100%),
    radial-gradient(ellipse at 70% 40%, #2a2a4a 0%, transparent 70%);
}
.scn-rank-ugly-death .rud-wall { position:absolute; inset:0; background: linear-gradient(180deg, #0a0a14 0%, #12121e 100%); animation: rud-wall 15s ease-in-out infinite alternate; }
.scn-rank-ugly-death .rud-mirror { position:absolute; top:5%; left:30%; width:40%; height:45%; background: linear-gradient(135deg, #2a2a3a 0%, #1a1a2a 50%, #2a2a3a 100%); border-radius: 5% 5% 10% 10%; box-shadow: inset 0 0 20px rgba(0,0,0,0.8), 0 4px 12px rgba(0,0,0,0.5); animation: rud-mirror 8s ease-in-out infinite alternate; }
.scn-rank-ugly-death .rud-figure { position:absolute; bottom:18%; left:40%; width:28px; height:44px; background: linear-gradient(180deg, #1a1a2a, #0a0a1a); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; box-shadow: -4px 0 12px rgba(0,0,0,0.6); animation: rud-figure 6s ease-in-out infinite; }
.scn-rank-ugly-death .rud-cane { position:absolute; bottom:22%; left:35%; width:4px; height:30px; background: linear-gradient(180deg, #3a2a1a, #1a0a00); border-radius: 0 0 40% 40%; animation: rud-cane 6s ease-in-out infinite; }
.scn-rank-ugly-death .rud-lamp { position:absolute; bottom:40%; left:10%; width:10px; height:18px; background: radial-gradient(circle at 50% 20%, #b09050 0%, #4a3a2a 80%); border-radius: 40% 40% 10% 10%; box-shadow: 0 0 20px 4px #4a3a2a; animation: rud-lamp 5s ease-in-out infinite alternate; }
.scn-rank-ugly-death .rud-shadow { position:absolute; bottom:5%; left:20%; right:20%; height:20%; background: linear-gradient(135deg, transparent 0%, rgba(0,0,0,0.6) 50%, transparent 100%); filter: blur(8px); animation: rud-shadow 12s ease-in-out infinite alternate; }
.scn-rank-ugly-death .rud-table { position:absolute; bottom:8%; left:15%; width:20%; height:10%; background: linear-gradient(180deg, #2a1a0a, #1a0a00); border-radius: 5% 5% 0 0; box-shadow: 0 4px 8px rgba(0,0,0,0.7); animation: rud-table 14s ease-in-out infinite; }
.scn-rank-ugly-death .rud-vial { position:absolute; bottom:12%; left:25%; width:6px; height:14px; background: radial-gradient(circle, #8a7a5a 0%, #4a3a2a 80%); border-radius: 20% 20% 30% 30%; box-shadow: 0 2px 6px rgba(0,0,0,0.5); animation: rud-vial 7s ease-in-out infinite alternate; }
@keyframes rud-wall { 0% { opacity: 0.8 } 50% { opacity: 1 } 100% { opacity: 0.85 } }
@keyframes rud-mirror { 0% { transform: scaleX(1) } 50% { transform: scaleX(1.02) scaleY(1.01) } 100% { transform: scaleX(0.98) } }
@keyframes rud-figure { 0% { transform: translateX(0) rotate(0deg) } 50% { transform: translateX(4px) rotate(2deg) translateY(-2px) } 100% { transform: translateX(-2px) rotate(-1deg) } }
@keyframes rud-cane { 0% { transform: rotate(-5deg) translateX(0) } 50% { transform: rotate(5deg) translateX(6px) } 100% { transform: rotate(-5deg) translateX(0) } }
@keyframes rud-lamp { 0% { opacity: 0.6; box-shadow: 0 0 10px 2px #4a3a2a } 50% { opacity: 1; box-shadow: 0 0 30px 8px #b09050 } 100% { opacity: 0.7; box-shadow: 0 0 15px 4px #4a3a2a } }
@keyframes rud-shadow { 0% { transform: scaleY(1) } 50% { transform: scaleY(1.03) } 100% { transform: scaleY(0.97) } }
@keyframes rud-table { 0% { transform: translateY(0) } 50% { transform: translateY(-2px) } 100% { transform: translateY(0) } }
@keyframes rud-vial { 0% { transform: rotate(0deg) } 50% { transform: rotate(15deg) } 100% { transform: rotate(0deg) } }

/* nora-lightens-mood */
.scn-nora-lightens-mood {
  background: 
    linear-gradient(180deg, #3a2a1a 0%, #4a3a2a 40%, #5a4a3a 100%),
    radial-gradient(ellipse at 50% 70%, #6a5a4a 0%, transparent 70%);
}
.scn-nora-lightens-mood .nlm-backdrop { position:absolute; inset:0; background: linear-gradient(180deg, #2a1a0a 0%, #4a3a2a 100%); animation: nlm-backdrop 20s ease-in-out infinite alternate; }
.scn-nora-lightens-mood .nlm-nora { position:absolute; bottom:20%; left:35%; width:30px; height:42px; background: linear-gradient(180deg, #6a4a3a 0%, #4a2a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; box-shadow: 0 0 10px rgba(0,0,0,0.4); animation: nlm-nora 3s ease-in-out infinite; }
.scn-nora-lightens-mood .nlm-chairs { position:absolute; bottom:15%; left:50%; width:50px; height:28px; background: linear-gradient(180deg, #5a3a2a, #3a1a0a); border-radius: 20% 20% 10% 10%; box-shadow: 0 6px 12px rgba(0,0,0,0.5); animation: nlm-chairs 6s ease-in-out infinite; }
.scn-nora-lightens-mood .nlm-lamp { position:absolute; bottom:40%; left:20%; width:14px; height:22px; background: radial-gradient(circle at 50% 20%, #ffd080 0%, #b08040 60%, #6a3a1a 100%); border-radius: 30% 30% 10% 10%; box-shadow: 0 0 30px 6px #b08040; animation: nlm-lamp 4s ease-in-out infinite alternate; }
.scn-nora-lightens-mood .nlm-ornament { position:absolute; top:20%; right:15%; width:16px; height:16px; background: radial-gradient(circle, #c8a060 0%, #8a5a3a 80%); border-radius: 50%; box-shadow: 0 0 10px #8a5a3a; animation: nlm-ornament 2s ease-in-out infinite; }
.scn-nora-lightens-mood .nlm-carpet { position:absolute; bottom:5%; left:5%; right:5%; height:10%; background: linear-gradient(135deg, #4a3a2a 0%, #6a5a4a 50%, #4a3a2a 100%); border-radius: 30% 70% 40% 60% / 50% 30% 70% 50%; filter: blur(1px); animation: nlm-carpet 12s ease-in-out infinite alternate; }
.scn-nora-lightens-mood .nlm-bow { position:absolute; top:10%; left:20%; width:8px; height:12px; background: linear-gradient(180deg, #8a6a4a, #5a3a2a); border-radius: 50% 50% 0 0; animation: nlm-bow 4s ease-in-out infinite; }
@keyframes nlm-backdrop { 0% { opacity: 0.8 } 50% { opacity: 1 } 100% { opacity: 0.9 } }
@keyframes nlm-nora { 0% { transform: translateY(0) rotate(-3deg) scale(1) } 50% { transform: translateY(-4px) rotate(3deg) scale(1.02) } 100% { transform: translateY(0) rotate(-3deg) scale(1) } }
@keyframes nlm-chairs { 0% { transform: translateX(0) } 50% { transform: translateX(5px) } 100% { transform: translateX(0) } }
@keyframes nlm-lamp { 0% { opacity: 0.7; box-shadow: 0 0 20px 4px #b08040 } 50% { opacity: 1; box-shadow: 0 0 40px 10px #ffd080 } 100% { opacity: 0.8; box-shadow: 0 0 25px 6px #b08040 } }
@keyframes nlm-ornament { 0% { transform: scale(1) rotate(0deg) } 50% { transform: scale(1.2) rotate(10deg) } 100% { transform: scale(1) rotate(0deg) } }
@keyframes nlm-carpet { 0% { transform: scaleX(1) } 50% { transform: scaleX(1.04) } 100% { transform: scaleX(0.96) } }
@keyframes nlm-bow { 0% { transform: translateY(0) rotate(0deg) } 50% { transform: translateY(-2px) rotate(20deg) } 100% { transform: translateY(0) rotate(0deg) } }

/* rank-confesses-love */
.scn-rank-confesses-love {
  background: 
    linear-gradient(180deg, #1a1a2a 0%, #2a2a3a 40%, #3a3a4a 100%),
    radial-gradient(ellipse at 60% 50%, #2a2a4a 0%, transparent 70%);
}
.scn-rank-confesses-love .rcl-back { position:absolute; inset:0; background: linear-gradient(180deg, #12121e 0%, #1e1e2e 100%); animation: rcl-back 18s ease-in-out infinite alternate; }
.scn-rank-confesses-love .rcl-nora { position:absolute; bottom:20%; left:38%; width:28px; height:40px; background: linear-gradient(180deg, #4a3a3a 0%, #2a1a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: rcl-nora 5s ease-in-out infinite; }
.scn-rank-confesses-love .rcl-rank { position:absolute; bottom:22%; left:55%; width:26px; height:44px; background: linear-gradient(180deg, #2a2a3a, #1a1a2a); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: rcl-rank 5s ease-in-out infinite; }
.scn-rank-confesses-love .rcl-lamp { position:absolute; bottom:45%; left:15%; width:12px; height:18px; background: radial-gradient(circle at 50% 20%, #c8a060 0%, #8a5a3a 80%); border-radius: 30% 30% 10% 10%; box-shadow: 0 0 25px 5px #8a5a3a; animation: rcl-lamp 4s ease-in-out infinite alternate; }
.scn-rank-confesses-love .rcl-shadow { position:absolute; bottom:0; left:30%; right:30%; height:25%; background: linear-gradient(180deg, transparent 0%, rgba(0,0,0,0.7) 100%); filter: blur(6px); animation: rcl-shadow 10s ease-in-out infinite alternate; }
.scn-rank-confesses-love .rcl-carpet { position:absolute; bottom:4%; left:10%; right:10%; height:8%; background: linear-gradient(135deg, #3a2a2a 0%, #4a3a3a 50%, #3a2a2a 100%); border-radius: 30% 70% 50% 50% / 40% 40% 60% 60%; animation: rcl-carpet 14s ease-in-out infinite alternate; }
.scn-rank-confesses-love .rcl-curtain { position:absolute; left:0; top:0; width:10%; height:100%; background: linear-gradient(90deg, #1a1a2a, #2a2a3a 50%, #1a1a2a); border-radius: 0 20% 20% 0; box-shadow: inset -4px 0 10px rgba(0,0,0,0.6); animation: rcl-curtain 25s linear infinite; }
@keyframes rcl-back { 0% { opacity: 0.8 } 50% { opacity: 1 } 100% { opacity: 0.85 } }
@keyframes rcl-nora { 0% { transform: translateX(0) rotate(0deg) } 50% { transform: translateX(-3px) rotate(-2deg) translateY(-2px) } 100% { transform: translateX(2px) rotate(0deg) } }
@keyframes rcl-rank { 0% { transform: translateX(0) rotate(0deg) } 50% { transform: translateX(3px) rotate(2deg) translateY(-3px) } 100% { transform: translateX(-1px) rotate(0deg) } }
@keyframes rcl-lamp { 0% { opacity: 0.65; box-shadow: 0 0 15px 3px #8a5a3a } 50% { opacity: 1; box-shadow: 0 0 35px 8px #c8a060 } 100% { opacity: 0.75; box-shadow: 0 0 20px 5px #8a5a3a } }
@keyframes rcl-shadow { 0% { transform: scaleY(1) } 50% { transform: scaleY(1.05) } 100% { transform: scaleY(0.95) } }
@keyframes rcl-carpet { 0% { transform: scaleX(1) } 50% { transform: scaleX(1.02) } 100% { transform: scaleX(0.98) } }
@keyframes rcl-curtain { 0% { transform: translateX(0) } 100% { transform: translateX(-4vw) } }

.scn-nora-asks-for-favor {
  background: 
    linear-gradient(180deg, #3a2a1a 0%, #5a3a1a 40%, #2a1a0a 100%),
    radial-gradient(ellipse at 40% 60%, #c05020 0%, transparent 80%);
}
.scn-nora-asks-for-favor .wall {
  position: absolute; inset: 0 0 35% 0;
  background: linear-gradient(135deg, #4a3a2a 0%, #6a4a2a 50%, #3a2a1a 100%);
  animation: naf-wall 12s ease-in-out infinite alternate;
}
.scn-nora-asks-for-favor .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 35%;
  background: linear-gradient(0deg, #1a0a00 0%, #3a2010 100%);
  box-shadow: inset 0 10px 20px rgba(0,0,0,0.6);
  animation: naf-floor 8s ease-in-out infinite;
}
.scn-nora-asks-for-favor .fireplace {
  position: absolute; bottom: 25%; left: 20%; width: 120px; height: 100px;
  background: linear-gradient(180deg, #5a3a1a 0%, #2a1a0a 100%);
  border-radius: 10% 10% 5% 5%;
  box-shadow: inset 0 -10px 20px rgba(0,0,0,0.5);
  animation: naf-fireplace 10s ease-in-out infinite alternate;
}
.scn-nora-asks-for-favor .fire-glow {
  position: absolute; bottom: 28%; left: 25%; width: 80px; height: 70px;
  background: radial-gradient(ellipse at 50% 100%, #ff8040 0%, #ff6020 40%, transparent 80%);
  border-radius: 50%;
  box-shadow: 0 0 40px 20px rgba(255,96,32,0.6), 0 0 80px 40px rgba(255,96,32,0.3);
  animation: naf-fire-glow 2s ease-in-out infinite alternate;
}
.scn-nora-asks-for-favor .figure-nora {
  position: absolute; bottom: 18%; left: 35%; width: 20px; height: 40px;
  background: linear-gradient(180deg, #6a4a3a 0%, #3a2a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: naf-figure-nora 4s ease-in-out infinite;
}
.scn-nora-asks-for-favor .figure-helmer {
  position: absolute; bottom: 18%; left: 60%; width: 22px; height: 44px;
  background: linear-gradient(180deg, #5a3a2a 0%, #2a1a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: naf-figure-helmer 5s ease-in-out infinite;
}
.scn-nora-asks-for-favor .chair {
  position: absolute; bottom: 18%; left: 45%; width: 30px; height: 35px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 20% 20% 10% 10%;
  box-shadow: 2px 4px 8px rgba(0,0,0,0.5);
  animation: naf-chair 6s ease-in-out infinite alternate;
}
.scn-nora-asks-for-favor .shadow {
  position: absolute; bottom: 18%; left: 35%; width: 60px; height: 20px;
  background: radial-gradient(ellipse at 50% 50%, rgba(0,0,0,0.4) 0%, transparent 100%);
  animation: naf-shadow 4s ease-in-out infinite;
}
@keyframes naf-wall { 0% { opacity: 0.8; } 50% { opacity: 1; } 100% { opacity: 0.85; } }
@keyframes naf-floor { 0%,100% { transform: translateY(0); } 50% { transform: translateY(-2px); } }
@keyframes naf-fireplace { 0% { box-shadow: inset 0 -10px 20px rgba(0,0,0,0.5); } 100% { box-shadow: inset 0 -5px 10px rgba(0,0,0,0.3); } }
@keyframes naf-fire-glow { 0% { opacity: 0.7; transform: scale(0.95); } 50% { opacity: 1; transform: scale(1.05); } 100% { opacity: 0.8; transform: scale(0.98); } }
@keyframes naf-figure-nora { 0%,100% { transform: translateX(0) rotate(0deg); } 25% { transform: translateX(3px) rotate(-2deg); } 50% { transform: translateX(0) rotate(0deg); } 75% { transform: translateX(-3px) rotate(2deg); } }
@keyframes naf-figure-helmer { 0%,100% { transform: translateX(0) rotate(0deg) scaleY(1); } 30% { transform: translateX(2px) rotate(1deg) scaleY(1.02); } 60% { transform: translateX(-2px) rotate(-1deg) scaleY(0.98); } }
@keyframes naf-chair { 0% { transform: translateY(0); } 50% { transform: translateY(-2px); } 100% { transform: translateY(0); } }
@keyframes naf-shadow { 0%,100% { transform: scaleX(1); } 50% { transform: scaleX(0.9); } }

.scn-nora-fears-for-children {
  background: 
    linear-gradient(180deg, #1a0a00 0%, #3a1a0a 50%, #0a0500 100%),
    radial-gradient(ellipse at 50% 80%, #4a2010 0%, transparent 70%);
}
.scn-nora-fears-for-children .bg-dark {
  position: absolute; inset: 0;
  background: linear-gradient(135deg, #0a0500 0%, #1a0a00 50%, #0a0500 100%);
  animation: nfc-bg 15s ease-in-out infinite alternate;
}
.scn-nora-fears-for-children .tree {
  position: absolute; bottom: 25%; left: 50%; width: 60px; height: 90px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #2a4a1a 0%, #1a2a0a 100%);
  border-radius: 20% 20% 10% 10% / 40% 40% 20% 20%;
  animation: nfc-tree 6s ease-in-out infinite;
}
.scn-nora-fears-for-children .fire {
  position: absolute; bottom: 20%; left: 30%; width: 70px; height: 60px;
  background: radial-gradient(ellipse at 50% 100%, #ff6030 0%, #ff4010 40%, transparent 80%);
  border-radius: 50%;
  box-shadow: 0 0 30px 15px rgba(255,64,16,0.5);
  animation: nfc-fire 2.5s ease-in-out infinite alternate;
}
.scn-nora-fears-for-children .figure-nora {
  position: absolute; bottom: 18%; left: 40%; width: 18px; height: 38px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0a00 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: nfc-figure 4s ease-in-out infinite;
}
.scn-nora-fears-for-children .glow-orange {
  position: absolute; inset: 0;
  background: radial-gradient(ellipse at 30% 80%, rgba(255,64,16,0.15) 0%, transparent 70%);
  animation: nfc-glow 3s ease-in-out infinite alternate;
}
.scn-nora-fears-for-children .door {
  position: absolute; bottom: 20%; right: 15%; width: 40px; height: 70px;
  background: linear-gradient(180deg, #2a1a0a 0%, #0a0500 100%);
  border-radius: 5%;
  box-shadow: inset 2px 0 10px rgba(0,0,0,0.8);
  animation: nfc-door 8s ease-in-out infinite;
}
.scn-nora-fears-for-children .drapery {
  position: absolute; top: 10%; left: 5%; width: 30px; height: 80px;
  background: linear-gradient(180deg, #4a2a1a 0%, #2a1a0a 100%);
  border-radius: 30% 30% 10% 10%;
  transform: rotate(-5deg);
  animation: nfc-drapery 10s ease-in-out infinite alternate;
}
@keyframes nfc-bg { 0% { opacity: 0.9; } 50% { opacity: 1; } 100% { opacity: 0.85; } }
@keyframes nfc-tree { 0%,100% { transform: translateX(-50%) rotate(0deg); } 50% { transform: translateX(-50%) rotate(2deg) scaleY(1.02); } }
@keyframes nfc-fire { 0% { opacity: 0.6; transform: scale(0.95); } 50% { opacity: 1; transform: scale(1.05); } 100% { opacity: 0.7; transform: scale(0.98); } }
@keyframes nfc-figure { 0%,100% { transform: translateX(0) translateY(0) rotate(0deg); } 20% { transform: translateX(4px) translateY(-2px) rotate(3deg); } 40% { transform: translateX(-2px) translateY(1px) rotate(-2deg); } 60% { transform: translateX(0) translateY(0) rotate(0deg); } 80% { transform: translateX(2px) translateY(-1px) rotate(1deg); } }
@keyframes nfc-glow { 0% { opacity: 0.8; } 50% { opacity: 1; } 100% { opacity: 0.7; } }
@keyframes nfc-door { 0%,100% { transform: translateX(0); } 50% { transform: translateX(3px); } }
@keyframes nfc-drapery { 0% { transform: rotate(-5deg) translateY(0); } 100% { transform: rotate(-4deg) translateY(-5px); } }

.scn-stripped-tree {
  background: 
    linear-gradient(180deg, #0a0a1a 0%, #1a1a2a 50%, #0a0a10 100%),
    radial-gradient(ellipse at 50% 100%, #1a1a2a 0%, transparent 80%);
}
.scn-stripped-tree .bg-dim {
  position: absolute; inset: 0;
  background: linear-gradient(135deg, #0a0a1a 0%, #1a1a2a 50%, #0a0a10 100%);
  animation: st-bg 20s ease-in-out infinite alternate;
}
.scn-stripped-tree .stripped-tree {
  position: absolute; bottom: 30%; left: 50%; width: 50px; height: 80px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #2a2a1a 0%, #1a1a0a 100%);
  border-radius: 10% 10% 5% 5% / 30% 30% 10% 10%;
  box-shadow: inset 0 5px 10px rgba(0,0,0,0.5);
  animation: st-tree 7s ease-in-out infinite;
}
.scn-stripped-tree .letterbox {
  position: absolute; bottom: 20%; left: 30%; width: 30px; height: 20px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0a00 100%);
  border-radius: 5%;
  box-shadow: 2px 3px 6px rgba(0,0,0,0.6);
  animation: st-letterbox 9s ease-in-out infinite alternate;
}
.scn-stripped-tree .figure-nora {
  position: absolute; bottom: 18%; left: 45%; width: 18px; height: 36px;
  background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: st-figure 5s ease-in-out infinite;
}
.scn-stripped-tree .window {
  position: absolute; top: 15%; right: 15%; width: 40px; height: 50px;
  background: linear-gradient(180deg, #2a2a4a 0%, #1a1a3a 100%);
  border-radius: 5%;
  box-shadow: inset 0 0 10px rgba(0,0,0,0.7);
  animation: st-window 12s ease-in-out infinite alternate;
}
.scn-stripped-tree .candle {
  position: absolute; bottom: 35%; left: 55%; width: 4px; height: 12px;
  background: linear-gradient(0deg, #ffd060 0%, #ffa020 100%);
  border-radius: 50%;
  box-shadow: 0 0 12px 4px rgba(255,160,32,0.6);
  animation: st-candle 3s ease-in-out infinite alternate;
}
.scn-stripped-tree .shadow-st {
  position: absolute; bottom: 0; left: 0; right: 0; height: 20%;
  background: linear-gradient(0deg, rgba(0,0,0,0.6) 0%, transparent 100%);
  animation: st-shadow 6s ease-in-out infinite;
}
@keyframes st-bg { 0% { opacity: 0.9; } 50% { opacity: 1; } 100% { opacity: 0.8; } }
@keyframes st-tree { 0%,100% { transform: translateX(-50%) rotate(0deg); } 50% { transform: translateX(-50%) rotate(-2deg) scaleY(0.98); } }
@keyframes st-letterbox { 0% { transform: translateY(0); } 100% { transform: translateY(-3px); } }
@keyframes st-figure { 0%,100% { transform: translateX(0) translateY(0) rotate(0deg); } 25% { transform: translateX(5px) translateY(-1px) rotate(-3deg); } 50% { transform: translateX(0) translateY(0) rotate(0deg); } 75% { transform: translateX(-5px) translateY(1px) rotate(3deg); } }
@keyframes st-window { 0% { opacity: 0.6; } 100% { opacity: 0.9; } }
@keyframes st-candle { 0% { opacity: 0.7; transform: scaleY(0.9); } 100% { opacity: 1; transform: scaleY(1.1); } }
@keyframes st-shadow { 0%,100% { opacity: 0.8; } 50% { opacity: 1; } }

.scn-nurse-old-story {
  background: 
    linear-gradient(180deg, #1a1a2a 0%, #2a2a3a 50%, #0a0a1a 100%),
    radial-gradient(ellipse at 50% 80%, #2a2a3a 0%, transparent 70%);
}
.scn-nurse-old-story .bg-room {
  position: absolute; inset: 0;
  background: linear-gradient(135deg, #1a1a2a 0%, #2a2a3a 50%, #1a1a2a 100%);
  animation: nos-bg 18s ease-in-out infinite alternate;
}
.scn-nurse-old-story .lamp {
  position: absolute; top: 20%; left: 50%; width: 20px; height: 30px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #c08040 0%, #a06020 100%);
  border-radius: 50% 50% 20% 20%;
  box-shadow: 0 0 30px 10px rgba(192,128,64,0.5);
  animation: nos-lamp 4s ease-in-out infinite alternate;
}
.scn-nurse-old-story .figure-nurse {
  position: absolute; bottom: 20%; left: 35%; width: 22px; height: 42px;
  background: linear-gradient(180deg, #3a3a4a 0%, #2a2a3a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: nos-nurse 6s ease-in-out infinite;
}
.scn-nurse-old-story .figure-nora {
  position: absolute; bottom: 20%; left: 48%; width: 20px; height: 38px;
  background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: nos-nora 6s ease-in-out infinite;
}
.scn-nurse-old-story .embrace {
  position: absolute; bottom: 27%; left: 38%; width: 30px; height: 20px;
  background: radial-gradient(ellipse at 50% 50%, rgba(255,255,255,0.08) 0%, transparent 100%);
  animation: nos-embrace 8s ease-in-out infinite alternate;
}
.scn-nurse-old-story .glow-lamp {
  position: absolute; inset: 0;
  background: radial-gradient(ellipse at 50% 30%, rgba(192,128,64,0.1) 0%, transparent 70%);
  animation: nos-glow 5s ease-in-out infinite alternate;
}
.scn-nurse-old-story .rug {
  position: absolute; bottom: 0; left: 10%; right: 10%; height: 12%;
  background: linear-gradient(0deg, #2a2a3a 0%, #1a1a2a 100%);
  border-radius: 10% 10% 0 0;
  animation: nos-rug 10s ease-in-out infinite;
}
@keyframes nos-bg { 0% { opacity: 0.9; } 50% { opacity: 1; } 100% { opacity: 0.8; } }
@keyframes nos-lamp { 0% { transform: translateX(-50%) scaleY(0.95); opacity: 0.8; } 50% { transform: translateX(-50%) scaleY(1.05); opacity: 1; } 100% { transform: translateX(-50%) scaleY(1); opacity: 0.9; } }
@keyframes nos-nurse { 0%,100% { transform: translateX(0) translateY(0) rotate(0deg); } 25% { transform: translateX(2px) translateY(-1px) rotate(2deg); } 50% { transform: translateX(0) translateY(0) rotate(0deg); } 75% { transform: translateX(-2px) translateY(1px) rotate(-2deg); } }
@keyframes nos-nora { 0%,100% { transform: translateX(0) translateY(0) rotate(0deg); } 25% { transform: translateX(-2px) translateY(-1px) rotate(-2deg); } 50% { transform: translateX(0) translateY(0) rotate(0deg); } 75% { transform: translateX(2px) translateY(1px) rotate(2deg); } }
@keyframes nos-embrace { 0% { opacity: 0.5; } 100% { opacity: 0.8; } }
@keyframes nos-glow { 0% { opacity: 0.6; } 100% { opacity: 1; } }
@keyframes nos-rug { 0%,100% { transform: translateY(0); } 50% { transform: translateY(-2px); } }

.scn-spendthrift-rebuke { background: linear-gradient(180deg, #3b1f0b 0%, #5a2d12 30%, #8b4513 70%, #4a2010 100%), radial-gradient(ellipse at 50% 80%, #c85a17 0%, transparent 70%); }
.scn-spendthrift-rebuke .tree { position:absolute; bottom:10%; left:30%; width:120px; height:200px; background: linear-gradient(180deg, #2e5a1e 0%, #1a3a0e 100%); border-radius:30% 30% 10% 10% / 50% 50% 20% 20%; transform:rotate(-2deg); animation: sr-tree 6s ease-in-out infinite; }
.scn-spendthrift-rebuke .gift-box { position:absolute; bottom:12%; left:55%; width:80px; height:80px; background: linear-gradient(135deg, #c47a2e 0%, #a45c1e 100%); border-radius:10%; box-shadow: 0 8px 16px rgba(0,0,0,.5); animation: sr-gift 4s ease-in-out infinite; }
.scn-spendthrift-rebuke .gift-lid { position:absolute; bottom:84%; left:53%; width:90px; height:20px; background: linear-gradient(180deg, #d4923a 0%, #b87228 100%); border-radius:3px; transform:rotate(1deg); animation: sr-lid 5s ease-in-out infinite; }
.scn-spendthrift-rebuke .ribbon { position:absolute; bottom:48%; left:57%; width:6px; height:50px; background: #c8553d; border-radius:2px; transform:rotate(15deg); animation: sr-ribbon 3s ease-in-out infinite; }
.scn-spendthrift-rebuke .bow { position:absolute; bottom:52%; left:58%; width:20px; height:12px; background: radial-gradient(circle, #e0703a 0%, #b85028 100%); border-radius:50% 50% 0 0; animation: sr-bow 3s ease-in-out infinite alternate; }
.scn-spendthrift-rebuke .sparkle-a { position:absolute; top:10%; left:25%; width:8px; height:8px; background: #ffd700; border-radius:50%; box-shadow: 0 0 12px 4px #ffd700; animation: sr-sparkle-a 2s ease-in-out infinite; }
.scn-spendthrift-rebuke .sparkle-b { position:absolute; top:20%; left:60%; width:6px; height:6px; background: #ffd700; border-radius:50%; box-shadow: 0 0 8px 2px #ffd700; animation: sr-sparkle-b 2.5s ease-in-out infinite 0.5s; }
.scn-spendthrift-rebuke .figure { position:absolute; bottom:10%; left:10%; width:30px; height:70px; background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%); border-radius:40% 40% 30% 30% / 50% 50% 30% 30%; transform:rotate(5deg); animation: sr-figure 8s ease-in-out infinite; }
@keyframes sr-tree { 0% { transform:rotate(-2deg) } 50% { transform:rotate(1deg) } 100% { transform:rotate(-3deg) } }
@keyframes sr-gift { 0% { transform:translateY(0) } 50% { transform:translateY(-5px) } 100% { transform:translateY(0) } }
@keyframes sr-lid { 0% { transform:rotate(1deg) translateY(0) } 50% { transform:rotate(2deg) translateY(-3px) } 100% { transform:rotate(-1deg) translateY(0) } }
@keyframes sr-ribbon { 0% { transform:rotate(15deg) } 50% { transform:rotate(20deg) } 100% { transform:rotate(12deg) } }
@keyframes sr-bow { 0% { transform:scale(1) } 50% { transform:scale(1.1) } 100% { transform:scale(0.95) } }
@keyframes sr-sparkle-a { 0% { opacity:0; transform:scale(0.5) } 50% { opacity:1; transform:scale(1.2) } 100% { opacity:0; transform:scale(0.5) } }
@keyframes sr-sparkle-b { 0% { opacity:0; transform:scale(0.5) } 50% { opacity:1; transform:scale(1.3) } 100% { opacity:0; transform:scale(0.5) } }
@keyframes sr-figure { 0% { transform:rotate(5deg) translateX(0) } 50% { transform:rotate(-2deg) translateX(5px) } 100% { transform:rotate(3deg) translateX(0) } }

.scn-macaroons-temptation { background: linear-gradient(180deg, #4a1a0a 0%, #6a2a12 40%, #8b3a1a 80%, #3b1508 100%), radial-gradient(ellipse at 50% 70%, #c85a17 0%, transparent 80%); }
.scn-macaroons-temptation .macaroon { position:absolute; bottom:25%; left:35%; width:120px; height:120px; background: radial-gradient(circle at 40% 40%, #f4a460 0%, #d4743a 60%, #a05528 100%); border-radius:50%; box-shadow: 0 0 20px 8px rgba(244,164,96,0.3); animation: mt-macaroon 5s ease-in-out infinite; }
.scn-macaroons-temptation .skylark { position:absolute; bottom:65%; left:20%; width:30px; height:22px; background: linear-gradient(180deg, #c8553d 0%, #a03a2a 100%); border-radius:50% 50% 40% 40% / 60% 60% 30% 30%; transform:rotate(-10deg); animation: mt-skylark 3s ease-in-out infinite; }
.scn-macaroons-temptation .plate { position:absolute; bottom:18%; left:32%; width:140px; height:30px; background: linear-gradient(180deg, #d4a88a 0%, #b0806a 100%); border-radius:50% 50% 30% 30% / 40% 40% 20% 20%; box-shadow: 0 4px 8px rgba(0,0,0,.3); }
.scn-macaroons-temptation .hand { position:absolute; bottom:40%; left:60%; width:20px; height:50px; background: linear-gradient(180deg, #d4a070 0%, #b08050 100%); border-radius:40% 40% 30% 30% / 50% 50% 40% 40%; transform-origin:80% 100%; animation: mt-hand 4s ease-in-out infinite; }
.scn-macaroons-temptation .crumb-a { position:absolute; bottom:20%; left:45%; width:8px; height:8px; background: #e0a060; border-radius:50%; animation: mt-crumb-a 6s ease-in-out infinite; }
.scn-macaroons-temptation .crumb-b { position:absolute; bottom:22%; left:50%; width:6px; height:6px; background: #e0a060; border-radius:50%; animation: mt-crumb-b 6.5s ease-in-out infinite 1s; }
.scn-macaroons-temptation .shadow { position:absolute; bottom:15%; left:30%; width:150px; height:20px; background: rgba(0,0,0,0.3); border-radius:50%; filter: blur(8px); animation: mt-shadow 5s ease-in-out infinite; }
@keyframes mt-macaroon { 0% { transform:scale(1) rotate(0) } 50% { transform:scale(1.05) rotate(3deg) } 100% { transform:scale(1) rotate(-2deg) } }
@keyframes mt-skylark { 0% { transform:rotate(-10deg) translateY(0) } 50% { transform:rotate(-5deg) translateY(-4px) } 100% { transform:rotate(-12deg) translateY(0) } }
@keyframes mt-hand { 0% { transform:rotate(10deg) } 50% { transform:rotate(-5deg) } 100% { transform:rotate(8deg) } }
@keyframes mt-crumb-a { 0% { opacity:0; transform:translate(0,0) } 50% { opacity:1; transform:translate(5px,8px) } 100% { opacity:0; transform:translate(10px,16px) } }
@keyframes mt-crumb-b { 0% { opacity:0; transform:translate(0,0) } 50% { opacity:1; transform:translate(-3px,6px) } 100% { opacity:0; transform:translate(-6px,12px) } }
@keyframes mt-shadow { 0% { opacity:0.3; transform:scale(1) } 50% { opacity:0.5; transform:scale(1.1) } 100% { opacity:0.3; transform:scale(1) } }

.scn-denying-sweets { background: linear-gradient(180deg, #3b1508 0%, #5a2010 30%, #7a3018 70%, #2a0a04 100%), radial-gradient(ellipse at 30% 60%, #c85a17 0%, transparent 80%); }
.scn-denying-sweets .figure { position:absolute; bottom:0; left:30%; width:80px; height:200px; background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%); border-radius:40% 40% 30% 30% / 60% 60% 40% 40%; }
.scn-denying-sweets .head { position:absolute; bottom:140px; left:42%; width:50px; height:60px; background: #1a1a2a; border-radius:50% 50% 40% 40% / 60% 60% 50% 50%; transform:rotate(5deg); animation: ds-head 4s ease-in-out infinite; }
.scn-denying-sweets .hand-back { position:absolute; bottom:80px; left:35%; width:20px; height:50px; background: linear-gradient(180deg, #d4a070 0%, #b08050 100%); border-radius:40% 40% 20% 20% / 50% 50% 30% 30%; transform:rotate(-30deg); transform-origin:top; animation: ds-hand-back 4s ease-in-out infinite; }
.scn-denying-sweets .hand-front { position:absolute; bottom:100px; left:55%; width:20px; height:40px; background: linear-gradient(180deg, #d4a070 0%, #b08050 100%); border-radius:30% 30% 20% 20% / 40% 40% 30% 30%; transform:rotate(20deg); transform-origin:top; animation: ds-hand-front 4s ease-in-out infinite; }
.scn-denying-sweets .macaroon-hidden { position:absolute; bottom:80px; left:48%; width:30px; height:30px; background: radial-gradient(circle at 40% 40%, #f4a460 0%, #d4743a 100%); border-radius:50%; box-shadow: 0 0 10px 4px rgba(244,164,96,0.3); animation: ds-hidden 4s ease-in-out infinite; }
.scn-denying-sweets .crumb-a { position:absolute; bottom:50px; left:40%; width:6px; height:6px; background: #e0a060; border-radius:50%; animation: ds-crumb 5s ease-in-out infinite; }
.scn-denying-sweets .crumb-b { position:absolute; bottom:55px; left:52%; width:8px; height:8px; background: #e0a060; border-radius:50%; animation: ds-crumb 5.3s ease-in-out infinite 0.5s; }
.scn-denying-sweets .shadow { position:absolute; bottom:0; left:25%; width:160px; height:30px; background: rgba(0,0,0,0.4); border-radius:50%; filter: blur(10px); animation: ds-shadow 4s ease-in-out infinite; }
@keyframes ds-head { 0% { transform:rotate(5deg) } 30% { transform:rotate(-10deg) } 60% { transform:rotate(8deg) } 100% { transform:rotate(3deg) } }
@keyframes ds-hand-back { 0% { transform:rotate(-30deg) } 30% { transform:rotate(-40deg) } 60% { transform:rotate(-20deg) } 100% { transform:rotate(-30deg) } }
@keyframes ds-hand-front { 0% { transform:rotate(20deg) } 30% { transform:rotate(30deg) } 60% { transform:rotate(10deg) } 100% { transform:rotate(20deg) } }
@keyframes ds-hidden { 0% { opacity:1; transform:scale(1) translate(0,0) } 30% { opacity:0.5; transform:scale(0.8) translate(5px,5px) } 60% { opacity:1; transform:scale(1.1) translate(-3px,-2px) } 100% { opacity:1; transform:scale(1) translate(0,0) } }
@keyframes ds-crumb { 0% { opacity:0; transform:translate(0,0) } 50% { opacity:1; transform:translate(2px,5px) } 100% { opacity:0; transform:translate(4px,10px) } }
@keyframes ds-shadow { 0% { opacity:0.4; transform:scale(1) } 50% { opacity:0.6; transform:scale(1.05) } 100% { opacity:0.4; transform:scale(1) } }

.scn-last-christmas-memory { background: linear-gradient(180deg, #2a1a0a 0%, #4a3018 30%, #6a4a2a 70%, #3a2010 100%), radial-gradient(ellipse at 50% 60%, #c85a17 0%, transparent 90%); }
.scn-last-christmas-memory .tree { position:absolute; bottom:5%; left:40%; width:160px; height:240px; background: linear-gradient(180deg, #2e5a1e 0%, #1a3a0e 100%); border-radius:30% 30% 10% 10% / 50% 50% 20% 20%; transform:rotate(-1deg); animation: lc-tree 10s ease-in-out infinite; }
.scn-last-christmas-memory .ornament-a { position:absolute; bottom:80px; left:48%; width:20px; height:20px; background: radial-gradient(circle, #f4a460 0%, #d4923a 100%); border-radius:50%; box-shadow: 0 0 10px 4px rgba(244,164,96,0.4); animation: lc-ornament-a 4s ease-in-out infinite; }
.scn-last-christmas-memory .ornament-b { position:absolute; bottom:120px; left:35%; width:16px; height:16px; background: radial-gradient(circle, #c8553d 0%, #a03a2a 100%); border-radius:50%; animation: lc-ornament-b 5s ease-in-out infinite 0.5s; }
.scn-last-christmas-memory .ornament-c { position:absolute; bottom:160px; left:55%; width:14px; height:14px; background: radial-gradient(circle, #ffd700 0%, #d4a020 100%); border-radius:50%; animation: lc-ornament-c 6s ease-in-out infinite 1s; }
.scn-last-christmas-memory .figure { position:absolute; bottom:10%; left:20%; width:40px; height:80px; background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%); border-radius:40% 40% 30% 30% / 50% 50% 40% 40%; transform:rotate(2deg); animation: lc-figure 8s ease-in-out infinite; }
.scn-last-christmas-memory .fire { position:absolute; bottom:15%; left:10%; width:80px; height:100px; background: linear-gradient(180deg, #c85a17 0%, #a04010 50%, #7a3008 100%); border-radius:40% 40% 20% 20% / 60% 60% 30% 30%; filter: blur(8px); animation: lc-fire 3s ease-in-out infinite; }
.scn-last-christmas-memory .pile { position:absolute; bottom:5%; left:30%; width:60px; height:30px; background: linear-gradient(180deg, #6a4a2a 0%, #4a3018 100%); border-radius:20% 20% 10% 10% / 30% 30% 10% 10%; animation: lc-pile 10s ease-in-out infinite; }
.scn-last-christmas-memory .glow { position:absolute; bottom:5%; left:10%; width:200px; height:200px; background: radial-gradient(circle, rgba(200,90,23,0.15) 0%, transparent 70%); animation: lc-glow 5s ease-in-out infinite alternate; }
@keyframes lc-tree { 0% { transform:rotate(-1deg) } 50% { transform:rotate(1deg) } 100% { transform:rotate(-2deg) } }
@keyframes lc-ornament-a { 0% { transform:translateY(0) scale(1) } 50% { transform:translateY(-4px) scale(1.1) } 100% { transform:translateY(0) scale(1) } }
@keyframes lc-ornament-b { 0% { transform:translateY(0) rotate(0) } 50% { transform:translateY(-3px) rotate(10deg) } 100% { transform:translateY(0) rotate(0) } }
@keyframes lc-ornament-c { 0% { transform:scale(1) } 50% { transform:scale(1.15) } 100% { transform:scale(1) } }
@keyframes lc-figure { 0% { transform:rotate(2deg) translateX(0) } 50% { transform:rotate(-1deg) translateX(3px) } 100% { transform:rotate(2deg) translateX(0) } }
@keyframes lc-fire { 0% { transform:scale(1) opacity(0.7) } 50% { transform:scale(1.05) opacity(1) } 100% { transform:scale(0.95) opacity(0.8) } }
@keyframes lc-pile { 0% { transform:scale(1) } 50% { transform:scale(1.02) translateY(-1px) } 100% { transform:scale(1) } }
@keyframes lc-glow { 0% { opacity:0.5 } 100% { opacity:0.9 } }

.scn-krogstad-begs-for-influence {
  background:
    linear-gradient(180deg, #1a0f0a 0%, #2c1c10 30%, #3a2014 60%, #24120c 100%),
    radial-gradient(ellipse at 50% 60%, #c85a17 0%, transparent 60%);
}
.scn-krogstad-begs-for-influence .fire {
  position:absolute; bottom:10%; left:35%; width:40px; height:60px;
  background: radial-gradient(ellipse at center bottom, #ff7a2a 0%, #d45d2e 40%, transparent 70%);
  border-radius:50% 50% 20% 20%;
  box-shadow: 0 0 50px 20px #d45d2e, 0 0 100px 40px rgba(212,93,46,.3);
  animation: krb1-fire 2s ease-in-out infinite alternate;
}
.scn-krogstad-begs-for-influence .figure-left {
  position:absolute; bottom:15%; left:20%; width:24px; height:48px;
  background: linear-gradient(130deg, #1a0f0a 40%, #2c1c10 60%, #0d0805 100%);
  border-radius:40% 40% 30% 30% / 50% 50% 30% 30%;
  transform: skewX(-5deg);
  animation: krb1-fig-l 4s ease-in-out infinite alternate;
}
.scn-krogstad-begs-for-influence .figure-right {
  position:absolute; bottom:18%; right:22%; width:22px; height:44px;
  background: linear-gradient(200deg, #1a0f0a 30%, #2c1c10 50%, #0d0805 100%);
  border-radius:40% 40% 30% 30% / 50% 50% 30% 30%;
  transform: skewX(5deg);
  animation: krb1-fig-r 4.5s ease-in-out infinite alternate;
}
.scn-krogstad-begs-for-influence .table {
  position:absolute; bottom:8%; left:30%; width:60px; height:12px;
  background: linear-gradient(90deg, #4a2a14 0%, #3a2014 50%, #2c1c10 100%);
  border-radius:4px;
  box-shadow: 0 2px 6px #0d0805;
  animation: krb1-table 6s ease-in-out infinite;
}
.scn-krogstad-begs-for-influence .paper-clutch {
  position:absolute; bottom:20%; left:38%; width:8px; height:12px;
  background: #b88a5e;
  border-radius:2px;
  transform: rotate(-10deg);
  box-shadow: 0 0 4px #0d0805;
  animation: krb1-paper 3s ease-in-out infinite alternate;
}
.scn-krogstad-begs-for-influence .shadow-wash {
  position:absolute; inset:0;
  background: radial-gradient(ellipse at 50% 50%, transparent 40%, #0d0805 80%);
  pointer-events: none;
  animation: krb1-shadow 8s ease-in-out infinite alternate;
}
@keyframes krb1-fire {
  0% { transform: scaleY(1) scaleX(1); opacity:.9; box-shadow: 0 0 40px 15px #d45d2e; }
  30% { transform: scaleY(1.1) scaleX(.95); opacity:1; box-shadow: 0 0 55px 25px #ff7a2a; }
  60% { transform: scaleY(.9) scaleX(1.05); opacity:.95; box-shadow: 0 0 45px 18px #d45d2e; }
  100% { transform: scaleY(1) scaleX(1); opacity:.85; box-shadow: 0 0 35px 12px #c85a17; }
}
@keyframes krb1-fig-l {
  0% { transform: skewX(-5deg) translateY(0); }
  50% { transform: skewX(-8deg) translateY(-2px); }
  100% { transform: skewX(-3deg) translateY(0); }
}
@keyframes krb1-fig-r {
  0% { transform: skewX(5deg) translateY(0); }
  50% { transform: skewX(8deg) translateY(-1px); }
  100% { transform: skewX(3deg) translateY(0); }
}
@keyframes krb1-table {
  0% { transform: scaleX(1); box-shadow: 0 2px 6px #0d0805; }
  50% { transform: scaleX(1.02); box-shadow: 0 4px 10px #0d0805; }
  100% { transform: scaleX(1); box-shadow: 0 2px 6px #0d0805; }
}
@keyframes krb1-paper {
  0% { transform: rotate(-10deg) translateY(0); }
  50% { transform: rotate(-5deg) translateY(-1px); }
  100% { transform: rotate(-15deg) translateY(0); }
}
@keyframes krb1-shadow {
  0% { opacity:.5; }
  50% { opacity:.7; }
  100% { opacity:.4; }
}

/* Scene 2 */
.scn-nora-refuses-influence {
  background:
    linear-gradient(180deg, #1a0f0a 0%, #2c1c10 25%, #3a2014 55%, #24120c 100%),
    radial-gradient(ellipse at 60% 40%, #c85a17 0%, transparent 70%);
}
.scn-nora-refuses-influence .desk {
  position:absolute; bottom:5%; left:15%; width:120px; height:18px;
  background: linear-gradient(90deg, #4a2a14 0%, #3a2014 50%, #2c1c10 100%);
  border-radius:4px;
  box-shadow: 0 4px 12px #0d0805;
  animation: nri2-desk 7s ease-in-out infinite alternate;
}
.scn-nora-refuses-influence .lamp-glow {
  position:absolute; bottom:35%; left:25%; width:24px; height:28px;
  background: radial-gradient(circle, #ffb060 0%, #d45d2e 40%, transparent 70%);
  border-radius:50%;
  box-shadow: 0 0 60px 30px #d45d2e;
  animation: nri2-lamp 3s ease-in-out infinite alternate;
}
.scn-nora-refuses-influence .figure-back {
  position:absolute; bottom:12%; left:35%; width:22px; height:46px;
  background: linear-gradient(180deg, #1a0f0a 30%, #2c1c10 60%, #0d0805 100%);
  border-radius:50% 50% 30% 30% / 60% 60% 30% 30%;
  transform: scaleX(-1);
  animation: nri2-fig-b 5s ease-in-out infinite alternate;
}
.scn-nora-refuses-influence .figure-front {
  position:absolute; bottom:14%; right:28%; width:20px; height:42px;
  background: linear-gradient(180deg, #2c1c10 20%, #1a0f0a 50%, #0d0805 100%);
  border-radius:50% 50% 30% 30% / 60% 60% 30% 30%;
  transform: skewX(3deg);
  animation: nri2-fig-f 4.8s ease-in-out infinite alternate;
}
.scn-nora-refuses-influence .papers {
  position:absolute; bottom:12%; left:42%; width:12px; height:16px;
  background: #b88a5e;
  border-radius:2px;
  box-shadow: 2px 2px 4px #0d0805;
  animation: nri2-papers 4s ease-in-out infinite;
}
.scn-nora-refuses-influence .drawer {
  position:absolute; bottom:2%; left:20%; width:40px; height:10px;
  background: #4a2a14;
  border-radius:2px;
  box-shadow: inset 0 2px 4px #0d0805;
  animation: nri2-drawer 12s ease-in-out infinite;
}
.scn-nora-refuses-influence .door-glint {
  position:absolute; top:20%; right:8%; width:14px; height:50px;
  background: linear-gradient(180deg, #4a2a14 0%, #2c1c10 100%);
  border-left: 2px solid #c85a17;
  opacity:.6;
  animation: nri2-door 6s ease-in-out infinite alternate;
}
@keyframes nri2-lamp {
  0% { box-shadow: 0 0 40px 20px #d45d2e; opacity:.85; }
  50% { box-shadow: 0 0 70px 35px #ffb060; opacity:1; }
  100% { box-shadow: 0 0 50px 25px #d45d2e; opacity:.9; }
}
@keyframes nri2-fig-b {
  0% { transform: scaleX(-1) translateY(0); }
  50% { transform: scaleX(-1) translateY(-2px); }
  100% { transform: scaleX(-1) translateY(0); }
}
@keyframes nri2-fig-f {
  0% { transform: skewX(3deg) translateY(0); }
  50% { transform: skewX(5deg) translateY(-1px); }
  100% { transform: skewX(1deg) translateY(0); }
}
@keyframes nri2-papers {
  0% { transform: translateY(0) rotate(0deg); }
  25% { transform: translateY(-1px) rotate(2deg); }
  50% { transform: translateY(0) rotate(-1deg); }
  75% { transform: translateY(-1px) rotate(1deg); }
  100% { transform: translateY(0) rotate(0deg); }
}
@keyframes nri2-desk {
  0% { box-shadow: 0 4px 12px #0d0805; }
  50% { box-shadow: 0 6px 16px #0d0805; transform: scaleY(1.01); }
  100% { box-shadow: 0 4px 12px #0d0805; }
}
@keyframes nri2-drawer {
  0% { transform: translateX(0); }
  50% { transform: translateX(2px); }
  100% { transform: translateX(0); }
}
@keyframes nri2-door {
  0% { opacity:.4; box-shadow: -2px 0 6px #c85a17; }
  50% { opacity:.7; box-shadow: -4px 0 12px #d45d2e; }
  100% { opacity:.5; box-shadow: -2px 0 6px #c85a17; }
}

/* Scene 3 */
.scn-krogstad-threatens-reveal {
  background:
    linear-gradient(180deg, #0d0805 0%, #1a0f0a 25%, #2c1c10 50%, #1a0f0a 100%),
    radial-gradient(ellipse at 30% 70%, #c85a17 0%, transparent 60%);
}
.scn-krogstad-threatens-reveal .fire-hearth {
  position:absolute; bottom:0; left:0; right:0; height:30%;
  background: linear-gradient(180deg, transparent 0%, #2c1c10 60%, #0d0805 100%);
  border-radius: 40% 60% 0 0 / 20% 30% 0 0;
  box-shadow: inset 0 -10px 30px #0d0805;
  animation: ktr3-hearth 10s ease-in-out infinite alternate;
}
.scn-krogstad-threatens-reveal .figure-fore {
  position:absolute; bottom:10%; left:25%; width:26px; height:54px;
  background: linear-gradient(180deg, #0d0805 20%, #1a0f0a 50%, #0d0805 100%);
  border-radius:40% 40% 30% 30% / 60% 60% 30% 30%;
  transform: skewX(-8deg) scale(1.1);
  animation: ktr3-fig-f 5s ease-in-out infinite alternate;
}
.scn-krogstad-threatens-reveal .figure-back {
  position:absolute; bottom:18%; right:30%; width:20px; height:38px;
  background: linear-gradient(180deg, #1a0f0a 30%, #0d0805 100%);
  border-radius:40% 40% 30% 30% / 60% 60% 30% 30%;
  filter: blur(2px);
  animation: ktr3-fig-b 6s ease-in-out infinite alternate;
}
.scn-krogstad-threatens-reveal .wall-panel {
  position:absolute; top:10%; left:5%; right:5%; height:30%;
  background: linear-gradient(180deg, #2c1c10 0%, #1a0f0a 100%);
  border-radius:4px;
  box-shadow: 0 0 20px #0d0805 inset;
  animation: ktr3-wall 8s ease-in-out infinite alternate;
}
.scn-krogstad-threatens-reveal .letter-hand {
  position:absolute; bottom:22%; left:35%; width:10px; height:14px;
  background: #b88a5e;
  border-radius:2px;
  transform: rotate(15deg);
  box-shadow: 0 0 6px #0d0805;
  animation: ktr3-letter 3.5s ease-in-out infinite alternate;
}
.scn-krogstad-threatens-reveal .shadow-deep {
  position:absolute; inset:0;
  background: radial-gradient(ellipse at 50% 70%, transparent 30%, #0d0805 70%);
  pointer-events: none;
  animation: ktr3-shadow 7s ease-in-out infinite alternate;
}
.scn-krogstad-threatens-reveal .ember {
  position:absolute; bottom:20%; left:15%; width:4px; height:4px;
  background: #d45d2e;
  border-radius:50%;
  box-shadow: 0 0 10px 4px #d45d2e;
  animation: ktr3-ember 2s ease-in-out infinite alternate;
}
@keyframes ktr3-hearth {
  0% { box-shadow: inset 0 -8px 20px #0d0805; }
  50% { box-shadow: inset 0 -12px 40px #0d0805; }
  100% { box-shadow: inset 0 -8px 20px #0d0805; }
}
@keyframes ktr3-fig-f {
  0% { transform: skewX(-8deg) scale(1.1) translateY(0); }
  50% { transform: skewX(-10deg) scale(1.12) translateY(-2px); }
  100% { transform: skewX(-6deg) scale(1.08) translateY(0); }
}
@keyframes ktr3-fig-b {
  0% { transform: translateY(0); }
  50% { transform: translateY(-3px); }
  100% { transform: translateY(0); }
}
@keyframes ktr3-wall {
  0% { box-shadow: 0 0 20px #0d0805 inset; opacity:.8; }
  50% { box-shadow: 0 0 40px #0d0805 inset; opacity:.9; }
  100% { box-shadow: 0 0 20px #0d0805 inset; opacity:.8; }
}
@keyframes ktr3-letter {
  0% { transform: rotate(15deg) translateY(0); }
  50% { transform: rotate(10deg) translateY(-1px); }
  100% { transform: rotate(20deg) translateY(0); }
}
@keyframes ktr3-shadow {
  0% { opacity:.6; }
  50% { opacity:.8; }
  100% { opacity:.5; }
}
@keyframes ktr3-ember {
  0% { transform: translateY(0) scale(1); opacity:.9; }
  50% { transform: translateY(-5px) scale(1.5); opacity:1; }
  100% { transform: translateY(0) scale(1); opacity:.8; }
}

/* Scene 4 */
.scn-krogstad-fights-for-post {
  background:
    linear-gradient(180deg, #0d0805 0%, #1a0f0a 30%, #2c1c10 50%, #1a0f0a 100%),
    radial-gradient(ellipse at 40% 50%, #c85a17 0%, transparent 50%);
}
.scn-krogstad-fights-for-post .floor {
  position:absolute; bottom:0; left:0; right:0; height:15%;
  background: linear-gradient(180deg, #2c1c10 0%, #0d0805 100%);
  border-radius:60% 40% 0 0 / 40% 30% 0 0;
  animation: krf4-floor 9s ease-in-out infinite alternate;
}
.scn-krogstad-fights-for-post .fireplace {
  position:absolute; bottom:10%; left:10%; width:50px; height:80px;
  background: linear-gradient(180deg, #3a2014 0%, #1a0f0a 100%);
  border-radius:10% 10% 4% 4%;
  box-shadow: 0 0 30px #0d0805 inset, 0 4px 12px #0d0805;
  animation: krf4-fireplace 6s ease-in-out infinite alternate;
}
.scn-krogstad-fights-for-post .figure-bent {
  position:absolute; bottom:8%; left:30%; width:24px; height:42px;
  background: linear-gradient(130deg, #1a0f0a 30%, #0d0805 100%);
  border-radius:40% 40% 30% 30% / 50% 50% 30% 30%;
  transform: rotate(-10deg) skewX(5deg);
  animation: krf4-fig-bent 4s ease-in-out infinite alternate;
}
.scn-krogstad-fights-for-post .figure-still {
  position:absolute; bottom:14%; right:22%; width:20px; height:46px;
  background: linear-gradient(180deg, #2c1c10 20%, #0d0805 100%);
  border-radius:40% 40% 30% 30% / 60% 60% 30% 30%;
  transform: scaleX(-1);
  animation: krf4-fig-still 5s ease-in-out infinite alternate;
}
.scn-krogstad-fights-for-post .desk-clutter {
  position:absolute; bottom:4%; left:45%; width:60px; height:14px;
  background: linear-gradient(90deg, #4a2a14 0%, #2c1c10 50%, #1a0f0a 100%);
  border-radius:4px;
  box-shadow: 0 2px 8px #0d0805;
  animation: krf4-desk 8s ease-in-out infinite;
}
.scn-krogstad-fights-for-post .envelope {
  position:absolute; bottom:12%; left:50%; width:10px; height:14px;
  background: #b88a5e;
  border-radius:2px;
  transform: rotate(-5deg);
  box-shadow: 1px 1px 4px #0d0805;
  animation: krf4-env 3s ease-in-out infinite alternate;
}
.scn-krogstad-fights-for-post .candle {
  position:absolute; bottom:25%; left:18%; width:6px; height:24px;
  background: linear-gradient(180deg, #d45d2e 0%, #c85a17 100%);
  border-radius:2px 2px 0 0;
  box-shadow: 0 0 20px 8px #d45d2e;
  animation: krf4-candle 2.5s ease-in-out infinite alternate;
}
@keyframes krf4-floor {
  0% { transform: translateY(0); box-shadow: inset 0 2px 6px #0d0805; }
  50% { transform: translateY(-1px); box-shadow: inset 0 4px 10px #0d0805; }
  100% { transform: translateY(0); box-shadow: inset 0 2px 6px #0d0805; }
}
@keyframes krf4-fireplace {
  0% { box-shadow: 0 0 20px #0d0805 inset, 0 4px 12px #0d0805; }
  50% { box-shadow: 0 0 40px #0d0805 inset, 0 6px 18px #0d0805; }
  100% { box-shadow: 0 0 20px #0d0805 inset, 0 4px 12px #0d0805; }
}
@keyframes krf4-fig-bent {
  0% { transform: rotate(-10deg) skewX(5deg) translateY(0); }
  50% { transform: rotate(-12deg) skewX(7deg) translateY(-2px); }
  100% { transform: rotate(-8deg) skewX(3deg) translateY(0); }
}
@keyframes krf4-fig-still {
  0% { transform: scaleX(-1) translateY(0); }
  50% { transform: scaleX(-1) translateY(-1px); }
  100% { transform: scaleX(-1) translateY(0); }
}
@keyframes krf4-desk {
  0% { box-shadow: 0 2px 8px #0d0805; transform: scaleX(1); }
  50% { box-shadow: 0 4px 14px #0d0805; transform: scaleX(1.01); }
  100% { box-shadow: 0 2px 8px #0d0805; transform: scaleX(1); }
}
@keyframes krf4-env {
  0% { transform: rotate(-5deg) translateY(0); }
  50% { transform: rotate(-2deg) translateY(-1px); }
  100% { transform: rotate(-8deg) translateY(0); }
}
@keyframes krf4-candle {
  0% { transform: scaleY(1); box-shadow: 0 0 15px 6px #d45d2e; opacity:.9; }
  50% { transform: scaleY(1.08); box-shadow: 0 0 25px 12px #d45d2e; opacity:1; }
  100% { transform: scaleY(1); box-shadow: 0 0 15px 6px #d45d2e; opacity:.85; }
}

/* scene helmer-fantasy */
.scn-helmer-fantasy {
  background:
    linear-gradient(180deg, #3e2a1a 0%, #2a1a0e 40%, #1a0e06 100%),
    radial-gradient(ellipse at 60% 50%, #5a3a1a 0%, transparent 70%);
}
.scn-helmer-fantasy .room-bg { position:absolute; inset:0 0 25% 0; background: linear-gradient(180deg, #2a1a0e 0%, transparent 100%); animation: hf-room 8s ease-in-out infinite alternate; }
.scn-helmer-fantasy .candle-glow { position:absolute; bottom:20%; left:40%; width:50px; height:50px; background: radial-gradient(circle, #c0803a 0%, transparent 70%); border-radius:50%; box-shadow: 0 0 40px 20px #c0803a; opacity:0.5; animation: hf-glowpulse 4s ease-in-out infinite alternate; }
.scn-helmer-fantasy .man { position:absolute; bottom:20%; left:35%; width:22px; height:50px; background: linear-gradient(180deg, #2a1a0e 0%, #1a0e06 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: hf-man 6s ease-in-out infinite; }
.scn-helmer-fantasy .woman { position:absolute; bottom:20%; left:50%; width:20px; height:48px; background: linear-gradient(180deg, #3a2a1a 0%, #2a1a0e 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: hf-woman 6s ease-in-out infinite; }
.scn-helmer-fantasy .shawl { position:absolute; bottom:28%; left:48%; width:30px; height:12px; background: linear-gradient(180deg, #c08040 0%, #a06030 100%); border-radius: 30% 30% 20% 20% / 50% 50% 40% 40%; transform: rotate(-10deg); animation: hf-shawl 6s ease-in-out infinite; }
.scn-helmer-fantasy .candle { position:absolute; bottom:20%; left:40%; width:6px; height:16px; background: linear-gradient(180deg, #c08040 0%, #8a5a2a 100%); border-radius: 10% 10% 20% 20% / 10% 10% 20% 20%; box-shadow: 0 0 8px 2px #c08040; animation: hf-candleflicker 1s ease-in-out infinite; }
.scn-helmer-fantasy .warm-light { position:absolute; inset:0; background: radial-gradient(ellipse at 60% 50%, #c0803a 0%, transparent 70%); mix-blend-mode: overlay; opacity:0.4; animation: hf-warmpulse 5s ease-in-out infinite alternate; }
.scn-helmer-fantasy .particle-a { position:absolute; bottom:30%; left:30%; width:3px; height:3px; background:#d0a060; border-radius:50%; box-shadow: 0 0 4px #d0a060; animation: hf-dusta 12s linear infinite; }
.scn-helmer-fantasy .particle-b { position:absolute; bottom:40%; left:60%; width:2px; height:2px; background:#e0b070; border-radius:50%; animation: hf-dustb 15s linear infinite; }
@keyframes hf-room { 0% { opacity:0.8 } 50% { opacity:1 } 100% { opacity:0.7 } }
@keyframes hf-glowpulse { 0% { transform: scale(0.9); opacity:0.4 } 50% { transform: scale(1.1); opacity:0.6 } 100% { transform: scale(1); opacity:0.5 } }
@keyframes hf-man { 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 hf-woman { 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 hf-shawl { 0%,100% { transform: rotate(-10deg) translateY(0) } 50% { transform: rotate(-5deg) translateY(-2px) } }
@keyframes hf-candleflicker { 0%,100% { transform: translateY(0) scaleY(1); opacity:0.9 } 25% { transform: translateY(-1px) scaleY(1.1); opacity:1 } 50% { transform: translateY(1px) scaleY(0.95); opacity:0.8 } 75% { transform: translateY(0) scaleY(1.05); opacity:1 } }
@keyframes hf-warmpulse { 0% { opacity:0.3 } 50% { opacity:0.5 } 100% { opacity:0.4 } }
@keyframes hf-dusta { 0% { transform: translate(0,0) scale(1); opacity:0.8 } 50% { transform: translate(30px,-20px) scale(0.6); opacity:0.3 } 100% { transform: translate(60px,-40px) scale(0.2); opacity:0 } }
@keyframes hf-dustb { 0% { transform: translate(0,0) scale(0.8); opacity:0.6 } 50% { transform: translate(-20px,-15px) scale(1.2); opacity:0.9 } 100% { transform: translate(-40px,-30px) scale(0.5); opacity:0 } }

/* scene rank-visits */
.scn-rank-visits {
  background:
    linear-gradient(180deg, #2a1a0e 0%, #1a0e06 50%, #0a0602 100%),
    radial-gradient(ellipse at 40% 70%, #3a2212 0%, transparent 80%);
}
.scn-rank-visits .scene-bg { position:absolute; inset:0 0 30% 0; background: linear-gradient(180deg, #1a0e06 0%, transparent 100%); animation: rv-bg 12s ease-in-out infinite alternate; }
.scn-rank-visits .table { position:absolute; bottom:20%; left:20%; right:20%; height:12%; background: linear-gradient(180deg, #4a2a1a 0%, #2a1a0e 100%); border-radius: 10% 10% 0 0 / 30% 30% 0 0; box-shadow: 0 4px 8px rgba(0,0,0,0.7); transform: perspective(300px) rotateX(5deg); animation: rv-table 8s ease-in-out infinite; }
.scn-rank-visits .wine-bottle { position:absolute; bottom:24%; left:35%; width:14px; height:30px; background: linear-gradient(180deg, #8a5a2a 0%, #5a3a1a 100%); border-radius: 30% 30% 10% 10% / 50% 50% 10% 10%; box-shadow: -2px 0 4px rgba(0,0,0,0.5); transform: rotate(-5deg); animation: rv-bottle 7s ease-in-out infinite; }
.scn-rank-visits .wine-glass { position:absolute; bottom:22%; left:48%; width:18px; height:20px; background: radial-gradient(ellipse at 50% 30%, #c08040 0%, #8a5a2a 70%); border-radius: 0 0 20% 20% / 0 0 10% 10%; clip-path: polygon(0% 100%, 20% 0%, 80% 0%, 100% 100%); transform: scaleY(0.8); animation: rv-glass 6s ease-in-out infinite; }
.scn-rank-visits .chair { position:absolute; bottom:22%; left:55%; width:30px; height:40px; background: linear-gradient(180deg, #3a2a1a 0%, #1a0e06 100%); border-radius: 30% 30% 10% 10% / 40% 40% 10% 10%; box-shadow: 2px 0 6px rgba(0,0,0,0.6); transform: rotate(2deg); animation: rv-chair 10s ease-in-out infinite; }
.scn-rank-visits .man-figure { position:absolute; bottom:22%; left:55%; width:20px; height:48px; background: linear-gradient(180deg, #2a1a0e 0%, #1a0e06 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: rv-man 5s ease-in-out infinite; }
.scn-rank-visits .candle-flame { position:absolute; bottom:30%; left:30%; width:8px; height:12px; background: radial-gradient(ellipse at 50% 30%, #c08040 0%, #a06030 50%, transparent 70%); border-radius: 50%; box-shadow: 0 0 20px 8px #c08040; animation: rv-flame 1.5s ease-in-out infinite alternate; }
.scn-rank-visits .shadow-wave { position:absolute; bottom:0; left:0; right:0; height:30%; background: linear-gradient(180deg, transparent 0%, rgba(10,6,2,0.8) 100%); animation: rv-shadow 10s ease-in-out infinite; }
.scn-rank-visits .liquor-splash { position:absolute; bottom:30%; left:44%; width:4px; height:4px; background:#c08040; border-radius:50%; box-shadow: 0 0 6px #c08040; animation: rv-splash 2s ease-in-out infinite; }
@keyframes rv-bg { 0% { opacity:0.7 } 50% { opacity:1 } 100% { opacity:0.8 } }
@keyframes rv-table { 0%,100% { transform: perspective(300px) rotateX(5deg) } 50% { transform: perspective(300px) rotateX(8deg) } }
@keyframes rv-bottle { 0% { transform: rotate(-5deg) } 25% { transform: rotate(-3deg) translateY(-1px) } 50% { transform: rotate(-5deg) } 75% { transform: rotate(-7deg) } 100% { transform: rotate(-5deg) } }
@keyframes rv-glass { 0%,100% { transform: scaleY(0.8) rotate(0deg) } 50% { transform: scaleY(0.85) rotate(2deg) } }
@keyframes rv-chair { 0% { transform: rotate(2deg) } 50% { transform: rotate(0deg) scaleX(0.98) } 100% { transform: rotate(2deg) } }
@keyframes rv-man { 0% { transform: translateX(0) rotate(0deg) } 25% { transform: translateX(-2px) rotate(-2deg) scaleY(1.01) } 50% { transform: translateX(0) rotate(0deg) } 75% { transform: translateX(2px) rotate(2deg) } 100% { transform: translateX(0) rotate(0deg) } }
@keyframes rv-flame { 0% { transform: scaleY(0.8) rotate(-5deg); opacity:0.9 } 50% { transform: scaleY(1.2) rotate(2deg); opacity:1 } 100% { transform: scaleY(0.9) rotate(3deg); opacity:0.8 } }
@keyframes rv-shadow { 0% { opacity:0.6 } 50% { opacity:0.9 } 100% { opacity:0.7 } }
@keyframes rv-splash { 0% { transform: translate(0,0) scale(1); opacity:1 } 50% { transform: translate(2px,-4px) scale(0.5); opacity:0.5 } 100% { transform: translate(4px,-8px) scale(0); opacity:0 } }

/* scene rank-leaves */
.scn-rank-leaves {
  background:
    linear-gradient(180deg, #1a0e06 0%, #0a0602 50%, #000 100%),
    radial-gradient(ellipse at 50% 80%, #2a1a0e 0%, transparent 70%);
}
.scn-rank-leaves .dark-room { position:absolute; inset:0 0 35% 0; background: linear-gradient(180deg, #0a0602 0%, transparent 100%); animation: rl-room 15s ease-in-out infinite alternate; }
.scn-rank-leaves .hand { position:absolute; bottom:25%; left:42%; width:16px; height:24px; background: linear-gradient(180deg, #2a1a0e 0%, #1a0e06 100%); border-radius: 50% 40% 40% 50% / 30% 30% 40% 40%; transform: rotate(-15deg); transform-origin: bottom center; animation: rl-hand 4s ease-in-out infinite; }
.scn-rank-leaves .cigar { position:absolute; bottom:30%; left:45%; width:20px; height:6px; background: linear-gradient(180deg, #4a2a1a 0%, #2a1a0e 100%); border-radius: 40% 40% 30% 30% / 30% 30% 20% 20%; transform: rotate(30deg); animation: rl-cigar 5s ease-in-out infinite; }
.scn-rank-leaves .match-flame { position:absolute; bottom:33%; left:48%; width:6px; height:10px; background: radial-gradient(ellipse at 50% 20%, #d0a060 0%, #c08040 50%, transparent 80%); border-radius: 50%; box-shadow: 0 0 12px 4px #c08040; animation: rl-match 2s ease-in-out infinite alternate; }
.scn-rank-leaves .smoke-a { position:absolute; bottom:40%; left:40%; width:20px; height:20px; background: rgba(60,40,20,0.3); border-radius: 50%; filter: blur(8px); animation: rl-smokea 8s linear infinite; }
.scn-rank-leaves .smoke-b { position:absolute; bottom:45%; left:55%; width:15px; height:15px; background: rgba(50,30,10,0.2); border-radius: 50%; filter: blur(6px); animation: rl-smokeb 10s linear infinite reverse; }
.scn-rank-leaves .candle-drip { position:absolute; bottom:20%; left:70%; width:4px; height:8px; background: linear-gradient(180deg, #c08040 0%, #8a5a2a 100%); border-radius: 20% 20% 10% 10% / 20% 20% 10% 10%; animation: rl-drip 3s ease-in-out infinite; }
.scn-rank-leaves .table-edge { position:absolute; bottom:25%; left:30%; right:30%; height:2px; background: linear-gradient(90deg, transparent, #4a2a1a, transparent); animation: rl-edge 6s ease-in-out infinite; }
@keyframes rl-room { 0% { opacity:0.6 } 50% { opacity:0.9 } 100% { opacity:0.7 } }
@keyframes rl-hand { 0% { transform: rotate(-15deg) } 25% { transform: rotate(-10deg) translateY(-2px) } 50% { transform: rotate(-15deg) } 75% { transform: rotate(-20deg) } 100% { transform: rotate(-15deg) } }
@keyframes rl-cigar { 0% { transform: rotate(30deg) translateY(0) } 50% { transform: rotate(25deg) translateY(-2px) scaleX(1.1) } 100% { transform: rotate(30deg) } }
@keyframes rl-match { 0% { transform: scaleY(0.8); opacity:0.7 } 50% { transform: scaleY(1.3); opacity:1 } 100% { transform: scaleY(1); opacity:0.8 } }
@keyframes rl-smokea { 0% { transform: translate(0,0) scale(0.8); opacity:0.4 } 50% { transform: translate(20px,-30px) scale(1.5); opacity:0.1 } 100% { transform: translate(40px,-60px) scale(2); opacity:0 } }
@keyframes rl-smokeb { 0% { transform: translate(0,0) scale(0.6); opacity:0.3 } 50% { transform: translate(-15px,-30px) scale(1.2); opacity:0.2 } 100% { transform: translate(-30px,-60px) scale(2); opacity:0 } }
@keyframes rl-drip { 0% { transform: translateY(0) scaleY(1) } 50% { transform: translateY(10px) scaleY(0.5); opacity:0.6 } 100% { transform: translateY(20px) scaleY(0); opacity:0 } }
@keyframes rl-edge { 0% { opacity:0.3 } 50% { opacity:0.7 } 100% { opacity:0.4 } }

/* scene rank-death-cards */
.scn-rank-death-cards {
  background:
    linear-gradient(180deg, #0e0a06 0%, #0a0602 40%, #0e0a06 100%),
    radial-gradient(ellipse at 30% 30%, #2a1a0e 0%, transparent 80%);
}
.scn-rank-death-cards .empty-room { position:absolute; inset:0 0 20% 0; background: linear-gradient(180deg, #0a0602 0%, transparent 100%); animation: rd-room 20s ease-in-out infinite alternate; }
.scn-rank-death-cards .armchair { position:absolute; bottom:20%; left:30%; width:40px; height:40px; background: linear-gradient(180deg, #2a1a0e 0%, #1a0e06 100%); border-radius: 30% 30% 10% 10% / 40% 40% 10% 10%; box-shadow: inset 0 0 15px rgba(0,0,0,0.8); transform: perspective(200px) rotateY(-5deg); animation: rd-chair 8s ease-in-out infinite; }
.scn-rank-death-cards .figure-hunched { position:absolute; bottom:20%; left:30%; width:20px; height:34px; background: linear-gradient(180deg, #1a0e06 0%, #0a0602 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; transform: rotate(10deg); animation: rd-figure 6s ease-in-out infinite; }
.scn-rank-death-cards .cards-deck { position:absolute; bottom:15%; left:45%; width:18px; height:14px; background: linear-gradient(180deg, #9a7a4a 0%, #6a4a2a 100%); border-radius: 10% 10% 20% 20% / 10% 10% 20% 20%; box-shadow: 0 2px 4px rgba(0,0,0,0.6); transform: rotate(-5deg); animation: rd-deck 7s ease-in-out infinite; }
.scn-rank-death-cards .candle-stub { position:absolute; bottom:24%; left:68%; width:6px; height:12px; background: linear-gradient(180deg, #c08040 0%, #8a5a2a 100%); border-radius: 10% 10% 20% 20% / 10% 10% 20% 20%; box-shadow: 0 0 8px 2px #c08040; animation: rd-stubflicker 2s ease-in-out infinite; }
.scn-rank-death-cards .card-a { position:absolute; top:30%; left:20%; width:12px; height:16px; background: linear-gradient(180deg, #b09060 0%, #8a6a3a 100%); border-radius: 6% 6% 6% 6% / 6% 6% 6% 6%; box-shadow: 0 2px 6px rgba(0,0,0,0.5); transform: rotate(25deg); animation: rd-cardflut 10s ease-in-out infinite; }
.scn-rank-death-cards .card-b { position:absolute; top:40%; right:25%; width:12px; height:16px; background: linear-gradient(180deg, #b09060 0%, #8a6a3a 100%); border-radius: 6% 6% 6% 6% / 6% 6% 6% 6%; box-shadow: 0 2px 6px rgba(0,0,0,0.5); transform: rotate(-15deg); animation: rd-cardflut 12s ease-in-out infinite reverse; }
.scn-rank-death-cards .shadow-veil { position:absolute; inset:0; background: radial-gradient(ellipse at 50% 80%, transparent 0%, rgba(10,6,2,0.7) 100%); animation: rd-veil 15s ease-in-out infinite; }
@keyframes rd-room { 0% { opacity:0.5 } 50% { opacity:0.8 } 100% { opacity:0.6 } }
@keyframes rd-chair { 0%,100% { transform: perspective(200px) rotateY(-5deg) } 50% { transform: perspective(200px) rotateY(0deg) } }
@keyframes rd-figure { 0% { transform: rotate(10deg) } 25% { transform: rotate(12deg) translateY(-2px) } 50% { transform: rotate(8deg) } 75% { transform: rotate(12deg) } 100% { transform: rotate(10deg) } }
@keyframes rd-deck { 0% { transform: rotate(-5deg) } 25% { transform: rotate(-3deg) scale(1.02) } 50% { transform: rotate(-5deg) } 75% { transform: rotate(-7deg) } 100% { transform: rotate(-5deg) } }
@keyframes rd-stubflicker { 0%,100% { transform: scaleY(1); opacity:0.8 } 25% { transform: scaleY(1.1); opacity:1 } 50% { transform: scaleY(0.9); opacity:0.7 } 75% { transform: scaleY(1.05); opacity:0.9 } }
@keyframes rd-cardflut { 0%,100% { transform: rotate(25deg) translateY(0) } 25% { transform: rotate(20deg) translateY(-4px) } 50% { transform: rotate(30deg) translateY(0) } 75% { transform: rotate(22deg) translateY(3px) } }
@keyframes rd-veil { 0% { opacity:0.6 } 50% { opacity:0.85 } 100% { opacity:0.7 } }

/* nora-confesses-forgery */
.scn-nora-confesses-forgery {
  background: linear-gradient(180deg, #3a1a0a 0%, #1a0a00 100%),
              radial-gradient(ellipse at 50% 60%, #8b3a1a 0%, transparent 70%);
}
.scn-nora-confesses-forgery .bg {
  position: absolute; inset: 0; background: linear-gradient(180deg, #2a0a00 0%, transparent 100%);
  animation: ncf-bg 12s ease-in-out infinite alternate;
}
.scn-nora-confesses-forgery .fire {
  position: absolute; bottom: 20%; left: 50%; width: 60px; height: 80px; transform: translateX(-50%);
  background: radial-gradient(ellipse at 50% 100%, #ff8c42 0%, #c84a00 60%, transparent 100%);
  border-radius: 50% 50% 30% 30%; box-shadow: 0 0 40px 20px rgba(255, 140, 66, 0.6);
  animation: ncf-fire 2s ease-in-out infinite alternate;
}
.scn-nora-confesses-forgery .desk {
  position: absolute; bottom: 8%; left: 25%; right: 25%; height: 12%;
  background: linear-gradient(180deg, #5a2a1a 0%, #3a1505 100%);
  border-radius: 4px 4px 0 0; box-shadow: 0 4px 10px rgba(0,0,0,0.7);
  animation: ncf-desk 6s ease-in-out infinite;
}
.scn-nora-confesses-forgery .letter {
  position: absolute; bottom: 16%; left: 43%; width: 10%; height: 8%;
  background: #b8864a; border-radius: 2px; box-shadow: 0 0 20px 4px #f0c060;
  animation: ncf-letter 3s ease-in-out infinite alternate;
}
.scn-nora-confesses-forgery .nora {
  position: absolute; bottom: 20%; left: 48%; width: 8%; height: 30%;
  background: linear-gradient(180deg, #1a0a00 0%, #0a0000 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: ncf-nora 4s ease-in-out infinite;
}
.scn-nora-confesses-forgery .shadow {
  position: absolute; inset: 0; background: radial-gradient(ellipse at 50% 80%, transparent 40%, rgba(0,0,0,0.6) 100%);
  animation: ncf-shadow 8s ease-in-out infinite alternate;
}
.scn-nora-confesses-forgery .glow {
  position: absolute; inset: 0; background: radial-gradient(ellipse at 50% 50%, rgba(255,160,60,0.15) 0%, transparent 70%);
  animation: ncf-glow 5s ease-in-out infinite alternate;
}
@keyframes ncf-bg { 0% { opacity: 0.7; } 50% { opacity: 1; } 100% { opacity: 0.6; } }
@keyframes ncf-fire { 0% { transform: translateX(-50%) scale(1) rotate(0deg); opacity: 0.8; } 50% { transform: translateX(-50%) scale(1.05) rotate(2deg); opacity: 1; } 100% { transform: translateX(-50%) scale(0.95) rotate(-2deg); opacity: 0.9; } }
@keyframes ncf-desk { 0%, 100% { transform: translateY(0); } 50% { transform: translateY(-2px); } }
@keyframes ncf-letter { 0% { box-shadow: 0 0 15px 2px #f0c060; opacity: 0.9; } 50% { box-shadow: 0 0 30px 8px #ffd080; opacity: 1; } 100% { box-shadow: 0 0 20px 4px #e0a050; opacity: 0.95; } }
@keyframes ncf-nora { 0% { transform: translateX(0) translateY(0) rotate(-1deg); } 25% { transform: translateX(3px) translateY(-1px) rotate(1deg); } 50% { transform: translateX(0) translateY(0) rotate(-0.5deg); } 75% { transform: translateX(-3px) translateY(-1px) rotate(1deg); } 100% { transform: translateX(0) translateY(0) rotate(0); } }
@keyframes ncf-shadow { 0% { opacity: 0.6; } 50% { opacity: 0.8; } 100% { opacity: 0.5; } }
@keyframes ncf-glow { 0% { opacity: 0.3; } 50% { opacity: 0.5; } 100% { opacity: 0.2; } }

/* krogstad-warns */
.scn-krogstad-warns {
  background: linear-gradient(180deg, #3a200e 0%, #1a0c00 100%),
              radial-gradient(ellipse at 40% 70%, #a0451a 0%, transparent 60%);
}
.scn-krogstad-warns .bg {
  position: absolute; inset: 0; background: linear-gradient(180deg, #2a1508 0%, transparent 100%);
  animation: kw-bg 15s ease-in-out infinite alternate;
}
.scn-krogstad-warns .candle {
  position: absolute; bottom: 30%; left: 25%; width: 12px; height: 60px;
  background: linear-gradient(180deg, #f0d0a0 0%, #a04020 100%);
  border-radius: 4px 4px 2px 2px; box-shadow: 0 0 60px 20px rgba(200, 100, 40, 0.6);
  animation: kw-candle 2.5s ease-in-out infinite alternate;
}
.scn-krogstad-warns .table {
  position: absolute; bottom: 15%; left: 28%; right: 28%; height: 10%;
  background: linear-gradient(180deg, #5a2a1a 0%, #3a1505 100%);
  border-radius: 6px 6px 0 0; box-shadow: 0 4px 12px rgba(0,0,0,0.8);
  animation: kw-table 8s ease-in-out infinite;
}
.scn-krogstad-warns .krogstad {
  position: absolute; bottom: 25%; left: 32%; width: 10%; height: 40%;
  background: linear-gradient(180deg, #1a0a00 0%, #0a0000 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: kw-krogstad 5s ease-in-out infinite;
}
.scn-krogstad-warns .nora {
  position: absolute; bottom: 25%; left: 52%; width: 8%; height: 35%;
  background: linear-gradient(180deg, #2a1a0a 0%, #0a0500 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: kw-nora 4s ease-in-out infinite alternate;
}
.scn-krogstad-warns .doorway {
  position: absolute; bottom: 0; left: 0; right: 0; height: 90%;
  background: linear-gradient(180deg, transparent 0%, #1a0500 100%);
  border: 2px solid rgba(0,0,0,0.5); border-radius: 30px 30px 0 0;
  animation: kw-doorway 12s ease-in-out infinite;
}
.scn-krogstad-warns .shadow {
  position: absolute; inset: 0; background: radial-gradient(ellipse at 40% 70%, transparent 30%, rgba(0,0,0,0.6) 100%);
  animation: kw-shadow 7s ease-in-out infinite alternate;
}
@keyframes kw-bg { 0% { opacity: 0.8; } 50% { opacity: 1; } 100% { opacity: 0.7; } }
@keyframes kw-candle { 0% { transform: scaleY(0.95) rotate(0deg); opacity: 0.85; } 50% { transform: scaleY(1.05) rotate(2deg); opacity: 1; } 100% { transform: scaleY(0.98) rotate(-1deg); opacity: 0.9; } }
@keyframes kw-table { 0%, 100% { transform: translateY(0); } 50% { transform: translateY(-2px); } }
@keyframes kw-krogstad { 0% { transform: translateX(0) rotate(0deg) scaleY(1); } 33% { transform: translateX(2px) rotate(2deg) scaleY(1.02); } 66% { transform: translateX(-1px) rotate(-1deg) scaleY(0.98); } 100% { transform: translateX(0) rotate(0deg) scaleY(1); } }
@keyframes kw-nora { 0% { transform: translateX(0) scaleY(1); opacity: 0.9; } 50% { transform: translateX(-4px) scaleY(0.95); opacity: 1; } 100% { transform: translateX(0) scaleY(1); opacity: 0.9; } }
@keyframes kw-doorway { 0%, 100% { transform: scaleY(1); } 50% { transform: scaleY(0.97); } }
@keyframes kw-shadow { 0% { opacity: 0.5; } 50% { opacity: 0.8; } 100% { opacity: 0.4; } }

/* nora-dismisses-threat */
.scn-nora-dismisses-threat {
  background: linear-gradient(180deg, #3a1a0a 0%, #1a0a00 100%),
              radial-gradient(ellipse at 50% 50%, #9a3a1a 0%, transparent 70%);
}
.scn-nora-dismisses-threat .bg {
  position: absolute; inset: 0; background: linear-gradient(180deg, #1a0800 0%, transparent 100%);
  animation: ndt-bg 10s ease-in-out infinite alternate;
}
.scn-nora-dismisses-threat .nora {
  position: absolute; bottom: 25%; left: 35%; width: 10%; height: 40%;
  background: linear-gradient(180deg, #2a1a0a 0%, #0a0500 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: top center;
  animation: ndt-nora 3s ease-in-out infinite;
}
.scn-nora-dismisses-threat .chair {
  position: absolute; bottom: 10%; left: 30%; width: 20%; height: 25%;
  background: linear-gradient(180deg, #4a2a1a 0%, #2a0a00 100%);
  border-radius: 20% 20% 10% 10% / 40% 40% 20% 20%;
  box-shadow: 0 6px 15px rgba(0,0,0,0.7);
  animation: ndt-chair 6s ease-in-out infinite alternate;
}
.scn-nora-dismisses-threat .basket {
  position: absolute; bottom: 8%; left: 55%; width: 12%; height: 10%;
  background: radial-gradient(ellipse at 50% 50%, #5a3a1a 0%, #3a1a0a 100%);
  border-radius: 20px 20px 10px 10px; box-shadow: 0 4px 8px rgba(0,0,0,0.6);
  animation: ndt-basket 7s ease-in-out infinite;
}
.scn-nora-dismisses-threat .child-a {
  position: absolute; bottom: 10%; left: 18%; width: 7%; height: 20%;
  background: linear-gradient(180deg, #1a0a00 0%, #0a0000 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: ndt-child 4s ease-in-out infinite;
}
.scn-nora-dismisses-threat .child-b {
  position: absolute; bottom: 12%; left: 22%; width: 6%; height: 18%;
  background: linear-gradient(180deg, #1a0a00 0%, #0a0000 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: ndt-child 4s ease-in-out infinite 1s;
}
.scn-nora-dismisses-threat .door {
  position: absolute; bottom: 0; right: 10%; width: 15%; height: 80%;
  background: linear-gradient(180deg, #3a1a0a 0%, #1a0a00 100%);
  border-radius: 10% 10% 0 0; border: 2px solid #2a0a00; box-shadow: inset 0 0 20px rgba(0,0,0,0.8);
  animation: ndt-door 9s ease-in-out infinite;
}
@keyframes ndt-bg { 0% { opacity: 0.7; } 50% { opacity: 1; } 100% { opacity: 0.6; } }
@keyframes ndt-nora { 0% { transform: rotate(0deg) scaleY(1); } 25% { transform: rotate(5deg) scaleY(1.02); } 50% { transform: rotate(-3deg) scaleY(0.98); } 75% { transform: rotate(2deg) scaleY(1.01); } 100% { transform: rotate(0deg) scaleY(1); } }
@keyframes ndt-chair { 0%, 100% { transform: translateY(0); } 50% { transform: translateY(-3px); } }
@keyframes ndt-basket { 0%, 100% { transform: scale(1); } 50% { transform: scale(1.02); } }
@keyframes ndt-child { 0% { transform: translateY(0); } 50% { transform: translateY(-5px); } 100% { transform: translateY(0); } }
@keyframes ndt-door { 0%, 100% { transform: rotateY(0deg); opacity: 0.9; } 50% { transform: rotateY(5deg); opacity: 1; } }

/* helmer-questions-krogstad-visit */
.scn-helmer-questions-krogstad-visit {
  background: linear-gradient(180deg, #4a2a1a 0%, #1a0c00 100%),
              radial-gradient(ellipse at 40% 60%, #a0451a 0%, transparent 60%);
}
.scn-helmer-questions-krogstad-visit .bg {
  position: absolute; inset: 0; background: linear-gradient(180deg, #2a1508 0%, transparent 100%);
  animation: hqk-bg 14s ease-in-out infinite alternate;
}
.scn-helmer-questions-krogstad-visit .helmer {
  position: absolute; bottom: 15%; left: 40%; width: 12%; height: 45%;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0a00 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: hqk-helmer 5s ease-in-out infinite;
}
.scn-helmer-questions-krogstad-visit .nora {
  position: absolute; bottom: 20%; left: 55%; width: 8%; height: 35%;
  background: linear-gradient(180deg, #2a1a0a 0%, #0a0500 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: hqk-nora 4s ease-in-out infinite alternate;
}
.scn-helmer-questions-krogstad-visit .coat-rack {
  position: absolute; bottom: 0; left: 20%; width: 6%; height: 70%;
  background: linear-gradient(180deg, #3a1a0a 0%, #1a0a00 100%);
  border-radius: 5px 5px 0 0; box-shadow: 0 8px 20px rgba(0,0,0,0.6);
  animation: hqk-rack 8s ease-in-out infinite;
}
.scn-helmer-questions-krogstad-visit .hat {
  position: absolute; bottom: 65%; left: 18%; width: 10%; height: 8%;
  background: radial-gradient(ellipse, #2a1a0a 0%, #1a0a00 100%);
  border-radius: 50% 50% 40% 40%; box-shadow: 0 2px 6px rgba(0,0,0,0.5);
  animation: hqk-hat 3s ease-in-out infinite alternate;
}
.scn-helmer-questions-krogstad-visit .door {
  position: absolute; bottom: 0; right: 10%; width: 18%; height: 85%;
  background: linear-gradient(180deg, #3a1a0a 0%, #1a0a00 100%);
  border-radius: 8% 8% 0 0; border: 2px solid #2a0a00; box-shadow: inset 0 0 30px rgba(0,0,0,0.8);
  animation: hqk-door 10s ease-in-out infinite;
}
.scn-helmer-questions-krogstad-visit .shadow {
  position: absolute; inset: 0; background: radial-gradient(ellipse at 40% 60%, transparent 30%, rgba(0,0,0,0.6) 100%);
  animation: hqk-shadow 6s ease-in-out infinite alternate;
}
@keyframes hqk-bg { 0% { opacity: 0.8; } 50% { opacity: 1; } 100% { opacity: 0.7; } }
@keyframes hqk-helmer { 0% { transform: translateX(0) rotate(0deg) scaleY(1); } 33% { transform: translateX(3px) rotate(3deg) scaleY(1.03); } 66% { transform: translateX(-2px) rotate(-2deg) scaleY(0.97); } 100% { transform: translateX(0) rotate(0deg) scaleY(1); } }
@keyframes hqk-nora { 0% { transform: translateX(0) scaleY(1); opacity: 0.9; } 50% { transform: translateX(-5px) scaleY(0.95); opacity: 1; } 100% { transform: translateX(0) scaleY(1); opacity: 0.9; } }
@keyframes hqk-rack { 0%, 100% { transform: rotate(0deg); } 50% { transform: rotate(-2deg); } }
@keyframes hqk-hat { 0% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-3px) rotate(4deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes hqk-door { 0%, 100% { transform: rotateY(0deg); } 50% { transform: rotateY(4deg); } }
@keyframes hqk-shadow { 0% { opacity: 0.4; } 50% { opacity: 0.7; } 100% { opacity: 0.3; } }

/* Scene: nora-changes-outfit (calm, candlelit) */
.scn-nora-changes-outfit {
  background: linear-gradient(180deg, #1f0e04 0%, #3d1e0d 40%, #5a2e14 70%, #7a3e1c 100%),
              radial-gradient(ellipse at 50% 20%, #c85a3d 0%, transparent 60%);
}
.scn-nora-changes-outfit .bg {
  position: absolute; inset: 0;
  background: linear-gradient(135deg, rgba(18,8,3,0.8) 0%, rgba(40,18,8,0.6) 50%, transparent 100%);
  animation: nco-fade 8s ease-in-out infinite alternate;
}
.scn-nora-changes-outfit .screen {
  position: absolute; bottom: 10%; left: 35%; width: 120px; height: 200px;
  background: linear-gradient(90deg, #5a2e14 0%, #7a3e1c 50%, #5a2e14 100%);
  border-radius: 4% 4% 0 0; box-shadow: inset 0 -8px 20px rgba(0,0,0,0.6);
  animation: nco-sway 6s ease-in-out infinite;
}
.scn-nora-changes-outfit .candle {
  position: absolute; bottom: 12%; left: 52%; width: 8px; height: 40px;
  background: linear-gradient(180deg, #e8c08a 0%, #b08050 100%);
  border-radius: 10% 10% 20% 20%; box-shadow: 0 4px 6px rgba(0,0,0,0.5);
  animation: nco-candle 4s ease-in-out infinite;
}
.scn-nora-changes-outfit .flame {
  position: absolute; bottom: 52%; left: 50%; width: 12px; height: 18px;
  margin-left: -6px; background: radial-gradient(circle at 50% 30%, #ffd080 0%, #c8553d 60%, transparent 100%);
  border-radius: 50% 50% 50% 50% / 60% 60% 40% 40%;
  box-shadow: 0 0 20px 6px #c8553d, 0 0 40px 12px rgba(200,85,61,0.3);
  animation: nco-flame 1.5s ease-in-out infinite alternate;
}
.scn-nora-changes-outfit .figure {
  position: absolute; bottom: 8%; left: 32%; width: 40px; height: 140px;
  background: linear-gradient(180deg, #3d1e0d 0%, #1f0e04 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: nco-turn 10s ease-in-out infinite;
}
.scn-nora-changes-outfit .dress {
  position: absolute; bottom: 6%; left: 38%; width: 50px; height: 60px;
  background: linear-gradient(180deg, #7a3e1c 0%, #5a2e14 100%);
  border-radius: 40% 40% 20% 20% / 50% 50% 20% 20%;
  box-shadow: 0 4px 8px rgba(0,0,0,0.5);
  animation: nco-dress 8s ease-in-out infinite;
}
.scn-nora-changes-outfit .shadow {
  position: absolute; bottom: 6%; left: 28%; width: 80px; height: 20px;
  background: radial-gradient(ellipse, rgba(0,0,0,0.6) 0%, transparent 80%);
  filter: blur(4px);
  animation: nco-shadow 6s ease-in-out infinite alternate;
}
@keyframes nco-fade {
  0% { opacity: 0.6; } 50% { opacity: 0.9; } 100% { opacity: 0.6; }
}
@keyframes nco-sway {
  0% { transform: rotateY(0deg); } 50% { transform: rotateY(6deg); } 100% { transform: rotateY(0deg); }
}
@keyframes nco-candle {
  0% { transform: scaleY(1); } 50% { transform: scaleY(0.97); } 100% { transform: scaleY(1); }
}
@keyframes nco-flame {
  0% { transform: scaleY(0.9) scaleX(0.95); opacity: 0.8; }
  50% { transform: scaleY(1.1) scaleX(1.05); opacity: 1; }
  100% { transform: scaleY(0.9) scaleX(0.95); opacity: 0.8; }
}
@keyframes nco-turn {
  0% { transform: translateX(0) rotate(0deg); }
  25% { transform: translateX(10px) rotate(5deg); }
  50% { transform: translateX(0) rotate(0deg); }
  75% { transform: translateX(-10px) rotate(-5deg); }
  100% { transform: translateX(0) rotate(0deg); }
}
@keyframes nco-dress {
  0% { transform: translateY(0) rotate(-2deg); }
  50% { transform: translateY(-4px) rotate(2deg); }
  100% { transform: translateY(0) rotate(-2deg); }
}
@keyframes nco-shadow {
  0% { transform: scaleX(1); opacity: 0.5; }
  50% { transform: scaleX(0.9); opacity: 0.7; }
  100% { transform: scaleX(1); opacity: 0.5; }
}

/* Scene: serious-conversation (tense, candlelit) */
.scn-serious-conversation {
  background: linear-gradient(180deg, #1a0b02 0%, #2e1508 50%, #472213 100%),
              radial-gradient(ellipse at 50% 30%, #c8553d 0%, transparent 70%);
}
.scn-serious-conversation .bg {
  position: absolute; inset: 0;
  background: linear-gradient(135deg, rgba(10,4,1,0.9) 0%, rgba(30,14,6,0.5) 50%, transparent 100%);
  animation: sc-pulse 3s ease-in-out infinite alternate;
}
.scn-serious-conversation .table {
  position: absolute; bottom: 5%; left: 20%; width: 60%; height: 8%;
  background: linear-gradient(135deg, #2e1508 0%, #472213 100%);
  border-radius: 2px; box-shadow: 0 6px 12px rgba(0,0,0,0.7);
}
.scn-serious-conversation .candle {
  position: absolute; bottom: 15%; left: 50%; width: 10px; height: 50px;
  margin-left: -5px; background: linear-gradient(180deg, #e8c08a 0%, #b08050 100%);
  border-radius: 10% 10% 20% 20%; box-shadow: 0 4px 8px rgba(0,0,0,0.6);
  animation: sc-candle-shake 0.8s ease-in-out infinite;
}
.scn-serious-conversation .flame {
  position: absolute; bottom: 64%; left: 50%; width: 16px; height: 22px;
  margin-left: -8px; background: radial-gradient(circle at 50% 30%, #ffd080 0%, #c8553d 60%, transparent 100%);
  border-radius: 50% 50% 50% 50% / 60% 60% 40% 40%;
  box-shadow: 0 0 25px 8px #c8553d, 0 0 50px 16px rgba(200,85,61,0.4);
  animation: sc-flame-flicker 0.6s ease-in-out infinite alternate;
}
.scn-serious-conversation .figure-a {
  position: absolute; bottom: 18%; left: 25%; width: 45px; height: 140px;
  background: linear-gradient(180deg, #1a0b02 0%, #0a0401 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: sc-figure-a 5s ease-in-out infinite;
}
.scn-serious-conversation .figure-b {
  position: absolute; bottom: 18%; right: 25%; width: 50px; height: 150px;
  background: linear-gradient(180deg, #2e1508 0%, #1a0b02 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: sc-figure-b 5s ease-in-out infinite;
}
.scn-serious-conversation .shadow {
  position: absolute; bottom: 4%; left: 20%; width: 60%; height: 30px;
  background: radial-gradient(ellipse at center, rgba(0,0,0,0.7) 0%, transparent 80%);
  filter: blur(5px);
  animation: sc-shadow 2s ease-in-out infinite alternate;
}
@keyframes sc-pulse {
  0% { opacity: 0.5; } 50% { opacity: 0.95; } 100% { opacity: 0.5; }
}
@keyframes sc-candle-shake {
  0% { transform: rotate(-1deg); } 50% { transform: rotate(1deg); } 100% { transform: rotate(-1deg); }
}
@keyframes sc-flame-flicker {
  0% { transform: scaleY(0.85) scaleX(0.9); opacity: 0.7; }
  50% { transform: scaleY(1.15) scaleX(1.1); opacity: 1; }
  100% { transform: scaleY(0.85) scaleX(0.9); opacity: 0.7; }
}
@keyframes sc-figure-a {
  0% { transform: translateX(0) rotate(0deg); }
  20% { transform: translateX(4px) rotate(3deg); }
  40% { transform: translateX(0) rotate(0deg); }
  60% { transform: translateX(-4px) rotate(-3deg); }
  100% { transform: translateX(0) rotate(0deg); }
}
@keyframes sc-figure-b {
  0% { transform: translateX(0) rotate(0deg); }
  20% { transform: translateX(-3px) rotate(-2deg); }
  40% { transform: translateX(0) rotate(0deg); }
  60% { transform: translateX(3px) rotate(2deg); }
  100% { transform: translateX(0) rotate(0deg); }
}
@keyframes sc-shadow {
  0% { transform: scaleX(1); opacity: 0.4; }
  50% { transform: scaleX(1.1); opacity: 0.8; }
  100% { transform: scaleX(1); opacity: 0.4; }
}

/* Scene: doll-house-accusation (tense, candlelit) */
.scn-doll-house-accusation {
  background: linear-gradient(180deg, #120803 0%, #2e1508 40%, #472213 80%, #5a2e14 100%),
              radial-gradient(ellipse at 50% 40%, #a0461a 0%, transparent 70%);
}
.scn-doll-house-accusation .bg {
  position: absolute; inset: 0;
  background: linear-gradient(90deg, rgba(18,8,3,0.8) 0%, rgba(40,18,8,0.5) 50%, transparent 100%);
  animation: dha-sweep 7s ease-in-out infinite alternate;
}
.scn-doll-house-accusation .candle {
  position: absolute; bottom: 20%; left: 50%; width: 8px; height: 45px;
  margin-left: -4px; background: linear-gradient(180deg, #e8c08a 0%, #b08050 100%);
  border-radius: 10% 10% 20% 20%; box-shadow: 0 3px 6px rgba(0,0,0,0.6);
  animation: dha-candle 4s ease-in-out infinite;
}
.scn-doll-house-accusation .flame {
  position: absolute; bottom: 64%; left: 50%; width: 14px; height: 20px;
  margin-left: -7px; background: radial-gradient(circle at 50% 30%, #ffd080 0%, #c8553d 60%, transparent 100%);
  border-radius: 50% 50% 50% 50% / 60% 60% 40% 40%;
  box-shadow: 0 0 22px 6px #c8553d, 0 0 44px 12px rgba(200,85,61,0.3);
  animation: dha-flame 0.7s ease-in-out infinite alternate;
}
.scn-doll-house-accusation .figure-a {
  position: absolute; bottom: 12%; left: 20%; width: 48px; height: 150px;
  background: linear-gradient(180deg, #2e1508 0%, #120803 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: dha-point 3s ease-in-out infinite;
}
.scn-doll-house-accusation .figure-b {
  position: absolute; bottom: 12%; right: 22%; width: 42px; height: 135px;
  background: linear-gradient(180deg, #1a0b02 0%, #0a0401 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: dha-recoil 3s ease-in-out infinite;
}
.scn-doll-house-accusation .papers {
  position: absolute; bottom: 18%; left: 42%; width: 100px; height: 60px;
  background: linear-gradient(135deg, #e8d4b0 0%, #d4b890 100%);
  border-radius: 2px; box-shadow: 0 4px 8px rgba(0,0,0,0.5);
  animation: dha-papers 9s ease-in-out infinite;
}
.scn-doll-house-accusation .shadow {
  position: absolute; bottom: 4%; left: 15%; width: 70%; height: 25px;
  background: radial-gradient(ellipse at center, rgba(0,0,0,0.8) 0%, transparent 80%);
  filter: blur(6px);
  animation: dha-shadow 5s ease-in-out infinite alternate;
}
@keyframes dha-sweep {
  0% { opacity: 0.4; } 50% { opacity: 0.9; } 100% { opacity: 0.4; }
}
@keyframes dha-candle {
  0% { transform: scaleY(1); } 50% { transform: scaleY(0.96); } 100% { transform: scaleY(1); }
}
@keyframes dha-flame {
  0% { transform: scaleY(0.8) scaleX(0.9); opacity: 0.7; }
  50% { transform: scaleY(1.2) scaleX(1.1); opacity: 1; }
  100% { transform: scaleY(0.8) scaleX(0.9); opacity: 0.7; }
}
@keyframes dha-point {
  0% { transform: translateX(0) rotate(0deg); }
  20% { transform: translateX(8px) rotate(10deg); }
  40% { transform: translateX(0) rotate(0deg); }
  60% { transform: translateX(8px) rotate(10deg); }
  100% { transform: translateX(0) rotate(0deg); }
}
@keyframes dha-recoil {
  0% { transform: translateX(0) rotate(0deg); }
  20% { transform: translateX(-6px) rotate(-8deg); }
  40% { transform: translateX(0) rotate(0deg); }
  60% { transform: translateX(-6px) rotate(-8deg); }
  100% { transform: translateX(0) rotate(0deg); }
}
@keyframes dha-papers {
  0% { transform: translateY(0) rotate(-2deg); }
  50% { transform: translateY(-6px) rotate(2deg); }
  100% { transform: translateY(0) rotate(-2deg); }
}
@keyframes dha-shadow {
  0% { transform: scaleX(1); opacity: 0.5; }
  50% { transform: scaleX(0.85); opacity: 0.8; }
  100% { transform: scaleX(1); opacity: 0.5; }
}

/* Scene: nora-decides-to-leave (tense, candlelit) */
.scn-nora-decides-to-leave {
  background: linear-gradient(180deg, #0a0401 0%, #1a0b02 40%, #2e1508 80%, #472213 100%),
              radial-gradient(ellipse at 40% 30%, #c8553d 0%, transparent 70%);
}
.scn-nora-decides-to-leave .bg {
  position: absolute; inset: 0;
  background: linear-gradient(90deg, rgba(10,4,1,0.9) 0%, rgba(26,11,2,0.5) 50%, transparent 100%);
  animation: ndl-pulse 4s ease-in-out infinite alternate;
}
.scn-nora-decides-to-leave .door {
  position: absolute; bottom: 0; right: 10%; width: 120px; height: 100%;
  background: linear-gradient(135deg, #2e1508 0%, #1a0b02 100%);
  border-radius: 4% 0 0 0; box-shadow: -8px 0 16px rgba(0,0,0,0.7);
  animation: ndl-door 12s ease-in-out infinite;
}
.scn-nora-decides-to-leave .candle {
  position: absolute; bottom: 18%; left: 30%; width: 8px; height: 40px;
  background: linear-gradient(180deg, #e8c08a 0%, #b08050 100%);
  border-radius: 10% 10% 20% 20%; box-shadow: 0 3px 6px rgba(0,0,0,0.6);
  animation: ndl-candle 5s ease-in-out infinite;
}
.scn-nora-decides-to-leave .flame {
  position: absolute; bottom: 58%; left: 30.5%; width: 12px; height: 18px;
  margin-left: -6px; background: radial-gradient(circle at 50% 30%, #ffd080 0%, #c8553d 60%, transparent 100%);
  border-radius: 50% 50% 50% 50% / 60% 60% 40% 40%;
  box-shadow: 0 0 18px 5px #c8553d, 0 0 36px 10px rgba(200,85,61,0.3);
  animation: ndl-flame 0.8s ease-in-out infinite alternate;
}
.scn-nora-decides-to-leave .figure {
  position: absolute; bottom: 8%; left: 30%; width: 40px; height: 145px;
  background: linear-gradient(180deg, #2e1508 0%, #0a0401 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: ndl-walk-away 6s ease-in-out infinite;
}
.scn-nora-decides-to-leave .bag {
  position: absolute; bottom: 6%; left: 25%; width: 30px; height: 35px;
  background: linear-gradient(135deg, #5a2e14 0%, #3d1e0d 100%);
  border-radius: 10% 10% 20% 20%; box-shadow: 0 4px 6px rgba(0,0,0,0.5);
  animation: ndl-bag 3s ease-in-out infinite;
}
.scn-nora-decides-to-leave .shadow {
  position: absolute; bottom: 4%; left: 20%; width: 50%; height: 25px;
  background: radial-gradient(ellipse at center, rgba(0,0,0,0.8) 0%, transparent 80%);
  filter: blur(5px);
  animation: ndl-shadow 4s ease-in-out infinite alternate;
}
@keyframes ndl-pulse {
  0% { opacity: 0.3; } 50% { opacity: 0.85; } 100% { opacity: 0.3; }
}
@keyframes ndl-door {
  0% { transform: translateX(0); } 50% { transform: translateX(8px); } 100% { transform: translateX(0); }
}
@keyframes ndl-candle {
  0% { transform: scaleY(1); } 50% { transform: scaleY(0.95); } 100% { transform: scaleY(1); }
}
@keyframes ndl-flame {
  0% { transform: scaleY(0.85) scaleX(0.9); opacity: 0.7; }
  50% { transform: scaleY(1.1) scaleX(1.05); opacity: 1; }
  100% { transform: scaleY(0.85) scaleX(0.9); opacity: 0.7; }
}
@keyframes ndl-walk-away {
  0% { transform: translateX(0) rotate(0deg); }
  25% { transform: translateX(15px) rotate(-4deg); }
  50% { transform: translateX(30px) rotate(0deg); }
  75% { transform: translateX(15px) rotate(4deg); }
  100% { transform: translateX(0) rotate(0deg); }
}
@keyframes ndl-bag {
  0% { transform: translateY(0) rotate(-3deg); }
  50% { transform: translateY(-5px) rotate(3deg); }
  100% { transform: translateY(0) rotate(-3deg); }
}
@keyframes ndl-shadow {
  0% { transform: scaleX(1); opacity: 0.4; }
  50% { transform: scaleX(0.8); opacity: 0.7; }
  100% { transform: scaleX(1); opacity: 0.4; }
}

/* nora-poised-to-leave */
.scn-nora-poised-to-leave {
  background: linear-gradient(180deg, #1c1410 0%, #0a0806 50%, #2a1e14 100%), radial-gradient(ellipse at 60% 40%, #3a281c 0%, transparent 60%);
}
.scn-nora-poised-to-leave .room {
  position: absolute; inset: 0; background: linear-gradient(135deg, #1e1610 0%, #0c0804 100%); animation: npl-room 12s ease-in-out infinite alternate;
}
.scn-nora-poised-to-leave .door {
  position: absolute; right: 10%; top: 20%; width: 25%; height: 70%; background: linear-gradient(180deg, #4a3520 0%, #2a1c0e 100%); border-radius: 4px 8px 8px 4px; box-shadow: inset -4px 0 8px rgba(0,0,0,.5), 4px 0 12px rgba(0,0,0,.4); animation: npl-door 8s ease-in-out infinite;
}
.scn-nora-poised-to-leave .candle {
  position: absolute; left: 30%; bottom: 35%; width: 4px; height: 14px; background: linear-gradient(180deg, #e8d0a0 0%, #8a6a3a 100%); border-radius: 2px; box-shadow: 0 -4px 20px 6px #d09050; animation: npl-candle 4s ease-in-out infinite alternate;
}
.scn-nora-poised-to-leave .flame {
  position: absolute; left: 30.5%; bottom: 48%; width: 8px; height: 12px; background: radial-gradient(circle, #ffc860 0%, #e08020 60%, transparent 100%); border-radius: 50%; filter: blur(2px); animation: npl-flame 0.4s ease-in-out infinite alternate;
}
.scn-nora-poised-to-leave .nora {
  position: absolute; left: 40%; bottom: 18%; width: 24px; height: 50px; background: linear-gradient(180deg, #2a2018 0%, #0c0804 100%); border-radius: 40% 40% 30% 30% / 60% 60% 30% 30%; transform-origin: bottom center; animation: npl-nora 5s ease-in-out infinite;
}
.scn-nora-poised-to-leave .cloak {
  position: absolute; left: 36%; bottom: 18%; width: 50px; height: 60px; background: linear-gradient(135deg, #3a2820 0%, #1a100c 100%); border-radius: 40% 60% 20% 40% / 50% 60% 30% 40%; transform-origin: top center; animation: npl-cloak 6s ease-in-out infinite alternate;
}
.scn-nora-poised-to-leave .shadow {
  position: absolute; left: 38%; bottom: 0; width: 40px; height: 10px; background: radial-gradient(ellipse, rgba(0,0,0,.6) 0%, transparent 70%); animation: npl-shadow 5s ease-in-out infinite alternate;
}
@keyframes npl-room { 0%,100% { opacity: 0.85 } 50% { opacity: 1 } }
@keyframes npl-door { 0%,100% { transform: translateX(0) } 50% { transform: translateX(-2px) } }
@keyframes npl-candle { 0% { opacity: 0.7; transform: scaleY(1) } 100% { opacity: 1; transform: scaleY(1.08) } }
@keyframes npl-flame { 0% { transform: translate(-1px,-1px) scale(0.95); opacity: 0.8 } 50% { transform: translate(1px,-2px) scale(1.05); opacity: 1 } 100% { transform: translate(0,0) scale(1); opacity: 0.9 } }
@keyframes npl-nora { 0% { transform: translateX(0) translateY(0) rotate(-1deg) } 25% { transform: translateX(4px) translateY(-1px) rotate(1deg) } 50% { transform: translateX(8px) translateY(0) rotate(-2deg) } 75% { transform: translateX(12px) translateY(-1px) rotate(1deg) } 100% { transform: translateX(16px) translateY(0) rotate(0) } }
@keyframes npl-cloak { 0% { transform: rotate(-2deg) scale(1) } 50% { transform: rotate(3deg) scale(1.02) } 100% { transform: rotate(-2deg) scale(0.98) } }
@keyframes npl-shadow { 0% { transform: scaleX(1); opacity: 0.6 } 100% { transform: scaleX(1.2); opacity: 0.8 } }

/* helmer-rage */
.scn-helmer-rage {
  background: linear-gradient(180deg, #1a1210 0%, #0a0604 50%, #2a1a12 100%), repeating-linear-gradient(45deg, transparent 0%, transparent 10%, rgba(40,30,20,.2) 10%, rgba(40,30,20,.2) 12%);
}
.scn-helmer-rage .bg {
  position: absolute; inset: 0; background: linear-gradient(135deg, #1e1612 0%, #0c0806 100%); animation: hmr-bg 10s ease-in-out infinite alternate;
}
.scn-helmer-rage .desk {
  position: absolute; left: 20%; bottom: 15%; width: 60%; height: 8%; background: linear-gradient(180deg, #5a3a1e 0%, #3a2010 100%); border-radius: 2px; box-shadow: 0 4px 12px rgba(0,0,0,.6); animation: hmr-desk 8s ease-in-out infinite;
}
.scn-helmer-rage .letter {
  position: absolute; left: 40%; bottom: 24%; width: 14%; height: 10%; background: linear-gradient(135deg, #f0e8d8 0%, #d0c0a0 100%); border-radius: 2px; box-shadow: inset 0 0 4px rgba(0,0,0,.2), 0 2px 6px rgba(0,0,0,.4); animation: hmr-letter 2s ease-in-out infinite alternate;
}
.scn-helmer-rage .helmer {
  position: absolute; left: 30%; bottom: 10%; width: 30px; height: 80px; background: linear-gradient(180deg, #2a1a12 0%, #0c0804 100%); border-radius: 40% 40% 20% 20% / 60% 60% 20% 20%; transform-origin: bottom center; animation: hmr-helmer 1.5s ease-in-out infinite;
}
.scn-helmer-rage .fist {
  position: absolute; left: 42%; bottom: 50%; width: 12px; height: 14px; background: radial-gradient(circle, #3a2820 0%, #1c100c 100%); border-radius: 50%; transform-origin: center bottom; animation: hmr-fist 0.8s ease-in-out infinite alternate;
}
.scn-helmer-rage .candle {
  position: absolute; left: 15%; bottom: 30%; width: 5px; height: 16px; background: linear-gradient(180deg, #e8c890 0%, #8a5a2a 100%); border-radius: 2px; box-shadow: 0 -4px 24px 8px #c07030; animation: hmr-candle 3s ease-in-out infinite alternate;
}
.scn-helmer-rage .shadow {
  position: absolute; left: 25%; bottom: 0; width: 60px; height: 12px; background: radial-gradient(ellipse, rgba(0,0,0,.7) 0%, transparent 70%); animation: hmr-shadow 1.5s ease-in-out infinite alternate;
}
@keyframes hmr-bg { 0%,100% { opacity: 0.9 } 50% { opacity: 1 } }
@keyframes hmr-desk { 0% { transform: translateY(0) } 50% { transform: translateY(-1px) } 100% { transform: translateY(0) } }
@keyframes hmr-letter { 0% { transform: rotate(-1deg) scale(1) } 50% { transform: rotate(1deg) scale(1.02) } 100% { transform: rotate(-1deg) scale(0.98) } }
@keyframes hmr-helmer { 0% { transform: translateX(0) rotate(-2deg) } 25% { transform: translateX(3px) rotate(2deg) } 50% { transform: translateX(-2px) rotate(-3deg) } 75% { transform: translateX(4px) rotate(1deg) } 100% { transform: translateX(0) rotate(0) } }
@keyframes hmr-fist { 0% { transform: scale(0.9) translateY(0) } 100% { transform: scale(1.1) translateY(-2px) } }
@keyframes hmr-candle { 0% { opacity: 0.7; transform: scaleY(1) } 100% { opacity: 1; transform: scaleY(1.1) } }
@keyframes hmr-shadow { 0% { transform: scaleX(1); opacity: 0.5 } 50% { transform: scaleX(1.3); opacity: 0.8 } 100% { transform: scaleX(1); opacity: 0.6 } }

/* letter-from-krogstad */
.scn-letter-from-krogstad {
  background: linear-gradient(180deg, #1a1410 0%, #0c0806 50%, #221814 100%), radial-gradient(ellipse at 80% 50%, #2a1c12 0%, transparent 70%);
}
.scn-letter-from-krogstad .bg {
  position: absolute; inset: 0; background: linear-gradient(135deg, #1c1410 0%, #080604 100%); animation: lfk-bg 15s ease-in-out infinite alternate;
}
.scn-letter-from-krogstad .door {
  position: absolute; left: 10%; top: 15%; width: 20%; height: 75%; background: linear-gradient(180deg, #3a2818 0%, #1a100a 100%); border-radius: 5% 8% 8% 5%; box-shadow: inset -3px 0 10px rgba(0,0,0,.6), 3px 0 8px rgba(0,0,0,.4); animation: lfk-door 10s ease-in-out infinite;
}
.scn-letter-from-krogstad .letter-in-hand {
  position: absolute; left: 30%; bottom: 50%; width: 12%; height: 8%; background: linear-gradient(135deg, #f0e0c8 0%, #d0b890 100%); border-radius: 2px; box-shadow: 0 2px 6px rgba(0,0,0,.5); animation: lfk-letter 6s ease-in-out infinite;
}
.scn-letter-from-krogstad .nora-motionless {
  position: absolute; right: 20%; bottom: 20%; width: 20px; height: 45px; background: linear-gradient(180deg, #2a1a14 0%, #0c0804 100%); border-radius: 40% 40% 30% 30% / 60% 60% 30% 30%; animation: lfk-nora 8s ease-in-out infinite;
}
.scn-letter-from-krogstad .helmer-hand {
  position: absolute; left: 26%; bottom: 55%; width: 8px; height: 20px; background: linear-gradient(180deg, #2a1a12 0%, #0c0804 100%); border-radius: 30% 30% 10% 10%; transform-origin: top center; animation: lfk-hand 6s ease-in-out infinite;
}
.scn-letter-from-krogstad .candle {
  position: absolute; right: 30%; bottom: 35%; width: 4px; height: 14px; background: linear-gradient(180deg, #e8c890 0%, #7a4a1a 100%); border-radius: 2px; box-shadow: 0 -4px 20px 6px #b06020; animation: lfk-candle 3s ease-in-out infinite alternate;
}
@keyframes lfk-bg { 0%,100% { opacity: 0.85 } 50% { opacity: 1 } }
@keyframes lfk-door { 0% { transform: translateX(0) } 50% { transform: translateX(-1px) } 100% { transform: translateX(0) } }
@keyframes lfk-letter { 0% { transform: translateX(0) rotate(0) } 25% { transform: translateX(10px) rotate(2deg) } 50% { transform: translateX(20px) rotate(-1deg) } 75% { transform: translateX(30px) rotate(1deg) } 100% { transform: translateX(40px) rotate(0) } }
@keyframes lfk-nora { 0%,100% { transform: translateY(0) } 50% { transform: translateY(-1px) } }
@keyframes lfk-hand { 0% { transform: rotate(0) translateX(0) } 50% { transform: rotate(5deg) translateX(2px) } 100% { transform: rotate(0) translateX(0) } }
@keyframes lfk-candle { 0% { opacity: 0.6; transform: scaleY(1) } 100% { opacity: 1; transform: scaleY(1.08) } }

/* bond-burned */
.scn-bond-burned {
  background: linear-gradient(180deg, #2a1e14 0%, #1a100a 50%, #3a2818 100%), radial-gradient(ellipse at 50% 70%, #6a3a1a 0%, transparent 60%);
}
.scn-bond-burned .bg {
  position: absolute; inset: 0; background: linear-gradient(135deg, #1c1410 0%, #0a0604 100%); animation: bnb-bg 12s ease-in-out infinite alternate;
}
.scn-bond-burned .fireplace {
  position: absolute; left: 20%; bottom: 10%; width: 60%; height: 50%; background: linear-gradient(135deg, #3a2818 0%, #1a100a 100%); border-radius: 20% 20% 5% 5%; box-shadow: inset 0 -10px 20px rgba(0,0,0,.5), 0 0 30px 10px #a06020; animation: bnb-fireplace 10s ease-in-out infinite;
}
.scn-bond-burned .fire {
  position: absolute; left: 30%; bottom: 25%; width: 40%; height: 40%; background: radial-gradient(ellipse at 50% 80%, #ffa040 0%, #c06020 40%, transparent 100%); filter: blur(4px); animation: bnb-fire 1.5s ease-in-out infinite alternate;
}
.scn-bond-burned .nora-figure {
  position: absolute; left: 35%; bottom: 15%; width: 22px; height: 50px; background: linear-gradient(180deg, #2a1a14 0%, #0c0804 100%); border-radius: 40% 40% 20% 30% / 60% 60% 20% 30%; transform-origin: bottom center; animation: bnb-nora 6s ease-in-out infinite;
}
.scn-bond-burned .helmer-figure {
  position: absolute; left: 45%; bottom: 15%; width: 24px; height: 52px; background: linear-gradient(180deg, #2a1a14 0%, #0c0804 100%); border-radius: 40% 40% 20% 30% / 60% 60% 20% 30%; transform-origin: bottom center; animation: bnb-helmer 6s ease-in-out infinite reverse;
}
.scn-bond-burned .ash {
  position: absolute; top: 10%; left: 0; width: 100%; height: 100%; background: radial-gradient(circle at 20% 20%, rgba(200,180,160,.15) 0%, transparent 10%), radial-gradient(circle at 80% 30%, rgba(200,180,160,.1) 0%, transparent 15%); animation: bnb-ash 20s linear infinite;
}
@keyframes bnb-bg { 0%,100% { opacity: 0.9 } 50% { opacity: 1 } }
@keyframes bnb-fireplace { 0% { transform: scale(0.98) } 50% { transform: scale(1.01) } 100% { transform: scale(0.98) } }
@keyframes bnb-fire { 0% { transform: scale(0.9) translateY(0); opacity: 0.7 } 50% { transform: scale(1.05) translateY(-5px); opacity: 1 } 100% { transform: scale(0.95) translateY(-2px); opacity: 0.85 } }
@keyframes bnb-nora { 0% { transform: translateX(0) rotate(-1deg) } 50% { transform: translateX(2px) rotate(1deg) } 100% { transform: translateX(0) rotate(-1deg) } }
@keyframes bnb-helmer { 0% { transform: translateX(0) rotate(1deg) } 50% { transform: translateX(-2px) rotate(-1deg) } 100% { transform: translateX(0) rotate(1deg) } }
@keyframes bnb-ash { 0% { background-position: 0 0; opacity: 0 } 10% { opacity: 0.6 } 90% { opacity: 0.6 } 100% { background-position: 0 100%; opacity: 0 } }

.scn-letter-in-box {
  background: 
    linear-gradient(180deg, #1f1b16 0%, #2a231d 40%, #3b3026 70%, #0d0a07 100%),
    radial-gradient(ellipse at 30% 60%, #3a2a1a 0%, transparent 60%);
}
.scn-letter-in-box .wall {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(135deg, #3a2a1a 0%, #1f1810 100%);
  box-shadow: inset 0 0 60px rgba(0,0,0,0.6);
  animation: lbx-wall 20s ease-in-out infinite alternate;
}
.scn-letter-in-box .sofa {
  position: absolute; bottom: 10%; left: 10%; width: 45%; height: 25%;
  background: linear-gradient(180deg, #5a3d2e 0%, #2a1a0f 100%);
  border-radius: 8% 8% 0 0;
  box-shadow: inset 0 -10px 20px rgba(0,0,0,0.7);
  animation: lbx-sofa 8s ease-in-out infinite;
}
.scn-letter-in-box .dress {
  position: absolute; bottom: 18%; left: 20%; width: 20%; height: 13%;
  background: linear-gradient(120deg, #7a5a3a 0%, #4a2a1a 100%);
  border-radius: 50% 50% 0 0 / 80% 80% 0 0;
  transform: rotate(-15deg);
  box-shadow: 0 4px 10px rgba(0,0,0,0.5);
  animation: lbx-dress 4s ease-in-out infinite;
}
.scn-letter-in-box .figure-a {
  position: absolute; bottom: 12%; left: 35%; width: 14%; height: 30%;
  background: radial-gradient(ellipse, #1a1210 0%, #0d0806 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: lbx-figA 6s ease-in-out infinite;
}
.scn-letter-in-box .figure-b {
  position: absolute; bottom: 12%; left: 55%; width: 13%; height: 28%;
  background: radial-gradient(ellipse, #1a0f0a 0%, #0b0503 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: lbx-figB 7s ease-in-out infinite;
}
.scn-letter-in-box .lamp {
  position: absolute; top: 15%; right: 20%; width: 8%; height: 12%;
  background: radial-gradient(circle, #e0a050 0%, #8a6030 60%, transparent 100%);
  border-radius: 50%;
  box-shadow: 0 0 40px 20px rgba(200, 120, 40, 0.6);
  animation: lbx-lamp 3s ease-in-out infinite alternate;
}
.scn-letter-in-box .shadow {
  position: absolute; bottom: 0; left: 0; width: 100%; height: 40%;
  background: linear-gradient(180deg, transparent 0%, rgba(0,0,0,0.8) 100%);
  animation: lbx-shadow 12s ease-in-out infinite;
}
.scn-letter-in-box .crack {
  position: absolute; top: 20%; left: 10%; width: 2px; height: 8%;
  background: #5a4030;
  box-shadow: 0 0 4px #8a6040;
  animation: lbx-crack 5s ease-in-out infinite alternate;
}
@keyframes lbx-wall { 0% { opacity: 0.8 } 50% { opacity: 1 } 100% { opacity: 0.7 } }
@keyframes lbx-sofa { 0%,100% { transform: translateY(0) } 50% { transform: translateY(-3px) scale(1.01) } }
@keyframes lbx-dress { 0% { transform: rotate(-15deg) translateY(0) } 50% { transform: rotate(-12deg) translateY(-4px) } 100% { transform: rotate(-17deg) translateY(0) } }
@keyframes lbx-figA { 0% { transform: translateX(0) rotate(0) } 25% { transform: translateX(5px) rotate(2deg) } 50% { transform: translateX(0) rotate(-2deg) } 75% { transform: translateX(-3px) rotate(1deg) } 100% { transform: translateX(0) rotate(0) } }
@keyframes lbx-figB { 0% { transform: translateX(0) rotate(0) } 33% { transform: translateX(-4px) rotate(-1deg) } 66% { transform: translateX(2px) rotate(1deg) } 100% { transform: translateX(0) rotate(0) } }
@keyframes lbx-lamp { 0% { box-shadow: 0 0 30px 10px rgba(200, 120, 40, 0.4); opacity: 0.9 } 50% { box-shadow: 0 0 50px 25px rgba(240, 180, 80, 0.7); opacity: 1 } 100% { box-shadow: 0 0 35px 15px rgba(200, 120, 40, 0.5); opacity: 0.85 } }
@keyframes lbx-shadow { 0% { opacity: 0.6 } 50% { opacity: 0.9 } 100% { opacity: 0.5 } }
@keyframes lbx-crack { 0% { transform: scaleY(1) } 100% { transform: scaleY(1.5) } }

.scn-mrs-linde-goes-to-krogstad {
  background:
    linear-gradient(180deg, #1a1410 0%, #2d221c 30%, #1e1510 70%, #0a0604 100%),
    radial-gradient(ellipse at 70% 30%, #3a2a1a 0%, transparent 70%);
}
.scn-mrs-linde-goes-to-krogstad .wall-door {
  position: absolute; inset: 0 30% 20% 0;
  background: linear-gradient(135deg, #3a2a1a, #1a1010);
  border-right: 2px solid #2a1a10;
  box-shadow: inset -10px 0 20px rgba(0,0,0,0.7);
  animation: mlk-wall 15s ease-in-out infinite;
}
.scn-mrs-linde-goes-to-krogstad .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 25%;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a1010 100%);
  box-shadow: inset 0 10px 20px rgba(0,0,0,0.8);
  animation: mlk-floor 20s ease-in-out infinite alternate;
}
.scn-mrs-linde-goes-to-krogstad .figure-leaving {
  position: absolute; bottom: 20%; left: 45%; width: 12%; height: 30%;
  background: radial-gradient(ellipse, #1a0a05 0%, #0d0402 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: mlk-leave 4s ease-in-out infinite;
}
.scn-mrs-linde-goes-to-krogstad .figure-holding {
  position: absolute; bottom: 20%; left: 58%; width: 13%; height: 28%;
  background: radial-gradient(ellipse, #1a0f08 0%, #0b0503 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: mlk-hold 5s ease-in-out infinite;
}
.scn-mrs-linde-goes-to-krogstad .letter {
  position: absolute; bottom: 30%; left: 50%; width: 5%; height: 7%;
  background: linear-gradient(135deg, #d4a373 0%, #b08040 100%);
  border-radius: 10% 10% 5% 5%;
  box-shadow: 0 2px 6px rgba(0,0,0,0.5);
  animation: mlk-letter 3s ease-in-out infinite alternate;
}
.scn-mrs-linde-goes-to-krogstad .card {
  position: absolute; bottom: 35%; left: 52%; width: 4%; height: 5%;
  background: #b08040;
  border-radius: 5%;
  box-shadow: 0 1px 4px rgba(0,0,0,0.4);
  animation: mlk-card 6s ease-in-out infinite;
}
.scn-mrs-linde-goes-to-krogstad .door-shadow {
  position: absolute; top: 0; right: 0; width: 30%; height: 75%;
  background: linear-gradient(180deg, transparent 0%, rgba(0,0,0,0.7) 100%);
  animation: mlk-door-shadow 10s ease-in-out infinite alternate;
}
.scn-mrs-linde-goes-to-krogstad .lamp-hall {
  position: absolute; top: 10%; left: 15%; width: 6%; height: 10%;
  background: radial-gradient(circle, #e0a050 0%, #8a6030 60%, transparent 100%);
  border-radius: 50%;
  box-shadow: 0 0 30px 15px rgba(200, 120, 40, 0.5);
  animation: mlk-lamp 4s ease-in-out infinite alternate;
}
@keyframes mlk-wall { 0% { opacity: 0.8 } 50% { opacity: 1 } 100% { opacity: 0.7 } }
@keyframes mlk-floor { 0% { transform: scaleY(1) } 50% { transform: scaleY(0.98) } 100% { transform: scaleY(1) } }
@keyframes mlk-leave { 0% { transform: translateX(0) rotate(0) } 25% { transform: translateX(8px) rotate(2deg) } 50% { transform: translateX(0) rotate(-2deg) } 75% { transform: translateX(-4px) rotate(1deg) } 100% { transform: translateX(0) rotate(0) } }
@keyframes mlk-hold { 0% { transform: translateX(0) rotate(0) } 33% { transform: translateX(-3px) rotate(-1deg) } 66% { transform: translateX(2px) rotate(1deg) } 100% { transform: translateX(0) rotate(0) } }
@keyframes mlk-letter { 0% { transform: rotate(0) } 50% { transform: rotate(10deg) scale(1.05) } 100% { transform: rotate(-5deg) } }
@keyframes mlk-card { 0% { transform: translateY(0) } 50% { transform: translateY(-3px) rotate(5deg) } 100% { transform: translateY(0) } }
@keyframes mlk-door-shadow { 0% { opacity: 0.4 } 100% { opacity: 0.8 } }
@keyframes mlk-lamp { 0% { box-shadow: 0 0 20px 10px rgba(200, 120, 40, 0.3); opacity: 0.8 } 50% { box-shadow: 0 0 40px 20px rgba(240, 180, 80, 0.6); opacity: 1 } 100% { box-shadow: 0 0 25px 12px rgba(200, 120, 40, 0.4); opacity: 0.9 } }

.scn-tarantella-practice {
  background:
    linear-gradient(180deg, #1c1814 0%, #2d2420 30%, #1c1410 70%, #0a0604 100%),
    radial-gradient(ellipse at 40% 40%, #3a2a1a 0%, transparent 70%);
}
.scn-tarantella-practice .room-bg {
  position: absolute; inset: 0 0 20% 0;
  background: linear-gradient(135deg, #2a1e18 0%, #14100c 100%);
  box-shadow: inset 0 0 80px rgba(0,0,0,0.7);
  animation: ttp-bg 25s ease-in-out infinite alternate;
}
.scn-tarantella-practice .piano {
  position: absolute; bottom: 12%; left: 10%; width: 25%; height: 30%;
  background: linear-gradient(180deg, #2a1a10 0%, #0d0804 100%);
  border-radius: 5% 5% 0 0;
  box-shadow: inset 0 0 20px rgba(0,0,0,0.8), 0 4px 8px rgba(0,0,0,0.6);
  animation: ttp-piano 10s ease-in-out infinite;
}
.scn-tarantella-practice .dancer {
  position: absolute; bottom: 22%; left: 42%; width: 16%; height: 35%;
  background: radial-gradient(ellipse, #1a0f0a 0%, #0d0502 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: ttp-dance 3s ease-in-out infinite;
}
.scn-tarantella-practice .seated-figure {
  position: absolute; bottom: 18%; left: 25%; width: 12%; height: 25%;
  background: radial-gradient(ellipse, #1a1210 0%, #0b0604 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: ttp-seat 6s ease-in-out infinite;
}
.scn-tarantella-practice .music-stand {
  position: absolute; bottom: 28%; left: 32%; width: 3%; height: 12%;
  background: #2a1a10;
  border-radius: 5%;
  box-shadow: 0 2px 4px rgba(0,0,0,0.5);
  animation: ttp-stand 7s ease-in-out infinite alternate;
}
.scn-tarantella-practice .candelabra {
  position: absolute; top: 15%; right: 20%; width: 6%; height: 14%;
  background: linear-gradient(135deg, #e0a050 0%, #a07030 100%);
  border-radius: 50% 50% 20% 20%;
  box-shadow: 0 0 30px 10px rgba(200, 120, 40, 0.5);
  animation: ttp-candle 4s ease-in-out infinite alternate;
}
.scn-tarantella-practice .mirror {
  position: absolute; top: 20%; left: 55%; width: 20%; height: 35%;
  background: linear-gradient(135deg, #1a1815, #2a2018);
  border-radius: 5%;
  box-shadow: inset 0 0 40px rgba(0,0,0,0.6), 0 0 10px rgba(200, 120, 40, 0.3);
  animation: ttp-mirror 12s ease-in-out infinite;
}
@keyframes ttp-bg { 0% { opacity: 0.7 } 50% { opacity: 1 } 100% { opacity: 0.6 } }
@keyframes ttp-piano { 0%,100% { transform: translateY(0) } 50% { transform: translateY(-2px) } }
@keyframes ttp-dance {
  0% { transform: translateX(0) rotate(0) scale(1) }
  25% { transform: translateX(10px) rotate(5deg) scale(1.03) }
  50% { transform: translateX(-5px) rotate(-3deg) scale(0.98) }
  75% { transform: translateX(8px) rotate(4deg) scale(1.02) }
  100% { transform: translateX(0) rotate(0) scale(1) }
}
@keyframes ttp-seat { 0% { transform: translateX(0) rotate(0) } 33% { transform: translateX(2px) rotate(-1deg) } 66% { transform: translateX(-1px) rotate(1deg) } 100% { transform: translateX(0) rotate(0) } }
@keyframes ttp-stand { 0% { transform: rotate(0) } 100% { transform: rotate(3deg) } }
@keyframes ttp-candle { 0% { box-shadow: 0 0 20px 8px rgba(200, 120, 40, 0.3); opacity: 0.85 } 50% { box-shadow: 0 0 45px 20px rgba(240, 180, 80, 0.7); opacity: 1 } 100% { box-shadow: 0 0 25px 10px rgba(200, 120, 40, 0.4); opacity: 0.9 } }
@keyframes ttp-mirror { 0% { opacity: 0.5 } 50% { opacity: 0.8 } 100% { opacity: 0.4 } }

.scn-wild-tarantella {
  background:
    linear-gradient(180deg, #1c1612 0%, #2d221c 30%, #1e1410 70%, #0a0604 100%),
    radial-gradient(ellipse at 50% 40%, #3a2a1a 0%, transparent 70%);
}
.scn-wild-tarantella .floor-board {
  position: absolute; bottom: 0; left: 0; right: 0; height: 20%;
  background: linear-gradient(180deg, #2a1a10 0%, #0d0603 100%);
  box-shadow: inset 0 10px 20px rgba(0,0,0,0.8);
  animation: wtr-floor 8s ease-in-out infinite alternate;
}
.scn-wild-tarantella .nora-dancing {
  position: absolute; bottom: 18%; left: 40%; width: 20%; height: 40%;
  background: radial-gradient(ellipse, #1a0f0a 0%, #0d0402 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: wtr-nora 2.5s ease-in-out infinite;
}
.scn-wild-tarantella .hair-flying {
  position: absolute; bottom: 40%; left: 45%; width: 12%; height: 18%;
  background: radial-gradient(ellipse, #1a0a05 0%, #0d0402 100%);
  border-radius: 50% 50% 0 0 / 80% 80% 0 0;
  transform-origin: 80% 100%;
  animation: wtr-hair 1.5s ease-in-out infinite alternate;
}
.scn-wild-tarantella .helmer-shape {
  position: absolute; bottom: 18%; left: 20%; width: 14%; height: 30%;
  background: radial-gradient(ellipse, #1a1210 0%, #0b0604 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: wtr-helmer 4s ease-in-out infinite;
}
.scn-wild-tarantella .linde-watcher {
  position: absolute; bottom: 18%; right: 20%; width: 13%; height: 28%;
  background: radial-gradient(ellipse, #1a1210 0%, #0b0604 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: wtr-linde 6s ease-in-out infinite;
}
.scn-wild-tarantella .chandelier {
  position: absolute; top: 5%; left: 50%; width: 25%; height: 15%;
  background: linear-gradient(135deg, #e0a050 0%, #a07030 100%);
  border-radius: 50% 50% 20% 20%;
  box-shadow: 0 0 80px 30px rgba(200, 120, 40, 0.6);
  animation: wtr-chandelier 4s ease-in-out infinite alternate;
}
.scn-wild-tarantella .shadow-pool {
  position: absolute; bottom: 0; left: 30%; width: 40%; height: 15%;
  background: radial-gradient(ellipse, rgba(0,0,0,0.8) 0%, transparent 100%);
  animation: wtr-shadow 3s ease-in-out infinite;
}
.scn-wild-tarantella .sparkle {
  position: absolute; top: 20%; left: 60%; width: 2%; height: 2%;
  background: #f0c060;
  border-radius: 50%;
  box-shadow: 0 0 6px 2px #f0c060;
  animation: wtr-sparkle 1.5s ease-in-out infinite alternate;
}
@keyframes wtr-floor { 0% { transform: scaleY(1) } 50% { transform: scaleY(0.97) } 100% { transform: scaleY(1) } }
@keyframes wtr-nora {
  0% { transform: translateX(0) rotate(0) scale(1) }
  15% { transform: translateX(15px) rotate(8deg) scale(1.05) }
  30% { transform: translateX(-10px) rotate(-6deg) scale(0.95) }
  45% { transform: translateX(12px) rotate(5deg) scale(1.02) }
  60% { transform: translateX(-8px) rotate(-4deg) scale(0.98) }
  75% { transform: translateX(10px) rotate(3deg) scale(1) }
  100% { transform: translateX(0) rotate(0) scale(1) }
}
@keyframes wtr-hair {
  0% { transform: rotate(-20deg) translateY(0) }
  50% { transform: rotate(25deg) translateY(-10px) }
  100% { transform: rotate(-15deg) translateY(0) }
}
@keyframes wtr-helmer { 0% { transform: translateX(0) rotate(0) } 25% { transform: translateX(3px) rotate(1deg) } 50% { transform: translateX(-2px) rotate(-1deg) } 75% { transform: translateX(1px) rotate(0.5deg) } 100% { transform: translateX(0) rotate(0) } }
@keyframes wtr-linde { 0% { transform: translateX(0) rotate(0) } 33% { transform: translateX(-2px) rotate(-2deg) } 66% { transform: translateX(3px) rotate(1deg) } 100% { transform: translateX(0) rotate(0) } }
@keyframes wtr-chandelier { 0% { box-shadow: 0 0 40px 15px rgba(200, 120, 40, 0.3); transform: rotate(0) } 50% { box-shadow: 0 0 80px 30px rgba(240, 180, 80, 0.7); transform: rotate(2deg) } 100% { box-shadow: 0 0 50px 20px rgba(200, 120, 40, 0.4); transform: rotate(-1deg) } }
@keyframes wtr-shadow { 0% { transform: scale(1) } 50% { transform: scale(1.2) } 100% { transform: scale(0.9) } }
@keyframes wtr-sparkle { 0% { opacity: 0.2; transform: scale(0.5) } 100% { opacity: 1; transform: scale(1.5) } }

.scn-mrs-linde-helps {
  background:
    linear-gradient(180deg, #1a1620 0%, #2a1e28 40%, #3a2a30 100%),
    radial-gradient(ellipse at 50% 80%, #4a3a30 0%, transparent 70%);
}
.scn-mrs-linde-helps .wall {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(135deg, #2a1e28 0%, #1a1620 100%);
  animation: mh-wall 12s ease-in-out infinite alternate;
}
.scn-mrs-linde-helps .window {
  position: absolute; top: 15%; right: 20%; width: 60px; height: 80px;
  background: radial-gradient(ellipse at 50% 60%, #406080 0%, #204060 70%);
  border-radius: 4px;
  box-shadow: inset 0 0 20px rgba(64,96,128,0.3);
  animation: mh-window 8s ease-in-out infinite alternate;
}
.scn-mrs-linde-helps .lamp {
  position: absolute; bottom: 45%; left: 30%; width: 20px; height: 28px;
  background: radial-gradient(circle at 50% 40%, #e0a060 0%, #b07040 60%);
  border-radius: 40% 40% 30% 30% / 50% 50% 20% 20%;
  box-shadow: 0 0 30px 8px #b07040, 0 0 60px 16px rgba(176,112,64,0.3);
  animation: mh-lamp 3s ease-in-out infinite alternate;
}
.scn-mrs-linde-helps .desk {
  position: absolute; bottom: 20%; left: 15%; right: 15%; height: 20%;
  background: linear-gradient(180deg, #4a3a30 0%, #2a1e20 100%);
  border-radius: 8px 8px 0 0;
  box-shadow: 0 6px 12px rgba(0,0,0,0.6);
  animation: mh-desk 18s ease-in-out infinite alternate;
}
.scn-mrs-linde-helps .figure {
  position: absolute; bottom: 24%; left: 40%; width: 22px; height: 50px;
  background: linear-gradient(180deg, #1a1620 0%, #0a0810 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: mh-figure 4s ease-in-out infinite;
}
.scn-mrs-linde-helps .shadow {
  position: absolute; bottom: 20%; left: 35%; width: 80px; height: 12px;
  background: rgba(10,8,16,0.5);
  border-radius: 50%;
  filter: blur(8px);
  animation: mh-shadow 4s ease-in-out infinite;
}
.scn-mrs-linde-helps .rug {
  position: absolute; bottom: 10%; left: 10%; right: 10%; height: 10%;
  background: radial-gradient(ellipse at 50% 50%, #3a2a28 0%, #1a1620 100%);
  border-radius: 50%;
  filter: blur(6px);
  animation: mh-rug 20s ease-in-out infinite alternate;
}
@keyframes mh-wall { 0% { opacity: 0.8 } 50% { opacity: 1 } 100% { opacity: 0.7 } }
@keyframes mh-window { 0% { box-shadow: inset 0 0 10px rgba(64,96,128,0.2); opacity: 0.7 } 50% { box-shadow: inset 0 0 30px rgba(64,96,128,0.5); opacity: 1 } 100% { box-shadow: inset 0 0 15px rgba(64,96,128,0.3); opacity: 0.8 } }
@keyframes mh-lamp { 0% { box-shadow: 0 0 20px 4px #b07040, 0 0 40px 8px rgba(176,112,64,0.2); opacity: 0.8 } 50% { box-shadow: 0 0 40px 12px #d09050, 0 0 70px 20px rgba(208,144,80,0.4); opacity: 1 } 100% { box-shadow: 0 0 25px 6px #b07040, 0 0 50px 12px rgba(176,112,64,0.25); opacity: 0.85 } }
@keyframes mh-desk { 0% { transform: translateY(0) } 50% { transform: translateY(-2px) } 100% { transform: translateY(0) } }
@keyframes mh-figure { 0% { transform: translateX(0) rotate(-2deg) } 25% { transform: translateX(8px) rotate(1deg) } 50% { transform: translateX(16px) rotate(-2deg) } 75% { transform: translateX(24px) rotate(1deg) } 100% { transform: translateX(32px) rotate(0deg) } }
@keyframes mh-shadow { 0% { transform: translateX(0) scaleX(1) opacity: 0.5 } 50% { transform: translateX(16px) scaleX(1.2) opacity: 0.4 } 100% { transform: translateX(32px) scaleX(1) opacity: 0.5 } }
@keyframes mh-rug { 0% { transform: scale(1) } 50% { transform: scale(1.02) } 100% { transform: scale(0.98) } }

.scn-doctor-rank-disease {
  background:
    linear-gradient(180deg, #0a0a18 0%, #151020 40%, #201830 100%),
    radial-gradient(ellipse at 50% 30%, #2a1a30 0%, transparent 70%);
}
.scn-doctor-rank-disease .wall {
  position: absolute; inset: 0 0 50% 0;
  background: linear-gradient(180deg, #151020 0%, #0a0a18 100%);
  animation: rd-wall 14s ease-in-out infinite alternate;
}
.scn-doctor-rank-disease .chair {
  position: absolute; bottom: 25%; left: 50%; width: 70px; height: 100px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #2a1e30 0%, #1a1020 100%);
  border-radius: 10% 10% 5% 5% / 20% 20% 10% 10%;
  box-shadow: 0 8px 16px rgba(0,0,0,0.7);
  animation: rd-chair 20s ease-in-out infinite alternate;
}
.scn-doctor-rank-disease .figure {
  position: absolute; bottom: 30%; left: 50%; width: 40px; height: 70px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #1a1020 0%, #0a0a10 100%);
  border-radius: 50% 50% 30% 30% / 40% 40% 20% 20%;
  animation: rd-figure 6s ease-in-out infinite;
}
.scn-doctor-rank-disease .candle {
  position: absolute; bottom: 50%; right: 20%; width: 6px; height: 30px;
  background: linear-gradient(180deg, #d09050 0%, #b07040 60%, #3a2020 100%);
  border-radius: 20% 20% 10% 10%;
  box-shadow: 0 0 20px 6px #d09050, 0 0 40px 12px rgba(208,144,80,0.3);
  animation: rd-candle 3s ease-in-out infinite alternate;
}
.scn-doctor-rank-disease .glow {
  position: absolute; bottom: 48%; right: 18%; width: 40px; height: 40px;
  background: radial-gradient(circle, rgba(208,144,80,0.4) 0%, transparent 70%);
  border-radius: 50%;
  filter: blur(10px);
  animation: rd-glow 3s ease-in-out infinite alternate;
}
.scn-doctor-rank-disease .clock {
  position: absolute; top: 20%; left: 20%; width: 30px; height: 30px;
  border: 2px solid #5a4a50;
  border-radius: 50%;
  background: radial-gradient(circle, #2a1e30 0%, #151020 100%);
  box-shadow: inset 0 0 8px rgba(0,0,0,0.5);
  animation: rd-clock 12s linear infinite;
}
.scn-doctor-rank-disease .table {
  position: absolute; bottom: 15%; left: 20%; right: 20%; height: 10%;
  background: linear-gradient(180deg, #2a1e30 0%, #1a1020 100%);
  border-radius: 4px 4px 0 0;
  box-shadow: 0 4px 8px rgba(0,0,0,0.6);
  animation: rd-table 18s ease-in-out infinite alternate;
}
@keyframes rd-wall { 0% { opacity: 0.7 } 50% { opacity: 0.9 } 100% { opacity: 0.6 } }
@keyframes rd-chair { 0% { transform: translateX(-50%) scaleY(1) } 50% { transform: translateX(-50%) scaleY(1.02) } 100% { transform: translateX(-50%) scaleY(0.98) } }
@keyframes rd-figure { 0% { transform: translateX(-50%) rotate(0deg) } 25% { transform: translateX(-50%) rotate(3deg) } 50% { transform: translateX(-50%) rotate(-2deg) } 75% { transform: translateX(-50%) rotate(2deg) } 100% { transform: translateX(-50%) rotate(0deg) } }
@keyframes rd-candle { 0% { box-shadow: 0 0 30px 8px #d09050, 0 0 50px 16px rgba(208,144,80,0.3); height: 30px } 50% { box-shadow: 0 0 40px 12px #e0a060, 0 0 60px 20px rgba(224,160,96,0.5); height: 32px } 100% { box-shadow: 0 0 25px 6px #d09050, 0 0 45px 14px rgba(208,144,80,0.25); height: 30px } }
@keyframes rd-glow { 0% { opacity: 0.6; transform: scale(1) } 50% { opacity: 1; transform: scale(1.1) } 100% { opacity: 0.7; transform: scale(0.95) } }
@keyframes rd-clock { 0% { transform: rotate(0deg) } 50% { transform: rotate(180deg) } 100% { transform: rotate(360deg) } }
@keyframes rd-table { 0% { transform: translateY(0) } 50% { transform: translateY(-1px) } 100% { transform: translateY(0) } }

.scn-mrs-linde-suspicions {
  background:
    linear-gradient(180deg, #2a1e28 0%, #3a2a34 40%, #1a1620 100%),
    radial-gradient(ellipse at 50% 20%, #4a3a40 0%, transparent 70%);
}
.scn-mrs-linde-suspicions .wall {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(180deg, #3a2a34 0%, #2a1e28 100%);
  animation: ms-wall 16s ease-in-out infinite alternate;
}
.scn-mrs-linde-suspicions .table {
  position: absolute; bottom: 25%; left: 20%; right: 20%; height: 15%;
  background: linear-gradient(180deg, #4a3a34 0%, #2a1e28 100%);
  border-radius: 8px;
  box-shadow: 0 6px 12px rgba(0,0,0,0.5);
  animation: ms-table 14s ease-in-out infinite alternate;
}
.scn-mrs-linde-suspicions .lamp {
  position: absolute; bottom: 60%; left: 50%; width: 16px; height: 24px;
  transform: translateX(-50%);
  background: radial-gradient(ellipse at 50% 30%, #c09060 0%, #a07040 70%);
  border-radius: 30% 30% 20% 20% / 40% 40% 10% 10%;
  box-shadow: 0 0 25px 6px #a07040, 0 0 50px 12px rgba(160,112,64,0.3);
  animation: ms-lamp 4s ease-in-out infinite alternate;
}
.scn-mrs-linde-suspicions .figure-left {
  position: absolute; bottom: 28%; left: 15%; width: 28px; height: 60px;
  background: linear-gradient(180deg, #2a1e28 0%, #1a1620 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: ms-figure-left 5s ease-in-out infinite;
}
.scn-mrs-linde-suspicions .figure-right {
  position: absolute; bottom: 28%; right: 15%; width: 28px; height: 60px;
  background: linear-gradient(180deg, #4a3a34 0%, #2a1e28 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: ms-figure-right 5s ease-in-out infinite alternate;
}
.scn-mrs-linde-suspicions .shadow {
  position: absolute; bottom: 25%; left: 12%; right: 12%; height: 8px;
  background: rgba(10,8,16,0.4);
  border-radius: 50%;
  filter: blur(10px);
  animation: ms-shadow 5s ease-in-out infinite;
}
.scn-mrs-linde-suspicions .curtain {
  position: absolute; top: 0; left: 0; width: 20%; height: 100%;
  background: linear-gradient(135deg, #3a2a34 0%, #1a1620 100%);
  clip-path: polygon(0 0, 100% 0, 80% 100%, 0 100%);
  animation: ms-curtain 20s ease-in-out infinite alternate;
}
@keyframes ms-wall { 0% { opacity: 0.8 } 50% { opacity: 1 } 100% { opacity: 0.7 } }
@keyframes ms-table { 0% { transform: translateY(0) } 50% { transform: translateY(-1px) } 100% { transform: translateY(0) } }
@keyframes ms-lamp { 0% { box-shadow: 0 0 20px 4px #a07040, 0 0 40px 8px rgba(160,112,64,0.2); opacity: 0.9 } 50% { box-shadow: 0 0 35px 10px #c09060, 0 0 60px 18px rgba(192,144,96,0.4); opacity: 1 } 100% { box-shadow: 0 0 25px 6px #a07040, 0 0 45px 10px rgba(160,112,64,0.25); opacity: 0.85 } }
@keyframes ms-figure-left { 0% { transform: translateX(0) rotate(-1deg) } 25% { transform: translateX(4px) rotate(1deg) } 50% { transform: translateX(8px) rotate(-1deg) } 75% { transform: translateX(12px) rotate(1deg) } 100% { transform: translateX(16px) rotate(0deg) } }
@keyframes ms-figure-right { 0% { transform: translateX(0) rotate(1deg) } 25% { transform: translateX(-4px) rotate(-1deg) } 50% { transform: translateX(-8px) rotate(1deg) } 75% { transform: translateX(-12px) rotate(-1deg) } 100% { transform: translateX(-16px) rotate(0deg) } }
@keyframes ms-shadow { 0% { transform: translateX(0) scaleX(1); opacity: 0.4 } 50% { transform: translateX(8px) scaleX(1.1); opacity: 0.3 } 100% { transform: translateX(16px) scaleX(1); opacity: 0.4 } }
@keyframes ms-curtain { 0% { transform: scaleX(1) } 50% { transform: scaleX(1.02) } 100% { transform: scaleX(0.98) } }

.scn-warning-about-rank {
  background:
    linear-gradient(180deg, #1a1520 0%, #251a28 40%, #151020 100%),
    radial-gradient(ellipse at 50% 50%, #30203a 0%, transparent 70%);
}
.scn-warning-about-rank .desk {
  position: absolute; bottom: 20%; left: 10%; right: 10%; height: 25%;
  background: linear-gradient(180deg, #4a3a3a 0%, #2a1e28 100%);
  border-radius: 6px 6px 0 0;
  box-shadow: 0 6px 12px rgba(0,0,0,0.6);
  animation: wr-desk 10s ease-in-out infinite alternate;
}
.scn-warning-about-rank .hand {
  position: absolute; bottom: 35%; left: 45%; width: 24px; height: 36px;
  background: linear-gradient(180deg, #3a2a2a 0%, #1a1510 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 20% 20%;
  transform-origin: bottom center;
  animation: wr-hand 2s ease-in-out infinite alternate;
}
.scn-warning-about-rank .letter {
  position: absolute; bottom: 40%; left: 52%; width: 40px; height: 28px;
  background: linear-gradient(135deg, #c8b898 0%, #a08868 100%);
  border: 1px solid #705838;
  border-radius: 3px;
  box-shadow: 2px 2px 8px rgba(0,0,0,0.4);
  animation: wr-letter 3s ease-in-out infinite;
}
.scn-warning-about-rank .candle {
  position: absolute; bottom: 45%; left: 30%; width: 8px; height: 40px;
  background: linear-gradient(180deg, #e0a060 0%, #b07040 70%, #2a1a20 100%);
  border-radius: 10% 10% 5% 5%;
  box-shadow: 0 0 30px 8px #d09050, 0 0 60px 16px rgba(208,144,80,0.3);
  animation: wr-candle 1.5s ease-in-out infinite alternate;
}
.scn-warning-about-rank .glow {
  position: absolute; bottom: 43%; left: 28%; width: 50px; height: 50px;
  background: radial-gradient(circle, rgba(208,144,80,0.5) 0%, transparent 70%);
  border-radius: 50%;
  filter: blur(12px);
  animation: wr-glow 1.5s ease-in-out infinite alternate;
}
.scn-warning-about-rank .shadow {
  position: absolute; bottom: 20%; left: 30%; right: 20%; height: 10px;
  background: rgba(10,8,12,0.6);
  border-radius: 50%;
  filter: blur(12px);
  animation: wr-shadow 2s ease-in-out infinite alternate;
}
@keyframes wr-desk { 0% { transform: translateY(0) } 50% { transform: translateY(-3px) } 100% { transform: translateY(0) } }
@keyframes wr-hand { 0% { transform: translateX(0) rotate(-5deg) } 50% { transform: translateX(5px) rotate(5deg) } 100% { transform: translateX(0) rotate(-3deg) } }
@keyframes wr-letter { 0% { transform: translateY(0) rotate(0deg) } 25% { transform: translateY(-2px) rotate(2deg) } 50% { transform: translateY(-4px) rotate(-1deg) } 75% { transform: translateY(-2px) rotate(1deg) } 100% { transform: translateY(0) rotate(0deg) } }
@keyframes wr-candle { 0% { box-shadow: 0 0 40px 10px #d09050, 0 0 80px 20px rgba(208,144,80,0.4); height: 40px } 50% { box-shadow: 0 0 50px 14px #e0a060, 0 0 90px 25px rgba(224,160,96,0.6); height: 42px } 100% { box-shadow: 0 0 35px 8px #d09050, 0 0 70px 18px rgba(208,144,80,0.3); height: 38px } }
@keyframes wr-glow { 0% { opacity: 0.7; transform: scale(1) } 50% { opacity: 1; transform: scale(1.15) } 100% { opacity: 0.6; transform: scale(0.9) } }
@keyframes wr-shadow { 0% { transform: scaleX(1) translateX(0); opacity: 0.6 } 50% { transform: scaleX(1.2) translateX(10px); opacity: 0.4 } 100% { transform: scaleX(0.9) translateX(-5px); opacity: 0.5 } }

.scn-nora-teases-rank {
  background: linear-gradient(180deg, #4a2a1a 0%, #2a1a0a 100%), radial-gradient(ellipse at 30% 60%, #8a5a3a 0%, transparent 60%);
}
.scn-nora-teases-rank .bg-wall {
  position: absolute; inset: 0; background: repeating-linear-gradient(90deg, transparent 0, transparent 40px, #3a2a1a 40px, #3a2a1a 42px); opacity: 0.4;
}
.scn-nora-teases-rank .sofa {
  position: absolute; bottom: 10%; left: 20%; width: 120px; height: 50px; background: linear-gradient(180deg, #3a4a2a 0%, #1a2a1a 100%); border-radius: 12% 12% 30% 30%; box-shadow: 0 4px 8px rgba(0,0,0,0.5); animation: ntr-sofa-bounce 6s ease-in-out infinite;
}
.scn-nora-teases-rank .nora {
  position: absolute; bottom: 18%; left: 35%; width: 28px; height: 80px; background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: ntr-nora-tilt 4s ease-in-out infinite;
}
.scn-nora-teases-rank .rank {
  position: absolute; bottom: 10%; left: 22%; width: 45px; height: 45px; background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%); border-radius: 50% 50% 30% 30% / 50% 50% 30% 30%; transform-origin: bottom center; animation: ntr-rank-sway 6s ease-in-out infinite;
}
.scn-nora-teases-rank .stockings {
  position: absolute; bottom: 45%; left: 38%; width: 8px; height: 60px; background: linear-gradient(180deg, #c8553d 0%, #a0461a 100%); border-radius: 20%; transform-origin: top center; animation: ntr-stockings-swing 2s ease-in-out infinite alternate;
}
.scn-nora-teases-rank .lamp {
  position: absolute; bottom: 60%; right: 25%; width: 12px; height: 12px; background: radial-gradient(circle, #ffd680 0%, #b08040 70%); border-radius: 50%; box-shadow: 0 0 20px 6px #c08040, 0 0 40px 12px rgba(192,128,64,0.4); animation: ntr-lamp-flicker 3s ease-in-out infinite alternate;
}
.scn-nora-teases-rank .shadow {
  position: absolute; bottom: 6%; left: 18%; width: 140px; height: 20px; background: radial-gradient(ellipse, rgba(0,0,0,0.6) 0%, transparent 70%); animation: ntr-shadow-pulse 6s ease-in-out infinite;
}

@keyframes ntr-sofa-bounce {
  0% { transform: translateY(0); } 50% { transform: translateY(-3px); } 100% { transform: translateY(0); }
}
@keyframes ntr-nora-tilt {
  0% { transform: rotate(-2deg); } 50% { transform: rotate(2deg); } 100% { transform: rotate(-2deg); }
}
@keyframes ntr-rank-sway {
  0% { transform: rotate(0deg); } 50% { transform: rotate(4deg); } 100% { transform: rotate(0deg); }
}
@keyframes ntr-stockings-swing {
  0% { transform: rotate(-15deg); } 50% { transform: rotate(20deg); } 100% { transform: rotate(-15deg); }
}
@keyframes ntr-lamp-flicker {
  0% { opacity: 0.8; box-shadow: 0 0 15px 4px #c08040; } 50% { opacity: 1; box-shadow: 0 0 30px 10px #ffd060; } 100% { opacity: 0.85; box-shadow: 0 0 20px 5px #c08040; }
}
@keyframes ntr-shadow-pulse {
  0% { opacity: 0.5; transform: scaleX(1); } 50% { opacity: 0.7; transform: scaleX(1.05); } 100% { opacity: 0.5; transform: scaleX(1); }
}

.scn-nora-rejects-rank {
  background: linear-gradient(180deg, #3a2a2a 0%, #1a1010 100%), radial-gradient(ellipse at 70% 50%, #5a4a3a 0%, transparent 50%);
}
.scn-nora-rejects-rank .bg-floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 20%; background: linear-gradient(180deg, #2a1a1a 0%, #1a0a0a 100%);
}
.scn-nora-rejects-rank .bg-wall {
  position: absolute; inset: 0; background: repeating-linear-gradient(0deg, transparent 0, transparent 30px, #2a1a1a 30px, #2a1a1a 32px); opacity: 0.5;
}
.scn-nora-rejects-rank .nora {
  position: absolute; bottom: 22%; left: 20%; width: 30px; height: 85px; background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: nrr-nora-stand 4s ease-in-out infinite;
}
.scn-nora-rejects-rank .nora-arm {
  position: absolute; bottom: 50%; left: 22%; width: 22px; height: 8px; background: #1a1a2a; border-radius: 40%; transform-origin: bottom right; animation: nrr-arm-up 3s ease-in-out infinite alternate;
}
.scn-nora-rejects-rank .rank {
  position: absolute; bottom: 15%; right: 25%; width: 50px; height: 50px; background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%); border-radius: 50% 50% 30% 30% / 50% 50% 30% 30%; transform-origin: bottom center; animation: nrr-rank-lean 5s ease-in-out infinite;
}
.scn-nora-rejects-rank .lamp-moving {
  position: absolute; bottom: 35%; right: 10%; width: 14px; height: 14px; background: radial-gradient(circle, #ffd680 0%, #b08040 70%); border-radius: 50%; box-shadow: 0 0 16px 4px #c08040; animation: nrr-lamp-move 6s ease-in-out infinite;
}
.scn-nora-rejects-rank .lamp-glow {
  position: absolute; bottom: 30%; right: 5%; width: 80px; height: 80px; background: radial-gradient(ellipse, rgba(192,128,64,0.3) 0%, transparent 80%); filter: blur(6px); animation: nrr-glow-in 6s ease-in-out infinite;
}

@keyframes nrr-nora-stand {
  0% { transform: translateY(0); } 50% { transform: translateY(-2px); } 100% { transform: translateY(0); }
}
@keyframes nrr-arm-up {
  0% { transform: rotate(10deg) translateX(0); } 50% { transform: rotate(45deg) translateX(8px); } 100% { transform: rotate(10deg) translateX(0); }
}
@keyframes nrr-rank-lean {
  0% { transform: rotate(0deg); } 50% { transform: rotate(-8deg) translateY(2px); } 100% { transform: rotate(0deg); }
}
@keyframes nrr-lamp-move {
  0% { transform: translateX(0) scale(1); opacity: 0.6; } 50% { transform: translateX(-80px) scale(1.2); opacity: 1; } 100% { transform: translateX(0) scale(1); opacity: 0.6; }
}
@keyframes nrr-glow-in {
  0% { opacity: 0; filter: blur(8px); } 50% { opacity: 0.6; filter: blur(4px); } 100% { opacity: 0; filter: blur(8px); }
}

.scn-lamp-brought {
  background: linear-gradient(180deg, #5a3a2a 0%, #3a2a1a 100%), radial-gradient(ellipse at 50% 60%, #c08040 0%, transparent 50%);
}
.scn-lamp-brought .bg {
  position: absolute; inset: 0; background: repeating-linear-gradient(0deg, transparent 0, transparent 50px, #4a2a1a 50px, #4a2a1a 52px); opacity: 0.3;
}
.scn-lamp-brought .table {
  position: absolute; bottom: 12%; left: 20%; right: 20%; height: 30px; background: linear-gradient(180deg, #6a4a2a 0%, #4a2a1a 100%); border-radius: 6% 6% 10% 10%; box-shadow: 0 4px 8px rgba(0,0,0,0.5);
}
.scn-lamp-brought .lamp {
  position: absolute; bottom: 28%; left: 50%; width: 18px; height: 24px; transform: translateX(-50%); background: radial-gradient(ellipse at 50% 30%, #ffd680 0%, #b08040 70%); border-radius: 50% 50% 30% 30%; box-shadow: 0 0 30px 8px #c08040; animation: lb-lamp-breathe 5s ease-in-out infinite alternate;
}
.scn-lamp-brought .chair-left {
  position: absolute; bottom: 10%; left: 12%; width: 40px; height: 50px; background: linear-gradient(180deg, #3a2a1a 0%, #2a1a0a 100%); border-radius: 20% 20% 10% 10% / 30% 30% 10% 10%; transform-origin: bottom center; animation: lb-chair-wobble 7s ease-in-out infinite;
}
.scn-lamp-brought .chair-right {
  position: absolute; bottom: 10%; right: 12%; width: 40px; height: 50px; background: linear-gradient(180deg, #3a2a1a 0%, #2a1a0a 100%); border-radius: 20% 20% 10% 10% / 30% 30% 10% 10%; transform-origin: bottom center; animation: lb-chair-wobble 7s ease-in-out infinite 3.5s;
}
.scn-lamp-brought .shadow {
  position: absolute; bottom: 4%; left: 20%; right: 20%; height: 12px; background: radial-gradient(ellipse, rgba(0,0,0,0.5) 0%, transparent 80%); animation: lb-shadow-sway 9s ease-in-out infinite;
}

@keyframes lb-lamp-breathe {
  0% { transform: translateX(-50%) scale(1); opacity: 0.9; box-shadow: 0 0 20px 5px #c08040; } 50% { transform: translateX(-50%) scale(1.08); opacity: 1; box-shadow: 0 0 40px 12px #ffd060; } 100% { transform: translateX(-50%) scale(1); opacity: 0.9; box-shadow: 0 0 20px 5px #c08040; }
}
@keyframes lb-chair-wobble {
  0% { transform: rotate(0deg); } 50% { transform: rotate(2deg); } 100% { transform: rotate(0deg); }
}
@keyframes lb-shadow-sway {
  0% { opacity: 0.4; transform: scaleX(1); } 50% { opacity: 0.6; transform: scaleX(1.02); } 100% { opacity: 0.4; transform: scaleX(1); }
}

.scn-krogstad-letter-card {
  background: linear-gradient(180deg, #2a1a1a 0%, #1a0a0a 100%), radial-gradient(ellipse at 40% 40%, #8a5a3a 0%, transparent 40%);
}
.scn-krogstad-letter-card .bg {
  position: absolute; inset: 0; background: repeating-linear-gradient(45deg, transparent 0, transparent 20px, #1a0a0a 20px, #1a0a0a 22px); opacity: 0.3;
}
.scn-krogstad-letter-card .desk {
  position: absolute; bottom: 10%; left: 15%; right: 15%; height: 25px; background: linear-gradient(180deg, #4a2a1a 0%, #2a1a0a 100%); border-radius: 6% 6% 10% 10%; box-shadow: 0 4px 8px rgba(0,0,0,0.5);
}
.scn-krogstad-letter-card .envelope {
  position: absolute; bottom: 30%; left: 38%; width: 40px; height: 28px; background: linear-gradient(135deg, #d4c8a8 0%, #b8a880 100%); border-radius: 4%; transform-origin: center; box-shadow: 0 2px 4px rgba(0,0,0,0.3); animation: klc-envelope-tremble 2s ease-in-out infinite;
}
.scn-krogstad-letter-card .hand-left {
  position: absolute; bottom: 32%; left: 28%; width: 20px; height: 30px; background: linear-gradient(180deg, #2a1a1a 0%, #1a0a0a 100%); border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%; transform-origin: bottom right; animation: klc-hand-left-twitch 3s ease-in-out infinite;
}
.scn-krogstad-letter-card .hand-right {
  position: absolute; bottom: 32%; right: 28%; width: 20px; height: 30px; background: linear-gradient(180deg, #2a1a1a 0%, #1a0a0a 100%); border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%; transform-origin: bottom left; animation: klc-hand-right-reach 4s ease-in-out infinite;
}
.scn-krogstad-letter-card .lamp {
  position: absolute; bottom: 35%; right: 15%; width: 14px; height: 14px; background: radial-gradient(circle, #ffd680 0%, #b08040 70%); border-radius: 50%; box-shadow: 0 0 20px 6px #c08040; animation: klc-lamp-flicker 3s ease-in-out infinite alternate;
}
.scn-krogstad-letter-card .shadow {
  position: absolute; bottom: 6%; left: 20%; right: 20%; height: 10px; background: radial-gradient(ellipse, rgba(0,0,0,0.6) 0%, transparent 70%); animation: klc-shadow-pulse 5s ease-in-out infinite;
}

@keyframes klc-envelope-tremble {
  0% { transform: rotate(-2deg) translateY(0); } 25% { transform: rotate(3deg) translateY(-1px); } 50% { transform: rotate(-4deg) translateY(1px); } 75% { transform: rotate(2deg) translateY(-1px); } 100% { transform: rotate(-2deg) translateY(0); }
}
@keyframes klc-hand-left-twitch {
  0% { transform: rotate(0deg) translateX(0); } 30% { transform: rotate(5deg) translateX(2px); } 60% { transform: rotate(-3deg) translateX(-1px); } 100% { transform: rotate(0deg) translateX(0); }
}
@keyframes klc-hand-right-reach {
  0% { transform: rotate(0deg) translateX(0); } 50% { transform: rotate(-8deg) translateX(-10px); } 100% { transform: rotate(0deg) translateX(0); }
}
@keyframes klc-lamp-flicker {
  0% { opacity: 0.8; box-shadow: 0 0 15px 4px #c08040; } 50% { opacity: 1; box-shadow: 0 0 30px 10px #ffd060; } 100% { opacity: 0.85; box-shadow: 0 0 20px 5px #c08040; }
}
@keyframes klc-shadow-pulse {
  0% { opacity: 0.4; transform: scaleX(1); } 50% { opacity: 0.6; transform: scaleX(1.03); } 100% { opacity: 0.4; transform: scaleX(1); }
}
/* end per-scene blocks */

/* auto-stub: parent tag-classes flagged by CSS audit */
.card-flutter { position: absolute; pointer-events: none; }
.motes { position: absolute; pointer-events: none; }

/* ============ tier S ============ */
/* per-scene blocks (EXP step_scenes) */
.scn-door-slams {
  background: 
    linear-gradient(180deg, #1a1c2c 0%, #2a2e40 40%, #3c3e50 100%),
    radial-gradient(ellipse at 30% 60%, rgba(100,80,60,0.3) 0%, transparent 60%);
}
.scn-door-slams .wall { position:absolute; inset:0 0 35% 0; background:linear-gradient(180deg, #1e202f 0%, #282b3e 100%); }
.scn-door-slams .floor { position:absolute; bottom:0; left:0; right:0; height:35%; background:linear-gradient(180deg, #2a2e3a 0%, #1a1c24 100%); }
.scn-door-slams .door { position:absolute; right:8%; bottom:20%; width:14%; height:55%; background:linear-gradient(180deg, #3a2e24 0%, #2a1e14 100%); border-radius:2% 2% 0 0; box-shadow:-4px 0 8px rgba(0,0,0,0.5), inset 0 2px 4px rgba(255,255,255,0.05); animation:ds-door 6s ease-in-out infinite; }
.scn-door-slams .door-shadow { position:absolute; right:8%; bottom:20%; width:14%; height:55%; background:linear-gradient(135deg, #0e0e14 0%, transparent 60%); border-radius:2% 2% 0 0; filter:blur(2px); opacity:0.6; animation:ds-door-shadow 6s ease-in-out infinite; }
.scn-door-slams .chair { position:absolute; left:25%; bottom:18%; width:20%; height:30%; background:linear-gradient(180deg, #4a3a2c 0%, #2a1e14 100%); border-radius:30% 30% 10% 10% / 50% 50% 20% 20%; box-shadow:0 8px 12px rgba(0,0,0,0.6); animation:ds-chair 4s ease-in-out infinite alternate; }
.scn-door-slams .figure { position:absolute; left:30%; bottom:30%; width:12%; height:35%; background:linear-gradient(180deg, #1a1c24 0%, #0e0e14 100%); border-radius:40% 40% 30% 30% / 60% 60% 30% 30%; transform-origin:bottom center; animation:ds-figure 8s ease-in-out infinite; }
.scn-door-slams .lamp { position:absolute; left:15%; bottom:45%; width:4%; height:8%; background:linear-gradient(180deg, #6a5a3a 0%, #3a2a18 100%); border-radius:50% 50% 20% 20%; box-shadow:0 -2px 6px rgba(255,200,100,0.3); }
.scn-door-slams .lamp-glow { position:absolute; left:13%; bottom:43%; width:8%; height:10%; background:radial-gradient(circle, rgba(255,180,60,0.5) 0%, transparent 70%); filter:blur(8px); animation:ds-lamp 3s ease-in-out infinite alternate; }
@keyframes ds-door {
  0%,100% { transform:translateX(0) rotate(0); }
  25% { transform:translateX(2px) rotate(1deg); }
  50% { transform:translateX(0) rotate(0); }
  75% { transform:translateX(-1px) rotate(-0.5deg); }
}
@keyframes ds-door-shadow {
  0%,100% { opacity:0.6; }
  25% { opacity:0.8; }
  50% { opacity:0.6; }
  75% { opacity:0.5; }
}
@keyframes ds-chair {
  0% { transform:translateY(0) rotate(0); }
  50% { transform:translateY(-2px) rotate(1deg); }
  100% { transform:translateY(0) rotate(0); }
}
@keyframes ds-figure {
  0% { transform:translateY(0) rotate(0) scale(1); }
  20% { transform:translateY(0) rotate(0) scale(1); }
  30% { transform:translateY(-4px) rotate(-5deg) scale(1.02); }
  50% { transform:translateY(-2px) rotate(0) scale(0.98); }
  70% { transform:translateY(-6px) rotate(4deg) scale(1.01); }
  100% { transform:translateY(0) rotate(0) scale(1); }
}
@keyframes ds-lamp {
  0% { opacity:0.7; transform:scale(1); }
  50% { opacity:1; transform:scale(1.2); }
  100% { opacity:0.8; transform:scale(0.95); }
}

.scn-return-from-ball {
  background: linear-gradient(180deg, #1c1b2a 0%, #2a2533 40%, #3c2e3a 100%), radial-gradient(ellipse at 50% 100%, #3c2e3a 30%, transparent 80%);
}
.scn-return-from-ball .wall {
  position:absolute; inset:0; background: linear-gradient(135deg, #2c2536 0%, #3a2e44 100%);
}
.scn-return-from-ball .door {
  position:absolute; left:8%; bottom:30%; width:16%; height:55%; background: linear-gradient(180deg, #4a3e4e 0%, #2a2034 100%); border-radius:4% 4% 0 0; box-shadow: inset -4px 0 10px rgba(0,0,0,.5); animation: rfb-door 12s ease-in-out infinite;
}
.scn-return-from-ball .window {
  position:absolute; right:10%; top:20%; width:20%; height:35%; background: linear-gradient(180deg, #0e1a2e 0%, #0f1e32 100%); border-radius:4%; box-shadow: inset 0 0 20px rgba(16,28,50,.6), 0 0 8px rgba(255,255,255,.08); animation: rfb-window 9s ease-in-out infinite alternate;
}
.scn-return-from-ball .hallway-light {
  position:absolute; left:24%; bottom:45%; width:6%; height:30%; background: radial-gradient(ellipse at 50% 0%, #f0d090 0%, transparent 70%); filter: blur(8px); animation: rfb-light 7s ease-in-out infinite alternate;
}
.scn-return-from-ball .figure-helmer {
  position:absolute; left:30%; bottom:30%; width:14%; height:50%; background: linear-gradient(180deg, #1c1a2a 0%, #0f0d18 100%); border-radius:40% 40% 30% 30% / 60% 60% 40% 40%; transform-origin: bottom center; animation: rfb-walk-helmer 6s ease-in-out infinite;
}
.scn-return-from-ball .figure-nora {
  position:absolute; left:44%; bottom:28%; width:12%; height:45%; background: linear-gradient(180deg, #2a2040 0%, #150e28 100%); border-radius:50% 40% 30% 30% / 60% 50% 40% 40%; transform-origin: bottom center; animation: rfb-walk-nora 6s ease-in-out infinite 0.3s;
}
.scn-return-from-ball .figure-linde {
  position:absolute; right:22%; bottom:32%; width:10%; height:35%; background: linear-gradient(180deg, #2a253a 0%, #18142a 100%); border-radius:40% 40% 30% 30% / 60% 60% 40% 40%; animation: rfb-stand 8s ease-in-out infinite 2s;
}
.scn-return-from-ball .coat-rack {
  position:absolute; left:5%; bottom:25%; width:6%; height:40%; background: linear-gradient(180deg, #3a2e3e 0%, #1a1420 100%); border-radius:10% 10% 5% 5%; box-shadow: inset 0 0 8px rgba(0,0,0,.5); animation: rfb-rack 14s ease-in-out infinite;
}

@keyframes rfb-door { 0%,100% { transform: scaleX(1) } 50% { transform: scaleX(0.98) } }
@keyframes rfb-window { 0% { opacity:.7 } 50% { opacity:.85 } 100% { opacity:.6 } }
@keyframes rfb-light { 0% { opacity:.4; transform: scaleY(1) } 50% { opacity:.7; transform: scaleY(1.2) } 100% { opacity:.5; transform: scaleY(0.9) } }
@keyframes rfb-walk-helmer { 0% { transform: translateX(0) rotate(-1deg) } 25% { transform: translateX(4px) rotate(1deg) } 50% { transform: translateX(8px) rotate(-0.5deg) } 75% { transform: translateX(4px) rotate(0.5deg) } 100% { transform: translateX(0) rotate(0) } }
@keyframes rfb-walk-nora { 0% { transform: translateX(0) rotate(1deg) } 25% { transform: translateX(-3px) rotate(-1deg) } 50% { transform: translateX(-6px) rotate(0.5deg) } 75% { transform: translateX(-3px) rotate(-0.5deg) } 100% { transform: translateX(0) rotate(0) } }
@keyframes rfb-stand { 0%,100% { transform: translateY(0) rotate(0) } 50% { transform: translateY(-2px) rotate(2deg) } }
@keyframes rfb-rack { 0%,100% { transform: scaleY(1) } 50% { transform: scaleY(0.97) } }

.scn-flirting-and-rank {
  background: linear-gradient(180deg, #1c1b2a 0%, #252033 40%, #3a2e44 100%), radial-gradient(ellipse at 60% 80%, #3a2e44 20%, transparent 70%);
}
.scn-flirting-and-rank .wall {
  position:absolute; inset:0; background: linear-gradient(135deg, #2e263c 0%, #3c304a 100%);
}
.scn-flirting-and-rank .sofa {
  position:absolute; left:10%; bottom:15%; width:50%; height:20%; background: linear-gradient(180deg, #4a3e52 0%, #2e203a 100%); border-radius:30% 30% 5% 5% / 40% 40% 10% 10%; box-shadow: inset 0 -8px 20px rgba(0,0,0,.6); animation: flr-sofa 10s ease-in-out infinite;
}
.scn-flirting-and-rank .lamp {
  position:absolute; right:15%; top:10%; width:12%; height:25%; background: radial-gradient(ellipse at 50% 20%, #e0c080 0%, transparent 70%); border-radius:30% 30% 10% 10%; filter: blur(6px); animation: flr-lamp 5s ease-in-out infinite alternate;
}
.scn-flirting-and-rank .figure-nora-seated {
  position:absolute; left:18%; bottom:30%; width:12%; height:35%; background: linear-gradient(180deg, #2a2040 0%, #150e28 100%); border-radius:50% 40% 20% 20% / 60% 50% 30% 30%; transform-origin: bottom center; animation: flr-seated 7s ease-in-out infinite;
}
.scn-flirting-and-rank .figure-helmer-leaning {
  position:absolute; left:32%; bottom:28%; width:14%; height:40%; background: linear-gradient(180deg, #1c1a2a 0%, #0f0d18 100%); border-radius:40% 40% 30% 30% / 60% 60% 40% 40%; transform-origin: bottom left; animation: flr-lean 9s ease-in-out infinite;
}
.scn-flirting-and-rank .figure-rank-entering {
  position:absolute; right:5%; bottom:25%; width:12%; height:45%; background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%); border-radius:40% 40% 30% 30% / 60% 60% 40% 40%; animation: flr-enter 12s ease-in-out infinite 3s;
}
.scn-flirting-and-rank .champagne-glass {
  position:absolute; left:25%; bottom:45%; width:4%; height:10%; background: linear-gradient(180deg, rgba(255,255,255,.2) 0%, transparent 100%); border-radius:0 0 20% 20%; box-shadow: 0 0 6px rgba(255,255,200,.2); animation: flr-glass 8s ease-in-out infinite alternate;
}
.scn-flirting-and-rank .shadow-stripe {
  position:absolute; left:45%; top:0; bottom:0; width:8%; background: linear-gradient(90deg, transparent 0%, rgba(0,0,0,.3) 50%, transparent 100%); animation: flr-stripe 15s ease-in-out infinite;
}

@keyframes flr-sofa { 0%,100% { transform: translateY(0) } 50% { transform: translateY(-2px) } }
@keyframes flr-lamp { 0% { opacity:.3; transform: scale(1) } 50% { opacity:.7; transform: scale(1.1) } 100% { opacity:.5; transform: scale(0.95) } }
@keyframes flr-seated { 0% { transform: rotate(-2deg) } 50% { transform: rotate(2deg) } 100% { transform: rotate(-1deg) } }
@keyframes flr-lean { 0% { transform: rotate(0) translateX(0) } 33% { transform: rotate(3deg) translateX(5px) } 66% { transform: rotate(-2deg) translateX(2px) } 100% { transform: rotate(0) } }
@keyframes flr-enter { 0%,100% { transform: translateX(0) scaleY(1) } 50% { transform: translateX(-10px) scaleY(0.95) } }
@keyframes flr-glass { 0% { opacity:.5; transform: rotate(-5deg) } 50% { opacity:.8; transform: rotate(5deg) } 100% { opacity:.6; transform: rotate(0) } }
@keyframes flr-stripe { 0%,100% { opacity:.3 } 50% { opacity:.6 } }

.scn-black-cross-cards {
  background: linear-gradient(180deg, #0e0d1a 0%, #181620 40%, #2a2230 100%), radial-gradient(ellipse at 50% 30%, #2a2230 30%, transparent 80%);
}
.scn-black-cross-cards .wall {
  position:absolute; inset:0; background: linear-gradient(135deg, #1a162a 0%, #2a1e36 100%);
}
.scn-black-cross-cards .letterbox {
  position:absolute; left:50%; top:10%; width:20%; height:12%; transform:translateX(-50%); background: linear-gradient(180deg, #3a3240 0%, #1a1428 100%); border-radius:10% 10% 5% 5%; box-shadow: inset 0 4px 10px rgba(0,0,0,.6); animation: bcc-box 11s ease-in-out infinite;
}
.scn-black-cross-cards .card-1 {
  position:absolute; left:50%; top:22%; width:8%; height:12%; transform:translateX(-50%) rotate(5deg); background: linear-gradient(135deg, #f0e8d0 0%, #d8c8a8 100%); border-radius:4%; box-shadow: 0 4px 8px rgba(0,0,0,.5); animation: bcc-card1 8s ease-in-out infinite;
}
.scn-black-cross-cards .card-2 {
  position:absolute; left:55%; top:20%; width:8%; height:12%; transform:translateX(-50%) rotate(-7deg); background: linear-gradient(135deg, #f0e8d0 0%, #d8c8a8 100%); border-radius:4%; box-shadow: 0 4px 8px rgba(0,0,0,.5); animation: bcc-card2 9s ease-in-out infinite 1s;
}
.scn-black-cross-cards .figure-helmer-hand {
  position:absolute; left:45%; top:15%; width:6%; height:18%; background: linear-gradient(180deg, #2a2030 0%, #1a1020 100%); border-radius:50% 50% 0 0 / 60% 60% 0 0; transform-origin: top center; animation: bcc-hand 7s ease-in-out infinite alternate;
}
.scn-black-cross-cards .hairpin {
  position:absolute; left:42%; top:28%; width:2%; height:8%; background: linear-gradient(180deg, #c0a080 0%, #806040 100%); border-radius:50% 50% 10% 10%; transform: rotate(25deg); animation: bcc-pin 6s ease-in-out infinite;
}
.scn-black-cross-cards .shadow-overlay {
  position:absolute; inset:0; background: radial-gradient(ellipse at 50% 0%, transparent 0%, rgba(0,0,0,.6) 100%); animation: bcc-shadow 14s ease-in-out infinite alternate;
}

@keyframes bcc-box { 0%,100% { transform: translateX(-50%) scaleY(1) } 50% { transform: translateX(-50%) scaleY(0.9) } }
@keyframes bcc-card1 { 0% { transform: translateX(-50%) rotate(5deg) } 33% { transform: translateX(-50%) rotate(8deg) } 66% { transform: translateX(-50%) rotate(2deg) } 100% { transform: translateX(-50%) rotate(5deg) } }
@keyframes bcc-card2 { 0% { transform: translateX(-50%) rotate(-7deg) } 33% { transform: translateX(-50%) rotate(-10deg) } 66% { transform: translateX(-50%) rotate(-4deg) } 100% { transform: translateX(-50%) rotate(-7deg) } }
@keyframes bcc-hand { 0% { transform: scaleY(1) rotate(0) } 50% { transform: scaleY(0.9) rotate(3deg) } 100% { transform: scaleY(1) rotate(-2deg) } }
@keyframes bcc-pin { 0%,100% { transform: rotate(25deg) } 50% { transform: rotate(30deg) } }
@keyframes bcc-shadow { 0% { opacity:.3 } 100% { opacity:.7 } }

.scn-rage-and-bond {
  background: linear-gradient(180deg, #0e0d18 0%, #161422 40%, #221c30 100%), radial-gradient(ellipse at 30% 50%, #221c30 30%, transparent 80%);
}
.scn-rage-and-bond .wall {
  position:absolute; inset:0; background: linear-gradient(135deg, #1a1528 0%, #2a1e34 100%);
}
.scn-rage-and-bond .table {
  position:absolute; left:20%; bottom:10%; width:60%; height:10%; background: linear-gradient(180deg, #3a3040 0%, #1a1420 100%); border-radius:10% 10% 0 0; box-shadow: inset 0 -4px 10px rgba(0,0,0,.6); animation: rnb-table 12s ease-in-out infinite;
}
.scn-rage-and-bond .letter-sheet {
  position:absolute; left:40%; bottom:18%; width:16%; height:12%; background: linear-gradient(135deg, #f0e0c0 0%, #c8b898 100%); border-radius:2%; box-shadow: 0 4px 8px rgba(0,0,0,.4); transform: rotate(3deg); animation: rnb-letter 7s ease-in-out infinite alternate;
}
.scn-rage-and-bond .figure-helmer-raging {
  position:absolute; left:25%; bottom:25%; width:16%; height:45%; background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%); border-radius:40% 40% 30% 30% / 60% 60% 40% 40%; transform-origin: bottom center; animation: rnb-rage 4s ease-in-out infinite;
}
.scn-rage-and-bond .figure-nora-stiff {
  position:absolute; right:20%; bottom:28%; width:12%; height:40%; background: linear-gradient(180deg, #2a2040 0%, #150e28 100%); border-radius:50% 40% 30% 30% / 60% 50% 40% 40%; transform-origin: bottom center; animation: rnb-stiff 6s ease-in-out infinite 0.5s;
}
.scn-rage-and-bond .candle {
  position:absolute; left:50%; bottom:22%; width:2%; height:14%; background: linear-gradient(180deg, #f0e0c0 0%, #c0a080 100%); border-radius:30% 30% 5% 5%; animation: rnb-candle 8s ease-in-out infinite alternate;
}
.scn-rage-and-bond .candle-flicker {
  position:absolute; left:50%; bottom:34%; width:4%; height:6%; transform:translateX(-50%); background: radial-gradient(ellipse at 50% 100%, #ffd090 0%, transparent 70%); filter: blur(4px); animation: rnb-flicker 3s ease-in-out infinite;
}
.scn-rage-and-bond .floor-reflection {
  position:absolute; bottom:0; left:0; right:0; height:20%; background: linear-gradient(180deg, transparent 0%, rgba(30,20,40,.6) 100%); animation: rnb-reflection 10s ease-in-out infinite alternate;
}

@keyframes rnb-table { 0%,100% { transform: scaleY(1) } 50% { transform: scaleY(0.95) } }
@keyframes rnb-letter { 0% { transform: rotate(3deg) translateY(0) } 100% { transform: rotate(-2deg) translateY(4px) } }
@keyframes rnb-rage { 0% { transform: translateX(0) rotate(-2deg) } 25% { transform: translateX(8px) rotate(3deg) } 50% { transform: translateX(4px) rotate(-1deg) } 75% { transform: translateX(-4px) rotate(2deg) } 100% { transform: translateX(0) rotate(0) } }
@keyframes rnb-stiff { 0%,100% { transform: translateX(0) rotate(0) } 50% { transform: translateX(-2px) rotate(2deg) } }
@keyframes rnb-candle { 0% { transform: scaleY(1); opacity:.9 } 50% { transform: scaleY(1.1); opacity:1 } 100% { transform: scaleY(0.95); opacity:.85 } }
@keyframes rnb-flicker { 0%,100% { opacity:.3 } 50% { opacity:.7 } }
@keyframes rnb-reflection { 0% { opacity:.5 } 100% { opacity:.8 } }

.scn-item-silk-stockings {
  background: linear-gradient(180deg, #3a2a1a 0%, #4a3a2a 30%, #2a1a0a 100%), radial-gradient(ellipse at 30% 70%, #5a4a3a 0%, transparent 60%);
}
.scn-item-silk-stockings .bg-wall {
  position:absolute; inset:0 0 35% 0; background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%); animation: si-wall 12s ease-in-out infinite alternate;
}
.scn-item-silk-stockings .bg-floor {
  position:absolute; bottom:0; left:0; right:0; height:35%; background: linear-gradient(180deg, #2a1a0a 0%, #1a0a00 100%); border-radius: 30% 70% 0 0; box-shadow: inset 0 4px 10px rgba(0,0,0,.5); animation: si-floor 18s ease-in-out infinite alternate;
}
.scn-item-silk-stockings .sofa {
  position:absolute; bottom:25%; left:20%; width:60%; height:30%; background: linear-gradient(180deg, #5a3a2a 0%, #3a2212 100%); border-radius: 20% 20% 10% 10%; box-shadow: 0 8px 16px rgba(0,0,0,.4); animation: si-sofa 9s ease-in-out infinite;
}
.scn-item-silk-stockings .nora-figure {
  position:absolute; bottom:30%; left:40%; width:20px; height:50px; background: linear-gradient(180deg, #2a1a1a 0%, #1a0a0a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: si-nora 5s ease-in-out infinite;
}
.scn-item-silk-stockings .stockings {
  position:absolute; bottom:35%; left:55%; width:12px; height:30px; background: linear-gradient(180deg, #c8a080 0%, #a08060 40%, #806040 100%); border-radius: 40% 40% 20% 20%; transform: rotate(-15deg); animation: si-stockings 2.5s ease-in-out infinite; box-shadow: 0 2px 8px rgba(0,0,0,.3);
}
.scn-item-silk-stockings .stockings-hand {
  position:absolute; bottom:38%; left:53%; width:8px; height:14px; background: linear-gradient(180deg, #2a1a1a 0%, #1a0a0a 100%); border-radius: 50% 50% 40% 40%; animation: si-hand 2.5s ease-in-out infinite;
}
.scn-item-silk-stockings .lamp {
  position:absolute; bottom:55%; right:15%; width:10px; height:20px; background: radial-gradient(circle at 50% 20%, #ffd080 0%, #a07030 70%); border-radius: 50% 50% 40% 40%; box-shadow: 0 0 24px 8px #c08040, 0 0 48px 16px rgba(192,128,64,.4); animation: si-lamp 4s ease-in-out infinite alternate;
}
.scn-item-silk-stockings .shadow {
  position:absolute; bottom:25%; left:35%; width:50px; height:10px; background: radial-gradient(ellipse, rgba(0,0,0,.6) 0%, transparent 80%); animation: si-shadow 6s ease-in-out infinite;
}
@keyframes si-wall { 0% { opacity:.85 } 50% { opacity:1 } 100% { opacity:.8 } }
@keyframes si-floor { 0% { transform: translateY(0) } 50% { transform: translateY(-2px) } 100% { transform: translateY(0) } }
@keyframes si-sofa { 0%,100% { transform: translateY(0) } 50% { transform: translateY(-1px) } }
@keyframes si-nora { 0% { transform: translateX(0) rotate(-1deg) } 25% { transform: translateX(2px) rotate(1deg) } 50% { transform: translateX(0) rotate(-1deg) } 75% { transform: translateX(-2px) rotate(1deg) } 100% { transform: translateX(0) rotate(0) } }
@keyframes si-stockings { 0% { transform: rotate(-20deg) translateY(0) } 25% { transform: rotate(-10deg) translateY(-2px) } 50% { transform: rotate(5deg) translateY(0) } 75% { transform: rotate(-5deg) translateY(-1px) } 100% { transform: rotate(-15deg) translateY(0) } }
@keyframes si-hand { 0%,100% { transform: translate(0,0) rotate(-5deg) } 50% { transform: translate(3px,-2px) rotate(5deg) } }
@keyframes si-lamp { 0% { box-shadow: 0 0 18px 4px #a07030, 0 0 36px 8px rgba(160,112,48,.3); opacity:.9 } 50% { box-shadow: 0 0 30px 10px #ffd080, 0 0 60px 20px rgba(255,208,128,.5); opacity:1 } 100% { box-shadow: 0 0 22px 5px #b08040, 0 0 44px 12px rgba(176,128,64,.35); opacity:.85 } }
@keyframes si-shadow { 0%,100% { opacity:.4; transform: scaleX(1) } 50% { opacity:.6; transform: scaleX(1.2) } }

.scn-love-confession {
  background: linear-gradient(180deg, #2a2a3e 0%, #1a1a2e 30%, #0a0a1a 100%), radial-gradient(ellipse at 40% 50%, #3a3a5e 0%, transparent 70%);
}
.scn-love-confession .bg-room {
  position:absolute; inset:0; background: linear-gradient(180deg, #3a3a4e 0%, #1a1a2e 100%); animation: lc-bg 10s ease-in-out infinite alternate;
}
.scn-love-confession .table {
  position:absolute; bottom:20%; left:30%; width:40%; height:8%; background: linear-gradient(90deg, #4a3a2a 0%, #3a2a1a 100%); border-radius: 10% 10% 5% 5%; box-shadow: 0 4px 8px rgba(0,0,0,.5); animation: lc-table 14s ease-in-out infinite alternate;
}
.scn-love-confession .rank-figure {
  position:absolute; bottom:25%; left:28%; width:24px; height:55px; background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: lc-rank 3s ease-in-out infinite; box-shadow: 0 0 12px 2px rgba(0,0,0,.6);
}
.scn-love-confession .nora-figure-recoil {
  position:absolute; bottom:25%; left:48%; width:20px; height:50px; background: linear-gradient(180deg, #2a1a2a 0%, #1a0a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: lc-nora 2.5s ease-in-out infinite;
}
.scn-love-confession .candle {
  position:absolute; bottom:32%; left:44%; width:4px; height:12px; background: linear-gradient(180deg, #d0a060 0%, #a07030 100%); border-radius: 20% 20% 10% 10%; box-shadow: 0 0 16px 4px #c08040, 0 0 32px 8px rgba(192,128,64,.3); animation: lc-candle 5s ease-in-out infinite alternate;
}
.scn-love-confession .teacup {
  position:absolute; bottom:20%; left:42%; width:14px; height:10px; background: linear-gradient(180deg, #6a5a4a 0%, #4a3a2a 100%); border-radius: 50% 50% 20% 20%; animation: lc-teacup 8s ease-in-out infinite;
}
.scn-love-confession .drapes {
  position:absolute; top:0; left:0; width:20%; height:100%; background: linear-gradient(90deg, #2a1a1a 0%, #1a0a0a 100%); animation: lc-drapes 20s linear infinite alternate;
}
@keyframes lc-bg { 0% { opacity:.7 } 50% { opacity:1 } 100% { opacity:.8 } }
@keyframes lc-table { 0% { transform: translateY(0) } 50% { transform: translateY(2px) } 100% { transform: translateY(0) } }
@keyframes lc-rank { 0% { transform: translateX(0) rotate(-1deg) } 30% { transform: translateX(4px) rotate(2deg) } 60% { transform: translateX(0) rotate(-1deg) } 100% { transform: translateX(-2px) rotate(1deg) } }
@keyframes lc-nora { 0% { transform: translateX(0) rotate(1deg) } 40% { transform: translateX(-8px) rotate(-3deg) } 70% { transform: translateX(-2px) rotate(1deg) } 100% { transform: translateX(0) rotate(0) } }
@keyframes lc-candle { 0% { box-shadow: 0 0 12px 2px #a07030; opacity:.8 } 50% { box-shadow: 0 0 28px 8px #d0a060; opacity:1 } 100% { box-shadow: 0 0 16px 4px #b08040; opacity:.9 } }
@keyframes lc-teacup { 0%,100% { transform: translateY(0) rotate(-2deg) } 50% { transform: translateY(-2px) rotate(2deg) } }
@keyframes lc-drapes { 0% { transform: translateX(0) } 100% { transform: translateX(-5%) } }

.scn-krogstad-backstairs {
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 30%, #000010 100%), radial-gradient(ellipse at 50% 20%, #2a2a4a 0%, transparent 80%);
}
.scn-krogstad-backstairs .bg-stairs {
  position:absolute; inset:0 0 20% 0; background: linear-gradient(180deg, #1a1a2e 0%, #0a0a1e 100%); animation: kb-bg 14s ease-in-out infinite alternate;
}
.scn-krogstad-backstairs .door {
  position:absolute; bottom:30%; left:35%; width:30%; height:50%; background: linear-gradient(180deg, #3a2a1a 0%, #1a0a00 100%); border-radius: 10% 10% 5% 5%; box-shadow: 0 6px 12px rgba(0,0,0,.6); animation: kb-door 9s ease-in-out infinite;
}
.scn-krogstad-backstairs .nora-door {
  position:absolute; bottom:40%; left:40%; width:12px; height:40px; background: linear-gradient(180deg, #2a1a1a 0%, #1a0a0a 100%); border-radius: 30% 30% 20% 20%; transform-origin: bottom center; animation: kb-nora 4s ease-in-out infinite;
}
.scn-krogstad-backstairs .krogstad-silhouette {
  position:absolute; bottom:20%; left:50%; width:22px; height:54px; background: linear-gradient(180deg, #0a0a0a 0%, #000 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: kb-krog 6s ease-in-out infinite;
}
.scn-krogstad-backstairs .shadow-stairs {
  position:absolute; bottom:20%; left:0; right:0; height:80%; background: linear-gradient(180deg, transparent 0%, rgba(0,0,0,.7) 100%); animation: kb-shadow 12s ease-in-out infinite alternate;
}
.scn-krogstad-backstairs .handrail {
  position:absolute; bottom:35%; left:20%; width:60%; height:4px; background: linear-gradient(90deg, #3a2a1a 0%, #2a1a0a 100%); border-radius: 50%; animation: kb-rail 20s linear infinite alternate;
}
.scn-krogstad-backstairs .keyhole-glow {
  position:absolute; bottom:45%; left:38%; width:6px; height:6px; background: radial-gradient(circle, #b08040 0%, transparent 70%); border-radius: 50%; box-shadow: 0 0 12px 4px #a07030, 0 0 24px 8px rgba(160,112,48,.4); animation: kb-keyhole 3s ease-in-out infinite alternate;
}
@keyframes kb-bg { 0% { opacity:.8 } 50% { opacity:1 } 100% { opacity:.7 } }
@keyframes kb-door { 0%,100% { transform: scaleX(1) } 50% { transform: scaleX(1.03) } }
@keyframes kb-nora { 0% { transform: translateY(0) rotate(-1deg) } 30% { transform: translateY(-3px) rotate(2deg) } 60% { transform: translateY(0) rotate(0) } 100% { transform: translateY(1px) rotate(-2deg) } }
@keyframes kb-krog { 0% { transform: translateX(0) translateY(0) rotate(-1deg) } 25% { transform: translateX(3px) translateY(-2px) rotate(1deg) } 50% { transform: translateX(6px) translateY(0) rotate(-2deg) } 75% { transform: translateX(3px) translateY(-1px) rotate(1deg) } 100% { transform: translateX(0) translateY(0) rotate(0) } }
@keyframes kb-shadow { 0% { opacity:.3 } 50% { opacity:.6 } 100% { opacity:.4 } }
@keyframes kb-rail { 0% { transform: translateX(0) } 100% { transform: translateX(-10%) } }
@keyframes kb-keyhole { 0% { box-shadow: 0 0 8px 2px #603010; opacity:.6 } 50% { box-shadow: 0 0 20px 8px #b08040; opacity:1 } 100% { box-shadow: 0 0 12px 4px #805020; opacity:.7 } }

.scn-suicide-talk {
  background: linear-gradient(180deg, #0a0a14 0%, #000005 40%, #050510 100%), radial-gradient(ellipse at 30% 60%, #1a1a2e 0%, transparent 70%);
}
.scn-suicide-talk .bg-void {
  position:absolute; inset:0; background: linear-gradient(180deg, #0a0a18 0%, #000010 100%); animation: st-bg 20s ease-in-out infinite alternate;
}
.scn-suicide-talk .nora-figure-dark {
  position:absolute; bottom:25%; left:35%; width:20px; height:48px; background: linear-gradient(180deg, #1a1a1a 0%, #0a0a0a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: st-nora 5s ease-in-out infinite;
}
.scn-suicide-talk .krogstad-figure-dark {
  position:absolute; bottom:25%; left:50%; width:22px; height:52px; background: linear-gradient(180deg, #0a0a0a 0%, #000 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: st-krog 7s ease-in-out infinite;
}
.scn-suicide-talk .bond-paper {
  position:absolute; bottom:40%; left:42%; width:16px; height:22px; background: linear-gradient(180deg, #3a2a1a 0%, #2a1a0a 100%); border-radius: 5% 10% 5% 10%; transform: rotate(5deg); box-shadow: 0 2px 6px rgba(0,0,0,.5); animation: st-bond 4s ease-in-out infinite;
}
.scn-suicide-talk .floor-shadow {
  position:absolute; bottom:15%; left:20%; right:20%; height:10%; background: radial-gradient(ellipse, rgba(0,0,0,.8) 0%, transparent 80%); animation: st-floor-shadow 12s ease-in-out infinite alternate;
}
.scn-suicide-talk .window-faint {
  position:absolute; top:15%; right:15%; width:30px; height:40px; background: linear-gradient(180deg, rgba(30,30,50,.3) 0%, transparent 100%); border: 2px solid rgba(50,50,70,.5); border-radius: 5% 5% 10% 10%; animation: st-window 15s ease-in-out infinite alternate;
}
@keyframes st-bg { 0% { opacity:.6 } 50% { opacity:.9 } 100% { opacity:.7 } }
@keyframes st-nora { 0% { transform: translateX(0) translateY(0) rotate(-1deg) } 30% { transform: translateX(-4px) translateY(-2px) rotate(1deg) } 60% { transform: translateX(0) translateY(0) rotate(0) } 100% { transform: translateX(2px) translateY(-1px) rotate(-2deg) } }
@keyframes st-krog { 0% { transform: translateX(0) rotate(0) } 33% { transform: translateX(3px) rotate(1deg) } 66% { transform: translateX(-2px) rotate(-1deg) } 100% { transform: translateX(0) rotate(0) } }
@keyframes st-bond { 0% { transform: rotate(5deg) translateY(0) } 50% { transform: rotate(10deg) translateY(-2px) } 100% { transform: rotate(2deg) translateY(0) } }
@keyframes st-floor-shadow { 0% { opacity:.3; transform: scaleX(.8) } 50% { opacity:.6; transform: scaleX(1.2) } 100% { opacity:.4; transform: scaleX(1) } }
@keyframes st-window { 0% { opacity:.2 } 50% { opacity:.5 } 100% { opacity:.3 } }

/* Scene: forgiveness (warm, dim-interior – firelit) */
.scn-forgiveness { background: linear-gradient(180deg, #2b1a0e 0%, #4a2e1a 40%, #6b3f1f 70%, #8a5a2a 100%), radial-gradient(ellipse at 50% 100%, #c08040 0%, transparent 60%); }
.scn-forgiveness .bg-room { position:absolute; inset:0; background: linear-gradient(90deg, #1f1510 0%, #3a251a 50%, #2e1e14 100%); }
.scn-forgiveness .fireplace { position:absolute; bottom:15%; left:50%; transform:translateX(-50%); width:120px; height:80px; background: linear-gradient(180deg, #2a1a10 0%, #0d0804 100%); border-radius:20% 20% 5% 5%; box-shadow: inset 0 -10px 20px rgba(0,0,0,0.6); }
.scn-forgiveness .flame { position:absolute; bottom:30%; left:50%; width:30px; height:50px; transform:translateX(-50%); background: radial-gradient(ellipse at 50% 100%, #ffc080 0%, #ff8020 40%, #cc4400 70%, transparent 100%); border-radius:50%; animation: forg-flame 0.8s ease-in-out infinite alternate; }
.scn-forgiveness .spark { position:absolute; bottom:50%; left:45%; width:6px; height:6px; background: radial-gradient(circle, #fff0c0 0%, #ff8020 100%); border-radius:50%; filter: blur(1px); }
.scn-forgiveness .spark-1 { animation: forg-spark1 2.5s ease-out infinite; }
.scn-forgiveness .spark-2 { animation: forg-spark2 3.2s ease-out infinite 1.5s; }
.scn-forgiveness .helmer { position:absolute; bottom:20%; left:30%; width:30px; height:60px; background: linear-gradient(180deg, #1a1410 0%, #0a0806 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom; animation: forg-helmer 4s ease-in-out infinite; }
.scn-forgiveness .nora { position:absolute; bottom:20%; left:55%; width:28px; height:55px; background: linear-gradient(180deg, #1a1410 0%, #0a0806 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom; animation: forg-nora 5s ease-in-out infinite 0.5s; }
.scn-forgiveness .desk { position:absolute; bottom:15%; left:42%; width:50px; height:30px; background: linear-gradient(180deg, #3a2010 0%, #1a0e06 100%); border-radius:5%; box-shadow: 0 4px 8px rgba(0,0,0,0.5); }
@keyframes forg-flame { 0% { transform: translateX(-50%) scale(1) rotate(-1deg); opacity:0.9 } 50% { transform: translateX(-50%) scale(1.05) rotate(1deg); opacity:1 } 100% { transform: translateX(-50%) scale(0.95) rotate(-0.5deg); opacity:0.85 } }
@keyframes forg-spark1 { 0% { transform: translateY(0) translateX(0) scale(1); opacity:1 } 50% { transform: translateY(-30px) translateX(10px) scale(0.7); opacity:0.6 } 100% { transform: translateY(-60px) translateX(20px) scale(0.2); opacity:0 } }
@keyframes forg-spark2 { 0% { transform: translateY(0) translateX(5px) scale(1); opacity:1 } 50% { transform: translateY(-25px) translateX(-5px) scale(0.8); opacity:0.7 } 100% { transform: translateY(-50px) translateX(-15px) scale(0.3); opacity:0 } }
@keyframes forg-helmer { 0% { transform: rotate(-3deg) } 25% { transform: rotate(2deg) } 50% { transform: rotate(-1deg) } 75% { transform: rotate(3deg) } 100% { transform: rotate(-2deg) } }
@keyframes forg-nora { 0% { transform: rotate(2deg) translateY(0) } 50% { transform: rotate(-2deg) translateY(-2px) } 100% { transform: rotate(1deg) translateY(0) } }

/* Scene: doll-wife-complaint (dark, dim-interior – table talk) */
.scn-doll-wife-complaint { background: linear-gradient(180deg, #0f0e1a 0%, #1c182b 40%, #2a223a 70%, #1e1930 100%), radial-gradient(ellipse at 50% 100%, #2a223a 0%, transparent 60%); }
.scn-doll-wife-complaint .bg-doll { position:absolute; inset:0; background: linear-gradient(180deg, #14112a 0%, #0d0b1a 100%); }
.scn-doll-wife-complaint .table { position:absolute; bottom:20%; left:50%; transform:translateX(-50%); width:80px; height:40px; background: linear-gradient(180deg, #2a2418 0%, #1a1410 100%); border-radius:5%; box-shadow: 0 6px 12px rgba(0,0,0,0.7); }
.scn-doll-wife-complaint .lamp { position:absolute; bottom:50%; left:35%; width:16px; height:30px; background: linear-gradient(180deg, #6a5a3a 0%, #4a3a1a 100%); border-radius:50% 50% 20% 20%; transform-origin: bottom center; animation: doll-lamp 4s ease-in-out infinite; }
.scn-doll-wife-complaint .lamp::after { content:''; position:absolute; top:-8px; left:50%; transform:translateX(-50%); width:8px; height:8px; background: radial-gradient(circle, #d0b060 0%, #806030 100%); border-radius:50%; box-shadow: 0 0 20px 10px rgba(208,176,96,0.3); }
.scn-doll-wife-complaint .chiaroscuro { position:absolute; inset:0; background: radial-gradient(ellipse at 35% 60%, rgba(208,176,96,0.15) 0%, transparent 60%); pointer-events:none; }
.scn-doll-wife-complaint .nora-sit { position:absolute; bottom:20%; left:40%; width:28px; height:50px; background: linear-gradient(180deg, #2a1a2a 0%, #0d0a0d 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom; animation: doll-nora 6s ease-in-out infinite; }
.scn-doll-wife-complaint .helmer-sit { position:absolute; bottom:20%; left:55%; width:30px; height:52px; background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom; animation: doll-helmer 7s ease-in-out infinite 0.8s; }
.scn-doll-wife-complaint .chair-back { position:absolute; bottom:20%; left:35%; width:45px; height:70px; background: linear-gradient(180deg, #2a2018 0%, #1a1410 100%); border-radius:10% 10% 0 0; opacity:0.6; }
@keyframes doll-lamp { 0% { transform: rotate(-2deg); box-shadow: 0 0 10px 5px rgba(208,176,96,0.1) } 50% { transform: rotate(2deg); box-shadow: 0 0 15px 8px rgba(208,176,96,0.2) } 100% { transform: rotate(-1deg); box-shadow: 0 0 10px 5px rgba(208,176,96,0.1) } }
@keyframes doll-nora { 0% { transform: rotate(2deg) translateY(0) } 33% { transform: rotate(-3deg) translateY(-3px) } 66% { transform: rotate(0deg) translateY(0) } 100% { transform: rotate(1deg) translateY(-1px) } }
@keyframes doll-helmer { 0% { transform: rotate(-1deg) } 25% { transform: rotate(0deg) } 50% { transform: rotate(2deg) } 75% { transform: rotate(-2deg) } 100% { transform: rotate(0deg) } }

/* Scene: leaving-home (dark, dim-interior – doorway) */
.scn-leaving-home { background: linear-gradient(180deg, #0a0a14 0%, #14141e 40%, #1e1e2a 70%, #0f0f1a 100%), radial-gradient(ellipse at 70% 80%, #2a2a3a 0%, transparent 60%); }
.scn-leaving-home .bg-leave { position:absolute; inset:0; background: linear-gradient(180deg, #12121c 0%, #080810 100%); }
.scn-leaving-home .door-frame { position:absolute; bottom:10%; left:50%; transform:translateX(-50%); width:100px; height:180px; background: linear-gradient(180deg, #1a1412 0%, #0a0806 100%); border-radius:5% 5% 0 0; border: 2px solid #2a1a12; }
.scn-leaving-home .door { position:absolute; bottom:10%; left:50%; transform:translateX(-50%); width:90px; height:170px; background: linear-gradient(90deg, #2a221a 0%, #1a140e 100%); border-radius:3% 3% 0 0; transform-origin: left; animation: leav-door 8s ease-in-out infinite alternate; }
.scn-leaving-home .nora-leave { position:absolute; bottom:14%; left:50%; width:30px; height:65px; transform:translateX(-5px); background: linear-gradient(180deg, #1a1015 0%, #0a050a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom; animation: leav-nora 5s ease-in-out infinite; }
.scn-leaving-home .coat { position:absolute; bottom:22%; left:52%; width:22px; height:40px; background: linear-gradient(180deg, #2a2018 0%, #1a140e 100%); border-radius:30% 30% 10% 10%; transform: rotate(5deg); }
.scn-leaving-home .bag { position:absolute; bottom:14%; left:45%; width:18px; height:24px; background: linear-gradient(180deg, #3a2a1a 0%, #1a0e0a 100%); border-radius:10% 10% 20% 20%; animation: leav-bag 3s ease-in-out infinite; }
.scn-leaving-home .ring { position:absolute; bottom:28%; left:48%; width:8px; height:8px; background: radial-gradient(circle, #d4a050 0%, #a07030 100%); border-radius:50%; box-shadow: 0 0 12px 4px rgba(212,160,80,0.5); animation: leav-ring 2s ease-in-out infinite alternate; }
.scn-leaving-home .light-leave { position:absolute; top:30%; right:10%; width:80px; height:120px; background: radial-gradient(ellipse, rgba(200,180,120,0.1) 0%, transparent 70%); }
@keyframes leav-door { 0% { transform: translateX(-50%) rotateY(0deg) } 50% { transform: translateX(-50%) rotateY(15deg) } 100% { transform: translateX(-50%) rotateY(0deg) } }
@keyframes leav-nora { 0% { transform: translateX(-5px) rotate(0deg) } 30% { transform: translateX(-5px) rotate(3deg) translateY(-2px) } 60% { transform: translateX(-5px) rotate(-2deg) translateY(0) } 100% { transform: translateX(-5px) rotate(0deg) } }
@keyframes leav-bag { 0% { transform: rotate(5deg) } 50% { transform: rotate(-5deg) } 100% { transform: rotate(5deg) } }
@keyframes leav-ring { 0% { transform: scale(1); opacity:0.8 } 50% { transform: scale(1.1); opacity:1 } 100% { transform: scale(0.9); opacity:0.7 } }

/* Scene: item-wedding-ring (dark, dim-interior – close-up hands) */
.scn-item-wedding-ring { background: linear-gradient(180deg, #0c0a0e 0%, #1a141a 40%, #241e24 70%, #0e0c0e 100%), radial-gradient(ellipse at 50% 70%, #2a1e2a 0%, transparent 60%); }
.scn-item-wedding-ring .bg-item { position:absolute; inset:0; background: linear-gradient(180deg, #0f0d12 0%, #08060a 100%); }
.scn-item-wedding-ring .table-item { position:absolute; bottom:10%; left:30%; width:100px; height:50px; background: linear-gradient(180deg, #1e1818 0%, #0e0a0a 100%); border-radius:5%; box-shadow: 0 -4px 12px rgba(0,0,0,0.6); }
.scn-item-wedding-ring .hand-left { position:absolute; bottom:30%; left:32%; width:40px; height:60px; background: linear-gradient(180deg, #2a1a1a 0%, #120a0a 100%); border-radius: 60% 40% 40% 60% / 50% 50% 50% 50%; transform-origin: bottom; animation: item-hand-left 4s ease-in-out infinite; }
.scn-item-wedding-ring .hand-right { position:absolute; bottom:30%; left:50%; width:40px; height:60px; background: linear-gradient(180deg, #2a1a1a 0%, #120a0a 100%); border-radius: 40% 60% 60% 40% / 50% 50% 50% 50%; transform-origin: bottom; animation: item-hand-right 4s ease-in-out infinite 0.5s; }
.scn-item-wedding-ring .ring-item { position:absolute; bottom:45%; left:43%; width:20px; height:10px; background: linear-gradient(180deg, #d4a050 0%, #a07030 100%); border-radius:50%; box-shadow: 0 0 16px 6px rgba(212,160,80,0.4), 0 0 32px 12px rgba(212,160,80,0.2); animation: item-ring-glow 2s ease-in-out infinite alternate; }
.scn-item-wedding-ring .shadow-item { position:absolute; bottom:15%; left:35%; width:60px; height:15px; background: radial-gradient(ellipse, rgba(0,0,0,0.5) 0%, transparent 100%); }
@keyframes item-hand-left { 0% { transform: rotate(5deg) translateY(0) } 50% { transform: rotate(-5deg) translateY(-3px) } 100% { transform: rotate(5deg) translateY(0) } }
@keyframes item-hand-right { 0% { transform: rotate(-5deg) translateY(0) } 50% { transform: rotate(5deg) translateY(-3px) } 100% { transform: rotate(-5deg) translateY(0) } }
@keyframes item-ring-glow { 0% { box-shadow: 0 0 12px 4px rgba(212,160,80,0.3), 0 0 24px 8px rgba(212,160,80,0.1); opacity:0.8 } 100% { box-shadow: 0 0 20px 8px rgba(212,160,80,0.6), 0 0 40px 16px rgba(212,160,80,0.3); opacity:1 } }

.scn-nora-returns-home { background: linear-gradient(180deg, #2c231a 0%, #3a2e22 40%, #4a3b2a 100%), radial-gradient(ellipse at 75% 60%, #3a2e22 0%, transparent 70%); }
.scn-nora-returns-home .wall { position:absolute; inset:0 0 45% 0; background: linear-gradient(180deg, #4a3b2a 0%, #2c231a 100%); }
.scn-nora-returns-home .floor { position:absolute; bottom:0; left:0; right:0; height:45%; background: linear-gradient(180deg, #3a2e22 0%, #1f1812 100%); border-radius: 10% 10% 0 0 / 20% 20% 0 0; }
.scn-nora-returns-home .tree { position:absolute; bottom:35%; left:30%; width:70px; height:90px; background: linear-gradient(180deg, #2a4a2a 0%, #1a3a1a 100%); border-radius: 30% 30% 10% 10% / 60% 60% 20% 20%; box-shadow: inset -6px -6px 12px rgba(0,0,0,.4); transform: scaleY(1.2); }
.scn-nora-returns-home .nora { position:absolute; bottom:28%; left:55%; width:28px; height:50px; background: linear-gradient(180deg, #6a4a3a 0%, #3a2a1a 100%); border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%; transform-origin: bottom center; animation: nrh-figure 6s ease-in-out infinite; }
.scn-nora-returns-home .parcels { position:absolute; bottom:38%; left:68%; width:24px; height:28px; background: linear-gradient(180deg, #8a6a3a 0%, #5a3a1a 100%); border-radius: 10%; box-shadow: 4px 4px 8px rgba(0,0,0,.3); transform: rotate(15deg); animation: nrh-parcels 8s ease-in-out infinite alternate; }
.scn-nora-returns-home .macaroon { position:absolute; bottom:42%; left:48%; width:10px; height:10px; background: radial-gradient(circle, #d4a040 0%, #b08030 60%); border-radius: 50%; box-shadow: 0 0 6px 2px rgba(180,100,30,.4); animation: nrh-macaroon 4s ease-in-out infinite; }
.scn-nora-returns-home .lamp-glow { position:absolute; top:15%; right:20%; width:80px; height:80px; background: radial-gradient(circle, rgba(200,160,80,.3) 0%, transparent 70%); border-radius: 50%; filter: blur(15px); animation: nrh-glow 5s ease-in-out infinite alternate; }
.scn-nora-returns-home .door-shadow { position:absolute; bottom:0; left:20%; width:40px; height:70%; background: linear-gradient(180deg, transparent 0%, rgba(0,0,0,.2) 100%); border-radius: 0 0 20% 20%; filter: blur(4px); }
@keyframes nrh-figure { 0% { transform: translateX(0) translateY(0) rotate(-2deg); } 25% { transform: translateX(4px) translateY(-2px) rotate(1deg); } 50% { transform: translateX(8px) translateY(0) rotate(2deg); } 75% { transform: translateX(12px) translateY(-1px) rotate(-1deg); } 100% { transform: translateX(16px) translateY(0) rotate(0); } }
@keyframes nrh-parcels { 0% { transform: rotate(10deg) translateX(0); } 50% { transform: rotate(0deg) translateX(4px); } 100% { transform: rotate(-5deg) translateX(0); } }
@keyframes nrh-macaroon { 0%,100% { transform: scale(1); opacity:0.8; } 50% { transform: scale(1.2); opacity:1; } }
@keyframes nrh-glow { 0% { opacity:0.6; transform: scale(1); } 50% { opacity:0.9; transform: scale(1.1); } 100% { opacity:0.7; transform: scale(0.95); } }

.scn-helmer-teases-spending { background: linear-gradient(180deg, #3a3028 0%, #4a3c30 40%, #2c2218 100%), radial-gradient(ellipse at 30% 50%, #4a3c30 0%, transparent 60%); }
.scn-helmer-teases-spending .wall { position:absolute; inset:0 0 40% 0; background: linear-gradient(180deg, #4a3c30 0%, #2c2218 100%); }
.scn-helmer-teases-spending .floor { position:absolute; bottom:0; left:0; right:0; height:40%; background: linear-gradient(180deg, #2c2218 0%, #1a1410 100%); border-radius: 8% 8% 0 0 / 15% 15% 0 0; }
.scn-helmer-teases-spending .helmer { position:absolute; bottom:25%; left:25%; width:30px; height:55px; background: linear-gradient(180deg, #5a4a3a 0%, #2a1a12 100%); border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%; transform-origin: bottom center; animation: hts-helmer 8s ease-in-out infinite; }
.scn-helmer-teases-spending .nora { position:absolute; bottom:22%; left:55%; width:24px; height:46px; background: linear-gradient(180deg, #7a5a3a 0%, #4a2a1a 100%); border-radius: 45% 45% 35% 35% / 55% 55% 40% 40%; transform-origin: bottom center; animation: hts-nora 6s ease-in-out infinite; }
.scn-helmer-teases-spending .desk { position:absolute; bottom:20%; left:35%; width:80px; height:30px; background: linear-gradient(180deg, #5a3a2a 0%, #3a2218 100%); border-radius: 5% 5% 10% 10%; transform: perspective(200px) rotateX(10deg); box-shadow: inset 0 -4px 8px rgba(0,0,0,.3); }
.scn-helmer-teases-spending .money { position:absolute; bottom:32%; left:48%; width:20px; height:14px; background: linear-gradient(180deg, #8a7a4a 0%, #6a5a3a 100%); border-radius: 5%; transform: rotate(-10deg); box-shadow: 0 2px 4px rgba(0,0,0,.2); animation: hts-money 4s ease-in-out infinite alternate; }
.scn-helmer-teases-spending .gift-box { position:absolute; bottom:28%; left:60%; width:22px; height:18px; background: linear-gradient(180deg, #7a6a3a 0%, #5a4a2a 100%); border-radius: 5%; box-shadow: 0 4px 6px rgba(0,0,0,.25); animation: hts-gift 9s ease-in-out infinite; }
.scn-helmer-teases-spending .lamp { position:absolute; top:10%; right:15%; width:30px; height:40px; background: radial-gradient(circle at 50% 30%, #ffd080 0%, #b08040 60%); border-radius: 30% 30% 20% 20% / 40% 40% 20% 20%; box-shadow: 0 0 40px 10px rgba(200,130,50,.3); animation: hts-lamp 5s ease-in-out infinite alternate; }
@keyframes hts-helmer { 0% { transform: translateX(0) rotate(-2deg); } 50% { transform: translateX(3px) rotate(2deg); } 100% { transform: translateX(0) rotate(-1deg); } }
@keyframes hts-nora { 0% { transform: translateX(0) rotate(1deg); } 33% { transform: translateX(-2px) rotate(-2deg); } 66% { transform: translateX(4px) rotate(0deg); } 100% { transform: translateX(0) rotate(1deg); } }
@keyframes hts-money { 0% { transform: rotate(-15deg) translateY(0); } 50% { transform: rotate(-5deg) translateY(-2px); } 100% { transform: rotate(-10deg) translateY(0); } }
@keyframes hts-gift { 0% { transform: scale(1); opacity:0.8; } 25% { transform: scale(1.1); opacity:1; } 50% { transform: scale(0.95); opacity:0.9; } 100% { transform: scale(1); opacity:0.8; } }
@keyframes hts-lamp { 0% { opacity:0.7; transform: scale(1); } 50% { opacity:1; transform: scale(1.05); box-shadow: 0 0 50px 15px rgba(200,130,50,.4); } 100% { opacity:0.8; transform: scale(0.95); } }

.scn-mrs-linde-arrives { background: linear-gradient(180deg, #3a3025 0%, #2a2218 40%, #1c1812 100%), radial-gradient(ellipse at 50% 70%, #2a2218 0%, transparent 60%); }
.scn-mrs-linde-arrives .wall { position:absolute; inset:0 0 40% 0; background: linear-gradient(180deg, #4a3c2e 0%, #2c221a 100%); }
.scn-mrs-linde-arrives .floor { position:absolute; bottom:0; left:0; right:0; height:40%; background: linear-gradient(180deg, #2c221a 0%, #18140e 100%); border-radius: 12% 12% 0 0 / 18% 18% 0 0; }
.scn-mrs-linde-arrives .table { position:absolute; bottom:25%; left:20%; width:60px; height:22px; background: linear-gradient(180deg, #5a3a28 0%, #3a2218 100%); border-radius: 10% 10% 20% 20%; transform: perspective(200px) rotateX(5deg); }
.scn-mrs-linde-arrives .ornament { position:absolute; bottom:35%; left:25%; width:14px; height:14px; background: radial-gradient(circle, #b08050 0%, #806040 60%); border-radius: 50%; box-shadow: 0 0 8px 4px rgba(128,96,64,.4); animation: mli-ornament 5s ease-in-out infinite alternate; }
.scn-mrs-linde-arrives .cat { position:absolute; bottom:28%; left:30%; width:30px; height:18px; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a12 100%); border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%; transform: rotate(-10deg); animation: mli-cat 7s ease-in-out infinite; }
.scn-mrs-linde-arrives .maid { position:absolute; bottom:22%; left:55%; width:22px; height:46px; background: linear-gradient(180deg, #5a4a3a 0%, #2a1a12 100%); border-radius: 40% 40% 35% 35% / 55% 55% 40% 40%; transform-origin: bottom center; animation: mli-maid 12s ease-in-out infinite; }
.scn-mrs-linde-arrives .mrs-linde { position:absolute; bottom:20%; left:75%; width:26px; height:50px; background: linear-gradient(180deg, #4a3a2a 0%, #221812 100%); border-radius: 45% 45% 35% 35% / 50% 50% 40% 40%; transform-origin: bottom center; animation: mli-linde 10s ease-in-out infinite; }
.scn-mrs-linde-arrives .door { position:absolute; bottom:0; left:70%; width:30px; height:60%; background: linear-gradient(180deg, #3a2a1a 0%, #1a1410 100%); border-radius: 10% 10% 0 0; box-shadow: inset 0 2px 6px rgba(0,0,0,.3); }
.scn-mrs-linde-arrives .lamp-glow { position:absolute; top:18%; left:50%; width:90px; height:90px; background: radial-gradient(circle, rgba(220,180,100,.25) 0%, transparent 70%); border-radius: 50%; filter: blur(18px); animation: mli-glow 8s ease-in-out infinite alternate; }
@keyframes mli-ornament { 0% { transform: scale(1) rotate(0deg); } 50% { transform: scale(1.15) rotate(180deg); } 100% { transform: scale(0.9) rotate(360deg); } }
@keyframes mli-cat { 0% { transform: translateX(0) rotate(-15deg); } 33% { transform: translateX(3px) rotate(-5deg); } 66% { transform: translateX(-2px) rotate(-20deg); } 100% { transform: translateX(0) rotate(-15deg); } }
@keyframes mli-maid { 0% { transform: translateY(0) rotate(-2deg); } 25% { transform: translateY(-2px) rotate(1deg); } 50% { transform: translateY(0) rotate(2deg); } 75% { transform: translateY(-1px) rotate(-1deg); } 100% { transform: translateY(0) rotate(-2deg); } }
@keyframes mli-linde { 0% { transform: translateX(0) translateY(0); opacity:0.6; } 25% { transform: translateX(2px) translateY(-1px); opacity:0.8; } 50% { transform: translateX(4px) translateY(0); opacity:0.9; } 75% { transform: translateX(6px) translateY(-2px); opacity:0.8; } 100% { transform: translateX(8px) translateY(0); opacity:0.6; } }
@keyframes mli-glow { 0% { opacity:0.5; transform: scale(1); } 50% { opacity:0.8; transform: scale(1.05); } 100% { opacity:0.6; transform: scale(0.95); } }

.scn-promotion-confession { background: linear-gradient(180deg, #1a181a 0%, #2a2428 40%, #3a3030 100%), radial-gradient(ellipse at 40% 50%, #2a2428 0%, transparent 60%); }
.scn-promotion-confession .wall { position:absolute; inset:0 0 35% 0; background: linear-gradient(180deg, #3a3030 0%, #1a181a 100%); }
.scn-promotion-confession .floor { position:absolute; bottom:0; left:0; right:0; height:35%; background: linear-gradient(180deg, #1a181a 0%, #0e0c0e 100%); border-radius: 15% 15% 0 0 / 25% 25% 0 0; }
.scn-promotion-confession .nora { position:absolute; bottom:22%; left:30%; width:26px; height:48px; background: linear-gradient(180deg, #4a3a3a 0%, #2a1a1a 100%); border-radius: 45% 45% 35% 35% / 55% 55% 40% 40%; transform-origin: bottom center; animation: pcn-nora 6s ease-in-out infinite alternate; }
.scn-promotion-confession .mrs-linde { position:absolute; bottom:20%; left:55%; width:24px; height:44px; background: linear-gradient(180deg, #3a2e2e 0%, #1a1212 100%); border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%; transform-origin: bottom center; animation: pcn-linde 7s ease-in-out infinite alternate; }
.scn-promotion-confession .fireplace { position:absolute; bottom:15%; left:50%; width:80px; height:60px; transform: translateX(-50%); background: linear-gradient(180deg, #3a2a22 0%, #1a1412 100%); border-radius: 20% 20% 10% 10%; box-shadow: inset 0 -8px 16px rgba(0,0,0,.5); }
.scn-promotion-confession .glow { position:absolute; bottom:25%; left:50%; width:70px; height:50px; background: radial-gradient(ellipse, rgba(200,100,30,.3) 0%, transparent 60%); transform: translateX(-50%); filter: blur(12px); animation: pcn-glow 4s ease-in-out infinite alternate; }
.scn-promotion-confession .shadow { position:absolute; bottom:10%; left:28%; width:20px; height:60px; background: linear-gradient(180deg, transparent 0%, rgba(0,0,0,.3) 100%); transform: rotate(-15deg); filter: blur(6px); animation: pcn-shadow 8s ease-in-out infinite; }
.scn-promotion-confession .picture-frame { position:absolute; top:12%; right:15%; width:30px; height:40px; background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%); border-radius: 5%; box-shadow: 0 0 6px rgba(0,0,0,.3); animation: pcn-frame 15s linear infinite; }
@keyframes pcn-nora { 0% { transform: translateX(0) rotate(-3deg); } 50% { transform: translateX(3px) rotate(2deg); } 100% { transform: translateX(-2px) rotate(-1deg); } }
@keyframes pcn-linde { 0% { transform: translateX(0) rotate(2deg); } 50% { transform: translateX(-2px) rotate(-3deg); } 100% { transform: translateX(1px) rotate(0deg); } }
@keyframes pcn-glow { 0% { opacity:0.4; transform: translateX(-50%) scale(1); } 50% { opacity:0.8; transform: translateX(-50%) scale(1.1); } 100% { opacity:0.5; transform: translateX(-50%) scale(0.95); } }
@keyframes pcn-shadow { 0% { transform: rotate(-15deg) translateY(0); } 50% { transform: rotate(-20deg) translateY(4px); } 100% { transform: rotate(-15deg) translateY(0); } }
@keyframes pcn-frame { 0% { transform: rotate(0deg) scale(1); opacity:0.7; } 50% { transform: rotate(180deg) scale(1.05); opacity:0.9; } 100% { transform: rotate(360deg) scale(1); opacity:0.7; } }

/* rank-depression-warning */
.scn-rank-depression-warning {
  background: linear-gradient(180deg, #2c1f1a 0%, #1a1210 60%, #0f0b09 100%),
    radial-gradient(ellipse at 50% 80%, #3a2a20 0%, transparent 70%);
}
.scn-rank-depression-warning .bg-wall {
  position: absolute; inset: 0 0 35% 0;
  background: linear-gradient(180deg, #3e2e26 0%, #2a1e18 60%, #1a1210 100%);
  box-shadow: inset 0 -8px 12px rgba(0,0,0,.4);
}
.scn-rank-depression-warning .bg-floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 35%;
  background: linear-gradient(180deg, #2a1e18 0%, #1a1210 100%);
  border-radius: 0 0 40% 40% / 0 0 20% 20%;
}
.scn-rank-depression-warning .lamp {
  position: absolute; bottom: 45%; left: 20%; width: 20px; height: 30px;
  background: radial-gradient(ellipse at 50% 30%, #ffd080 0%, #b08040 70%);
  border-radius: 50% 50% 30% 30%;
  box-shadow: 0 0 40px 12px rgba(255,208,128,.5), 0 0 80px 20px rgba(255,208,128,.2);
  animation: rdw-lamp 4s ease-in-out infinite alternate;
}
@keyframes rdw-lamp {
  0% { opacity: 0.8; box-shadow: 0 0 30px 8px rgba(255,208,128,.4), 0 0 70px 15px rgba(255,208,128,.15); }
  50% { opacity: 1; box-shadow: 0 0 50px 16px rgba(255,208,128,.6), 0 0 100px 25px rgba(255,208,128,.25); }
  100% { opacity: 0.85; box-shadow: 0 0 35px 10px rgba(255,208,128,.45), 0 0 80px 18px rgba(255,208,128,.18); }
}
.scn-rank-depression-warning .figure-woman {
  position: absolute; bottom: 30%; left: 10%; width: 20px; height: 60px;
  background: linear-gradient(180deg, #1a1210 0%, #0a0807 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: rdw-pace 6s ease-in-out infinite;
}
@keyframes rdw-pace {
  0% { transform: translateX(0) translateY(0) rotate(-2deg); }
  25% { transform: translateX(30px) translateY(-3px) rotate(2deg); }
  50% { transform: translateX(60px) translateY(0) rotate(-2deg); }
  75% { transform: translateX(90px) translateY(-3px) rotate(2deg); }
  100% { transform: translateX(120px) translateY(0) rotate(0deg); }
}
.scn-rank-depression-warning .figure-seated {
  position: absolute; bottom: 27%; left: 60%; width: 28px; height: 45px;
  background: linear-gradient(180deg, #1a1210 0%, #0a0807 100%);
  border-radius: 50% 50% 30% 30% / 70% 70% 30% 30%;
  animation: rdw-seat 8s ease-in-out infinite alternate;
}
@keyframes rdw-seat {
  0% { transform: translateY(0) rotate(0deg); }
  50% { transform: translateY(-2px) rotate(1deg); }
  100% { transform: translateY(0) rotate(-1deg); }
}
.scn-rank-depression-warning .sewing-basket {
  position: absolute; bottom: 26%; left: 65%; width: 20px; height: 16px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1e18 100%);
  border-radius: 40% 40% 30% 30%;
  box-shadow: 0 2px 6px rgba(0,0,0,.5);
  animation: rdw-basket 4s ease-in-out infinite alternate;
}
@keyframes rdw-basket {
  0% { transform: translateY(0); }
  100% { transform: translateY(-2px); }
}
.scn-rank-depression-warning .shadow-pace {
  position: absolute; bottom: 20%; left: 10%; width: 120px; height: 10px;
  background: radial-gradient(ellipse, rgba(0,0,0,.5) 0%, transparent 100%);
  animation: rdw-shade 6s ease-in-out infinite;
}
@keyframes rdw-shade {
  0% { transform: translateX(0) scaleX(1); }
  50% { transform: translateX(60px) scaleX(1.2); }
  100% { transform: translateX(120px) scaleX(1); }
}

/* helmer-refuses */
.scn-helmer-refuses {
  background: linear-gradient(180deg, #2a1f1a 0%, #1a120f 50%, #0f0a08 100%),
    radial-gradient(ellipse at 50% 70%, #3a2a20 0%, transparent 70%);
}
.scn-helmer-refuses .bg-wall {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(180deg, #3a2a22 0%, #2a1e18 60%);
}
.scn-helmer-refuses .bg-floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 40%;
  background: linear-gradient(180deg, #2a1e18 0%, #1a120f 100%);
}
.scn-helmer-refuses .desk {
  position: absolute; bottom: 30%; left: 15%; right: 15%; height: 20px;
  background: linear-gradient(180deg, #4a3a2a 0%, #3a2a1a 100%);
  border-radius: 4% 4% 0 0;
  box-shadow: 0 4px 8px rgba(0,0,0,.5);
}
.scn-helmer-refuses .lamp-desk {
  position: absolute; bottom: 40%; left: 45%; width: 16px; height: 24px;
  background: radial-gradient(ellipse at 50% 20%, #ffd080 0%, #b07840 70%);
  border-radius: 50% 50% 30% 30%;
  box-shadow: 0 0 30px 8px rgba(255,208,128,.4), 0 0 60px 15px rgba(255,208,128,.15);
  animation: hre-lamp 3s ease-in-out infinite alternate;
}
@keyframes hre-lamp {
  0% { opacity: 0.85; box-shadow: 0 0 25px 6px rgba(255,208,128,.35), 0 0 50px 12px rgba(255,208,128,.12); }
  50% { opacity: 1; box-shadow: 0 0 40px 12px rgba(255,208,128,.5), 0 0 80px 20px rgba(255,208,128,.2); }
  100% { opacity: 0.9; box-shadow: 0 0 30px 8px rgba(255,208,128,.4), 0 0 60px 15px rgba(255,208,128,.15); }
}
.scn-helmer-refuses .figure-helmer {
  position: absolute; bottom: 30%; left: 30%; width: 30px; height: 55px;
  background: linear-gradient(180deg, #1a1210 0%, #0a0807 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: hre-stand 10s ease-in-out infinite alternate;
}
@keyframes hre-stand {
  0% { transform: translateY(0) rotate(0deg); }
  50% { transform: translateY(-2px) rotate(1deg); }
  100% { transform: translateY(0) rotate(-1deg); }
}
.scn-helmer-refuses .figure-nora {
  position: absolute; bottom: 30%; left: 55%; width: 22px; height: 55px;
  background: linear-gradient(180deg, #1a1210 0%, #0a0807 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: hre-plead 5s ease-in-out infinite;
}
@keyframes hre-plead {
  0% { transform: translateX(0) translateY(0) rotate(-3deg); }
  25% { transform: translateX(-5px) translateY(-4px) rotate(3deg); }
  50% { transform: translateX(0) translateY(-2px) rotate(-2deg); }
  75% { transform: translateX(5px) translateY(-4px) rotate(2deg); }
  100% { transform: translateX(0) translateY(0) rotate(-3deg); }
}
.scn-helmer-refuses .letter {
  position: absolute; bottom: 32%; left: 35%; width: 12px; height: 16px;
  background: linear-gradient(180deg, #d4c4a0 0%, #b8a88a 100%);
  border: 1px solid #8a7a6a;
  transform: rotate(-10deg);
  animation: hre-letter 6s ease-in-out infinite alternate;
}
@keyframes hre-letter {
  0% { transform: rotate(-10deg) translateY(0); }
  50% { transform: rotate(-8deg) translateY(-3px); }
  100% { transform: rotate(-12deg) translateY(0); }
}

/* dismissal-desperation */
.scn-dismissal-desperation {
  background: linear-gradient(180deg, #1a1210 0%, #0f0a08 50%, #050303 100%),
    radial-gradient(ellipse at 50% 60%, #2a1e18 0%, transparent 70%);
}
.scn-dismissal-desperation .bg-wall {
  position: absolute; inset: 0 0 45% 0;
  background: linear-gradient(180deg, #2a1e18 0%, #1a1210 70%);
}
.scn-dismissal-desperation .bg-floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 45%;
  background: linear-gradient(180deg, #1a1210 0%, #0f0a08 100%);
}
.scn-dismissal-desperation .door {
  position: absolute; bottom: 30%; left: 10%; width: 30px; height: 70px;
  background: linear-gradient(180deg, #4a3a2a 0%, #3a2a1a 100%);
  border-radius: 4% 4% 0 0;
  box-shadow: inset 0 0 10px rgba(0,0,0,.5), 0 4px 8px rgba(0,0,0,.4);
  animation: did-door 8s ease-in-out infinite alternate;
}
@keyframes did-door {
  0% { transform: translateX(0) scaleX(1); }
  50% { transform: translateX(-2px) scaleX(0.98); }
  100% { transform: translateX(0) scaleX(1); }
}
.scn-dismissal-desperation .messenger {
  position: absolute; bottom: 28%; left: 12%; width: 20px; height: 45px;
  background: linear-gradient(180deg, #1a1210 0%, #0a0807 100%);
  border-radius: 50% 50% 30% 30% / 70% 70% 30% 30%;
  animation: did-move 12s linear infinite;
}
@keyframes did-move {
  0% { transform: translateX(0) translateY(0); }
  20% { transform: translateX(20px) translateY(-2px); }
  40% { transform: translateX(40px) translateY(0); }
  60% { transform: translateX(60px) translateY(-2px); }
  80% { transform: translateX(80px) translateY(0); }
  100% { transform: translateX(100px) translateY(-2px); opacity: 0; }
}
.scn-dismissal-desperation .figure-nora {
  position: absolute; bottom: 28%; left: 45%; width: 22px; height: 60px;
  background: linear-gradient(180deg, #1a1210 0%, #0a0807 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: did-des 4s ease-in-out infinite;
}
@keyframes did-des {
  0% { transform: translateX(0) translateY(0) rotate(0deg); }
  20% { transform: translateX(-8px) translateY(-5px) rotate(-5deg); }
  40% { transform: translateX(8px) translateY(-3px) rotate(5deg); }
  60% { transform: translateX(-5px) translateY(-6px) rotate(-4deg); }
  80% { transform: translateX(5px) translateY(-2px) rotate(4deg); }
  100% { transform: translateX(0) translateY(0) rotate(0deg); }
}
.scn-dismissal-desperation .letter-falling {
  position: absolute; bottom: 35%; left: 25%; width: 10px; height: 14px;
  background: linear-gradient(180deg, #d4c4a0 0%, #b8a88a 100%);
  border: 1px solid #8a7a6a;
  animation: did-fall 6s ease-in-out infinite alternate;
}
@keyframes did-fall {
  0% { transform: translateY(0) rotate(10deg); opacity: 0.8; }
  50% { transform: translateY(30px) rotate(-5deg); opacity: 0.5; }
  100% { transform: translateY(60px) rotate(-20deg); opacity: 0; }
}
.scn-dismissal-desperation .shadow-agony {
  position: absolute; bottom: 25%; left: 45%; width: 40px; height: 20px;
  background: radial-gradient(ellipse, rgba(0,0,0,.6) 0%, transparent 100%);
  animation: did-shad 4s ease-in-out infinite;
}
@keyframes did-shad {
  0% { transform: scaleX(1) translateX(0); }
  50% { transform: scaleX(1.3) translateX(10px); }
  100% { transform: scaleX(1) translateX(0); }
}

/* ranks-death-plan */
.scn-ranks-death-plan {
  background: linear-gradient(180deg, #1a1818 0%, #121010 60%, #080606 100%),
    radial-gradient(ellipse at 50% 50%, #2a2222 0%, transparent 80%);
}
.scn-ranks-death-plan .bg-wall {
  position: absolute; inset: 0 0 50% 0;
  background: linear-gradient(180deg, #222020 0%, #181616 70%);
}
.scn-ranks-death-plan .bg-floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 50%;
  background: linear-gradient(180deg, #181616 0%, #0f0d0d 100%);
}
.scn-ranks-death-plan .table {
  position: absolute; bottom: 30%; left: 20%; right: 20%; height: 15px;
  background: linear-gradient(180deg, #3a3230 0%, #2a2220 100%);
  border-radius: 2% 2% 0 0;
  box-shadow: 0 2px 6px rgba(0,0,0,.6);
}
.scn-ranks-death-plan .bottle {
  position: absolute; bottom: 34%; left: 35%; width: 16px; height: 30px;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 30% 30% 20% 20%;
  box-shadow: 0 2px 6px rgba(0,0,0,.4);
  animation: rdp-tilt 8s ease-in-out infinite alternate;
}
@keyframes rdp-tilt {
  0% { transform: rotate(-3deg); }
  50% { transform: rotate(3deg); }
  100% { transform: rotate(-2deg); }
}
.scn-ranks-death-plan .glass {
  position: absolute; bottom: 33%; left: 50%; width: 10px; height: 14px;
  background: linear-gradient(180deg, rgba(180,160,140,.4) 0%, rgba(120,100,80,.2) 100%);
  border: 1px solid rgba(100,80,60,.3);
  border-radius: 0 0 10% 10%;
  animation: rdp-glass 5s ease-in-out infinite alternate;
}
@keyframes rdp-glass {
  0% { transform: scaleY(1); }
  50% { transform: scaleY(0.9); }
  100% { transform: scaleY(1); }
}
.scn-ranks-death-plan .figure-rank {
  position: absolute; bottom: 22%; left: 40%; width: 30px; height: 50px;
  background: linear-gradient(180deg, #1a1210 0%, #0a0807 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: rdp-seat 7s ease-in-out infinite alternate;
}
@keyframes rdp-seat {
  0% { transform: translateY(0) rotate(0deg); }
  50% { transform: translateY(-3px) rotate(2deg); }
  100% { transform: translateY(0) rotate(-1deg); }
}
.scn-ranks-death-plan .clock {
  position: absolute; bottom: 40%; left: 60%; width: 24px; height: 24px;
  background: radial-gradient(circle, #8a7a6a 0%, #5a4a3a 100%);
  border-radius: 50%;
  box-shadow: 0 0 8px rgba(0,0,0,.5);
  animation: rdp-clock 6s ease-in-out infinite alternate;
}
@keyframes rdp-clock {
  0% { transform: scale(1); }
  50% { transform: scale(1.05); }
  100% { transform: scale(0.95); }
}
.scn-ranks-death-plan .black-cross {
  position: absolute; bottom: 45%; left: 30%; width: 14px; height: 14px;
  background: linear-gradient(45deg, transparent 40%, #0a0807 40%, #0a0807 60%, transparent 60%),
    linear-gradient(-45deg, transparent 40%, #0a0807 40%, #0a0807 60%, transparent 60%);
  opacity: 0.6;
  animation: rdp-cross 10s ease-in-out infinite alternate;
}
@keyframes rdp-cross {
  0% { opacity: 0.4; transform: scale(1); }
  50% { opacity: 0.7; transform: scale(1.1); }
  100% { opacity: 0.4; transform: scale(1); }
}

.scn-christmas-tree-decorating {
  background:
    linear-gradient(180deg, #1a1a2e 0%, #2a2a3e 40%, #1a1a2e 100%),
    radial-gradient(ellipse at 50% 80%, #3a3a4e 0%, transparent 70%);
}
.scn-christmas-tree-decorating .bg {
  position:absolute; inset:0; background: radial-gradient(circle at 50% 30%, #2a2a3e 0%, #0a0a1a 100%);
  animation: ct-bg 6s ease-in-out infinite alternate;
}
.scn-christmas-tree-decorating .wall {
  position:absolute; bottom:0; left:0; right:0; height:60%;
  background: linear-gradient(0deg, #1a1a2e 0%, #2a2a3e 100%);
  box-shadow: inset 0 4px 12px rgba(0,0,0,0.6);
}
.scn-christmas-tree-decorating .tree {
  position:absolute; bottom:10%; left:50%; width:80px; height:120px;
  transform:translateX(-50%);
  background: linear-gradient(180deg, #3a5a3a 0%, #2a4a2a 60%, #1a3a1a 100%);
  clip-path: polygon(50% 0%, 95% 30%, 85% 50%, 100% 70%, 80% 90%, 20% 90%, 0% 70%, 15% 50%, 5% 30%);
  animation: ct-tree 8s ease-in-out infinite;
}
.scn-christmas-tree-decorating .star {
  position:absolute; bottom:70%; left:50%; width:16px; height:16px;
  transform:translateX(-50%) rotate(45deg);
  background: radial-gradient(circle, #f0e060 0%, #d0b040 70%);
  border-radius:2px;
  box-shadow: 0 0 20px 8px rgba(240,224,96,0.5);
  animation: ct-star 4s ease-in-out infinite alternate;
}
.scn-christmas-tree-decorating .ornament {
  position:absolute; width:10px; height:14px; border-radius:50% 50% 40% 40%;
  animation: ct-ornament 5s ease-in-out infinite;
}
.scn-christmas-tree-decorating .ornament.a {
  bottom:48%; left:45%; background: #b87878;
  box-shadow: 0 0 6px 2px rgba(184,120,120,0.4);
}
.scn-christmas-tree-decorating .ornament.b {
  bottom:36%; left:55%; background: #a0461a;
  box-shadow: 0 0 6px 2px rgba(160,70,26,0.3);
  animation-delay: -2.5s;
}
.scn-christmas-tree-decorating .nora {
  position:absolute; bottom:6%; left:35%; width:22px; height:42px;
  background: linear-gradient(180deg, #4a3a2e 0%, #2a1a12 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: ct-walk 6s ease-in-out infinite;
}
.scn-christmas-tree-decorating .fireplace {
  position:absolute; bottom:0; left:10%; width:50px; height:30px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0a00 100%);
  border-radius: 10% 10% 0 0;
  box-shadow: inset 0 4px 8px rgba(0,0,0,0.5);
}
.scn-christmas-tree-decorating .candle {
  position:absolute; bottom:18%; left:16%; width:4px; height:16px;
  background: linear-gradient(0deg, #5e1a1d 0%, #a0461a 50%, #c8553d 100%);
  border-radius: 2px 2px 0 0;
  box-shadow: 0 0 12px 4px rgba(200,85,61,0.6);
  animation: ct-candle 3s ease-in-out infinite alternate;
}
@keyframes ct-bg { 0% { opacity:0.85; } 50% { opacity:1; } 100% { opacity:0.8; } }
@keyframes ct-tree { 0%,100% { transform:translateX(-50%) scale(1); } 50% { transform:translateX(-50%) scale(0.98); } }
@keyframes ct-star { 0% { transform:translateX(-50%) rotate(45deg) scale(1); } 100% { transform:translateX(-50%) rotate(60deg) scale(1.1); } }
@keyframes ct-ornament { 0%,100% { transform:translateY(0); } 50% { transform:translateY(-2px); } }
@keyframes ct-walk { 0% { transform:translateX(0) translateY(0) rotate(-2deg); } 25% { transform:translateX(4px) translateY(-1px) rotate(0deg); } 50% { transform:translateX(8px) translateY(0) rotate(2deg); } 75% { transform:translateX(12px) translateY(-1px) rotate(0deg); } 100% { transform:translateX(16px) translateY(0) rotate(-2deg); } }
@keyframes ct-candle { 0% { transform:scaleY(1); opacity:0.8; box-shadow: 0 0 8px 2px rgba(200,85,61,0.4); } 100% { transform:scaleY(1.1); opacity:1; box-shadow: 0 0 20px 8px rgba(200,85,61,0.7); } }

.scn-item-christmas-tree {
  background:
    linear-gradient(180deg, #1a1a2e 0%, #2a2a3e 50%, #1a1a2e 100%),
    radial-gradient(ellipse at 50% 50%, #2a2a3e 0%, transparent 80%);
}
.scn-item-christmas-tree .bg {
  position:absolute; inset:0; background: radial-gradient(circle at 50% 30%, #1a1a2e 0%, #0a0a1a 100%);
  animation: it-bg 10s ease-in-out infinite alternate;
}
.scn-item-christmas-tree .tree {
  position:absolute; bottom:5%; left:50%; width:100px; height:150px;
  transform:translateX(-50%);
  background: linear-gradient(180deg, #2a4a2a 0%, #1a3a1a 60%, #0a2a0a 100%);
  clip-path: polygon(50% 0%, 95% 30%, 85% 50%, 100% 70%, 80% 90%, 20% 90%, 0% 70%, 15% 50%, 5% 30%);
  box-shadow: 0 8px 20px rgba(0,0,0,0.8);
  animation: it-tree 12s ease-in-out infinite;
}
.scn-item-christmas-tree .shadow {
  position:absolute; bottom:5%; left:50%; width:120px; height:20px;
  transform:translateX(-50%);
  background: radial-gradient(ellipse, rgba(0,0,0,0.5) 0%, transparent 80%);
  animation: it-shadow 12s ease-in-out infinite;
}
.scn-item-christmas-tree .ornament {
  position:absolute; width:12px; height:16px; border-radius:50% 50% 40% 40%;
  animation: it-ornament 5s ease-in-out infinite;
}
.scn-item-christmas-tree .ornament.one {
  bottom:60%; left:42%; background: #702243;
  box-shadow: 0 0 8px 3px rgba(112,34,67,0.5);
}
.scn-item-christmas-tree .ornament.two {
  bottom:45%; left:55%; background: #a0461a;
  box-shadow: 0 0 8px 3px rgba(160,70,26,0.4);
  animation-delay: -2.5s;
}
.scn-item-christmas-tree .trunk {
  position:absolute; bottom:5%; left:50%; width:16px; height:30px;
  transform:translateX(-50%);
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0a00 100%);
  border-radius: 2px;
}
.scn-item-christmas-tree .garland {
  position:absolute; bottom:70%; left:38%; width:50px; height:4px;
  background: repeating-linear-gradient(90deg, #8a5a3a 0px, #8a5a3a 4px, #2a5a2a 4px, #2a5a2a 8px);
  border-radius: 2px;
  animation: it-garland 8s linear infinite;
}
.scn-item-christmas-tree .stand {
  position:absolute; bottom:0; left:50%; width:40px; height:10px;
  transform:translateX(-50%);
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 4px;
}
@keyframes it-bg { 0% { opacity:0.9; } 50% { opacity:0.75; } 100% { opacity:0.85; } }
@keyframes it-tree { 0%,100% { transform:translateX(-50%) scale(1); } 50% { transform:translateX(-50%) scale(0.97); } }
@keyframes it-shadow { 0%,100% { transform:translateX(-50%) scaleX(1); opacity:0.6; } 50% { transform:translateX(-50%) scaleX(0.95); opacity:0.4; } }
@keyframes it-ornament { 0% { transform:translateY(0) rotate(0deg); } 50% { transform:translateY(-3px) rotate(10deg); } 100% { transform:translateY(0) rotate(0deg); } }
@keyframes it-garland { 0% { transform:translateX(0); } 100% { transform:translateX(-20px); } }

.scn-act-two-tree {
  background:
    linear-gradient(180deg, #0e0e1a 0%, #1a1a2e 50%, #0e0e1a 100%),
    radial-gradient(ellipse at 50% 60%, #1a1a2e 0%, transparent 70%);
}
.scn-act-two-tree .bg {
  position:absolute; inset:0; background: radial-gradient(circle at 50% 20%, #1a1a2e 0%, #000 100%);
  animation: at-bg 8s ease-in-out infinite alternate;
}
.scn-act-two-tree .wall {
  position:absolute; bottom:0; left:0; right:0; height:50%;
  background: linear-gradient(0deg, #0a0a14 0%, #1a1a2e 100%);
  box-shadow: inset 0 4px 12px rgba(0,0,0,0.7);
}
.scn-act-two-tree .tree-bare {
  position:absolute; bottom:10%; left:50%; width:60px; height:90px;
  transform:translateX(-50%);
  background: linear-gradient(180deg, #2a2a1a 0%, #1a1a0a 100%);
  clip-path: polygon(50% 0%, 90% 20%, 80% 40%, 95% 50%, 75% 70%, 90% 80%, 60% 90%, 40% 90%, 10% 80%, 25% 70%, 5% 50%, 20% 40%, 10% 20%);
  opacity:0.6;
  animation: at-tree 15s ease-in-out infinite;
}
.scn-act-two-tree .needles {
  position:absolute; bottom:8%; left:45%; width:40px; height:6px;
  background: #3a3a2a;
  border-radius: 50%;
  filter: blur(2px);
  opacity:0.3;
  animation: at-needles 20s linear infinite;
}
.scn-act-two-tree .nora {
  position:absolute; bottom:6%; left:30%; width:20px; height:38px;
  background: linear-gradient(180deg, #2a2a3e 0%, #1a1a2e 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: at-walk 8s ease-in-out infinite;
}
.scn-act-two-tree .letterbox {
  position:absolute; bottom:30%; right:15%; width:30px; height:20px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0a00 100%);
  border-radius: 4px;
  box-shadow: inset 0 2px 4px rgba(0,0,0,0.5);
  animation: at-box 6s ease-in-out infinite alternate;
}
.scn-act-two-tree .shadow {
  position:absolute; bottom:0; left:20%; width:80px; height:15px;
  background: radial-gradient(ellipse, rgba(0,0,0,0.6) 0%, transparent 80%);
  animation: at-shadow 8s ease-in-out infinite;
}
@keyframes at-bg { 0% { opacity:0.7; } 50% { opacity:0.9; } 100% { opacity:0.75; } }
@keyframes at-tree { 0%,100% { transform:translateX(-50%) scale(1); } 50% { transform:translateX(-50%) scale(0.95); } }
@keyframes at-needles { 0% { transform:translateX(0); opacity:0.2; } 50% { transform:translateX(10px); opacity:0.4; } 100% { transform:translateX(0); opacity:0.2; } }
@keyframes at-walk { 0% { transform:translateX(0) rotate(-1deg); } 25% { transform:translateX(6px) rotate(1deg); } 50% { transform:translateX(12px) rotate(-1deg); } 75% { transform:translateX(6px) rotate(1deg); } 100% { transform:translateX(0) rotate(-1deg); } }
@keyframes at-box { 0% { transform:scaleY(1); } 100% { transform:scaleY(1.05); } }
@keyframes at-shadow { 0%,100% { transform:scaleX(1); opacity:0.5; } 50% { transform:scaleX(0.9); opacity:0.3; } }

.scn-tarantella-costume {
  background:
    linear-gradient(180deg, #2a2a3e 0%, #1a1a2e 60%, #2a2a3e 100%),
    radial-gradient(ellipse at 50% 80%, #3a3a4e 0%, transparent 70%);
}
.scn-tarantella-costume .bg {
  position:absolute; inset:0; background: radial-gradient(circle at 50% 40%, #1a1a2e 0%, #0a0a1a 100%);
  animation: tc-bg 12s ease-in-out infinite alternate;
}
.scn-tarantella-costume .dress-form {
  position:absolute; bottom:5%; left:50%; width:50px; height:100px;
  transform:translateX(-50%);
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 20% 20% 10% 10%;
  box-shadow: inset 0 4px 8px rgba(0,0,0,0.5);
  animation: tc-dress 10s ease-in-out infinite;
}
.scn-tarantella-costume .fabric {
  position:absolute; bottom:20%; left:42%; width:40px; height:30px;
  background: linear-gradient(135deg, #8a6a5a 0%, #6a4a3a 50%, #8a6a5a 100%);
  border-radius: 50% 50% 30% 30%;
  filter: blur(1px);
  animation: tc-fabric 6s ease-in-out infinite alternate;
}
.scn-tarantella-costume .basket {
  position:absolute; bottom:0; left:30%; width:30px; height:20px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 10% 10% 0 0;
  box-shadow: inset 0 2px 6px rgba(0,0,0,0.6);
}
.scn-tarantella-costume .hand {
  position:absolute; bottom:35%; left:40%; width:10px; height:16px;
  background: #4a3a2e;
  border-radius: 50% 50% 40% 40%;
  transform-origin: top center;
  animation: tc-hand 4s ease-in-out infinite alternate;
}
.scn-tarantella-costume .lamp {
  position:absolute; bottom:75%; left:20%; width:8px; height:18px;
  background: radial-gradient(circle, #e0c070 0%, #b08040 70%);
  border-radius: 2px;
  box-shadow: 0 0 16px 6px rgba(192,128,64,0.6);
  animation: tc-lamp 3s ease-in-out infinite alternate;
}
.scn-tarantella-costume .shadow {
  position:absolute; bottom:0; left:35%; width:80px; height:12px;
  background: radial-gradient(ellipse, rgba(0,0,0,0.5) 0%, transparent 80%);
  animation: tc-shadow 10s ease-in-out infinite;
}
@keyframes tc-bg { 0% { opacity:0.85; } 50% { opacity:1; } 100% { opacity:0.9; } }
@keyframes tc-dress { 0%,100% { transform:translateX(-50%) scale(1); } 50% { transform:translateX(-50%) scale(0.98); } }
@keyframes tc-fabric { 0% { transform:translateY(0) rotate(-2deg); } 50% { transform:translateY(-2px) rotate(2deg); } 100% { transform:translateY(0) rotate(-2deg); } }
@keyframes tc-hand { 0% { transform:translateY(0) rotate(0deg); } 100% { transform:translateY(-3px) rotate(10deg); } }
@keyframes tc-lamp { 0% { transform:scaleY(1); opacity:0.7; box-shadow: 0 0 12px 4px rgba(192,128,64,0.4); } 100% { transform:scaleY(1.1); opacity:1; box-shadow: 0 0 24px 10px rgba(192,128,64,0.8); } }
@keyframes tc-shadow { 0%,100% { transform:scaleX(1); opacity:0.4; } 50% { transform:scaleX(0.9); opacity:0.6; } }

/* Scene: item-krogstad-letter (kl) – dim interior, dark mood */
.scn-item-krogstad-letter {
  background:
    linear-gradient(180deg, #0e0e1c 0%, #1a1628 40%, #2a1f1f 100%),
    radial-gradient(ellipse at 40% 60%, #2a1f1f 0%, transparent 70%);
}
.scn-item-krogstad-letter .wall {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #1a1628 0%, #14101e 100%);
  animation: kl-wall 15s ease-in-out infinite alternate;
}
.scn-item-krogstad-letter .shadow {
  position: absolute; bottom: 20%; left: 10%; right: 10%; height: 50%;
  background: linear-gradient(180deg, transparent 0%, rgba(0,0,0,0.3) 60%, rgba(0,0,0,0.5) 100%);
  clip-path: polygon(0% 0%, 100% 0%, 90% 100%, 20% 100%);
  animation: kl-shad 12s ease-in-out infinite alternate;
}
.scn-item-krogstad-letter .desk {
  position: absolute; bottom: 12%; left: 20%; right: 20%; height: 18%;
  background: linear-gradient(180deg, #3a2e24 0%, #2a1f1a 100%);
  border-radius: 4% 4% 20% 20% / 10% 10% 30% 30%;
  box-shadow: inset 0 4px 12px rgba(0,0,0,0.6);
  animation: kl-desk 10s ease-in-out infinite alternate;
}
.scn-item-krogstad-letter .letter {
  position: absolute; bottom: 22%; left: 45%; width: 40px; height: 28px;
  background: linear-gradient(135deg, #c8b088 0%, #a08060 100%);
  border-radius: 2px;
  box-shadow: 2px 2px 6px rgba(0,0,0,0.4);
  transform-origin: left center;
  animation: kl-letter 18s ease-in-out infinite alternate;
}
.scn-item-krogstad-letter .hand-left {
  position: absolute; bottom: 28%; left: 48%; width: 12px; height: 30px;
  background: linear-gradient(180deg, #4a3a2e 0%, #3a2a1e 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  transform: rotate(15deg);
  animation: kl-hand-l 4s ease-in-out infinite;
}
.scn-item-krogstad-letter .hand-right {
  position: absolute; bottom: 28%; left: 52%; width: 12px; height: 30px;
  background: linear-gradient(180deg, #4a3a2e 0%, #3a2a1e 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  transform: rotate(-15deg);
  animation: kl-hand-r 4s ease-in-out infinite;
}
.scn-item-krogstad-letter .candle {
  position: absolute; bottom: 30%; left: 25%; width: 8px; height: 20px;
  background: linear-gradient(180deg, #c8a060 0%, #a08040 100%);
  border-radius: 4px 4px 2px 2px;
  box-shadow: 0 0 24px 8px rgba(200,160,96,0.4);
  animation: kl-candle 3s ease-in-out infinite alternate;
}
.scn-item-krogstad-letter .figure {
  position: absolute; bottom: 22%; left: 30%; width: 30px; height: 60px;
  background: linear-gradient(180deg, #1a1612 0%, #0e0a08 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: kl-fig 5s ease-in-out infinite alternate;
}

@keyframes kl-wall { 0% { opacity: 0.9 } 50% { opacity: 1 } 100% { opacity: 0.8 } }
@keyframes kl-shad { 0% { transform: translateX(0) scaleY(1) } 50% { transform: translateX(5px) scaleY(1.05) } 100% { transform: translateX(-5px) scaleY(0.95) } }
@keyframes kl-desk { 0% { transform: translateY(0) } 50% { transform: translateY(-2px) } 100% { transform: translateY(1px) } }
@keyframes kl-letter { 0% { transform: scaleX(1) rotate(0deg) } 50% { transform: scaleX(1.1) rotate(2deg) } 100% { transform: scaleX(0.9) rotate(-2deg) } }
@keyframes kl-hand-l { 0% { transform: rotate(15deg) translateY(0) } 25% { transform: rotate(20deg) translateY(-3px) } 50% { transform: rotate(12deg) translateY(0) } 75% { transform: rotate(18deg) translateY(-2px) } 100% { transform: rotate(15deg) translateY(0) } }
@keyframes kl-hand-r { 0% { transform: rotate(-15deg) translateY(0) } 25% { transform: rotate(-20deg) translateY(-3px) } 50% { transform: rotate(-12deg) translateY(0) } 75% { transform: rotate(-18deg) translateY(-2px) } 100% { transform: rotate(-15deg) translateY(0) } }
@keyframes kl-candle { 0% { box-shadow: 0 0 24px 8px rgba(200,160,96,0.4); height: 20px; } 50% { box-shadow: 0 0 36px 12px rgba(200,160,96,0.6); height: 22px; } 100% { box-shadow: 0 0 20px 6px rgba(200,160,96,0.3); height: 18px; } }
@keyframes kl-fig { 0% { transform: translateX(0) scale(1) } 50% { transform: translateX(-4px) scale(1.02) } 100% { transform: translateX(4px) scale(0.98) } }

/* Scene: confess-to-linde (cl) – tense, dim interior, two figures */
.scn-confess-to-linde {
  background:
    linear-gradient(180deg, #0c0e1a 0%, #14142a 50%, #1e1a2e 100%),
    radial-gradient(ellipse at 60% 50%, #2a223a 0%, transparent 70%);
}
.scn-confess-to-linde .wall {
  position: absolute; inset: 0 0 35% 0;
  background: linear-gradient(90deg, #14142a 0%, #1a1832 50%, #14142a 100%);
  animation: cl-wall 20s ease-in-out infinite alternate;
}
.scn-confess-to-linde .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 35%;
  background: linear-gradient(180deg, #1a1624 0%, #0e0c1a 100%);
  border-radius: 60% 40% 0 0 / 30% 20% 0 0;
  box-shadow: inset 0 8px 20px rgba(0,0,0,0.5);
  animation: cl-floor 14s ease-in-out infinite alternate;
}
.scn-confess-to-linde .figure-a {
  position: absolute; bottom: 22%; left: 35%; width: 28px; height: 60px;
  background: linear-gradient(180deg, #1e1a2a 0%, #0e0c1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: cl-fig-a 6s ease-in-out infinite alternate;
}
.scn-confess-to-linde .figure-b {
  position: absolute; bottom: 22%; left: 52%; width: 30px; height: 62px;
  background: linear-gradient(180deg, #2a222e 0%, #1a1420 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: cl-fig-b 6s ease-in-out infinite alternate;
}
.scn-confess-to-linde .whisper {
  position: absolute; bottom: 48%; left: 45%; width: 16px; height: 10px;
  background: radial-gradient(ellipse at 50% 50%, rgba(160,140,180,0.2) 0%, transparent 100%);
  filter: blur(2px);
  animation: cl-whisper 3s ease-in-out infinite;
}
.scn-confess-to-linde .shadow-b {
  position: absolute; bottom: 0; left: 45%; right: 0; height: 22%;
  background: linear-gradient(90deg, transparent 0%, rgba(0,0,0,0.4) 50%, transparent 100%);
  clip-path: polygon(0% 0%, 100% 0%, 100% 100%, 40% 100%);
  animation: cl-shad 18s ease-in-out infinite alternate;
}
.scn-confess-to-linde .lamp {
  position: absolute; bottom: 55%; left: 80%; width: 10px; height: 24px;
  background: linear-gradient(180deg, #e0c060 0%, #c0a040 100%);
  border-radius: 4px 4px 8px 8px;
  box-shadow: 0 0 30px 10px rgba(192,160,64,0.3), 0 0 60px 20px rgba(192,160,64,0.1);
  animation: cl-lamp 4s ease-in-out infinite alternate;
}

@keyframes cl-wall { 0% { opacity: 0.85 } 50% { opacity: 1 } 100% { opacity: 0.7 } }
@keyframes cl-floor { 0% { transform: translateY(0) } 50% { transform: translateY(-2px) } 100% { transform: translateY(1px) } }
@keyframes cl-fig-a { 0% { transform: translateX(0) rotate(0deg) } 50% { transform: translateX(-2px) rotate(3deg) } 100% { transform: translateX(2px) rotate(-2deg) } }
@keyframes cl-fig-b { 0% { transform: translateX(0) rotate(0deg) } 50% { transform: translateX(2px) rotate(-3deg) } 100% { transform: translateX(-2px) rotate(2deg) } }
@keyframes cl-whisper { 0% { opacity: 0.2; transform: scale(0.9) } 50% { opacity: 0.6; transform: scale(1.2) } 100% { opacity: 0.1; transform: scale(0.8) } }
@keyframes cl-shad { 0% { transform: scaleX(1) } 50% { transform: scaleX(1.1) translateX(-5%) } 100% { transform: scaleX(0.9) translateX(5%) } }
@keyframes cl-lamp { 0% { box-shadow: 0 0 30px 10px rgba(192,160,64,0.3) } 50% { box-shadow: 0 0 40px 15px rgba(192,160,64,0.5) } 100% { box-shadow: 0 0 20px 8px rgba(192,160,64,0.2) } }

/* Scene: tarantella-distraction (td) – tense, dim interior, dance practice */
.scn-tarantella-distraction {
  background:
    linear-gradient(180deg, #0c0a12 0%, #1a1422 40%, #241a2a 100%),
    radial-gradient(ellipse at 30% 60%, #2a1e2e 0%, transparent 70%);
}
.scn-tarantella-distraction .bg-wall {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #1a1422 0%, #120e1a 100%);
  animation: td-wall 16s ease-in-out infinite alternate;
}
.scn-tarantella-distraction .floor-dark {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #1e1a26 0%, #0e0c16 100%);
  border-radius: 50% 50% 0 0 / 20% 20% 0 0;
  box-shadow: inset 0 6px 14px rgba(0,0,0,0.6);
  animation: td-floor 12s ease-in-out infinite alternate;
}
.scn-tarantella-distraction .piano {
  position: absolute; bottom: 12%; left: 10%; width: 60px; height: 40px;
  background: linear-gradient(180deg, #1a161e 0%, #0e0c12 100%);
  border-radius: 10% 10% 20% 20% / 5% 5% 20% 20%;
  box-shadow: inset 0 -4px 0 #2a222e, 0 4px 8px rgba(0,0,0,0.5);
  transform: rotate(5deg);
  animation: td-piano 8s ease-in-out infinite alternate;
}
.scn-tarantella-distraction .pianist {
  position: absolute; bottom: 18%; left: 18%; width: 20px; height: 40px;
  background: linear-gradient(180deg, #1e1a2a 0%, #100e1a 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  transform-origin: bottom center;
  animation: td-pianist 5s ease-in-out infinite alternate;
}
.scn-tarantella-distraction .dancer {
  position: absolute; bottom: 20%; left: 55%; width: 24px; height: 55px;
  background: linear-gradient(180deg, #3a2a3e 0%, #1a1a2a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: td-dancer 2s ease-in-out infinite alternate;
}
.scn-tarantella-distraction .tilted-skirt {
  position: absolute; bottom: 12%; left: 52%; width: 40px; height: 25px;
  background: radial-gradient(ellipse at 50% 100%, #2a1a2e 0%, transparent 100%);
  clip-path: polygon(0% 0%, 100% 0%, 80% 100%, 20% 100%);
  animation: td-skirt 2s ease-in-out infinite alternate;
}
.scn-tarantella-distraction .music-stand {
  position: absolute; bottom: 15%; left: 14%; width: 14px; height: 8px;
  background: #2a222e;
  border-radius: 2px;
  box-shadow: 0 0 6px rgba(0,0,0,0.3);
  animation: td-stand 20s ease-in-out infinite alternate;
}

@keyframes td-wall { 0% { opacity: 0.9 } 50% { opacity: 1 } 100% { opacity: 0.8 } }
@keyframes td-floor { 0% { transform: translateY(0) } 50% { transform: translateY(-2px) } 100% { transform: translateY(1px) } }
@keyframes td-piano { 0% { transform: rotate(5deg) translateY(0) } 50% { transform: rotate(6deg) translateY(-1px) } 100% { transform: rotate(4deg) translateY(1px) } }
@keyframes td-pianist { 0% { transform: translateY(0) rotate(0deg) } 50% { transform: translateY(-2px) rotate(5deg) } 100% { transform: translateY(1px) rotate(-3deg) } }
@keyframes td-dancer { 0% { transform: translateY(0) rotate(-8deg) scale(1) } 50% { transform: translateY(-6px) rotate(10deg) scale(1.05) } 100% { transform: translateY(0) rotate(-6deg) scale(1) } }
@keyframes td-skirt { 0% { clip-path: polygon(0% 0%, 100% 0%, 80% 100%, 20% 100%) } 50% { clip-path: polygon(0% 0%, 100% 0%, 90% 100%, 10% 100%) } 100% { clip-path: polygon(0% 0%, 100% 0%, 70% 100%, 30% 100%) } }
@keyframes td-stand { 0% { opacity: 0.6 } 50% { opacity: 1 } 100% { opacity: 0.4 } }

/* Scene: wild-dance (wd) – tense, dim interior, violent dance */
.scn-wild-dance {
  background:
    linear-gradient(180deg, #0e0c14 0%, #1a1622 40%, #261e2c 100%),
    radial-gradient(ellipse at 50% 80%, #2e2234 0%, transparent 70%);
}
.scn-wild-dance .bg-deep {
  position: absolute; inset: 0 0 25% 0;
  background: linear-gradient(180deg, #1a1622 0%, #0e0c14 100%);
  animation: wd-bg 20s ease-in-out infinite alternate;
}
.scn-wild-dance .floor-wild {
  position: absolute; bottom: 0; left: 0; right: 0; height: 25%;
  background: linear-gradient(180deg, #1e1a2a 0%, #100e1a 100%);
  border-radius: 70% 30% 0 0 / 40% 20% 0 0;
  box-shadow: inset 0 10px 20px rgba(0,0,0,0.7);
  animation: wd-floor 10s ease-in-out infinite alternate;
}
.scn-wild-dance .dancer-wild {
  position: absolute; bottom: 10%; left: 45%; width: 30px; height: 60px;
  background: linear-gradient(180deg, #4a2a3e 0%, #1a0e1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: wd-dancer 2s ease-in-out infinite alternate;
}
.scn-wild-dance .hair-spread {
  position: absolute; bottom: 44%; left: 40%; width: 40px; height: 30px;
  background: radial-gradient(ellipse at 50% 100%, #1a0e1a 0%, transparent 100%);
  clip-path: polygon(0% 0%, 100% 0%, 70% 100%, 30% 100%);
  animation: wd-hair 3s ease-in-out infinite alternate;
}
.scn-wild-dance .observer-left {
  position: absolute; bottom: 18%; left: 12%; width: 20px; height: 50px;
  background: linear-gradient(180deg, #1e1a26 0%, #0e0c14 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  transform-origin: bottom center;
  animation: wd-obs-l 6s ease-in-out infinite alternate;
}
.scn-wild-dance .observer-right {
  position: absolute; bottom: 18%; right: 15%; width: 22px; height: 52px;
  background: linear-gradient(180deg, #2a1e2e 0%, #120e1a 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  transform-origin: bottom center;
  animation: wd-obs-r 6s ease-in-out infinite alternate;
}
.scn-wild-dance .candle-flare {
  position: absolute; top: 20%; left: 50%; width: 6px; height: 18px;
  background: linear-gradient(180deg, #e0b060 0%, #c09040 100%);
  border-radius: 2px;
  box-shadow: 0 0 30px 12px rgba(224,176,96,0.4), 0 0 60px 20px rgba(224,176,96,0.1);
  animation: wd-flare 2s ease-in-out infinite alternate;
}

@keyframes wd-bg { 0% { opacity: 0.8 } 50% { opacity: 1 } 100% { opacity: 0.7 } }
@keyframes wd-floor { 0% { transform: translateY(0) } 50% { transform: translateY(-3px) } 100% { transform: translateY(2px) } }
@keyframes wd-dancer { 0% { transform: rotate(-15deg) translateY(0) scale(1) } 25% { transform: rotate(20deg) translateY(-6px) scale(1.08) } 50% { transform: rotate(-10deg) translateY(0) scale(0.95) } 75% { transform: rotate(25deg) translateY(-8px) scale(1.1) } 100% { transform: rotate(-15deg) translateY(0) scale(1) } }
@keyframes wd-hair { 0% { clip-path: polygon(0% 0%, 100% 0%, 70% 100%, 30% 100%); transform: rotate(0deg) } 50% { clip-path: polygon(0% 0%, 100% 0%, 80% 100%, 20% 100%); transform: rotate(15deg) } 100% { clip-path: polygon(0% 0%, 100% 0%, 60% 100%, 40% 100%); transform: rotate(-10deg) } }
@keyframes wd-obs-l { 0% { transform: translateY(0) rotate(0deg) } 50% { transform: translateY(-2px) rotate(5deg) } 100% { transform: translateY(1px) rotate(-3deg) } }
@keyframes wd-obs-r { 0% { transform: translateY(0) rotate(0deg) } 50% { transform: translateY(-3px) rotate(-5deg) } 100% { transform: translateY(1px) rotate(3deg) } }
@keyframes wd-flare { 0% { box-shadow: 0 0 30px 12px rgba(224,176,96,0.4) } 50% { box-shadow: 0 0 50px 18px rgba(224,176,96,0.6) } 100% { box-shadow: 0 0 20px 8px rgba(224,176,96,0.2) } }

.scn-waiting-for-krogstad {
  background:
    radial-gradient(ellipse at 30% 60%, #3a2a1a 0%, transparent 60%),
    linear-gradient(180deg, #1a1a2e 0%, #2a203a 50%, #1e1218 100%);
}
.scn-waiting-for-krogstad .bg-room {
  position: absolute; inset: 0; 
  background: linear-gradient(135deg, #2a2030 0%, #1a1218 70%, #0e0a0e 100%);
  animation: wfk-bgroom 12s ease-in-out infinite alternate;
}
.scn-waiting-for-krogstad .window-night {
  position: absolute; top: 10%; left: 5%; width: 30%; height: 45%;
  background: radial-gradient(ellipse at 30% 40%, #2a3a4a 0%, #0a1220 100%);
  border-radius: 4% / 6%; box-shadow: inset 0 0 20px #0a0a0a;
  animation: wfk-window 8s ease-in-out infinite alternate;
}
.scn-waiting-for-krogstad .lamp-glow {
  position: absolute; bottom: 35%; right: 20%; width: 20px; height: 30px;
  background: radial-gradient(circle at 50% 30%, #ffe080 0%, #c07030 70%);
  border-radius: 40% 40% 20% 20%; box-shadow: 0 0 40px #d09040, 0 0 80px 15px rgba(192, 128, 60, 0.5);
  animation: wfk-lamp 3s ease-in-out infinite alternate;
}
.scn-waiting-for-krogstad .figure-waiting {
  position: absolute; bottom: 20%; left: 35%; width: 22px; height: 50px;
  background: linear-gradient(180deg, #1a1a2a 0%, #0e0e1a 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%;
  transform-origin: bottom center;
  animation: wfk-fig 5s ease-in-out infinite;
}
.scn-waiting-for-krogstad .pendulum-clock {
  position: absolute; top: 15%; left: 45%; width: 30px; height: 50px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1e1410 100%);
  border-radius: 10% 10% 20% 20%;
  box-shadow: 0 4px 8px #00000055;
}
.scn-waiting-for-krogstad .pendulum-clock::after {
  content: ''; position: absolute; top: 10px; left: 50%; width: 2px; height: 40px;
  background: #5a4a30; transform: translateX(-50%);
  transform-origin: top center;
  animation: wfk-pend 1.5s ease-in-out infinite;
}
.scn-waiting-for-krogstad .door-shadow {
  position: absolute; bottom: 0; right: 10%; width: 20%; height: 90%;
  background: linear-gradient(90deg, transparent 0%, #0a0a0a 30%, #0a0a0a 70%, transparent 100%);
  border-radius: 10% 10% 0 0;
  animation: wfk-door 10s ease-in-out infinite alternate;
}
.scn-waiting-for-krogstad .table-rim {
  position: absolute; bottom: 18%; left: 50%; width: 80px; height: 10px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0e 100%);
  border-radius: 20% / 50%;
  transform: translateX(-50%);
  box-shadow: 0 4px 6px #00000044;
  animation: wfk-table 10s ease-in-out infinite;
}
@keyframes wfk-bgroom { 0% { opacity: .9; } 50% { opacity: 1; } 100% { opacity: .85; } }
@keyframes wfk-window { 0% { opacity: .7; box-shadow: inset 0 0 10px #0a0a0a; } 50% { opacity: 1; box-shadow: inset 0 0 25px #1a2a3a; } 100% { opacity: .75; } }
@keyframes wfk-lamp { 0% { box-shadow: 0 0 30px #d09040, 0 0 60px 10px rgba(192,128,60,.4); opacity: .9; } 50% { box-shadow: 0 0 50px #f0a050, 0 0 90px 15px rgba(240,160,80,.6); opacity: 1; } 100% { box-shadow: 0 0 35px #c08030, 0 0 70px 12px rgba(192,128,48,.45); opacity: .92; } }
@keyframes wfk-fig { 0% { transform: translateX(0) rotate(0deg); } 25% { transform: translateX(2px) rotate(2deg); } 50% { transform: translateX(-1px) rotate(-1deg); } 75% { transform: translateX(3px) rotate(1deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes wfk-pend { 0% { transform: rotate(-15deg); } 50% { transform: rotate(15deg); } 100% { transform: rotate(-15deg); } }
@keyframes wfk-door { 0% { opacity: .6; } 50% { opacity: .9; } 100% { opacity: .5; } }
@keyframes wfk-table { 0% { transform: translateX(-50%) scaleX(1); } 50% { transform: translateX(-50%) scaleX(1.02); } 100% { transform: translateX(-50%) scaleX(.98); } }

.scn-shipwrecked-accusation {
  background:
    radial-gradient(ellipse at 50% 30%, #3a2a3a 0%, transparent 70%),
    linear-gradient(180deg, #2a202a 0%, #1a121a 50%, #0e0a0e 100%);
}
.scn-shipwrecked-accusation .bg-office {
  position: absolute; inset: 0;
  background: linear-gradient(135deg, #2a2020 0%, #1a1218 60%, #141014 100%);
  animation: shi-bg 10s ease-in-out infinite alternate;
}
.scn-shipwrecked-accusation .window-storm {
  position: absolute; top: 8%; left: 5%; width: 40%; height: 50%;
  background: radial-gradient(ellipse at 40% 30%, #4a5a5a 0%, #1a2a2a 100%);
  border-radius: 6% / 8%; box-shadow: inset 0 0 20px #000a0a;
  animation: shi-storm-window 8s ease-in-out infinite alternate;
}
.scn-shipwrecked-accusation .accuser {
  position: absolute; bottom: 20%; left: 25%; width: 24px; height: 56px;
  background: linear-gradient(180deg, #2a1a1a 0%, #0e0a0a 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%;
  transform-origin: bottom center;
  animation: shi-accuse 4s ease-in-out infinite;
}
.scn-shipwrecked-accusation .defendant {
  position: absolute; bottom: 22%; right: 25%; width: 20px; height: 50px;
  background: linear-gradient(180deg, #2a1a1a 0%, #120e0e 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%;
  transform-origin: bottom center;
  animation: shi-defend 4s ease-in-out infinite alternate;
}
.scn-shipwrecked-accusation .desk-between {
  position: absolute; bottom: 15%; left: 50%; width: 100px; height: 16px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0e 100%);
  border-radius: 10% / 30%;
  transform: translateX(-50%);
  box-shadow: 0 6px 10px #00000044;
  animation: shi-desk 12s ease-in-out infinite;
}
.scn-shipwrecked-accusation .papers-scatter {
  position: absolute; bottom: 18%; left: 38%; width: 20px; height: 10px;
  background: #6a5a3a; border-radius: 5% / 20%;
  box-shadow: 8px 4px 0 #5a4a2a, -6px 2px 0 #4a3a1a, 12px -2px 0 #7a6a4a;
  animation: shi-papers 6s ease-in-out infinite;
}
.scn-shipwrecked-accusation .shadow-stripe {
  position: absolute; bottom: 0; left: 0; right: 0; height: 20%;
  background: linear-gradient(180deg, transparent 0%, #0a060a 80%);
  animation: shi-stripe 15s ease-in-out infinite alternate;
}
@keyframes shi-bg { 0% { opacity: .8; } 50% { opacity: 1; } 100% { opacity: .85; } }
@keyframes shi-storm-window { 0% { opacity: .6; box-shadow: inset 0 0 10px #000a0a; } 50% { opacity: 1; box-shadow: inset 0 0 30px #2a3a3a; } 100% { opacity: .7; } }
@keyframes shi-accuse { 0% { transform: translateX(0) rotate(0deg); } 25% { transform: translateX(2px) rotate(5deg); } 50% { transform: translateX(-1px) rotate(-3deg); } 75% { transform: translateX(4px) rotate(4deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes shi-defend { 0% { transform: translateX(0) rotate(0deg) scaleY(1); } 50% { transform: translateX(-3px) rotate(-2deg) scaleY(1.02); } 100% { transform: translateX(0) rotate(0deg) scaleY(1); } }
@keyframes shi-desk { 0% { transform: translateX(-50%) scaleX(1); } 50% { transform: translateX(-50%) scaleX(1.03); } 100% { transform: translateX(-50%) scaleX(.98); } }
@keyframes shi-papers { 0% { transform: rotate(0deg) translateY(0); } 33% { transform: rotate(5deg) translateY(-2px); } 66% { transform: rotate(-3deg) translateY(1px); } 100% { transform: rotate(0deg) translateY(0); } }
@keyframes shi-stripe { 0% { opacity: .4; } 50% { opacity: .8; } 100% { opacity: .5; } }

.scn-unite-forces {
  background:
    radial-gradient(ellipse at 50% 40%, #4a3a2a 0%, transparent 60%),
    linear-gradient(180deg, #3a2a1a 0%, #2a1a0e 50%, #1a120a 100%);
}
.scn-unite-forces .bg-warm {
  position: absolute; inset: 0;
  background: linear-gradient(135deg, #3a2a14 0%, #2a1a0a 60%, #1a1208 100%);
  animation: unf-bg 14s ease-in-out infinite alternate;
}
.scn-unite-forces .window-sunset {
  position: absolute; top: 5%; left: 10%; width: 50%; height: 55%;
  background: radial-gradient(ellipse at 40% 40%, #e0a060 0%, #b06030 40%, #4a2a18 100%);
  border-radius: 8% / 10%;
  box-shadow: inset 0 0 40px #2a1a0a;
  animation: unf-sunset 20s ease-in-out infinite alternate;
}
.scn-unite-forces .figure-left {
  position: absolute; bottom: 20%; left: 35%; width: 22px; height: 52px;
  background: linear-gradient(180deg, #2a1a10 0%, #0e0a06 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%;
  transform-origin: bottom center;
  animation: unf-fig-l 5s ease-in-out infinite;
}
.scn-unite-forces .figure-right {
  position: absolute; bottom: 20%; right: 35%; width: 22px; height: 52px;
  background: linear-gradient(180deg, #2a1a10 0%, #0e0a06 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%;
  transform-origin: bottom center;
  animation: unf-fig-r 5s ease-in-out infinite alternate;
}
.scn-unite-forces .glow-union {
  position: absolute; bottom: 25%; left: 50%; width: 30px; height: 30px;
  background: radial-gradient(circle, #d09050 0%, #a06030 60%);
  border-radius: 50%;
  box-shadow: 0 0 50px #c08040, 0 0 90px 20px rgba(192,128,64,.5);
  transform: translateX(-50%);
  animation: unf-glow 4s ease-in-out infinite alternate;
}
.scn-unite-forces .floor-light {
  position: absolute; bottom: 0; left: 20%; right: 20%; height: 15%;
  background: linear-gradient(180deg, #3a2a18 0%, #1a1208 100%);
  border-radius: 50% 50% 0 0 / 80% 80% 0 0;
  box-shadow: inset 0 8px 12px #00000055;
  animation: unf-floor 12s ease-in-out infinite;
}
@keyframes unf-bg { 0% { opacity: .9; } 50% { opacity: 1; } 100% { opacity: .85; } }
@keyframes unf-sunset { 0% { opacity: .8; } 50% { opacity: 1; } 100% { opacity: .75; } }
@keyframes unf-fig-l { 0% { transform: translateX(0) rotate(0deg); } 25% { transform: translateX(2px) rotate(3deg); } 50% { transform: translateX(-1px) rotate(-1deg); } 75% { transform: translateX(3px) rotate(2deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes unf-fig-r { 0% { transform: translateX(0) rotate(0deg) scaleX(1); } 50% { transform: translateX(-3px) rotate(-2deg) scaleX(1.02); } 100% { transform: translateX(0) rotate(0deg) scaleX(1); } }
@keyframes unf-glow { 0% { box-shadow: 0 0 40px #c08040, 0 0 80px 15px rgba(192,128,64,.4); opacity: .85; } 50% { box-shadow: 0 0 60px #e0a060, 0 0 100px 20px rgba(224,160,96,.6); opacity: 1; } 100% { box-shadow: 0 0 45px #c08040, 0 0 85px 18px rgba(192,128,64,.45); opacity: .9; } }
@keyframes unf-floor { 0% { opacity: .7; } 50% { opacity: 1; } 100% { opacity: .8; } }

.scn-letter-left {
  background:
    radial-gradient(ellipse at 40% 30%, #4a3a2a 0%, transparent 70%),
    linear-gradient(180deg, #3a2a1a 0%, #2a1a0e 50%, #1a1208 100%);
}
.scn-letter-left .bg-hall {
  position: absolute; inset: 0;
  background: linear-gradient(135deg, #2a1a0e 0%, #1a1208 60%, #0e0a06 100%);
  animation: ltl-bg 16s ease-in-out infinite alternate;
}
.scn-letter-left .door-plain {
  position: absolute; bottom: 0; left: 30%; width: 40%; height: 90%;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0e 100%);
  border-radius: 6% 6% 0 0;
  box-shadow: inset 0 0 20px #0a060a;
  animation: ltl-door 8s ease-in-out infinite;
}
.scn-letter-left .letter-box {
  position: absolute; bottom: 50%; left: 48%; width: 20px; height: 24px;
  background: linear-gradient(135deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 20% / 30%;
  box-shadow: 0 4px 8px #00000055;
  animation: ltl-box 5s ease-in-out infinite alternate;
}
.scn-letter-left .envelope-fold {
  position: absolute; bottom: 52%; left: 50%; width: 14px; height: 10px;
  background: linear-gradient(135deg, #b87858 0%, #8a5a3a 100%);
  border-radius: 10% 10% 20% 20%;
  transform: translateX(-50%);
  box-shadow: 0 2px 4px #00000044;
  animation: ltl-env 6s ease-in-out infinite;
}
.scn-letter-left .figure-stand {
  position: absolute; bottom: 18%; right: 20%; width: 20px; height: 48px;
  background: linear-gradient(180deg, #2a1a10 0%, #0e0a06 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%;
  transform-origin: bottom center;
  animation: ltl-fig 7s ease-in-out infinite alternate;
}
.scn-letter-left .floor-shadow {
  position: absolute; bottom: 0; left: 0; right: 0; height: 18%;
  background: linear-gradient(180deg, transparent 0%, #0a0606 70%);
  animation: ltl-shadow 12s ease-in-out infinite alternate;
}
@keyframes ltl-bg { 0% { opacity: .85; } 50% { opacity: 1; } 100% { opacity: .8; } }
@keyframes ltl-door { 0% { transform: scaleY(1); } 50% { transform: scaleY(1.005); } 100% { transform: scaleY(.995); } }
@keyframes ltl-box { 0% { transform: translateY(0); } 50% { transform: translateY(-2px); } 100% { transform: translateY(0); } }
@keyframes ltl-env { 0% { transform: translateX(-50%) rotate(0deg) scale(1); } 33% { transform: translateX(-50%) rotate(5deg) scale(1.05); } 66% { transform: translateX(-50%) rotate(-3deg) scale(.98); } 100% { transform: translateX(-50%) rotate(0deg) scale(1); } }
@keyframes ltl-fig { 0% { transform: translateX(0) rotate(0deg); } 25% { transform: translateX(2px) rotate(2deg); } 50% { transform: translateX(-1px) rotate(-1deg); } 75% { transform: translateX(3px) rotate(1deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes ltl-shadow { 0% { opacity: .6; } 50% { opacity: .9; } 100% { opacity: .7; } }

.scn-job-promise {
  background: linear-gradient(180deg, #1a1208 0%, #3a2815 40%, #5a3f20 100%), radial-gradient(ellipse at 50% 60%, #7a5f30 0%, transparent 70%);
}
.scn-job-promise .bg-scene { position:absolute; inset:0 0 45% 0; background: linear-gradient(180deg, #2a1f10 0%, #0e0a04 100%); }
.scn-job-promise .lamp { position:absolute; top:15%; left:45%; width:30px; height:30px; background: radial-gradient(circle, #ffd080 0%, #c08030 60%, transparent 100%); border-radius:50%; box-shadow: 0 0 40px 12px rgba(255,208,128,.6), 0 0 80px 24px rgba(200,100,40,.3); animation: jp-lamp 4s ease-in-out infinite alternate; }
.scn-job-promise .table { position:absolute; bottom:25%; left:30%; width:40%; height:12%; background: linear-gradient(180deg, #4a3020 0%, #2a1a10 100%); border-radius: 20% 20% 5% 5%; transform: perspective(300px) rotateX(5deg); }
.scn-job-promise .chair-left { position:absolute; bottom:28%; left:28%; width:12%; height:40%; background: linear-gradient(180deg, #3a2215 0%, #1a1008 100%); border-radius: 30% 30% 10% 10% / 60% 60% 20% 20%; transform: rotate(5deg); }
.scn-job-promise .chair-right { position:absolute; bottom:28%; right:28%; width:12%; height:40%; background: linear-gradient(180deg, #3a2215 0%, #1a1008 100%); border-radius: 30% 30% 10% 10% / 60% 60% 20% 20%; transform: rotate(-5deg); }
.scn-job-promise .figure-nora { position:absolute; bottom:18%; left:45%; width:8%; height:30%; background: linear-gradient(180deg, #5a4030 0%, #2a1a10 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: jp-sway 3s ease-in-out infinite alternate; }
.scn-job-promise .figure-rank { position:absolute; bottom:18%; left:35%; width:7%; height:28%; background: linear-gradient(180deg, #4a3020 0%, #1a1008 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: jp-sway2 4s ease-in-out infinite alternate; }
.scn-job-promise .figure-linde { position:absolute; bottom:18%; right:38%; width:7%; height:28%; background: linear-gradient(180deg, #5a4030 0%, #2a1a10 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: jp-sway 3.5s ease-in-out infinite alternate; }
.scn-job-promise .macaroons { position:absolute; bottom:27%; left:52%; width:4%; height:4%; background: radial-gradient(circle, #d09030 0%, #a07020 100%); border-radius:50%; box-shadow: -8px 0 0 #a07020, -16px 0 0 #c08030, -24px 0 0 #906020; animation: jp-mac 2s ease-in-out infinite; }
@keyframes jp-lamp {
  0% { box-shadow: 0 0 35px 10px rgba(255,208,128,.5), 0 0 70px 20px rgba(200,100,40,.2); opacity:.8; }
  50% { box-shadow: 0 0 45px 14px rgba(255,208,128,.7), 0 0 90px 28px rgba(200,100,40,.4); opacity:1; }
  100% { box-shadow: 0 0 30px 8px rgba(255,208,128,.4), 0 0 60px 16px rgba(200,100,40,.15); opacity:.7; }
}
@keyframes jp-sway {
  0% { transform: translateX(0) rotate(-2deg); }
  50% { transform: translateX(3px) rotate(1deg); }
  100% { transform: translateX(-2px) rotate(0deg); }
}
@keyframes jp-sway2 {
  0% { transform: translateX(0) rotate(2deg); }
  50% { transform: translateX(-3px) rotate(-1deg); }
  100% { transform: translateX(2px) rotate(0deg); }
}
@keyframes jp-mac {
  0% { transform: scale(1); opacity:.9; }
  50% { transform: scale(1.1); opacity:1; }
  100% { transform: scale(.95); opacity:.85; }
}

.scn-children-and-krogstad {
  background: linear-gradient(180deg, #10141a 0%, #1a2030 40%, #2a3a4a 100%), radial-gradient(ellipse at 70% 30%, #3a4a5a 0%, transparent 60%);
}
.scn-children-and-krogstad .bg-scene { position:absolute; inset:0 0 40% 0; background: linear-gradient(180deg, #0e1218 0%, #1a2230 100%); }
.scn-children-and-krogstad .door { position:absolute; bottom:25%; right:10%; width:18%; height:60%; background: linear-gradient(180deg, #2a1a10 0%, #1a0e08 100%); border-radius: 10% 10% 0 0; box-shadow:-4px 0 10px rgba(0,0,0,.6); animation: ck-door 6s ease-in-out infinite alternate; }
.scn-children-and-krogstad .figure-krogstad { position:absolute; bottom:25%; left:60%; width:8%; height:50%; background: linear-gradient(180deg, #1a1a2e 0%, #0e0e1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: ck-enter 10s ease-in-out infinite; }
.scn-children-and-krogstad .figure-nora { position:absolute; bottom:25%; left:35%; width:7%; height:35%; background: linear-gradient(180deg, #3a2a1a 0%, #1a1008 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: ck-sway 3s ease-in-out infinite alternate; }
.scn-children-and-krogstad .child1 { position:absolute; bottom:20%; left:25%; width:4%; height:18%; background: linear-gradient(180deg, #2a2218 0%, #120e08 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: ck-run 2s ease-in-out infinite; }
.scn-children-and-krogstad .child2 { position:absolute; bottom:20%; left:15%; width:4%; height:16%; background: linear-gradient(180deg, #2a2218 0%, #120e08 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: ck-run 2.5s ease-in-out infinite 0.5s; }
.scn-children-and-krogstad .toy { position:absolute; bottom:25%; left:30%; width:4%; height:4%; background: radial-gradient(circle, #5a4a3a 0%, #2a1a10 100%); border-radius:50%; animation: ck-toy 1.5s ease-in-out infinite alternate; }
.scn-children-and-krogstad .shadow { position:absolute; bottom:0; left:0; right:0; height:30%; background: linear-gradient(0deg, rgba(0,0,0,.6) 0%, transparent 100%); animation: ck-shadow 4s ease-in-out infinite alternate; }
@keyframes ck-door {
  0% { transform: translateX(0) rotate(0); opacity:.9; }
  50% { transform: translateX(-5px) rotate(2deg); opacity:1; }
  100% { transform: translateX(0) rotate(0); opacity:.8; }
}
@keyframes ck-enter {
  0% { transform: translateX(0) scaleY(.9); opacity:.3; }
  25% { transform: translateX(-10px) scaleY(1); opacity:.7; }
  50% { transform: translateX(-20px) scaleY(1); opacity:1; }
  75% { transform: translateX(-10px) scaleY(.95); opacity:.8; }
  100% { transform: translateX(0) scaleY(.9); opacity:.3; }
}
@keyframes ck-sway {
  0% { transform: translateX(0) rotate(-3deg); }
  50% { transform: translateX(4px) rotate(1deg); }
  100% { transform: translateX(-2px) rotate(-1deg); }
}
@keyframes ck-run {
  0% { transform: translateX(0) rotate(-5deg); }
  25% { transform: translateX(5px) rotate(3deg); }
  50% { transform: translateX(10px) rotate(-2deg); }
  75% { transform: translateX(15px) rotate(4deg); }
  100% { transform: translateX(20px) rotate(0); }
}
@keyframes ck-toy {
  0% { transform: scale(1) translateY(0); }
  50% { transform: scale(1.2) translateY(-5px); }
  100% { transform: scale(.9) translateY(0); }
}
@keyframes ck-shadow {
  0% { opacity:.4; transform: scaleX(1); }
  50% { opacity:.7; transform: scaleX(1.1); }
  100% { opacity:.3; transform: scaleX(.9); }
}

.scn-bond-confrontation {
  background: linear-gradient(180deg, #0a080c 0%, #141018 40%, #1a1220 100%), radial-gradient(ellipse at 30% 40%, #2a1a30 0%, transparent 70%);
}
.scn-bond-confrontation .bg-scene { position:absolute; inset:0 0 50% 0; background: linear-gradient(180deg, #101014 0%, #1a1820 100%); }
.scn-bond-confrontation .desk { position:absolute; bottom:35%; left:20%; width:60%; height:8%; background: linear-gradient(180deg, #2a2018 0%, #120e0a 100%); border-radius: 10% 10% 5% 5%; box-shadow: 0 4px 10px rgba(0,0,0,.7); }
.scn-bond-confrontation .lamp { position:absolute; top:20%; left:25%; width:18px; height:18px; background: radial-gradient(circle, #d09040 0%, #7a5020 100%); border-radius:50%; box-shadow: 0 0 30px 8px rgba(160,80,30,.5), 0 0 60px 16px rgba(100,50,20,.3); animation: bc-lamp 5s ease-in-out infinite alternate; }
.scn-bond-confrontation .figure-nora { position:absolute; bottom:25%; left:50%; width:7%; height:38%; background: linear-gradient(180deg, #2a1a10 0%, #120a06 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: bc-shrink 4s ease-in-out infinite alternate; }
.scn-bond-confrontation .figure-krogstad { position:absolute; bottom:25%; left:30%; width:8%; height:42%; background: linear-gradient(180deg, #1a1620 0%, #0e0a10 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: bc-tower 6s ease-in-out infinite alternate; }
.scn-bond-confrontation .bond { position:absolute; bottom:35%; left:48%; width:8%; height:4%; background: linear-gradient(180deg, #b0a080 0%, #807060 100%); border-radius: 10% 10% 5% 5%; box-shadow: 0 0 8px 2px rgba(100,80,60,.4); animation: bc-bond 3s ease-in-out infinite alternate; }
.scn-bond-confrontation .shadow { position:absolute; bottom:0; left:20%; width:60%; height:20%; background: radial-gradient(ellipse, rgba(0,0,0,.8) 0%, transparent 100%); animation: bc-shadow 8s ease-in-out infinite alternate; }
@keyframes bc-lamp {
  0% { box-shadow: 0 0 25px 6px rgba(160,80,30,.4), 0 0 50px 12px rgba(100,50,20,.2); opacity:.8; }
  50% { box-shadow: 0 0 35px 10px rgba(160,80,30,.6), 0 0 70px 20px rgba(100,50,20,.3); opacity:1; }
  100% { box-shadow: 0 0 20px 4px rgba(160,80,30,.3), 0 0 40px 8px rgba(100,50,20,.15); opacity:.7; }
}
@keyframes bc-shrink {
  0% { transform: translateX(0) scaleY(1); }
  50% { transform: translateX(3px) scaleY(.95) rotate(-2deg); }
  100% { transform: translateX(-2px) scaleY(1) rotate(1deg); }
}
@keyframes bc-tower {
  0% { transform: translateX(0) rotate(2deg); }
  50% { transform: translateX(-4px) rotate(-1deg) scaleY(1.02); }
  100% { transform: translateX(2px) rotate(0) scaleY(1); }
}
@keyframes bc-bond {
  0% { transform: scale(1) rotate(0); opacity:.6; }
  50% { transform: scale(1.1) rotate(5deg); opacity:1; }
  100% { transform: scale(.95) rotate(-3deg); opacity:.5; }
}
@keyframes bc-shadow {
  0% { transform: scaleX(1); opacity:.5; }
  50% { transform: scaleX(1.2); opacity:.8; }
  100% { transform: scaleX(.8); opacity:.4; }
}

.scn-forgery-admission {
  background: linear-gradient(180deg, #0a0808 0%, #121010 40%, #1a1818 100%), radial-gradient(ellipse at 40% 40%, #2a2220 0%, transparent 70%);
}
.scn-forgery-admission .bg-scene { position:absolute; inset:0 0 50% 0; background: linear-gradient(180deg, #100e0e 0%, #1a1616 100%); }
.scn-forgery-admission .lamp { position:absolute; top:25%; left:20%; width:15px; height:15px; background: radial-gradient(circle, #b07030 0%, #5a3010 100%); border-radius:50%; box-shadow: 0 0 20px 6px rgba(120,60,20,.5), 0 0 40px 12px rgba(80,40,15,.2); animation: fa-lamp 3.5s ease-in-out infinite alternate; }
.scn-forgery-admission .table { position:absolute; bottom:30%; left:35%; width:30%; height:8%; background: linear-gradient(180deg, #1a1410 0%, #0e0a08 100%); border-radius:10% 10% 5% 5%; }
.scn-forgery-admission .figure-nora { position:absolute; bottom:25%; left:45%; width:6%; height:32%; background: linear-gradient(180deg, #1a120e 0%, #080604 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: fa-crumble 5s ease-in-out infinite alternate; }
.scn-forgery-admission .figure-krogstad { position:absolute; bottom:25%; left:32%; width:7%; height:40%; background: linear-gradient(180deg, #161416 0%, #0a080a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: fa-looms 7s ease-in-out infinite alternate; }
.scn-forgery-admission .bond { position:absolute; bottom:30%; left:48%; width:6%; height:3%; background: linear-gradient(180deg, #a09070 0%, #706050 100%); border-radius: 5% 5% 5% 5%; box-shadow: 0 0 6px 1px rgba(80,70,50,.5); animation: fa-bond 2s ease-in-out infinite alternate; }
.scn-forgery-admission .shadow { position:absolute; bottom:0; left:25%; width:60%; height:25%; background: radial-gradient(ellipse, rgba(0,0,0,.9) 0%, transparent 100%); animation: fa-shadow 6s ease-in-out infinite alternate; }
@keyframes fa-lamp {
  0% { box-shadow: 0 0 18px 4px rgba(120,60,20,.4), 0 0 36px 8px rgba(80,40,15,.2); opacity:.7; }
  50% { box-shadow: 0 0 24px 6px rgba(120,60,20,.6), 0 0 48px 12px rgba(80,40,15,.3); opacity:1; }
  100% { box-shadow: 0 0 14px 3px rgba(120,60,20,.3), 0 0 28px 6px rgba(80,40,15,.1); opacity:.6; }
}
@keyframes fa-crumble {
  0% { transform: translateX(0) rotate(0) scaleY(1); }
  50% { transform: translateX(3px) rotate(-4deg) scaleY(.93); }
  100% { transform: translateX(-2px) rotate(2deg) scaleY(1); }
}
@keyframes fa-looms {
  0% { transform: translateX(0) rotate(2deg) scaleY(1); }
  50% { transform: translateX(-5px) rotate(-2deg) scaleY(1.05); }
  100% { transform: translateX(3px) rotate(1deg) scaleY(1); }
}
@keyframes fa-bond {
  0% { transform: scale(1) rotate(0); opacity:.5; }
  50% { transform: scale(1.15) rotate(8deg); opacity:.9; }
  100% { transform: scale(.9) rotate(-5deg); opacity:.4; }
}
@keyframes fa-shadow {
  0% { transform: scaleX(1) translateY(0); opacity:.6; }
  50% { transform: scaleX(1.1) translateY(-5px); opacity:.8; }
  100% { transform: scaleX(.9) translateY(0); opacity:.5; }
}

.scn-south-italy-cost { background: linear-gradient(180deg, #1a0e06 0%, #2a1a0a 50%, #3a2a1a 100%), radial-gradient(ellipse at 50% 100%, #2a1a0a 0%, transparent 70%); }
.scn-south-italy-cost .room { position:absolute; inset:0; background: linear-gradient(180deg, #1a0e06 0%, transparent 40%); opacity: .8; }
.scn-south-italy-cost .desk { position:absolute; bottom:8%; left:20%; right:20%; height:30%; background: linear-gradient(180deg, #5a3a20 0%, #3a2010 100%); border-radius: 4% 4% 0 0; box-shadow: 0 -6px 12px rgba(0,0,0,.5); }
.scn-south-italy-cost .lamp { position:absolute; bottom:45%; left:28%; width:20px; height:30px; background: linear-gradient(180deg, #c08040 0%, #805020 100%); border-radius: 50% 50% 10% 10%; box-shadow: 0 0 30px 10px #c08040, 0 0 60px 20px rgba(192,128,64,.3); animation: sic-glow 4s ease-in-out infinite alternate; }
.scn-south-italy-cost .letter { position:absolute; bottom:22%; left:35%; width:40px; height:30px; background: linear-gradient(135deg, #e8d0a0 0%, #c8a870 100%); border-radius: 4%; transform: rotate(-5deg); box-shadow: 2px 2px 6px rgba(0,0,0,.4); animation: sic-letter 8s ease-in-out infinite; }
.scn-south-italy-cost .figure { position:absolute; bottom:18%; left:45%; width:30px; height:60px; background: linear-gradient(180deg, #1a0e06 0%, #0a0502 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: sic-breathe 5s ease-in-out infinite; }
.scn-south-italy-cost .chair { position:absolute; bottom:10%; left:42%; width:50px; height:40px; background: linear-gradient(180deg, #4a2a18 0%, #2a1a0a 100%); border-radius: 20% 20% 10% 10%; transform: skewX(-5deg); box-shadow: 0 4px 8px rgba(0,0,0,.5); animation: sic-chair 6s ease-in-out infinite; }
.scn-south-italy-cost .clock { position:absolute; top:10%; right:15%; width:30px; height:30px; background: radial-gradient(circle, #e0c090 0%, #806040 60%); border-radius: 50%; border: 3px solid #5a3a20; box-shadow: 0 0 10px rgba(0,0,0,.5); animation: sic-clock 3s ease-in-out infinite; }
@keyframes sic-glow { 0% { box-shadow: 0 0 30px 10px #c08040, 0 0 60px 20px rgba(192,128,64,.3); opacity: .9; } 50% { box-shadow: 0 0 40px 15px #e0a050, 0 0 80px 30px rgba(224,160,80,.5); opacity: 1; } 100% { box-shadow: 0 0 25px 8px #a06030, 0 0 50px 15px rgba(160,96,48,.3); opacity: .85; } }
@keyframes sic-breathe { 0% { transform: translateY(0) scaleY(1); } 50% { transform: translateY(-2px) scaleY(1.02); } 100% { transform: translateY(0) scaleY(1); } }
@keyframes sic-letter { 0%,100% { transform: rotate(-5deg) translateY(0); } 50% { transform: rotate(-7deg) translateY(-2px); } }
@keyframes sic-chair { 0%,100% { transform: skewX(-5deg) translateY(0); } 50% { transform: skewX(-4deg) translateY(-1px); } }
@keyframes sic-clock { 0% { transform: rotate(0deg); } 50% { transform: rotate(10deg); } 100% { transform: rotate(0deg); } }

.scn-item-forged-bond { background: linear-gradient(180deg, #1a0a08 0%, #2a1410 40%, #3a1c14 100%), radial-gradient(ellipse at 50% 0%, #4a2420 0%, transparent 60%); }
.scn-item-forged-bond .desk { position:absolute; bottom:10%; left:15%; right:15%; height:35%; background: linear-gradient(180deg, #5a3020 0%, #3a1c10 100%); border-radius: 6% 6% 0 0; box-shadow: 0 -8px 16px rgba(0,0,0,.6); }
.scn-item-forged-bond .document { position:absolute; bottom:28%; left:30%; width:60px; height:40px; background: linear-gradient(135deg, #d0b890 0%, #b09878 100%); border-radius: 2%; transform: rotate(2deg); box-shadow: 2px 2px 8px rgba(0,0,0,.5); animation: ifb-doc 7s ease-in-out infinite; }
.scn-item-forged-bond .seal { position:absolute; bottom:32%; left:38%; width:12px; height:12px; background: radial-gradient(circle, #a04030 0%, #602018 70%); border-radius: 50%; box-shadow: 0 0 8px 2px rgba(160,64,48,.9); animation: ifb-seal 5s ease-in-out infinite; }
.scn-item-forged-bond .pen { position:absolute; bottom:30%; left:20%; width:6px; height:40px; background: linear-gradient(180deg, #802010 0%, #401008 100%); border-radius: 30% 30% 10% 10%; transform: rotate(15deg); transform-origin: bottom center; box-shadow: 0 2px 4px rgba(0,0,0,.3); animation: ifb-pen 4s ease-in-out infinite; }
.scn-item-forged-bond .hand { position:absolute; bottom:30%; left:25%; width:18px; height:30px; background: linear-gradient(180deg, #e0c0a0 0%, #c0a080 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; box-shadow: 0 2px 6px rgba(0,0,0,.4); animation: ifb-hand 3s ease-in-out infinite; }
.scn-item-forged-bond .candle { position:absolute; bottom:15%; right:25%; width:14px; height:40px; background: linear-gradient(180deg, #e8d8b0 0%, #c8b890 100%); border-radius: 20% 20% 10% 10%; box-shadow: 0 4px 8px rgba(0,0,0,.3); }
.scn-item-forged-bond .flame { position:absolute; bottom:52%; right:27%; width:10px; height:20px; background: radial-gradient(circle at 50% 100%, #ffd060 0%, #ff8010 60%, transparent 100%); border-radius: 50% 50% 0 0; animation: ifb-flame 1.5s ease-in-out infinite alternate; }
@keyframes ifb-doc { 0%,100% { transform: rotate(2deg) translateY(0); } 50% { transform: rotate(4deg) translateY(-1px); } }
@keyframes ifb-seal { 0% { box-shadow: 0 0 8px 2px #a04030; transform: scale(1); } 50% { box-shadow: 0 0 16px 6px #c05040; transform: scale(1.1); } 100% { box-shadow: 0 0 8px 2px #a04030; transform: scale(1); } }
@keyframes ifb-pen { 0% { transform: rotate(15deg) translateY(0); } 50% { transform: rotate(12deg) translateY(-3px); } 100% { transform: rotate(15deg) translateY(0); } }
@keyframes ifb-hand { 0% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-2px) rotate(-3deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes ifb-flame { 0% { transform: scaleY(1) rotate(0deg); opacity: .9; } 25% { transform: scaleY(1.2) rotate(5deg); opacity: 1; } 50% { transform: scaleY(1.1) rotate(-5deg); opacity: .95; } 75% { transform: scaleY(1.3) rotate(2deg); opacity: .9; } 100% { transform: scaleY(0.8) rotate(-2deg); opacity: .8; } }

.scn-krogstad-meeting { background: linear-gradient(180deg, #0e0e1e 0%, #1a1a2e 50%, #2a2a3e 100%), radial-gradient(ellipse at 30% 80%, #2a2a4e 0%, transparent 60%); }
.scn-krogstad-meeting .doorway { position:absolute; inset:0 20% 10% 20%; background: linear-gradient(180deg, #1a1a2e 0%, #0a0a1a 100%); border-radius: 20% 20% 0 0 / 40% 40% 0 0; box-shadow: inset 0 0 20px rgba(0,0,0,.8); }
.scn-krogstad-meeting .door { position:absolute; bottom:10%; left:35%; width:30%; height:80%; background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%); border-radius: 4% 4% 0 0; box-shadow: 4px 0 12px rgba(0,0,0,.7); animation: km-door 6s ease-in-out infinite; }
.scn-krogstad-meeting .nora { position:absolute; bottom:20%; left:45%; width:24px; height:50px; background: linear-gradient(180deg, #0a0a1a 0%, #050510 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: km-nora 5s ease-in-out infinite; }
.scn-krogstad-meeting .krogstad { position:absolute; bottom:18%; left:55%; width:28px; height:60px; background: linear-gradient(180deg, #2a1a1a 0%, #1a0a0a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform: rotate(-5deg); transform-origin: bottom center; animation: km-krog 4s ease-in-out infinite; }
.scn-krogstad-meeting .linde { position:absolute; bottom:20%; left:28%; width:20px; height:45px; background: linear-gradient(180deg, #1a1a2e 0%, #0e0e1e 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform: scale(0.9); opacity: .7; animation: km-linde 7s ease-in-out infinite; }
.scn-krogstad-meeting .lamp { position:absolute; top:8%; left:35%; width:16px; height:24px; background: radial-gradient(circle at 50% 30%, #e0a060 0%, #a06030 60%); border-radius: 50% 50% 10% 10%; box-shadow: 0 0 40px 15px #c08040, 0 0 80px 30px rgba(192,128,64,.3); animation: km-glow 3s ease-in-out infinite alternate; }
@keyframes km-door { 0%,100% { transform: scaleX(1) translateY(0); } 50% { transform: scaleX(1.02) translateY(-1px); } }
@keyframes km-nora { 0%,100% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-2px) rotate(2deg); } }
@keyframes km-krog { 0%,100% { transform: rotate(-5deg) translateY(0); } 50% { transform: rotate(-3deg) translateY(-2px); } }
@keyframes km-linde { 0%,100% { transform: scale(0.9) translateX(0); opacity: .7; } 50% { transform: scale(0.85) translateX(-2px); opacity: .5; } }
@keyframes km-glow { 0% { box-shadow: 0 0 40px 15px #c08040; opacity: .9; } 50% { box-shadow: 0 0 60px 25px #e0a060; opacity: 1; } 100% { box-shadow: 0 0 35px 12px #a06030; opacity: .85; } }

.scn-rank-morality { background: linear-gradient(180deg, #2a1a0a 0%, #3a2a1a 30%, #4a3a2a 100%), radial-gradient(ellipse at 50% 100%, #5a4a3a 0%, transparent 60%); }
.scn-rank-morality .table { position:absolute; bottom:12%; left:20%; right:20%; height:25%; background: radial-gradient(ellipse at 50% 100%, #6a5040 0%, #4a3828 100%); border-radius: 40% 40% 0 0 / 60% 60% 0 0; box-shadow: 0 -8px 16px rgba(0,0,0,.5); }
.scn-rank-morality .nora { position:absolute; bottom:22%; left:30%; width:28px; height:50px; background: linear-gradient(180deg, #d0b8a0 0%, #b09880 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: rm-nora 4s ease-in-out infinite; }
.scn-rank-morality .rank { position:absolute; bottom:18%; left:55%; width:30px; height:52px; background: linear-gradient(180deg, #a09080 0%, #887868 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform: rotate(8deg) scale(0.95); transform-origin: bottom center; animation: rm-rank 5s ease-in-out infinite; }
.scn-rank-morality .linde { position:absolute; bottom:20%; left:20%; width:22px; height:48px; background: linear-gradient(180deg, #b8a898 0%, #a09080 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: rm-linde 6s ease-in-out infinite; }
.scn-rank-morality .teacup { position:absolute; bottom:28%; left:38%; width:16px; height:16px; background: radial-gradient(circle at 50% 40%, #f0e0d0 0%, #d0c0b0 100%); border-radius: 50% 50% 20% 20%; box-shadow: 0 2px 6px rgba(0,0,0,.3); animation: rm-cup 4s ease-in-out infinite; }
.scn-rank-morality .teapot { position:absolute; bottom:25%; left:48%; width:24px; height:20px; background: radial-gradient(circle at 50% 60%, #c8b0a0 0%, #a89080 100%); border-radius: 50% 50% 30% 30%; box-shadow: 0 4px 8px rgba(0,0,0,.4); animation: rm-pot 3s ease-in-out infinite; }
.scn-rank-morality .lamp { position:absolute; top:5%; left:40%; width:20px; height:30px; background: radial-gradient(circle at 50% 30%, #ffd080 0%, #c08040 60%); border-radius: 50% 50% 10% 10%; box-shadow: 0 0 50px 20px #ffd080, 0 0 100px 40px rgba(255,208,128,.4); animation: rm-glow 3s ease-in-out infinite alternate; }
@keyframes rm-nora { 0%,100% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-3px) rotate(-5deg); } }
@keyframes rm-rank { 0%,100% { transform: rotate(8deg) scale(0.95) translateY(0); } 50% { transform: rotate(10deg) scale(1.0) translateY(-2px); } }
@keyframes rm-linde { 0%,100% { transform: translateY(0) rotate(0); } 50% { transform: translateY(-2px) rotate(3deg); } }
@keyframes rm-cup { 0%,100% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-1px) rotate(5deg); } }
@keyframes rm-pot { 0%,100% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-2px) rotate(-3deg); } }
@keyframes rm-glow { 0% { box-shadow: 0 0 50px 20px #ffd080; opacity: .9; } 50% { box-shadow: 0 0 70px 30px #ffe090; opacity: 1; } 100% { box-shadow: 0 0 45px 15px #c08040; opacity: .85; } }
/* end per-scene blocks */
