/* 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-baron-effusive {
  background: linear-gradient(180deg, #f5e6d3 0%, #d9c2a3 50%, #c4a882 100%), radial-gradient(ellipse at 50% 100%, rgba(0,0,0,0.2) 0%, transparent 70%);
  overflow: hidden;
}
.scn-baron-effusive .floor { position:absolute; bottom:0; left:0; right:0; height:22%; background: linear-gradient(180deg, #6b4a2c 0%, #3a2a1a 100%); }
.scn-baron-effusive .bookshelf { position:absolute; top:5%; left:5%; width:22%; height:70%; background: linear-gradient(90deg, #a0522d 0%, #8b4513 10%, #5a3a1a 20%, #b8860b 30%, #a52a2a 40%, #8b4513 50%, #5a3a1a 60%, #a0522d 70%, #8b4513 80%, #5a3a1a 90%, #a0522d 100%); border-radius: 4px; box-shadow: inset 0 0 10px rgba(0,0,0,0.3); animation: ba-shelf 20s ease-in-out infinite; }
.scn-baron-effusive .desk { position:absolute; bottom:20%; left:30%; width:45%; height:8%; background: linear-gradient(180deg, #7a5a3a 0%, #4a3a1a 100%); border-radius: 4px; box-shadow: 0 4px 8px rgba(0,0,0,0.4); }
.scn-baron-effusive .lamp-base { position:absolute; bottom:26%; left:48%; width:8px; height:18px; background: #a0461a; transform: translateX(-50%); border-radius: 2px; }
.scn-baron-effusive .lamp-glow { position:absolute; bottom:32%; left:48%; width:70px; height:80px; transform: translateX(-50%); background: radial-gradient(circle, rgba(255,230,150,0.9) 0%, rgba(255,200,100,0.4) 40%, transparent 70%); animation: ba-glow 3s ease-in-out infinite; }
.scn-baron-effusive .figure { position:absolute; bottom:18%; right:15%; width:35px; height:65px; background: #1a0a0a; border-radius: 40% 60% 40% 60% / 60% 40% 60% 40%; transform-origin: bottom center; animation: ba-figure 5s ease-in-out infinite; box-shadow: 0 2px 6px rgba(0,0,0,0.5); }
.scn-baron-effusive .globe { position:absolute; bottom:22%; left:55%; width:22px; height:22px; border-radius: 50%; background: radial-gradient(circle at 35% 35%, #6a9ac0, #2a5a7a 50%, #1a3a5a 100%); box-shadow: 0 0 8px rgba(0,0,0,0.3); animation: ba-globe 4s ease-in-out infinite; }

@keyframes ba-shelf { 0% { transform: translateY(0); } 50% { transform: translateY(-1px); } 100% { transform: translateY(0); } }
@keyframes ba-glow { 0% { opacity: 0.7; transform: translateX(-50%) scale(1); } 50% { opacity: 1; transform: translateX(-50%) scale(1.1); } 100% { opacity: 0.75; transform: translateX(-50%) scale(0.95); } }
@keyframes ba-figure { 0% { transform: rotate(-2deg); } 50% { transform: rotate(3deg); } 100% { transform: rotate(-2deg); } }
@keyframes ba-globe { 0% { transform: rotate(0deg); } 50% { transform: rotate(10deg) scale(1.05); } 100% { transform: rotate(-5deg); } }

.scn-baron-effusive {
  background: 
    linear-gradient(180deg, #f5e6d3 0%, #d9c5b0 40%, #4a3e35 100%),
    radial-gradient(ellipse at 30% 20%, rgba(255,230,190,0.6) 0%, transparent 60%);
}
.scn-baron-effusive .bg-wall {
  position: absolute; inset: 0; background: linear-gradient(180deg, transparent 60%, rgba(30,25,20,0.3) 100%);
}
.scn-baron-effusive .window-glow {
  position: absolute; top: 10%; left: 25%; width: 120px; height: 160px;
  background: radial-gradient(ellipse, #fff8e0 0%, #ffe0a0 40%, transparent 70%);
  border-radius: 4px; box-shadow: 0 0 60px 20px rgba(255,220,150,0.4);
  animation: be-glow 3s ease-in-out infinite alternate;
}
.scn-baron-effusive .bookshelf-left {
  position: absolute; top: 25%; left: 4%; width: 18%; height: 55%;
  background: linear-gradient(180deg, #5e4a38 0%, #3a2a1a 100%);
  border-radius: 4px; box-shadow: 4px 0 12px rgba(0,0,0,0.4);
  animation: be-sway 5s ease-in-out infinite alternate;
}
.scn-baron-effusive .bookshelf-right {
  position: absolute; top: 25%; right: 4%; width: 18%; height: 55%;
  background: linear-gradient(180deg, #5e4a38 0%, #3a2a1a 100%);
  border-radius: 4px; box-shadow: -4px 0 12px rgba(0,0,0,0.4);
  animation: be-sway 5s ease-in-out infinite alternate-reverse;
}
.scn-baron-effusive .desk {
  position: absolute; bottom: 18%; left: 28%; width: 44%; height: 24%;
  background: linear-gradient(180deg, #6b5540 0%, #4a3728 100%);
  border-radius: 8px 8px 0 0; box-shadow: 0 -6px 20px rgba(0,0,0,0.5);
}
.scn-baron-effusive .baron {
  position: absolute; bottom: 20%; left: 42%; width: 22px; height: 50px;
  background: linear-gradient(180deg, #2a2a3e 0%, #12121e 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: be-walk 4s ease-in-out infinite;
}
.scn-baron-effusive .shadow {
  position: absolute; bottom: 18%; left: 40%; width: 30px; height: 8px;
  background: radial-gradient(ellipse, rgba(20,15,10,0.6) 0%, transparent 70%);
  transform-origin: center center;
  animation: be-shadow 4s ease-in-out infinite;
}
.scn-baron-effusive .dust {
  position: absolute; top: 30%; left: 20%; width: 100%; height: 60%;
  background: radial-gradient(circle at 20% 40%, rgba(255,240,200,0.08) 0%, transparent 80%),
              radial-gradient(circle at 70% 30%, rgba(255,240,200,0.05) 0%, transparent 60%);
  filter: blur(2px);
  animation: be-dust 15s linear infinite;
}
@keyframes be-glow {
  0%   { opacity: 0.7; transform: scale(0.98); }
  50%  { opacity: 1; transform: scale(1); }
  100% { opacity: 0.8; transform: scale(0.99); }
}
@keyframes be-sway {
  0%   { transform: translateX(0); }
  50%  { transform: translateX(2px); }
  100% { transform: translateX(-1px); }
}
@keyframes be-walk {
  0%   { transform: translateX(0) rotate(0deg); }
  25%  { transform: translateX(8px) rotate(2deg); }
  50%  { transform: translateX(0) rotate(0deg); }
  75%  { transform: translateX(-8px) rotate(-2deg); }
  100% { transform: translateX(0) rotate(0deg); }
}
@keyframes be-shadow {
  0%   { transform: scaleX(1); opacity: 0.6; }
  25%  { transform: scaleX(1.3); opacity: 0.4; }
  50%  { transform: scaleX(1); opacity: 0.6; }
  75%  { transform: scaleX(0.7); opacity: 0.8; }
  100% { transform: scaleX(1); opacity: 0.6; }
}
@keyframes be-dust {
  0%   { opacity: 0; transform: translateY(0) scale(1); }
  20%  { opacity: 0.3; }
  50%  { opacity: 0.6; transform: translateY(-15px) scale(1.1); }
  80%  { opacity: 0.2; }
  100% { opacity: 0; transform: translateY(-30px) scale(0.9); }
}

/* item-hounds-blood */
.scn-item-hounds-blood {
  background: linear-gradient(180deg, #0a0a2a 0%, #141440 40%, #222260 100%),
              radial-gradient(ellipse at 60% 20%, #9696bb 0%, transparent 60%);
}
.scn-item-hounds-blood .night-sky { position:absolute; inset:0 0 50% 0; background: linear-gradient(180deg, #0a0a30 0%, #060620 100%); animation: hb-sky 15s ease-in-out infinite alternate; }
.scn-item-hounds-blood .moon { position:absolute; top:8%; left:70%; width:70px; height:70px; background: radial-gradient(circle, #f0f0ee 0%, #d8d8d0 60%, #222260 100%); border-radius:50%; box-shadow: 0 0 40px 15px #5a5a9a, 0 0 80px 30px #2a2a5a; animation: hb-moon 20s ease-in-out infinite; }
.scn-item-hounds-blood .hills { position:absolute; bottom:30%; left:0; right:0; height:20%; background: linear-gradient(180deg, #1a2a2a 0%, #0a1a1a 100%); border-radius: 50% 60% 0 0 / 80% 70% 0 0; box-shadow: inset 0 5px 15px #000; }
.scn-item-hounds-blood .hound { position:absolute; bottom:20%; left:40%; width:40px; height:28px; background: radial-gradient(ellipse 30% 40% at 20% 50%, #1a1a2a 50%, #0a0a1a 100%); border-radius: 40% 50% 50% 40% / 60% 50% 50% 40%; animation: hb-hound 4s ease-in-out infinite; }
.scn-item-hounds-blood .hound::before { content:''; position:absolute; top:-8px; left:28px; width:14px; height:14px; background: #0a0a1a; border-radius:50%; box-shadow: 0 0 0 4px #1a1a2a; }
.scn-item-hounds-blood .blood-trail { position:absolute; bottom:22%; left:20%; width:60%; height:4px; background: linear-gradient(90deg, transparent 0%, #5e2a1a 20%, #6a3a2a 50%, #4a1a0a 80%, transparent 100%); border-radius:2px; filter: blur(2px); animation: hb-blood 6s ease-in-out infinite; }
.scn-item-hounds-blood .grass { position:absolute; bottom:20%; left:0; right:0; height:15%; background: linear-gradient(180deg, #1a2a1a 0%, #0a1a0a 100%); clip-path: polygon(0% 0%, 20% 10%, 40% 0%, 60% 15%, 80% 5%, 100% 10%, 100% 100%, 0% 100%); }
@keyframes hb-sky { 0% { opacity:0.8 } 50% { opacity:1 } 100% { opacity:0.9 } }
@keyframes hb-moon { 0% { transform: scale(0.98) translate(0,0); box-shadow:0 0 30px 10px #5a5a9a; } 50% { transform: scale(1) translate(-2px,2px); box-shadow:0 0 50px 20px #7a7aba; } 100% { transform: scale(0.98) translate(0,0); } }
@keyframes hb-hound { 0%,100% { transform: translateX(0) rotate(0deg); } 25% { transform: translateX(8px) rotate(3deg); } 50% { transform: translateX(15px) rotate(0deg); } 75% { transform: translateX(8px) rotate(-3deg); } }
@keyframes hb-blood { 0% { opacity:0.7; background-position:0% 50%; } 50% { opacity:1; background-position:50% 50%; } 100% { opacity:0.7; background-position:100% 50%; } }

/* item-moonlight-devour */
.scn-item-moonlight-devour {
  background: linear-gradient(180deg, #0f0f2f 0%, #1a1a3e 30%, #2a2a50 100%);
}
.scn-item-moonlight-devour .moonlight-sky { position:absolute; inset:0 0 40% 0; background: linear-gradient(180deg, #1a1a40 0%, #0a0a20 100%); animation: md-sky 20s ease-in-out infinite; }
.scn-item-moonlight-devour .ground { position:absolute; bottom:0; left:0; right:0; height:45%; background: linear-gradient(180deg, #1a2a1a 0%, #0a1a0a 100%); }
.scn-item-moonlight-devour .pack-hound1 { position:absolute; bottom:20%; left:20%; width:35px; height:25px; background: #0e0e1e; border-radius: 40% 50% 50% 40%; animation: md-hound 2.5s ease-in-out infinite; }
.scn-item-moonlight-devour .pack-hound1::before { content:''; position:absolute; top:-6px; left:22px; width:10px; height:10px; background:#0a0a1a; border-radius:50%; }
.scn-item-moonlight-devour .pack-hound2 { position:absolute; bottom:22%; left:55%; width:30px; height:20px; background: #0e0e1e; border-radius: 40% 50% 50% 40%; animation: md-hound2 3s ease-in-out infinite; }
.scn-item-moonlight-devour .pack-hound2::before { content:''; position:absolute; top:-5px; left:18px; width:8px; height:8px; background:#0a0a1a; border-radius:50%; }
.scn-item-moonlight-devour .falling-figure { position:absolute; bottom:15%; left:40%; width:22px; height:30px; background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%); border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%; transform-origin: bottom center; animation: md-fall 4s ease-in-out infinite; }
.scn-item-moonlight-devour .scream-ripple { position:absolute; bottom:35%; left:45%; width:20px; height:20px; border:2px solid rgba(200,150,150,0.3); border-radius:50%; animation: md-ripple 6s ease-out infinite; }
@keyframes md-sky { 0% { opacity:0.9 } 50% { opacity:0.7 } 100% { opacity:0.9 } }
@keyframes md-hound { 0% { transform: translateX(0) rotate(0deg); } 25% { transform: translateX(10px) rotate(5deg); } 50% { transform: translateX(20px) rotate(0deg); } 75% { transform: translateX(10px) rotate(-5deg); } 100% { transform: translateX(0); } }
@keyframes md-hound2 { 0% { transform: translateX(0); } 50% { transform: translateX(12px) rotate(4deg); } 100% { transform: translateX(0); } }
@keyframes md-fall { 0% { transform: translateY(0) rotate(0deg); } 25% { transform: translateY(-4px) rotate(10deg); } 50% { transform: translateY(0) rotate(-5deg); } 75% { transform: translateY(-2px) rotate(0deg); } 100% { transform: translateY(0); } }
@keyframes md-ripple { 0% { transform: scale(0); opacity:0.8; } 100% { transform: scale(4); opacity:0; } }

/* aftermath-silence-sledge */
.scn-item-aftermath-silence-sledge {
  background: linear-gradient(180deg, #0c0c2c 0%, #161640 30%, #2a2a50 80%, #3a3a60 100%);
}
.scn-item-aftermath-silence-sledge .snow-bg { position:absolute; inset:0 0 50% 0; background: linear-gradient(180deg, #2a2a50 0%, #0c0c2c 100%); }
.scn-item-aftermath-silence-sledge .sledge { position:absolute; bottom:20%; left:50%; width:50px; height:20px; transform:translateX(-50%); background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%); border-radius: 10% 10% 50% 50% / 20% 20% 60% 60%; box-shadow: 0 5px 15px rgba(0,0,0,0.5); }
.scn-item-aftermath-silence-sledge .sledge::after { content:''; position:absolute; bottom:-10px; left:5px; width:40px; height:10px; background: #0a0a1a; border-radius:0 0 10px 10px; }
.scn-item-aftermath-silence-sledge .driver { position:absolute; bottom:25%; left:52%; width:16px; height:24px; background: #0e0e1e; border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: as-driver 10s ease-in-out infinite; }
.scn-item-aftermath-silence-sledge .snow-drift1 { position:absolute; bottom:15%; left:10%; width:80px; height:30px; background: linear-gradient(180deg, #8a8aaa 0%, #4a4a6a 100%); border-radius: 50% 20% 40% 60% / 70% 40% 60% 30%; filter: blur(5px); animation: as-drift 30s linear infinite; }
.scn-item-aftermath-silence-sledge .snow-drift2 { position:absolute; bottom:18%; right:15%; width:60px; height:20px; background: linear-gradient(180deg, #6a6a8a 0%, #3a3a5a 100%); border-radius: 30% 60% 50% 50% / 50% 50% 50% 50%; filter: blur(4px); animation: as-drift2 40s linear infinite reverse; }
.scn-item-aftermath-silence-sledge .distant-tree { position:absolute; bottom:30%; left:20%; width:10px; height:20px; background: #0a0a1a; border-radius: 20% 20% 0 0; transform: scaleY(0.8); }
@keyframes as-driver { 0% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-2px) rotate(2deg); } 100% { transform: translateY(0); } }
@keyframes as-drift { 0% { transform: translateX(0); } 100% { transform: translateX(-80px); } }
@keyframes as-drift2 { 0% { transform: translateX(0); } 100% { transform: translateX(60px); } }

/* storytelling-continuation */
.scn-item-storytelling-continuation {
  background: linear-gradient(180deg, #e0c8a0 0%, #c8a880 40%, #a08060 100%);
}
.scn-item-storytelling-continuation .wall { position:absolute; inset:0 0 20% 0; background: linear-gradient(180deg, #d8b890 0%, #c8a880 100%); box-shadow: inset 0 10px 30px #a07050; }
.scn-item-storytelling-continuation .bookshelf { position:absolute; bottom:10%; left:5%; width:18%; height:50%; background: linear-gradient(90deg, #604030 0%, #805040 50%, #604030 100%); border-radius:4px; box-shadow: 2px 2px 8px rgba(0,0,0,0.3); }
.scn-item-storytelling-continuation .bookshelf::before { content:''; position:absolute; top:10%; left:10%; right:10%; bottom:10%; border:2px solid #905040; }
.scn-item-storytelling-continuation .armchair { position:absolute; bottom:8%; left:25%; width:30%; height:35%; background: linear-gradient(180deg, #7a5a3a 0%, #5a3a2a 100%); border-radius: 20% 20% 10% 10% / 30% 30% 10% 10%; box-shadow: 0 6px 12px rgba(0,0,0,0.3); }
.scn-item-storytelling-continuation .figure-listener { position:absolute; bottom:10%; left:35%; width:12%; height:25%; background: linear-gradient(180deg, #c0a080 0%, #a08060 100%); border-radius: 50% 50% 40% 40% / 50% 50% 30% 30%; animation: sc-listen 8s ease-in-out infinite; }
.scn-item-storytelling-continuation .figure-teller { position:absolute; bottom:10%; left:55%; width:12%; height:28%; background: linear-gradient(180deg, #c0a080 0%, #a08060 100%); border-radius: 50% 50% 40% 40% / 50% 50% 30% 30%; transform: rotate(5deg); animation: sc-tell 6s ease-in-out infinite; }
.scn-item-storytelling-continuation .figure-teller::before { content:''; position:absolute; top:-15%; left:50%; width:30%; height:20%; background: #c0a080; border-radius:50%; transform:translateX(-50%); } /* head */
.scn-item-storytelling-continuation .lamp-glow { position:absolute; bottom:40%; left:50%; width:40%; height:30%; background: radial-gradient(ellipse at 50% 0%, rgba(255,200,150,0.6) 0%, transparent 60%); mix-blend-mode: screen; }
.scn-item-storytelling-continuation .table { position:absolute; bottom:0; left:45%; width:20%; height:8%; background: linear-gradient(180deg, #604030 0%, #402820 100%); border-radius:4px; }
@keyframes sc-listen { 0% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-2px) rotate(1deg); } 100% { transform: translateY(0); } }
@keyframes sc-tell { 0% { transform: rotate(5deg) translateY(0); } 25% { transform: rotate(8deg) translateY(-3px); } 50% { transform: rotate(5deg) translateY(0); } 75% { transform: rotate(3deg) translateY(-1px); } 100% { transform: rotate(5deg) translateY(0); } }

.scn-baron-enters {
  background: 
    linear-gradient(180deg, #2a1a12 0%, #1a0e0a 30%, #0d0503 100%),
    radial-gradient(ellipse at 80% 40%, #7a3a1a 0%, transparent 60%);
}
.scn-baron-enters .wall-bg {
  position:absolute; inset:0;
  background: linear-gradient(135deg, #3a221a 0%, #1a0e0a 100%);
  opacity:0.6;
}
.scn-baron-enters .door {
  position:absolute; right:12%; bottom:10%; width:28%; height:70%;
  background: linear-gradient(180deg, #5a3a2a 0%, #3a221a 40%, #2a1a12 100%);
  border-radius: 4px 0 0 4px;
  box-shadow: -6px 0 18px rgba(0,0,0,0.7);
  animation: be1-door 4s ease-in-out infinite alternate;
}
.scn-baron-enters .shadow-fig {
  position:absolute; right:18%; bottom:15%; width:12%; height:45%;
  background: radial-gradient(ellipse at 50% 100%, #0a0503 0%, #0a0503 70%, transparent 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: be1-shadow 4s ease-in-out infinite alternate;
}
.scn-baron-enters .candle {
  position:absolute; left:20%; bottom:35%; width:4%; height:20%;
  background: linear-gradient(180deg, #c0a080 0%, #8a6a4a 100%);
  border-radius: 50% 50% 20% 20% / 60% 60% 20% 20%;
  transform-origin: bottom center;
  animation: be1-candle 3s ease-in-out infinite;
}
.scn-baron-enters .glow-candle {
  position:absolute; left:20%; bottom:38%; width:15%; height:15%;
  background: radial-gradient(circle, #ffc040 0%, #ffa060 40%, transparent 70%);
  border-radius: 50%;
  filter: blur(8px);
  mix-blend-mode: screen;
  animation: be1-glow 2s ease-in-out infinite alternate;
}
.scn-baron-enters .step-line {
  position:absolute; bottom:8%; left:20%; right:10%; height:2%;
  background: linear-gradient(90deg, transparent 0%, #4a2a1a 30%, #4a2a1a 70%, transparent 100%);
  animation: be1-step 4s ease-in-out infinite alternate;
}
@keyframes be1-door {
  0% { transform: translateX(0) scaleX(1); }
  50% { transform: translateX(-2%) scaleX(0.98); }
  100% { transform: translateX(0) scaleX(1); }
}
@keyframes be1-shadow {
  0% { transform: translateX(0) scaleY(1); opacity:0.6; }
  50% { transform: translateX(-3%) scaleY(1.02); opacity:0.8; }
  100% { transform: translateX(0) scaleY(1); opacity:0.6; }
}
@keyframes be1-candle {
  0% { transform: rotate(-2deg); }
  50% { transform: rotate(2deg); }
  100% { transform: rotate(-2deg); }
}
@keyframes be1-glow {
  0% { opacity:0.5; transform: scale(1); }
  50% { opacity:1; transform: scale(1.1); }
  100% { opacity:0.6; transform: scale(1); }
}
@keyframes be1-step {
  0% { opacity:0.4; }
  50% { opacity:0.8; }
  100% { opacity:0.4; }
}

.scn-baron-effusive {
  background: 
    linear-gradient(180deg, #2e1e14 0%, #1a0e0a 50%, #0a0503 100%),
    radial-gradient(ellipse at 50% 60%, #5a2a12 0%, transparent 70%);
}
.scn-baron-effusive .wall-bg {
  position:absolute; inset:0;
  background: linear-gradient(135deg, #3a2418 0%, #1a0e0a 100%);
  opacity:0.5;
}
.scn-baron-effusive .table {
  position:absolute; bottom:10%; left:30%; width:40%; height:8%;
  background: linear-gradient(180deg, #5a3a2a 0%, #3a221a 100%);
  border-radius: 10% 10% 0 0;
  box-shadow: 0 -6px 12px rgba(0,0,0,0.6);
}
.scn-baron-effusive .chair {
  position:absolute; bottom:15%; left:35%; width:10%; height:20%;
  background: linear-gradient(180deg, #4a2a1a 0%, #2a1a0e 100%);
  border-radius: 40% 40% 20% 20% / 60% 60% 20% 20%;
}
.scn-baron-effusive .lamp {
  position:absolute; left:25%; bottom:25%; width:4%; height:15%;
  background: linear-gradient(180deg, #c0a080 0%, #8a6a4a 100%);
  border-radius: 50% 50% 20% 20% / 60% 60% 20% 20%;
  animation: be2-lamp 6s ease-in-out infinite alternate;
}
.scn-baron-effusive .glow-lamp {
  position:absolute; left:24%; bottom:28%; width:12%; height:12%;
  background: radial-gradient(circle, #ffd060 0%, #ffa040 40%, transparent 70%);
  border-radius: 50%;
  filter: blur(6px);
  mix-blend-mode: screen;
  animation: be2-glow 4s ease-in-out infinite alternate;
}
.scn-baron-effusive .figure-seated {
  position:absolute; bottom:17%; left:42%; width:10%; height:25%;
  background: radial-gradient(ellipse at 50% 100%, #1a0e0a 0%, #0a0503 100%);
  border-radius: 50% 50% 40% 40% / 70% 70% 30% 30%;
  animation: be2-figure 8s ease-in-out infinite alternate;
}
.scn-baron-effusive .arm-gesture {
  position:absolute; bottom:22%; left:50%; width:6%; height:12%;
  background: radial-gradient(ellipse at 100% 50%, #1a0e0a 0%, transparent 100%);
  border-radius: 50%;
  transform-origin: 0% 100%;
  animation: be2-arm 5s ease-in-out infinite alternate;
}
@keyframes be2-lamp {
  0% { transform: rotate(-1deg); }
  100% { transform: rotate(1deg); }
}
@keyframes be2-glow {
  0% { opacity:0.5; transform: scale(1); }
  50% { opacity:0.8; transform: scale(1.05); }
  100% { opacity:0.6; transform: scale(0.95); }
}
@keyframes be2-figure {
  0% { transform: translateY(0) rotate(0); }
  50% { transform: translateY(-2px) rotate(-1deg); }
  100% { transform: translateY(0) rotate(1deg); }
}
@keyframes be2-arm {
  0% { transform: scaleX(1) rotate(-5deg); }
  50% { transform: scaleX(1.1) rotate(0deg); }
  100% { transform: scaleX(1) rotate(5deg); }
}

.scn-baron-dialogue {
  background: 
    linear-gradient(180deg, #2e1e14 0%, #1a0e0a 40%, #0a0503 100%),
    radial-gradient(ellipse at 30% 50%, #5a2a12 0%, transparent 60%);
}
.scn-baron-dialogue .wall-bg {
  position:absolute; inset:0;
  background: linear-gradient(135deg, #3a2418 0%, #1a0e0a 100%);
  opacity:0.4;
}
.scn-baron-dialogue .doorway {
  position:absolute; right:15%; bottom:10%; width:20%; height:60%;
  background: linear-gradient(180deg, #0a0503 0%, #1a0e0a 100%);
  border-radius: 0 0 20% 20%;
  box-shadow: inset 0 0 20px rgba(0,0,0,0.8);
}
.scn-baron-dialogue .figure-a {
  position:absolute; bottom:20%; left:30%; width:12%; height:35%;
  background: radial-gradient(ellipse at 50% 100%, #2a1a12 0%, #0a0503 100%);
  border-radius: 50% 50% 40% 40% / 70% 70% 30% 30%;
  transform-origin: bottom center;
  animation: bd-figA 6s ease-in-out infinite alternate;
}
.scn-baron-dialogue .figure-b {
  position:absolute; bottom:22%; left:45%; width:10%; height:30%;
  background: radial-gradient(ellipse at 50% 100%, #2a1a12 0%, #0a0503 100%);
  border-radius: 50% 50% 40% 40% / 70% 70% 30% 30%;
  transform-origin: bottom center;
  animation: bd-figB 6s ease-in-out infinite alternate-reverse;
}
.scn-baron-dialogue .hand-kiss {
  position:absolute; bottom:28%; left:42%; width:4%; height:6%;
  background: radial-gradient(ellipse at 50% 50%, #5a3a2a 0%, #3a221a 100%);
  border-radius: 50%;
  animation: bd-hand 3s ease-in-out infinite;
}
.scn-baron-dialogue .lamp-dialogue {
  position:absolute; left:55%; bottom:35%; width:3%; height:10%;
  background: linear-gradient(180deg, #c0a080 0%, #8a6a4a 100%);
  border-radius: 50% 50% 20% 20% / 60% 60% 20% 20%;
  animation: bd-lamp 7s ease-in-out infinite alternate;
}
.scn-baron-dialogue .glow-dialogue {
  position:absolute; left:54%; bottom:37%; width:10%; height:10%;
  background: radial-gradient(circle, #ffc040 0%, #ffa040 40%, transparent 70%);
  border-radius: 50%;
  filter: blur(5px);
  mix-blend-mode: screen;
  animation: bd-glow 3s ease-in-out infinite alternate;
}
@keyframes bd-figA {
  0% { transform: translateX(0) rotate(0); }
  50% { transform: translateX(2%) rotate(2deg); }
  100% { transform: translateX(0) rotate(0); }
}
@keyframes bd-figB {
  0% { transform: translateX(0) rotate(0); }
  50% { transform: translateX(-2%) rotate(-2deg); }
  100% { transform: translateX(0) rotate(0); }
}
@keyframes bd-hand {
  0% { transform: scale(1) rotate(0); }
  33% { transform: scale(1.1) rotate(10deg); }
  66% { transform: scale(0.9) rotate(-10deg); }
  100% { transform: scale(1) rotate(0); }
}
@keyframes bd-lamp {
  0% { transform: rotate(-2deg); }
  100% { transform: rotate(2deg); }
}
@keyframes bd-glow {
  0% { opacity:0.4; transform: scale(0.9); }
  50% { opacity:0.8; transform: scale(1.1); }
  100% { opacity:0.5; transform: scale(1); }
}

.scn-baron-speech {
  background: 
    linear-gradient(180deg, #2e1e14 0%, #1a0e0a 50%, #0a0503 100%),
    radial-gradient(ellipse at 50% 40%, #6a2a0a 0%, transparent 60%);
}
.scn-baron-speech .wall-bg {
  position:absolute; inset:0;
  background: linear-gradient(135deg, #3a2418 0%, #1a0e0a 100%);
  opacity:0.3;
}
.scn-baron-speech .bookshelf {
  position:absolute; top:5%; right:5%; width:25%; height:70%;
  background: linear-gradient(180deg, #3a221a 0%, #1a0e0a 100%);
  border-radius: 4px;
  box-shadow: inset 0 0 20px rgba(0,0,0,0.6);
}
.scn-baron-speech .lectern {
  position:absolute; bottom:15%; left:25%; width:10%; height:20%;
  background: linear-gradient(180deg, #4a2a1a 0%, #2a1a0e 100%);
  border-radius: 4px 4px 0 0;
  box-shadow: 0 -4px 8px rgba(0,0,0,0.5);
}
.scn-baron-speech .baron-figure {
  position:absolute; bottom:20%; left:32%; width:12%; height:35%;
  background: radial-gradient(ellipse at 50% 100%, #2a1a12 0%, #0a0503 100%);
  border-radius: 50% 50% 40% 40% / 70% 70% 30% 30%;
  transform-origin: bottom center;
  animation: bs-baron 7s ease-in-out infinite alternate;
}
.scn-baron-speech .wife-figure {
  position:absolute; bottom:22%; left:48%; width:10%; height:30%;
  background: radial-gradient(ellipse at 50% 100%, #2a1a12 0%, #0a0503 100%);
  border-radius: 50% 50% 40% 40% / 70% 70% 30% 30%;
  transform-origin: bottom center;
  animation: bs-wife 7s ease-in-out infinite alternate-reverse;
}
.scn-baron-speech .lantern-speech {
  position:absolute; left:20%; bottom:40%; width:4%; height:12%;
  background: linear-gradient(180deg, #c0a080 0%, #8a6a4a 100%);
  border-radius: 50% 50% 20% 20% / 60% 60% 20% 20%;
  animation: bs-lantern 10s ease-in-out infinite alternate;
}
.scn-baron-speech .glow-speech {
  position:absolute; left:19%; bottom:42%; width:14%; height:14%;
  background: radial-gradient(circle, #ffd060 0%, #ffa040 40%, transparent 70%);
  border-radius: 50%;
  filter: blur(8px);
  mix-blend-mode: screen;
  animation: bs-glow 4s ease-in-out infinite alternate;
}
.scn-baron-speech .mote {
  position:absolute; top:20%; left:40%; width:2%; height:2%;
  background: radial-gradient(circle, #ffd060 0%, transparent 100%);
  border-radius: 50%;
  filter: blur(3px);
  animation: bs-mote1 20s linear infinite;
}
.scn-baron-speech .mote-2 {
  position:absolute; top:30%; left:50%; width:2%; height:2%;
  background: radial-gradient(circle, #ffd060 0%, transparent 100%);
  border-radius: 50%;
  filter: blur(3px);
  animation: bs-mote2 25s linear infinite;
}
@keyframes bs-baron {
  0% { transform: translateX(0) rotate(0); }
  50% { transform: translateX(1%) rotate(1deg); }
  100% { transform: translateX(0) rotate(-1deg); }
}
@keyframes bs-wife {
  0% { transform: translateX(0) rotate(0); }
  50% { transform: translateX(-1%) rotate(-1deg); }
  100% { transform: translateX(0) rotate(1deg); }
}
@keyframes bs-lantern {
  0% { transform: rotate(-3deg); }
  100% { transform: rotate(3deg); }
}
@keyframes bs-glow {
  0% { opacity:0.4; transform: scale(0.9); }
  50% { opacity:0.9; transform: scale(1.1); }
  100% { opacity:0.5; transform: scale(1); }
}
@keyframes bs-mote1 {
  0% { transform: translateY(0) translateX(0) rotate(0); opacity:0; }
  10% { opacity:0.8; }
  90% { opacity:0.8; }
  100% { transform: translateY(-300px) translateX(50px) rotate(360deg); opacity:0; }
}
@keyframes bs-mote2 {
  0% { transform: translateY(0) translateX(0) rotate(0); opacity:0; }
  15% { opacity:0.6; }
  85% { opacity:0.6; }
  100% { transform: translateY(-250px) translateX(-30px) rotate(-360deg); opacity:0; }
}

.scn-storytelling-house-description {
  background: 
    linear-gradient(180deg, #f5e6d0 0%, #e8d5b0 40%, #d4b890 100%),
    radial-gradient(ellipse at 50% 30%, #fff8e7 0%, transparent 70%);
}
.scn-storytelling-house-description .wall {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(180deg, #e8d5b0 0%, #d4b890 100%);
}
.scn-storytelling-house-description .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 40%;
  background: linear-gradient(180deg, #b89a78 0%, #9b7d5e 100%);
  border-radius: 0 0 10% 10%;
}
.scn-storytelling-house-description .window {
  position: absolute; top: 15%; left: 35%; width: 30%; height: 45%;
  background: radial-gradient(ellipse, #fffae8 30%, #e0cfa0 70%, #d4b890 100%);
  border: 6px solid #8a6d4b;
  border-radius: 8px;
  box-shadow: inset 0 0 30px #fffae8;
  animation: shd-window 8s ease-in-out infinite alternate;
}
.scn-storytelling-house-description .curtains {
  position: absolute; top: 8%; left: 30%; width: 40%; height: 55%;
  background: linear-gradient(135deg, #c8553d 0%, #a0461a 50%, #c8553d 100%);
  border-radius: 0 0 20% 20% / 0 0 40% 40%;
  opacity: 0.6;
  animation: shd-curtain 6s ease-in-out infinite alternate;
}
.scn-storytelling-house-description .silhouette {
  position: absolute; bottom: 35%; left: 45%; width: 12%; height: 30%;
  background: #2a1a0e;
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: shd-figure 12s ease-in-out infinite alternate;
}
.scn-storytelling-house-description .table {
  position: absolute; bottom: 35%; left: 38%; width: 20%; height: 12%;
  background: linear-gradient(180deg, #6a4a3a, #3a2a1a);
  border-radius: 6px;
  box-shadow: 0 4px 8px rgba(0,0,0,0.3);
}
.scn-storytelling-house-description .glass {
  position: absolute; bottom: 44%; left: 45%; width: 4%; height: 8%;
  background: linear-gradient(180deg, rgba(255,255,200,0.8), rgba(200,180,120,0.5));
  border-radius: 0 0 30% 30% / 20% 20% 40% 40%;
  box-shadow: 0 0 12px 3px rgba(255,220,150,0.5);
  animation: shd-glass 4s ease-in-out infinite;
}
@keyframes shd-window {
  0% { opacity: 0.7; box-shadow: inset 0 0 20px #fffae8; }
  50% { opacity: 1; box-shadow: inset 0 0 40px #fffae8, 0 0 20px rgba(255,250,232,0.3); }
  100% { opacity: 0.8; box-shadow: inset 0 0 25px #fffae8; }
}
@keyframes shd-curtain {
  0% { transform: translateX(-2px) scale(1); }
  50% { transform: translateX(2px) scale(1.02); }
  100% { transform: translateX(-1px) scale(1); }
}
@keyframes shd-figure {
  0% { transform: translateY(0) rotate(-2deg); }
  50% { transform: translateY(-4px) rotate(2deg); }
  100% { transform: translateY(0) rotate(-1deg); }
}
@keyframes shd-glass {
  0%, 100% { box-shadow: 0 0 8px 2px rgba(255,220,150,0.3); }
  50% { box-shadow: 0 0 16px 6px rgba(255,220,150,0.6); }
}

.scn-storytelling-house-description2 {
  background: 
    linear-gradient(180deg, #f0dcc0 0%, #dcc8a8 60%, #c8b090 100%),
    radial-gradient(ellipse at 70% 50%, #fff5e0 0%, transparent 60%);
}
.scn-storytelling-house-description2 .wall {
  position: absolute; inset: 0 30% 30% 0;
  background: linear-gradient(135deg, #e0c9a8, #cbb28e);
  border-radius: 0 0 20% 0;
}
.scn-storytelling-house-description2 .stairs {
  position: absolute; bottom: 20%; left: 10%; width: 40%; height: 60%;
  background: repeating-linear-gradient(
    45deg,
    #b89a78 0px, #b89a78 12px,
    #a17e58 12px, #a17e58 24px
  );
  clip-path: polygon(10% 100%, 90% 100%, 70% 0%, 30% 0%);
  animation: shd2-stairs 20s ease-in-out infinite alternate;
}
.scn-storytelling-house-description2 .door {
  position: absolute; bottom: 30%; left: 55%; width: 20%; height: 50%;
  background: linear-gradient(180deg, #6a4a3a, #4a2a1a);
  border: 4px solid #3a1a0a;
  border-radius: 6px 6px 0 0;
  box-shadow: inset 0 0 10px rgba(0,0,0,0.4);
}
.scn-storytelling-house-description2 .shadow-figure {
  position: absolute; bottom: 25%; left: 60%; width: 10%; height: 35%;
  background: #2a1a0e;
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  opacity: 0.7;
  animation: shd2-shadow 8s ease-in-out infinite alternate;
}
.scn-storytelling-house-description2 .lamp {
  position: absolute; bottom: 45%; left: 70%; width: 6%; height: 12%;
  background: radial-gradient(circle, #ffe080 0%, #c8a050 60%, transparent 80%);
  border-radius: 50%;
  box-shadow: 0 0 30px 8px rgba(255,224,128,0.5);
  animation: shd2-lamp 3s ease-in-out infinite alternate;
}
.scn-storytelling-house-description2 .rug {
  position: absolute; bottom: 10%; left: 20%; width: 50%; height: 15%;
  background: linear-gradient(90deg, #702243 0%, #a0461a 50%, #702243 100%);
  border-radius: 30% 30% 10% 10% / 50% 50% 20% 20%;
  opacity: 0.8;
  animation: shd2-rug 15s ease-in-out infinite;
}
@keyframes shd2-stairs {
  0% { transform: scaleY(1); }
  50% { transform: scaleY(0.98) translateY(-2px); }
  100% { transform: scaleY(1); }
}
@keyframes shd2-shadow {
  0% { transform: translateX(0) rotate(0deg); }
  50% { transform: translateX(5px) rotate(3deg); }
  100% { transform: translateX(0) rotate(0deg); }
}
@keyframes shd2-lamp {
  0% { opacity: 0.8; box-shadow: 0 0 20px 5px rgba(255,224,128,0.4); }
  50% { opacity: 1; box-shadow: 0 0 40px 12px rgba(255,224,128,0.7); }
  100% { opacity: 0.9; box-shadow: 0 0 25px 6px rgba(255,224,128,0.5); }
}
@keyframes shd2-rug {
  0%, 100% { opacity: 0.7; }
  50% { opacity: 0.9; }
}

.scn-storytelling-return-yany {
  background: 
    linear-gradient(180deg, #f2e1c8 0%, #ddc7a8 50%, #c4aa88 100%),
    radial-gradient(ellipse at 40% 70%, #fff5e0 0%, transparent 60%);
}
.scn-storytelling-return-yany .wall {
  position: absolute; inset: 0 20% 35% 0;
  background: linear-gradient(180deg, #e6d2b5, #ccb394);
  border-radius: 0 0 30% 0;
}
.scn-storytelling-return-yany .desk {
  position: absolute; bottom: 30%; left: 25%; width: 30%; height: 8%;
  background: linear-gradient(180deg, #6a4a3a, #4a2a1a);
  border-radius: 4px;
  box-shadow: 0 4px 8px rgba(0,0,0,0.3);
}
.scn-storytelling-return-yany .chair {
  position: absolute; bottom: 30%; left: 30%; width: 14%; height: 25%;
  background: linear-gradient(180deg, #5a3a2a, #3a1a0a);
  border-radius: 10% 10% 0 0 / 20% 20% 0 0;
  transform-origin: bottom center;
  animation: sry-chair 10s ease-in-out infinite alternate;
}
.scn-storytelling-return-yany .candle {
  position: absolute; bottom: 38%; left: 32%; width: 3%; height: 12%;
  background: linear-gradient(180deg, #fffae0 20%, #e8c080 50%, #c09040 100%);
  border-radius: 50% 50% 10% 10% / 60% 60% 20% 20%;
  box-shadow: 0 0 20px 6px rgba(255,220,130,0.6);
  animation: sry-candle 4s ease-in-out infinite;
}
.scn-storytelling-return-yany .bookshelf {
  position: absolute; bottom: 25%; left: 60%; width: 20%; height: 50%;
  background: repeating-linear-gradient(
    180deg,
    #8a6d4b 0px, #8a6d4b 8px,
    #6a4a3a 8px, #6a4a3a 10px,
    #8a6d4b 10px, #8a6d4b 18px,
    #5a3a2a 18px, #5a3a2a 20px
  );
  border-radius: 4px;
  box-shadow: inset 0 0 10px rgba(0,0,0,0.3);
  animation: sry-bookshelf 18s ease-in-out infinite alternate;
}
.scn-storytelling-return-yany .silhouette {
  position: absolute; bottom: 30%; left: 18%; width: 10%; height: 35%;
  background: #2a1a0e;
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: sry-figure 12s ease-in-out infinite;
}
@keyframes sry-chair {
  0% { transform: translateX(0) rotate(0deg); }
  50% { transform: translateX(2px) rotate(2deg); }
  100% { transform: translateX(0) rotate(0deg); }
}
@keyframes sry-candle {
  0% { opacity: 0.8; transform: translateY(0); }
  50% { opacity: 1; transform: translateY(-2px) scale(1.02); }
  100% { opacity: 0.85; transform: translateY(0); }
}
@keyframes sry-bookshelf {
  0% { transform: scale(1); }
  50% { transform: scale(0.99) translateY(-1px); }
  100% { transform: scale(1); }
}
@keyframes sry-figure {
  0%, 100% { transform: translateY(0) rotate(-1deg); }
  50% { transform: translateY(-3px) rotate(1deg); }
}

.scn-listeners-question {
  background: 
    linear-gradient(180deg, #3a2a2a 0%, #2a1a1a 60%, #1a0a0a 100%),
    radial-gradient(ellipse at 50% 30%, #5a4a3a 0%, transparent 70%);
}
.scn-listeners-question .stage {
  position: absolute; bottom: 30%; left: 5%; width: 90%; height: 50%;
  background: linear-gradient(180deg, #8a6d4b 0%, #6a4a3a 100%);
  border-radius: 10% 10% 0 0;
  box-shadow: inset 0 10px 30px rgba(0,0,0,0.5);
}
.scn-listeners-question .curtain-left {
  position: absolute; top: 0; left: 0; width: 30%; height: 100%;
  background: linear-gradient(135deg, #702243 0%, #5e1a1d 50%, #702243 100%);
  border-radius: 0 20% 50% 0 / 0 0 30% 0;
  animation: lq-curtain-l 7s ease-in-out infinite alternate;
}
.scn-listeners-question .curtain-right {
  position: absolute; top: 0; right: 0; width: 30%; height: 100%;
  background: linear-gradient(225deg, #702243 0%, #5e1a1d 50%, #702243 100%);
  border-radius: 20% 0 0 50% / 0 0 0 30%;
  animation: lq-curtain-r 7s ease-in-out infinite alternate;
}
.scn-listeners-question .seats {
  position: absolute; bottom: 5%; left: 10%; width: 80%; height: 25%;
  background: repeating-linear-gradient(
    90deg,
    #4a3a2a 0px, #4a3a2a 8px,
    #3a2a1a 8px, #3a2a1a 10px,
    #4a3a2a 10px, #4a3a2a 18px,
    #2a1a0a 18px, #2a1a0a 20px
  );
  border-radius: 20% 20% 0 0;
  opacity: 0.8;
}
.scn-listeners-question .audience {
  position: absolute; bottom: 8%; left: 20%; width: 60%; height: 20%;
  background: radial-gradient(ellipse at 50% 80%, #2a1a0e 40%, transparent 70%);
  border-radius: 50%;
  animation: lq-audience 30s ease-in-out infinite alternate;
}
.scn-listeners-question .spotlight {
  position: absolute; top: 5%; left: 35%; width: 30%; height: 40%;
  background: radial-gradient(ellipse at 50% 100%, rgba(255,240,200,0.6) 0%, transparent 70%);
  clip-path: polygon(20% 0%, 80% 0%, 100% 100%, 0% 100%);
  animation: lq-spotlight 5s ease-in-out infinite alternate;
}
@keyframes lq-curtain-l {
  0% { transform: translateX(0) scaleX(1); }
  50% { transform: translateX(-5px) scaleX(1.02); }
  100% { transform: translateX(0) scaleX(1); }
}
@keyframes lq-curtain-r {
  0% { transform: translateX(0) scaleX(1); }
  50% { transform: translateX(5px) scaleX(1.02); }
  100% { transform: translateX(0) scaleX(1); }
}
@keyframes lq-audience {
  0% { opacity: 0.5; transform: scale(1); }
  50% { opacity: 0.7; transform: scale(1.01); }
  100% { opacity: 0.5; transform: scale(1); }
}
@keyframes lq-spotlight {
  0% { opacity: 0.7; transform: translateY(-2px); }
  50% { opacity: 1; transform: translateY(2px); }
  100% { opacity: 0.8; transform: translateY(-1px); }
}

.scn-item-gray-hair {
  background:
    radial-gradient(ellipse at 50% 30%, #7a5a3a 0%, transparent 60%),
    linear-gradient(180deg, #3a2a1a 0%, #1a120a 100%);
}
.scn-item-gray-hair .bg-stage {
  position: absolute; inset: 40% 0 0 0;
  background: linear-gradient(180deg, #2a1a0a 0%, #0a0502 100%);
  animation: sit1-stage 20s ease-in-out infinite alternate;
}
.scn-item-gray-hair .box-proscenium {
  position: absolute; bottom: 10%; left: 25%; width: 50%; height: 60%;
  background: linear-gradient(135deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 8% 8% 4% 4%;
  box-shadow: inset 0 0 40px rgba(0,0,0,0.6);
}
.scn-item-gray-hair .curtain-left {
  position: absolute; bottom: 10%; left: 20%; width: 12%; height: 70%;
  background: linear-gradient(135deg, #5e3a2a 0%, #3a1a0a 100%);
  border-radius: 0 60% 40% 0 / 0 80% 60% 0;
  transform-origin: top left;
  animation: sit1-curtain 8s ease-in-out infinite alternate;
}
.scn-item-gray-hair .curtain-right {
  position: absolute; bottom: 10%; right: 20%; width: 12%; height: 70%;
  background: linear-gradient(225deg, #5e3a2a 0%, #3a1a0a 100%);
  border-radius: 60% 0 0 40% / 80% 0 0 60%;
  transform-origin: top right;
  animation: sit1-curtain 8s ease-in-out infinite alternate-reverse;
}
.scn-item-gray-hair .figure-woman {
  position: absolute; bottom: 20%; left: 40%; width: 10%; height: 35%;
  background: linear-gradient(180deg, #1a0a05 0%, #0a0502 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%;
  margin-left: -5%;
  animation: sit1-figure 12s ease-in-out infinite alternate;
}
.scn-item-gray-hair .hair-gray {
  position: absolute; bottom: 48%; left: 40%; width: 12%; height: 12%;
  background: radial-gradient(ellipse at 50% 30%, #b0a090 0%, #7a7060 60%, transparent 100%);
  border-radius: 50% 50% 0 0 / 60% 60% 0 0;
  margin-left: -6%;
  filter: blur(1px);
  animation: sit1-hair 6s ease-in-out infinite alternate;
}
.scn-item-gray-hair .light-spot {
  position: absolute; bottom: 15%; left: 35%; width: 30%; height: 30%;
  background: radial-gradient(ellipse, rgba(220,180,120,0.3) 0%, rgba(220,180,120,0.05) 60%, transparent 100%);
  animation: sit1-spot 5s ease-in-out infinite alternate;
}
.scn-item-gray-hair .shadow-overlay {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, transparent 0%, rgba(0,0,0,0.6) 70%);
  pointer-events: none;
}
@keyframes sit1-stage {
  0%, 100% { opacity: 0.7; }
  50% { opacity: 1; }
}
@keyframes sit1-curtain {
  0% { transform: scaleX(1) skewX(0deg); }
  100% { transform: scaleX(1.05) skewX(-3deg); }
}
@keyframes sit1-figure {
  0% { transform: translateX(0) translateY(0) rotate(0deg); }
  30% { transform: translateX(2%) translateY(-1%) rotate(1deg); }
  60% { transform: translateX(-1%) translateY(0) rotate(-1deg); }
  100% { transform: translateX(0) translateY(0) rotate(0deg); }
}
@keyframes sit1-hair {
  0%, 100% { opacity: 0.8; }
  50% { opacity: 1; }
}
@keyframes sit1-spot {
  0% { opacity: 0.4; transform: scale(1); }
  100% { opacity: 0.7; transform: scale(1.2); }
}

.scn-theater-recognition {
  background:
    radial-gradient(ellipse at 30% 40%, #4a3a2a 0%, transparent 70%),
    linear-gradient(180deg, #2a1a0a 0%, #1a0a05 100%);
}
.scn-theater-recognition .bg-auditorium {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, #3a2a1a 0%, #0a0502 100%);
  opacity: 0.6;
}
.scn-theater-recognition .box-baroness {
  position: absolute; bottom: 10%; left: 30%; width: 40%; height: 50%;
  background: linear-gradient(135deg, #5a3a2a 0%, #2a1a0a 100%);
  border-radius: 10% 10% 5% 5%;
  box-shadow: inset 0 0 30px rgba(0,0,0,0.5);
  animation: sit2-box 15s ease-in-out infinite alternate;
}
.scn-theater-recognition .figure-kassowski {
  position: absolute; bottom: 18%; left: 35%; width: 8%; height: 30%;
  background: linear-gradient(180deg, #2a1a0a 0%, #0a0502 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  margin-left: -4%;
  transform-origin: bottom center;
  animation: sit2-figure 10s ease-in-out infinite alternate;
}
.scn-theater-recognition .head-turn {
  position: absolute; bottom: 42%; left: 35%; width: 6%; height: 8%;
  background: radial-gradient(ellipse at 30% 40%, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 50%;
  margin-left: -3%;
  animation: sit2-turn 6s ease-in-out infinite alternate;
}
.scn-theater-recognition .sconce-light {
  position: absolute; bottom: 30%; right: 25%; width: 4%; height: 20%;
  background: radial-gradient(ellipse, #f0c080 0%, transparent 100%);
  border-radius: 50%;
  box-shadow: 0 0 20px 10px rgba(240,192,128,0.3);
  animation: sit2-light 4s ease-in-out infinite alternate;
}
.scn-theater-recognition .program-drop {
  position: absolute; bottom: 15%; left: 50%; width: 10%; height: 5%;
  background: linear-gradient(135deg, #c8b090 0%, #a08060 100%);
  border-radius: 20% 20% 40% 40%;
  animation: sit2-program 8s ease-in-out infinite;
}
@keyframes sit2-box {
  0%, 100% { transform: scale(1); }
  50% { transform: scale(0.98); }
}
@keyframes sit2-figure {
  0% { transform: translateY(0) rotate(0deg); }
  30% { transform: translateY(-2%) rotate(2deg); }
  60% { transform: translateY(0) rotate(-1deg); }
  100% { transform: translateY(0) rotate(0deg); }
}
@keyframes sit2-turn {
  0% { transform: rotate(0deg) scaleX(1); }
  50% { transform: rotate(15deg) scaleX(1.1); }
  100% { transform: rotate(0deg) scaleX(1); }
}
@keyframes sit2-light {
  0%, 100% { opacity: 0.5; }
  50% { opacity: 0.9; }
}
@keyframes sit2-program {
  0%, 100% { transform: translateY(0) rotate(5deg); }
  50% { transform: translateY(5%) rotate(-5deg); }
}

.scn-theater-friend-arrival {
  background:
    radial-gradient(ellipse at 60% 30%, #3a2a1a 0%, transparent 60%),
    linear-gradient(180deg, #2a1a0a 0%, #1a0a05 100%);
}
.scn-theater-friend-arrival .bg-passage {
  position: absolute; inset: 0;
  background: linear-gradient(90deg, #1a0a05 0%, #2a1a0a 30%, #1a0a05 70%, #0a0502 100%);
  animation: sit3-passage 25s ease-in-out infinite alternate;
}
.scn-theater-friend-arrival .box-door {
  position: absolute; bottom: 20%; left: 40%; width: 20%; height: 50%;
  background: linear-gradient(135deg, #5a3a2a 0%, #2a1a0a 100%);
  border-radius: 10% 10% 0 0;
  box-shadow: inset 0 0 40px rgba(0,0,0,0.5);
}
.scn-theater-friend-arrival .figure-friend {
  position: absolute; bottom: 15%; left: 35%; width: 8%; height: 40%;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0a05 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  margin-left: -4%;
  transform-origin: bottom center;
  animation: sit3-friend 8s ease-in-out infinite;
}
.scn-theater-friend-arrival .figure-hat {
  position: absolute; bottom: 48%; left: 35%; width: 10%; height: 6%;
  background: linear-gradient(135deg, #2a1a0a 0%, #0a0502 100%);
  border-radius: 50% 50% 0 0;
  margin-left: -5%;
  animation: sit3-hat 4s ease-in-out infinite alternate;
}
.scn-theater-friend-arrival .gaslamp {
  position: absolute; bottom: 30%; right: 20%; width: 4%; height: 25%;
  background: radial-gradient(ellipse, #f0d080 0%, #c09040 100%);
  border-radius: 50%;
  box-shadow: 0 0 30px 8px rgba(240,208,128,0.3);
  animation: sit3-gas 3s ease-in-out infinite alternate;
}
.scn-theater-friend-arrival .carpet-pattern {
  position: absolute; bottom: 0; left: 20%; width: 60%; height: 15%;
  background: linear-gradient(90deg, #5a3a2a 25%, #3a1a0a 25%, #3a1a0a 50%, #5a3a2a 50%, #5a3a2a 75%, #3a1a0a 75%);
  background-size: 8% 100%;
  opacity: 0.4;
}
.scn-theater-friend-arrival .shadow-shaft {
  position: absolute; bottom: 0; left: 0; width: 30%; height: 100%;
  background: linear-gradient(90deg, rgba(0,0,0,0.4) 0%, transparent 100%);
}
@keyframes sit3-passage {
  0%, 100% { opacity: 0.6; }
  50% { opacity: 0.8; }
}
@keyframes sit3-friend {
  0% { transform: translateX(-5%) translateY(0) rotate(0deg); }
  25% { transform: translateX(0) translateY(-2%) rotate(2deg); }
  50% { transform: translateX(5%) translateY(0) rotate(-2deg); }
  75% { transform: translateX(0) translateY(-1%) rotate(1deg); }
  100% { transform: translateX(-5%) translateY(0) rotate(0deg); }
}
@keyframes sit3-hat {
  0%, 100% { transform: translateX(0) rotate(0deg); }
  50% { transform: translateX(2%) rotate(-5deg); }
}
@keyframes sit3-gas {
  0% { opacity: 0.4; transform: scale(1); }
  100% { opacity: 0.8; transform: scale(1.2); }
}

.scn-theater-revelation {
  background:
    radial-gradient(ellipse at 50% 20%, #4a3a2a 0%, transparent 70%),
    linear-gradient(180deg, #1a0a05 0%, #0a0502 100%);
}
.scn-theater-revelation .bg-theater-wide {
  position: absolute; inset: 0;
  background: linear-gradient(135deg, #2a1a0a 0%, #0a0502 40%, #1a0a05 70%, #0a0502 100%);
  opacity: 0.5;
}
.scn-theater-revelation .box-couple {
  position: absolute; bottom: 10%; left: 35%; width: 30%; height: 40%;
  background: linear-gradient(135deg, #5a3a2a 0%, #2a1a0a 100%);
  border-radius: 10% 10% 5% 5%;
  box-shadow: inset 0 0 40px rgba(0,0,0,0.5);
  animation: sit4-box 12s ease-in-out infinite alternate;
}
.scn-theater-revelation .figure-man {
  position: absolute; bottom: 15%; left: 38%; width: 8%; height: 35%;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0a05 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  margin-left: -4%;
  transform-origin: bottom center;
  animation: sit4-man 10s ease-in-out infinite alternate;
}
.scn-theater-revelation .figure-woman-profile {
  position: absolute; bottom: 15%; right: 38%; width: 7%; height: 32%;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  margin-right: -3.5%;
  transform-origin: bottom center;
  animation: sit4-woman 14s ease-in-out infinite alternate;
}
.scn-theater-revelation .chandelier {
  position: absolute; top: 5%; left: 40%; width: 20%; height: 15%;
  background:
    radial-gradient(ellipse at 50% 30%, #f0d080 0%, transparent 60%),
    linear-gradient(180deg, #c8b090 0%, #8a7050 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  box-shadow: 0 0 30px 10px rgba(240,208,128,0.3);
  animation: sit4-chandelier 5s ease-in-out infinite alternate;
}
.scn-theater-revelation .curtain-top {
  position: absolute; top: 0; left: 10%; width: 80%; height: 10%;
  background: linear-gradient(135deg, #5e3a2a 0%, #3a1a0a 100%);
  border-radius: 0 0 50% 50%;
  transform-origin: top center;
  animation: sit4-curtain 8s ease-in-out infinite alternate;
}
.scn-theater-revelation .sparkle {
  position: absolute; top: 12%; left: 45%; width: 2%; height: 2%;
  background: radial-gradient(circle, #fff 0%, #f0d080 100%);
  border-radius: 50%;
  box-shadow: 0 0 8px 4px rgba(240,208,128,0.5);
  animation: sit4-sparkle 2s ease-in-out infinite alternate;
}
.scn-theater-revelation .applause-shadow {
  position: absolute; bottom: 0; left: 0; width: 100%; height: 20%;
  background: linear-gradient(180deg, transparent 0%, rgba(0,0,0,0.4) 100%);
  pointer-events: none;
}
@keyframes sit4-box {
  0%, 100% { transform: scale(1); }
  50% { transform: scale(0.98); }
}
@keyframes sit4-man {
  0% { transform: translateY(0) rotate(0deg); }
  30% { transform: translateY(-2%) rotate(3deg); }
  60% { transform: translateY(0) rotate(-2deg); }
  100% { transform: translateY(0) rotate(0deg); }
}
@keyframes sit4-woman {
  0%, 100% { transform: translateY(0) rotate(0deg) scaleX(1); }
  50% { transform: translateY(-1%) rotate(-2deg) scaleX(0.95); }
}
@keyframes sit4-chandelier {
  0% { transform: translateY(0) rotate(0deg); opacity: 0.7; }
  100% { transform: translateY(5%) rotate(3deg); opacity: 0.9; }
}
@keyframes sit4-curtain {
  0% { transform: scaleY(1); }
  100% { transform: scaleY(1.05); }
}
@keyframes sit4-sparkle {
  0%, 100% { opacity: 0.2; }
  50% { opacity: 0.8; }
}

.scn-baron-applauds {
  background: linear-gradient(180deg, #3a2a1a 0%, #2a1a0a 40%, #4a3a2a 100%),
              radial-gradient(ellipse at 50% 30%, #5a3a2a 0%, transparent 70%);
}
.scn-baron-applauds .bg-wall { position:absolute; inset:0 0 40% 0; background: linear-gradient(180deg, #4a3a2a 0%, transparent 100%); }
.scn-baron-applauds .bg-floor { position:absolute; bottom:0; left:0; right:0; height:40%; background: linear-gradient(180deg, #2a1a0a 0%, #1a0a00 100%); box-shadow: inset 0 10px 20px rgba(0,0,0,.6); }
.scn-baron-applauds .stage { position:absolute; bottom:35%; left:15%; right:15%; height:8%; background: linear-gradient(180deg, #5a3a2a 0%, #4a2a1a 100%); border-radius: 4px 4px 0 0; box-shadow: 0 -2px 10px rgba(255,200,100,.3); animation: ba-stage 6s ease-in-out infinite; }
.scn-baron-applauds .singer { position:absolute; bottom:40%; left:50%; width:30px; height:50px; transform:translateX(-50%); background: linear-gradient(180deg, #6a4a3a 0%, #3a2a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: ba-singer 4s ease-in-out infinite; }
.scn-baron-applauds .chair-baron { position:absolute; bottom:38%; right:20%; width:40px; height:50px; background: linear-gradient(180deg, #5a3a2a 0%, #3a2a1a 100%); border-radius: 10px; box-shadow: 0 4px 8px rgba(0,0,0,.5); }
.scn-baron-applauds .baron { position:absolute; bottom:38%; right:22%; width:24px; height:40px; background: linear-gradient(180deg, #2a1a0a 0%, #1a0a00 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: ba-baron 8s ease-in-out infinite; }
.scn-baron-applauds .hand-clap { position:absolute; bottom:44%; right:22%; width:8px; height:6px; background: #a08060; border-radius: 50%; box-shadow: 0 0 6px #c0a080; animation: ba-clap 1s ease-in-out infinite; }
.scn-baron-applauds .lamp { position:absolute; top:10%; left:10%; width:12px; height:20px; background: linear-gradient(180deg, #c0a060 0%, #a08040 100%); border-radius: 50% 50% 20% 20%; box-shadow: 0 0 20px 6px #e0c080, 0 0 40px 12px rgba(224,192,128,.5); animation: ba-lamp 5s ease-in-out infinite alternate; }
.scn-baron-applauds .candle { position:absolute; top:14%; left:10%; width:4px; height:14px; background: #f0d0a0; border-radius: 2px; box-shadow: 0 -4px 8px #fff0c0; animation: ba-candle 3s ease-in-out infinite alternate; }
@keyframes ba-stage { 0%,100% { opacity:0.9 } 50% { opacity:1 } }
@keyframes ba-singer { 0% { transform: translateX(-50%) translateY(0) rotate(-2deg) } 33% { transform: translateX(-50%) translateY(-2px) rotate(0) } 66% { transform: translateX(-50%) translateY(0) rotate(2deg) } 100% { transform: translateX(-50%) translateY(0) rotate(-2deg) } }
@keyframes ba-baron { 0% { transform: rotate(0) } 25% { transform: rotate(5deg) } 50% { transform: rotate(0) } 75% { transform: rotate(-5deg) } 100% { transform: rotate(0) } }
@keyframes ba-clap { 0%,100% { transform: translate(0,0) scale(1) } 50% { transform: translate(2px, -2px) scale(1.3) } }
@keyframes ba-lamp { 0% { opacity:0.8; box-shadow: 0 0 15px 4px #e0c080, 0 0 30px 8px rgba(224,192,128,.4) } 100% { opacity:1; box-shadow: 0 0 25px 8px #f0d090, 0 0 50px 16px rgba(240,208,144,.6) } }
@keyframes ba-candle { 0% { height:14px; opacity:0.9 } 50% { height:16px; opacity:1 } 100% { height:14px; opacity:0.9 } }

.scn-song-discussion {
  background: linear-gradient(180deg, #2a2218 0%, #1a120a 50%, #3a2a1a 100%),
              radial-gradient(ellipse at 50% 20%, #4a3a2a 0%, transparent 70%);
}
.scn-song-discussion .bg-wall { position:absolute; inset:0 0 45% 0; background: linear-gradient(180deg, #3a2a1a 0%, transparent 100%); }
.scn-song-discussion .bg-floor { position:absolute; bottom:0; left:0; right:0; height:45%; background: linear-gradient(180deg, #1a120a 0%, #0a0804 100%); box-shadow: inset 0 8px 16px rgba(0,0,0,.5); }
.scn-song-discussion .table { position:absolute; bottom:30%; left:30%; right:30%; height:10%; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius: 4px; box-shadow: 0 6px 12px rgba(0,0,0,.4); animation: sd-table 10s ease-in-out infinite; }
.scn-song-discussion .baron-seated { position:absolute; bottom:32%; left:35%; width:22px; height:38px; background: linear-gradient(180deg, #2a1a0a 0%, #1a0a00 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: sd-baron 6s ease-in-out infinite; }
.scn-song-discussion .narrator-seated { position:absolute; bottom:32%; right:35%; width:20px; height:36px; background: linear-gradient(180deg, #3a2a1a 0%, #2a1a0a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: sd-narrator 8s ease-in-out infinite; }
.scn-song-discussion .lamp-desk { position:absolute; bottom:40%; left:50%; width:14px; height:18px; transform:translateX(-50%); background: linear-gradient(180deg, #e0c080 0%, #c0a060 100%); border-radius: 50% 50% 20% 20%; box-shadow: 0 0 30px 8px #f0d090, 0 0 60px 18px rgba(240,208,144,.4); animation: sd-lamp 7s ease-in-out infinite alternate; }
.scn-song-discussion .wine-glass { position:absolute; bottom:35%; left:48%; width:6px; height:14px; background: #a08060; border-radius: 0 0 4px 4px; box-shadow: 0 0 4px #c0a080; animation: sd-glass 4s ease-in-out infinite; }
.scn-song-discussion .curtain { position:absolute; top:0; right:0; width:20%; height:100%; background: linear-gradient(180deg, #4a2a1a 0%, #3a1a0a 100%); clip-path: polygon(0 0,100% 0,100% 100%,0 90%); opacity:0.6; }
@keyframes sd-table { 0%,100% { transform: translateY(0) } 50% { transform: translateY(-1px) } }
@keyframes sd-baron { 0% { transform: rotate(0) } 33% { transform: rotate(2deg) } 66% { transform: rotate(-2deg) } 100% { transform: rotate(0) } }
@keyframes sd-narrator { 0% { transform: rotate(0) } 25% { transform: rotate(-3deg) } 75% { transform: rotate(3deg) } 100% { transform: rotate(0) } }
@keyframes sd-lamp { 0% { opacity:0.85; box-shadow: 0 0 20px 4px #f0d090, 0 0 40px 10px rgba(240,208,144,.3) } 100% { opacity:1; box-shadow: 0 0 35px 10px #ffd0a0, 0 0 70px 20px rgba(255,208,160,.5) } }
@keyframes sd-glass { 0% { transform: translateY(0) rotate(0) } 50% { transform: translateY(-1px) rotate(3deg) } 100% { transform: translateY(0) rotate(0) } }

.scn-baroness-departure {
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 40%, #2a1a2a 100%),
              radial-gradient(ellipse at 50% 40%, #3a2a3a 0%, transparent 70%);
}
.scn-baroness-departure .bg-wall { position:absolute; inset:0 0 50% 0; background: linear-gradient(180deg, #2a1a2a 0%, transparent 100%); }
.scn-baroness-departure .bg-floor { position:absolute; bottom:0; left:0; right:0; height:50%; background: linear-gradient(180deg, #0a0a1a 0%, #00000a 100%); box-shadow: inset 0 8px 20px rgba(0,0,0,.7); }
.scn-baroness-departure .chair { position:absolute; bottom:35%; left:30%; width:40px; height:50px; background: linear-gradient(180deg, #3a2a2a 0%, #1a1a2a 100%); border-radius: 8px; box-shadow: 0 4px 8px rgba(0,0,0,.5); animation: bd-chair 12s ease-in-out infinite; }
.scn-baroness-departure .baroness-standing { position:absolute; bottom:35%; left:38%; width:22px; height:46px; background: linear-gradient(180deg, #2a1a2a 0%, #1a0a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: bd-baroness 4s ease-in-out infinite; }
.scn-baroness-departure .door { position:absolute; bottom:20%; right:15%; width:30px; height:60px; background: linear-gradient(180deg, #3a2a2a 0%, #2a1a1a 100%); border-radius: 4px 4px 0 0; box-shadow: inset 0 0 10px #000; }
.scn-baroness-departure .shadow-door { position:absolute; bottom:20%; right:15%; width:30px; height:60px; background: rgba(0,0,0,.4); transform: translateX(6px); filter: blur(8px); }
.scn-baroness-departure .lamp-flicker { position:absolute; top:10%; left:50%; width:10px; height:16px; transform:translateX(-50%); background: linear-gradient(180deg, #c08060 0%, #a06040 100%); border-radius: 50% 50% 20% 20%; box-shadow: 0 0 40px 10px #d09070, 0 0 80px 20px rgba(208,144,112,.5); animation: bd-lamp 0.5s ease-in-out infinite alternate; }
.scn-baroness-departure .circle-tired { position:absolute; bottom:40%; left:40%; width:8px; height:6px; background: #4a3a4a; border-radius: 50%; box-shadow: 0 0 6px #3a2a3a; animation: bd-circles 3s ease-in-out infinite; }
@keyframes bd-chair { 0%,100% { transform: translateY(0) } 50% { transform: translateY(-2px) } }
@keyframes bd-baroness { 0% { transform: translate(0,0) rotate(-2deg) } 25% { transform: translate(4px, -2px) rotate(0) } 50% { transform: translate(8px, -4px) rotate(2deg) } 75% { transform: translate(12px, -2px) rotate(0) } 100% { transform: translate(16px,0) rotate(-2deg) } }
@keyframes bd-lamp { 0% { opacity:0.8; box-shadow: 0 0 30px 6px #d09070, 0 0 60px 14px rgba(208,144,112,.4) } 100% { opacity:1; box-shadow: 0 0 50px 14px #f0a080, 0 0 100px 28px rgba(240,160,128,.6) } }
@keyframes bd-circles { 0% { opacity:0.4; transform: scale(1) } 50% { opacity:0.8; transform: scale(1.5) } 100% { opacity:0.4; transform: scale(1) } }

.scn-baron-bedtime {
  background: linear-gradient(180deg, #2a2218 0%, #1a120a 50%, #3a2a1a 100%),
              radial-gradient(ellipse at 50% 30%, #4a3a2a 0%, transparent 70%);
}
.scn-baron-bedtime .bg-wall { position:absolute; inset:0 0 40% 0; background: linear-gradient(180deg, #3a2a1a 0%, transparent 100%); }
.scn-baron-bedtime .bg-floor { position:absolute; bottom:0; left:0; right:0; height:40%; background: linear-gradient(180deg, #1a120a 0%, #0a0804 100%); box-shadow: inset 0 10px 20px rgba(0,0,0,.6); }
.scn-baron-bedtime .bed { position:absolute; bottom:10%; left:20%; right:20%; height:30%; background: linear-gradient(180deg, #4a3a2a 0%, #3a2a1a 100%); border-radius: 10px 10px 4px 4px; box-shadow: 0 8px 16px rgba(0,0,0,.5); animation: bb-bed 10s ease-in-out infinite; }
.scn-baron-bedtime .pillow { position:absolute; bottom:25%; left:30%; width:20px; height:12px; background: linear-gradient(180deg, #c0a080 0%, #a08060 100%); border-radius: 50%; box-shadow: inset 0 -2px 4px rgba(0,0,0,.3); animation: bb-pillow 6s ease-in-out infinite; }
.scn-baron-bedtime .dove { position:absolute; bottom:35%; left:40%; width:16px; height:12px; background: radial-gradient(circle at 50% 40%, #e0d0c0 0%, #c0b0a0 70%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: bb-dove 8s ease-in-out infinite; }
.scn-baron-bedtime .baron-arm { position:absolute; bottom:32%; left:25%; width:12px; height:20px; background: linear-gradient(180deg, #2a1a0a 0%, #1a0a00 100%); border-radius: 40% 40% 20% 20%; transform-origin: bottom center; transform: rotate(-20deg); animation: bb-arm 5s ease-in-out infinite; }
.scn-baron-bedtime .lantern { position:absolute; top:15%; left:60%; width:8px; height:14px; background: linear-gradient(180deg, #e0c080 0%, #c0a060 100%); border-radius: 50% 50% 20% 20%; box-shadow: 0 0 20px 4px #f0d090, 0 0 40px 10px rgba(240,208,144,.4); animation: bb-lantern 6s ease-in-out infinite alternate; }
.scn-baron-bedtime .candle-melt { position:absolute; top:18%; left:60%; width:3px; height:10px; background: #f0d0a0; border-radius: 1px; box-shadow: 0 -2px 4px #fff0c0; animation: bb-candle 4s ease-in-out infinite alternate; }
@keyframes bb-bed { 0%,100% { transform: translateY(0) } 50% { transform: translateY(-1px) } }
@keyframes bb-pillow { 0% { transform: translateY(0) rotate(0) } 33% { transform: translateY(-1px) rotate(2deg) } 66% { transform: translateY(0) rotate(-2deg) } 100% { transform: translateY(0) rotate(0) } }
@keyframes bb-dove { 0% { transform: translateY(0) scale(1) } 25% { transform: translateY(-3px) scale(0.95) rotate(-3deg) } 75% { transform: translateY(-1px) scale(1.05) rotate(3deg) } 100% { transform: translateY(0) scale(1) } }
@keyframes bb-arm { 0% { transform: rotate(-20deg) } 50% { transform: rotate(-15deg) translateY(-2px) } 100% { transform: rotate(-20deg) } }
@keyframes bb-lantern { 0% { opacity:0.8; box-shadow: 0 0 15px 3px #f0d090, 0 0 30px 8px rgba(240,208,144,.3) } 100% { opacity:1; box-shadow: 0 0 30px 8px #ffd0a0, 0 0 60px 16px rgba(255,208,160,.5) } }
@keyframes bb-candle { 0% { height:10px; opacity:0.9 } 50% { height:12px; opacity:1 } 100% { height:10px; opacity:0.9 } }

.scn-frame-narrator-comment { background: linear-gradient(180deg, #f5e6d0 0%, #e8d5b8 100%), radial-gradient(ellipse at 50% 0%, #fff4e0 0%, transparent 70%); }
.scn-frame-narrator-comment .room-wall { position:absolute; inset:0 0 35% 0; background: linear-gradient(180deg, #dcc9ae 0%, #c8b59a 100%); box-shadow: inset 0 4px 20px rgba(0,0,0,.05); }
.scn-frame-narrator-comment .room-floor { position:absolute; bottom:0; left:0; right:0; height:35%; background: linear-gradient(180deg, #b8a080 0%, #a08868 100%); border-radius: 0 0 4% 4%; box-shadow: inset 0 -8px 20px rgba(0,0,0,.1); }
.scn-frame-narrator-comment .window-frame { position:absolute; top:8%; right:6%; width:22%; height:40%; background: linear-gradient(180deg, #d0b898 0%, #bca080 100%); border-radius: 4% 4% 2% 2%; box-shadow: 0 4px 12px rgba(0,0,0,.15); }
.scn-frame-narrator-comment .window-light { position:absolute; top:10%; right:8%; width:18%; height:34%; background: linear-gradient(135deg, #fff8e0 0%, #ffe8b0 100%); box-shadow: 0 0 30px 10px rgba(255,232,176,.3); animation: fnc-glow 4s ease-in-out infinite alternate; }
.scn-frame-narrator-comment .chair-chair1 { position:absolute; bottom:12%; left:12%; width:14%; height:18%; background: linear-gradient(180deg, #8a6a4a 0%, #6a4a2a 100%); border-radius: 20% 20% 10% 10% / 40% 40% 20% 20%; box-shadow: 0 6px 12px rgba(0,0,0,.2); }
.scn-frame-narrator-comment .figure-fig1 { position:absolute; bottom:15%; left:14%; width:8%; height:22%; background: linear-gradient(180deg, #5a3a2a 0%, #3a2212 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: fnc-sit 6s ease-in-out infinite; }
.scn-frame-narrator-comment .figure-fig2 { position:absolute; bottom:14%; left:28%; width:8%; height:20%; background: linear-gradient(180deg, #5a3a2a 0%, #3a2212 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: fnc-sit 6s ease-in-out infinite 1s; }
.scn-frame-narrator-comment .table-lamp { position:absolute; bottom:8%; left:38%; width:6%; height:12%; background: linear-gradient(180deg, #c0a080 0%, #a08060 100%); border-radius: 50% 50% 20% 20%; box-shadow: 0 0 20px 8px rgba(255,200,120,.4); animation: fnc-lamp 3s ease-in-out infinite alternate; }
.scn-frame-narrator-comment .table-glow { position:absolute; bottom:0; left:30%; width:20%; height:30%; background: radial-gradient(ellipse at 50% 100%, rgba(255,200,120,.25) 0%, transparent 70%); pointer-events: none; }
@keyframes fnc-glow { 0% { opacity:.7; transform: scale(1) } 50% { opacity:1; transform: scale(1.02) } 100% { opacity:.85; transform: scale(1) } }
@keyframes fnc-sit { 0% { transform: translateY(0) rotate(-1deg) } 25% { transform: translateY(-2px) rotate(2deg) } 50% { transform: translateY(0) rotate(-1deg) } 75% { transform: translateY(-1px) rotate(1deg) } 100% { transform: translateY(0) rotate(0) } }
@keyframes fnc-lamp { 0% { box-shadow: 0 0 15px 5px rgba(255,200,120,.3); } 50% { box-shadow: 0 0 30px 12px rgba(255,200,120,.6); } 100% { box-shadow: 0 0 20px 8px rgba(255,200,120,.4); } }

.scn-carpathian-approach { background: linear-gradient(180deg, #6a7a8a 0%, #8a9aaa 40%, #b0c0d0 100%), radial-gradient(ellipse at 50% 0%, #c0d0e0 0%, transparent 60%); }
.scn-carpathian-approach .sky-overcast { position:absolute; inset:0 0 30% 0; background: linear-gradient(180deg, #7a8a9a 0%, #9aaaba 100%); animation: cap-sky 12s ease-in-out infinite alternate; }
.scn-carpathian-approach .mountains-bg { position:absolute; bottom:30%; left:0; right:0; height:40%; background: linear-gradient(180deg, #4a5a6a 0%, #2a3a4a 100%); border-radius: 40% 60% 0 0 / 80% 70% 0 0; box-shadow: inset 0 10px 30px rgba(0,0,0,.3); animation: cap-mtn 18s ease-in-out infinite alternate; }
.scn-carpathian-approach .snow-ground { position:absolute; bottom:0; left:0; right:0; height:30%; background: linear-gradient(180deg, #e0e8f0 0%, #c0d0e0 100%); border-radius: 20% 30% 0 0 / 40% 50% 0 0; box-shadow: inset 0 8px 20px rgba(0,0,0,.1); }
.scn-carpathian-approach .coach-body { position:absolute; bottom:10%; left:20%; width:20%; height:15%; background: linear-gradient(180deg, #3a2a1a 0%, #1a0a00 100%); border-radius: 10% 10% 5% 5%; box-shadow: 0 6px 12px rgba(0,0,0,.5); animation: cap-coach 4s ease-in-out infinite; }
.scn-carpathian-approach .coach-wheel { position:absolute; bottom:8%; left:22%; width:6%; height:8%; background: radial-gradient(circle, #5a4a3a 0%, #2a1a0a 80%); border-radius: 50%; box-shadow: 0 0 0 2px #1a0a00; animation: cap-wheel 2s linear infinite; }
.scn-carpathian-approach .driver-figure { position:absolute; bottom:22%; left:22%; width:6%; height:10%; background: linear-gradient(180deg, #2a1a0a 0%, #0a0000 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: cap-driver 3s ease-in-out infinite; }
.scn-carpathian-approach .wolf-shape { position:absolute; bottom:32%; left:60%; width:8%; height:10%; background: linear-gradient(180deg, #4a4a5a 0%, #2a2a3a 100%); border-radius: 50% 40% 30% 40% / 60% 50% 40% 50%; filter: blur(2px); animation: cap-wolf 8s ease-in-out infinite 2s; }
.scn-carpathian-approach .snowflakes-fall { position:absolute; inset:0; background: repeating-linear-gradient(45deg, rgba(255,255,255,.2) 0px, rgba(255,255,255,.2) 2px, transparent 2px, transparent 10px); animation: cap-snow 20s linear infinite; }
@keyframes cap-sky { 0% { opacity:.7 } 50% { opacity:1 } 100% { opacity:.8 } }
@keyframes cap-mtn { 0% { transform: translateY(0) scale(1) } 50% { transform: translateY(-4px) scale(1.02) } 100% { transform: translateY(0) scale(1) } }
@keyframes cap-coach { 0% { transform: translateX(-2px) rotate(-1deg) } 25% { transform: translateX(2px) rotate(1deg) } 50% { transform: translateX(-1px) rotate(-0.5deg) } 75% { transform: translateX(1px) rotate(0.5deg) } 100% { transform: translateX(-2px) rotate(-1deg) } }
@keyframes cap-wheel { 0% { transform: rotate(0deg) } 25% { transform: rotate(90deg) } 50% { transform: rotate(180deg) } 75% { transform: rotate(270deg) } 100% { transform: rotate(360deg) } }
@keyframes cap-driver { 0% { transform: translateY(0) rotate(-2deg) } 25% { transform: translateY(-2px) rotate(2deg) } 50% { transform: translateY(0) rotate(-1deg) } 75% { transform: translateY(-1px) rotate(1deg) } 100% { transform: translateY(0) rotate(0) } }
@keyframes cap-wolf { 0% { transform: translateX(0) scale(1); opacity:.3 } 50% { transform: translateX(-8px) scale(1.1); opacity:.7 } 100% { transform: translateX(0) scale(1); opacity:.3 } }
@keyframes cap-snow { 0% { background-position: 0 0 } 100% { background-position: 100% 100% } }

.scn-yany-silhouette { background: linear-gradient(180deg, #2a1a3a 0%, #4a2a5a 50%, #6a4a7a 100%), radial-gradient(ellipse at 30% 100%, #8a5a6a 0%, transparent 70%); }
.scn-yany-silhouette .dusk-sky { position:absolute; inset:0 0 20% 0; background: linear-gradient(180deg, #5a3a6a 0%, #8a6a7a 40%, #b08070 100%); animation: ysi-sky 14s ease-in-out infinite alternate; }
.scn-yany-silhouette .horizon-hills { position:absolute; bottom:20%; left:0; right:0; height:25%; background: linear-gradient(180deg, #2a1a2a 0%, #1a0a1a 100%); border-radius: 60% 40% 0 0 / 80% 60% 0 0; box-shadow: inset 0 8px 20px rgba(0,0,0,.4); }
.scn-yany-silhouette .building-left { position:absolute; bottom:25%; left:15%; width:18%; height:40%; background: linear-gradient(180deg, #1a0a1a 0%, #0a000a 100%); border-radius: 4% 4% 0 0; box-shadow: 0 0 20px rgba(0,0,0,.6); }
.scn-yany-silhouette .building-center { position:absolute; bottom:25%; left:38%; width:24%; height:50%; background: linear-gradient(180deg, #1a0a1a 0%, #0a000a 100%); border-radius: 4% 4% 0 0; box-shadow: 0 0 20px rgba(0,0,0,.6); }
.scn-yany-silhouette .building-right { position:absolute; bottom:25%; right:12%; width:16%; height:35%; background: linear-gradient(180deg, #1a0a1a 0%, #0a000a 100%); border-radius: 4% 4% 0 0; box-shadow: 0 0 20px rgba(0,0,0,.6); }
.scn-yany-silhouette .window-glow { position:absolute; bottom:38%; left:42%; width:6%; height:8%; background: radial-gradient(circle, #b07040 0%, #804020 70%); border-radius: 10% 10% 5% 5%; box-shadow: 0 0 24px 8px #904020, 0 0 40px 12px rgba(144,64,32,.4); animation: ysi-glow 3s ease-in-out infinite alternate; }
.scn-yany-silhouette .figure-silhouette { position:absolute; bottom:22%; left:60%; width:6%; height:14%; background: linear-gradient(180deg, #0a000a 0%, #000000 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: ysi-fig 5s ease-in-out infinite; }
.scn-yany-silhouette .copper-light { position:absolute; top:10%; left:5%; width:90%; height:30%; background: radial-gradient(ellipse at 30% 100%, rgba(200,120,80,.15) 0%, transparent 80%); pointer-events: none; animation: ysi-copper 8s ease-in-out infinite alternate; }
@keyframes ysi-sky { 0% { opacity:.8; background-position: 0% 0% } 50% { opacity:1; background-position: 50% 0% } 100% { opacity:.7; background-position: 100% 0% } }
@keyframes ysi-glow { 0% { box-shadow: 0 0 15px 4px #904020, 0 0 30px 8px rgba(144,64,32,.3); opacity:.7 } 50% { box-shadow: 0 0 30px 10px #b06030, 0 0 50px 15px rgba(176,96,48,.5); opacity:1 } 100% { box-shadow: 0 0 20px 6px #904020, 0 0 35px 10px rgba(144,64,32,.35); opacity:.8 } }
@keyframes ysi-fig { 0% { transform: translateX(0) translateY(0) rotate(-1deg) } 25% { transform: translateX(3px) translateY(-1px) rotate(2deg) } 50% { transform: translateX(0) translateY(0) rotate(-1deg) } 75% { transform: translateX(-3px) translateY(-1px) rotate(1deg) } 100% { transform: translateX(0) translateY(0) rotate(0) } }
@keyframes ysi-copper { 0% { opacity:.3 } 50% { opacity:.6 } 100% { opacity:.4 } }

.scn-yany-avenue { background: linear-gradient(180deg, #1a1a2a 0%, #2a2a3a 50%, #3a3a4a 100%), radial-gradient(ellipse at 50% 0%, #4a4a5a 0%, transparent 60%); }
.scn-yany-avenue .avenue-sky { position:absolute; inset:0 0 40% 0; background: linear-gradient(180deg, #2a2a3a 0%, #3a3a4a 100%); animation: yav-sky 20s ease-in-out infinite alternate; }
.scn-yany-avenue .mist-layer { position:absolute; inset:0; background: radial-gradient(ellipse at 50% 0%, rgba(100,100,120,.2) 0%, transparent 70%); animation: yav-mist 15s ease-in-out infinite alternate; }
.scn-yany-avenue .poplar-left { position:absolute; bottom:30%; left:8%; width:12%; height:55%; background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%); border-radius: 20% 20% 0 0 / 10% 10% 0 0; animation: yav-pop 8s ease-in-out infinite; }
.scn-yany-avenue .poplar-right { position:absolute; bottom:30%; right:8%; width:12%; height:55%; background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%); border-radius: 20% 20% 0 0 / 10% 10% 0 0; animation: yav-pop 8s ease-in-out infinite 2s; }
.scn-yany-avenue .poplar-far { position:absolute; bottom:35%; left:38%; width:8%; height:40%; background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%); border-radius: 20% 20% 0 0 / 10% 10% 0 0; animation: yav-pop 8s ease-in-out infinite 4s; }
.scn-yany-avenue .path-ground { position:absolute; bottom:0; left:20%; right:20%; height:30%; background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%); border-radius: 0 0 30% 30% / 0 0 60% 60%; box-shadow: inset 0 8px 20px rgba(0,0,0,.3); }
.scn-yany-avenue .faint-light-1 { position:absolute; bottom:30%; left:15%; width:4%; height:4%; background: radial-gradient(circle, rgba(200,180,160,.4) 0%, transparent 70%); border-radius:50%; animation: yav-light 6s ease-in-out infinite alternate; }
.scn-yany-avenue .faint-light-2 { position:absolute; bottom:32%; right:15%; width:4%; height:4%; background: radial-gradient(circle, rgba(200,180,160,.3) 0%, transparent 70%); border-radius:50%; animation: yav-light 6s ease-in-out infinite alternate 3s; }
.scn-yany-avenue .ghost-mist { position:absolute; bottom:20%; left:0; right:0; height:30%; background: linear-gradient(180deg, rgba(180,180,200,.05) 0%, rgba(180,180,200,.15) 100%); filter: blur(10px); animation: yav-ghost 25s linear infinite; }
@keyframes yav-sky { 0% { opacity:.6 } 50% { opacity:1 } 100% { opacity:.7 } }
@keyframes yav-mist { 0% { opacity:.3; transform: scale(1) } 50% { opacity:.6; transform: scale(1.05) } 100% { opacity:.4; transform: scale(1) } }
@keyframes yav-pop { 0% { transform: translateY(0) scaleY(1) } 25% { transform: translateY(-2px) scaleY(1.02) } 50% { transform: translateY(0) scaleY(1) } 75% { transform: translateY(-1px) scaleY(1.01) } 100% { transform: translateY(0) scaleY(1) } }
@keyframes yav-light { 0% { opacity:.1; transform: scale(.8) } 50% { opacity:.5; transform: scale(1.2) } 100% { opacity:.2; transform: scale(1) } }
@keyframes yav-ghost { 0% { transform: translateX(-10%) translateY(0) } 50% { transform: translateX(5%) translateY(-2px) } 100% { transform: translateX(20%) translateY(0) } }

.scn-item-cigars {
  background:
    linear-gradient(180deg, #2a1e1a 0%, #1a1210 40%, #0f0a08 100%),
    radial-gradient(ellipse at 50% 80%, #4a2a1a 0%, transparent 60%);
}
.scn-item-cigars .bg-wall {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, #3a2a22 0%, #1a1210 100%);
  animation: ci-wall 6s ease-in-out infinite alternate;
}
.scn-item-cigars .table {
  position: absolute; bottom: 10%; left: 10%; right: 10%; height: 20%;
  background: linear-gradient(180deg, #5a3a2a 0%, #3a2218 100%);
  border-radius: 4% 4% 0 0;
  box-shadow: 0 -4px 12px rgba(0,0,0,.6);
  animation: ci-table 10s ease-in-out infinite;
}
.scn-item-cigars .cigar {
  position: absolute; bottom: 28%; left: 35%; width: 8px; height: 40px;
  background: linear-gradient(180deg, #8a5a3a 0%, #5a3a22 100%);
  border-radius: 30% 30% 20% 20%;
  transform-origin: bottom center;
  animation: ci-cigar 4s ease-in-out infinite;
}
.scn-item-cigars .flask {
  position: absolute; bottom: 26%; left: 50%; width: 24px; height: 34px;
  background: linear-gradient(180deg, rgba(180,200,220,.3) 0%, rgba(100,140,180,.2) 100%);
  border-radius: 20% 20% 10% 10%;
  box-shadow: 0 2px 6px rgba(0,0,0,.4), inset 0 0 8px rgba(200,220,240,.2);
  transform: rotate(-5deg);
  animation: ci-flask 8s ease-in-out infinite alternate;
}
.scn-item-cigars .beaker {
  position: absolute; bottom: 25%; left: 62%; width: 18px; height: 28px;
  background: linear-gradient(180deg, rgba(220,200,160,.3) 0%, rgba(180,160,100,.2) 100%);
  border-radius: 10% 10% 30% 30%;
  box-shadow: 0 2px 4px rgba(0,0,0,.5);
  animation: ci-beaker 6s ease-in-out infinite alternate;
}
.scn-item-cigars .smoke {
  position: absolute; width: 30px; height: 30px;
  background: radial-gradient(circle, rgba(200,180,160,.3) 0%, transparent 70%);
  filter: blur(4px);
  border-radius: 50%;
}
.scn-item-cigars .smoke-1 {
  bottom: 50%; left: 36%;
  animation: ci-smoke-1 12s ease-out infinite;
}
.scn-item-cigars .smoke-2 {
  bottom: 55%; left: 38%;
  animation: ci-smoke-2 15s ease-out infinite 3s;
}
.scn-item-cigars .hand {
  position: absolute; bottom: 24%; left: 28%; width: 30px; height: 40px;
  background: linear-gradient(180deg, #c8a080 0%, #a07858 100%);
  border-radius: 50% 40% 40% 40% / 60% 50% 50% 40%;
  transform: rotate(-20deg) scale(0.9);
  transform-origin: bottom left;
  animation: ci-hand 5s ease-in-out infinite alternate;
}
@keyframes ci-wall {
  0% { opacity: 0.9; }
  50% { opacity: 1; }
  100% { opacity: 0.85; }
}
@keyframes ci-table {
  0%, 100% { transform: translateY(0); }
  50% { transform: translateY(-1px); }
}
@keyframes ci-cigar {
  0%, 100% { transform: rotate(0deg) translateY(0); }
  25% { transform: rotate(3deg) translateY(-1px); }
  75% { transform: rotate(-3deg) translateY(1px); }
}
@keyframes ci-flask {
  0% { transform: rotate(-5deg) translateY(0); opacity: 0.7; }
  50% { transform: rotate(0deg) translateY(-1px); opacity: 1; }
  100% { transform: rotate(5deg) translateY(0); opacity: 0.7; }
}
@keyframes ci-beaker {
  0% { transform: rotate(0deg); opacity: 0.8; }
  50% { transform: rotate(-8deg); opacity: 1; }
  100% { transform: rotate(8deg); opacity: 0.8; }
}
@keyframes ci-smoke-1 {
  0% { opacity: 0; transform: translateY(0) scale(0.5); }
  20% { opacity: 0.4; }
  100% { opacity: 0; transform: translateY(-80px) scale(1.5); }
}
@keyframes ci-smoke-2 {
  0% { opacity: 0; transform: translateY(0) scale(0.5); }
  20% { opacity: 0.3; }
  100% { opacity: 0; transform: translateY(-100px) scale(2); }
}
@keyframes ci-hand {
  0% { transform: rotate(-20deg) scale(0.9); }
  50% { transform: rotate(-15deg) scale(1); }
  100% { transform: rotate(-25deg) scale(0.95); }
}

.scn-baron-cachinnation {
  background:
    linear-gradient(180deg, #1a1a2a 0%, #0e0e1a 60%, #06060e 100%),
    radial-gradient(ellipse at 50% 70%, #2a2a4a 0%, transparent 60%);
}
.scn-baron-cachinnation .bg-dark {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, #1e1e2e 0%, #0a0a12 100%);
  animation: bc-bg 10s ease-in-out infinite alternate;
}
.scn-baron-cachinnation .window-frame {
  position: absolute; top: 15%; left: 20%; right: 20%; bottom: 30%;
  border: 6px solid #3a2a1a;
  background: linear-gradient(180deg, #2a2a3a 0%, #0e0e1a 100%);
  border-radius: 4% 4% 6% 6%;
  box-shadow: inset 0 0 20px rgba(0,0,0,.7);
  animation: bc-frame 8s ease-in-out infinite;
}
.scn-baron-cachinnation .moon {
  position: absolute; top: 20%; left: 60%; width: 30px; height: 30px;
  background: radial-gradient(circle, #d0d0e0 0%, #8080a0 100%);
  border-radius: 50%;
  box-shadow: 0 0 40px 10px rgba(200,200,240,.3);
  animation: bc-moon 15s ease-in-out infinite alternate;
}
.scn-baron-cachinnation .baron-silhouette {
  position: absolute; bottom: 30%; left: 42%; width: 40px; height: 70px;
  background: linear-gradient(180deg, #0a0a12 0%, #000 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: bc-baron 6s ease-in-out infinite;
}
.scn-baron-cachinnation .wolf-silhouette {
  position: absolute; bottom: 30%; left: 30%; width: 50px; height: 24px;
  background: linear-gradient(90deg, #0a0a12 0%, #14141e 50%, #0a0a12 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform: scaleX(-1);
  animation: bc-wolf 4s ease-in-out infinite alternate;
}
.scn-baron-cachinnation .shadow-stripe {
  position: absolute; bottom: 30%; left: 10%; right: 10%; height: 4px;
  background: linear-gradient(90deg, transparent, #14141e 30%, transparent 70%);
  filter: blur(2px);
  animation: bc-stripe 7s ease-in-out infinite;
}
@keyframes bc-bg {
  0% { opacity: 0.8; }
  50% { opacity: 1; }
  100% { opacity: 0.7; }
}
@keyframes bc-frame {
  0%, 100% { transform: scale(1); }
  50% { transform: scale(1.02); }
}
@keyframes bc-moon {
  0% { transform: translateY(0) scale(1); opacity: 0.8; }
  50% { transform: translateY(-5px) scale(1.1); opacity: 1; }
  100% { transform: translateY(0) scale(1); opacity: 0.9; }
}
@keyframes bc-baron {
  0% { transform: translateX(0) rotate(0deg); }
  25% { transform: translateX(3px) rotate(2deg); }
  50% { transform: translateX(-2px) rotate(-1deg); }
  75% { transform: translateX(2px) rotate(1deg); }
  100% { transform: translateX(0) rotate(0deg); }
}
@keyframes bc-wolf {
  0% { transform: scaleX(-1) translateY(0) rotate(0deg); }
  50% { transform: scaleX(-1) translateY(-3px) rotate(5deg); }
  100% { transform: scaleX(-1) translateY(0) rotate(0deg); }
}
@keyframes bc-stripe {
  0% { opacity: 0.2; transform: scaleX(0.5); }
  50% { opacity: 0.6; transform: scaleX(1); }
  100% { opacity: 0.2; transform: scaleX(0.5); }
}

.scn-baron-promise {
  background:
    linear-gradient(180deg, #3a2a1a 0%, #2a1a0e 50%, #1a120a 100%),
    radial-gradient(ellipse at 70% 80%, #6a4a2a 0%, transparent 60%);
}
.scn-baron-promise .bg-warm {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0e 100%);
  animation: bp-bg 8s ease-in-out infinite alternate;
}
.scn-baron-promise .fireplace {
  position: absolute; bottom: 20%; left: 10%; width: 80px; height: 60px;
  background: linear-gradient(180deg, #5a3a22 0%, #3a2212 100%);
  border-radius: 8% 8% 4% 4%;
  box-shadow: 0 -4px 12px rgba(100,60,30,.5);
  animation: bp-fireplace 10s ease-in-out infinite;
}
.scn-baron-promise .fire-glow {
  position: absolute; bottom: 22%; left: 14%; width: 20px; height: 30px;
  background: radial-gradient(circle, #d09050 0%, #b07030 60%, transparent 100%);
  border-radius: 50%;
  box-shadow: 0 0 40px 20px rgba(200,120,40,.5), 0 0 80px 40px rgba(200,120,40,.2);
  animation: bp-fire 3s ease-in-out infinite alternate;
}
.scn-baron-promise .baron-back {
  position: absolute; bottom: 25%; left: 35%; width: 50px; height: 80px;
  background: linear-gradient(180deg, #2a1a0e 0%, #0e0804 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: bp-baron 7s ease-in-out infinite;
}
.scn-baron-promise .narrator-hand {
  position: absolute; bottom: 30%; right: 30%; width: 30px; height: 30px;
  background: linear-gradient(180deg, #b08060 0%, #906048 100%);
  border-radius: 40% 40% 50% 50% / 30% 30% 50% 50%;
  transform: rotate(30deg);
  transform-origin: bottom left;
  animation: bp-hand 5s ease-in-out infinite alternate;
}
.scn-baron-promise .brandy-glass {
  position: absolute; bottom: 33%; right: 28%; width: 12px; height: 16px;
  background: linear-gradient(180deg, rgba(200,180,140,.4) 0%, rgba(160,120,60,.2) 100%);
  border-radius: 20% 20% 10% 10%;
  box-shadow: 0 2px 4px rgba(0,0,0,.3);
  animation: bp-glass 6s ease-in-out infinite alternate;
}
.scn-baron-promise .wall-sconce {
  position: absolute; top: 20%; right: 15%; width: 6px; height: 20px;
  background: linear-gradient(180deg, #6a4a2a 0%, #3a2a1a 100%);
  border-radius: 10%;
}
@keyframes bp-bg {
  0% { opacity: 0.9; }
  50% { opacity: 1; }
  100% { opacity: 0.8; }
}
@keyframes bp-fireplace {
  0%, 100% { transform: scale(1); }
  50% { transform: scale(1.02); }
}
@keyframes bp-fire {
  0% { transform: scale(0.8) rotate(0deg); opacity: 0.7; box-shadow: 0 0 20px 10px rgba(200,120,40,.4); }
  50% { transform: scale(1.2) rotate(5deg); opacity: 1; box-shadow: 0 0 60px 30px rgba(200,120,40,.6); }
  100% { transform: scale(0.9) rotate(-3deg); opacity: 0.8; box-shadow: 0 0 30px 15px rgba(200,120,40,.5); }
}
@keyframes bp-baron {
  0% { transform: translateX(0) rotate(0deg); }
  25% { transform: translateX(2px) rotate(1deg); }
  50% { transform: translateX(-1px) rotate(-2deg); }
  75% { transform: translateX(1px) rotate(1deg); }
  100% { transform: translateX(0) rotate(0deg); }
}
@keyframes bp-hand {
  0% { transform: rotate(30deg) scale(1); }
  50% { transform: rotate(25deg) scale(1.1); }
  100% { transform: rotate(35deg) scale(0.95); }
}
@keyframes bp-glass {
  0% { transform: rotate(5deg); opacity: 0.6; }
  50% { transform: rotate(-5deg); opacity: 1; }
  100% { transform: rotate(10deg); opacity: 0.7; }
}

.scn-hounds-howling {
  background:
    linear-gradient(180deg, #0e0e1a 0%, #1a1a2e 40%, #0a0a12 100%),
    radial-gradient(ellipse at 50% 30%, #2a2a4e 0%, transparent 70%);
}
.scn-hounds-howling .bg-night {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, #12121e 0%, #08080e 100%);
  animation: hh-night 12s ease-in-out infinite alternate;
}
.scn-hounds-howling .window {
  position: absolute; top: 15%; left: 15%; right: 15%; bottom: 35%;
  border: 8px solid #2a1a12;
  background: linear-gradient(180deg, #1a1a2e 0%, #0a0a16 100%);
  border-radius: 6% 6% 10% 10%;
  box-shadow: inset 0 0 30px rgba(0,0,0,.7);
  animation: hh-window 9s ease-in-out infinite alternate;
}
.scn-hounds-howling .moon-hh {
  position: absolute; top: 8%; left: 55%; width: 24px; height: 24px;
  background: radial-gradient(circle, #c0c0d0 0%, #8080a0 100%);
  border-radius: 50%;
  box-shadow: 0 0 30px 8px rgba(180,180,220,.3);
  animation: hh-moon 20s linear infinite;
}
.scn-hounds-howling .howling-hound {
  position: absolute; bottom: 35%; width: 40px; height: 30px;
  background: linear-gradient(180deg, #0a0a12 0%, #06060c 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%;
  transform-origin: bottom center;
}
.scn-hounds-howling .hound-1 {
  left: 20%;
  animation: hh-howl-1 5s ease-in-out infinite;
}
.scn-hounds-howling .hound-2 {
  left: 35%;
  animation: hh-howl-2 6s ease-in-out infinite 1s;
}
.scn-hounds-howling .hound-3 {
  left: 55%;
  animation: hh-howl-3 7s ease-in-out infinite 2s;
}
.scn-hounds-howling .sound-ripple {
  position: absolute; bottom: 30%; width: 8px; height: 8px;
  background: rgba(200,200,240,.15);
  border-radius: 50%;
  filter: blur(4px);
}
.scn-hounds-howling .ripple-1 {
  left: 22%;
  animation: hh-ripple 4s ease-out infinite;
}
.scn-hounds-howling .ripple-2 {
  left: 50%;
  animation: hh-ripple 5s ease-out infinite 1.5s;
}
@keyframes hh-night {
  0% { opacity: 0.8; }
  50% { opacity: 1; }
  100% { opacity: 0.7; }
}
@keyframes hh-window {
  0% { transform: scale(1); }
  50% { transform: scale(1.01); }
  100% { transform: scale(0.99); }
}
@keyframes hh-moon {
  0% { transform: translateX(0); }
  100% { transform: translateX(20px); }
}
@keyframes hh-howl-1 {
  0% { transform: translateY(0) rotate(0deg); }
  30% { transform: translateY(-4px) rotate(15deg); }
  60% { transform: translateY(-2px) rotate(-5deg); }
  100% { transform: translateY(0) rotate(0deg); }
}
@keyframes hh-howl-2 {
  0% { transform: translateY(0) rotate(0deg); }
  25% { transform: translateY(-5px) rotate(20deg); }
  50% { transform: translateY(-3px) rotate(-10deg); }
  75% { transform: translateY(-1px) rotate(5deg); }
  100% { transform: translateY(0) rotate(0deg); }
}
@keyframes hh-howl-3 {
  0% { transform: translateY(0) scale(1); }
  40% { transform: translateY(-6px) scale(1.1) rotate(10deg); }
  80% { transform: translateY(-2px) scale(0.95) rotate(-5deg); }
  100% { transform: translateY(0) scale(1); }
}
@keyframes hh-ripple {
  0% { opacity: 0.5; transform: scale(0.5); }
  100% { opacity: 0; transform: scale(4); }
}

/* drawing-room-frankness – calm interior, seated figure by fire */
.scn-drawing-room-frankness {
  background: linear-gradient(180deg, #2a1f18 0%, #3e2a1e 50%, #1a1210 100%),
              radial-gradient(ellipse at 50% 80%, #4a2f20 0%, transparent 70%);
}
.scn-drawing-room-frankness .wall-bg {
  position: absolute; inset: 0 0 25% 0;
  background: linear-gradient(180deg, #2e221c 0%, #1f1612 100%);
}
.scn-drawing-room-frankness .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 25%;
  background: linear-gradient(180deg, #1c1410 0%, #0f0b08 100%);
  box-shadow: inset 0 4px 8px rgba(0,0,0,0.6);
}
.scn-drawing-room-frankness .fireplace {
  position: absolute; bottom: 25%; left: 50%; width: 80px; height: 90px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #3a2418 0%, #1f1410 100%);
  border-radius: 6% 6% 4% 4% / 8% 8% 4% 4%;
  box-shadow: inset 0 0 30px #7a3a12, 0 0 20px #7a3a12;
}
.scn-drawing-room-frankness .glow {
  position: absolute; bottom: 40%; left: 50%; width: 100px; height: 60px;
  transform: translateX(-50%);
  background: radial-gradient(ellipse, #c8601a 0%, #7a3a12 40%, transparent 70%);
  border-radius: 50%;
  animation: df-glow 4s ease-in-out infinite alternate;
}
.scn-drawing-room-frankness .sofa {
  position: absolute; bottom: 25%; left: 30%; width: 100px; height: 50px;
  background: linear-gradient(180deg, #3a2a1e 0%, #1f1612 100%);
  border-radius: 20% 20% 10% 10%;
  box-shadow: 0 6px 12px rgba(0,0,0,0.5);
  transform: scale(0.9);
}
.scn-drawing-room-frankness .figure-sitting {
  position: absolute; bottom: 26%; left: 36%; width: 30px; height: 65px;
  background: linear-gradient(180deg, #1a1210 0%, #0d0a08 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: df-sit 6s ease-in-out infinite;
}
.scn-drawing-room-frankness .window-pane {
  position: absolute; top: 15%; right: 10%; width: 50px; height: 70px;
  background: linear-gradient(135deg, rgba(200,180,160,0.2) 0%, rgba(100,80,70,0.1) 100%);
  border: 2px solid #2a1e18;
  border-radius: 4%;
}
.scn-drawing-room-frankness .lamp-soft {
  position: absolute; top: 20%; left: 20%; width: 12px; height: 18px;
  background: radial-gradient(circle, #c8a060 0%, #7a5020 60%);
  border-radius: 50%;
  box-shadow: 0 0 40px 10px #c8a060;
  animation: df-lamp 8s ease-in-out infinite alternate;
}
@keyframes df-glow {
  0% { opacity: 0.7; transform: translateX(-50%) scale(1); }
  50% { opacity: 1; transform: translateX(-50%) scale(1.1); }
  100% { opacity: 0.8; transform: translateX(-50%) scale(0.95); }
}
@keyframes df-sit {
  0% { transform: translateX(0) translateY(0) rotate(-1deg); }
  33% { transform: translateX(2px) translateY(-1px) rotate(1deg); }
  66% { transform: translateX(-1px) translateY(0.5px) rotate(-0.5deg); }
  100% { transform: translateX(0) translateY(0) rotate(0); }
}
@keyframes df-lamp {
  0% { box-shadow: 0 0 30px 5px #c8a060; opacity: 0.8; }
  50% { box-shadow: 0 0 60px 15px #d8b070; opacity: 1; }
  100% { box-shadow: 0 0 35px 8px #b89050; opacity: 0.85; }
}

/* drawing-room-cold-reply – tense, two figures, sharp lamp */
.scn-drawing-room-cold-reply {
  background: linear-gradient(180deg, #1a1412 0%, #241c18 50%, #0e0a08 100%),
              radial-gradient(ellipse at 50% 60%, #2a1e18 0%, transparent 70%);
}
.scn-drawing-room-cold-reply .wall-bg-dark {
  position: absolute; inset: 0 0 20% 0;
  background: linear-gradient(180deg, #1e1814 0%, #12100e 100%);
}
.scn-drawing-room-cold-reply .floor-dark {
  position: absolute; bottom: 0; left: 0; right: 0; height: 20%;
  background: linear-gradient(180deg, #14100e 0%, #0a0806 100%);
  box-shadow: inset 0 4px 8px rgba(0,0,0,0.7);
}
.scn-drawing-room-cold-reply .table {
  position: absolute; bottom: 22%; left: 50%; width: 80px; height: 40px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #2a1e18 0%, #1a1410 100%);
  border-radius: 6% 6% 4% 4%;
  box-shadow: 0 8px 16px rgba(0,0,0,0.5);
}
.scn-drawing-room-cold-reply .lamp-sharp {
  position: absolute; bottom: 35%; left: 50%; width: 16px; height: 22px;
  transform: translateX(-50%);
  background: radial-gradient(circle, #d8a040 0%, #7a3a10 60%);
  border-radius: 30% 30% 20% 20%;
  box-shadow: 0 0 50px 20px #d8a040, 0 0 100px 40px rgba(216,160,64,0.4);
  animation: dcr-lamp-flicker 0.4s ease-in-out infinite alternate;
}
.scn-drawing-room-cold-reply .figure-left {
  position: absolute; bottom: 22%; left: 32%; width: 24px; height: 60px;
  background: linear-gradient(180deg, #0e0a08 0%, #060504 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: dcr-figure 0.6s ease-in-out infinite alternate;
}
.scn-drawing-room-cold-reply .figure-right {
  position: absolute; bottom: 22%; right: 32%; width: 24px; height: 60px;
  background: linear-gradient(180deg, #0e0a08 0%, #060504 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: dcr-figure 0.6s ease-in-out infinite alternate-reverse;
}
.scn-drawing-room-cold-reply .shadow-strip {
  position: absolute; bottom: 22%; left: 42%; width: 16%; height: 8px;
  background: linear-gradient(90deg, transparent, #0a0806 50%, transparent);
  filter: blur(3px);
  animation: dcr-shadow 0.4s ease-in-out infinite alternate;
}
@keyframes dcr-lamp-flicker {
  0% { opacity: 0.8; box-shadow: 0 0 40px 15px #d8a040; }
  30% { opacity: 1; box-shadow: 0 0 60px 25px #e8b050; }
  70% { opacity: 0.6; box-shadow: 0 0 30px 10px #c89030; }
  100% { opacity: 0.9; box-shadow: 0 0 50px 20px #d8a040; }
}
@keyframes dcr-figure {
  0% { transform: translateY(0) rotate(-2deg); }
  50% { transform: translateY(-2px) rotate(2deg); }
  100% { transform: translateY(0) rotate(-1deg); }
}
@keyframes dcr-shadow {
  0% { transform: scaleX(1); opacity: 0.5; }
  50% { transform: scaleX(1.5); opacity: 0.8; }
  100% { transform: scaleX(1); opacity: 0.5; }
}

/* drawing-room-wandering – figure at window, calm drift */
.scn-drawing-room-wandering {
  background: linear-gradient(180deg, #2a1f18 0%, #3a2a1e 40%, #1a1210 100%),
              radial-gradient(ellipse at 60% 70%, #4a2f20 0%, transparent 60%);
}
.scn-drawing-room-wandering .wall-bg {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #2a1e18 0%, #1f1612 100%);
}
.scn-drawing-room-wandering .tall-window {
  position: absolute; top: 10%; right: 20%; width: 60px; height: 90px;
  background: linear-gradient(180deg, rgba(180,200,210,0.2) 0%, rgba(100,120,140,0.1) 100%);
  border: 2px solid #2a1e18;
  border-radius: 4%;
}
.scn-drawing-room-wandering .curtain-l {
  position: absolute; top: 8%; right: 25%; width: 12px; height: 100px;
  background: linear-gradient(180deg, #3a2a1e 0%, #1f1612 100%);
  border-radius: 0 0 50% 50% / 0 0 30% 30%;
  transform-origin: top center;
  animation: dw-curtain 12s ease-in-out infinite alternate;
}
.scn-drawing-room-wandering .curtain-r {
  position: absolute; top: 8%; right: 15%; width: 12px; height: 100px;
  background: linear-gradient(180deg, #3a2a1e 0%, #1f1612 100%);
  border-radius: 0 0 50% 50% / 0 0 30% 30%;
  transform-origin: top center;
  animation: dw-curtain 12s ease-in-out infinite alternate-reverse;
}
.scn-drawing-room-wandering .figure-standing {
  position: absolute; bottom: 30%; right: 25%; width: 20px; height: 70px;
  background: linear-gradient(180deg, #1a1210 0%, #0d0a08 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: dw-stand 9s ease-in-out infinite;
}
.scn-drawing-room-wandering .chair-empty {
  position: absolute; bottom: 30%; left: 20%; width: 50px; height: 40px;
  background: linear-gradient(180deg, #2e2018 0%, #1a1410 100%);
  border-radius: 20% 20% 10% 10%;
  box-shadow: 0 4px 8px rgba(0,0,0,0.4);
}
.scn-drawing-room-wandering .cloud-outside {
  position: absolute; top: 12%; right: 15%; width: 70px; height: 16px;
  background: linear-gradient(180deg, rgba(200,210,220,0.4) 0%, rgba(150,160,170,0.1) 100%);
  border-radius: 50%;
  filter: blur(6px);
  animation: dw-cloud 40s linear infinite;
}
@keyframes dw-curtain {
  0% { transform: rotate(0deg) scaleY(1); }
  50% { transform: rotate(2deg) scaleY(1.02); }
  100% { transform: rotate(-1deg) scaleY(0.98); }
}
@keyframes dw-stand {
  0% { transform: translateX(0) rotate(0deg); }
  33% { transform: translateX(2px) rotate(1deg); }
  66% { transform: translateX(-1px) rotate(-1deg); }
  100% { transform: translateX(0) rotate(0deg); }
}
@keyframes dw-cloud {
  0% { transform: translateX(20px); opacity: 0.3; }
  50% { transform: translateX(-10px); opacity: 0.6; }
  100% { transform: translateX(20px); opacity: 0.3; }
}

/* drawing-room-cordiality – soft close-up, teacup and profile */
.scn-drawing-room-cordiality {
  background: linear-gradient(180deg, #2a1f18 0%, #3e2a1e 50%, #1a1210 100%),
              radial-gradient(ellipse at 30% 50%, #4a2f20 0%, transparent 70%);
}
.scn-drawing-room-cordiality .wall-bg-soft {
  position: absolute; inset: 0 0 10% 0;
  background: linear-gradient(180deg, #2e221c 0%, #1f1612 100%);
}
.scn-drawing-room-cordiality .table-round {
  position: absolute; bottom: 10%; left: 50%; width: 120px; height: 60px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #2e2018 0%, #1a1410 100%);
  border-radius: 50% / 30%;
  box-shadow: 0 6px 12px rgba(0,0,0,0.5);
}
.scn-drawing-room-cordiality .teacup {
  position: absolute; bottom: 18%; left: 45%; width: 24px; height: 20px;
  background: linear-gradient(180deg, #6a5030 0%, #3a2818 100%);
  border-radius: 30% 30% 10% 10%;
  box-shadow: inset 0 2px 4px rgba(0,0,0,0.4);
  transform: rotate(-5deg);
  animation: dc-cup 5s ease-in-out infinite;
}
.scn-drawing-room-cordiality .hand-reaching {
  position: absolute; bottom: 20%; left: 38%; width: 14px; height: 30px;
  background: linear-gradient(180deg, #2a1a12 0%, #1a100c 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom left;
  animation: dc-hand 7s ease-in-out infinite;
}
.scn-drawing-room-cordiality .profile-face {
  position: absolute; bottom: 25%; left: 35%; width: 22px; height: 40px;
  background: linear-gradient(180deg, #1a1210 0%, #0d0a08 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  transform: rotate(-3deg);
  clip-path: inset(0 0 0 30%);
  animation: dc-profile 8s ease-in-out infinite;
}
.scn-drawing-room-cordiality .vase {
  position: absolute; bottom: 12%; right: 20%; width: 18px; height: 40px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1f1410 100%);
  border-radius: 30% 30% 10% 10% / 40% 40% 10% 10%;
  box-shadow: 0 4px 8px rgba(0,0,0,0.4);
}
.scn-drawing-room-cordiality .candle-glow {
  position: absolute; bottom: 28%; left: 28%; width: 6px; height: 14px;
  background: linear-gradient(180deg, #d8a040 0%, #7a3a10 100%);
  border-radius: 10%;
  box-shadow: 0 0 60px 20px #d8a040, 0 0 100px 30px rgba(216,160,64,0.3);
  animation: dc-candle 6s ease-in-out infinite alternate;
}
@keyframes dc-cup {
  0% { transform: rotate(-5deg) translateY(0); }
  50% { transform: rotate(-7deg) translateY(-1px); }
  100% { transform: rotate(-5deg) translateY(0); }
}
@keyframes dc-hand {
  0% { transform: rotate(0deg) translateX(0); }
  33% { transform: rotate(5deg) translateX(3px); }
  66% { transform: rotate(-2deg) translateX(1px); }
  100% { transform: rotate(0deg) translateX(0); }
}
@keyframes dc-profile {
  0% { transform: rotate(-3deg) translateY(0); }
  50% { transform: rotate(-5deg) translateY(-1px); }
  100% { transform: rotate(-3deg) translateY(0); }
}
@keyframes dc-candle {
  0% { opacity: 0.7; box-shadow: 0 0 40px 15px #d8a040; }
  50% { opacity: 1; box-shadow: 0 0 80px 25px #e8b050; }
  100% { opacity: 0.8; box-shadow: 0 0 50px 20px #c89030; }
}

/* ---- rathdrum-barons-meeting ---- */
.scn-rathdrum-barons-meeting {
  background: 
    linear-gradient(180deg, #1a110a 0%, #2a1a0e 30%, #3a2212 60%, #2a1a0e 100%),
    radial-gradient(ellipse at 50% 40%, #c08040 0%, #7a4a2a 40%, transparent 70%);
}
.scn-rathdrum-barons-meeting .fireglow {
  position: absolute;
  top: 20%; left: 10%; width: 80%; height: 60%;
  background: radial-gradient(ellipse at 50% 50%, #ffd060 0%, #c08040 30%, transparent 60%);
  opacity: 0.4;
  animation: rbm-fire 4s ease-in-out infinite alternate;
}
.scn-rathdrum-barons-meeting .mantel {
  position: absolute;
  bottom: 45%; left: 15%; width: 70%; height: 10%;
  background: linear-gradient(180deg, #5a3a22 0%, #3a2212 100%);
  border-radius: 4px 4px 0 0;
  box-shadow: 0 8px 12px rgba(0,0,0,0.6);
}
.scn-rathdrum-barons-meeting .hearth {
  position: absolute;
  bottom: 35%; left: 30%; width: 40%; height: 15%;
  background: radial-gradient(ellipse at 50% 0%, #c04020 0%, #7a2a1a 50%, #3a1a0a 100%);
  border-radius: 50% 50% 0 0;
  animation: rbm-hearth 2s ease-in-out infinite alternate;
}
.scn-rathdrum-barons-meeting .armchair {
  position: absolute;
  bottom: 18%; left: 50%; width: 100px; height: 80px;
  background: linear-gradient(180deg, #5a3a22 0%, #2a1a0e 100%);
  border-radius: 40% 40% 10% 10% / 60% 60% 20% 20%;
  transform: translateX(-50%);
  box-shadow: -30px 0 20px rgba(0,0,0,0.5);
}
.scn-rathdrum-barons-meeting .snoring-figure {
  position: absolute;
  bottom: 20%; left: 52%; width: 40px; height: 50px;
  background: linear-gradient(180deg, #2a1a0e 0%, #1a0e06 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform: translateX(-50%);
  animation: rbm-snore 3s ease-in-out infinite;
}
.scn-rathdrum-barons-meeting .baron-silhouette {
  position: absolute;
  bottom: 15%; left: 20%; width: 30px; height: 65px;
  background: linear-gradient(180deg, #1a0e06 0%, #0a0602 100%);
  border-radius: 50% 0% 40% 40% / 60% 40% 40% 60%;
  transform: rotate(5deg);
  animation: rbm-observe 6s ease-in-out infinite;
}
.scn-rathdrum-barons-meeting .whiskey-glass {
  position: absolute;
  bottom: 22%; left: 28%; width: 12px; height: 16px;
  background: linear-gradient(180deg, #c08040 0%, #8a5a2a 100%);
  border-radius: 2px 2px 4px 4px;
  transform: rotate(-10deg);
  animation: rbm-glass 4s ease-in-out infinite;
}
.scn-rathdrum-barons-meeting .shadow-pool {
  position: absolute;
  bottom: 0; left: 10%; width: 80%; height: 20%;
  background: linear-gradient(180deg, transparent 0%, rgba(0,0,0,0.6) 100%);
  border-radius: 50% 50% 0 0;
}
@keyframes rbm-fire {
  0% { transform: scale(1); opacity: 0.3; }
  50% { transform: scale(1.05) translateY(-5px); opacity: 0.5; }
  100% { transform: scale(0.95) translateY(2px); opacity: 0.4; }
}
@keyframes rbm-hearth {
  0% { transform: scaleY(1); opacity: 0.8; }
  50% { transform: scaleY(1.1) scaleX(0.95); opacity: 1; }
  100% { transform: scaleY(0.9) scaleX(1.05); opacity: 0.7; }
}
@keyframes rbm-snore {
  0% { transform: translateX(-50%) translateY(0) scale(1); }
  50% { transform: translateX(-50%) translateY(-3px) scale(1.02); }
  100% { transform: translateX(-50%) translateY(0) scale(1); }
}
@keyframes rbm-observe {
  0% { transform: rotate(3deg) translateY(0); }
  50% { transform: rotate(-2deg) translateY(-2px); }
  100% { transform: rotate(3deg) translateY(0); }
}
@keyframes rbm-glass {
  0% { transform: rotate(-10deg) translateY(0); opacity: 0.6; }
  50% { transform: rotate(-8deg) translateY(-2px); opacity: 0.9; }
  100% { transform: rotate(-10deg) translateY(0); opacity: 0.6; }
}

/* ---- baron-character-study ---- */
.scn-baron-character-study {
  background: 
    linear-gradient(180deg, #1a0e06 0%, #2a1a0e 30%, #3a2212 60%, #1a0e06 100%),
    radial-gradient(circle at 30% 40%, #c08040 0%, #8a5a2a 30%, transparent 70%);
}
.scn-baron-character-study .backdrop {
  position: absolute;
  inset: 0;
  background: linear-gradient(180deg, #2a1a0e 0%, #1a0e06 100%);
  opacity: 0.5;
}
.scn-baron-character-study .study-frame {
  position: absolute;
  top: 5%; left: 5%; width: 90%; height: 90%;
  border: 6px solid #5a3a22;
  border-radius: 8px;
  box-shadow: inset 0 0 40px rgba(0,0,0,0.8), 0 0 20px rgba(0,0,0,0.5);
}
.scn-baron-character-study .baron-profile {
  position: absolute;
  bottom: 20%; left: 35%; width: 80px; height: 100px;
  background: linear-gradient(180deg, #2a1a0e 0%, #0e0602 100%);
  border-radius: 60% 40% 30% 50% / 50% 60% 40% 50%;
  transform: rotate(5deg) scaleX(0.9);
  box-shadow: -10px 0 20px rgba(0,0,0,0.6), 0 0 30px rgba(192,128,64,0.3);
  animation: bcs-profile 8s ease-in-out infinite alternate;
}
.scn-baron-character-study .measuring-compass {
  position: absolute;
  bottom: 40%; left: 48%; width: 60px; height: 20px;
  background: linear-gradient(90deg, #8a6a4a 0%, #c0a080 100%);
  border-radius: 2px;
  transform: rotate(-20deg);
  box-shadow: 0 2px 6px rgba(0,0,0,0.5);
  animation: bcs-compass 6s ease-in-out infinite;
}
.scn-baron-character-study .glow-on-face {
  position: absolute;
  bottom: 25%; left: 38%; width: 30px; height: 40px;
  background: radial-gradient(ellipse at 50% 50%, #ffd060 0%, transparent 70%);
  opacity: 0.6;
  animation: bcs-glow 3s ease-in-out infinite alternate;
}
.scn-baron-character-study .shadow-stripes {
  position: absolute;
  top: 0; left: 10%; width: 4px; height: 100%;
  background: linear-gradient(180deg, transparent 0%, rgba(0,0,0,0.3) 30%, transparent 60%);
  filter: blur(2px);
  animation: bcs-stripes 12s linear infinite;
}
.scn-baron-character-study .tiny-catalog {
  position: absolute;
  bottom: 10%; left: 10%; width: 40px; height: 50px;
  background: linear-gradient(180deg, #5a3a22 0%, #3a2212 100%);
  border-radius: 2px;
  box-shadow: 2px 2px 6px rgba(0,0,0,0.5);
  transform: rotate(-5deg);
}
@keyframes bcs-profile {
  0% { transform: rotate(4deg) scaleX(0.9) translateY(0); }
  50% { transform: rotate(6deg) scaleX(1) translateY(-2px); }
  100% { transform: rotate(4deg) scaleX(0.9) translateY(0); }
}
@keyframes bcs-compass {
  0% { transform: rotate(-20deg) translateX(0); }
  50% { transform: rotate(-15deg) translateX(5px); }
  100% { transform: rotate(-20deg) translateX(0); }
}
@keyframes bcs-glow {
  0% { opacity: 0.4; transform: scale(0.8); }
  50% { opacity: 0.8; transform: scale(1.2); }
  100% { opacity: 0.5; transform: scale(0.9); }
}
@keyframes bcs-stripes {
  0% { transform: translateY(0); }
  100% { transform: translateY(-100px); }
}

/* ---- baron-conversation ---- */
.scn-baron-conversation {
  background: 
    linear-gradient(180deg, #1a0e06 0%, #2a1a0e 40%, #3a2212 70%, #2a1a0e 100%),
    radial-gradient(ellipse at 60% 50%, #c08040 0%, #7a4a2a 40%, transparent 80%);
}
.scn-baron-conversation .bg-warm {
  position: absolute;
  inset: 0;
  background: radial-gradient(circle at 30% 50%, #ffd060 0%, transparent 70%);
  opacity: 0.3;
  animation: bc-bg 5s ease-in-out infinite alternate;
}
.scn-baron-conversation .baron-torso {
  position: absolute;
  bottom: 10%; left: 25%; width: 120px; height: 140px;
  background: linear-gradient(180deg, #2a1a0e 0%, #0e0602 100%);
  border-radius: 40% 30% 30% 40% / 60% 50% 50% 60%;
  transform: rotate(2deg);
  box-shadow: -20px 0 30px rgba(0,0,0,0.6);
}
.scn-baron-conversation .beard {
  position: absolute;
  bottom: 32%; left: 28%; width: 40px; height: 30px;
  background: linear-gradient(180deg, #3a2212 0%, #1a0e06 100%);
  border-radius: 0 0 50% 50% / 0 0 60% 60%;
  transform: rotate(-5deg);
  animation: bc-beard 3s ease-in-out infinite;
}
.scn-baron-conversation .gesturing-hand {
  position: absolute;
  bottom: 30%; left: 50%; width: 30px; height: 40px;
  background: linear-gradient(180deg, #2a1a0e 0%, #0e0602 100%);
  border-radius: 50% 40% 30% 40% / 40% 60% 40% 60%;
  transform: rotate(30deg);
  animation: bc-hand 4s ease-in-out infinite alternate;
}
.scn-baron-conversation .flicker-light {
  position: absolute;
  top: 30%; left: 40%; width: 60px; height: 100px;
  background: radial-gradient(ellipse at 50% 50%, #ffd060 0%, transparent 60%);
  opacity: 0.5;
  animation: bc-flicker 2s ease-in-out infinite alternate;
}
.scn-baron-conversation .shadow-on-wall {
  position: absolute;
  top: 20%; right: 10%; width: 150px; height: 200px;
  background: linear-gradient(135deg, rgba(0,0,0,0.7) 0%, transparent 70%);
  clip-path: polygon(0 0, 100% 0, 80% 100%, 20% 100%);
  animation: bc-shadow 6s ease-in-out infinite;
}
.scn-baron-conversation .breath-mist {
  position: absolute;
  bottom: 45%; left: 30%; width: 20px; height: 20px;
  background: radial-gradient(circle, rgba(255,255,255,0.2) 0%, transparent 70%);
  filter: blur(4px);
  animation: bc-breath 3s ease-in-out infinite;
}
@keyframes bc-bg {
  0% { opacity: 0.2; transform: scale(1); }
  50% { opacity: 0.4; transform: scale(1.05); }
  100% { opacity: 0.3; transform: scale(0.95); }
}
@keyframes bc-beard {
  0% { transform: rotate(-5deg) translateY(0); }
  50% { transform: rotate(-3deg) translateY(-2px); }
  100% { transform: rotate(-5deg) translateY(0); }
}
@keyframes bc-hand {
  0% { transform: rotate(25deg) translateX(0); }
  50% { transform: rotate(35deg) translateX(8px) translateY(-3px); }
  100% { transform: rotate(25deg) translateX(0); }
}
@keyframes bc-flicker {
  0% { opacity: 0.3; transform: scale(0.9); }
  50% { opacity: 0.7; transform: scale(1.1); }
  100% { opacity: 0.4; transform: scale(0.95); }
}
@keyframes bc-shadow {
  0% { transform: translateY(0) scale(1); }
  50% { transform: translateY(-10px) scale(1.02); }
  100% { transform: translateY(0) scale(1); }
}
@keyframes bc-breath {
  0% { transform: translateX(0) scale(0.8); opacity: 0; }
  50% { transform: translateX(5px) scale(1.2); opacity: 0.5; }
  100% { transform: translateX(10px) scale(0.6); opacity: 0; }
}

/* ---- baron-invitation ---- */
.scn-baron-invitation {
  background: 
    linear-gradient(180deg, #2a1a0e 0%, #3a2212 30%, #4a2e1a 60%, #2a1a0e 100%),
    radial-gradient(ellipse at 50% 30%, #d09050 0%, #8a5a2a 40%, transparent 70%);
}
.scn-baron-invitation .chamber-deep {
  position: absolute;
  inset: 0;
  background: linear-gradient(135deg, #0e0602 0%, transparent 50%);
  opacity: 0.6;
}
.scn-baron-invitation .doorway-arch {
  position: absolute;
  bottom: 20%; left: 10%; width: 80%; height: 60%;
  background: linear-gradient(180deg, #3a2212 0%, #1a0e06 100%);
  border-radius: 50% 50% 0 0 / 80% 80% 0 0;
  box-shadow: inset 0 20px 40px rgba(0,0,0,0.8);
}
.scn-baron-invitation .baron-figure {
  position: absolute;
  bottom: 15%; left: 40%; width: 50px; height: 80px;
  background: linear-gradient(180deg, #2a1a0e 0%, #0e0602 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%;
  transform: rotate(-3deg);
  animation: bi-bow 5s ease-in-out infinite;
}
.scn-baron-invitation .extended-hand {
  position: absolute;
  bottom: 22%; left: 48%; width: 40px; height: 20px;
  background: linear-gradient(180deg, #2a1a0e 0%, #1a0e06 100%);
  border-radius: 40% 40% 20% 20% / 60% 60% 20% 20%;
  transform: rotate(-20deg);
  animation: bi-hand 5s ease-in-out infinite alternate;
}
.scn-baron-invitation .welcome-glow {
  position: absolute;
  top: 10%; left: 20%; width: 60%; height: 40%;
  background: radial-gradient(ellipse at 50% 50%, #ffd060 0%, #c08040 30%, transparent 60%);
  opacity: 0.5;
  animation: bi-glow 4s ease-in-out infinite alternate;
}
.scn-baron-invitation .carpet-path {
  position: absolute;
  bottom: 0; left: 30%; width: 40%; height: 8%;
  background: linear-gradient(180deg, #a06030 0%, #7a4a2a 100%);
  border-radius: 20% 20% 0 0;
  box-shadow: 0 -6px 12px rgba(0,0,0,0.5);
  transform: perspective(200px) rotateX(30deg);
}
.scn-baron-invitation .candle-sconce {
  position: absolute;
  top: 20%; left: 10%; width: 8px; height: 20px;
  background: linear-gradient(180deg, #c08040 0%, #8a5a2a 100%);
  border-radius: 2px;
  box-shadow: 0 0 20px 4px #ffd060;
  animation: bi-candle 2s ease-in-out infinite alternate;
}
.scn-baron-invitation .warm-haze {
  position: absolute;
  bottom: 30%; left: 0; width: 100%; height: 20%;
  background: radial-gradient(ellipse at 50% 0%, rgba(192,128,64,0.3) 0%, transparent 70%);
  filter: blur(10px);
  animation: bi-haze 8s ease-in-out infinite;
}
@keyframes bi-bow {
  0% { transform: rotate(-3deg) translateY(0); }
  50% { transform: rotate(0deg) translateY(-5px); }
  100% { transform: rotate(-3deg) translateY(0); }
}
@keyframes bi-hand {
  0% { transform: rotate(-25deg) translateX(0); }
  50% { transform: rotate(-15deg) translateX(10px) translateY(-3px); }
  100% { transform: rotate(-25deg) translateX(0); }
}
@keyframes bi-glow {
  0% { opacity: 0.3; transform: scale(0.9); }
  50% { opacity: 0.6; transform: scale(1.1); }
  100% { opacity: 0.4; transform: scale(0.95); }
}
@keyframes bi-candle {
  0% { transform: scaleY(1); opacity: 0.7; }
  50% { transform: scaleY(1.15); opacity: 1; }
  100% { transform: scaleY(0.9); opacity: 0.8; }
}
@keyframes bi-haze {
  0% { transform: translateY(0) scaleX(1); }
  50% { transform: translateY(5px) scaleX(1.05); }
  100% { transform: translateY(0) scaleX(1); }
}

.scn-hounds-stir {
  background:
    linear-gradient(180deg, #0a0a1a 0%, #1a1a3e 40%, #2a2a4e 80%, #3a3a5e 100%),
    radial-gradient(ellipse at 50% 40%, #2a2a5e 0%, transparent 60%);
}
.scn-hounds-stir .wall {
  position: absolute; inset: 0; background: linear-gradient(180deg, #12122a 0%, #0e0e22 100%);
}
.scn-hounds-stir .window {
  position: absolute; top: 15%; left: 30%; width: 30%; height: 40%;
  background: linear-gradient(135deg, #5a6a8a 0%, #3a4a6a 50%, #2a3a5a 100%);
  border-radius: 8% 8% 4% 4%; border: 4px solid #1a1a3a; box-shadow: inset 0 0 30px rgba(150,180,220,0.3);
}
.scn-hounds-stir .moonbeam {
  position: absolute; top: 15%; left: 30%; width: 30%; height: 40%;
  background: linear-gradient(135deg, rgba(200,220,255,0.15) 0%, rgba(200,220,255,0.05) 60%, transparent 100%);
  filter: blur(8px); animation: hs-beam 6s ease-in-out infinite alternate;
}
.scn-hounds-stir .hounds {
  position: absolute; bottom: 10%; background: #0a0a1a; border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  width: 12%; height: 8%; filter: blur(1px);
}
.scn-hounds-stir .hounds-1 {
  left: 5%; animation: hs-run1 4s ease-in-out infinite;
}
.scn-hounds-stir .hounds-2 {
  left: 25%; animation: hs-run2 5s ease-in-out infinite 1s;
}
.scn-hounds-stir .hounds-3 {
  left: 45%; animation: hs-run3 4.5s ease-in-out infinite 2s;
}
.scn-hounds-stir .door {
  position: absolute; right: 8%; bottom: 0; width: 15%; height: 60%;
  background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%);
  border-radius: 4% 4% 0 0; box-shadow: -4px 0 8px rgba(0,0,0,0.5);
  animation: hs-door 8s ease-in-out infinite;
}
@keyframes hs-beam {
  0% { opacity: 0.4; transform: scale(1); }
  50% { opacity: 0.8; transform: scale(1.05); }
  100% { opacity: 0.5; transform: scale(0.95); }
}
@keyframes hs-run1 {
  0% { transform: translateX(0) translateY(0) rotate(-2deg); }
  25% { transform: translateX(8px) translateY(-2px) rotate(2deg); }
  50% { transform: translateX(16px) translateY(0) rotate(-2deg); }
  75% { transform: translateX(8px) translateY(-2px) rotate(2deg); }
  100% { transform: translateX(0) translateY(0) rotate(-2deg); }
}
@keyframes hs-run2 {
  0% { transform: translateX(0) translateY(0) scaleX(1); }
  33% { transform: translateX(10px) translateY(-3px) scaleX(0.9); }
  66% { transform: translateX(20px) translateY(0) scaleX(1); }
  100% { transform: translateX(0) translateY(0) scaleX(1); }
}
@keyframes hs-run3 {
  0% { transform: translateX(0) translateY(0) rotate(1deg); }
  50% { transform: translateX(-10px) translateY(-2px) rotate(-1deg); }
  100% { transform: translateX(0) translateY(0) rotate(1deg); }
}
@keyframes hs-door {
  0% { transform: scaleX(1); }
  20% { transform: scaleX(0.8) translateX(4px); }
  40% { transform: scaleX(0.6) translateX(8px); }
  60% { transform: scaleX(0.8) translateX(4px); }
  80% { transform: scaleX(1); }
  100% { transform: scaleX(1); }
}

.scn-baron-spring {
  background:
    linear-gradient(180deg, #1a1210 0%, #2a1e18 40%, #3a2a22 80%, #2a1e18 100%),
    radial-gradient(ellipse at 30% 50%, #3a2a22 0%, transparent 70%);
}
.scn-baron-spring .room-bg {
  position: absolute; inset: 0; background: linear-gradient(135deg, #1a1412 0%, #2a221e 100%);
}
.scn-baron-spring .door-bg {
  position: absolute; right: 5%; bottom: 0; width: 20%; height: 80%;
  background: linear-gradient(180deg, #3a2a1e 0%, #1a1210 100%);
  border-radius: 4% 4% 0 0; box-shadow: -4px 0 12px rgba(0,0,0,0.6);
}
.scn-baron-spring .door-swing {
  position: absolute; right: 5%; bottom: 0; width: 18%; height: 78%;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1e12 100%);
  border-radius: 2% 2% 0 0; transform-origin: right center;
  animation: bs-door 4s ease-in-out infinite;
}
.scn-baron-spring .baron {
  position: absolute; bottom: 10%; left: 30%; width: 8%; height: 16%;
  background: linear-gradient(180deg, #0a0a0a 0%, #1a1a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: bs-spring 2s ease-in-out infinite;
}
.scn-baron-spring .lamp {
  position: absolute; top: 15%; left: 15%; width: 4%; height: 6%;
  background: radial-gradient(circle, #b08850 0%, #806030 70%, transparent 100%);
  border-radius: 50%; box-shadow: 0 0 30px 6px #b08040, 0 0 60px 15px rgba(176,128,64,0.3);
  animation: bs-lamp 3s ease-in-out infinite alternate;
}
.scn-baron-spring .shadow {
  position: absolute; bottom: 0; left: 20%; width: 25%; height: 40%;
  background: linear-gradient(180deg, rgba(0,0,0,0) 0%, rgba(0,0,0,0.4) 100%);
  filter: blur(6px); animation: bs-shadow 2s ease-in-out infinite;
}
@keyframes bs-door {
  0% { transform: rotateY(0deg); }
  20% { transform: rotateY(-30deg); }
  40% { transform: rotateY(-60deg); }
  60% { transform: rotateY(-30deg); }
  80% { transform: rotateY(0deg); }
  100% { transform: rotateY(0deg); }
}
@keyframes bs-spring {
  0% { transform: translateY(0) rotate(-5deg) scaleY(1); }
  25% { transform: translateY(-30px) rotate(5deg) scaleY(1.1); }
  50% { transform: translateY(-60px) rotate(-2deg) scaleY(1.2); }
  75% { transform: translateY(-30px) rotate(2deg) scaleY(1.1); }
  100% { transform: translateY(0) rotate(0deg) scaleY(1); }
}
@keyframes bs-lamp {
  0% { opacity: 0.6; transform: scale(1); box-shadow: 0 0 20px 4px #b08040, 0 0 40px 10px rgba(176,128,64,0.2); }
  50% { opacity: 0.9; transform: scale(1.1); box-shadow: 0 0 40px 8px #d09050, 0 0 80px 20px rgba(208,144,80,0.4); }
  100% { opacity: 0.7; transform: scale(0.95); box-shadow: 0 0 25px 5px #b08040, 0 0 50px 12px rgba(176,128,64,0.25); }
}
@keyframes bs-shadow {
  0% { transform: scaleX(1) translateX(0); opacity: 0.3; }
  50% { transform: scaleX(1.5) translateX(20px); opacity: 0.6; }
  100% { transform: scaleX(1) translateX(0); opacity: 0.3; }
}

.scn-courtyard-crossing {
  background:
    linear-gradient(180deg, #0a0a2a 0%, #1a1a3e 30%, #2a2a5a 60%, #1a1a3e 100%),
    radial-gradient(ellipse at 50% 80%, #2a2a4e 0%, transparent 60%);
}
.scn-courtyard-crossing .sky-moon {
  position: absolute; top: 0; left: 0; right: 0; height: 50%;
  background: linear-gradient(180deg, #2a2a4e 0%, #1a1a3e 80%, transparent 100%);
}
.scn-courtyard-crossing .courtyard-floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 50%;
  background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%);
  border-radius: 40% 40% 0 0 / 20% 20% 0 0;
}
.scn-courtyard-crossing .arch {
  position: absolute; top: 10%; left: 25%; width: 50%; height: 70%;
  background: linear-gradient(180deg, #2a2a4a 0%, #1a1a3a 100%);
  border-radius: 50% 50% 0 0 / 80% 80% 0 0;
  box-shadow: inset 0 10px 30px rgba(0,0,0,0.5);
}
.scn-courtyard-crossing .stable-door {
  position: absolute; bottom: 20%; right: 10%; width: 15%; height: 40%;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 10% 10% 0 0; box-shadow: -4px 0 8px rgba(0,0,0,0.6);
  animation: cc-door 9s ease-in-out infinite;
}
.scn-courtyard-crossing .figure-kossowski {
  position: absolute; bottom: 35%; left: 20%; width: 6%; height: 14%;
  background: linear-gradient(180deg, #0a0a1a 0%, #1a1a2a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: cc-fig1 6s ease-in-out infinite;
}
.scn-courtyard-crossing .figure-narrator {
  position: absolute; bottom: 35%; left: 35%; width: 5%; height: 13%;
  background: linear-gradient(180deg, #0a0a1a 0%, #1a1a2a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: cc-fig2 7s ease-in-out infinite 2s;
}
@keyframes cc-door {
  0% { transform: scaleX(1); }
  20% { transform: scaleX(0.7) translateX(10px); opacity: 0.8; }
  40% { transform: scaleX(0.4) translateX(20px); opacity: 0.6; }
  60% { transform: scaleX(0.7) translateX(10px); opacity: 0.8; }
  80% { transform: scaleX(1); opacity: 1; }
  100% { transform: scaleX(1); opacity: 1; }
}
@keyframes cc-fig1 {
  0% { transform: translateX(0) translateY(0); }
  30% { transform: translateX(30px) translateY(-5px); }
  60% { transform: translateX(60px) translateY(0); }
  100% { transform: translateX(90px) translateY(-2px); }
}
@keyframes cc-fig2 {
  0% { transform: translateX(0) translateY(0) scale(0.95); }
  50% { transform: translateX(40px) translateY(-3px) scale(1); }
  100% { transform: translateX(80px) translateY(0) scale(0.95); }
}

.scn-stable-mount {
  background:
    linear-gradient(180deg, #0a0a1a 0%, #1a1a2e 40%, #2a2a3e 80%, #1a1a2e 100%),
    radial-gradient(ellipse at 50% 20%, #1a1a2e 0%, transparent 70%);
}
.scn-stable-mount .stable-bg {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, #1a1a2a 0%, #12121e 50%, #0e0e1a 100%);
}
.scn-stable-mount .stable-door {
  position: absolute; top: 0; left: 5%; width: 20%; height: 100%;
  background: linear-gradient(180deg, #2a2a3e 0%, #1a1a2a 100%);
  border-right: 4px solid #0a0a1a;
}
.scn-stable-mount .horse-ready {
  position: absolute; bottom: 10%; left: 30%; width: 18%; height: 24%;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 40% 40% 20% 20% / 60% 60% 40% 40%;
  animation: sm-horse1 5s ease-in-out infinite;
}
.scn-stable-mount .horse-spare {
  position: absolute; bottom: 10%; right: 25%; width: 16%; height: 22%;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 40% 40% 20% 20% / 60% 60% 40% 40%;
  animation: sm-horse2 6s ease-in-out infinite 2s;
}
.scn-stable-mount .man-sleeping {
  position: absolute; bottom: 5%; left: 15%; width: 8%; height: 10%;
  background: linear-gradient(180deg, #0a0a0a 0%, #1a1a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: sm-sleep 4s ease-in-out infinite;
}
.scn-stable-mount .man-mounting {
  position: absolute; bottom: 20%; left: 25%; width: 6%; height: 14%;
  background: linear-gradient(180deg, #0a0a0a 0%, #1a1a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: sm-mount 3s ease-in-out infinite;
}
.scn-stable-mount .straw {
  position: absolute; bottom: 0; left: 10%; right: 10%; height: 8%;
  background: linear-gradient(180deg, #2a2a1a 0%, #1a1a0a 100%);
  border-radius: 20% 20% 0 0 / 50% 50% 0 0;
  animation: sm-straw 8s ease-in-out infinite alternate;
}
@keyframes sm-horse1 {
  0% { transform: translateY(0) rotate(0deg); }
  25% { transform: translateY(-2px) rotate(2deg); }
  50% { transform: translateY(0) rotate(0deg); }
  75% { transform: translateY(-2px) rotate(-2deg); }
  100% { transform: translateY(0) rotate(0deg); }
}
@keyframes sm-horse2 {
  0% { transform: translateY(0) scaleX(1); }
  50% { transform: translateY(-3px) scaleX(0.9); }
  100% { transform: translateY(0) scaleX(1); }
}
@keyframes sm-sleep {
  0% { transform: scaleY(1); }
  50% { transform: scaleY(1.05); }
  100% { transform: scaleY(1); }
}
@keyframes sm-mount {
  0% { transform: translateY(0) rotate(0deg); }
  20% { transform: translateY(-20px) rotate(30deg); }
  40% { transform: translateY(-40px) rotate(60deg); }
  60% { transform: translateY(-20px) rotate(30deg); }
  80% { transform: translateY(0) rotate(0deg); }
  100% { transform: translateY(0) rotate(0deg); }
}
@keyframes sm-straw {
  0% { opacity: 0.6; }
  50% { opacity: 0.9; }
  100% { opacity: 0.7; }
}

/* yany-building – dark, tall structure in mist */
.scn-yany-building {
  background:
    linear-gradient(180deg, #1a1a2e 0%, #2a2a3e 40%, #1e1e30 100%),
    radial-gradient(ellipse at 50% 80%, #2a2a3e 0%, transparent 80%);
}
.scn-yany-building .sky {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #0f0f1a 0%, #1a1a2e 100%);
  animation: yb-sky 15s ease-in-out infinite alternate;
}
.scn-yany-building .vapor {
  position: absolute; bottom: 30%; left: 0; right: 0; height: 20%;
  background: linear-gradient(0deg, rgba(200,200,220,0.06) 0%, transparent 100%);
  filter: blur(12px);
  animation: yb-vapor 25s ease-in-out infinite alternate;
}
.scn-yany-building .building {
  position: absolute; bottom: 30%; left: 50%; width: 80px; height: 160px;
  transform: translateX(-50%);
  background:
    linear-gradient(180deg, #3a3a4e 0%, #2a2a3a 40%, #1a1a2a 100%),
    linear-gradient(90deg, #2a2a3e 0%, #3c3c50 30%, #2a2a3e 100%);
  border-radius: 4px 4px 0 0;
  box-shadow: 0 0 30px rgba(0,0,0,0.6);
  animation: yb-building 8s ease-in-out infinite;
}
.scn-yany-building .window-1,
.scn-yany-building .window-2,
.scn-yany-building .window-3 {
  position: absolute; width: 10px; height: 14px;
  background: radial-gradient(circle, #f0d080 0%, #b09040 70%);
  border-radius: 2px;
  box-shadow: 0 0 10px 4px #b09040, 0 0 20px 8px rgba(176,144,64,0.4);
  animation: yb-window 4s ease-in-out infinite alternate;
}
.scn-yany-building .window-1 { bottom: 55%; left: calc(50% - 12px); }
.scn-yany-building .window-2 { bottom: 40%; left: calc(50% + 8px); animation-delay: -1.5s; }
.scn-yany-building .window-3 { bottom: 70%; left: calc(50% - 4px); width: 12px; height: 10px; animation-delay: -3s; }
.scn-yany-building .ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #1a1a1e 0%, #0e0e12 100%);
}
.scn-yany-building .figure {
  position: absolute; bottom: 28%; left: 38%; width: 14px; height: 28px;
  background: linear-gradient(180deg, #151520 0%, #0a0a10 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: yb-figure 6s ease-in-out infinite;
}
@keyframes yb-sky { 0% { opacity: 0.8 } 50% { opacity: 1 } 100% { opacity: 0.7 } }
@keyframes yb-vapor { 0% { transform: translateY(0) scaleY(1) } 50% { transform: translateY(-8px) scaleY(1.1) } 100% { transform: translateY(4px) scaleY(0.9) } }
@keyframes yb-building { 0%,100% { transform: translateX(-50%) scaleY(1) } 50% { transform: translateX(-50%) scaleY(1.005) } }
@keyframes yb-window { 0% { opacity: 0.6; box-shadow: 0 0 6px 2px #b09040, 0 0 12px 4px rgba(176,144,64,0.3) } 50% { opacity: 1; box-shadow: 0 0 14px 6px #e0c060, 0 0 28px 10px rgba(224,192,96,0.5) } 100% { opacity: 0.7; box-shadow: 0 0 8px 3px #b09040, 0 0 16px 6px rgba(176,144,64,0.4) } }
@keyframes yb-figure { 0% { transform: translate(0,0) rotate(-2deg) } 25% { transform: translate(4px,-1px) rotate(1deg) } 50% { transform: translate(8px,0) rotate(-1deg) } 75% { transform: translate(12px,-2px) rotate(2deg) } 100% { transform: translate(16px,0) rotate(0) } }

/* yany-hounds – tense, hounds and carriage */
.scn-yany-hounds {
  background:
    linear-gradient(180deg, #1e1e2e 0%, #2e2e3e 40%, #1a1a2a 100%),
    linear-gradient(90deg, #0e0e16 0%, #1e1e28 30%, #0e0e16 100%);
}
.scn-yany-hounds .sky {
  position: absolute; inset: 0 0 35% 0;
  background: linear-gradient(180deg, #14141e 0%, #1e1e2e 100%);
  animation: yh-sky 20s ease-in-out infinite alternate;
}
.scn-yany-hounds .ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 35%;
  background: linear-gradient(180deg, #2a2a1e 0%, #1a1a0e 100%);
  animation: yh-ground 5s ease-in-out infinite;
}
.scn-yany-hounds .carriage {
  position: absolute; bottom: 30%; left: 20%; width: 80px; height: 50px;
  background: linear-gradient(180deg, #3a3a3e 0%, #2a2a2e 100%);
  border-radius: 10% 10% 20% 20% / 30% 30% 20% 20%;
  box-shadow: 0 4px 10px rgba(0,0,0,0.6);
  animation: yh-carriage 2s ease-in-out infinite;
}
.scn-yany-hounds .horse-1,
.scn-yany-hounds .horse-2 {
  position: absolute; bottom: 32%; width: 30px; height: 40px;
  background: linear-gradient(180deg, #4a3a2e 0%, #2a1e12 100%);
  border-radius: 50% 40% 30% 30% / 60% 50% 40% 40%;
  animation: yh-horse 1.5s ease-in-out infinite;
}
.scn-yany-hounds .horse-1 { left: 30%; }
.scn-yany-hounds .horse-2 { left: 18%; animation-delay: -0.75s; }
.scn-yany-hounds .hound-1,
.scn-yany-hounds .hound-2 {
  position: absolute; bottom: 28%; width: 22px; height: 18px;
  background: #2a2a1e;
  border-radius: 40% 60% 30% 40%;
  animation: yh-hound 0.8s ease-in-out infinite;
}
.scn-yany-hounds .hound-1 { left: 50%; animation-delay: -0.2s; }
.scn-yany-hounds .hound-2 { left: 60%; animation-delay: -0.6s; }
.scn-yany-hounds .whip {
  position: absolute; bottom: 35%; left: 32%; width: 2px; height: 30px;
  background: #3a2e1e;
  transform-origin: bottom center;
  border-radius: 50%;
  animation: yh-whip 0.6s ease-in-out infinite;
}
@keyframes yh-sky { 0% { opacity: 0.7 } 50% { opacity: 0.9 } 100% { opacity: 0.5 } }
@keyframes yh-ground { 0%,100% { transform: translateY(0) } 50% { transform: translateY(-2px) } }
@keyframes yh-carriage { 0%,100% { transform: translateY(0) rotate(0deg) } 25% { transform: translateY(-2px) rotate(1deg) } 75% { transform: translateY(-3px) rotate(-1deg) } }
@keyframes yh-horse { 0% { transform: translateX(0) translateY(0) rotate(-2deg) } 20% { transform: translateX(4px) translateY(-3px) rotate(2deg) } 40% { transform: translateX(8px) translateY(0) rotate(-1deg) } 60% { transform: translateX(12px) translateY(-2px) rotate(1deg) } 80% { transform: translateX(16px) translateY(-1px) rotate(0) } 100% { transform: translateX(20px) translateY(0) rotate(-1deg) } }
@keyframes yh-hound { 0%,100% { transform: translateX(0) translateY(0) rotate(0deg) scaleX(1) } 25% { transform: translateX(10px) translateY(-4px) rotate(5deg) scaleX(0.9) } 50% { transform: translateX(20px) translateY(0) rotate(-5deg) scaleX(1.1) } 75% { transform: translateX(30px) translateY(-3px) rotate(3deg) scaleX(0.95) } }
@keyframes yh-whip { 0%,100% { transform: rotate(0deg) } 25% { transform: rotate(10deg) } 50% { transform: rotate(-5deg) } 75% { transform: rotate(15deg) } }

/* yany-courtyard – cold dark courtyard with a figure */
.scn-yany-courtyard {
  background:
    linear-gradient(180deg, #1c1c28 0%, #282838 40%, #1a1a24 100%),
    radial-gradient(ellipse at 50% 100%, #282838 0%, transparent 70%);
}
.scn-yany-courtyard .sky {
  position: absolute; inset: 0 0 25% 0;
  background: linear-gradient(180deg, #0c0c14 0%, #181820 100%);
  animation: yc-sky 18s ease-in-out infinite alternate;
}
.scn-yany-courtyard .wall {
  position: absolute; bottom: 25%; left: 10%; right: 10%; height: 50%;
  background: linear-gradient(180deg, #2e2e3a 0%, #1e1e28 100%);
  border-radius: 8px 8px 0 0;
  box-shadow: inset 0 0 20px rgba(0,0,0,0.5);
}
.scn-yany-courtyard .door {
  position: absolute; bottom: 25%; left: 50%; width: 40px; height: 70px;
  transform: translateX(-50%);
  background: linear-gradient(90deg, #1a1a1e 0%, #2a2a30 30%, #1a1a1e 100%);
  border-radius: 10px 10px 0 0;
  box-shadow: 0 0 10px rgba(0,0,0,0.7);
  animation: yc-door 12s ease-in-out infinite;
}
.scn-yany-courtyard .bell {
  position: absolute; bottom: 70%; left: calc(50% + 15px); width: 8px; height: 12px;
  background: #8a7a5a;
  border-radius: 50% 50% 40% 40%;
  box-shadow: 0 0 6px 2px rgba(138,122,90,0.3);
  transform-origin: top center;
  animation: yc-bell 2s ease-in-out infinite;
}
.scn-yany-courtyard .figure {
  position: absolute; bottom: 24%; left: 40%; width: 16px; height: 32px;
  background: linear-gradient(180deg, #1a1a22 0%, #0e0e14 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: yc-figure 7s ease-in-out infinite;
}
.scn-yany-courtyard .lantern {
  position: absolute; bottom: 32%; left: 36%; width: 6px; height: 8px;
  background: radial-gradient(circle, #e0c060 0%, #b09040 70%);
  border-radius: 30% 30% 20% 20%;
  box-shadow: 0 0 12px 4px rgba(176,144,64,0.6);
  animation: yc-lantern 4s ease-in-out infinite alternate;
}
.scn-yany-courtyard .paving {
  position: absolute; bottom: 0; left: 0; right: 0; height: 25%;
  background:
    linear-gradient(180deg, #222228 0%, #141418 100%),
    repeating-linear-gradient(90deg, #1e1e24 0px, #1e1e24 8px, #141418 8px, #141418 10px);
  background-blend-mode: overlay;
}
@keyframes yc-sky { 0% { opacity: 0.6 } 50% { opacity: 0.9 } 100% { opacity: 0.4 } }
@keyframes yc-door { 0%,100% { transform: translateX(-50%) scaleY(1) } 50% { transform: translateX(-50%) scaleY(1.01) } }
@keyframes yc-bell { 0% { transform: rotate(-15deg) } 20% { transform: rotate(15deg) } 40% { transform: rotate(-10deg) } 60% { transform: rotate(10deg) } 80% { transform: rotate(-5deg) } 100% { transform: rotate(0deg) } }
@keyframes yc-figure { 0% { transform: translate(0,0) rotate(-1deg) } 30% { transform: translate(3px,-2px) rotate(1deg) } 60% { transform: translate(6px,0) rotate(-1deg) } 100% { transform: translate(10px,-1px) rotate(0) } }
@keyframes yc-lantern { 0% { opacity: 0.5; box-shadow: 0 0 8px 2px #b09040, 0 0 16px 4px rgba(176,144,64,0.3) } 50% { opacity: 1; box-shadow: 0 0 16px 6px #e0c060, 0 0 32px 12px rgba(224,192,96,0.5) } 100% { opacity: 0.7; box-shadow: 0 0 10px 3px #b09040, 0 0 20px 6px rgba(176,144,64,0.4) } }

/* yany-hall – firelit warm interior with figures */
.scn-yany-hall {
  background:
    linear-gradient(180deg, #4a2e1a 0%, #3a1e0e 30%, #2a140a 100%),
    radial-gradient(ellipse at 50% 60%, #5a3a1e 0%, transparent 80%);
}
.scn-yany-hall .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 25%;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0e0a 100%);
  border-top: 2px solid #5a3a1e;
}
.scn-yany-hall .wall-bg {
  position: absolute; top: 0; left: 0; right: 0; bottom: 25%;
  background: linear-gradient(180deg, #5a3a1e 0%, #3a1e0e 100%);
  box-shadow: inset 0 0 80px rgba(0,0,0,0.6);
}
.scn-yany-hall .fireplace {
  position: absolute; bottom: 25%; left: 50%; width: 80px; height: 70px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #4a2a1a 0%, #2a1a0e 100%);
  border-radius: 20px 20px 10px 10px;
  box-shadow: inset 0 -10px 20px rgba(0,0,0,0.8);
}
.scn-yany-hall .fire {
  position: absolute; bottom: 28%; left: 50%; width: 30px; height: 40px;
  transform: translateX(-50%);
  background:
    radial-gradient(ellipse 40% 60% at 50% 100%, #ff8c40 0%, #e06020 40%, transparent 80%),
    radial-gradient(ellipse 30% 50% at 50% 100%, #ffb060 0%, #ff8020 30%, transparent 70%);
  border-radius: 50% 50% 20% 20%;
  animation: yha-fire 0.8s ease-in-out infinite alternate;
}
.scn-yany-hall .figure-l {
  position: absolute; bottom: 25%; left: 25%; width: 18px; height: 40px;
  background: linear-gradient(180deg, #2a1a0e 0%, #1a0e06 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  box-shadow: 0 0 10px rgba(0,0,0,0.5);
  animation: yha-figure-l 6s ease-in-out infinite;
}
.scn-yany-hall .figure-r {
  position: absolute; bottom: 25%; right: 25%; width: 20px; height: 42px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0e0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: yha-figure-r 7s ease-in-out infinite;
  animation-delay: -3s;
}
.scn-yany-hall .glow {
  position: absolute; bottom: 30%; left: 40%; right: 40%; height: 60%;
  background: radial-gradient(ellipse at 50% 100%, rgba(255,160,60,0.2) 0%, transparent 70%);
  pointer-events: none;
  animation: yha-glow 4s ease-in-out infinite alternate;
}
@keyframes yha-fire { 0% { transform: translateX(-50%) scaleY(1) translateY(0); opacity: 0.8 } 25% { transform: translateX(-50%) scaleY(1.05) translateY(-2px); opacity: 1 } 50% { transform: translateX(-50%) scaleY(0.95) translateY(0); opacity: 0.9 } 75% { transform: translateX(-50%) scaleY(1.1) translateY(-3px); opacity: 1 } 100% { transform: translateX(-50%) scaleY(1) translateY(0); opacity: 0.85 } }
@keyframes yha-figure-l { 0%,100% { transform: translateY(0) rotate(0deg) } 30% { transform: translateY(-2px) rotate(2deg) } 70% { transform: translateY(-1px) rotate(-1deg) } }
@keyframes yha-figure-r { 0%,100% { transform: translateY(0) rotate(0deg) } 40% { transform: translateY(-3px) rotate(-2deg) } 80% { transform: translateY(-1px) rotate(1deg) } }
@keyframes yha-glow { 0% { opacity: 0.3 } 50% { opacity: 0.6 } 100% { opacity: 0.4 } }

/* scene: journey-reflection */
.scn-journey-reflection {
  background:
    radial-gradient(ellipse at 60% 30%, #f9e4c8 0%, transparent 60%),
    linear-gradient(180deg, #eedccc 0%, #c4a980 50%, #9b7a5c 100%);
}
.scn-journey-reflection .wall   { position:absolute; inset:0 0 40% 0; background: linear-gradient(90deg, #d4b48c 0%, #e8cba3 40%, #f2dbb8 100%); }
.scn-journey-reflection .floor  { position:absolute; bottom:0; left:0; right:0; height:40%; background: linear-gradient(180deg, #8b6f52 0%, #6a543d 100%); border-radius: 20% 20% 0 0 / 10% 10% 0 0; }
.scn-journey-reflection .window { position:absolute; top:10%; right:8%; width:30%; height:55%; background: radial-gradient(ellipse at center, #ffe8d0 0%, #cbb094 80%); border: 8px solid #a08161; border-radius: 4px; box-shadow: inset 0 0 60px rgba(255,230,200,0.3); animation: jr-window 12s ease-in-out infinite alternate; }
.scn-journey-reflection .table  { position:absolute; bottom:25%; left:25%; width:50%; height:8%; background: linear-gradient(180deg, #7a5c3f 0%, #5a3f2a 100%); border-radius: 4% 4% 10% 10% / 30% 30% 20% 20%; }
.scn-journey-reflection .figure { position:absolute; bottom:32%; width:16%; height:30%; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; }
.scn-journey-reflection .figure.left  { left:20%; animation: jr-sit-left 8s ease-in-out infinite; }
.scn-journey-reflection .figure.right { right:25%; animation: jr-sit-right 10s ease-in-out infinite; }
.scn-journey-reflection .book   { position:absolute; bottom:22%; left:32%; width:8%; height:4%; background: #705a40; border-radius: 2px; box-shadow: 2px 2px 4px rgba(0,0,0,0.3); }
@keyframes jr-window { 0% { opacity:0.7; box-shadow: inset 0 0 40px rgba(255,230,200,0.2); } 50% { opacity:1; box-shadow: inset 0 0 80px rgba(255,240,220,0.5); } 100% { opacity:0.8; box-shadow: inset 0 0 60px rgba(255,230,200,0.3); } }
@keyframes jr-sit-left { 0%,100% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-2px) rotate(2deg); } }
@keyframes jr-sit-right { 0%,100% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-1px) rotate(-2deg); } }

/* scene: gypsy-concert */
.scn-gypsy-concert {
  background:
    radial-gradient(ellipse at 50% 20%, #3d2a22 0%, #1e1410 60%),
    linear-gradient(180deg, #2a1f1a 0%, #1a110e 100%);
}
.scn-gypsy-concert .deep       { position:absolute; inset:0; background: linear-gradient(180deg, #1a0e0a 0%, #0a0502 100%); opacity:0.6; }
.scn-gypsy-concert .wall       { position:absolute; bottom:30%; left:0; right:0; height:70%; background: linear-gradient(180deg, #3a2520 0%, #261815 100%); border-radius: 0 0 40% 40% / 0 0 20% 20%; }
.scn-gypsy-concert .floor      { position:absolute; bottom:0; left:0; right:0; height:30%; background: linear-gradient(180deg, #2e1d18 0%, #1a0f0c 100%); }
.scn-gypsy-concert .fireplace  { position:absolute; bottom:15%; left:50%; width:25%; height:40%; transform:translateX(-50%); background: radial-gradient(ellipse at 50% 30%, #c8562a 0%, #7a3018 40%, #2a150a 70%); border-radius: 20% 20% 0 0; animation: gc-fire 3s ease-in-out infinite alternate; }
.scn-gypsy-concert .singer     { position:absolute; bottom:25%; left:58%; width:12%; height:30%; background: linear-gradient(180deg, #c8553d 0%, #7a2a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: gc-sway 6s ease-in-out infinite; }
.scn-gypsy-concert .guitarist  { position:absolute; bottom:24%; left:28%; width:15%; height:32%; background: linear-gradient(180deg, #2a1f1a 0%, #1a110e 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: gc-strum 2s ease-in-out infinite; }
.scn-gypsy-concert .shadow     { position:absolute; bottom:10%; left:20%; width:60%; height:20%; background: radial-gradient(ellipse, rgba(0,0,0,0.4) 0%, transparent 70%); filter: blur(6px); animation: gc-shadow-pulse 4s ease-in-out infinite alternate; }
@keyframes gc-fire { 0% { transform: translateX(-50%) scale(1); box-shadow: 0 0 30px 10px #c8562a, 0 0 60px 20px rgba(200,86,42,0.4); } 50% { transform: translateX(-50%) scale(1.05); box-shadow: 0 0 40px 15px #d96a3e, 0 0 80px 30px rgba(217,106,62,0.5); } 100% { transform: translateX(-50%) scale(0.98); box-shadow: 0 0 25px 8px #b84e20, 0 0 50px 15px rgba(184,78,32,0.3); } }
@keyframes gc-sway { 0%,100% { transform: translateX(0) rotate(0deg); } 25% { transform: translateX(4px) rotate(3deg); } 50% { transform: translateX(-3px) rotate(-2deg); } 75% { transform: translateX(2px) rotate(1deg); } }
@keyframes gc-strum { 0%,100% { transform: rotate(0deg) scaleX(1); } 50% { transform: rotate(3deg) scaleX(1.02); } }
@keyframes gc-shadow-pulse { 0% { opacity:0.5; transform: scaleX(1); } 50% { opacity:0.8; transform: scaleX(1.1); } 100% { opacity:0.6; transform: scaleX(0.95); } }

/* scene: yany-journey */
.scn-yany-journey {
  background:
    linear-gradient(180deg, #7a8a9a 0%, #5a6a7a 40%, #3a4a5a 100%),
    radial-gradient(ellipse at 30% 50%, #8a9aac 0%, transparent 60%);
}
.scn-yany-journey .sky        { position:absolute; inset:0 0 50% 0; background: linear-gradient(180deg, #8a9aac 0%, #6b7b8d 100%); animation: yj-sky 20s ease-in-out infinite; }
.scn-yany-journey .clouds     { position:absolute; top:15%; width:40%; height:12%; background: rgba(200,210,220,0.3); border-radius: 50%; filter: blur(10px); }
.scn-yany-journey .cloud-1    { left:10%; animation: yj-drift-a 40s linear infinite; }
.scn-yany-journey .cloud-2    { right:5%; width:25%; height:8%; animation: yj-drift-b 50s linear infinite reverse; }
.scn-yany-journey .hills      { position:absolute; bottom:40%; left:0; right:0; height:20%; background: linear-gradient(180deg, #4d5e4a 0%, #2d3e2a 100%); border-radius: 60% 40% 0 0 / 80% 60% 0 0; box-shadow: inset 0 8px 20px rgba(0,0,0,0.3); }
.scn-yany-journey .path       { position:absolute; bottom:20%; left:25%; width:50%; height:8%; background: linear-gradient(180deg, #6a7a5a 0%, #4a5a3a 100%); border-radius: 20% 20% 0 0; transform: perspective(200px) rotateX(20deg); }
.scn-yany-journey .figure     { position:absolute; bottom:25%; left:40%; width:14%; height:25%; background: linear-gradient(180deg, #2a3a2a 0%, #1a2a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: yj-walk 8s ease-in-out infinite; }
.scn-yany-journey .tree       { position:absolute; bottom:35%; left:70%; width:8%; height:20%; background: linear-gradient(180deg, #3a4a2e 0%, #2a3a1e 100%); border-radius: 50% 50% 20% 20% / 60% 60% 20% 20%; transform-origin: bottom center; animation: yj-sway 12s ease-in-out infinite alternate; }
@keyframes yj-sky { 0% { opacity:0.8; } 50% { opacity:1; } 100% { opacity:0.9; } }
@keyframes yj-drift-a { 0% { transform: translateX(0) scaleX(1); } 50% { transform: translateX(15vw) scaleX(1.2); } 100% { transform: translateX(30vw) scaleX(1); } }
@keyframes yj-drift-b { 0% { transform: translateX(0) scaleX(1); } 50% { transform: translateX(-10vw) scaleX(1.1); } 100% { transform: translateX(-20vw) scaleX(1); } }
@keyframes yj-walk { 0% { transform: translateX(0) translateY(0); } 25% { transform: translateX(5px) translateY(-1px); } 50% { transform: translateX(10px) translateY(0); } 75% { transform: translateX(15px) translateY(-1px); } 100% { transform: translateX(20px) translateY(0); } }
@keyframes yj-sway { 0% { transform: rotate(0deg); } 50% { transform: rotate(2deg); } 100% { transform: rotate(-2deg); } }

/* scene: item-tsimbol */
.scn-item-tsimbol {
  background:
    radial-gradient(ellipse at 40% 50%, #3a2a20 0%, #1f1410 70%),
    linear-gradient(180deg, #2a1f1a 0%, #1a100e 100%);
}
.scn-item-tsimbol .bg          { position:absolute; inset:0; background: linear-gradient(180deg, #1a0e0a 0%, #0a0502 100%); opacity:0.5; }
.scn-item-tsimbol .table       { position:absolute; bottom:20%; left:20%; width:60%; height:10%; background: linear-gradient(180deg, #7a5a42 0%, #5a3a2a 100%); border-radius: 4% 4% 10% 10% / 20% 20% 30% 30%; }
.scn-item-tsimbol .instrument  { position:absolute; bottom:30%; left:35%; width:30%; height:22%; background: linear-gradient(135deg, #b07050 0%, #7a4a30 100%); border-radius: 20% 20% 30% 30% / 40% 40% 30% 30%; box-shadow: 0 4px 8px rgba(0,0,0,0.5); transform: rotate(-5deg); animation: it-instr 6s ease-in-out infinite alternate; }
.scn-item-tsimbol .hands       { position:absolute; bottom:32%; left:30%; width:20%; height:10%; background: radial-gradient(ellipse at 30% 50%, #c0a080 0%, #8a6a50 100%); border-radius: 30% 30% 20% 20% / 50% 50% 30% 30%; animation: it-play 8s ease-in-out infinite; }
.scn-item-tsimbol .candle      { position:absolute; bottom:45%; left:62%; width:4%; height:12%; background: linear-gradient(180deg, #f0d0a0 0%, #8a6a40 100%); border-radius: 30% 30% 10% 10% / 50% 50% 20% 20%; }
.scn-item-tsimbol .glow        { position:absolute; bottom:38%; left:58%; width:12%; height:16%; background: radial-gradient(circle, #f0d080 0%, rgba(240,208,128,0.3) 40%, transparent 70%); border-radius: 50%; filter: blur(4px); animation: it-flicker 3s ease-in-out infinite alternate; }
.scn-item-tsimbol .music-sheet { position:absolute; bottom:24%; left:45%; width:10%; height:6%; background: #d4c4a4; border-radius: 2px; box-shadow: 1px 1px 3px rgba(0,0,0,0.4); transform: rotate(8deg); }
@keyframes it-instr { 0% { transform: rotate(-5deg) scaleX(1); } 50% { transform: rotate(-3deg) scaleX(1.02); } 100% { transform: rotate(-6deg) scaleX(0.98); } }
@keyframes it-play { 0% { transform: translateX(0) rotate(0deg); } 25% { transform: translateX(-4px) rotate(-5deg); } 50% { transform: translateX(2px) rotate(3deg); } 75% { transform: translateX(-1px) rotate(-2deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes it-flicker { 0% { opacity:0.7; transform: scale(1); } 50% { opacity:1; transform: scale(1.1); } 100% { opacity:0.8; transform: scale(0.95); } }

.scn-gate-barred { background: linear-gradient(180deg, #0c0e2a 0%, #1a1e3a 40%, #2a2e4e 100%), radial-gradient(ellipse at 70% 20%, #3a4a6a 0%, transparent 60%); }
.scn-gate-barred .night-sky { position:absolute; inset:0 0 40% 0; background: radial-gradient(ellipse at 30% 10%, #2a3a5a 0%, transparent 80%); animation: nss-gate 10s ease-in-out infinite alternate; }
.scn-gate-barred .moon { position:absolute; top:8%; right:25%; width:40px; height:40px; background: radial-gradient(circle, #d0d8ff 0%, #a0a8d0 80%); border-radius:50%; box-shadow: 0 0 30px 10px rgba(160,168,208,.5); animation: moons-gate 12s ease-in-out infinite; }
.scn-gate-barred .gate-grille { position:absolute; bottom:20%; left:25%; right:25%; height:60%; background: repeating-linear-gradient(90deg, #2a1e1a 0px, #2a1e1a 8px, transparent 8px, transparent 16px); border-radius: 4px; box-shadow: inset 0 0 20px rgba(0,0,0,.6), 0 0 10px rgba(200,180,160,.3); animation: grille-gate 5s ease-in-out infinite alternate; }
.scn-gate-barred .gate-frame { position:absolute; bottom:20%; left:22%; right:22%; height:62%; border: 6px solid #3a2a22; border-radius: 6px; box-shadow: inset 0 0 15px rgba(0,0,0,.4); background: transparent; }
.scn-gate-barred .figure-peep { position:absolute; bottom:32%; left:30%; width:18px; height:40px; background: linear-gradient(180deg, #1c1e2a 0%, #0e101a 100%); border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%; transform-origin: bottom center; animation: peep-gate 6s ease-in-out infinite; }
.scn-gate-barred .ground { position:absolute; bottom:0; left:0; right:0; height:20%; background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%); border-radius: 60% 40% 0 0 / 80% 60% 0 0; box-shadow: inset 0 8px 10px rgba(0,0,0,.5); animation: ground-gate 18s ease-in-out infinite alternate; }
.scn-gate-barred .shadow-bar { position:absolute; bottom:35%; left:28%; width:4px; height:50px; background: rgba(0,0,0,.3); transform: rotate(10deg); filter: blur(3px); animation: shadow-gate 7s ease-in-out infinite alternate; }
@keyframes nss-gate { 0% { opacity:.7 } 50% { opacity:1 } 100% { opacity:.8 } }
@keyframes moons-gate { 0% { transform: translate(0,0); box-shadow: 0 0 30px 10px rgba(160,168,208,.5) } 50% { transform: translate(-2px,2px); box-shadow: 0 0 40px 15px rgba(160,168,208,.7) } 100% { transform: translate(0,0); box-shadow: 0 0 30px 10px rgba(160,168,208,.5) } }
@keyframes grille-gate { 0% { opacity:.9; transform: scaleY(1) } 50% { opacity:1; transform: scaleY(1.02) } 100% { opacity:.9; transform: scaleY(1) } }
@keyframes peep-gate { 0% { transform: translateX(0) translateY(0) rotate(-2deg); opacity:.6 } 25% { transform: translateX(4px) translateY(-2px) rotate(2deg); opacity:1 } 50% { transform: translateX(0) translateY(0) rotate(-2deg); opacity:.7 } 75% { transform: translateX(-4px) translateY(-1px) rotate(1deg); opacity:.9 } 100% { transform: translateX(0) translateY(0) rotate(-2deg); opacity:.6 } }
@keyframes ground-gate { 0% { transform: translateY(0) } 50% { transform: translateY(-2px) } 100% { transform: translateY(0) } }
@keyframes shadow-gate { 0% { transform: rotate(8deg) scaleY(1); opacity:.3 } 50% { transform: rotate(12deg) scaleY(1.1); opacity:.5 } 100% { transform: rotate(8deg) scaleY(1); opacity:.3 } }

.scn-hounds-release { background: linear-gradient(180deg, #0a0e20 0%, #181e3a 50%, #262e4e 100%), radial-gradient(ellipse at 50% 20%, #2a3a5a 0%, transparent 70%); }
.scn-hounds-release .night-sky { position:absolute; inset:0 0 45% 0; background: radial-gradient(ellipse at 40% 15%, #2a3a5a 0%, transparent 70%); animation: sky-hr 8s ease-in-out infinite alternate; }
.scn-hounds-release .moon { position:absolute; top:6%; left:15%; width:35px; height:35px; background: radial-gradient(circle, #c8d0f0 0%, #a0a8c8 80%); border-radius:50%; box-shadow: 0 0 25px 8px rgba(160,168,200,.5); animation: moon-hr 14s ease-in-out infinite; }
.scn-hounds-release .kennel-roof { position:absolute; bottom:45%; left:65%; width:120px; height:30px; background: linear-gradient(180deg, #3a2e22 0%, #2a1e16 100%); border-radius: 20% 20% 0 0; box-shadow: 0 -6px 10px rgba(0,0,0,.5); transform: skewX(-5deg); animation: roof-hr 10s ease-in-out infinite; }
.scn-hounds-release .kennel-wall { position:absolute; bottom:25%; left:66%; width:100px; height:25%; background: linear-gradient(180deg, #4a3a2a 0%, #2a1e12 100%); border-radius: 0 0 8% 8%; box-shadow: inset 0 0 15px rgba(0,0,0,.5); animation: wall-hr 12s ease-in-out infinite alternate; }
.scn-hounds-release .gate-left { position:absolute; bottom:25%; left:55%; width:30px; height:40%; background: linear-gradient(90deg, #3a2a1e 0%, #2a1a12 100%); border-right: 4px solid #1a120e; box-shadow: 4px 0 8px rgba(0,0,0,.4); animation: gate-hr 6s ease-in-out infinite; transform-origin: left center; }
.scn-hounds-release .riding-figure { position:absolute; bottom:28%; left:40%; width:24px; height:50px; background: linear-gradient(180deg, #1c1e2a 0%, #0e101a 100%); border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%; transform: rotate(-5deg); animation: rider-hr 4s ease-in-out infinite; }
.scn-hounds-release .hound-shape { position:absolute; bottom:30%; width:16px; height:28px; background: linear-gradient(180deg, #3a3a2a 0%, #2a2a1a 100%); border-radius: 30% 30% 20% 20% / 40% 40% 30% 30%; animation: hound-hr 3s ease-in-out infinite alternate; }
.scn-hounds-release .hound-a { left:70%; }
.scn-hounds-release .hound-b { left:78%; animation-delay: -1.5s; }
.scn-hounds-release .ground { position:absolute; bottom:0; left:0; right:0; height:25%; background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%); border-radius: 30% 70% 0 0 / 80% 60% 0 0; box-shadow: inset 0 10px 15px rgba(0,0,0,.5); animation: ground-hr 20s ease-in-out infinite alternate; }
@keyframes sky-hr { 0% { opacity:.6 } 50% { opacity:1 } 100% { opacity:.7 } }
@keyframes moon-hr { 0% { transform: translate(0,0); box-shadow: 0 0 25px 8px rgba(160,168,200,.5) } 50% { transform: translate(2px,-3px); box-shadow: 0 0 35px 12px rgba(160,168,200,.7) } 100% { transform: translate(0,0); box-shadow: 0 0 25px 8px rgba(160,168,200,.5) } }
@keyframes roof-hr { 0% { transform: skewX(-5deg) translateY(0) } 50% { transform: skewX(-5deg) translateY(-2px) } 100% { transform: skewX(-5deg) translateY(0) } }
@keyframes wall-hr { 0% { opacity:.9 } 50% { opacity:1 } 100% { opacity:.9 } }
@keyframes gate-hr { 0% { transform: rotate(0deg) } 25% { transform: rotate(-10deg) } 50% { transform: rotate(0deg) } 75% { transform: rotate(5deg) } 100% { transform: rotate(0deg) } }
@keyframes rider-hr { 0% { transform: rotate(-5deg) translate(0,0) } 25% { transform: rotate(-2deg) translate(3px,-2px) } 50% { transform: rotate(-5deg) translate(0,0) } 75% { transform: rotate(-8deg) translate(-2px,-1px) } 100% { transform: rotate(-5deg) translate(0,0) } }
@keyframes hound-hr { 0% { transform: translateY(0) scaleX(1) } 50% { transform: translateY(-3px) scaleX(1.05) } 100% { transform: translateY(0) scaleX(1) } }
@keyframes ground-hr { 0% { transform: translateY(0) } 50% { transform: translateY(-1px) } 100% { transform: translateY(0) } }

.scn-hounds-emerge { background: linear-gradient(180deg, #0e1228 0%, #1a223e 50%, #2a3260 100%), radial-gradient(ellipse at 50% 30%, #3a4a6a 0%, transparent 70%); }
.scn-hounds-emerge .night-sky { position:absolute; inset:0 0 50% 0; background: radial-gradient(ellipse at 60% 10%, #2a3a5a 0%, transparent 80%); animation: sky-he 9s ease-in-out infinite alternate; }
.scn-hounds-emerge .moon { position:absolute; top:8%; right:20%; width:30px; height:30px; background: radial-gradient(circle, #d0d8f0 0%, #a0a8c0 80%); border-radius:50%; box-shadow: 0 0 20px 6px rgba(160,168,192,.4); animation: moon-he 13s ease-in-out infinite; }
.scn-hounds-emerge .gate-open { position:absolute; bottom:30%; left:30%; right:30%; height:50%; border: 6px solid #3a2a22; border-radius: 6px; background: transparent; box-shadow: inset 0 0 20px rgba(0,0,0,.5); animation: gate-he 5s ease-in-out infinite alternate; }
.scn-hounds-emerge .hound-lead { position:absolute; bottom:30%; left:35%; width:40px; height:30px; background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%); border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%; transform: rotate(-10deg); animation: lead-he 2.5s ease-in-out infinite; }
.scn-hounds-emerge .hound-pack { position:absolute; bottom:35%; width:28px; height:24px; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0e 100%); border-radius: 30% 30% 20% 20% / 50% 50% 30% 30%; animation: pack-he 3s ease-in-out infinite alternate; }
.scn-hounds-emerge .hound-1 { left:48%; animation-delay: -0.8s; }
.scn-hounds-emerge .hound-2 { left:58%; animation-delay: -1.6s; }
.scn-hounds-emerge .hound-3 { left:68%; animation-delay: -2.4s; }
.scn-hounds-emerge .ground { position:absolute; bottom:0; left:0; right:0; height:30%; background: linear-gradient(180deg, #2a2e3e 0%, #1a1e2a 100%); border-radius: 50% 50% 0 0 / 80% 70% 0 0; box-shadow: inset 0 12px 15px rgba(0,0,0,.5); animation: ground-he 22s ease-in-out infinite alternate; }
.scn-hounds-emerge .shadow-pool { position:absolute; bottom:30%; left:25%; right:25%; height:20%; background: linear-gradient(180deg, transparent 0%, rgba(0,0,0,.4) 100%); filter: blur(8px); animation: shadow-he 8s ease-in-out infinite alternate; }
@keyframes sky-he { 0% { opacity:.7 } 50% { opacity:1 } 100% { opacity:.8 } }
@keyframes moon-he { 0% { transform: translate(0,0); box-shadow: 0 0 20px 6px rgba(160,168,192,.4) } 50% { transform: translate(2px,-2px); box-shadow: 0 0 30px 10px rgba(160,168,192,.6) } 100% { transform: translate(0,0); box-shadow: 0 0 20px 6px rgba(160,168,192,.4) } }
@keyframes gate-he { 0% { transform: scaleX(1) } 50% { transform: scaleX(1.05) } 100% { transform: scaleX(1) } }
@keyframes lead-he { 0% { transform: rotate(-10deg) translateX(0) } 25% { transform: rotate(-5deg) translateX(8px) } 50% { transform: rotate(-10deg) translateX(0) } 75% { transform: rotate(-15deg) translateX(-4px) } 100% { transform: rotate(-10deg) translateX(0) } }
@keyframes pack-he { 0% { transform: translateY(0) scaleX(1) } 50% { transform: translateY(-4px) scaleX(1.08) } 100% { transform: translateY(0) scaleX(1) } }
@keyframes ground-he { 0% { transform: translateY(0) } 50% { transform: translateY(-2px) } 100% { transform: translateY(0) } }
@keyframes shadow-he { 0% { opacity:.3 } 50% { opacity:.6 } 100% { opacity:.3 } }

.scn-tracking-wolves { background: linear-gradient(180deg, #0a0e1e 0%, #141a2e 40%, #1e2640 100%), radial-gradient(ellipse at 30% 15%, #2a3a5a 0%, transparent 70%); }
.scn-tracking-wolves .night-sky { position:absolute; inset:0 0 50% 0; background: radial-gradient(ellipse at 60% 10%, #1a2a4a 0%, transparent 80%); animation: sky-tw 11s ease-in-out infinite alternate; }
.scn-tracking-wolves .moon { position:absolute; top:5%; left:25%; width:28px; height:28px; background: radial-gradient(circle, #c8d0e8 0%, #a0a8c0 80%); border-radius:50%; box-shadow: 0 0 18px 5px rgba(160,168,192,.4); animation: moon-tw 15s ease-in-out infinite; }
.scn-tracking-wolves .snow-ground { position:absolute; bottom:0; left:0; right:0; height:50%; background: linear-gradient(180deg, #3a3e50 0%, #2a2e3e 100%); border-radius: 20% 80% 0 0 / 60% 80% 0 0; box-shadow: inset 0 15px 20px rgba(0,0,0,.4); animation: snow-tw 25s ease-in-out infinite alternate; }
.scn-tracking-wolves .rider { position:absolute; bottom:35%; left:30%; width:20px; height:45px; background: linear-gradient(180deg, #1c1e2a 0%, #0e101a 100%); border-radius: 35% 35% 25% 25% / 45% 45% 35% 35%; transform: rotate(-8deg); animation: rider-tw 4s ease-in-out infinite; }
.scn-tracking-wolves .horse { position:absolute; bottom:32%; left:28%; width:60px; height:35px; background: linear-gradient(180deg, #2a2e3e 0%, #1a1e2a 100%); border-radius: 45% 45% 30% 30% / 60% 60% 40% 40%; transform: rotate(-3deg); animation: horse-tw 5s ease-in-out infinite; }
.scn-tracking-wolves .track-prints { position:absolute; bottom:30%; left:50%; width:30px; height:10px; background: radial-gradient(circle at 10% 50%, #4a4e5a 0%, transparent 60%), radial-gradient(circle at 40% 50%, #4a4e5a 0%, transparent 60%); background-size: 10px 10px; background-repeat: repeat-x; animation: prints-tw 8s linear infinite; }
.scn-tracking-wolves .wolf-shape { position:absolute; bottom:40%; width:24px; height:32px; background: linear-gradient(180deg, #5a5a6a 0%, #3a3a4a 100%); border-radius: 30% 30% 20% 20% / 50% 50% 30% 30%; animation: wolf-tw 6s ease-in-out infinite alternate; }
.scn-tracking-wolves .wolf-far { left:65%; transform: scale(0.7); animation-duration: 8s; }
.scn-tracking-wolves .wolf-near { left:72%; animation-delay: -3s; }
.scn-tracking-wolves .tree-line { position:absolute; bottom:45%; left:0; right:0; height:15%; background: linear-gradient(90deg, #1a1e2e 0%, #222636 50%, #1a1e2e 100%); border-radius: 20% 20% 0 0; filter: blur(4px); animation: trees-tw 30s linear infinite; }
@keyframes sky-tw { 0% { opacity:.6 } 50% { opacity:1 } 100% { opacity:.8 } }
@keyframes moon-tw { 0% { transform: translate(0,0); box-shadow: 0 0 18px 5px rgba(160,168,192,.4) } 50% { transform: translate(2px,-2px); box-shadow: 0 0 25px 8px rgba(160,168,192,.6) } 100% { transform: translate(0,0); box-shadow: 0 0 18px 5px rgba(160,168,192,.4) } }
@keyframes snow-tw { 0% { transform: translateY(0) } 50% { transform: translateY(-3px) } 100% { transform: translateY(0) } }
@keyframes rider-tw { 0% { transform: rotate(-8deg) translate(0,0) } 25% { transform: rotate(-5deg) translate(4px,-2px) } 50% { transform: rotate(-8deg) translate(0,0) } 75% { transform: rotate(-11deg) translate(-3px,-1px) } 100% { transform: rotate(-8deg) translate(0,0) } }
@keyframes horse-tw { 0% { transform: rotate(-3deg) scaleX(1) } 50% { transform: rotate(-3deg) scaleX(1.02) } 100% { transform: rotate(-3deg) scaleX(1) } }
@keyframes prints-tw { 0% { background-position: 0 0 } 100% { background-position: -30px 0 } }
@keyframes wolf-tw { 0% { transform: translateX(0) translateY(0) scaleX(1) } 50% { transform: translateX(5px) translateY(-4px) scaleX(1.05) } 100% { transform: translateX(0) translateY(0) scaleX(1) } }
@keyframes trees-tw { 0% { transform: translateX(0) } 100% { transform: translateX(-20px) } }

.scn-gallop-thought {
  background:
    linear-gradient(180deg, #0b0b1a 0%, #1a1a3a 40%, #2c2c5a 70%, #3a3a6a 100%),
    radial-gradient(ellipse at 50% 20%, #3a4a7a 0%, transparent 70%);
}
.scn-gallop-thought .sky {
  position:absolute; inset:0 0 45% 0;
  background: linear-gradient(180deg, #0a0a2a 0%, #1a1a4a 50%, transparent 100%);
  animation: gth-sky 20s ease-in-out infinite alternate;
}
.scn-gallop-thought .moon {
  position:absolute; top:12%; left:70%; width:40px; height:40px;
  background: radial-gradient(circle at 40% 40%, #d0d0e0 0%, #a0a0c0 60%, #707090 100%);
  border-radius:50%;
  box-shadow: 0 0 60px 20px rgba(160,160,200,0.3), 0 0 120px 40px rgba(100,100,150,0.15);
  animation: gth-moon 30s ease-in-out infinite alternate;
}
.scn-gallop-thought .ground {
  position:absolute; bottom:0; left:0; right:0; height:50%;
  background: linear-gradient(180deg, #1a1a30 0%, #0d0d1a 100%);
  border-radius: 60% 40% 0 0 / 30% 20% 0 0;
  box-shadow: inset 0 10px 30px rgba(0,0,0,0.6);
}
.scn-gallop-thought .horse {
  position:absolute; bottom:38%; left:30%; width:120px; height:80px;
  background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%);
  border-radius: 60% 40% 30% 50% / 60% 50% 40% 40%;
  transform-origin: 50% 100%;
  animation: gth-horse 1.5s ease-in-out infinite alternate;
}
.scn-gallop-thought .rider {
  position:absolute; bottom:50%; left:38%; width:40px; height:50px;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 50% 40% 40% 50% / 70% 60% 40% 30%;
  transform-origin: 50% 100%;
  animation: gth-rider 1.5s ease-in-out infinite alternate;
}
.scn-gallop-thought .mane {
  position:absolute; bottom:54%; left:25%; width:30px; height:20px;
  background: radial-gradient(ellipse at 30% 30%, #3a3a4a 0%, #1a1a2a 100%);
  border-radius: 50%;
  filter: blur(2px);
  animation: gth-mane 0.8s ease-in-out infinite alternate;
}
.scn-gallop-thought .breath {
  position:absolute; bottom:52%; left:50%; width:20px; height:10px;
  background: radial-gradient(ellipse at 50% 50%, rgba(200,210,230,0.3) 0%, transparent 100%);
  border-radius: 50%;
  animation: gth-breath 2s ease-out infinite;
}
.scn-gallop-thought .star-a {
  position:absolute; top:6%; left:15%; width:2px; height:2px;
  background: #e0e0ff;
  border-radius:50%;
  box-shadow: 0 0 4px 1px rgba(224,224,255,0.5);
  animation: gth-twinkle 3s ease-in-out infinite;
}
.scn-gallop-thought .star-b {
  position:absolute; top:14%; left:45%; width:3px; height:3px;
  background: #c0c0e0;
  border-radius:50%;
  box-shadow: 0 0 6px 2px rgba(192,192,224,0.4);
  animation: gth-twinkle 4s ease-in-out infinite 1.5s;
}
@keyframes gth-sky { 0% { opacity:0.9 } 50% { opacity:1 } 100% { opacity:0.8 } }
@keyframes gth-moon { 0% { transform: translateX(0) scale(1); box-shadow: 0 0 60px 20px rgba(160,160,200,0.3); } 50% { transform: translateX(-5px) scale(1.02); box-shadow: 0 0 80px 30px rgba(160,160,200,0.5); } 100% { transform: translateX(3px) scale(0.98); box-shadow: 0 0 50px 15px rgba(160,160,200,0.25); } }
@keyframes gth-horse { 0% { transform: rotate(-3deg) translateY(0); } 50% { transform: rotate(2deg) translateY(-3px); } 100% { transform: rotate(-1deg) translateY(-1px); } }
@keyframes gth-rider { 0% { transform: rotate(-2deg) translateY(0); } 50% { transform: rotate(4deg) translateY(-4px); } 100% { transform: rotate(0deg) translateY(-1px); } }
@keyframes gth-mane { 0% { transform: translateX(0) rotate(0deg); } 50% { transform: translateX(5px) rotate(5deg); } 100% { transform: translateX(0) rotate(-3deg); } }
@keyframes gth-breath { 0% { opacity:0.6; transform: translateY(0) scale(1); } 50% { opacity:0.2; transform: translateY(-10px) scale(1.5); } 100% { opacity:0; transform: translateY(-20px) scale(2); } }
@keyframes gth-twinkle { 0% { opacity:0.3 } 50% { opacity:1 } 100% { opacity:0.4 } }

.scn-plain-ride {
  background:
    linear-gradient(180deg, #0a0a1a 0%, #151530 40%, #202050 70%, #2a2a60 100%),
    radial-gradient(ellipse at 50% 20%, #3a4a7a 0%, transparent 70%);
}
.scn-plain-ride .sky {
  position:absolute; inset:0 0 35% 0;
  background: linear-gradient(180deg, #0a0a20 0%, #1a1a40 50%, transparent 100%);
  animation: plr-sky 25s ease-in-out infinite alternate;
}
.scn-plain-ride .moon {
  position:absolute; top:8%; left:20%; width:50px; height:50px;
  background: radial-gradient(circle at 45% 45%, #d8d8ec 0%, #a8a8cc 60%, #7878a0 100%);
  border-radius:50%;
  box-shadow: 0 0 80px 25px rgba(168,168,204,0.4), 0 0 160px 50px rgba(120,120,160,0.2);
  animation: plr-moon 35s ease-in-out infinite alternate;
}
.scn-plain-ride .plain {
  position:absolute; bottom:0; left:0; right:0; height:40%;
  background: linear-gradient(180deg, #1a1a30 0%, #121228 100%);
  border-radius: 80% 20% 0 0 / 40% 10% 0 0;
  box-shadow: inset 0 8px 20px rgba(0,0,0,0.5);
}
.scn-plain-ride .hounds {
  position:absolute; bottom:28%;
  width:30px; height:16px;
  background: linear-gradient(180deg, #2a2a40 0%, #1a1a2a 100%);
  border-radius: 50% 40% 30% 50% / 60% 40% 40% 40%;
  animation: plr-hound 2s ease-in-out infinite alternate;
}
.scn-plain-ride .hound-a {
  left:20%;
  animation-duration: 1.8s;
  animation-delay: 0s;
}
.scn-plain-ride .hound-b {
  left:45%;
  width:35px; height:18px;
  animation-duration: 2.1s;
  animation-delay: 0.5s;
}
.scn-plain-ride .hound-c {
  left:70%;
  width:28px; height:14px;
  animation-duration: 2.4s;
  animation-delay: 1s;
}
.scn-plain-ride .rider-far {
  position:absolute; bottom:30%; left:10%; width:15px; height:25px;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 50% 40% 40% 50% / 60% 50% 40% 30%;
  transform-origin: 50% 100%;
  animation: plr-rider 3s ease-in-out infinite alternate;
}
.scn-plain-ride .dust {
  position:absolute; bottom:20%; left:30%; width:150px; height:30px;
  background: radial-gradient(ellipse at 50% 50%, rgba(180,180,200,0.1) 0%, transparent 100%);
  filter: blur(8px);
  animation: plr-dust 4s ease-in-out infinite alternate;
}
@keyframes plr-sky { 0% { opacity:0.85 } 50% { opacity:1 } 100% { opacity:0.75 } }
@keyframes plr-moon { 0% { transform: translateY(0) scale(1); box-shadow: 0 0 80px 25px rgba(168,168,204,0.4); } 50% { transform: translateY(-4px) scale(1.01); box-shadow: 0 0 100px 30px rgba(168,168,204,0.6); } 100% { transform: translateY(2px) scale(0.99); box-shadow: 0 0 60px 20px rgba(168,168,204,0.3); } }
@keyframes plr-hound { 0% { transform: translateX(0) rotate(-2deg); } 50% { transform: translateX(8px) rotate(2deg); } 100% { transform: translateX(2px) rotate(-1deg); } }
@keyframes plr-rider { 0% { transform: translateY(0) rotate(-1deg); } 50% { transform: translateY(-3px) rotate(3deg); } 100% { transform: translateY(-1px) rotate(0deg); } }
@keyframes plr-dust { 0% { opacity:0.2; transform: translateX(0) scale(1); } 50% { opacity:0.5; transform: translateX(-10px) scale(1.2); } 100% { opacity:0.1; transform: translateX(10px) scale(0.8); } }

.scn-sight-sleigh {
  background:
    linear-gradient(180deg, #0b0b1a 0%, #1a1a3a 40%, #2c2c5a 70%, #3a3a6a 100%),
    radial-gradient(ellipse at 50% 20%, #3a4a7a 0%, transparent 70%);
}
.scn-sight-sleigh .sky {
  position:absolute; inset:0 0 40% 0;
  background: linear-gradient(180deg, #0a0a2a 0%, #1a1a4a 50%, transparent 100%);
  animation: ssl-sky 22s ease-in-out infinite alternate;
}
.scn-sight-sleigh .moon {
  position:absolute; top:10%; left:60%; width:45px; height:45px;
  background: radial-gradient(circle at 40% 40%, #d0d0e0 0%, #a0a0c0 60%, #707090 100%);
  border-radius:50%;
  box-shadow: 0 0 70px 25px rgba(160,160,200,0.3), 0 0 140px 45px rgba(100,100,150,0.15);
  animation: ssl-moon 28s ease-in-out infinite alternate;
}
.scn-sight-sleigh .snow {
  position:absolute; bottom:0; left:0; right:0; height:45%;
  background: linear-gradient(180deg, #1e1e3a 0%, #14142a 100%);
  border-radius: 40% 60% 0 0 / 20% 30% 0 0;
  box-shadow: inset 0 8px 25px rgba(0,0,0,0.5);
}
.scn-sight-sleigh .sleigh {
  position:absolute; bottom:28%; left:30%; width:100px; height:40px;
  background: linear-gradient(180deg, #2a2a3a 0%, #15152a 100%);
  border-radius: 20% 30% 40% 20% / 40% 40% 30% 30%;
  box-shadow: 0 4px 15px rgba(0,0,0,0.7);
  transform: rotate(-2deg);
  animation: ssl-sleigh 3s ease-in-out infinite alternate;
}
.scn-sight-sleigh .sleigh-horse {
  position:absolute; bottom:30%; left:15%; width:70px; height:60px;
  background: linear-gradient(180deg, #20203a 0%, #10102a 100%);
  border-radius: 50% 40% 30% 40% / 60% 50% 40% 50%;
  transform-origin: 50% 100%;
  animation: ssl-horse 1.8s ease-in-out infinite alternate;
}
.scn-sight-sleigh .driver {
  position:absolute; bottom:35%; left:28%; width:25px; height:35px;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 50% 40% 40% 50% / 70% 60% 40% 30%;
  transform-origin: 50% 100%;
  animation: ssl-driver 2.5s ease-in-out infinite alternate;
}
.scn-sight-sleigh .runners {
  position:absolute; bottom:24%; left:30%; width:110px; height:6px;
  background: linear-gradient(180deg, #3a3a4a 0%, #2a2a3a 100%);
  border-radius: 20% 20% 40% 40% / 50% 50% 50% 50%;
  box-shadow: 0 2px 6px rgba(0,0,0,0.5);
  animation: ssl-runners 2s ease-in-out infinite alternate;
}
.scn-sight-sleigh .glow-front {
  position:absolute; bottom:30%; left:25%; width:40px; height:40px;
  background: radial-gradient(circle at 30% 30%, rgba(200,210,230,0.15) 0%, transparent 100%);
  border-radius: 50%;
  filter: blur(12px);
  animation: ssl-glow 4s ease-in-out infinite alternate;
}
@keyframes ssl-sky { 0% { opacity:0.9 } 50% { opacity:1 } 100% { opacity:0.8 } }
@keyframes ssl-moon { 0% { transform: translateX(0) scale(1); box-shadow: 0 0 70px 25px rgba(160,160,200,0.3); } 50% { transform: translateX(-6px) scale(1.02); box-shadow: 0 0 90px 30px rgba(160,160,200,0.5); } 100% { transform: translateX(4px) scale(0.98); box-shadow: 0 0 60px 20px rgba(160,160,200,0.25); } }
@keyframes ssl-sleigh { 0% { transform: rotate(-2deg) translateY(0); } 50% { transform: rotate(1deg) translateY(-2px); } 100% { transform: rotate(-3deg) translateY(1px); } }
@keyframes ssl-horse { 0% { transform: rotate(-1deg) translateY(0); } 50% { transform: rotate(3deg) translateY(-4px); } 100% { transform: rotate(-2deg) translateY(-1px); } }
@keyframes ssl-driver { 0% { transform: rotate(-2deg) translateY(0); } 50% { transform: rotate(4deg) translateY(-3px); } 100% { transform: rotate(0deg) translateY(-1px); } }
@keyframes ssl-runners { 0% { transform: translateX(0) scaleX(1); } 50% { transform: translateX(3px) scaleX(1.02); } 100% { transform: translateX(-2px) scaleX(0.98); } }
@keyframes ssl-glow { 0% { opacity:0.3; transform: scale(1); } 50% { opacity:0.6; transform: scale(1.2); } 100% { opacity:0.2; transform: scale(0.9); } }

.scn-gaining-sleigh {
  background:
    linear-gradient(180deg, #0a0a1a 0%, #151530 40%, #202050 70%, #2a2a60 100%),
    radial-gradient(ellipse at 50% 20%, #3a4a7a 0%, transparent 70%);
}
.scn-gaining-sleigh .sky {
  position:absolute; inset:0 0 35% 0;
  background: linear-gradient(180deg, #0a0a20 0%, #1a1a40 50%, transparent 100%);
  animation: gsl-sky 20s ease-in-out infinite alternate;
}
.scn-gaining-sleigh .moon {
  position:absolute; top:12%; left:70%; width:35px; height:35px;
  background: radial-gradient(circle at 45% 45%, #d8d8ec 0%, #a8a8cc 60%, #7878a0 100%);
  border-radius:50%;
  box-shadow: 0 0 60px 20px rgba(168,168,204,0.4), 0 0 120px 40px rgba(120,120,160,0.2);
  animation: gsl-moon 30s ease-in-out infinite alternate;
}
.scn-gaining-sleigh .snow-spray {
  position:absolute; bottom:0; left:0; right:0; height:40%;
  background: linear-gradient(180deg, #1e1e3a 0%, #14142a 100%);
  border-radius: 60% 40% 0 0 / 30% 20% 0 0;
  box-shadow: inset 0 10px 30px rgba(0,0,0,0.5);
  animation: gsl-spray 3s ease-in-out infinite alternate;
}
.scn-gaining-sleigh .sleigh-ahead {
  position:absolute; bottom:28%; left:50%; width:70px; height:30px;
  background: linear-gradient(180deg, #2a2a3a 0%, #15152a 100%);
  border-radius: 30% 30% 40% 30% / 40% 40% 30% 30%;
  box-shadow: 0 4px 12px rgba(0,0,0,0.6);
  transform: rotate(1deg);
  animation: gsl-sleigh 2s ease-in-out infinite alternate;
}
.scn-gaining-sleigh .hound-1 {
  position:absolute; bottom:30%; left:30%; width:35px; height:18px;
  background: linear-gradient(180deg, #2a2a40 0%, #1a1a2a 100%);
  border-radius: 50% 40% 30% 50% / 60% 40% 40% 40%;
  animation: gsl-hound 1.8s ease-in-out infinite alternate;
  animation-delay: 0s;
}
.scn-gaining-sleigh .hound-2 {
  position:absolute; bottom:32%; left:45%; width:30px; height:16px;
  background: linear-gradient(180deg, #2a2a40 0%, #1a1a2a 100%);
  border-radius: 50% 40% 30% 50% / 60% 40% 40% 40%;
  animation: gsl-hound 1.8s ease-in-out infinite alternate;
  animation-delay: 0.6s;
}
.scn-gaining-sleigh .rider-close {
  position:absolute; bottom:30%; left:15%; width:20px; height:30px;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 50% 40% 40% 50% / 70% 60% 40% 30%;
  transform-origin: 50% 100%;
  animation: gsl-rider 2.2s ease-in-out infinite alternate;
}
.scn-gaining-sleigh .fur {
  position:absolute; bottom:32%; left:12%; width:25px; height:15px;
  background: radial-gradient(ellipse at 30% 30%, #3a3a4a 0%, #1a1a2a 100%);
  border-radius: 50%;
  filter: blur(3px);
  animation: gsl-fur 1.5s ease-in-out infinite alternate;
}
.scn-gaining-sleigh .shadow-streak {
  position:absolute; bottom:20%; left:0; right:0; height:10px;
  background: linear-gradient(90deg, transparent 0%, rgba(0,0,0,0.3) 20%, transparent 40%, rgba(0,0,0,0.1) 60%, transparent 100%);
  filter: blur(4px);
  animation: gsl-streak 4s linear infinite;
}
@keyframes gsl-sky { 0% { opacity:0.85 } 50% { opacity:1 } 100% { opacity:0.75 } }
@keyframes gsl-moon { 0% { transform: translateY(0) scale(1); box-shadow: 0 0 60px 20px rgba(168,168,204,0.4); } 50% { transform: translateY(-3px) scale(1.01); box-shadow: 0 0 80px 25px rgba(168,168,204,0.6); } 100% { transform: translateY(2px) scale(0.99); box-shadow: 0 0 50px 15px rgba(168,168,204,0.3); } }
@keyframes gsl-spray { 0% { opacity:0.9; transform: translateY(0); } 50% { opacity:1; transform: translateY(-3px); } 100% { opacity:0.8; transform: translateY(1px); } }
@keyframes gsl-sleigh { 0% { transform: rotate(1deg) translateX(0); } 50% { transform: rotate(-1deg) translateX(5px); } 100% { transform: rotate(2deg) translateX(-2px); } }
@keyframes gsl-hound { 0% { transform: translateX(0) rotate(-3deg); } 50% { transform: translateX(10px) rotate(3deg); } 100% { transform: translateX(2px) rotate(-1deg); } }
@keyframes gsl-rider { 0% { transform: translateY(0) rotate(-2deg); } 50% { transform: translateY(-4px) rotate(4deg); } 100% { transform: translateY(-1px) rotate(0deg); } }
@keyframes gsl-fur { 0% { transform: rotate(0deg) translateX(0); } 50% { transform: rotate(8deg) translateX(3px); } 100% { transform: rotate(-4deg) translateX(-1px); } }
@keyframes gsl-streak { 0% { transform: translateX(-100vw); opacity:0; } 50% { opacity:0.6; } 100% { transform: translateX(100vw); opacity:0; } }

.scn-fear-realization { 
  background: linear-gradient(180deg, #0b0e2a 0%, #131845 40%, #1f2a5a 100%),
              radial-gradient(ellipse at 50% 0%, #2a3a6a 0%, transparent 70%);
}
.scn-fear-realization .moon { 
  position: absolute; top: 5%; left: 70%; width: 60px; height: 60px; 
  background: radial-gradient(circle at 40% 40%, #d0d8f0 0%, #7a86a0 100%); 
  border-radius: 50%; box-shadow: 0 0 40px 12px rgba(180,200,255,0.3); 
  animation: fr-moon 12s ease-in-out infinite alternate; 
}
.scn-fear-realization .sky-fr { 
  position: absolute; inset: 0; 
  background: linear-gradient(180deg, rgba(50,70,120,0.2) 0%, transparent 60%); 
  animation: fr-sky 8s ease-in-out infinite alternate; 
}
.scn-fear-realization .hill-fr { 
  position: absolute; bottom: 25%; left: 0; right: 0; height: 35%; 
  background: linear-gradient(180deg, #1a2530 0%, #0f151f 100%); 
  border-radius: 60% 40% 0 0 / 50% 30% 0 0; 
  animation: fr-hill 18s ease-in-out infinite; 
}
.scn-fear-realization .carriage-fr { 
  position: absolute; bottom: 28%; left: 20%; width: 140px; height: 50px; 
  background: linear-gradient(135deg, #2a1a10 0%, #3a2a1a 50%, #1a0a00 100%); 
  border-radius: 20% 20% 10% 10% / 40% 40% 20% 20%; 
  transform-origin: right center; 
  animation: fr-carriage 0.4s ease-in-out infinite; 
}
.scn-fear-realization .horse-fr-1 { 
  position: absolute; bottom: 30%; left: 36%; width: 30px; height: 40px; 
  background: linear-gradient(180deg, #3a2a1a 0%, #1a1008 100%); 
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; 
  transform-origin: bottom center; 
  animation: fr-horse 0.3s ease-in-out infinite; 
}
.scn-fear-realization .horse-fr-2 { 
  position: absolute; bottom: 30%; left: 42%; width: 30px; 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: fr-horse 0.3s ease-in-out infinite reverse; 
}
.scn-fear-realization .driver-fr { 
  position: absolute; bottom: 32%; left: 25%; width: 28px; height: 60px; 
  background: linear-gradient(180deg, #0f0f1f 0%, #050510 100%); 
  border-radius: 40% 40% 30% 30% / 60% 50% 40% 40%; 
  animation: fr-driver 0.8s ease-in-out infinite; 
}
.scn-fear-realization .passenger-fr { 
  position: absolute; bottom: 28%; left: 28%; width: 24px; height: 50px; 
  background: linear-gradient(180deg, #1f1f2f 0%, #0a0a15 100%); 
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%; 
  transform-origin: bottom center; 
  animation: fr-passenger 0.6s ease-in-out infinite alternate; 
}
.scn-fear-realization .dust-fr { 
  position: absolute; bottom: 26%; left: 35%; width: 80px; height: 20px; 
  background: radial-gradient(ellipse at 50% 50%, rgba(100,80,50,0.3) 0%, transparent 100%); 
  filter: blur(6px); 
  animation: fr-dust 0.5s ease-in-out infinite; 
}
@keyframes fr-moon { 0% { transform: translate(0, 0) scale(1); opacity: 0.8; } 50% { transform: translate(-3px, 2px) scale(1.02); opacity: 1; } 100% { transform: translate(2px, -1px) scale(0.98); opacity: 0.9; } }
@keyframes fr-sky { 0% { opacity: 0.4; } 50% { opacity: 0.7; } 100% { opacity: 0.5; } }
@keyframes fr-hill { 0% { transform: translateY(0) scaleX(1); } 50% { transform: translateY(-2px) scaleX(0.98); } 100% { transform: translateY(0) scaleX(1); } }
@keyframes fr-carriage { 0% { transform: rotate(0deg) translateY(0); } 25% { transform: rotate(0.5deg) translateY(-1px); } 50% { transform: rotate(-0.3deg) translateY(1px); } 75% { transform: rotate(0.2deg) translateY(-1px); } 100% { transform: rotate(0deg) translateY(0); } }
@keyframes fr-horse { 0% { transform: rotate(0deg) translateY(0); } 50% { transform: rotate(2deg) translateY(-2px); } 100% { transform: rotate(-1deg) translateY(0); } }
@keyframes fr-driver { 0% { transform: rotate(0deg) translateX(0); } 50% { transform: rotate(3deg) translateX(2px); } 100% { transform: rotate(-2deg) translateX(-1px); } }
@keyframes fr-passenger { 0% { transform: rotate(0deg) scale(1); } 50% { transform: rotate(-2deg) scale(0.95); } 100% { transform: rotate(1deg) scale(1.05); } }
@keyframes fr-dust { 0% { transform: translateX(0) scale(1); opacity: 0.6; } 50% { transform: translateX(-5px) scale(1.2); opacity: 0.3; } 100% { transform: translateX(5px) scale(0.8); opacity: 0.5; } }

.scn-baron-hun-like {
  background: linear-gradient(180deg, #0c1028 0%, #161e40 40%, #2a3560 100%),
              radial-gradient(ellipse at 70% 10%, #283a6a 0%, transparent 80%);
}
.scn-baron-hun-like .moon-bh { 
  position: absolute; top: 8%; left: 80%; width: 50px; height: 50px; 
  background: radial-gradient(circle at 35% 35%, #c8d0e8 0%, #7a8aa8 100%); 
  border-radius: 50%; box-shadow: 0 0 36px 10px rgba(160,180,220,0.4); 
  animation: bh-moon 14s ease-in-out infinite alternate; 
}
.scn-baron-hun-like .sky-bh { 
  position: absolute; inset: 0; 
  background: linear-gradient(135deg, rgba(30,50,90,0.15) 0%, transparent 80%); 
  animation: bh-sky 10s ease-in-out infinite alternate; 
}
.scn-baron-hun-like .ground-bh { 
  position: absolute; bottom: 20%; left: 0; right: 0; height: 40%; 
  background: linear-gradient(180deg, #1a2220 0%, #0a0f0d 100%); 
  border-radius: 30% 70% 0 0 / 40% 60% 0 0; 
  animation: bh-ground 20s ease-in-out infinite; 
}
.scn-baron-hun-like .rider-bh { 
  position: absolute; bottom: 28%; left: 45%; width: 32px; height: 70px; 
  background: linear-gradient(180deg, #1a151a 0%, #0d0910 100%); 
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%; 
  transform-origin: bottom center; 
  animation: bh-rider 0.5s ease-in-out infinite; 
}
.scn-baron-hun-like .horse-bh { 
  position: absolute; bottom: 28%; left: 42%; width: 50px; height: 45px; 
  background: linear-gradient(135deg, #3a2a1a 0%, #1a100a 100%); 
  border-radius: 50% 40% 30% 30% / 50% 60% 40% 40%; 
  animation: bh-horse 0.4s ease-in-out infinite; 
}
.scn-baron-hun-like .hound-bh-1 { 
  position: absolute; bottom: 22%; left: 30%; width: 40px; height: 20px; 
  background: linear-gradient(180deg, #2a1f1a 0%, #150e0a 100%); 
  border-radius: 50% 50% 40% 40% / 70% 70% 30% 30%; 
  animation: bh-hound 0.35s ease-in-out infinite; 
}
.scn-baron-hun-like .hound-bh-2 { 
  position: absolute; bottom: 21%; left: 25%; width: 35px; height: 18px; 
  background: linear-gradient(180deg, #2a1f1a 0%, #150e0a 100%); 
  border-radius: 50% 50% 40% 40% / 70% 70% 30% 30%; 
  animation: bh-hound 0.3s ease-in-out infinite reverse; 
}
.scn-baron-hun-like .arm-bh { 
  position: absolute; bottom: 46%; left: 46%; width: 6px; height: 30px; 
  background: #1a151a; border-radius: 50% 50% 0 0; 
  transform-origin: bottom center; 
  animation: bh-arm 0.6s ease-in-out infinite; 
}
@keyframes bh-moon { 0% { transform: translate(0, 0); opacity: 0.9; } 50% { transform: translate(-2px, 3px); opacity: 1; } 100% { transform: translate(1px, -1px); opacity: 0.85; } }
@keyframes bh-sky { 0% { opacity: 0.3; } 50% { opacity: 0.6; } 100% { opacity: 0.4; } }
@keyframes bh-ground { 0% { transform: translateY(0) scaleX(1); } 50% { transform: translateY(-1px) scaleX(0.98); } 100% { transform: translateY(0) scaleX(1); } }
@keyframes bh-rider { 0% { transform: rotate(0deg) translateX(0); } 50% { transform: rotate(2deg) translateX(1px); } 100% { transform: rotate(-1deg) translateX(-1px); } }
@keyframes bh-horse { 0% { transform: rotate(0deg) scaleY(1); } 25% { transform: rotate(1deg) scaleY(0.95); } 50% { transform: rotate(-0.5deg) scaleY(1); } 75% { transform: rotate(0.5deg) scaleY(0.98); } 100% { transform: rotate(0deg) scaleY(1); } }
@keyframes bh-hound { 0% { transform: translateX(0) scaleX(1); } 50% { transform: translateX(-3px) scaleX(0.9); } 100% { transform: translateX(2px) scaleX(1.05); } }
@keyframes bh-arm { 0% { transform: rotate(-20deg); } 50% { transform: rotate(30deg); } 100% { transform: rotate(-15deg); } }

.scn-marshfield-pause {
  background: linear-gradient(135deg, #1a1410 0%, #2a201a 40%, #1a1410 100%),
              radial-gradient(ellipse at 50% 80%, #2a201a 0%, transparent 70%);
}
.scn-marshfield-pause .wall-mp { 
  position: absolute; inset: 0; 
  background: radial-gradient(ellipse at 30% 60%, #3a3028 0%, #1a1410 100%); 
  animation: mp-wall 20s ease-in-out infinite alternate; 
}
.scn-marshfield-pause .window-mp { 
  position: absolute; top: 10%; left: 60%; width: 80px; height: 60px; 
  background: linear-gradient(180deg, #2a3a4a 0%, #1a2028 100%); 
  border: 4px solid #3a2a1a; border-radius: 8%; 
  box-shadow: inset 0 0 20px rgba(0,0,0,0.6); 
  animation: mp-window 15s ease-in-out infinite; 
}
.scn-marshfield-pause .table-mp { 
  position: absolute; bottom: 8%; left: 20%; width: 120px; height: 30px; 
  background: linear-gradient(180deg, #4a3520 0%, #2a1a0e 100%); 
  border-radius: 5% 5% 0 0; 
  animation: mp-table 12s ease-in-out infinite; 
}
.scn-marshfield-pause .cigar-mp { 
  position: absolute; bottom: 20%; left: 32%; width: 30px; height: 8px; 
  background: linear-gradient(135deg, #6a4a2a 0%, #3a2210 100%); 
  border-radius: 50%; 
  animation: mp-cigar 5s ease-in-out infinite; 
}
.scn-marshfield-pause .smoke-mp { 
  position: absolute; bottom: 30%; left: 34%; width: 40px; height: 60px; 
  background: radial-gradient(ellipse at 50% 100%, rgba(180,160,120,0.3) 0%, transparent 100%); 
  filter: blur(8px); 
  animation: mp-smoke 6s ease-in-out infinite alternate; 
}
.scn-marshfield-pause .marshfield-mp { 
  position: absolute; bottom: 10%; left: 28%; width: 30px; height: 80px; 
  background: linear-gradient(180deg, #2a201a 0%, #1a1410 100%); 
  border-radius: 40% 40% 30% 30% / 60% 50% 40% 40%; 
  transform-origin: bottom center; 
  animation: mp-figure 8s ease-in-out infinite; 
}
.scn-marshfield-pause .listener-mp-1 { 
  position: absolute; bottom: 10%; left: 50%; width: 28px; height: 70px; 
  background: linear-gradient(180deg, #2a201a 0%, #1a1410 100%); 
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%; 
  animation: mp-figure 8s ease-in-out infinite reverse; 
}
.scn-marshfield-pause .listener-mp-2 { 
  position: absolute; bottom: 10%; left: 55%; width: 28px; height: 70px; 
  background: linear-gradient(180deg, #2a201a 0%, #1a1410 100%); 
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%; 
  animation: mp-figure 8s ease-in-out infinite -2s; 
}
@keyframes mp-wall { 0% { opacity: 0.8; } 50% { opacity: 1; } 100% { opacity: 0.9; } }
@keyframes mp-window { 0% { transform: scale(1); opacity: 0.6; } 50% { transform: scale(1.02); opacity: 0.8; } 100% { transform: scale(1); opacity: 0.7; } }
@keyframes mp-table { 0% { transform: translateY(0); } 50% { transform: translateY(-1px); } 100% { transform: translateY(0); } }
@keyframes mp-cigar { 0% { transform: rotate(0deg) translateX(0); } 50% { transform: rotate(5deg) translateX(3px); } 100% { transform: rotate(-2deg) translateX(-1px); } }
@keyframes mp-smoke { 0% { transform: translateY(0) scale(1); opacity: 0.4; } 50% { transform: translateY(-10px) scale(1.5); opacity: 0.2; } 100% { transform: translateY(0) scale(1); opacity: 0.3; } }
@keyframes mp-figure { 0% { transform: rotate(0deg) translateY(0); } 50% { transform: rotate(1deg) translateY(-1px); } 100% { transform: rotate(-0.5deg) translateY(0); } }

.scn-confession {
  background: linear-gradient(180deg, #080c1a 0%, #101e38 40%, #1c2e50 100%),
              radial-gradient(ellipse at 60% 20%, #203a60 0%, transparent 80%);
}
.scn-confession .moon-cf { 
  position: absolute; top: 6%; left: 75%; width: 55px; height: 55px; 
  background: radial-gradient(circle at 40% 40%, #c4cce0 0%, #6a7a96 100%); 
  border-radius: 50%; box-shadow: 0 0 44px 14px rgba(150,170,210,0.35); 
  animation: cf-moon 16s ease-in-out infinite alternate; 
}
.scn-confession .sky-cf { 
  position: absolute; inset: 0; 
  background: linear-gradient(180deg, rgba(20,40,80,0.2) 0%, transparent 60%); 
  animation: cf-sky 12s ease-in-out infinite alternate; 
}
.scn-confession .mountains-cf { 
  position: absolute; bottom: 25%; left: 0; right: 0; height: 30%; 
  background: linear-gradient(180deg, #1a2228 0%, #0a0e12 100%); 
  clip-path: polygon(0% 100%, 10% 60%, 20% 80%, 35% 40%, 50% 70%, 65% 30%, 80% 50%, 90% 20%, 100% 60%, 100% 100%); 
  animation: cf-mountains 25s ease-in-out infinite; 
}
.scn-confession .rider-cf { 
  position: absolute; bottom: 32%; left: 45%; width: 30px; height: 65px; 
  background: linear-gradient(180deg, #0f0f1a 0%, #060610 100%); 
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%; 
  transform-origin: bottom center; 
  animation: cf-rider 0.6s ease-in-out infinite; 
}
.scn-confession .horse-cf { 
  position: absolute; bottom: 30%; left: 40%; width: 55px; height: 50px; 
  background: linear-gradient(135deg, #2a1a12 0%, #150b06 100%); 
  border-radius: 50% 40% 30% 30% / 50% 60% 40% 40%; 
  animation: cf-horse 0.5s ease-in-out infinite; 
}
.scn-confession .spur-cf { 
  position: absolute; bottom: 34%; left: 44%; width: 4px; height: 20px; 
  background: #4a3a2a; border-radius: 0 0 50% 50%; 
  transform-origin: top center; 
  animation: cf-spur 0.3s ease-in-out infinite; 
}
.scn-confession .ground-cf { 
  position: absolute; bottom: 20%; left: 0; right: 0; height: 30%; 
  background: linear-gradient(180deg, #1a201a 0%, #0a0e0a 100%); 
  border-radius: 40% 60% 0 0 / 30% 40% 0 0; 
  animation: cf-ground 22s ease-in-out infinite; 
}
.scn-confession .shadow-cf { 
  position: absolute; bottom: 20%; left: 35%; width: 80px; height: 20px; 
  background: radial-gradient(ellipse at 50% 50%, rgba(0,0,0,0.4) 0%, transparent 100%); 
  filter: blur(8px); 
  animation: cf-shadow 0.8s ease-in-out infinite; 
}
@keyframes cf-moon { 0% { transform: translate(0, 0) scale(1); opacity: 0.9; } 50% { transform: translate(-2px, 2px) scale(1.02); opacity: 1; } 100% { transform: translate(1px, -1px) scale(0.98); opacity: 0.85; } }
@keyframes cf-sky { 0% { opacity: 0.3; } 50% { opacity: 0.5; } 100% { opacity: 0.4; } }
@keyframes cf-mountains { 0% { transform: translateY(0) scaleX(1); } 50% { transform: translateY(-1px) scaleX(0.99); } 100% { transform: translateY(0) scaleX(1); } }
@keyframes cf-rider { 0% { transform: rotate(0deg) translateX(0); } 50% { transform: rotate(1.5deg) translateX(2px); } 100% { transform: rotate(-1deg) translateX(-1px); } }
@keyframes cf-horse { 0% { transform: rotate(0deg) scaleY(1); } 25% { transform: rotate(0.5deg) scaleY(0.96); } 50% { transform: rotate(-0.5deg) scaleY(1); } 75% { transform: rotate(0.3deg) scaleY(0.98); } 100% { transform: rotate(0deg) scaleY(1); } }
@keyframes cf-spur { 0% { transform: rotate(0deg); } 50% { transform: rotate(15deg); } 100% { transform: rotate(-5deg); } }
@keyframes cf-ground { 0% { transform: translateY(0); } 50% { transform: translateY(-1px); } 100% { transform: translateY(0); } }
@keyframes cf-shadow { 0% { transform: translateX(0) scale(1); opacity: 0.6; } 50% { transform: translateX(3px) scale(1.1); opacity: 0.8; } 100% { transform: translateX(-2px) scale(0.9); opacity: 0.5; } }

.scn-baron-listening {
  background:
    radial-gradient(ellipse at 50% 80%, #4a2a1a 0%, #1a0a0a 70%),
    linear-gradient(180deg, #0d0808 0%, #1a1008 100%);
}

.scn-baron-listening .wall {
  position: absolute;
  inset: 0 0 30% 0;
  background: linear-gradient(180deg, #2a1a10 0%, #1a0e08 100%);
  box-shadow: inset 0 20px 40px rgba(0,0,0,0.6);
  border-radius: 0 0 4% 4%;
}

.scn-baron-listening .floor {
  position: absolute;
  bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #2a1a0e 0%, #1a0e06 100%);
  box-shadow: inset 0 -10px 30px rgba(0,0,0,0.5);
  border-radius: 20% 20% 0 0;
}

.scn-baron-listening .lantern-glow {
  position: absolute;
  bottom: 35%; left: 60%;
  width: 120px; height: 120px;
  background: radial-gradient(circle, #d08030 0%, transparent 70%);
  border-radius: 50%;
  box-shadow: 0 0 80px 40px #d08030, 0 0 160px 80px rgba(208,128,48,0.3);
  animation: bl-lantern 4s ease-in-out infinite alternate;
}

.scn-baron-listening .figure-body {
  position: absolute;
  bottom: 28%; left: 48%; transform: translateX(-50%);
  width: 32px; height: 60px;
  background: linear-gradient(180deg, #1a0e08 0%, #0d0604 100%);
  border-radius: 50% 50% 45% 45% / 60% 60% 40% 40%;
  box-shadow: inset 0 -8px 12px rgba(0,0,0,0.8);
  animation: bl-body 3s ease-in-out infinite;
}

.scn-baron-listening .figure-head {
  position: absolute;
  bottom: 58%; left: 48%; transform: translateX(-50%);
  width: 28px; height: 34px;
  background: linear-gradient(180deg, #1a0e08 0%, #0d0604 100%);
  border-radius: 50% 50% 40% 40% / 70% 70% 40% 40%;
  box-shadow: inset 0 -6px 10px rgba(0,0,0,0.8);
  animation: bl-head 3s ease-in-out infinite;
}

.scn-baron-listening .ear-left {
  position: absolute;
  bottom: 62%; left: 44%;
  width: 10px; height: 18px;
  background: #0d0604;
  border-radius: 60% 30% 50% 40%;
  transform: rotate(-15deg);
  animation: bl-ear 3s ease-in-out infinite;
}

.scn-baron-listening .ear-right {
  position: absolute;
  bottom: 62%; left: 52%;
  width: 10px; height: 18px;
  background: #0d0604;
  border-radius: 30% 60% 40% 50%;
  transform: rotate(15deg);
  animation: bl-ear 3s ease-in-out infinite reverse;
}

.scn-baron-listening .shadow-bar {
  position: absolute;
  bottom: 30%; left: 40%; width: 120px; height: 6px;
  background: linear-gradient(90deg, transparent 0%, rgba(0,0,0,0.4) 50%, transparent 100%);
  filter: blur(3px);
  animation: bl-shadow 5s ease-in-out infinite;
}

@keyframes bl-lantern {
  0% { opacity: 0.7; transform: scale(1); }
  50% { opacity: 1; transform: scale(1.05); }
  100% { opacity: 0.8; transform: scale(0.95); }
}

@keyframes bl-body {
  0% { transform: translateX(-50%) translateY(0) rotate(0); }
  50% { transform: translateX(-50%) translateY(-2px) rotate(1deg); }
  100% { transform: translateX(-50%) translateY(0) rotate(0); }
}

@keyframes bl-head {
  0% { transform: translateX(-50%) rotate(0); }
  50% { transform: translateX(-50%) rotate(2deg) scaleY(1.02); }
  100% { transform: translateX(-50%) rotate(0); }
}

@keyframes bl-ear {
  0% { transform: rotate(-15deg) scaleY(1); }
  50% { transform: rotate(-10deg) scaleY(1.1); }
  100% { transform: rotate(-15deg) scaleY(1); }
}

@keyframes bl-shadow {
  0% { opacity: 0.3; }
  50% { opacity: 0.6; }
  100% { opacity: 0.3; }
}

/* ---- moonlight-view ---- */
.scn-moonlight-view {
  background:
    radial-gradient(ellipse at 30% 20%, #90b4d0 0%, transparent 50%),
    linear-gradient(180deg, #0a1a28 0%, #142d40 100%);
}

.scn-moonlight-view .sky-night {
  position: absolute;
  inset: 0 0 40% 0;
  background: linear-gradient(180deg, #0a1a28 0%, #1a3040 100%);
  animation: mv-sky 20s linear infinite alternate;
}

.scn-moonlight-view .moon {
  position: absolute;
  top: 10%; left: 70%;
  width: 60px; height: 60px;
  background: radial-gradient(circle at 40% 40%, #e0e8f0 0%, #b0c0d0 80%);
  border-radius: 50%;
  box-shadow: 0 0 40px 20px rgba(200,220,240,0.4), 0 0 80px 40px rgba(200,220,240,0.2);
  animation: mv-moon 8s ease-in-out infinite alternate;
}

.scn-moonlight-view .window-frame {
  position: absolute;
  bottom: 30%; left: 20%; width: 240px; height: 320px;
  background: linear-gradient(180deg, #2a1a10 0%, #1a0e08 100%);
  border-radius: 6% 6% 4% 4%;
  box-shadow: inset 0 0 30px rgba(0,0,0,0.7), 0 8px 20px rgba(0,0,0,0.5);
  transform: perspective(600px) rotateY(-5deg);
}

.scn-moonlight-view .window-glass {
  position: absolute;
  bottom: 35%; left: 23%; width: 180px; height: 260px;
  background: linear-gradient(180deg, rgba(180,210,240,0.2) 0%, rgba(100,140,180,0.1) 100%);
  border-radius: 4%;
  backdrop-filter: blur(2px);
  animation: mv-glass 12s ease-in-out infinite alternate;
  box-shadow: inset 0 0 30px rgba(200,220,255,0.1);
}

.scn-moonlight-view .figure-silhouette {
  position: absolute;
  bottom: 35%; left: 50%; transform: translateX(-50%);
  width: 40px; height: 80px;
  background: #0d0806;
  border-radius: 50% 50% 45% 45% / 70% 70% 40% 40%;
  box-shadow: 0 -6px 20px rgba(200,220,255,0.1);
  animation: mv-figure 5s ease-in-out infinite;
}

.scn-moonlight-view .snow-ground {
  position: absolute;
  bottom: 0; left: 0; right: 0; height: 35%;
  background: linear-gradient(180deg, #c8d8e0 0%, #a0b8c8 100%);
  border-radius: 40% 60% 0 0;
  box-shadow: inset 0 20px 40px rgba(80,100,120,0.3);
  animation: mv-snow 15s ease-in-out infinite alternate;
}

.scn-moonlight-view .distant-hills {
  position: absolute;
  bottom: 30%; left: 10%; right: 10%; height: 20%;
  background: linear-gradient(180deg, #2a4050 0%, #1a2834 100%);
  border-radius: 60% 40% 0 0 / 80% 60% 0 0;
  box-shadow: inset 0 8px 20px rgba(0,0,0,0.3);
  animation: mv-hills 25s ease-in-out infinite alternate;
}

@keyframes mv-sky {
  0% { opacity: 0.9; }
  50% { opacity: 1; }
  100% { opacity: 0.85; }
}

@keyframes mv-moon {
  0% { transform: translateY(0) scale(1); box-shadow: 0 0 40px 20px rgba(200,220,240,0.4); }
  50% { transform: translateY(-4px) scale(1.02); box-shadow: 0 0 60px 30px rgba(200,220,240,0.5); }
  100% { transform: translateY(0) scale(1); box-shadow: 0 0 40px 20px rgba(200,220,240,0.4); }
}

@keyframes mv-glass {
  0% { opacity: 0.3; }
  50% { opacity: 0.5; }
  100% { opacity: 0.3; }
}

@keyframes mv-figure {
  0% { transform: translateX(-50%) translateY(0); }
  50% { transform: translateX(-50%) translateY(-3px) rotateY(5deg); }
  100% { transform: translateX(-50%) translateY(0); }
}

@keyframes mv-snow {
  0% { transform: scaleY(1); }
  50% { transform: scaleY(1.02); }
  100% { transform: scaleY(1); }
}

@keyframes mv-hills {
  0% { transform: translateY(0); }
  50% { transform: translateY(-3px); }
  100% { transform: translateY(0); }
}

/* ---- item-bells ---- */
.scn-item-bells {
  background:
    radial-gradient(ellipse at 80% 20%, #a0c0d8 0%, transparent 60%),
    linear-gradient(180deg, #0a1a2e 0%, #142c40 100%);
}

.scn-item-bells .sky-cold {
  position: absolute;
  inset: 0 0 50% 0;
  background: linear-gradient(180deg, #0a1a2e 0%, #1a3448 100%);
  animation: ib-sky 30s linear infinite alternate;
}

.scn-item-bells .snow-plain {
  position: absolute;
  bottom: 0; left: 0; right: 0; height: 50%;
  background: linear-gradient(180deg, #d0dce8 0%, #b0c4d4 100%);
  border-radius: 60% 40% 0 0;
  box-shadow: inset 0 20px 40px rgba(80,100,120,0.3);
}

.scn-item-bells .distant-tree {
  position: absolute;
  bottom: 45%; left: 15%;
  width: 30px; height: 60px;
  background: linear-gradient(180deg, #1a2a34 0%, #0d181e 100%);
  border-radius: 50% 50% 40% 40% / 80% 80% 20% 20%;
  animation: ib-tree 6s ease-in-out infinite;
}

.scn-item-bells .bell-shape {
  position: absolute;
  bottom: 55%; left: 50%; transform: translateX(-50%);
  width: 40px; height: 50px;
  background: radial-gradient(circle at 30% 30%, #d0a060 0%, #b07040 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  box-shadow: 0 0 20px 10px rgba(176,112,64,0.3);
  animation: ib-bell 2s ease-in-out infinite;
}

.scn-item-bells .bell-clapper {
  position: absolute;
  bottom: 48%; left: 50%; transform: translateX(-50%);
  width: 12px; height: 14px;
  background: #6a4020;
  border-radius: 50%;
  box-shadow: inset 0 -2px 4px rgba(0,0,0,0.5);
  animation: ib-clapper 2s ease-in-out infinite;
}

.scn-item-bells .bell-handle {
  position: absolute;
  bottom: 65%; left: 50%; transform: translateX(-50%);
  width: 8px; height: 20px;
  background: linear-gradient(180deg, #8a6040 0%, #5a3a20 100%);
  border-radius: 30%;
  box-shadow: inset 0 0 4px rgba(0,0,0,0.4);
}

.scn-item-bells .sound-wave {
  position: absolute;
  bottom: 60%; left: 42%; width: 80px; height: 30px;
  border: 2px solid rgba(200,220,255,0.2);
  border-radius: 50%;
  filter: blur(1px);
  animation: ib-wave 3s ease-out infinite;
  opacity: 0;
}

@keyframes ib-sky {
  0% { opacity: 0.8; }
  50% { opacity: 1; }
  100% { opacity: 0.85; }
}

@keyframes ib-tree {
  0% { transform: rotate(0) scaleY(1); }
  50% { transform: rotate(2deg) scaleY(1.02); }
  100% { transform: rotate(0) scaleY(1); }
}

@keyframes ib-bell {
  0% { transform: translateX(-50%) rotate(-5deg); }
  50% { transform: translateX(-50%) rotate(5deg); }
  100% { transform: translateX(-50%) rotate(-5deg); }
}

@keyframes ib-clapper {
  0% { transform: translateX(-50%) translateY(0); }
  50% { transform: translateX(-50%) translateY(4px); }
  100% { transform: translateX(-50%) translateY(0); }
}

@keyframes ib-wave {
  0% { opacity: 0.5; transform: scale(0.5); }
  50% { opacity: 0.2; transform: scale(1.5); }
  100% { opacity: 0; transform: scale(2); }
}

/* ---- approaching-sound ---- */
.scn-approaching-sound {
  background:
    radial-gradient(ellipse at 70% 30%, #80a0b8 0%, transparent 50%),
    linear-gradient(180deg, #0a1a28 0%, #152a38 100%);
}

.scn-approaching-sound .sky-night {
  position: absolute;
  inset: 0 0 45% 0;
  background: linear-gradient(180deg, #0a1a28 0%, #1a3040 100%);
  animation: as-sky 25s linear infinite alternate;
}

.scn-approaching-sound .road {
  position: absolute;
  bottom: 0; left: 30%; right: 30%; height: 55%;
  background: linear-gradient(180deg, #c0c8d0 0%, #889098 100%);
  clip-path: polygon(20% 0%, 80% 0%, 90% 100%, 10% 100%);
  box-shadow: inset 0 -20px 40px rgba(0,0,0,0.3);
  animation: as-road 8s ease-in-out infinite alternate;
}

.scn-approaching-sound .tree-left {
  position: absolute;
  bottom: 40%; left: 10%;
  width: 40px; height: 80px;
  background: linear-gradient(180deg, #1a2a34 0%, #0d181e 100%);
  border-radius: 50% 50% 40% 40% / 80% 80% 20% 20%;
  transform: scaleX(0.8);
  animation: as-tree 6s ease-in-out infinite;
}

.scn-approaching-sound .tree-right {
  position: absolute;
  bottom: 40%; right: 10%;
  width: 40px; height: 80px;
  background: linear-gradient(180deg, #1a2a34 0%, #0d181e 100%);
  border-radius: 50% 50% 40% 40% / 80% 80% 20% 20%;
  transform: scaleX(0.8);
  animation: as-tree 6s ease-in-out infinite reverse;
}

.scn-approaching-sound .horse-body {
  position: absolute;
  bottom: 30%; left: 60%; transform: translateX(-50%);
  width: 70px; height: 40px;
  background: linear-gradient(180deg, #2a1a10 0%, #1a0e08 100%);
  border-radius: 45% 55% 50% 50% / 60% 50% 50% 40%;
  box-shadow: 0 6px 12px rgba(0,0,0,0.5);
  animation: as-horse 0.8s ease-in-out infinite;
}

.scn-approaching-sound .horse-legs {
  position: absolute;
  bottom: 18%; left: 55%; width: 50px; height: 30px;
  background: linear-gradient(180deg, #1a0e08 0%, #0d0604 100%);
  clip-path: polygon(10% 0%, 30% 0%, 25% 100%, 5% 100%, 40% 0%, 60% 0%, 55% 100%, 35% 100%, 70% 0%, 90% 0%, 85% 100%, 65% 100%);
  animation: as-legs 0.4s ease-in-out infinite;
}

.scn-approaching-sound .rider {
  position: absolute;
  bottom: 48%; left: 62%; transform: translateX(-50%);
  width: 24px; height: 40px;
  background: #0d0806;
  border-radius: 50% 50% 45% 45% / 70% 70% 40% 40%;
  animation: as-rider 0.8s ease-in-out infinite;
}

.scn-approaching-sound .dust-cloud {
  position: absolute;
  bottom: 25%; left: 70%; width: 60px; height: 20px;
  background: radial-gradient(ellipse, rgba(200,210,220,0.3) 0%, transparent 70%);
  filter: blur(4px);
  animation: as-dust 1.5s ease-in-out infinite;
}

@keyframes as-sky {
  0% { opacity: 0.85; }
  50% { opacity: 1; }
  100% { opacity: 0.8; }
}

@keyframes as-road {
  0% { transform: scaleY(1); }
  50% { transform: scaleY(1.02); }
  100% { transform: scaleY(1); }
}

@keyframes as-tree {
  0% { transform: scaleX(0.8) rotate(0); }
  50% { transform: scaleX(0.8) rotate(1deg); }
  100% { transform: scaleX(0.8) rotate(0); }
}

@keyframes as-horse {
  0% { transform: translateX(-50%) translateY(0) rotate(0); }
  25% { transform: translateX(-50%) translateY(-3px) rotate(-1deg); }
  50% { transform: translateX(-50%) translateY(0) rotate(0); }
  75% { transform: translateX(-50%) translateY(-3px) rotate(1deg); }
  100% { transform: translateX(-50%) translateY(0) rotate(0); }
}

@keyframes as-legs {
  0% { transform: translateY(0); }
  50% { transform: translateY(4px); }
  100% { transform: translateY(0); }
}

@keyframes as-rider {
  0% { transform: translateX(-50%) translateY(0) rotate(0); }
  50% { transform: translateX(-50%) translateY(-3px) rotate(2deg); }
  100% { transform: translateX(-50%) translateY(0) rotate(0); }
}

@keyframes as-dust {
  0% { transform: scale(0.8); opacity: 0.3; }
  50% { transform: scale(1.2); opacity: 0.5; }
  100% { transform: scale(0.8); opacity: 0.3; }
}

.scn-canter-begin {
  background: linear-gradient(180deg, #0e1726 0%, #1a2a3e 30%, #2c4054 60%, #3a4a5e 100%),
              radial-gradient(ellipse at 80% 10%, #4a6a8e 0%, transparent 60%);
  overflow: hidden;
}
.scn-canter-begin .moon {
  position: absolute;
  top: 8%;
  left: 75%;
  width: 40px;
  height: 40px;
  background: radial-gradient(circle, #dbe6f0 0%, #a0b8d0 70%, transparent 100%);
  border-radius: 50%;
  box-shadow: 0 0 60px 20px rgba(160,184,208,0.4);
  animation: cb-moon 12s ease-in-out infinite alternate;
}
.scn-canter-begin .sky {
  position: absolute;
  inset: 0 0 60% 0;
  background: linear-gradient(180deg, #0f1a2a 0%, #1f3040 50%, transparent 100%);
  animation: cb-sky 8s ease-in-out infinite alternate;
}
.scn-canter-begin .trees-bg {
  position: absolute;
  bottom: 30%;
  left: 0;
  right: 0;
  height: 30%;
  background: linear-gradient(180deg, #1a2a1a 0%, #0f1a0f 100%);
  border-radius: 0 0 40% 40% / 0 0 80% 80%;
  clip-path: polygon(0% 0%, 20% 0%, 25% 100%, 5% 100%);
  filter: blur(3px);
  animation: cb-trees 15s ease-in-out infinite alternate;
}
.scn-canter-begin .snow-ground {
  position: absolute;
  bottom: 0;
  left: 0;
  right: 0;
  height: 35%;
  background: linear-gradient(180deg, #c0d0e0 0%, #8098b0 100%);
  border-radius: 20% 80% 0 0 / 60% 40% 0 0;
  animation: cb-snow 6s ease-in-out infinite alternate;
}
.scn-canter-begin .rider {
  position: absolute;
  bottom: 28%;
  left: 30%;
  width: 12px;
  height: 20px;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: cb-rider 1s ease-in-out infinite;
}
.scn-canter-begin .horse {
  position: absolute;
  bottom: 22%;
  left: 28%;
  width: 30px;
  height: 18px;
  background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%);
  border-radius: 40% 60% 30% 40% / 50% 50% 40% 50%;
  transform-origin: center bottom;
  animation: cb-horse 0.8s ease-in-out infinite;
}
.scn-canter-begin .hounds {
  position: absolute;
  bottom: 20%;
  left: 45%;
  width: 8px;
  height: 6px;
  background: #2a3a2a;
  border-radius: 50% 50% 40% 40%;
  animation: cb-hounds 1.2s ease-in-out infinite;
}
.scn-canter-begin .hounds2 {
  position: absolute;
  bottom: 20%;
  left: 50%;
  width: 7px;
  height: 5px;
  background: #1a2a1a;
  border-radius: 50% 50% 40% 40%;
  animation: cb-hounds2 1.1s ease-in-out infinite;
}
.scn-canter-begin .mist {
  position: absolute;
  bottom: 30%;
  left: 0;
  right: 0;
  height: 15%;
  background: linear-gradient(180deg, rgba(200,215,230,0.2) 0%, transparent 100%);
  filter: blur(8px);
  animation: cb-mist 20s linear infinite;
}
@keyframes cb-moon { 0% { opacity: 0.8; transform: scale(1); } 50% { opacity: 1; transform: scale(1.05); } 100% { opacity: 0.9; transform: scale(0.95); } }
@keyframes cb-sky { 0% { opacity: 0.7; } 50% { opacity: 1; } 100% { opacity: 0.8; } }
@keyframes cb-trees { 0% { transform: translateY(0); } 50% { transform: translateY(-3px); } 100% { transform: translateY(0); } }
@keyframes cb-snow { 0% { opacity: 0.8; } 50% { opacity: 1; } 100% { opacity: 0.9; } }
@keyframes cb-rider { 0% { transform: translateY(0) rotate(-2deg); } 25% { transform: translateY(-2px) rotate(1deg); } 50% { transform: translateY(0) rotate(-1deg); } 75% { transform: translateY(-1px) rotate(2deg); } 100% { transform: translateY(0) rotate(-2deg); } }
@keyframes cb-horse { 0% { transform: translateY(0) scaleX(1); } 25% { transform: translateY(-3px) scaleX(0.98); } 50% { transform: translateY(0) scaleX(1); } 75% { transform: translateY(-2px) scaleX(0.97); } 100% { transform: translateY(0) scaleX(1); } }
@keyframes cb-hounds { 0% { transform: translateX(0); } 50% { transform: translateX(5px); } 100% { transform: translateX(0); } }
@keyframes cb-hounds2 { 0% { transform: translateX(0) translateY(0); } 50% { transform: translateX(-4px) translateY(-1px); } 100% { transform: translateX(0) translateY(0); } }
@keyframes cb-mist { 0% { transform: translateX(0); } 100% { transform: translateX(100vw); } }

.scn-lost-scent {
  background: linear-gradient(180deg, #0d1b2a 0%, #1b2a3a 30%, #2a3a4a 60%, #3a4a5a 100%),
              radial-gradient(ellipse at 20% 30%, #3a5a7a 0%, transparent 50%);
  overflow: hidden;
}
.scn-lost-scent .moon {
  position: absolute;
  top: 8%;
  left: 20%;
  width: 35px;
  height: 35px;
  background: radial-gradient(circle, #d0e0f0 0%, #90a8c0 70%, transparent 100%);
  border-radius: 50%;
  box-shadow: 0 0 40px 15px rgba(144,168,192,0.3);
  animation: ls-moon 15s ease-in-out infinite alternate;
}
.scn-lost-scent .sky {
  position: absolute;
  inset: 0 0 50% 0;
  background: linear-gradient(180deg, #102030 0%, #203040 40%, transparent 100%);
  animation: ls-sky 10s ease-in-out infinite alternate;
}
.scn-lost-scent .trees-far {
  position: absolute;
  bottom: 35%;
  left: 0;
  right: 0;
  height: 25%;
  background: linear-gradient(180deg, #1a2a1a 0%, #0f1a0f 100%);
  border-radius: 0 0 50% 50% / 0 0 70% 70%;
  filter: blur(4px);
  animation: ls-trees 20s ease-in-out infinite alternate;
}
.scn-lost-scent .clearing {
  position: absolute;
  bottom: 20%;
  left: 25%;
  right: 25%;
  height: 30%;
  background: linear-gradient(180deg, #b0c8d8 0%, #8098b0 100%);
  border-radius: 50% 50% 0 0 / 60% 60% 0 0;
  animation: ls-clearing 8s ease-in-out infinite alternate;
}
.scn-lost-scent .hound1 {
  position: absolute;
  bottom: 22%;
  left: 30%;
  width: 10px;
  height: 7px;
  background: #2a3a2a;
  border-radius: 50% 50% 40% 40%;
  animation: ls-hound1 3s ease-in-out infinite;
}
.scn-lost-scent .hound2 {
  position: absolute;
  bottom: 23%;
  left: 35%;
  width: 9px;
  height: 6px;
  background: #1a2a1a;
  border-radius: 50% 50% 40% 40%;
  animation: ls-hound2 2.5s ease-in-out infinite;
}
.scn-lost-scent .hound3 {
  position: absolute;
  bottom: 21%;
  left: 40%;
  width: 8px;
  height: 7px;
  background: #1a2a1a;
  border-radius: 50% 50% 40% 40%;
  animation: ls-hound3 3.2s ease-in-out infinite;
}
.scn-lost-scent .rider-still {
  position: absolute;
  bottom: 25%;
  left: 50%;
  width: 14px;
  height: 22px;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: ls-rider 6s ease-in-out infinite;
}
.scn-lost-scent .scent-wisp {
  position: absolute;
  bottom: 30%;
  left: 35%;
  width: 20px;
  height: 15px;
  background: radial-gradient(circle, rgba(200,215,230,0.3) 0%, transparent 100%);
  filter: blur(6px);
  animation: ls-wisp 4s ease-in-out infinite;
}
@keyframes ls-moon { 0% { opacity: 0.7; transform: scale(1); } 50% { opacity: 1; transform: scale(1.03); } 100% { opacity: 0.8; transform: scale(0.97); } }
@keyframes ls-sky { 0% { opacity: 0.7; } 50% { opacity: 1; } 100% { opacity: 0.8; } }
@keyframes ls-trees { 0% { transform: translateY(0); } 50% { transform: translateY(-2px); } 100% { transform: translateY(0); } }
@keyframes ls-clearing { 0% { opacity: 0.7; } 50% { opacity: 1; } 100% { opacity: 0.8; } }
@keyframes ls-hound1 { 0% { transform: translateX(0) rotate(0deg); } 25% { transform: translateX(3px) rotate(5deg); } 50% { transform: translateX(-2px) rotate(-3deg); } 75% { transform: translateX(1px) rotate(2deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes ls-hound2 { 0% { transform: translateX(0); } 50% { transform: translateX(-4px); } 100% { transform: translateX(0); } }
@keyframes ls-hound3 { 0% { transform: translateX(0) translateY(0); } 25% { transform: translateX(2px) translateY(-1px); } 50% { transform: translateX(-1px) translateY(1px); } 75% { transform: translateX(3px) translateY(0); } 100% { transform: translateX(0) translateY(0); } }
@keyframes ls-rider { 0% { transform: translateY(0); } 50% { transform: translateY(-1px); } 100% { transform: translateY(0); } }
@keyframes ls-wisp { 0% { opacity: 0.5; transform: scale(1); } 50% { opacity: 1; transform: scale(1.2); } 100% { opacity: 0.3; transform: scale(0.9); } }

.scn-bend-avenue {
  background: linear-gradient(180deg, #0a1628 0%, #1a2a3c 30%, #2a3a4c 60%, #38485a 100%),
              radial-gradient(ellipse at 60% 5%, #4a6a8a 0%, transparent 60%);
  overflow: hidden;
}
.scn-bend-avenue .moon {
  position: absolute;
  top: 6%;
  left: 65%;
  width: 38px;
  height: 38px;
  background: radial-gradient(circle, #d8e6f0 0%, #a0b8d0 70%, transparent 100%);
  border-radius: 50%;
  box-shadow: 0 0 50px 18px rgba(160,184,208,0.4);
  animation: ba-moon 14s ease-in-out infinite alternate;
}
.scn-bend-avenue .sky {
  position: absolute;
  inset: 0 0 55% 0;
  background: linear-gradient(180deg, #0f1c2e 0%, #1e2e40 40%, transparent 100%);
  animation: ba-sky 9s ease-in-out infinite alternate;
}
.scn-bend-avenue .tree-left {
  position: absolute;
  top: 0;
  left: 0;
  width: 12%;
  height: 100%;
  background: linear-gradient(180deg, #0a140a 0%, #1a2a1a 100%);
  clip-path: polygon(0% 0%, 100% 0%, 80% 100%, 0% 100%);
  filter: blur(1px);
  animation: ba-tree 20s ease-in-out infinite alternate;
}
.scn-bend-avenue .tree-right {
  position: absolute;
  top: 0;
  right: 0;
  width: 15%;
  height: 100%;
  background: linear-gradient(180deg, #0a140a 0%, #1a2a1a 100%);
  clip-path: polygon(20% 0%, 100% 0%, 100% 100%, 0% 100%);
  filter: blur(1px);
  animation: ba-tree 20s ease-in-out infinite alternate-reverse;
}
.scn-bend-avenue .snow-track {
  position: absolute;
  bottom: 0;
  left: 20%;
  right: 20%;
  height: 25%;
  background: linear-gradient(180deg, #b0c8d8 0%, #8098b0 100%);
  border-radius: 40% 60% 0 0 / 50% 50% 0 0;
  animation: ba-snow 6s ease-in-out infinite alternate;
}
.scn-bend-avenue .sleigh-mark {
  position: absolute;
  bottom: 10%;
  left: 30%;
  width: 40%;
  height: 8px;
  background: #607888;
  border-radius: 50%;
  filter: blur(3px);
  animation: ba-sleigh 10s ease-in-out infinite;
}
.scn-bend-avenue .hounds-cluster {
  position: absolute;
  bottom: 22%;
  left: 45%;
  width: 12px;
  height: 8px;
  background: #2a3a2a;
  border-radius: 50% 50% 40% 40%;
  animation: ba-hounds 3s ease-in-out infinite;
}
.scn-bend-avenue .rider-bend {
  position: absolute;
  bottom: 25%;
  left: 55%;
  width: 13px;
  height: 21px;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: ba-rider 4s ease-in-out infinite;
}
@keyframes ba-moon { 0% { opacity: 0.7; transform: scale(1); } 50% { opacity: 1; transform: scale(1.05); } 100% { opacity: 0.8; transform: scale(0.95); } }
@keyframes ba-sky { 0% { opacity: 0.7; } 50% { opacity: 1; } 100% { opacity: 0.8; } }
@keyframes ba-tree { 0% { transform: translateY(0); } 50% { transform: translateY(-2px); } 100% { transform: translateY(0); } }
@keyframes ba-snow { 0% { opacity: 0.8; } 50% { opacity: 1; } 100% { opacity: 0.9; } }
@keyframes ba-sleigh { 0% { transform: translateX(0); } 50% { transform: translateX(5px); } 100% { transform: translateX(0); } }
@keyframes ba-hounds { 0% { transform: translateX(0) translateY(0); } 25% { transform: translateX(2px) translateY(-1px); } 50% { transform: translateX(-1px) translateY(1px); } 75% { transform: translateX(3px) translateY(0); } 100% { transform: translateX(0) translateY(0); } }
@keyframes ba-rider { 0% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-1px) rotate(2deg); } 100% { transform: translateY(0) rotate(0deg); } }

.scn-baron-fury {
  background: linear-gradient(180deg, #0a1220 0%, #1a2232 30%, #2a3a4a 60%, #3a4a5a 100%),
              radial-gradient(ellipse at 30% 20%, #4a6a8a 0%, transparent 60%);
  overflow: hidden;
}
.scn-baron-fury .moon {
  position: absolute;
  top: 5%;
  left: 30%;
  width: 35px;
  height: 35px;
  background: radial-gradient(circle, #d0e0f0 0%, #90a8c0 70%, transparent 100%);
  border-radius: 50%;
  box-shadow: 0 0 45px 16px rgba(144,168,192,0.35);
  animation: bf-moon 13s ease-in-out infinite alternate;
}
.scn-baron-fury .sky {
  position: absolute;
  inset: 0 0 55% 0;
  background: linear-gradient(180deg, #0f1a2a 0%, #1a2a3a 40%, transparent 100%);
  animation: bf-sky 8s ease-in-out infinite alternate;
}
.scn-baron-fury .trees-dark {
  position: absolute;
  bottom: 30%;
  left: 0;
  right: 0;
  height: 25%;
  background: linear-gradient(180deg, #0f1a0f 0%, #050a05 100%);
  border-radius: 0 0 30% 70% / 0 0 60% 80%;
  filter: blur(5px);
  animation: bf-trees 18s ease-in-out infinite alternate;
}
.scn-baron-fury .snow-bloodied {
  position: absolute;
  bottom: 0;
  left: 0;
  right: 0;
  height: 30%;
  background: linear-gradient(180deg, #b0c0d0 0%, #607080 100%);
  border-radius: 30% 70% 0 0 / 50% 60% 0 0;
  animation: bf-snow 5s ease-in-out infinite alternate;
}
.scn-baron-fury .baron {
  position: absolute;
  bottom: 25%;
  left: 40%;
  width: 14px;
  height: 24px;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: bf-baron 0.8s ease-in-out infinite;
}
.scn-baron-fury .horse-rear {
  position: absolute;
  bottom: 18%;
  left: 38%;
  width: 32px;
  height: 22px;
  background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%);
  border-radius: 40% 60% 30% 40% / 50% 50% 40% 50%;
  transform-origin: center bottom;
  animation: bf-horse 0.6s ease-in-out infinite;
}
.scn-baron-fury .whip-arc {
  position: absolute;
  bottom: 40%;
  left: 42%;
  width: 60px;
  height: 20px;
  border: 2px solid rgba(200,200,200,0.6);
  border-radius: 50%;
  border-top-color: transparent;
  border-left-color: transparent;
  transform: rotate(-30deg);
  animation: bf-whip 0.5s ease-in-out infinite;
}
.scn-baron-fury .hound-cower {
  position: absolute;
  bottom: 22%;
  left: 55%;
  width: 9px;
  height: 5px;
  background: #2a3a2a;
  border-radius: 50% 50% 40% 40%;
  animation: bf-hound 1.5s ease-in-out infinite;
}
.scn-baron-fury .dust {
  position: absolute;
  bottom: 15%;
  left: 45%;
  width: 30px;
  height: 20px;
  background: radial-gradient(circle, rgba(200,200,220,0.2) 0%, transparent 100%);
  filter: blur(8px);
  animation: bf-dust 2s ease-in-out infinite;
}
@keyframes bf-moon { 0% { opacity: 0.7; transform: scale(1); } 50% { opacity: 1; transform: scale(1.04); } 100% { opacity: 0.8; transform: scale(0.96); } }
@keyframes bf-sky { 0% { opacity: 0.7; } 50% { opacity: 1; } 100% { opacity: 0.85; } }
@keyframes bf-trees { 0% { transform: translateY(0); } 50% { transform: translateY(-2px); } 100% { transform: translateY(0); } }
@keyframes bf-snow { 0% { opacity: 0.7; } 50% { opacity: 1; } 100% { opacity: 0.8; } }
@keyframes bf-baron { 0% { transform: translateY(0) rotate(-3deg); } 25% { transform: translateY(-2px) rotate(2deg); } 50% { transform: translateY(0) rotate(-1deg); } 75% { transform: translateY(-1px) rotate(3deg); } 100% { transform: translateY(0) rotate(-3deg); } }
@keyframes bf-horse { 0% { transform: translateY(0) scaleX(1); } 25% { transform: translateY(-4px) scaleX(0.97); } 50% { transform: translateY(0) scaleX(1); } 75% { transform: translateY(-2px) scaleX(0.96); } 100% { transform: translateY(0) scaleX(1); } }
@keyframes bf-whip { 0% { transform: rotate(-30deg) scaleX(1); } 50% { transform: rotate(-10deg) scaleX(1.2); } 100% { transform: rotate(-30deg) scaleX(1); } }
@keyframes bf-hound { 0% { transform: translateX(0); } 50% { transform: translateX(-3px); } 100% { transform: translateX(0); } }
@keyframes bf-dust { 0% { opacity: 0.3; transform: scale(1); } 50% { opacity: 0.8; transform: scale(1.3); } 100% { opacity: 0.2; transform: scale(0.9); } }

/* smoking-room-gathering – calm bright interior */
.scn-smoking-room-gathering {
  background: linear-gradient(180deg, #f5f0eb 0%, #e8e0d5 40%, #d8cec0 100%),
              radial-gradient(ellipse at 50% 0%, #ffffff 0%, transparent 70%);
  background-blend-mode: overlay;
}
.scn-smoking-room-gathering .wall {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(180deg, #e8e0d5 0%, #ddd4c6 100%);
  animation: smk-wall 8s ease-in-out infinite alternate;
}
.scn-smoking-room-gathering .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 40%;
  background: linear-gradient(180deg, #c4b8a8 0%, #a89a88 100%);
  box-shadow: inset 0 20px 40px rgba(0,0,0,0.1);
  border-radius: 20% 20% 0 0 / 10% 10% 0 0;
  animation: smk-floor 12s ease-in-out infinite alternate;
}
.scn-smoking-room-gathering .table {
  position: absolute; bottom: 30%; left: 50%; width: 120px; height: 60px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #8a7a6a 0%, #6a5a4a 100%);
  border-radius: 8px;
  box-shadow: 0 4px 8px rgba(0,0,0,0.3);
  animation: smk-table 10s ease-in-out infinite;
}
.scn-smoking-room-gathering .lamp {
  position: absolute; bottom: 46%; left: 50%; width: 14px; height: 20px;
  transform: translateX(-50%);
  background: radial-gradient(circle, #ffd9a0 0%, #c89a60 80%);
  border-radius: 40% 40% 20% 20%;
  box-shadow: 0 0 30px 10px #ffd9a0, 0 0 60px 20px rgba(255,217,160,0.3);
  animation: smk-lamp 3s ease-in-out infinite alternate;
}
.scn-smoking-room-gathering .chair-left {
  position: absolute; bottom: 28%; left: 30%; width: 50px; height: 80px;
  background: linear-gradient(135deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 30% 30% 20% 20% / 40% 40% 20% 20%;
  transform: rotate(5deg);
  animation: smk-chair 15s ease-in-out infinite alternate;
}
.scn-smoking-room-gathering .chair-right {
  position: absolute; bottom: 28%; right: 30%; width: 50px; height: 80px;
  background: linear-gradient(225deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 30% 30% 20% 20% / 40% 40% 20% 20%;
  transform: rotate(-5deg);
  animation: smk-chair 15s ease-in-out infinite alternate-reverse;
}
.scn-smoking-room-gathering .figure-standing {
  position: absolute; bottom: 26%; left: 50%; width: 20px; height: 80px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 40%, #0a0a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: smk-standing 5s ease-in-out infinite;
}
.scn-smoking-room-gathering .figure-seated {
  position: absolute; bottom: 26%; left: 38%; width: 18px; height: 50px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: smk-seated 6s ease-in-out infinite alternate;
}
.scn-smoking-room-gathering .curtain {
  position: absolute; top: 0; left: 0; width: 20%; height: 60%;
  background: linear-gradient(90deg, #c8b8a8 0%, #b0a090 100%);
  border-radius: 0 60% 60% 0 / 0 40% 40% 0;
  filter: blur(2px);
  animation: smk-curtain 20s ease-in-out infinite;
}
@keyframes smk-wall { 0% { opacity: 0.9; } 50% { opacity: 1; } 100% { opacity: 0.85; } }
@keyframes smk-floor { 0% { transform: translateY(0); } 50% { transform: translateY(-2px); } 100% { transform: translateY(0); } }
@keyframes smk-table { 0%,100% { transform: translateX(-50%) translateY(0); } 50% { transform: translateX(-50%) translateY(-1px); } }
@keyframes smk-lamp { 0% { box-shadow: 0 0 24px 6px #ffd9a0, 0 0 48px 12px rgba(255,217,160,0.2); opacity: 0.8; } 50% { box-shadow: 0 0 40px 14px #ffd9a0, 0 0 80px 24px rgba(255,217,160,0.5); opacity: 1; } 100% { box-shadow: 0 0 28px 8px #ffd9a0, 0 0 56px 16px rgba(255,217,160,0.3); opacity: 0.85; } }
@keyframes smk-chair { 0% { transform: rotate(5deg) scale(1); } 50% { transform: rotate(7deg) scale(1.01); } 100% { transform: rotate(5deg) scale(1); } }
@keyframes smk-standing { 0% { transform: translateX(-50%) translateY(0) rotate(-1deg); } 25% { transform: translateX(-50%) translateY(-2px) rotate(0deg); } 50% { transform: translateX(-50%) translateY(0) rotate(1deg); } 75% { transform: translateX(-50%) translateY(-2px) rotate(0deg); } 100% { transform: translateX(-50%) translateY(0) rotate(-1deg); } }
@keyframes smk-seated { 0% { transform: translateX(-50%) rotate(2deg); } 50% { transform: translateX(-50%) rotate(4deg); } 100% { transform: translateX(-50%) rotate(2deg); } }
@keyframes smk-curtain { 0% { transform: translateX(0); } 50% { transform: translateX(-5px); } 100% { transform: translateX(0); } }

/* item-superfine-cigar – calm bright interior close-up */
.scn-item-superfine-cigar {
  background: linear-gradient(180deg, #ece6da 0%, #dfd6c6 50%, #cbb6a2 100%),
              radial-gradient(circle at 60% 80%, #ffffff 0%, transparent 70%);
}
.scn-item-superfine-cigar .bg-deep {
  position: absolute; inset: 0; background: linear-gradient(135deg, #c4b8a8 0%, #b0a090 100%); opacity: 0.3; animation: cig-bg 20s ease-in-out infinite;
}
.scn-item-superfine-cigar .tabletop {
  position: absolute; bottom: 10%; left: 10%; right: 10%; height: 30%;
  background: linear-gradient(180deg, #8a7a6a 0%, #6a5a4a 100%);
  border-radius: 8px; box-shadow: inset 0 2px 8px rgba(0,0,0,0.2);
  animation: cig-table 15s ease-in-out infinite alternate;
}
.scn-item-superfine-cigar .cigar {
  position: absolute; bottom: 28%; left: 50%; width: 60px; height: 16px;
  transform: translateX(-50%) rotate(-15deg);
  background: linear-gradient(180deg, #6a4a1a 0%, #4a2a0a 100%);
  border-radius: 40% 40% 20% 20% / 60% 60% 40% 40%;
  box-shadow: 0 2px 4px rgba(0,0,0,0.4);
  animation: cig-cigar 4s ease-in-out infinite;
}
.scn-item-superfine-cigar .smoke-1 {
  position: absolute; bottom: 36%; left: 55%; width: 20px; height: 40px;
  background: radial-gradient(ellipse, rgba(255,255,255,0.6) 0%, transparent 80%);
  filter: blur(6px); animation: cig-smoke1 5s ease-out infinite;
}
.scn-item-superfine-cigar .smoke-2 {
  position: absolute; bottom: 34%; left: 48%; width: 16px; height: 50px;
  background: radial-gradient(ellipse, rgba(255,255,255,0.4) 0%, transparent 80%);
  filter: blur(5px); animation: cig-smoke2 7s ease-out infinite 1s;
}
.scn-item-superfine-cigar .hand {
  position: absolute; bottom: 24%; left: 36%; width: 30px; height: 40px;
  background: linear-gradient(180deg, #c8a888 0%, #a88868 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  transform: rotate(10deg);
  animation: cig-hand 4s ease-in-out infinite alternate;
}
.scn-item-superfine-cigar .ashtray {
  position: absolute; bottom: 16%; left: 60%; width: 40px; height: 12px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 50%;
  box-shadow: 0 2px 4px rgba(0,0,0,0.3);
  animation: cig-ashtray 20s ease-in-out infinite;
}
.scn-item-superfine-cigar .ember {
  position: absolute; bottom: 31%; left: 48%; width: 8px; height: 8px;
  background: radial-gradient(circle, #ff8040 0%, #c84020 70%);
  border-radius: 50%;
  box-shadow: 0 0 10px 4px #ff8040, 0 0 20px 8px rgba(255,128,64,0.3);
  animation: cig-ember 2s ease-in-out infinite alternate;
}
@keyframes cig-bg { 0% { opacity: 0.2; } 50% { opacity: 0.4; } 100% { opacity: 0.2; } }
@keyframes cig-table { 0% { transform: translateY(0); } 50% { transform: translateY(-1px); } 100% { transform: translateY(0); } }
@keyframes cig-cigar { 0% { transform: translateX(-50%) rotate(-15deg) scale(1); } 50% { transform: translateX(-50%) rotate(-13deg) scale(1.02); } 100% { transform: translateX(-50%) rotate(-15deg) scale(1); } }
@keyframes cig-smoke1 { 0% { opacity: 1; transform: translateY(0) scale(1); } 50% { opacity: 0.6; transform: translateY(-30px) scale(2); } 100% { opacity: 0; transform: translateY(-60px) scale(3); } }
@keyframes cig-smoke2 { 0% { opacity: 1; transform: translate(0,0) scale(1); } 50% { opacity: 0.5; transform: translate(-10px,-40px) scale(1.5); } 100% { opacity: 0; transform: translate(-20px,-80px) scale(2); } }
@keyframes cig-hand { 0% { transform: rotate(10deg) translateY(0); } 50% { transform: rotate(12deg) translateY(-1px); } 100% { transform: rotate(10deg) translateY(0); } }
@keyframes cig-ashtray { 0% { transform: translateY(0); } 50% { transform: translateY(-2px); } 100% { transform: translateY(0); } }
@keyframes cig-ember { 0% { box-shadow: 0 0 8px 2px #ff8040, 0 0 16px 4px rgba(255,128,64,0.2); opacity: 0.9; } 50% { box-shadow: 0 0 14px 6px #ff8040, 0 0 28px 10px rgba(255,128,64,0.5); opacity: 1; } 100% { box-shadow: 0 0 10px 3px #ff8040, 0 0 20px 6px rgba(255,128,64,0.3); opacity: 0.8; } }

/* petersburg-return – calm bright interior carriage */
.scn-petersburg-return {
  background: linear-gradient(180deg, #d4c8b8 0%, #c0b0a0 50%, #a89888 100%),
              radial-gradient(circle at 30% 70%, #e8e0d0 0%, transparent 60%);
}
.scn-petersburg-return .carriage-wall {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #b8a898 0%, #a09080 100%);
  box-shadow: inset 0 4px 20px rgba(0,0,0,0.1);
  animation: pet-wall 10s ease-in-out infinite alternate;
}
.scn-petersburg-return .window {
  position: absolute; top: 10%; left: 20%; right: 20%; height: 35%;
  background: linear-gradient(180deg, #c8e0f0 0%, #a0c8e0 100%);
  border-radius: 8px; border: 4px solid #6a5a4a;
  box-shadow: inset 0 0 20px rgba(255,255,255,0.3);
  animation: pet-window 12s ease-in-out infinite alternate;
}
.scn-petersburg-return .seat {
  position: absolute; bottom: 25%; left: 15%; right: 15%; height: 25%;
  background: linear-gradient(180deg, #6a5a4a 0%, #4a3a2a 100%);
  border-radius: 10% 10% 0 0;
  box-shadow: 0 -4px 8px rgba(0,0,0,0.2);
  animation: pet-seat 15s ease-in-out infinite;
}
.scn-petersburg-return .luggage {
  position: absolute; bottom: 28%; right: 18%; width: 40px; height: 30px;
  background: linear-gradient(135deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 6px;
  transform: rotate(3deg);
  animation: pet-luggage 20s ease-in-out infinite alternate;
}
.scn-petersburg-return .figure-sitting {
  position: absolute; bottom: 24%; left: 30%; width: 22px; height: 70px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 40%, #0a0a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: pet-figure 6s ease-in-out infinite alternate;
}
.scn-petersburg-return .landscape-passing {
  position: absolute; top: 12%; left: 22%; right: 22%; height: 30%;
  background: linear-gradient(90deg, #6a8a5a 0%, #7a9a6a 25%, #8aaa7a 50%, #7a9a6a 75%, #6a8a5a 100%);
  filter: blur(3px);
  animation: pet-landscape 30s linear infinite;
}
.scn-petersburg-return .lamp-overhead {
  position: absolute; top: 2%; left: 50%; width: 12px; height: 18px;
  transform: translateX(-50%);
  background: radial-gradient(circle, #ffe0b0 0%, #c89860 80%);
  border-radius: 30% 30% 20% 20%;
  box-shadow: 0 0 20px 6px #ffe0b0, 0 0 40px 12px rgba(255,224,176,0.3);
  animation: pet-lamp 4s ease-in-out infinite alternate;
}
.scn-petersburg-return .shadow-strip {
  position: absolute; bottom: 30%; left: 0; right: 0; height: 5%;
  background: linear-gradient(180deg, transparent 0%, rgba(0,0,0,0.1) 100%);
  animation: pet-shadow 8s ease-in-out infinite;
}
@keyframes pet-wall { 0% { opacity: 0.9; } 50% { opacity: 1; } 100% { opacity: 0.85; } }
@keyframes pet-window { 0% { opacity: 0.8; transform: scaleX(1); } 50% { opacity: 1; transform: scaleX(1.02); } 100% { opacity: 0.85; transform: scaleX(1); } }
@keyframes pet-seat { 0%,100% { transform: translateY(0); } 50% { transform: translateY(-1px); } }
@keyframes pet-luggage { 0% { transform: rotate(3deg) translateX(0); } 50% { transform: rotate(5deg) translateX(-2px); } 100% { transform: rotate(3deg) translateX(0); } }
@keyframes pet-figure { 0% { transform: translateX(-50%) rotate(0deg); } 50% { transform: translateX(-50%) rotate(2deg) translateY(-1px); } 100% { transform: translateX(-50%) rotate(0deg); } }
@keyframes pet-landscape { 0% { background-position: 0% 0%; } 100% { background-position: 200% 0%; } }
@keyframes pet-lamp { 0% { box-shadow: 0 0 16px 4px #ffe0b0, 0 0 32px 8px rgba(255,224,176,0.2); opacity: 0.85; } 50% { box-shadow: 0 0 28px 10px #ffe0b0, 0 0 56px 16px rgba(255,224,176,0.5); opacity: 1; } 100% { box-shadow: 0 0 20px 6px #ffe0b0, 0 0 40px 12px rgba(255,224,176,0.3); opacity: 0.9; } }
@keyframes pet-shadow { 0% { opacity: 0.5; } 50% { opacity: 0.7; } 100% { opacity: 0.5; } }

/* rathdrum-smoking-room – warm firelit */
.scn-rathdrum-smoking-room {
  background: linear-gradient(180deg, #1a1a1a 0%, #2a1a0a 40%, #3a2a1a 70%, #1a0a00 100%),
              radial-gradient(ellipse at 50% 80%, #8a3a1a 0%, #3a1a0a 50%, transparent 80%);
}
.scn-rathdrum-smoking-room .room-back {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(180deg, #1a1a1a 0%, #2a1a0a 100%);
  animation: rath-back 15s ease-in-out infinite alternate;
}
.scn-rathdrum-smoking-room .fireplace {
  position: absolute; bottom: 25%; left: 50%; width: 120px; height: 80px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 20% 20% 10% 10% / 30% 30% 10% 10%;
  box-shadow: inset 0 -20px 40px rgba(255,128,0,0.3);
  animation: rath-fireplace 10s ease-in-out infinite;
}
.scn-rathdrum-smoking-room .flame-main {
  position: absolute; bottom: 28%; left: 50%; width: 30px; height: 60px;
  transform: translateX(-50%);
  background: radial-gradient(ellipse at 50% 100%, #ffa040 0%, #c86020 40%, #4a1000 70%);
  border-radius: 50% 50% 20% 20% / 70% 70% 20% 20%;
  filter: blur(2px);
  animation: rath-flame 1.5s ease-in-out infinite alternate;
}
.scn-rathdrum-smoking-room .flame-side {
  position: absolute; bottom: 30%; left: 44%; width: 20px; height: 40px;
  transform: translateX(-50%);
  background: radial-gradient(ellipse at 50% 100%, #ff8040 0%, #b84020 40%, #3a0800 70%);
  border-radius: 50% 50% 20% 20% / 70% 70% 20% 20%;
  filter: blur(3px);
  animation: rath-flame 2s ease-in-out infinite alternate-reverse;
}
.scn-rathdrum-smoking-room .armchair {
  position: absolute; bottom: 5%; left: 28%; width: 80px; height: 100px;
  background: linear-gradient(135deg, #5a3a2a 0%, #3a1a0a 100%);
  border-radius: 30% 30% 20% 20% / 40% 40% 20% 20%;
  box-shadow: 0 8px 20px rgba(0,0,0,0.7);
  animation: rath-chair 18s ease-in-out infinite alternate;
}
.scn-rathdrum-smoking-room .figure-before-fire {
  position: absolute; bottom: 8%; left: 40%; width: 24px; height: 80px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #1a1a1a 0%, #0a0a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  box-shadow: 0 0 20px rgba(255,128,0,0.1);
  animation: rath-figure 6s ease-in-out infinite alternate;
}
.scn-rathdrum-smoking-room .rug {
  position: absolute; bottom: 0; left: 15%; right: 15%; height: 15%;
  background: linear-gradient(180deg, #4a2a1a 0%, #2a1a0a 100%);
  border-radius: 50% 50% 0 0 / 40% 40% 0 0;
  transform: scaleX(0.9);
  animation: rath-rug 25s ease-in-out infinite;
}
.scn-rathdrum-smoking-room .glow-overlay {
  position: absolute; inset: 0;
  background: radial-gradient(ellipse at 50% 80%, rgba(255,128,0,0.15) 0%, transparent 60%);
  pointer-events: none;
  animation: rath-glow 5s ease-in-out infinite alternate;
}
.scn-rathdrum-smoking-room .mantel {
  position: absolute; bottom: 48%; left: 44%; right: 44%; height: 4px;
  background: #6a4a2a;
  border-radius: 2px;
  box-shadow: 0 2px 4px rgba(0,0,0,0.5);
  animation: rath-mantel 20s ease-in-out infinite;
}
@keyframes rath-back { 0% { opacity: 0.8; } 50% { opacity: 0.9; } 100% { opacity: 0.7; } }
@keyframes rath-fireplace { 0% { box-shadow: inset 0 -15px 30px rgba(255,128,0,0.2); } 50% { box-shadow: inset 0 -25px 50px rgba(255,128,0,0.5); } 100% { box-shadow: inset 0 -15px 30px rgba(255,128,0,0.2); } }
@keyframes rath-flame { 0% { transform: translateX(-50%) scaleY(0.9) scaleX(1); opacity: 0.8; } 25% { transform: translateX(-50%) scaleY(1.1) scaleX(0.95); opacity: 1; } 50% { transform: translateX(-50%) scaleY(1) scaleX(1.05); opacity: 0.9; } 75% { transform: translateX(-50%) scaleY(1.2) scaleX(0.9); opacity: 1; } 100% { transform: translateX(-50%) scaleY(0.9) scaleX(1); opacity: 0.8; } }
@keyframes rath-chair { 0% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-2px) rotate(2deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes rath-figure { 0% { transform: translateX(-50%) rotate(0deg); } 50% { transform: translateX(-50%) rotate(2deg) translateY(-3px); } 100% { transform: translateX(-50%) rotate(0deg); } }
@keyframes rath-rug { 0% { transform: scaleX(0.9) translateY(0); } 50% { transform: scaleX(0.92) translateY(1px); } 100% { transform: scaleX(0.9) translateY(0); } }
@keyframes rath-glow { 0% { opacity: 0.5; } 50% { opacity: 0.8; } 100% { opacity: 0.4; } }
@keyframes rath-mantel { 0%,100% { transform: translateY(0); } 50% { transform: translateY(-1px); } }

.scn-item-revolver {
  background:
    linear-gradient(180deg, #0b0b1e 0%, #1a1a3e 40%, #2a3a5a 80%, #0d0d2b 100%),
    radial-gradient(ellipse at 50% 100%, #2a3a5a 0%, transparent 60%);
}
.scn-item-revolver .moon {
  position: absolute;
  top: 8%; right: 18%;
  width: 60px; height: 60px;
  background: radial-gradient(circle, #d0d8e8 0%, #9aa8c0 60%, transparent 80%);
  border-radius: 50%;
  filter: blur(6px);
  animation: r1-moon 20s ease-in-out infinite alternate;
}
.scn-item-revolver .sky-glow {
  position: absolute;
  inset: 0;
  background: radial-gradient(ellipse at 65% 25%, rgba(150,170,200,0.1) 0%, transparent 60%);
  animation: r1-glow 8s ease-in-out infinite;
}
.scn-item-revolver .hand-silhouette {
  position: absolute;
  bottom: 20%; left: 35%;
  width: 80px; height: 100px;
  background: #0a0a15;
  border-radius: 60% 40% 50% 50% / 70% 50% 50% 50%;
  transform: rotate(-15deg);
  box-shadow: inset -12px -8px 20px rgba(10,10,30,0.8);
  animation: r1-hand 4s ease-in-out infinite alternate;
}
.scn-item-revolver .revolver-body {
  position: absolute;
  bottom: 22%; left: 42%;
  width: 90px; height: 30px;
  background: linear-gradient(90deg, #1a1a2e 0%, #2a2a44 50%, #181828 100%);
  border-radius: 10% 40% 40% 10% / 50% 50% 50% 50%;
  box-shadow: 0 4px 8px rgba(0,0,0,0.6);
  transform: rotate(-8deg);
  animation: r1-tremor 1.5s ease-in-out infinite;
}
.scn-item-revolver .revolver-barrel {
  position: absolute;
  bottom: 30%; left: 50%;
  width: 60px; height: 10px;
  background: #1a1a2e;
  border-radius: 30% 30% 30% 30% / 50% 50% 50% 50%;
  box-shadow: 0 2px 4px rgba(0,0,0,0.5);
  transform: rotate(-8deg);
}
.scn-item-revolver .muzzle-flash {
  position: absolute;
  bottom: 32%; left: 82%;
  width: 20px; height: 20px;
  background: radial-gradient(circle, #aab8d0 0%, #4a5a7a 50%, transparent 70%);
  border-radius: 50%;
  box-shadow: 0 0 30px 10px rgba(170,184,208,0.3);
  animation: r1-flash 1s ease-in-out infinite alternate;
}
.scn-item-revolver .sparks {
  position: absolute;
  width: 4px; height: 4px;
  background: #aab8d0;
  border-radius: 50%;
  box-shadow: 0 0 6px 2px rgba(170,184,208,0.6);
}
.scn-item-revolver .sp-a {
  bottom: 34%; left: 84%;
  animation: r1-spark-a 2s linear infinite;
}
.scn-item-revolver .sp-b {
  bottom: 28%; left: 86%;
  animation: r1-spark-b 2.5s linear infinite;
}
@keyframes r1-moon {
  0% { transform: scale(1) translateY(0); opacity: 0.8; }
  50% { transform: scale(1.05) translateY(-4px); opacity: 1; }
  100% { transform: scale(1) translateY(0); opacity: 0.85; }
}
@keyframes r1-glow {
  0% { opacity: 0.5; }
  50% { opacity: 0.8; }
  100% { opacity: 0.5; }
}
@keyframes r1-hand {
  0% { transform: rotate(-15deg) translateX(0); }
  50% { transform: rotate(-13deg) translateX(2px); }
  100% { transform: rotate(-15deg) translateX(0); }
}
@keyframes r1-tremor {
  0% { transform: rotate(-8deg) translateY(0); }
  25% { transform: rotate(-9deg) translateY(-1px); }
  50% { transform: rotate(-7deg) translateY(0); }
  75% { transform: rotate(-9deg) translateY(1px); }
  100% { transform: rotate(-8deg) translateY(0); }
}
@keyframes r1-flash {
  0% { opacity: 0.2; transform: scale(0.8); }
  50% { opacity: 1; transform: scale(1.2); }
  100% { opacity: 0.3; transform: scale(0.9); }
}
@keyframes r1-spark-a {
  0% { transform: translate(0,0) scale(1); opacity: 1; }
  50% { transform: translate(15px,-20px) scale(0.5); opacity: 0.6; }
  100% { transform: translate(30px,-40px) scale(0); opacity: 0; }
}
@keyframes r1-spark-b {
  0% { transform: translate(0,0) scale(1); opacity: 1; }
  50% { transform: translate(-10px,-25px) scale(0.6); opacity: 0.7; }
  100% { transform: translate(-20px,-50px) scale(0); opacity: 0; }
}

.scn-recognition {
  background:
    linear-gradient(180deg, #0b0b1e 0%, #1a2233 40%, #2a3a5a 70%, #0d0d2b 100%),
    radial-gradient(ellipse at 50% 80%, #2a3a5a 0%, transparent 60%);
}
.scn-recognition .moon {
  position: absolute;
  top: 6%; left: 20%;
  width: 70px; height: 70px;
  background: radial-gradient(circle, #c8d0e0 0%, #8a98b0 60%, transparent 80%);
  border-radius: 50%;
  filter: blur(8px);
  animation: rn-moon 18s ease-in-out infinite alternate;
}
.scn-recognition .snow-drift {
  position: absolute;
  bottom: 0; left: 0; right: 0;
  height: 40%;
  background: linear-gradient(180deg, #1a2a3a 0%, #0d1a2a 100%);
  border-radius: 80% 70% 0 0 / 60% 50% 0 0;
  box-shadow: inset 0 10px 30px rgba(0,0,0,0.5);
  animation: rn-snow 12s ease-in-out infinite alternate;
}
.scn-recognition .sledge-body {
  position: absolute;
  bottom: 28%; left: 28%;
  width: 120px; height: 50px;
  background: linear-gradient(100deg, #2a2a3e 0%, #1a1a2e 100%);
  border-radius: 20% 20% 10% 10% / 40% 40% 30% 30%;
  box-shadow: 0 6px 12px rgba(0,0,0,0.5);
  transform: rotate(-4deg);
  animation: rn-sledge 5s ease-in-out infinite;
}
.scn-recognition .sledge-runner {
  position: absolute;
  bottom: 25%; left: 26%;
  width: 130px; height: 8px;
  background: #1a1a2e;
  border-radius: 50%;
  box-shadow: 0 2px 4px rgba(0,0,0,0.4);
}
.scn-recognition .figure-profile {
  position: absolute;
  bottom: 34%; left: 34%;
  width: 24px; height: 36px;
  background: linear-gradient(180deg, #0a0a15 0%, #15152a 100%);
  border-radius: 60% 40% 40% 60% / 70% 60% 40% 30%;
  box-shadow: inset -4px -2px 6px rgba(0,0,0,0.8);
  transform: rotate(8deg) scaleX(-1);
  animation: rn-profile 4s ease-in-out infinite alternate;
}
.scn-recognition .frost-aura {
  position: absolute;
  bottom: 34%; left: 34%;
  width: 40px; height: 50px;
  background: radial-gradient(circle, rgba(200,210,230,0.15) 0%, transparent 70%);
  filter: blur(10px);
  animation: rn-frost 3s ease-in-out infinite alternate;
}
.scn-recognition .stare-line {
  position: absolute;
  bottom: 44%; left: 40%;
  width: 1px; height: 2px;
  background: #c8d0e0;
  box-shadow: 0 0 8px 4px rgba(200,210,230,0.5);
  animation: rn-stare 2s ease-in-out infinite;
}
@keyframes rn-moon {
  0% { transform: translateX(0) scale(1); opacity: 0.7; }
  50% { transform: translateX(5px) scale(1.03); opacity: 0.9; }
  100% { transform: translateX(0) scale(1); opacity: 0.75; }
}
@keyframes rn-snow {
  0% { transform: translateY(0); border-radius: 80% 70% 0 0 / 60% 50% 0 0; }
  50% { transform: translateY(-2px); border-radius: 75% 65% 0 0 / 55% 45% 0 0; }
  100% { transform: translateY(0); border-radius: 80% 70% 0 0 / 60% 50% 0 0; }
}
@keyframes rn-sledge {
  0% { transform: rotate(-4deg) translateX(0); }
  50% { transform: rotate(-3deg) translateX(3px); }
  100% { transform: rotate(-4deg) translateX(0); }
}
@keyframes rn-profile {
  0% { transform: rotate(8deg) scaleX(-1) translateY(0); }
  50% { transform: rotate(6deg) scaleX(-1) translateY(-2px); }
  100% { transform: rotate(8deg) scaleX(-1) translateY(0); }
}
@keyframes rn-frost {
  0% { opacity: 0.3; transform: scale(1); }
  50% { opacity: 0.7; transform: scale(1.2); }
  100% { opacity: 0.4; transform: scale(1); }
}
@keyframes rn-stare {
  0% { opacity: 0; }
  50% { opacity: 1; }
  100% { opacity: 0; }
}

.scn-baron-attack-whip {
  background:
    linear-gradient(180deg, #0b0b1e 0%, #1a2233 35%, #2a3a5a 70%, #0d0d2b 100%),
    radial-gradient(ellipse at 40% 30%, #1a2a3a 0%, transparent 60%);
}
.scn-baron-attack-whip .moon {
  position: absolute;
  top: 10%; right: 15%;
  width: 55px; height: 55px;
  background: radial-gradient(circle, #c0cce0 0%, #8a98b0 60%, transparent 80%);
  border-radius: 50%;
  filter: blur(5px);
  animation: br-moon 22s ease-in-out infinite alternate;
}
.scn-baron-attack-whip .dust-cloud {
  position: absolute;
  bottom: 0; left: 0; right: 0;
  height: 45%;
  background: linear-gradient(180deg, #1a2a3a 0%, #0d1a2a 100%);
  border-radius: 90% 70% 0 0 / 70% 50% 0 0;
  box-shadow: inset 0 8px 20px rgba(0,0,0,0.5);
  animation: br-dust 10s ease-in-out infinite alternate;
}
.scn-baron-attack-whip .horse-a {
  position: absolute;
  bottom: 22%; left: 20%;
  width: 80px; height: 60px;
  background: #0a0a15;
  border-radius: 40% 60% 50% 50% / 60% 40% 50% 50%;
  transform: rotate(-10deg);
  box-shadow: 0 4px 8px rgba(0,0,0,0.5);
  animation: br-horse-a 1s steps(2) infinite;
}
.scn-baron-attack-whip .horse-b {
  position: absolute;
  bottom: 20%; left: 48%;
  width: 85px; height: 65px;
  background: #0a0a15;
  border-radius: 40% 60% 50% 50% / 60% 40% 50% 50%;
  transform: rotate(8deg);
  box-shadow: 0 4px 8px rgba(0,0,0,0.5);
  animation: br-horse-b 1.1s steps(2) infinite;
}
.scn-baron-attack-whip .rider-a {
  position: absolute;
  bottom: 38%; left: 24%;
  width: 18px; height: 28px;
  background: #10101a;
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform: rotate(-5deg);
  animation: br-rider-a 1s ease-in-out infinite;
}
.scn-baron-attack-whip .rider-baron {
  position: absolute;
  bottom: 38%; left: 53%;
  width: 20px; height: 30px;
  background: #0a0a12;
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform: rotate(10deg);
  animation: br-rider-b 1.1s ease-in-out infinite;
}
.scn-baron-attack-whip .whip-crack {
  position: absolute;
  bottom: 40%; left: 55%;
  width: 80px; height: 4px;
  background: linear-gradient(90deg, #aab0c0 0%, transparent 100%);
  border-radius: 50%;
  transform: rotate(-30deg);
  transform-origin: right center;
  filter: blur(1px);
  animation: br-whip 0.5s ease-in-out infinite alternate;
}
.scn-baron-attack-whip .motion-streaks {
  position: absolute;
  bottom: 20%; left: 0;
  width: 100%; height: 2px;
  background: repeating-linear-gradient(90deg, rgba(200,210,230,0.2) 0px, transparent 20px);
  animation: br-streaks 0.3s linear infinite;
}
@keyframes br-moon {
  0% { opacity: 0.6; transform: scale(1); }
  50% { opacity: 0.9; transform: scale(1.02); }
  100% { opacity: 0.6; transform: scale(1); }
}
@keyframes br-dust {
  0% { transform: translateY(0) scaleY(1); }
  50% { transform: translateY(-3px) scaleY(0.95); }
  100% { transform: translateY(0) scaleY(1); }
}
@keyframes br-horse-a {
  0% { transform: rotate(-10deg) translateY(0); }
  25% { transform: rotate(-12deg) translateY(-4px); }
  50% { transform: rotate(-10deg) translateY(0); }
  75% { transform: rotate(-8deg) translateY(-3px); }
  100% { transform: rotate(-10deg) translateY(0); }
}
@keyframes br-horse-b {
  0% { transform: rotate(8deg) translateY(0); }
  25% { transform: rotate(10deg) translateY(-4px); }
  50% { transform: rotate(8deg) translateY(0); }
  75% { transform: rotate(6deg) translateY(-3px); }
  100% { transform: rotate(8deg) translateY(0); }
}
@keyframes br-rider-a {
  0% { transform: rotate(-5deg) translateY(0); }
  50% { transform: rotate(-3deg) translateY(-2px); }
  100% { transform: rotate(-5deg) translateY(0); }
}
@keyframes br-rider-b {
  0% { transform: rotate(10deg) translateY(0); }
  50% { transform: rotate(12deg) translateY(-2px); }
  100% { transform: rotate(10deg) translateY(0); }
}
@keyframes br-whip {
  0% { transform: rotate(-30deg) scaleX(0.5); opacity: 0.1; }
  50% { transform: rotate(-20deg) scaleX(1); opacity: 0.9; }
  100% { transform: rotate(-30deg) scaleX(0.5); opacity: 0.1; }
}
@keyframes br-streaks {
  0% { background-position: 0 0; }
  100% { background-position: 40px 0; }
}

.scn-baron-attack-sledge {
  background:
    linear-gradient(180deg, #0b0b1e 0%, #1a2233 40%, #2a3a5a 75%, #0d0d2b 100%),
    radial-gradient(ellipse at 60% 40%, #1a2a3a 0%, transparent 60%);
}
.scn-baron-attack-sledge .moon {
  position: absolute;
  top: 8%; left: 22%;
  width: 65px; height: 65px;
  background: radial-gradient(circle, #c8d0e0 0%, #8a98b0 60%, transparent 80%);
  border-radius: 50%;
  filter: blur(6px);
  animation: sl-moon 20s ease-in-out infinite alternate;
}
.scn-baron-attack-sledge .snow-field {
  position: absolute;
  bottom: 0; left: 0; right: 0;
  height: 50%;
  background: linear-gradient(180deg, #1a2a3a 0%, #0d1a2a 100%);
  border-radius: 100% 60% 0 0 / 50% 40% 0 0;
  box-shadow: inset 0 12px 30px rgba(0,0,0,0.5);
  animation: sl-snow 14s ease-in-out infinite alternate;
}
.scn-baron-attack-sledge .sledge-bulk {
  position: absolute;
  bottom: 32%; left: 20%;
  width: 100px; height: 40px;
  background: linear-gradient(100deg, #2a2a3e 0%, #1a1a2e 100%);
  border-radius: 15% 15% 10% 10% / 30% 30% 20% 20%;
  box-shadow: 0 6px 12px rgba(0,0,0,0.5);
  transform: rotate(-3deg);
}
.scn-baron-attack-sledge .horse-plunge {
  position: absolute;
  bottom: 28%; left: 45%;
  width: 90px; height: 70px;
  background: #0a0a15;
  border-radius: 40% 60% 50% 50% / 70% 50% 40% 40%;
  transform: rotate(-25deg) scaleX(-1);
  animation: sl-horse 0.6s ease-in-out infinite alternate;
}
.scn-baron-attack-sledge .baron-fall {
  position: absolute;
  bottom: 35%; left: 42%;
  width: 22px; height: 40px;
  background: #0a0a12;
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform: rotate(40deg);
  animation: sl-fall 1.2s ease-in-out infinite alternate;
}
.scn-baron-attack-sledge .foot-grip {
  position: absolute;
  bottom: 30%; left: 41%;
  width: 30px; height: 6px;
  background: #aab0c0;
  border-radius: 50%;
  transform: rotate(-20deg);
  animation: sl-grip 0.8s ease-in-out infinite alternate;
}
.scn-baron-attack-sledge .sledge-flash {
  position: absolute;
  bottom: 40%; left: 25%;
  width: 16px; height: 16px;
  background: radial-gradient(circle, #c8d0e0 0%, #4a5a7a 50%, transparent 70%);
  border-radius: 50%;
  box-shadow: 0 0 25px 8px rgba(200,210,230,0.3);
  animation: sl-flash 0.4s ease-in-out infinite alternate;
}
.scn-baron-attack-sledge .impact-dust {
  position: absolute;
  bottom: 25%; left: 50%;
  width: 40px; height: 20px;
  background: radial-gradient(ellipse, rgba(200,210,230,0.2) 0%, transparent 70%);
  filter: blur(6px);
  animation: sl-dust 1s ease-in-out infinite;
}
@keyframes sl-moon {
  0% { transform: scale(1) translateY(0); opacity: 0.7; }
  50% { transform: scale(1.04) translateY(-3px); opacity: 0.95; }
  100% { transform: scale(1) translateY(0); opacity: 0.7; }
}
@keyframes sl-snow {
  0% { transform: translateY(0) scaleY(1); }
  50% { transform: translateY(-2px) scaleY(0.96); }
  100% { transform: translateY(0) scaleY(1); }
}
@keyframes sl-horse {
  0% { transform: rotate(-25deg) scaleX(-1) translateY(0); }
  50% { transform: rotate(-20deg) scaleX(-1) translateY(-5px); }
  100% { transform: rotate(-25deg) scaleX(-1) translateY(0); }
}
@keyframes sl-fall {
  0% { transform: rotate(40deg) translateY(0); }
  50% { transform: rotate(45deg) translateY(-4px); }
  100% { transform: rotate(40deg) translateY(0); }
}
@keyframes sl-grip {
  0% { transform: rotate(-20deg) scaleX(1); }
  50% { transform: rotate(-15deg) scaleX(1.2); }
  100% { transform: rotate(-20deg) scaleX(1); }
}
@keyframes sl-flash {
  0% { opacity: 0.1; transform: scale(0.8); }
  50% { opacity: 1; transform: scale(1.3); }
  100% { opacity: 0.1; transform: scale(0.8); }
}
@keyframes sl-dust {
  0% { opacity: 0; transform: scale(0.5) translateX(0); }
  50% { opacity: 0.6; transform: scale(1.2) translateX(-10px); }
  100% { opacity: 0; transform: scale(0.5) translateX(-20px); }
}

.scn-yany-interior {
  background: linear-gradient(180deg, #2b1a0d 0%, #3d2616 40%, #5c3a20 100%),
              radial-gradient(ellipse at 50% 70%, #e8a040 0%, #5c3a20 70%, transparent 100%);
}
.scn-yany-interior .walls   { position:absolute; inset:0; background: linear-gradient(90deg, #1a0e06 0%, transparent 20%, transparent 80%, #1a0e06 100%); }
.scn-yany-interior .floor   { position:absolute; bottom:0; left:5%; right:5%; height:20%; background: repeating-linear-gradient(45deg, #5a2e1a 0px, #5a2e1a 20px, #8a5030 20px, #8a5030 40px); border-radius: 8% 8% 0 0; box-shadow: 0 -8px 20px rgba(0,0,0,0.5); }
.scn-yany-interior .hearth  { position:absolute; bottom:18%; left:50%; width:100px; height:60px; transform:translateX(-60%); background: linear-gradient(180deg, #1a0e06 0%, #2b1a0d 100%); border-radius: 10% 10% 20% 20%; box-shadow: inset 0 0 20px #000; }
.scn-yany-interior .fire    { position:absolute; bottom:20%; left:41%; width:40px; height:40px; background: radial-gradient(circle, #ffb040 0%, #ff8020 50%, transparent 70%); animation: in-fire 1.2s ease-in-out infinite; }
.scn-yany-interior .bear-statue { position:absolute; bottom:18%; left:65%; width:50px; height:70px; background: linear-gradient(180deg, #2b1a0d 0%, #1a0e06 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform: rotate(-5deg); animation: in-bear 6s ease-in-out infinite; }
.scn-yany-interior .pedestal { position:absolute; bottom:15%; left:64%; width:30px; height:10px; background: #3d2616; border-radius: 10%; box-shadow: 0 4px 6px rgba(0,0,0,0.6); }
.scn-yany-interior .butler  { position:absolute; bottom:16%; left:20%; width:24px; height:80px; background: linear-gradient(180deg, #1a0e06 0%, #0d0703 100%); border-radius: 50% 50% 30% 30% / 30% 30% 40% 40%; animation: in-butler 4s ease-in-out infinite; }
.scn-yany-interior .glow    { position:absolute; inset:0; background: radial-gradient(ellipse at 45% 65%, rgba(255,160,60,0.4) 0%, transparent 60%); animation: in-glow 3s ease-in-out infinite alternate; }

@keyframes in-fire {
  0% { transform: scale(1) translate(0,0); opacity:0.9; box-shadow: 0 0 30px 10px #ff8020; }
  50% { transform: scale(1.15) translate(-3px,-2px); opacity:1; box-shadow: 0 0 40px 15px #ffb040; }
  100% { transform: scale(0.85) translate(2px,1px); opacity:0.7; box-shadow: 0 0 25px 5px #ff6010; }
}
@keyframes in-bear {
  0%,100% { transform: rotate(-5deg) translateY(0); }
  50% { transform: rotate(-3deg) translateY(-3px); }
}
@keyframes in-butler {
  0%,100% { transform: translateX(0) rotate(0); }
  25% { transform: translateX(4px) rotate(2deg); }
  75% { transform: translateX(-3px) rotate(-1deg); }
}
@keyframes in-glow {
  0% { opacity:0.3; }
  50% { opacity:0.6; }
  100% { opacity:0.2; }
}

.scn-yany-picture-gallery {
  background: linear-gradient(180deg, #c8a060 0%, #e8c080 50%, #f0d090 100%),
              radial-gradient(ellipse at 50% 0%, #fff8e0 0%, transparent 60%);
}
.scn-yany-picture-gallery .bg-wall { position:absolute; inset:0; background: linear-gradient(90deg, #b08850 0%, #e0c088 30%, #e0c088 70%, #b08850 100%); }
.scn-yany-picture-gallery .floor   { position:absolute; bottom:0; left:0; right:0; height:15%; background: repeating-conic-gradient(#8a6a3a 0% 25%, #a08050 0% 50%) 0 0 / 40px 40px; box-shadow: 0 -4px 12px rgba(0,0,0,0.3); }
.scn-yany-picture-gallery .frame-left  { position:absolute; left:10%; top:15%; width:30%; height:55%; border:6px solid #c8a060; background: linear-gradient(135deg, #2a1a0a 0%, #4a3a2a 100%); box-shadow: 0 8px 20px rgba(0,0,0,0.5); animation: ga-frame 15s ease-in-out infinite alternate; }
.scn-yany-picture-gallery .frame-right { position:absolute; right:10%; top:20%; width:25%; height:50%; border:6px solid #c8a060; background: linear-gradient(225deg, #3a2a1a 0%, #5a4a3a 100%); box-shadow: 0 8px 20px rgba(0,0,0,0.5); animation: ga-frame 15s ease-in-out infinite alternate-reverse; }
.scn-yany-picture-gallery .painting   { position:absolute; left:11.5%; top:17%; width:27%; height:51%; background: radial-gradient(ellipse at 40% 30%, #ff6666 10%, #cc4444 40%, #882222 70%, #441111 100%); filter: brightness(0.8); animation: ga-painting 20s ease-in-out infinite; }
.scn-yany-picture-gallery .figure-viewer { position:absolute; bottom:12%; left:45%; width:30px; height:70px; background: linear-gradient(180deg, #1a1a1a 0%, #0d0d0d 100%); border-radius: 50% 50% 30% 30% / 30% 30% 40% 40%; transform: rotate(5deg); animation: ga-viewer 8s ease-in-out infinite; }
.scn-yany-picture-gallery .chandelier  { position:absolute; top:2%; left:38%; width:80px; height:40px; background: radial-gradient(circle at 50% 20%, #ffd080 0%, #c8a060 40%, transparent 60%); animation: ga-chandelier 6s ease-in-out infinite alternate; }
.scn-yany-picture-gallery .light-spots { position:absolute; inset:0; background: radial-gradient(circle 100px at 40% 40%, rgba(255,220,140,0.3) 0%, transparent 100%), radial-gradient(circle 80px at 60% 60%, rgba(255,220,140,0.2) 0%, transparent 100%); animation: ga-light 4s ease-in-out infinite alternate; }

@keyframes ga-frame {
  0% { box-shadow: 0 8px 20px rgba(0,0,0,0.5); }
  50% { box-shadow: 0 4px 30px rgba(0,0,0,0.3); }
  100% { box-shadow: 0 12px 15px rgba(0,0,0,0.7); }
}
@keyframes ga-painting {
  0% { filter: brightness(0.8); }
  50% { filter: brightness(1); }
  100% { filter: brightness(0.7); }
}
@keyframes ga-viewer {
  0% { transform: rotate(5deg) translateX(0); }
  50% { transform: rotate(2deg) translateX(5px); }
  100% { transform: rotate(8deg) translateX(-3px); }
}
@keyframes ga-chandelier {
  0% { transform: rotate(-3deg); }
  50% { transform: rotate(2deg); }
  100% { transform: rotate(-1deg); }
}
@keyframes ga-light {
  0% { opacity:0.3; }
  50% { opacity:0.7; }
  100% { opacity:0.4; }
}

.scn-item-fragrant-tea {
  background: linear-gradient(180deg, #1a0e06 0%, #2b1a0d 50%, #4a2a1a 100%),
              radial-gradient(ellipse at 50% 60%, #e08030 0%, #4a2a1a 70%, transparent 100%);
}
.scn-item-fragrant-tea .stove  { position:absolute; left:10%; top:20%; width:40px; height:70px; background: linear-gradient(180deg, #3a2a1a 0%, #1a0e06 100%); border-radius: 10px; box-shadow: inset 0 0 10px #000; }
.scn-item-fragrant-tea .hearth { position:absolute; bottom:18%; left:50%; width:80px; height:40px; transform:translateX(-80%); background: #2b1a0d; border-radius: 20% 20% 0 0; }
.scn-item-fragrant-tea .fire   { position:absolute; bottom:20%; left:40%; width:30px; height:30px; background: radial-gradient(circle, #ffa030 0%, #ff6010 50%, transparent 70%); animation: te-fire 1.5s ease-in-out infinite; }
.scn-item-fragrant-tea .table  { position:absolute; bottom:30%; left:45%; width:40%; height:8%; background: linear-gradient(180deg, #5a3a20 0%, #3d2616 100%); border-radius: 30%; transform: perspective(200px) rotateX(15deg); }
.scn-item-fragrant-tea .teapot { position:absolute; bottom:36%; left:58%; width:30px; height:25px; background: radial-gradient(ellipse at 40% 40%, #c08040 0%, #8a6030 100%); border-radius: 50% 50% 30% 30%; transform: rotate(5deg); animation: te-teapot 4s ease-in-out infinite; }
.scn-item-fragrant-tea .cup    { position:absolute; bottom:33%; left:70%; width:16px; height:18px; background: linear-gradient(180deg, #e0c0a0 0%, #b09870 100%); border-radius: 0 0 20% 20%; box-shadow: inset 0 -4px 6px rgba(0,0,0,0.3); }
.scn-item-fragrant-tea .steam  { position:absolute; bottom:48%; left:62%; width:20px; height:30px; background: radial-gradient(circle, rgba(255,255,255,0.4) 0%, transparent 70%); filter: blur(4px); animation: te-steam 6s ease-out infinite; }
.scn-item-fragrant-tea .logs   { position:absolute; bottom:18%; left:35%; width:30px; height:8px; background: #3d2616; border-radius: 40%; transform: rotate(20deg); box-shadow: 4px 6px 0 #2b1a0d, -2px 8px 0 #3d2616; }

@keyframes te-fire {
  0% { transform: scale(1) rotate(0); opacity:0.8; }
  50% { transform: scale(1.2) rotate(5deg); opacity:1; }
  100% { transform: scale(0.9) rotate(-3deg); opacity:0.6; }
}
@keyframes te-teapot {
  0%,100% { transform: rotate(5deg) translate(0,0); }
  50% { transform: rotate(2deg) translate(1px,-1px); }
}
@keyframes te-steam {
  0% { transform: translateY(0) scale(0.8); opacity:0.6; }
  50% { transform: translateY(-20px) scale(1.5); opacity:0.3; }
  100% { transform: translateY(-40px) scale(2); opacity:0; }
}

.scn-yany-recovery {
  background: linear-gradient(180deg, #1a0e06 0%, #2b1a0d 60%, #4a2a1a 100%),
              radial-gradient(ellipse at 50% 80%, #e09040 0%, #4a2a1a 70%, transparent 100%);
}
.scn-yany-recovery .armchair     { position:absolute; bottom:20%; left:25%; width:120px; height:100px; background: linear-gradient(180deg, #6a4a3a 0%, #3d2616 100%); border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%; box-shadow: 0 -10px 20px rgba(0,0,0,0.6); transform: rotate(-2deg); }
.scn-yany-recovery .figure-seated{ position:absolute; bottom:30%; left:34%; width:30px; height:50px; background: linear-gradient(180deg, #1a0e06 0%, #0d0703 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform: scaleY(0.9); animation: re-breathe 3s ease-in-out infinite; }
.scn-yany-recovery .valet        { position:absolute; bottom:15%; right:15%; width:22px; height:70px; background: linear-gradient(180deg, #1a0e06 0%, #0d0703 100%); border-radius: 50% 50% 20% 20% / 30% 30% 40% 40%; animation: re-valet 8s ease-in-out infinite; }
.scn-yany-recovery .fireplace    { position:absolute; bottom:15%; left:48%; width:80px; height:60px; background: linear-gradient(180deg, #2b1a0d 0%, #1a0e06 100%); border-radius: 10% 10% 30% 30%; box-shadow: inset 0 0 20px #000; }
.scn-yany-recovery .fire         { position:absolute; bottom:18%; left:52%; width:25px; height:30px; background: radial-gradient(circle, #ffa030 0%, #ff6010 50%, transparent 70%); animation: re-fire 1.8s ease-in-out infinite; }
.scn-yany-recovery .rug          { position:absolute; bottom:5%; left:10%; width:80%; height:15%; background: linear-gradient(180deg, #5a3a20 0%, #3d2616 100%); border-radius: 50% 50% 0 0 / 100% 100% 0 0; box-shadow: 0 4px 10px rgba(0,0,0,0.4); }
.scn-yany-recovery .tea-table    { position:absolute; bottom:28%; right:30%; width:40px; height:20px; background: linear-gradient(180deg, #5a3a20 0%, #3d2616 100%); border-radius: 30% 30% 10% 10%; transform: skewX(-10deg); }
.scn-yany-recovery .suitcase     { position:absolute; bottom:18%; right:8%; width:30px; height:20px; background: #4a2a1a; border-radius: 10%; border: 2px solid #3d2616; transform: rotate(5deg); }
.scn-yany-recovery .glow         { position:absolute; inset:0; background: radial-gradient(ellipse at 50% 70%, rgba(255,160,60,0.4) 0%, transparent 70%); animation: re-glow 4s ease-in-out infinite alternate; }

@keyframes re-breathe {
  0%,100% { transform: scaleY(0.9) translateY(0); }
  50% { transform: scaleY(1) translateY(-2px); }
}
@keyframes re-valet {
  0%,100% { transform: translateX(0) rotate(0); }
  25% { transform: translateX(5px) rotate(2deg); }
  75% { transform: translateX(-3px) rotate(-1deg); }
}
@keyframes re-fire {
  0% { transform: scale(1) rotate(0); opacity:0.8; }
  50% { transform: scale(1.1) rotate(3deg); opacity:1; }
  100% { transform: scale(0.85) rotate(-2deg); opacity:0.6; }
}
@keyframes re-glow {
  0% { opacity:0.2; }
  50% { opacity:0.6; }
  100% { opacity:0.3; }
}

.scn-passage-wrong-turn {
  background: linear-gradient(180deg, #1a1a2e 0%, #2a2038 50%, #0f0f1a 100%), radial-gradient(ellipse at 50% 100%, #2a1e3a 0%, transparent 70%);
}
.scn-passage-wrong-turn .wall-left {
  position: absolute;
  left: 0; top: 0; bottom: 0;
  width: 35%;
  background: linear-gradient(90deg, #1e1e2e 0%, #2c2c3e 100%);
  box-shadow: inset -8px 0 12px rgba(0,0,0,0.5);
  animation: wt-wallL 12s ease-in-out infinite alternate;
}
.scn-passage-wrong-turn .wall-right {
  position: absolute;
  right: 0; top: 0; bottom: 0;
  width: 35%;
  background: linear-gradient(270deg, #1e1e2e 0%, #2c2c3e 100%);
  box-shadow: inset 8px 0 12px rgba(0,0,0,0.5);
  animation: wt-wallR 12s ease-in-out infinite alternate;
}
.scn-passage-wrong-turn .floor {
  position: absolute;
  bottom: 0; left: 0; right: 0;
  height: 35%;
  background: linear-gradient(0deg, #2a282a 0%, #3a343a 50%, #2a282a 100%);
  box-shadow: inset 0 12px 20px rgba(0,0,0,0.6);
  animation: wt-floor 24s ease-in-out infinite;
}
.scn-passage-wrong-turn .door {
  position: absolute;
  bottom: 20%; left: 50%;
  width: 80px; height: 120px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 6px 6px 2px 2px;
  box-shadow: 0 8px 16px rgba(0,0,0,0.7);
  animation: wt-door 16s ease-in-out infinite alternate;
}
.scn-passage-wrong-turn .shadow-figure {
  position: absolute;
  bottom: 22%; left: 40%;
  width: 20px; height: 50px;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a12 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: wt-figure 6s ease-in-out infinite;
}
.scn-passage-wrong-turn .light-shaft {
  position: absolute;
  top: 10%; left: 38%;
  width: 24%; height: 70%;
  background: linear-gradient(180deg, rgba(200,180,160,0.15) 0%, transparent 100%);
  clip-path: polygon(0 0, 100% 0, 70% 100%, 30% 100%);
  animation: wt-shaft 10s ease-in-out infinite alternate;
}
.scn-passage-wrong-turn .picture {
  position: absolute;
  bottom: 40%; right: 18%;
  width: 40px; height: 50px;
  background: linear-gradient(180deg, #3a302a 0%, #2a1e18 100%);
  border: 2px solid #5a4a3a;
  border-radius: 2px;
  box-shadow: inset 0 0 8px rgba(0,0,0,0.5);
  animation: wt-pic 18s ease-in-out infinite;
}
@keyframes wt-wallL { 0% { filter: brightness(0.9) } 50% { filter: brightness(1) } 100% { filter: brightness(0.85) } }
@keyframes wt-wallR { 0% { filter: brightness(1) } 50% { filter: brightness(0.9) } 100% { filter: brightness(0.95) } }
@keyframes wt-floor { 0%,100% { background-position: 0% 0% } 50% { background-position: 20% 10% } }
@keyframes wt-door { 0% { transform: translateX(-50%) scaleY(1) } 50% { transform: translateX(-50%) scaleY(0.97) } 100% { transform: translateX(-50%) scaleY(1.02) } }
@keyframes wt-figure { 0% { transform: translateX(0) translateY(0) rotate(-1deg) } 25% { transform: translateX(8px) translateY(-2px) rotate(1deg) } 50% { transform: translateX(16px) translateY(0) rotate(-1deg) } 75% { transform: translateX(24px) translateY(-2px) rotate(2deg) } 100% { transform: translateX(32px) translateY(0) rotate(0) } }
@keyframes wt-shaft { 0% { opacity: 0.6; transform: scaleX(1) } 50% { opacity: 0.8; transform: scaleX(1.05) } 100% { opacity: 0.5; transform: scaleX(0.95) } }
@keyframes wt-pic { 0% { filter: drop-shadow(0 0 2px rgba(0,0,0,0.3)) } 50% { filter: drop-shadow(0 0 6px rgba(0,0,0,0.6)) } 100% { filter: drop-shadow(0 0 2px rgba(0,0,0,0.3)) } }

.scn-passage-encounter {
  background: linear-gradient(180deg, #1c1c2a 0%, #2a2a3a 40%, #0e0e1a 100%), radial-gradient(ellipse at 20% 80%, #1a1a2e 0%, transparent 60%);
}
.scn-passage-encounter .wall-left {
  position: absolute; left: 0; top: 0; bottom: 0; width: 30%;
  background: linear-gradient(90deg, #22222e 0%, #333344 100%);
  box-shadow: inset -6px 0 10px rgba(0,0,0,0.4);
  animation: en-wallL 14s ease-in-out infinite alternate;
}
.scn-passage-encounter .wall-right {
  position: absolute; right: 0; top: 0; bottom: 0; width: 30%;
  background: linear-gradient(270deg, #22222e 0%, #333344 100%);
  box-shadow: inset 6px 0 10px rgba(0,0,0,0.4);
  animation: en-wallR 14s ease-in-out infinite alternate-reverse;
}
.scn-passage-encounter .floor-stone {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(0deg, #2a2a2a 0%, #3a3a3a 30%, #4a4a4a 60%, #2a2a2a 100%);
  background-size: 200% 200%;
  animation: en-stone 20s linear infinite;
}
.scn-passage-encounter .door-open {
  position: absolute; bottom: 18%; left: 50%;
  width: 70px; height: 110px;
  transform: translateX(-50%) scaleX(0.6);
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0a00 100%);
  border-radius: 4px 4px 0 0;
  box-shadow: -8px 0 16px rgba(0,0,0,0.7);
  animation: en-door 8s ease-in-out infinite alternate;
}
.scn-passage-encounter .man-figure {
  position: absolute; bottom: 18%; left: 50%;
  width: 30px; height: 45px;
  background: linear-gradient(180deg, #4a3a2a 0%, #1a100a 100%);
  border-radius: 30% 30% 20% 20% / 40% 40% 30% 30%;
  transform-origin: bottom center;
  animation: en-man 5s ease-in-out infinite;
}
.scn-passage-encounter .light-flash {
  position: absolute; top: 15%; left: 60%;
  width: 20%; height: 60%;
  background: radial-gradient(ellipse at center, rgba(220,200,150,0.2) 0%, transparent 80%);
  animation: en-flash 10s ease-in-out infinite;
}
@keyframes en-wallL { 0% { filter: brightness(0.85) } 50% { filter: brightness(1) } 100% { filter: brightness(0.9) } }
@keyframes en-wallR { 0% { filter: brightness(1) } 50% { filter: brightness(0.85) } 100% { filter: brightness(0.95) } }
@keyframes en-stone { 0% { background-position: 0% 0% } 50% { background-position: 50% 20% } 100% { background-position: 100% 0% } }
@keyframes en-door { 0% { transform: translateX(-50%) scaleX(0.6) rotateY(0deg) } 50% { transform: translateX(-50%) scaleX(0.5) rotateY(30deg) } 100% { transform: translateX(-50%) scaleX(0.6) rotateY(0deg) } }
@keyframes en-man { 0% { transform: translateX(-50%) translateY(0) scaleX(1) } 30% { transform: translateX(-50%) translateY(-2px) scaleX(0.95) rotate(-2deg) } 60% { transform: translateX(-50%) translateY(0) scaleX(1.02) rotate(2deg) } 100% { transform: translateX(-50%) translateY(0) scaleX(1) } }
@keyframes en-flash { 0% { opacity: 0.3; filter: blur(4px) } 50% { opacity: 0.6; filter: blur(2px) } 100% { opacity: 0.2; filter: blur(6px) } }

.scn-drawing-room-arrival {
  background: linear-gradient(180deg, #3a2e2a 0%, #2a201a 50%, #1a1410 100%), radial-gradient(ellipse at 70% 30%, #4a3e38 0%, transparent 60%);
}
.scn-drawing-room-arrival .wall-back {
  position: absolute; left: 0; right: 0; top: 0; bottom: 25%;
  background: linear-gradient(180deg, #4a3a30 0%, #2a1e16 100%);
  box-shadow: inset 0 -8px 16px rgba(0,0,0,0.3);
  animation: da-wall 20s ease-in-out infinite alternate;
}
.scn-drawing-room-arrival .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 25%;
  background: linear-gradient(0deg, #2a1e14 0%, #3a2a1e 50%, #2a1e14 100%);
  animation: da-floor 30s linear infinite;
}
.scn-drawing-room-arrival .door-ajar {
  position: absolute; bottom: 20%; left: 30%;
  width: 60px; height: 100px;
  background: linear-gradient(180deg, #5a443a 0%, #2a1e14 100%);
  border-radius: 4px 4px 0 0;
  transform: skewY(3deg);
  box-shadow: 6px 0 12px rgba(0,0,0,0.5);
  animation: da-door 14s ease-in-out infinite alternate;
}
.scn-drawing-room-arrival .window-curtain {
  position: absolute; top: 5%; right: 15%;
  width: 50px; height: 80px;
  background: linear-gradient(180deg, #3a2222 0%, #1a0e0e 100%);
  border-radius: 10px 10px 2px 2px;
  box-shadow: 0 0 8px rgba(0,0,0,0.4);
  animation: da-curtain 18s ease-in-out infinite;
}
.scn-drawing-room-arrival .chair-silhouette {
  position: absolute; bottom: 20%; left: 55%;
  width: 40px; height: 50px;
  background: linear-gradient(180deg, #2a1e14 0%, #1a0e0a 100%);
  border-radius: 20% 20% 10% 10% / 40% 40% 20% 20%;
  transform: rotate(-5deg);
  animation: da-chair 22s ease-in-out infinite alternate;
}
.scn-drawing-room-arrival .picture-frame {
  position: absolute; top: 15%; left: 20%;
  width: 50px; height: 60px;
  background: linear-gradient(180deg, #3a2a1e 0%, #1a0e06 100%);
  border: 3px solid #6a5a4a;
  border-radius: 2px;
  box-shadow: 0 4px 8px rgba(0,0,0,0.4);
  animation: da-pic 16s ease-in-out infinite;
}
.scn-drawing-room-arrival .table-lamp {
  position: absolute; bottom: 22%; left: 70%;
  width: 10px; height: 20px;
  background: radial-gradient(ellipse at 50% 0%, #e0c080 0%, #4a3a2a 100%);
  border-radius: 20% 20% 10% 10% / 40% 40% 20% 20%;
  box-shadow: 0 0 20px 6px rgba(200,160,80,0.3);
  animation: da-lamp 8s ease-in-out infinite alternate;
}
@keyframes da-wall { 0% { filter: brightness(0.95) } 50% { filter: brightness(1) } 100% { filter: brightness(0.9) } }
@keyframes da-floor { 0% { background-position: 0% 0% } 50% { background-position: 30% 10% } 100% { background-position: 0% 0% } }
@keyframes da-door { 0% { transform: skewY(3deg) scaleX(1) } 50% { transform: skewY(5deg) scaleX(0.97) } 100% { transform: skewY(3deg) scaleX(1) } }
@keyframes da-curtain { 0% { transform: translateX(0) scaleY(1) } 50% { transform: translateX(-4px) scaleY(0.98) } 100% { transform: translateX(0) scaleY(1) } }
@keyframes da-chair { 0% { transform: rotate(-5deg) scaleX(1) } 50% { transform: rotate(-3deg) scaleX(0.96) } 100% { transform: rotate(-5deg) scaleX(1) } }
@keyframes da-pic { 0% { filter: drop-shadow(0 0 2px rgba(0,0,0,0.2)) } 50% { filter: drop-shadow(0 0 6px rgba(0,0,0,0.4)) } 100% { filter: drop-shadow(0 0 2px rgba(0,0,0,0.2)) } }
@keyframes da-lamp { 0% { box-shadow: 0 0 20px 6px rgba(200,160,80,0.3); opacity: 0.9 } 50% { box-shadow: 0 0 30px 12px rgba(200,160,80,0.5); opacity: 1 } 100% { box-shadow: 0 0 20px 6px rgba(200,160,80,0.3); opacity: 0.9 } }

.scn-item-crumbling-fire {
  background: linear-gradient(180deg, #1a0a06 0%, #2a140e 40%, #0a0402 100%), radial-gradient(ellipse at 50% 20%, #5a2a1a 0%, transparent 60%);
}
.scn-item-crumbling-fire .wall-hearth {
  position: absolute; left: 0; right: 0; top: 0; bottom: 20%;
  background: linear-gradient(180deg, #2a1a10 0%, #1a0e06 100%);
  box-shadow: inset 0 8px 16px rgba(0,0,0,0.5);
}
.scn-item-crumbling-fire .mantel {
  position: absolute; bottom: 20%; left: 20%; right: 20%; height: 15px;
  background: linear-gradient(180deg, #5a3a28 0%, #2a1a0e 100%);
  border-radius: 2px;
  box-shadow: 0 -4px 8px rgba(0,0,0,0.4);
  animation: fi-mantel 12s ease-in-out infinite alternate;
}
.scn-item-crumbling-fire .fire {
  position: absolute; bottom: 22%; left: 50%;
  width: 40px; height: 50px;
  transform: translateX(-50%);
  background: radial-gradient(ellipse at 50% 80%, #ff8040 0%, #b04020 40%, #4a1a0a 80%);
  filter: blur(3px);
  box-shadow: 0 0 40px 20px rgba(255,120,40,0.4);
  animation: fi-fire 4s ease-in-out infinite;
}
.scn-item-crumbling-fire .woman-figure {
  position: absolute; bottom: 20%; left: 40%;
  width: 22px; height: 70px;
  background: linear-gradient(180deg, #3a1a12 0%, #1a0804 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: fi-woman 10s ease-in-out infinite alternate;
}
.scn-item-crumbling-fire .chair {
  position: absolute; bottom: 20%; right: 25%;
  width: 40px; height: 40px;
  background: linear-gradient(180deg, #2a1a0e 0%, #1a0a04 100%);
  border-radius: 10% 10% 20% 20% / 20% 20% 10% 10%;
  box-shadow: inset 0 4px 6px rgba(0,0,0,0.5);
  animation: fi-chair 18s ease-in-out infinite;
}
.scn-item-crumbling-fire .glow-haze {
  position: absolute; inset: 0;
  background: radial-gradient(ellipse at 50% 20%, rgba(255,150,50,0.08) 0%, transparent 70%);
  animation: fi-haze 8s ease-in-out infinite alternate;
}
@keyframes fi-mantel { 0% { filter: brightness(0.9) } 50% { filter: brightness(1.1) } 100% { filter: brightness(0.95) } }
@keyframes fi-fire { 0% { transform: translateX(-50%) scaleY(0.9) rotate(-2deg); opacity: 0.8 } 30% { transform: translateX(-50%) scaleY(1.1) rotate(3deg); opacity: 1 } 60% { transform: translateX(-50%) scaleY(0.95) rotate(-1deg); opacity: 0.9 } 100% { transform: translateX(-50%) scaleY(1) rotate(2deg); opacity: 0.85 } }
@keyframes fi-woman { 0% { transform: translateX(0) scaleY(1) rotate(-1deg) } 50% { transform: translateX(-4px) scaleY(1.02) rotate(1deg) } 100% { transform: translateX(0) scaleY(1) rotate(-1deg) } }
@keyframes fi-chair { 0% { filter: drop-shadow(0 0 2px rgba(0,0,0,0.3)) } 50% { filter: drop-shadow(0 0 8px rgba(0,0,0,0.6)) } 100% { filter: drop-shadow(0 0 2px rgba(0,0,0,0.3)) } }
@keyframes fi-haze { 0% { opacity: 0.4; filter: blur(10px) } 50% { opacity: 0.6; filter: blur(6px) } 100% { opacity: 0.3; filter: blur(12px) } }

.scn-drawing-room-cat-tread { background: linear-gradient(180deg, #1a1410 0%, #2a2018 50%, #1e1814 100%), radial-gradient(ellipse at 40% 30%, #3a2a1e 0%, transparent 60%); }
.scn-drawing-room-cat-tread .cat-bg { position:absolute; inset:0; background: linear-gradient(180deg, #2a1f14 0%, transparent 60%); animation: cat-bg 12s ease-in-out infinite alternate; }
.scn-drawing-room-cat-tread .cat-carpet { position:absolute; bottom:0; left:5%; right:5%; height:35%; background: linear-gradient(180deg, #4a3a2e 0%, #2a1e16 100%); border-radius: 20% 20% 0 0; box-shadow: inset 0 10px 20px rgba(0,0,0,.5); animation: cat-carpet 8s ease-in-out infinite; }
.scn-drawing-room-cat-tread .cat-doorway { position:absolute; left:12%; top:15%; width:30%; height:70%; background: linear-gradient(180deg, #1e1814 0%, #14100a 100%); border-radius: 0 0 10% 10%; box-shadow: inset 0 0 30px rgba(0,0,0,.3); animation: cat-door 10s ease-in-out infinite alternate; }
.scn-drawing-room-cat-tread .cat-hostess { position:absolute; bottom:40%; right:20%; width:40px; height:100px; background: linear-gradient(180deg, #2a2018 0%, #1a1410 100%); border-radius: 40% 40% 20% 20% / 60% 60% 30% 30%; transform-origin: bottom center; animation: cat-hostess 5s ease-in-out infinite; }
.scn-drawing-room-cat-tread .cat-footfall { position:absolute; bottom:25%; left:50%; width:20px; height:8px; background: linear-gradient(180deg, #1a1410 0%, transparent 100%); border-radius: 50%; transform: translateX(-10px); animation: cat-foot 6s ease-in-out infinite; }
.scn-drawing-room-cat-tread .cat-hearth { position:absolute; bottom:20%; left:10%; width:60px; height:40px; background: radial-gradient(circle, #d08040 0%, #a05020 50%, #402010 100%); border-radius: 50% 50% 0 0; box-shadow: 0 0 40px 10px #c07030; animation: cat-glow 3s ease-in-out infinite alternate; }
.scn-drawing-room-cat-tread .cat-chair { position:absolute; bottom:25%; left:55%; width:50px; height:60px; background: linear-gradient(180deg, #2a1e16 0%, #1a1410 100%); border-radius: 20% 20% 10% 10%; box-shadow: inset 0 -8px 12px rgba(0,0,0,.4); animation: cat-chair 10s ease-in-out infinite; }
.scn-drawing-room-cat-tread .cat-shade { position:absolute; bottom:35%; left:45%; width:30px; height:5px; background: rgba(0,0,0,.4); border-radius: 50%; filter: blur(4px); animation: cat-shade 7s ease-in-out infinite; }
@keyframes cat-bg { 0% { opacity:.7 } 50% { opacity:1 } 100% { opacity:.8 } }
@keyframes cat-carpet { 0% { transform: translateY(0) } 50% { transform: translateY(-2px) } 100% { transform: translateY(0) } }
@keyframes cat-door { 0% { transform: scaleY(1) } 50% { transform: scaleY(.98) } 100% { transform: scaleY(1) } }
@keyframes cat-hostess { 0% { transform: translateX(0) rotate(0) } 30% { transform: translateX(-2px) rotate(2deg) } 70% { transform: translateX(2px) rotate(-2deg) } 100% { transform: translateX(0) rotate(0) } }
@keyframes cat-foot { 0% { transform: translateX(-10px) scale(1) } 25% { transform: translateX(-5px) scale(1.1) } 50% { transform: translateX(0) scale(1) } 75% { transform: translateX(-5px) scale(1.1) } 100% { transform: translateX(-10px) scale(1) } }
@keyframes cat-glow { 0% { box-shadow: 0 0 20px 5px #a05020; opacity:.8 } 50% { box-shadow: 0 0 50px 15px #d08040; opacity:1 } 100% { box-shadow: 0 0 25px 8px #b06030; opacity:.9 } }
@keyframes cat-chair { 0% { transform: rotate(0) } 50% { transform: rotate(2deg) translateY(-1px) } 100% { transform: rotate(0) } }
@keyframes cat-shade { 0% { transform: scale(1); opacity:.3 } 50% { transform: scale(1.2); opacity:.5 } 100% { transform: scale(1); opacity:.3 } }

.scn-drawing-room-greuse-smile { background: linear-gradient(180deg, #1e1814 0%, #2a201a 40%, #1a1410 100%), radial-gradient(ellipse at 60% 40%, #4a3a2e 0%, transparent 50%); }
.scn-drawing-room-greuse-smile .gre-bg { position:absolute; inset:0; background: linear-gradient(135deg, #1a1410 0%, transparent 60%); animation: gre-bg 15s ease-in-out infinite alternate; }
.scn-drawing-room-greuse-smile .gre-hostess { position:absolute; bottom:30%; left:35%; width:50px; height:110px; background: linear-gradient(180deg, #3a2a1e 0%, #2a1e16 100%); border-radius: 45% 45% 20% 20% / 65% 65% 30% 30%; transform-origin: bottom center; animation: gre-hostess 6s ease-in-out infinite; }
.scn-drawing-room-greuse-smile .gre-arm { position:absolute; bottom:50%; left:30%; width:30px; height:8px; background: linear-gradient(90deg, #3a2a1e 0%, #2a1e16 100%); border-radius: 0 40% 40% 0; transform: rotate(-15deg); transform-origin: right center; animation: gre-arm 5s ease-in-out infinite alternate; }
.scn-drawing-room-greuse-smile .gre-throat { position:absolute; bottom:60%; left:38%; width:8px; height:14px; background: radial-gradient(circle, #b07040 0%, #4a2a1a 100%); border-radius: 40%; box-shadow: 0 0 12px 3px #d09050; animation: gre-pulse 2s ease-in-out infinite alternate; }
.scn-drawing-room-greuse-smile .gre-face { position:absolute; bottom:65%; left:41%; width:14px; height:20px; background: linear-gradient(180deg, #4a3a2e 0%, #2a1e16 100%); border-radius: 45% 45% 30% 30% / 55% 55% 40% 40%; animation: gre-face 7s ease-in-out infinite; }
.scn-drawing-room-greuse-smile .gre-painting { position:absolute; top:10%; right:15%; width:50px; height:70px; background: linear-gradient(180deg, #1a1410 0%, #0e0a06 100%); border: 2px solid #4a3a2e; border-radius: 5%; animation: gre-paint 20s ease-in-out infinite; }
.scn-drawing-room-greuse-smile .gre-candle { position:absolute; bottom:40%; left:20%; width:8px; height:20px; background: linear-gradient(180deg, #a08060 0%, #4a3a2e 100%); border-radius: 20% 20% 10% 10%; box-shadow: 0 0 20px 4px #c09060; animation: gre-candle 4s ease-in-out infinite alternate; }
.scn-drawing-room-greuse-smile .gre-shadow { position:absolute; bottom:25%; left:25%; width:40px; height:15px; background: rgba(0,0,0,.5); border-radius: 50%; filter: blur(6px); animation: gre-shadow 8s ease-in-out infinite; }
@keyframes gre-bg { 0% { opacity:.8 } 50% { opacity:1 } 100% { opacity:.85 } }
@keyframes gre-hostess { 0% { transform: translateY(0) rotate(0) } 40% { transform: translateY(-1px) rotate(1deg) } 80% { transform: translateY(0) rotate(-1deg) } 100% { transform: translateY(0) rotate(0) } }
@keyframes gre-arm { 0% { transform: rotate(-15deg) translateX(0) } 100% { transform: rotate(-5deg) translateX(2px) } }
@keyframes gre-pulse { 0% { box-shadow: 0 0 8px 2px #a06030; opacity:.7 } 100% { box-shadow: 0 0 20px 5px #d09050; opacity:1 } }
@keyframes gre-face { 0% { transform: rotate(0) } 30% { transform: rotate(2deg) } 70% { transform: rotate(-2deg) } 100% { transform: rotate(0) } }
@keyframes gre-paint { 0% { transform: scale(1) } 50% { transform: scale(.98) } 100% { transform: scale(1) } }
@keyframes gre-candle { 0% { box-shadow: 0 0 10px 2px #a07040; opacity:.9 } 100% { box-shadow: 0 0 25px 6px #d0a070; opacity:1 } }
@keyframes gre-shadow { 0% { transform: scale(1); opacity:.5 } 50% { transform: scale(1.1); opacity:.6 } 100% { transform: scale(1); opacity:.5 } }

.scn-drawing-room-sprightly-question { background: linear-gradient(180deg, #301a10 0%, #20140c 50%, #1a0e08 100%), radial-gradient(ellipse at 50% 60%, #4a3020 0%, transparent 70%); }
.scn-drawing-room-sprightly-question .spr-bg { position:absolute; inset:0; background: linear-gradient(180deg, #20140c 0%, transparent 50%); animation: spr-bg 10s ease-in-out infinite alternate; }
.scn-drawing-room-sprightly-question .spr-man { position:absolute; bottom:30%; left:20%; width:45px; height:105px; background: linear-gradient(180deg, #2a1e16 0%, #1a1410 100%); border-radius: 40% 40% 20% 20% / 60% 60% 30% 30%; transform-origin: bottom center; animation: spr-man 5s ease-in-out infinite; }
.scn-drawing-room-sprightly-question .spr-woman { position:absolute; bottom:28%; right:25%; width:40px; height:100px; background: linear-gradient(180deg, #3a2a1e 0%, #2a1e16 100%); border-radius: 45% 45% 20% 20% / 65% 65% 30% 30%; transform-origin: bottom center; animation: spr-woman 6s ease-in-out infinite; }
.scn-drawing-room-sprightly-question .spr-floor { position:absolute; bottom:0; left:0; right:0; height:30%; background: linear-gradient(180deg, #4a3a2e 0%, #2a1e16 100%); border-radius: 30% 30% 0 0; box-shadow: inset 0 8px 20px rgba(0,0,0,.5); animation: spr-floor 7s ease-in-out infinite; }
.scn-drawing-room-sprightly-question .spr-candle { position:absolute; bottom:45%; left:50%; width:10px; height:25px; background: linear-gradient(180deg, #c0a070 0%, #805030 100%); border-radius: 20% 20% 10% 10%; transform: translateX(-50%); box-shadow: 0 0 30px 8px #b08050; animation: spr-candle 3s ease-in-out infinite alternate; }
.scn-drawing-room-sprightly-question .spr-wait { position:absolute; bottom:38%; left:44%; width:20px; height:10px; background: radial-gradient(ellipse, #d0a070 0%, transparent 70%); opacity:.6; animation: spr-wait 4s ease-in-out infinite; }
.scn-drawing-room-sprightly-question .spr-wall { position:absolute; top:0; left:0; right:0; height:70%; background: linear-gradient(180deg, #1a0e08 0%, #301a10 100%); box-shadow: inset 0 0 40px rgba(0,0,0,.3); animation: spr-wall 9s ease-in-out infinite alternate; }
@keyframes spr-bg { 0% { opacity:.7 } 50% { opacity:.9 } 100% { opacity:.8 } }
@keyframes spr-man { 0% { transform: translateX(0) rotate(0) } 30% { transform: translateX(2px) rotate(1deg) } 60% { transform: translateX(-2px) rotate(-1deg) } 100% { transform: translateX(0) rotate(0) } }
@keyframes spr-woman { 0% { transform: translateY(0) rotate(0) } 40% { transform: translateY(-1px) rotate(2deg) } 80% { transform: translateY(0) rotate(-1deg) } 100% { transform: translateY(0) rotate(0) } }
@keyframes spr-floor { 0% { transform: scaleY(1) } 50% { transform: scaleY(.98) translateY(1px) } 100% { transform: scaleY(1) } }
@keyframes spr-candle { 0% { box-shadow: 0 0 15px 3px #a06030; opacity:.9 } 100% { box-shadow: 0 0 40px 10px #d0a070; opacity:1 } }
@keyframes spr-wait { 0% { opacity:.4; transform: scale(1) } 50% { opacity:.7; transform: scale(1.05) } 100% { opacity:.5; transform: scale(1) } }
@keyframes spr-wall { 0% { opacity:.8 } 50% { opacity:1 } 100% { opacity:.9 } }

.scn-drawing-room-revelation { background: linear-gradient(180deg, #2a1a12 0%, #1a100a 40%, #0e0804 100%), radial-gradient(ellipse at 30% 50%, #4a2a1a 0%, transparent 60%); }
.scn-drawing-room-revelation .rev-bg { position:absolute; inset:0; background: linear-gradient(135deg, #1a100a 0%, transparent 50%); animation: rev-bg 14s ease-in-out infinite alternate; }
.scn-drawing-room-revelation .rev-silhouette { position:absolute; bottom:25%; left:35%; width:55px; height:120px; background: linear-gradient(180deg, #2a1a12 0%, #1a0e08 100%); border-radius: 45% 45% 25% 25% / 60% 60% 35% 35%; transform-origin: bottom center; animation: rev-sil 8s ease-in-out infinite; }
.scn-drawing-room-revelation .rev-throat { position:absolute; bottom:55%; left:38%; width:10px; height:16px; background: radial-gradient(circle, #c08040 0%, #4a2a1a 100%); border-radius: 40%; box-shadow: 0 0 20px 6px #d0a060; animation: rev-throat 3s ease-in-out infinite alternate; }
.scn-drawing-room-revelation .rev-waist { position:absolute; bottom:28%; left:37%; width:40px; height:10px; background: linear-gradient(90deg, transparent 0%, #4a2a1a 30%, #2a1a12 70%, transparent 100%); border-radius: 50%; transform: rotate(-10deg); animation: rev-waist 6s ease-in-out infinite; }
.scn-drawing-room-revelation .rev-glow { position:absolute; bottom:50%; left:20%; width:100px; height:80px; background: radial-gradient(circle, #d0a070 0%, transparent 60%); opacity:.4; animation: rev-glow 5s ease-in-out infinite alternate; }
.scn-drawing-room-revelation .rev-overlay { position:absolute; inset:0; background: linear-gradient(180deg, transparent 30%, #0e0804 100%); animation: rev-over 12s ease-in-out infinite; }
.scn-drawing-room-revelation .rev-shadow { position:absolute; bottom:10%; left:30%; width:50px; height:12px; background: rgba(0,0,0,.6); border-radius: 50%; filter: blur(8px); animation: rev-shadow 9s ease-in-out infinite; }
@keyframes rev-bg { 0% { opacity:.7 } 50% { opacity:.9 } 100% { opacity:.8 } }
@keyframes rev-sil { 0% { transform: translateY(0) rotate(0) } 40% { transform: translateY(-2px) rotate(2deg) } 80% { transform: translateY(0) rotate(-1deg) } 100% { transform: translateY(0) rotate(0) } }
@keyframes rev-throat { 0% { box-shadow: 0 0 10px 3px #a06030; opacity:.7 } 100% { box-shadow: 0 0 30px 8px #d0a060; opacity:1 } }
@keyframes rev-waist { 0% { transform: rotate(-10deg) scaleX(1) } 50% { transform: rotate(-5deg) scaleX(1.05) } 100% { transform: rotate(-10deg) scaleX(1) } }
@keyframes rev-glow { 0% { transform: scale(.9); opacity:.3 } 100% { transform: scale(1.1); opacity:.5 } }
@keyframes rev-over { 0% { opacity:.8 } 50% { opacity:1 } 100% { opacity:.85 } }
@keyframes rev-shadow { 0% { transform: scale(1); opacity:.6 } 50% { transform: scale(1.1); opacity:.4 } 100% { transform: scale(1); opacity:.6 } }

/* yany-valet scene */
.scn-yany-valet { background: linear-gradient(180deg, #5c3a1e 0%, #4a2c14 40%, #2a1c0c 100%), radial-gradient(ellipse at 40% 60%, #b86a2e 0%, transparent 70%); }
.scn-yany-valet .wall { position:absolute; inset:0 0 30% 0; background: linear-gradient(90deg, #3a2210 0%, #5a3820 50%, #3a2210 100%); animation: yyv-wall 20s ease-in-out infinite alternate; }
.scn-yany-valet .floor { position:absolute; bottom:0; left:0; right:0; height:30%; background: linear-gradient(180deg, #2a1408 0%, #1a0c04 100%); border-radius: 0 0 10% 10%; box-shadow: inset 0 4px 10px rgba(0,0,0,.6); }
.scn-yany-valet .fireplace { position:absolute; bottom:25%; left:25%; width:120px; height:80px; background: linear-gradient(180deg, #7a4a2a 0%, #4a2a14 100%); border-radius: 10% 10% 5% 5%; box-shadow: inset 0 -8px 20px rgba(0,0,0,.4), 0 4px 8px rgba(0,0,0,.5); animation: yyv-fp 10s ease-in-out infinite; }
.scn-yany-valet .fire-glow { position:absolute; bottom:28%; left:31%; width:60px; height:60px; background: radial-gradient(circle, #e8842a 0%, #a84a10 40%, transparent 70%); border-radius: 50%; box-shadow: 0 0 40px 20px #e8842a, 0 0 80px 40px rgba(232,132,42,.5); animation: yyv-fire 2s ease-in-out infinite alternate; }
.scn-yany-valet .valet { position:absolute; bottom:15%; left:50%; width:24px; height:60px; transform:translateX(-50%); background: linear-gradient(180deg, #2a1a0c 0%, #120a04 100%); border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%; animation: yyv-figure 8s ease-in-out infinite; }
.scn-yany-valet .door { position:absolute; bottom:18%; left:68%; width:40px; height:90px; background: linear-gradient(180deg, #5a3a1e 0%, #3a2210 100%); border: 2px solid #2a1408; border-radius: 4% 4% 0 0; box-shadow: inset 0 4px 8px rgba(0,0,0,.3); animation: yyv-door 12s ease-in-out infinite; }
.scn-yany-valet .shadow { position:absolute; bottom:5%; left:20%; width:160px; height:60px; background: rgba(0,0,0,.4); border-radius: 50%; filter: blur(8px); animation: yyv-shadow 15s ease-in-out infinite alternate; }
@keyframes yyv-wall { 0% { opacity:.85 } 50% { opacity:1 } 100% { opacity:.9 } }
@keyframes yyv-fp { 0%,100% { transform:translateY(0) } 50% { transform:translateY(-2px) } }
@keyframes yyv-fire { 0% { transform:scale(1); opacity:.9; box-shadow:0 0 30px 15px #e8842a, 0 0 60px 30px rgba(232,132,42,.4) } 50% { transform:scale(1.1); opacity:1; box-shadow:0 0 50px 25px #f0a050, 0 0 100px 50px rgba(240,160,80,.6) } 100% { transform:scale(.95); opacity:.85; box-shadow:0 0 35px 18px #e8842a, 0 0 70px 35px rgba(232,132,42,.45) } }
@keyframes yyv-figure { 0% { transform:translateX(-50%) translateY(0); } 25% { transform:translateX(-50%) translateY(-3px) rotate(1deg); } 50% { transform:translateX(-50%) translateY(0) rotate(-1deg); } 75% { transform:translateX(-50%) translateY(-2px) rotate(0); } 100% { transform:translateX(-50%) translateY(0); } }
@keyframes yyv-door { 0%,100% { transform:rotateY(0deg); } 50% { transform:rotateY(5deg); } }
@keyframes yyv-shadow { 0% { transform:scaleX(1); opacity:0.4; } 50% { transform:scaleX(1.1); opacity:0.5; } 100% { transform:scaleX(0.95); opacity:0.35; } }

/* yany-valet-despair scene */
.scn-yany-valet-despair { background: linear-gradient(180deg, #1c0c04 0%, #2a1408 50%, #0a0400 100%), radial-gradient(ellipse at 50% 80%, #6a3010 0%, transparent 60%); }
.scn-yany-valet-despair .bg-dark { position:absolute; inset:0 0 25% 0; background: linear-gradient(180deg, #0a0400 0%, #1a0c04 100%); animation: yyd-bg 18s ease-in-out infinite alternate; }
.scn-yany-valet-despair .floor-dark { position:absolute; bottom:0; left:0; right:0; height:25%; background: #050200; border-radius: 0 0 8% 8%; box-shadow: inset 0 2px 6px rgba(0,0,0,.8); }
.scn-yany-valet-despair .fireplace-dim { position:absolute; bottom:22%; left:20%; width:100px; height:70px; background: linear-gradient(180deg, #3a2010 0%, #1a0c04 100%); border-radius: 8% 8% 3% 3%; box-shadow: inset 0 -4px 10px rgba(0,0,0,.6); }
.scn-yany-valet-despair .fire-ember { position:absolute; bottom:26%; left:28%; width:40px; height:40px; background: radial-gradient(circle, #c86020 0%, #602808 40%, transparent 70%); border-radius: 50%; box-shadow: 0 0 20px 10px #c86020, 0 0 40px 20px rgba(200,96,32,.3); animation: yyd-ember 3s ease-in-out infinite alternate; }
.scn-yany-valet-despair .figure-silhouette { position:absolute; bottom:12%; left:40%; width:28px; height:68px; transform:translateX(-50%); background: #050200; border-radius: 45% 45% 35% 35% / 60% 60% 40% 40%; box-shadow: 0 0 15px 5px rgba(200,96,32,.2); animation: yyd-figure 6s ease-in-out infinite; }
.scn-yany-valet-despair .shadow-loom { position:absolute; bottom:2%; left:15%; width:200px; height:80px; background: rgba(0,0,0,.7); border-radius: 50%; filter: blur(12px); animation: yyd-shadow 20s ease-in-out infinite alternate; }
@keyframes yyd-bg { 0% { opacity:.5 } 50% { opacity:.7 } 100% { opacity:.4 } }
@keyframes yyd-ember { 0% { transform:scale(1); opacity:.6; box-shadow:0 0 10px 5px #c86020, 0 0 20px 10px rgba(200,96,32,.2) } 50% { transform:scale(1.15); opacity:1; box-shadow:0 0 25px 12px #d87030, 0 0 50px 25px rgba(216,112,48,.4) } 100% { transform:scale(.9); opacity:.5; box-shadow:0 0 10px 5px #c86020, 0 0 20px 10px rgba(200,96,32,.15) } }
@keyframes yyd-figure { 0% { transform:translateX(-50%) translateY(0) rotate(0); } 25% { transform:translateX(-50%) translateY(-4px) rotate(-2deg); } 50% { transform:translateX(-50%) translateY(-1px) rotate(1deg); } 75% { transform:translateX(-50%) translateY(-3px) rotate(-1deg); } 100% { transform:translateX(-50%) translateY(0) rotate(0); } }
@keyframes yyd-shadow { 0% { transform:scaleX(.9) scaleY(1); opacity:.5; } 50% { transform:scaleX(1.1) scaleY(1.05); opacity:.65; } 100% { transform:scaleX(.95) scaleY(.95); opacity:.45; } }

/* servant-dressing-room scene */
.scn-servant-dressing-room { background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 50%, #0a0a1a 100%), radial-gradient(ellipse at 50% 100%, #3a3a5a 0%, transparent 80%); }
.scn-servant-dressing-room .room-wall { position:absolute; inset:0 0 35% 0; background: linear-gradient(135deg, #2a2a3a 0%, #1a1a2a 100%); animation: sdr-wall 15s ease-in-out infinite alternate; }
.scn-servant-dressing-room .room-floor { position:absolute; bottom:0; left:0; right:0; height:35%; background: linear-gradient(180deg, #1a1020 0%, #0e0810 100%); border-radius: 0 0 6% 6%; box-shadow: inset 0 2px 8px rgba(0,0,0,.5); }
.scn-servant-dressing-room .window-snow { position:absolute; top:20%; right:15%; width:80px; height:100px; background: linear-gradient(180deg, #4a5a6a 0%, #2a3a4a 100%); border-radius: 4% 4% 2% 2%; box-shadow: inset 0 0 20px #8a9aaa; overflow:hidden; }
.scn-servant-dressing-room .window-snow::before { content:''; position:absolute; top:0; left:0; right:0; bottom:0; background: repeating-linear-gradient(0deg, rgba(255,255,255,.3) 0px, transparent 2px, rgba(255,255,255,.1) 4px, transparent 6px); animation: sdr-snow 8s linear infinite; }
.scn-servant-dressing-room .dressing-table { position:absolute; bottom:30%; left:18%; width:140px; height:60px; background: linear-gradient(180deg, #3a2a1a 0%, #1a1008 100%); border-radius: 6% 6% 20% 20%; box-shadow: 0 4px 12px rgba(0,0,0,.4), inset 0 2px 4px rgba(255,255,255,.05); }
.scn-servant-dressing-room .candle-glow { position:absolute; bottom:55%; left:25%; width:20px; height:40px; background: radial-gradient(circle at 50% 100%, #ffd080 0%, #b08040 40%, transparent 70%); border-radius: 50% 50% 20% 20% / 80% 80% 20% 20%; box-shadow: 0 0 30px 15px #ffd080, 0 0 60px 30px rgba(255,208,128,.3); animation: sdr-candle 4s ease-in-out infinite alternate; }
.scn-servant-dressing-room .figure-seated { position:absolute; bottom:25%; left:30%; width:30px; height:70px; transform:translateX(-50%); background: linear-gradient(180deg, #2a1a2a 0%, #100810 100%); border-radius: 45% 45% 40% 40% / 60% 60% 40% 40%; animation: sdr-figure 14s ease-in-out infinite; }
.scn-servant-dressing-room .mirror-frame { position:absolute; top:15%; left:30%; width:50px; height:70px; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a10 100%); border-radius: 8% 8% 4% 4%; box-shadow: 0 2px 6px rgba(0,0,0,.4), inset 0 0 10px rgba(255,255,255,.1); animation: sdr-mirror 20s ease-in-out infinite alternate; }
@keyframes sdr-wall { 0% { opacity:.7 } 50% { opacity:.85 } 100% { opacity:.75 } }
@keyframes sdr-snow { 0% { transform:translateY(-100%); } 100% { transform:translateY(100%); } }
@keyframes sdr-candle { 0% { transform:scale(1); opacity:.8; box-shadow:0 0 20px 10px #ffd080, 0 0 40px 20px rgba(255,208,128,.2) } 50% { transform:scale(1.1) translateY(-2px); opacity:1; box-shadow:0 0 35px 18px #ffe0a0, 0 0 70px 35px rgba(255,224,160,.4) } 100% { transform:scale(.95); opacity:.7; box-shadow:0 0 20px 10px #ffd080, 0 0 40px 20px rgba(255,208,128,.15) } }
@keyframes sdr-figure { 0% { transform:translateX(-50%) translateY(0); } 30% { transform:translateX(-50%) translateY(-3px); } 70% { transform:translateX(-50%) translateY(-1px); } 100% { transform:translateX(-50%) translateY(0); } }
@keyframes sdr-mirror { 0% { box-shadow:inset 0 0 8px rgba(255,255,255,.05); } 50% { box-shadow:inset 0 0 16px rgba(255,255,255,.15); } 100% { box-shadow:inset 0 0 6px rgba(255,255,255,.08); } }

/* item-white-tie scene */
.scn-item-white-tie { background: linear-gradient(180deg, #1a1a1a 0%, #121212 50%, #080808 100%), radial-gradient(ellipse at 50% 50%, #2a2a2a 0%, transparent 90%); }
.scn-item-white-tie .bg-wall { position:absolute; inset:0 0 40% 0; background: linear-gradient(135deg, #1a1a1a 0%, #121212 100%); animation: iwt-wall 25s ease-in-out infinite alternate; }
.scn-item-white-tie .gentleman { position:absolute; bottom:15%; left:55%; width:40px; height:90px; transform:translateX(-50%); background: linear-gradient(180deg, #2a2020 0%, #121010 100%); border-radius: 45% 45% 35% 35% / 60% 60% 40% 40%; animation: iwt-gent 10s ease-in-out infinite; }
.scn-item-white-tie .valet-arms { position:absolute; bottom:20%; left:45%; width:30px; height:60px; background: linear-gradient(180deg, #1a1010 0%, #0a0808 100%); border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%; transform-origin: top center; animation: iwt-arms 6s ease-in-out infinite; }
.scn-item-white-tie .white-tie { position:absolute; bottom:48%; left:52%; width:14px; height:20px; background: radial-gradient(ellipse at 50% 50%, #f0ece8 0%, #c0b8b0 100%); border-radius: 20% 20% 30% 30%; box-shadow: 0 0 6px 2px rgba(255,255,255,.3); animation: iwt-tie 4s ease-in-out infinite alternate; }
.scn-item-white-tie .mirror { position:absolute; top:10%; left:25%; width:60px; height:80px; background: linear-gradient(180deg, #3a3030 0%, #201818 100%); border-radius: 6% 6% 3% 3%; box-shadow: 0 2px 8px rgba(0,0,0,.5), inset 0 0 20px rgba(255,255,255,.05); }
.scn-item-white-tie .candlelight { position:absolute; bottom:55%; left:15%; width:16px; height:30px; background: radial-gradient(circle at 50% 100%, #ffe0a0 0%, #c09040 40%, transparent 70%); border-radius: 50% 50% 20% 20% / 80% 80% 20% 20%; box-shadow: 0 0 20px 10px #ffe0a0, 0 0 40px 20px rgba(255,224,160,.2); animation: iwt-candle 5s ease-in-out infinite alternate; }
@keyframes iwt-wall { 0% { opacity:.6 } 50% { opacity:.8 } 100% { opacity:.7 } }
@keyframes iwt-gent { 0% { transform:translateX(-50%) translateY(0); } 25% { transform:translateX(-50%) translateY(-2px); } 50% { transform:translateX(-50%) translateY(1px); } 75% { transform:translateX(-50%) translateY(-1px); } 100% { transform:translateX(-50%) translateY(0); } }
@keyframes iwt-arms { 0% { transform:rotate(0) translateY(0); } 30% { transform:rotate(3deg) translateY(-2px); } 60% { transform:rotate(-2deg) translateY(0); } 100% { transform:rotate(0) translateY(0); } }
@keyframes iwt-tie { 0% { transform:scale(1) translateY(0); opacity:.8; } 50% { transform:scale(1.05) translateY(-1px); opacity:1; } 100% { transform:scale(.95) translateY(1px); opacity:.9; } }
@keyframes iwt-candle { 0% { transform:scale(1); opacity:.7; box-shadow:0 0 15px 8px #ffe0a0, 0 0 30px 15px rgba(255,224,160,.15) } 50% { transform:scale(1.1); opacity:1; box-shadow:0 0 25px 12px #ffecb0, 0 0 50px 25px rgba(255,236,176,.3) } 100% { transform:scale(.95); opacity:.65; box-shadow:0 0 15px 8px #ffe0a0, 0 0 30px 15px rgba(255,224,160,.1) } }

.scn-baron-warning {
  background: linear-gradient(180deg, #2a1e1e 0%, #1a1212 50%, #0d0a0a 100%), radial-gradient(ellipse at 40% 30%, #3a2a2a 0%, transparent 70%);
}
.scn-baron-warning .room-bg {
  position: absolute; inset: 0; background: linear-gradient(135deg, #1a1212, #2a1e1e);
  animation: bw-ambient 8s ease-in-out infinite alternate;
}
.scn-baron-warning .window-bars {
  position: absolute; top: 15%; left: 60%; width: 40%; height: 30%;
  background: repeating-linear-gradient(0deg, #3a2a2a 0px, #3a2a2a 4px, transparent 4px, transparent 8px);
  border: 2px solid #4a3a3a; border-radius: 4px;
  animation: bw-bars 10s ease-in-out infinite alternate;
}
.scn-baron-warning .horse-sil {
  position: absolute; bottom: 20%; left: 55%; width: 25%; height: 20%;
  background: #1a1212;
  border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%;
  transform: skewX(-10deg);
  animation: bw-horse 12s ease-in-out infinite alternate;
}
.scn-baron-warning .lantern {
  position: absolute; top: 20%; left: 20%; width: 8px; height: 12px;
  background: radial-gradient(circle, #ffd680 0%, #b08040 60%);
  border-radius: 50%; box-shadow: 0 0 20px 6px #c08040;
  animation: bw-lantern 3s ease-in-out infinite alternate;
}
.scn-baron-warning .figure {
  position: absolute; bottom: 20%; left: 30%; width: 20px; height: 35px;
  background: linear-gradient(180deg, #2a1e1e, #1a1212);
  border-radius: 50% 50% 40% 40% / 70% 70% 30% 30%;
  animation: bw-figure 4s ease-in-out infinite;
}
.scn-baron-warning .table {
  position: absolute; bottom: 10%; left: 10%; width: 30%; height: 5%;
  background: #3a2a2a; border-radius: 2px; box-shadow: 0 2px 4px rgba(0,0,0,0.5);
}
.scn-baron-warning .candle {
  position: absolute; bottom: 12%; left: 22%; width: 4px; height: 14px;
  background: linear-gradient(180deg, #f0c060, #c08040); border-radius: 2px;
  animation: bw-candle 2s ease-in-out infinite alternate;
}
@keyframes bw-ambient { 0% { opacity: 0.6; } 50% { opacity: 0.9; } 100% { opacity: 0.7; } }
@keyframes bw-bars { 0% { opacity: 0.7; transform: scaleY(1); } 50% { opacity: 1; transform: scaleY(1.05); } 100% { opacity: 0.8; transform: scaleY(0.95); } }
@keyframes bw-horse { 0% { transform: skewX(-10deg) translateX(0); } 50% { transform: skewX(-5deg) translateX(2px); } 100% { transform: skewX(-10deg) translateX(-2px); } }
@keyframes bw-lantern { 0% { box-shadow: 0 0 15px 4px #c08040; } 50% { box-shadow: 0 0 25px 8px #ffd060; } 100% { box-shadow: 0 0 18px 5px #c08040; } }
@keyframes bw-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 bw-candle { 0% { height: 14px; opacity: 0.8; } 50% { height: 16px; opacity: 1; } 100% { height: 14px; opacity: 0.9; } }

.scn-marshfield-retort {
  background: linear-gradient(180deg, #2a2424 0%, #1a1616 50%, #0f0c0c 100%), radial-gradient(ellipse at 60% 40%, #3a2e2e 0%, transparent 80%);
}
.scn-marshfield-retort .room-bg {
  position: absolute; inset: 0; background: linear-gradient(135deg, #1a1616, #2a2424);
  animation: mr-ambient 8s ease-in-out infinite alternate;
}
.scn-marshfield-retort .figure-marsh {
  position: absolute; bottom: 20%; left: 25%; width: 22px; height: 40px;
  background: linear-gradient(180deg, #3a2a2a, #1a1212);
  border-radius: 50% 40% 40% 50% / 60% 70% 30% 40%;
  animation: mr-marsh 5s ease-in-out infinite alternate;
}
.scn-marshfield-retort .figure-baron {
  position: absolute; bottom: 15%; left: 55%; width: 24px; height: 30px;
  background: linear-gradient(180deg, #2a1e1e, #1a1212);
  border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%;
  animation: mr-baron 6s ease-in-out infinite alternate;
}
.scn-marshfield-retort .table {
  position: absolute; bottom: 12%; left: 40%; width: 20%; height: 4%;
  background: #2a1e1e; border-radius: 2px;
}
.scn-marshfield-retort .candelabra {
  position: absolute; bottom: 18%; left: 45%; width: 6px; height: 20px;
  background: #4a3a3a; border-radius: 2px; box-shadow: 0 0 10px 2px #c08040;
  animation: mr-candelabra 3s ease-in-out infinite alternate;
}
.scn-marshfield-retort .shadow {
  position: absolute; bottom: 5%; left: 20%; width: 60%; height: 15%;
  background: linear-gradient(180deg, transparent, #0d0a0a);
  border-radius: 50%; filter: blur(6px);
  animation: mr-shadow 8s ease-in-out infinite alternate;
}
.scn-marshfield-retort .candle-flame {
  position: absolute; bottom: 20%; left: 46%; width: 4px; height: 8px;
  background: radial-gradient(circle, #ffd680, #c08040);
  border-radius: 50%; box-shadow: 0 0 12px 4px #c08040;
  animation: mr-flame 2s ease-in-out infinite alternate;
}
@keyframes mr-ambient { 0% { opacity: 0.6; } 50% { opacity: 0.9; } 100% { opacity: 0.7; } }
@keyframes mr-marsh { 0% { transform: translateY(0) rotate(-3deg); } 50% { transform: translateY(-2px) rotate(0deg); } 100% { transform: translateY(0) rotate(3deg); } }
@keyframes mr-baron { 0% { transform: scale(1); } 50% { transform: scale(1.02); } 100% { transform: scale(0.98); } }
@keyframes mr-candelabra { 0% { box-shadow: 0 0 8px 2px #c08040; } 50% { box-shadow: 0 0 18px 6px #ffd060; } 100% { box-shadow: 0 0 10px 3px #c08040; } }
@keyframes mr-shadow { 0% { opacity: 0.5; transform: scaleX(1); } 50% { opacity: 0.7; transform: scaleX(1.1); } 100% { opacity: 0.5; transform: scaleX(0.9); } }
@keyframes mr-flame { 0% { height: 8px; opacity: 0.8; } 50% { height: 10px; opacity: 1; } 100% { height: 8px; opacity: 0.9; } }

.scn-item-brace-pistols {
  background: linear-gradient(180deg, #1e1818 0%, #141010 50%, #0a0808 100%), radial-gradient(ellipse at 30% 50%, #2a1e1e 0%, transparent 70%);
}
.scn-item-brace-pistols .room-bg {
  position: absolute; inset: 0; background: linear-gradient(135deg, #141010, #1e1818);
  animation: ibp-ambient 8s ease-in-out infinite alternate;
}
.scn-item-brace-pistols .mirror {
  position: absolute; top: 10%; left: 10%; width: 30%; height: 60%;
  background: linear-gradient(135deg, #3a2a2a, #1a1212);
  border: 2px solid #4a3a3a; border-radius: 4px; box-shadow: inset 0 0 10px rgba(0,0,0,0.8);
  animation: ibp-mirror 10s ease-in-out infinite alternate;
}
.scn-item-brace-pistols .figure-dressing {
  position: absolute; bottom: 20%; left: 40%; width: 20px; height: 50px;
  background: linear-gradient(180deg, #2a1e1e, #1a1212);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  animation: ibp-figure 4s ease-in-out infinite;
}
.scn-item-brace-pistols .pistol-left {
  position: absolute; bottom: 25%; left: 55%; width: 20px; height: 6px;
  background: #5a4a3a; border-radius: 2px; transform: rotate(-20deg);
  animation: ibp-pistol 6s ease-in-out infinite alternate;
}
.scn-item-brace-pistols .pistol-right {
  position: absolute; bottom: 25%; left: 65%; width: 20px; height: 6px;
  background: #5a4a3a; border-radius: 2px; transform: rotate(15deg);
  animation: ibp-pistol2 6s ease-in-out infinite alternate;
}
.scn-item-brace-pistols .coat {
  position: absolute; bottom: 30%; left: 30%; width: 25px; height: 40px;
  background: linear-gradient(180deg, #3a2a2a, #1a1212);
  border-radius: 20% 20% 10% 10% / 50% 50% 30% 30%;
  animation: ibp-coat 8s ease-in-out infinite alternate;
}
.scn-item-brace-pistols .candle {
  position: absolute; bottom: 15%; left: 50%; width: 4px; height: 16px;
  background: linear-gradient(180deg, #f0c060, #c08040); border-radius: 2px;
  animation: ibp-candle 2s ease-in-out infinite alternate;
}
@keyframes ibp-ambient { 0% { opacity: 0.6; } 50% { opacity: 0.9; } 100% { opacity: 0.7; } }
@keyframes ibp-mirror { 0% { opacity: 0.7; } 50% { opacity: 1; } 100% { opacity: 0.8; } }
@keyframes ibp-figure { 0% { transform: translateY(0) rotate(-2deg); } 50% { transform: translateY(-3px) rotate(2deg); } 100% { transform: translateY(0) rotate(-2deg); } }
@keyframes ibp-pistol { 0% { transform: rotate(-20deg) translateX(0); } 50% { transform: rotate(-15deg) translateX(2px); } 100% { transform: rotate(-20deg) translateX(0); } }
@keyframes ibp-pistol2 { 0% { transform: rotate(15deg) translateX(0); } 50% { transform: rotate(10deg) translateX(-2px); } 100% { transform: rotate(15deg) translateX(0); } }
@keyframes ibp-coat { 0% { transform: scale(1); } 50% { transform: scale(1.02); } 100% { transform: scale(0.98); } }
@keyframes ibp-candle { 0% { height: 16px; opacity: 0.8; } 50% { height: 18px; opacity: 1; } 100% { height: 16px; opacity: 0.9; } }

.scn-baron-silent {
  background: linear-gradient(180deg, #1a1414 0%, #0f0b0b 50%, #050303 100%), radial-gradient(ellipse at 50% 60%, #2a1e1e 0%, transparent 90%);
}
.scn-baron-silent .room-bg {
  position: absolute; inset: 0; background: linear-gradient(135deg, #0f0b0b, #1a1414);
  animation: bs-ambient 8s ease-in-out infinite alternate;
}
.scn-baron-silent .divan {
  position: absolute; bottom: 10%; left: 30%; width: 40%; height: 15%;
  background: linear-gradient(180deg, #3a2a2a, #2a1e1e);
  border-radius: 10% 10% 5% 5% / 50% 50% 30% 30%;
  box-shadow: 0 4px 8px rgba(0,0,0,0.7);
}
.scn-baron-silent .figure-baron-silent {
  position: absolute; bottom: 15%; left: 40%; width: 24px; height: 35px;
  background: linear-gradient(180deg, #2a1e1e, #1a1212);
  border-radius: 50% 50% 40% 40% / 70% 70% 30% 30%;
  transform: rotate(10deg);
  animation: bs-figure 5s ease-in-out infinite alternate;
}
.scn-baron-silent .cigar {
  position: absolute; bottom: 25%; left: 48%; width: 10px; height: 4px;
  background: #3a2a2a; border-radius: 2px; transform: rotate(10deg);
  animation: bs-cigar 6s ease-in-out infinite alternate;
}
.scn-baron-silent .lamp {
  position: absolute; top: 10%; left: 20%; width: 8px; height: 14px;
  background: radial-gradient(circle, #ffd680, #b08040);
  border-radius: 50%; box-shadow: 0 0 30px 10px #c08040;
  animation: bs-lamp 4s ease-in-out infinite alternate;
}
.scn-baron-silent .wall-shadow {
  position: absolute; top: 0; left: 0; width: 100%; height: 100%;
  background: radial-gradient(ellipse at 60% 50%, transparent 40%, #0a0808 80%);
  animation: bs-shadow 10s ease-in-out infinite alternate;
}
.scn-baron-silent .ceiling-crack {
  position: absolute; top: 5%; left: 30%; width: 2px; height: 20%;
  background: #2a1e1e; transform: rotate(15deg); border-radius: 1px;
  animation: bs-crack 12s ease-in-out infinite alternate;
}
@keyframes bs-ambient { 0% { opacity: 0.6; } 50% { opacity: 0.9; } 100% { opacity: 0.7; } }
@keyframes bs-figure { 0% { transform: rotate(10deg) translateY(0); } 50% { transform: rotate(12deg) translateY(-2px); } 100% { transform: rotate(10deg) translateY(0); } }
@keyframes bs-cigar { 0% { opacity: 0.6; } 50% { opacity: 1; } 100% { opacity: 0.7; } }
@keyframes bs-lamp { 0% { box-shadow: 0 0 20px 6px #c08040; } 50% { box-shadow: 0 0 40px 15px #ffd060; } 100% { box-shadow: 0 0 25px 8px #c08040; } }
@keyframes bs-shadow { 0% { opacity: 0.7; } 50% { opacity: 0.9; } 100% { opacity: 0.6; } }
@keyframes bs-crack { 0% { opacity: 0.3; } 50% { opacity: 0.6; } 100% { opacity: 0.2; } }

/* Scene: baron-wolves-plan (warm dim interior) */
.scn-baron-wolves-plan {
  background: linear-gradient(180deg, #1a120e 0%, #2a1a10 60%, #3a2a1a 100%), radial-gradient(ellipse at 50% 60%, #6a4a2a 0%, transparent 70%);
}
.scn-baron-wolves-plan .bg {
  position:absolute; inset:0; background: radial-gradient(ellipse at 40% 30%, rgba(200,150,80,.08) 0%, transparent 70%);
  animation: bwp-bg 12s ease-in-out infinite alternate;
}
.scn-baron-wolves-plan .table {
  position:absolute; bottom:30%; left:20%; width:60%; height:8%; background: linear-gradient(180deg, #5a3a20, #3a2210); border-radius:2px;
  box-shadow:0 4px 8px rgba(0,0,0,.5); animation: bwp-table 8s ease-in-out infinite alternate;
}
.scn-baron-wolves-plan .map {
  position:absolute; bottom:33%; left:30%; width:40%; height:12%; background: linear-gradient(135deg, #8a6a3a, #6a4a2a); border-radius:4px;
  transform: rotate(-5deg); box-shadow:0 2px 6px rgba(0,0,0,.4); animation: bwp-map 10s ease-in-out infinite alternate;
}
.scn-baron-wolves-plan .figure {
  position:absolute; bottom:25%; left:35%; 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: bwp-figure 4s ease-in-out infinite;
}
.scn-baron-wolves-plan .wolf {
  position:absolute; bottom:28%; left:48%; width:40px; height:40px; background: #2a2a2a;
  border-radius: 50% 50% 0 50%; transform: rotate(-30deg); animation: bwp-wolf 6s ease-in-out infinite;
}
.scn-baron-wolves-plan .fire-glow {
  position:absolute; bottom:38%; left:50%; width:30px; height:30px;
  background: radial-gradient(circle, #c08040 0%, #8a4a1a 50%, transparent 100%); border-radius:50%;
  box-shadow: 0 0 30px 15px rgba(192,128,64,.5); animation: bwp-fire 2s ease-in-out infinite alternate;
}
.scn-baron-wolves-plan .shadow {
  position:absolute; bottom:0; left:0; right:0; height:30%;
  background: linear-gradient(180deg, transparent 0%, #0a0a0a 100%); animation: bwp-shadow 10s ease-in-out infinite alternate;
}
@keyframes bwp-bg { 0% { opacity:.85 } 50% { opacity:1 } 100% { opacity:.8 } }
@keyframes bwp-table { 0% { transform: translateY(0) } 50% { transform: translateY(-2px) } 100% { transform: translateY(0) } }
@keyframes bwp-map { 0% { transform: rotate(-5deg) translateY(0) } 50% { transform: rotate(-6deg) translateY(-1px) } 100% { transform: rotate(-5deg) translateY(0) } }
@keyframes bwp-figure { 0% { transform: translate(0,0) rotate(-2deg) } 50% { transform: translate(2px,-1px) rotate(1deg) } 100% { transform: translate(0,0) rotate(-2deg) } }
@keyframes bwp-wolf { 0% { transform: rotate(-30deg) scale(1) } 50% { transform: rotate(-30deg) scale(1.02) } 100% { transform: rotate(-30deg) scale(1) } }
@keyframes bwp-fire { 0% { opacity:0.8; transform:scale(1) } 50% { opacity:1; transform:scale(1.1) } 100% { opacity:0.8; transform:scale(1) } }
@keyframes bwp-shadow { 0% { opacity:0.5 } 50% { opacity:0.7 } 100% { opacity:0.5 } }

/* Scene: baron-anxiety (tense dim interior) */
.scn-baron-anxiety {
  background: linear-gradient(180deg, #1a222e 0%, #2a3a4a 100%), radial-gradient(ellipse at 50% 30%, #3a4a5a 0%, transparent 70%);
}
.scn-baron-anxiety .bg {
  position:absolute; inset:0; background: radial-gradient(ellipse at 60% 20%, rgba(180,200,220,.05) 0%, transparent 70%);
  animation: ban-bg 15s linear infinite alternate;
}
.scn-baron-anxiety .man {
  position:absolute; bottom:30%; left:40%; width:30%; height:50%; background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: ban-man 4s ease-in-out infinite;
}
.scn-baron-anxiety .woman {
  position:absolute; bottom:30%; left:30%; width:25%; height:45%; background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: ban-woman 4.5s ease-in-out infinite;
}
.scn-baron-anxiety .chair {
  position:absolute; bottom:25%; left:25%; width:35%; height:15%; background: linear-gradient(180deg, #3a3a4a, #2a2a3a);
  border-radius:4px; box-shadow:0 4px 8px rgba(0,0,0,.5); animation: ban-chair 8s ease-in-out infinite alternate;
}
.scn-baron-anxiety .candle {
  position:absolute; bottom:38%; left:50%; width:8px; height:20px; background: linear-gradient(180deg, #c0b0a0, #8a7a6a);
  border-radius:2px; box-shadow: 0 0 10px 5px rgba(190,180,170,.3); animation: ban-candle 3s ease-in-out infinite alternate;
}
.scn-baron-anxiety .shadow-bar {
  position:absolute; top:0; left:10%; width:5px; height:100%;
  background: linear-gradient(180deg, #0a0a1a, transparent); animation: ban-bar 12s linear infinite;
}
@keyframes ban-bg { 0% { opacity:0.6 } 50% { opacity:0.8 } 100% { opacity:0.6 } }
@keyframes ban-man { 0% { transform: translate(0,0) rotate(-2deg) } 50% { transform: translate(2px,-1px) rotate(2deg) } 100% { transform: translate(0,0) rotate(-2deg) } }
@keyframes ban-woman { 0% { transform: translate(0,0) rotate(1deg) } 50% { transform: translate(-1px,1px) rotate(-1deg) } 100% { transform: translate(0,0) rotate(1deg) } }
@keyframes ban-chair { 0% { transform: translateY(0) } 50% { transform: translateY(-2px) } 100% { transform: translateY(0) } }
@keyframes ban-candle { 0% { opacity:0.7; transform: scaleY(1) } 50% { opacity:1; transform: scaleY(1.05) } 100% { opacity:0.7; transform: scaleY(1) } }
@keyframes ban-bar { 0% { transform: translateX(0) } 50% { transform: translateX(-5px) } 100% { transform: translateX(0) } }

/* Scene: baron-model-husband (tense dim interior) */
.scn-baron-model-husband {
  background: linear-gradient(180deg, #1a120e 0%, #2a1a10 60%, #3a2216 100%), radial-gradient(ellipse at 50% 50%, #5a3a2a 0%, transparent 70%);
}
.scn-baron-model-husband .bg {
  position:absolute; inset:0; background: radial-gradient(ellipse at 40% 40%, rgba(150,120,80,.06) 0%, transparent 70%);
  animation: bmh-bg 14s ease-in-out infinite alternate;
}
.scn-baron-model-husband .hands-left {
  position:absolute; bottom:40%; left:30%; width:20%; height:30%; background: linear-gradient(180deg, #2a1a10, #1a0a00);
  border-radius: 50% 50% 30% 30% / 40% 40% 30% 30%; transform-origin: bottom; animation: bmh-hl 4s ease-in-out infinite;
}
.scn-baron-model-husband .hands-right {
  position:absolute; bottom:40%; left:50%; width:20%; height:30%; background: linear-gradient(180deg, #1a0a00, #0a0000);
  border-radius: 50% 50% 30% 30% / 40% 40% 30% 30%; transform-origin: bottom; animation: bmh-hr 4.2s ease-in-out infinite;
}
.scn-baron-model-husband .table {
  position:absolute; bottom:30%; left:20%; width:60%; height:10%; background: linear-gradient(180deg, #4a3020, #2a1a10);
  border-radius:2px; box-shadow:0 4px 8px rgba(0,0,0,.5); animation: bmh-table 8s ease-in-out infinite alternate;
}
.scn-baron-model-husband .lamp {
  position:absolute; bottom:36%; left:55%; width:12px; height:24px; background: linear-gradient(180deg, #8a7a6a, #5a4a3a);
  border-radius:2px; box-shadow: 0 0 15px 5px rgba(200,180,150,.4); animation: bmh-lamp 3s ease-in-out infinite alternate;
}
.scn-baron-model-husband .glow {
  position:absolute; bottom:30%; left:55%; width:60px; height:60px;
  background: radial-gradient(circle, rgba(200,180,150,.4) 0%, transparent 100%); border-radius:50%;
  animation: bmh-glow 4s ease-in-out infinite alternate;
}
@keyframes bmh-bg { 0% { opacity:.8 } 50% { opacity:1 } 100% { opacity:.75 } }
@keyframes bmh-hl { 0% { transform: translate(0,0) rotate(-3deg) } 50% { transform: translate(3px,-2px) rotate(2deg) } 100% { transform: translate(0,0) rotate(-3deg) } }
@keyframes bmh-hr { 0% { transform: translate(0,0) rotate(3deg) } 50% { transform: translate(-2px,-1px) rotate(-2deg) } 100% { transform: translate(0,0) rotate(3deg) } }
@keyframes bmh-table { 0% { transform: translateY(0) } 50% { transform: translateY(-2px) } 100% { transform: translateY(0) } }
@keyframes bmh-lamp { 0% { opacity:0.8; transform: scaleY(1) } 50% { opacity:1; transform: scaleY(1.1) } 100% { opacity:0.8; transform: scaleY(1) } }
@keyframes bmh-glow { 0% { opacity:0.5; transform: scale(1) } 50% { opacity:0.8; transform: scale(1.2) } 100% { opacity:0.5; transform: scale(1) } }

/* Scene: baron-luxuriating (calm dim interior) */
.scn-baron-luxuriating {
  background: linear-gradient(180deg, #1a1612 0%, #2a1e16 50%, #3a2a1e 100%), radial-gradient(ellipse at 50% 40%, #5a3a2a 0%, transparent 70%);
}
.scn-baron-luxuriating .bg {
  position:absolute; inset:0; background: radial-gradient(ellipse at 60% 30%, rgba(200,170,130,.05) 0%, transparent 70%);
  animation: blx-bg 16s ease-in-out infinite alternate;
}
.scn-baron-luxuriating .chaise {
  position:absolute; bottom:20%; left:20%; width:60%; height:25%; background: linear-gradient(180deg, #4a3020, #2a1a10);
  border-radius: 30% 30% 10% 10% / 50% 50% 10% 10%; box-shadow: inset 0 -10px 20px rgba(0,0,0,.4);
  animation: blx-chaise 10s ease-in-out infinite alternate;
}
.scn-baron-luxuriating .figure {
  position:absolute; bottom:28%; left:30%; width:30%; height:40%; background: linear-gradient(180deg, #2a1a10, #1a0a00);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: blx-figure 5s ease-in-out infinite;
}
.scn-baron-luxuriating .drape-left {
  position:absolute; top:0; left:0; width:30%; height:100%; background: linear-gradient(90deg, #4a3020, transparent);
  animation: blx-dl 12s ease-in-out infinite alternate;
}
.scn-baron-luxuriating .drape-right {
  position:absolute; top:0; right:0; width:30%; height:100%; background: linear-gradient(-90deg, #4a3020, transparent);
  animation: blx-dr 12s ease-in-out infinite alternate;
}
.scn-baron-luxuriating .soft-glow {
  position:absolute; bottom:30%; left:40%; width:80px; height:80px;
  background: radial-gradient(circle, rgba(200,180,150,.3) 0%, transparent 100%); border-radius:50%;
  animation: blx-glow 6s ease-in-out infinite alternate;
}
.scn-baron-luxuriating .vase {
  position:absolute; bottom:25%; left:70%; width:15%; height:30%; background: linear-gradient(180deg, #6a4a3a, #3a2a1a);
  border-radius: 20% 20% 30% 30% / 40% 40% 20% 20%; box-shadow: 0 2px 6px rgba(0,0,0,.5);
  animation: blx-vase 8s ease-in-out infinite alternate;
}
@keyframes blx-bg { 0% { opacity:.8 } 50% { opacity:1 } 100% { opacity:.85 } }
@keyframes blx-chaise { 0% { transform: translateY(0) } 50% { transform: translateY(-2px) } 100% { transform: translateY(0) } }
@keyframes blx-figure { 0% { transform: translate(0,0) rotate(-1deg) } 50% { transform: translate(2px,-1px) rotate(1deg) } 100% { transform: translate(0,0) rotate(-1deg) } }
@keyframes blx-dl { 0% { opacity:0.8; transform: translateX(0) } 50% { opacity:1; transform: translateX(5px) } 100% { opacity:0.8; transform: translateX(0) } }
@keyframes blx-dr { 0% { opacity:0.8; transform: translateX(0) } 50% { opacity:1; transform: translateX(-5px) } 100% { opacity:0.8; transform: translateX(0) } }
@keyframes blx-glow { 0% { opacity:0.3; transform: scale(1) } 50% { opacity:0.6; transform: scale(1.1) } 100% { opacity:0.3; transform: scale(1) } }
@keyframes blx-vase { 0% { transform: translateY(0) rotate(-1deg) } 50% { transform: translateY(-1px) rotate(1deg) } 100% { transform: translateY(0) rotate(-1deg) } }

.scn-item-champagne-glasses {
  background: linear-gradient(180deg, #f5e6ca 0%, #e8c9a0 50%, #d4a76a 100%), radial-gradient(ellipse at 50% 0%, #fff9e6 0%, transparent 60%);
}
.scn-item-champagne-glasses .bg-warm {
  position:absolute; inset:0; background: radial-gradient(ellipse at 50% 20%, rgba(255,235,200,0.5) 0%, transparent 70%); animation: cg-bg 12s ease-in-out infinite alternate;
}
.scn-item-champagne-glasses .table {
  position:absolute; bottom:15%; left:10%; right:10%; height:15%; background: linear-gradient(180deg, #b58a5f 0%, #8b5e3c 100%); border-radius: 4px; box-shadow: 0 8px 20px rgba(0,0,0,0.3); animation: cg-table 8s ease-in-out infinite;
}
.scn-item-champagne-glasses .champagne-glass.left {
  position:absolute; bottom:25%; left:30%; width:12px; height:24px; background: radial-gradient(ellipse at 50% 10%, #f0e6c8 0%, #d4c4a8 70%); border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%; box-shadow: 0 0 6px rgba(255,235,150,0.8); animation: cg-glass 4s ease-in-out infinite;
}
.scn-item-champagne-glasses .champagne-glass.right {
  position:absolute; bottom:25%; right:30%; width:12px; height:24px; background: radial-gradient(ellipse at 50% 10%, #f0e6c8 0%, #d4c4a8 70%); border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%; box-shadow: 0 0 6px rgba(255,235,150,0.8); animation: cg-glass 4s ease-in-out infinite 2s;
}
.scn-item-champagne-glasses .chandelier {
  position:absolute; top:5%; left:50%; transform: translateX(-50%); width:60px; height:20px; background: radial-gradient(ellipse at 50% 100%, #d4af37 0%, #b8962e 50%, #8b6914 100%); border-radius: 50% 50% 20% 20% / 80% 80% 20% 20%; box-shadow: 0 0 30px 10px rgba(255,215,0,0.6); animation: cg-chandelier 6s ease-in-out infinite alternate;
}
.scn-item-champagne-glasses .glow {
  position:absolute; top:10%; left:40%; width:20%; height:20%; background: radial-gradient(circle, rgba(255,230,150,0.4) 0%, transparent 60%); animation: cg-glow 3s ease-in-out infinite alternate;
}
.scn-item-champagne-glasses .curtain-left {
  position:absolute; top:0; left:0; width:15%; height:100%; background: linear-gradient(180deg, #8b1a1a 0%, #5e0e0e 100%); border-radius: 0 60% 60% 0 / 0 80% 80% 0; transform-origin: left; animation: cg-curtain 20s ease-in-out infinite alternate;
}
.scn-item-champagne-glasses .curtain-right {
  position:absolute; top:0; right:0; width:15%; height:100%; background: linear-gradient(180deg, #8b1a1a 0%, #5e0e0e 100%); border-radius: 60% 0 0 60% / 80% 0 0 80%; transform-origin: right; animation: cg-curtain 20s ease-in-out infinite alternate 10s;
}
@keyframes cg-bg { 0% { opacity:0.8; } 50% { opacity:1; } 100% { opacity:0.7; } }
@keyframes cg-table { 0%,100% { transform: translateY(0); } 50% { transform: translateY(-2px); } }
@keyframes cg-glass { 0%,100% { transform: rotate(0deg) scale(1); } 50% { transform: rotate(5deg) scale(1.05); } }
@keyframes cg-chandelier { 0% { transform: translateX(-50%) rotate(-2deg); } 50% { transform: translateX(-50%) rotate(2deg); } 100% { transform: translateX(-50%) rotate(-2deg); } }
@keyframes cg-glow { 0% { opacity:0.3; transform: scale(1); } 50% { opacity:0.7; transform: scale(1.2); } 100% { opacity:0.4; transform: scale(1.1); } }
@keyframes cg-curtain { 0% { transform: scaleX(1); } 50% { transform: scaleX(0.95); } 100% { transform: scaleX(1); } }

.scn-supper-champagne {
  background: linear-gradient(180deg, #fce4b8 0%, #f0d4a0 50%, #d4a86a 100%), radial-gradient(ellipse at 50% 80%, #fff5e0 0%, transparent 60%);
}
.scn-supper-champagne .bg-warm {
  position:absolute; inset:0; background: radial-gradient(ellipse at 50% 30%, rgba(255,235,200,0.3) 0%, transparent 70%); animation: sc-bg 10s ease-in-out infinite;
}
.scn-supper-champagne .table {
  position:absolute; bottom:15%; left:15%; right:15%; height:12%; background: linear-gradient(180deg, #c89a6e 0%, #a0704a 100%); border-radius: 4px; box-shadow: 0 6px 16px rgba(0,0,0,0.3); animation: sc-table 6s ease-in-out infinite;
}
.scn-supper-champagne .figure-woman {
  position:absolute; bottom:20%; left:35%; width:30px; height:50px; background: linear-gradient(180deg, #1a1a2e 0%, #0f0f1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom; animation: sc-woman 4s ease-in-out infinite;
}
.scn-supper-champagne .figure-baron {
  position:absolute; bottom:20%; right:30%; width:40px; height:55px; background: linear-gradient(180deg, #2a2a3e 0%, #1a1a2e 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom; animation: sc-baron 4s ease-in-out infinite 1s;
}
.scn-supper-champagne .glass-left {
  position:absolute; bottom:25%; left:45%; width:10px; height:20px; background: radial-gradient(ellipse at 50% 10%, #f0e6c8 0%, #d4c4a8 70%); border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%; box-shadow: 0 0 4px rgba(255,235,150,0.6); animation: sc-glass 3s ease-in-out infinite;
}
.scn-supper-champagne .glass-right {
  position:absolute; bottom:25%; left:55%; width:10px; height:20px; background: radial-gradient(ellipse at 50% 10%, #f0e6c8 0%, #d4c4a8 70%); border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%; box-shadow: 0 0 4px rgba(255,235,150,0.6); animation: sc-glass 3s ease-in-out infinite 1.5s;
}
.scn-supper-champagne .sparkle {
  position:absolute; top:20%; left:40%; width:4px; height:4px; background: rgba(255,255,200,0.9); border-radius:50%; box-shadow: 0 0 8px 2px rgba(255,255,200,0.6); animation: sc-sparkle 2s ease-in-out infinite;
}
@keyframes sc-bg { 0% { opacity:0.9; } 50% { opacity:1; } 100% { opacity:0.8; } }
@keyframes sc-table { 0%,100% { transform: translateY(0); } 50% { transform: translateY(-2px); } }
@keyframes sc-woman { 0%,100% { transform: rotate(0deg) scale(1); } 50% { transform: rotate(-3deg) scale(1.02); } }
@keyframes sc-baron { 0%,100% { transform: rotate(0deg) scale(1); } 50% { transform: rotate(2deg) scale(1.05); } }
@keyframes sc-glass { 0%,100% { transform: rotate(0deg) translateY(0); } 50% { transform: rotate(5deg) translateY(-2px); } }
@keyframes sc-sparkle { 0% { opacity:0; transform: scale(0.5); } 50% { opacity:1; transform: scale(1.5); } 100% { opacity:0; transform: scale(0.5); } }

.scn-after-supper-music {
  background: linear-gradient(180deg, #1a1a2e 0%, #0f0f1a 50%, #2a2a3e 100%), radial-gradient(ellipse at 50% 60%, #3a3a4e 0%, transparent 70%);
}
.scn-after-supper-music .bg-dim {
  position:absolute; inset:0; background: linear-gradient(180deg, rgba(0,0,0,0.3) 0%, transparent 100%); animation: as-bg 15s ease-in-out infinite alternate;
}
.scn-after-supper-music .piano {
  position:absolute; bottom:10%; left:10%; right:60%; height:40%; background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%); border-radius: 20% 20% 10% 10% / 60% 60% 40% 40%; box-shadow: 0 0 20px rgba(0,0,0,0.5); animation: as-piano 6s ease-in-out infinite;
}
.scn-after-supper-music .figure-baron {
  position:absolute; bottom:15%; right:15%; width:40px; height:60px; background: linear-gradient(180deg, #0a0a1a 0%, #1a1a2a 100%); border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%; transform: rotate(5deg); animation: as-baron 4s ease-in-out infinite;
}
.scn-after-supper-music .chair {
  position:absolute; bottom:10%; right:10%; width:60px; height:50px; background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%); border-radius: 10% 10% 20% 20%; box-shadow: inset 0 -10px 20px rgba(0,0,0,0.5); animation: as-chair 5s ease-in-out infinite;
}
.scn-after-supper-music .candle {
  position:absolute; bottom:30%; left:20%; width:6px; height:20px; background: linear-gradient(180deg, #f0d090 0%, #d4a040 100%); border-radius: 2px; box-shadow: 0 0 20px 6px rgba(255,200,100,0.6); animation: as-candle 3s ease-in-out infinite alternate;
}
.scn-after-supper-music .shadow {
  position:absolute; bottom:0; left:0; right:0; height:20%; background: linear-gradient(180deg, transparent 0%, rgba(0,0,0,0.5) 100%); animation: as-shadow 8s ease-in-out infinite alternate;
}
@keyframes as-bg { 0% { opacity:0.7; } 50% { opacity:1; } 100% { opacity:0.8; } }
@keyframes as-piano { 0%,100% { transform: scale(1); } 50% { transform: scale(0.98) translateY(2px); } }
@keyframes as-baron { 0% { transform: rotate(5deg) scale(1); } 50% { transform: rotate(8deg) scale(1.05); } 100% { transform: rotate(5deg) scale(1); } }
@keyframes as-candle { 0% { opacity:0.6; box-shadow: 0 0 15px 4px rgba(255,200,100,0.4); } 50% { opacity:1; box-shadow: 0 0 25px 8px rgba(255,200,100,0.7); } 100% { opacity:0.7; box-shadow: 0 0 18px 5px rgba(255,200,100,0.5); } }
@keyframes as-shadow { 0% { opacity:0.3; } 50% { opacity:0.6; } 100% { opacity:0.4; } }
@keyframes as-chair { 0% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-3px) rotate(-2deg); } 100% { transform: translateY(0) rotate(0deg); } }

.scn-piano-song {
  background: linear-gradient(180deg, #2a2a3e 0%, #1a1a2e 50%, #3a3a4e 100%), radial-gradient(ellipse at 50% 60%, #4a4a5e 0%, transparent 70%);
}
.scn-piano-song .bg-dim {
  position:absolute; inset:0; background: radial-gradient(ellipse at 50% 40%, rgba(255,220,180,0.1) 0%, transparent 70%); animation: ps-bg 20s ease-in-out infinite alternate;
}
.scn-piano-song .piano {
  position:absolute; bottom:10%; left:20%; right:20%; height:35%; background: linear-gradient(180deg, #1a1a2e 0%, #0f0f1a 100%); border-radius: 30% 30% 10% 10% / 60% 60% 40% 40%; box-shadow: 0 0 30px rgba(0,0,0,0.5); animation: ps-piano 10s ease-in-out infinite;
}
.scn-piano-song .figure-woman {
  position:absolute; bottom:20%; left:35%; width:35px; height:55px; background: linear-gradient(180deg, #2a2a3e 0%, #1a1a2e 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom; animation: ps-woman 8s ease-in-out infinite;
}
.scn-piano-song .music-stand {
  position:absolute; bottom:25%; left:48%; width:20px; height:30px; background: linear-gradient(180deg, #3a3a4e 0%, #2a2a3e 100%); border-radius: 4px; transform: rotate(-5deg); animation: ps-stand 12s ease-in-out infinite;
}
.scn-piano-song .glow {
  position:absolute; top:15%; left:30%; width:40%; height:30%; background: radial-gradient(ellipse, rgba(255,200,150,0.15) 0%, transparent 60%); animation: ps-glow 9s ease-in-out infinite alternate;
}
.scn-piano-song .keys {
  position:absolute; bottom:12%; left:25%; right:25%; height:8%; background: linear-gradient(180deg, #ccc 0%, #aaa 100%); border-radius: 2px; box-shadow: 0 2px 4px rgba(0,0,0,0.5); animation: ps-keys 4s ease-in-out infinite;
}
.scn-piano-song .note {
  position:absolute; top:30%; right:30%; width:10px; height:10px; background: rgba(255,200,200,0.3); border-radius: 50%; filter: blur(2px); animation: ps-note 15s linear infinite;
}
@keyframes ps-bg { 0% { opacity:0.5; } 50% { opacity:0.8; } 100% { opacity:0.6; } }
@keyframes ps-piano { 0%,100% { transform: scale(1); } 50% { transform: scale(0.99) translateY(1px); } }
@keyframes ps-woman { 0% { transform: rotate(0deg) scale(1); } 50% { transform: rotate(-1deg) scale(1.01); } 100% { transform: rotate(0deg) scale(1); } }
@keyframes ps-stand { 0% { transform: rotate(-5deg) translateY(0); } 50% { transform: rotate(-3deg) translateY(-2px); } 100% { transform: rotate(-5deg) translateY(0); } }
@keyframes ps-glow { 0% { opacity:0.1; } 50% { opacity:0.3; } 100% { opacity:0.15; } }
@keyframes ps-keys { 0% { opacity:0.7; } 50% { opacity:1; } 100% { opacity:0.8; } }
@keyframes ps-note { 0% { transform: translateY(0) scale(1); opacity:0; } 25% { opacity:0.5; } 50% { transform: translateY(-50px) scale(1.2); opacity:0.3; } 75% { opacity:0.1; } 100% { transform: translateY(-100px) scale(0.8); opacity:0; } }

.scn-storytelling-continuation {
  background:
    linear-gradient(180deg, #f5e6d3 0%, #d9c4a8 40%, #b8977a 70%, #8c6e54 100%),
    radial-gradient(ellipse at 30% 20%, rgba(255,230,180,0.4) 0%, transparent 60%),
    linear-gradient(90deg, #c8b298 0%, #e2d0b8 50%, #c8b298 100%);
}
.scn-storytelling-continuation .room-wall {
  position:absolute; inset:0; background: linear-gradient(135deg, #d9c4a8 0%, #c0a68b 50%, #a88a6e 100%);
  animation: stc-wall 20s ease-in-out infinite alternate;
}
.scn-storytelling-continuation .window-frame {
  position:absolute; top:5%; left:12%; width:25%; height:45%; border:12px solid #7a5c3e; box-shadow: inset 0 0 20px rgba(255,200,150,0.3);
  border-radius:4px; background: transparent;
  animation: stc-frame 8s ease-in-out infinite alternate;
}
.scn-storytelling-continuation .window-glass {
  position:absolute; top:5%; left:12%; width:25%; height:45%; background: linear-gradient(180deg, #fdf4e8 0%, #e8d5b8 100%);
  opacity:0.3; box-shadow: inset 0 0 30px #ffe0b0;
  animation: stc-glass 6s ease-in-out infinite alternate;
}
.scn-storytelling-continuation .chair {
  position:absolute; bottom:8%; left:35%; width:22%; height:50%; background: linear-gradient(180deg, #5a3d2e 0%, #3e2a1e 100%);
  border-radius:10% 10% 20% 20% / 20% 20% 40% 40%;
  box-shadow: 8px 0 12px rgba(0,0,0,0.3);
  animation: stc-chair 12s ease-in-out infinite;
}
.scn-storytelling-continuation .table {
  position:absolute; bottom:8%; left:55%; width:30%; height:20%; background: linear-gradient(180deg, #8c6e54 0%, #6a4e38 100%);
  border-radius:8% 8% 4% 4%; box-shadow: 0 -6px 10px rgba(0,0,0,0.2);
  animation: stc-table 14s ease-in-out infinite alternate;
}
.scn-storytelling-continuation .book {
  position:absolute; bottom:20%; left:62%; width:8%; height:12%; background: linear-gradient(135deg, #d4b896 0%, #b8986e 100%);
  border-radius:4px; transform: rotate(5deg); box-shadow: 2px 2px 6px rgba(0,0,0,0.3);
  animation: stc-book 4s ease-in-out infinite;
}
.scn-storytelling-continuation .figure-silhouette {
  position:absolute; bottom:8%; left:38%; width:14%; height:45%; background: linear-gradient(180deg, #2a1e14 0%, #1a100a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: stc-figure 3s ease-in-out infinite alternate;
}
.scn-storytelling-continuation .lamp-light {
  position:absolute; bottom:30%; left:42%; width:6%; height:6%; background: radial-gradient(circle, #ffe280 0%, #d9a04a 50%, transparent 100%);
  border-radius:50%; box-shadow: 0 0 40px 20px rgba(255,200,100,0.6);
  animation: stc-lamp 5s ease-in-out infinite alternate;
}
.scn-storytelling-continuation .sunbeam {
  position:absolute; top:5%; left:15%; width:20%; height:60%; background: linear-gradient(180deg, rgba(255,230,180,0.5) 0%, transparent 80%);
  filter: blur(8px); transform: rotate(12deg); transform-origin: top left;
  animation: stc-beam 25s linear infinite alternate;
}
@keyframes stc-wall { 0% { opacity:0.9 } 50% { opacity:1 } 100% { opacity:0.85 } }
@keyframes stc-frame { 0% { transform: translateX(0) } 50% { transform: translateX(2px) } 100% { transform: translateX(0) } }
@keyframes stc-glass { 0% { opacity:0.25; transform: scale(1) } 50% { opacity:0.35; transform: scale(1.01) } 100% { opacity:0.3; transform: scale(1) } }
@keyframes stc-chair { 0% { transform: translateY(0) rotate(0deg) } 25% { transform: translateY(-2px) rotate(0.5deg) } 50% { transform: translateY(0) rotate(0deg) } 75% { transform: translateY(-1px) rotate(-0.5deg) } 100% { transform: translateY(0) rotate(0deg) } }
@keyframes stc-table { 0% { transform: translateY(0) scale(1) } 50% { transform: translateY(-1px) scale(1.005) } 100% { transform: translateY(0) scale(1) } }
@keyframes stc-book { 0% { transform: rotate(3deg) translateY(0) } 25% { transform: rotate(5deg) translateY(-1px) } 50% { transform: rotate(4deg) translateY(0) } 75% { transform: rotate(6deg) translateY(-0.5px) } 100% { transform: rotate(3deg) translateY(0) } }
@keyframes stc-figure { 0% { transform: translateY(0) rotate(-0.5deg) scaleY(1) } 50% { transform: translateY(-2px) rotate(0.5deg) scaleY(1.005) } 100% { transform: translateY(0) rotate(-0.5deg) scaleY(1) } }
@keyframes stc-lamp { 0% { box-shadow: 0 0 30px 15px rgba(255,200,100,0.4); opacity:0.8 } 50% { box-shadow: 0 0 50px 25px rgba(255,200,100,0.7); opacity:1 } 100% { box-shadow: 0 0 40px 20px rgba(255,200,100,0.5); opacity:0.9 } }
@keyframes stc-beam { 0% { transform: rotate(10deg) translateX(0); opacity:0.3 } 50% { transform: rotate(14deg) translateX(5px); opacity:0.5 } 100% { transform: rotate(10deg) translateX(0); opacity:0.3 } }

/* baron-effusive */
.scn-baron-effusive {
  background: 
    linear-gradient(180deg, #2a1a0a 0%, #4a3a2a 50%, #3a2a1a 100%),
    radial-gradient(ellipse at 50% 100%, #5a4a3a 0%, transparent 70%);
  position: relative;
  overflow: hidden;
}
.scn-baron-effusive .wall {
  position: absolute;
  inset: 0 0 40% 0;
  background: linear-gradient(180deg, #4a3a2a 0%, #3a2a1a 100%);
  border-radius: 0 0 20% 20% / 0 0 10% 10%;
  box-shadow: inset 0 8px 30px rgba(0,0,0,0.6);
  animation: be-wall 18s ease-in-out infinite alternate;
}
.scn-baron-effusive .floor {
  position: absolute;
  bottom: 0;
  left: 0; right: 0;
  height: 40%;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a1008 100%);
  border-radius: 10% 10% 0 0 / 20% 20% 0 0;
  box-shadow: inset 0 -8px 20px rgba(0,0,0,0.8);
}
.scn-baron-effusive .window {
  position: absolute;
  top: 15%;
  left: 65%;
  width: 60px;
  height: 80px;
  background: linear-gradient(180deg, #0a0a1a 0%, #1a1a2e 100%);
  border: 6px solid #5a4a3a;
  border-radius: 4px;
  box-shadow: inset 0 0 20px rgba(0,0,0,0.5);
  animation: be-window 12s ease-in-out infinite alternate;
}
.scn-baron-effusive .lamp {
  position: absolute;
  bottom: 35%;
  left: 30%;
  width: 20px;
  height: 30px;
  background: radial-gradient(circle at 50% 40%, #ffd080 0%, #b08040 70%);
  border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%;
  box-shadow: 0 0 40px 10px #d09050, 0 0 80px 20px rgba(200,140,80,0.3);
  animation: be-lamp-glow 3s ease-in-out infinite alternate;
}
.scn-baron-effusive .table {
  position: absolute;
  bottom: 20%;
  left: 35%;
  width: 80px;
  height: 20px;
  background: linear-gradient(180deg, #6a4a3a 0%, #3a2a1a 100%);
  border-radius: 4px 4px 0 0;
  box-shadow: 0 6px 12px rgba(0,0,0,0.6);
}
.scn-baron-effusive .figure {
  position: absolute;
  bottom: 22%;
  left: 40%;
  width: 40px;
  height: 80px;
  background: linear-gradient(180deg, #1a1a0a 0%, #0a0a00 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: be-figure 8s ease-in-out infinite;
}
.scn-baron-effusive .figure::after {
  content: '';
  position: absolute;
  top: 10%;
  left: -10%;
  width: 15px;
  height: 20px;
  background: linear-gradient(135deg, #1a1a0a 40%, #3a2a1a 60%);
  border-radius: 50% 0 50% 0 / 60% 0 40% 0;
  transform: rotate(10deg);
}
.scn-baron-effusive .book {
  position: absolute;
  bottom: 18%;
  left: 42%;
  width: 25px;
  height: 8px;
  background: linear-gradient(180deg, #c8a060 0%, #a08040 100%);
  border-radius: 2px;
  box-shadow: 0 2px 4px rgba(0,0,0,0.5);
  animation: be-book 6s ease-in-out infinite;
}
@keyframes be-wall {
  0% { opacity: 0.8; transform: scaleX(1); }
  50% { opacity: 1; transform: scaleX(1.02); }
  100% { opacity: 0.85; transform: scaleX(0.98); }
}
@keyframes be-window {
  0% { background: linear-gradient(180deg, #0a0a1a 0%, #1a1a2e 100%); }
  50% { background: linear-gradient(180deg, #1a1a2e 0%, #2a2a4e 100%); }
  100% { background: linear-gradient(180deg, #0a0a1a 0%, #151530 100%); }
}
@keyframes be-lamp-glow {
  0% { box-shadow: 0 0 30px 8px #d09050, 0 0 60px 15px rgba(200,140,80,0.2); opacity: 0.8; }
  50% { box-shadow: 0 0 50px 12px #ffd080, 0 0 100px 25px rgba(200,140,80,0.5); opacity: 1; }
  100% { box-shadow: 0 0 35px 10px #d09050, 0 0 70px 18px rgba(200,140,80,0.3); opacity: 0.85; }
}
@keyframes be-figure {
  0% { transform: translateX(0) translateY(0) rotate(0deg); }
  50% { transform: translateX(2px) translateY(-2px) rotate(2deg); }
  100% { transform: translateX(-2px) translateY(0) rotate(-1deg); }
}
@keyframes be-book {
  0% { transform: translateY(0) rotate(0deg); }
  50% { transform: translateY(-2px) rotate(3deg); }
  100% { transform: translateY(0) rotate(-2deg); }
}

/* aftermath-silence-sledge */
.scn-aftermath-silence-sledge {
  background: 
    linear-gradient(180deg, #0a0a1a 0%, #1a1a2e 40%, #2a2a4e 100%),
    radial-gradient(ellipse at 50% 0%, #4a4a6e 0%, transparent 70%);
  position: relative;
  overflow: hidden;
}
.scn-aftermath-silence-sledge .sky {
  position: absolute;
  inset: 0 0 60% 0;
  background: linear-gradient(180deg, #0a0a1a 0%, #1a1a2e 50%, #2a2a4e 100%);
  animation: as-sky 20s ease-in-out infinite alternate;
}
.scn-aftermath-silence-sledge .moon {
  position: absolute;
  top: 8%;
  right: 25%;
  width: 30px;
  height: 30px;
  background: radial-gradient(circle, #e0e0f0 0%, #a0a0c0 80%);
  border-radius: 50%;
  box-shadow: 0 0 40px 10px #c0c0e0, 0 0 80px 20px rgba(160,160,200,0.3);
  animation: as-moon 30s linear infinite alternate;
}
.scn-aftermath-silence-sledge .mountains {
  position: absolute;
  bottom: 35%;
  left: 0; right: 0;
  height: 25%;
  background: linear-gradient(180deg, #2a2a3e 0%, #1a1a2e 100%);
  clip-path: polygon(0% 100%, 10% 20%, 20% 40%, 35% 10%, 50% 30%, 65% 5%, 80% 35%, 90% 15%, 100% 50%, 100% 100%);
  animation: as-mountains 18s ease-in-out infinite alternate;
}
.scn-aftermath-silence-sledge .snow-ground {
  position: absolute;
  bottom: 0;
  left: 0; right: 0;
  height: 40%;
  background: linear-gradient(180deg, #f0f0ff 0%, #c0c0d0 30%, #8080a0 100%);
  border-radius: 30% 70% 0 0 / 40% 60% 0 0;
  box-shadow: inset 0 20px 40px rgba(0,0,0,0.3);
  animation: as-snow 12s ease-in-out infinite alternate;
}
.scn-aftermath-silence-sledge .sledge {
  position: absolute;
  bottom: 35%;
  left: 60%;
  width: 80px;
  height: 20px;
  background: linear-gradient(180deg, #0a0a0a 0%, #1a1a1a 100%);
  border-radius: 40% 10% 10% 40% / 60% 20% 20% 60%;
  box-shadow: 0 4px 8px rgba(0,0,0,0.6);
  transform-origin: center center;
  animation: as-sledge 20s linear infinite;
}
.scn-aftermath-silence-sledge .figure {
  position: absolute;
  bottom: 36%;
  left: 30%;
  width: 20px;
  height: 50px;
  background: linear-gradient(180deg, #0a0a0a 0%, #1a1a1a 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: as-figure 4s ease-in-out infinite;
}
.scn-aftermath-silence-sledge .figure::after {
  content: '';
  position: absolute;
  top: 5%;
  left: 50%;
  width: 14px;
  height: 14px;
  background: #1a1a1a;
  border-radius: 50%;
  transform: translateX(-50%);
}
.scn-aftermath-silence-sledge .snow-particle {
  position: absolute;
  bottom: 100%;
  width: 4px;
  height: 4px;
  background: rgba(255,255,255,0.6);
  border-radius: 50%;
  filter: blur(1px);
}
.scn-aftermath-silence-sledge .p1 {
  left: 20%;
  animation: as-snow-fall 10s linear infinite;
}
.scn-aftermath-silence-sledge .p2 {
  left: 70%;
  animation: as-snow-fall 14s linear infinite;
  animation-delay: 3s;
}
@keyframes as-sky {
  0% { opacity: 0.8; }
  50% { opacity: 1; }
  100% { opacity: 0.7; }
}
@keyframes as-moon {
  0% { transform: translateX(-10px) scale(0.95); opacity: 0.7; }
  50% { transform: translateX(0px) scale(1.05); opacity: 1; }
  100% { transform: translateX(10px) scale(0.9); opacity: 0.8; }
}
@keyframes as-mountains {
  0% { transform: translateY(0) scaleY(1); }
  50% { transform: translateY(-3px) scaleY(1.02); }
  100% { transform: translateY(2px) scaleY(0.98); }
}
@keyframes as-snow {
  0% { background: linear-gradient(180deg, #f0f0ff 0%, #c0c0d0 30%, #8080a0 100%); }
  50% { background: linear-gradient(180deg, #ffffff 0%, #d0d0e0 30%, #9090b0 100%); }
  100% { background: linear-gradient(180deg, #e0e0f0 0%, #b0b0c0 30%, #707090 100%); }
}
@keyframes as-sledge {
  0% { transform: translateX(0) scale(1); opacity: 1; }
  50% { transform: translateX(-30px) scale(0.9); opacity: 0.8; }
  100% { transform: translateX(-60px) scale(0.7); opacity: 0.5; }
}
@keyframes as-figure {
  0% { transform: translateY(0) rotate(0deg); }
  25% { transform: translateY(-2px) rotate(2deg); }
  50% { transform: translateY(-1px) rotate(-1deg); }
  75% { transform: translateY(-3px) rotate(1deg); }
  100% { transform: translateY(0) rotate(0deg); }
}
@keyframes as-snow-fall {
  0% { transform: translateY(0) translateX(0); opacity: 1; }
  50% { transform: translateY(50vh) translateX(10px); opacity: 0.7; }
  100% { transform: translateY(100vh) translateX(-5px); opacity: 0; }
}

.scn-storytelling-continuation {
  background: 
    linear-gradient(180deg, #f5f0e8 0%, #e8dfd0 60%, #c8b89a 100%),
    radial-gradient(ellipse at 30% 40%, rgba(255, 235, 200, 0.6) 0%, transparent 60%);
}
.scn-storytelling-continuation .room-bg {
  position: absolute; inset: 0; 
  background: linear-gradient(147deg, #faf6f0 0%, #e0d4c0 100%);
  box-shadow: inset 0 0 80px 20px rgba(0,0,0,0.08);
}
.scn-storytelling-continuation .window-light {
  position: absolute; top: 12%; left: 22%; width: 28%; height: 40%;
  background: radial-gradient(ellipse at 50% 60%, rgba(255,248,230,0.9) 0%, rgba(200,220,255,0.4) 50%, transparent 90%);
  border-radius: 4% / 6%;
  animation: stc-windowlight 9s ease-in-out infinite alternate;
}
.scn-storytelling-continuation .curtains-left {
  position: absolute; top: 10%; left: 18%; width: 12%; height: 48%;
  background: linear-gradient(90deg, #b89a7e 0%, #d4b896 40%, #c8a886 100%);
  border-radius: 20% 60% 40% 40% / 10% 20% 80% 90%;
  transform-origin: left center;
  animation: stc-curtains 14s ease-in-out infinite alternate;
}
.scn-storytelling-continuation .curtains-right {
  position: absolute; top: 10%; right: 18%; width: 12%; height: 48%;
  background: linear-gradient(270deg, #b89a7e 0%, #d4b896 40%, #c8a886 100%);
  border-radius: 60% 20% 40% 40% / 20% 10% 90% 80%;
  transform-origin: right center;
  animation: stc-curtains 14s ease-in-out infinite alternate-reverse;
}
.scn-storytelling-continuation .bookcase {
  position: absolute; bottom: 18%; right: 8%; width: 16%; height: 40%;
  background: linear-gradient(180deg, #8b6f47 0%, #6b4f2f 100%);
  border-radius: 2% 2% 6% 6%;
  box-shadow: inset 0 4px 12px rgba(0,0,0,0.3);
}
.scn-storytelling-continuation .bookcase::before {
  content: ""; position: absolute; top: 10%; left: 10%; width: 80%; height: 6%;
  background: #a8865a; border-radius: 1px; box-shadow: 0 220% 0 #a8865a, 0 440% 0 #a8865a;
}
.scn-storytelling-continuation .table {
  position: absolute; bottom: 16%; left: 28%; width: 30%; height: 14%;
  background: linear-gradient(160deg, #c8a886 0%, #a07858 100%);
  border-radius: 60% 60% 20% 20% / 80% 80% 40% 40%;
  box-shadow: 0 6px 20px rgba(0,0,0,0.15);
}
.scn-storytelling-continuation .chair {
  position: absolute; bottom: 16%; left: 34%; width: 14%; height: 32%;
  background: linear-gradient(135deg, #a0461a 0%, #7a3010 100%);
  border-radius: 30% 30% 20% 20% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: stc-chair 12s ease-in-out infinite;
}
.scn-storytelling-continuation .figure {
  position: absolute; bottom: 18%; left: 38%; width: 8%; height: 28%;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a1008 100%);
  border-radius: 50% 50% 40% 40% / 70% 70% 40% 40%;
  transform-origin: bottom center;
  animation: stc-figure 8s ease-in-out infinite;
}
.scn-storytelling-continuation .lamp-glow {
  position: absolute; bottom: 24%; left: 30%; width: 10px; height: 10px;
  background: radial-gradient(circle, #ffe7b5 0%, #ffd495 70%);
  border-radius: 50%;
  box-shadow: 0 0 40px 20px rgba(255, 212, 149, 0.6);
  animation: stc-lamp 6s ease-in-out infinite alternate;
}
@keyframes stc-windowlight {
  0% { opacity: 0.9; transform: scale(1, 1); }
  50% { opacity: 1; transform: scale(1.02, 1.01); }
  100% { opacity: 0.95; transform: scale(0.98, 1); }
}
@keyframes stc-curtains {
  0% { transform: rotate(0deg) translateX(0); }
  50% { transform: rotate(2deg) translateX(3px); }
  100% { transform: rotate(-2deg) translateX(-2px); }
}
@keyframes stc-chair {
  0% { transform: translateY(0); }
  50% { transform: translateY(-2px); }
  100% { transform: translateY(0); }
}
@keyframes stc-figure {
  0% { transform: translateY(0) rotate(0deg) scale(1); }
  33% { transform: translateY(-1px) rotate(0.5deg) scale(1.005); }
  66% { transform: translateY(0) rotate(-0.3deg) scale(0.997); }
  100% { transform: translateY(0) rotate(0deg) scale(1); }
}
@keyframes stc-lamp {
  0% { box-shadow: 0 0 30px 10px rgba(255, 212, 149, 0.4); }
  50% { box-shadow: 0 0 50px 25px rgba(255, 212, 149, 0.7); }
  100% { box-shadow: 0 0 35px 15px rgba(255, 212, 149, 0.45); }
}

/* one block per scene id. Append to style.css. */
.scn-baron-effusive {
  background: 
    linear-gradient(180deg, #1a1510 0%, #2d2018 40%, #3a2a1e 70%, #1f1410 100%),
    radial-gradient(ellipse at 60% 70%, #3a2a1e 0%, transparent 60%);
}
.scn-baron-effusive .bg {
  position: absolute; inset: 0; 
  background: linear-gradient(180deg, rgba(20,16,12,.5) 0%, transparent 50%);
  animation: be-ambient 12s ease-in-out infinite alternate;
}
.scn-baron-effusive .wall {
  position: absolute; inset: 5% 10% 30% 10%; 
  background: linear-gradient(135deg, #3a2a1e 0%, #2a1a14 100%);
  border-radius: 4% 4% 0 0; 
  box-shadow: inset 0 -20px 30px rgba(0,0,0,.6);
}
.scn-baron-effusive .floor {
  position: absolute; bottom: 0; left: 5%; right: 5%; height: 30%;
  background: linear-gradient(180deg, #4a382a 0%, #2a1e14 100%);
  border-radius: 0 0 4% 4%;
  box-shadow: inset 0 8px 15px rgba(0,0,0,.4);
}
.scn-baron-effusive .window {
  position: absolute; top: 10%; left: 15%; width: 25%; height: 35%;
  background: linear-gradient(135deg, #0e1a2e 0%, #1c2a44 40%, #2a3a5e 100%);
  border-radius: 8% 8% 4% 4%;
  border: 4px solid #4a382a;
  box-shadow: inset 0 0 30px rgba(100,140,200,.3), 0 0 15px rgba(0,0,0,.5);
  overflow: hidden;
  animation: be-window 8s ease-in-out infinite alternate;
}
.scn-baron-effusive .window::after {
  content: '';
  position: absolute; top: 5%; left: 20%; width: 30%; height: 60%;
  background: radial-gradient(circle at 50% 40%, #b8c8e0 0%, #7080a0 50%, transparent 70%);
  border-radius: 50%;
  filter: blur(4px);
  animation: be-moon 14s ease-in-out infinite alternate;
}
.scn-baron-effusive .fire {
  position: absolute; bottom: 25%; right: 20%; width: 14%; height: 20%;
  background: radial-gradient(ellipse at 50% 80%, #ffb060 0%, #d08030 40%, #804020 70%, transparent 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 30% 30%;
  filter: blur(2px);
  animation: be-fire 0.8s ease-in-out infinite alternate;
}
.scn-baron-effusive .chair {
  position: absolute; bottom: 18%; left: 38%; width: 20%; height: 28%;
  background: linear-gradient(135deg, #4a382a 0%, #2a1e14 100%);
  border-radius: 10% 10% 20% 20%;
  box-shadow: -5px 5px 15px rgba(0,0,0,.5), inset 0 4px 8px rgba(80,60,40,.4);
}
.scn-baron-effusive .figure {
  position: absolute; bottom: 20%; left: 40%; width: 12%; height: 22%;
  background: linear-gradient(135deg, #1a1410 0%, #0e0a08 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: be-baron 5s ease-in-out infinite alternate;
  z-index: 2;
}
.scn-baron-effusive .figure::before {
  content: '';
  position: absolute; top: -10%; left: 25%; width: 50%; height: 50%;
  background: #1a1410;
  border-radius: 50% 50% 40% 40%/60% 60% 40% 40%;
  transform: rotate(15deg);
}
.scn-baron-effusive .glow {
  position: absolute; bottom: 25%; right: 15%; width: 40%; height: 40%;
  background: radial-gradient(ellipse at 50% 30%, rgba(255,180,80,.15) 0%, transparent 60%);
  pointer-events: none;
  animation: be-glow 3s ease-in-out infinite alternate;
}
.scn-baron-effusive .dust-1,
.scn-baron-effusive .dust-2 {
  position: absolute; width: 6px; height: 6px;
  background: radial-gradient(circle, rgba(200,180,150,.6) 0%, transparent 100%);
  border-radius: 50%;
  filter: blur(1px);
}
.scn-baron-effusive .dust-1 {
  top: 25%; left: 30%;
  animation: be-dust 20s linear infinite;
}
.scn-baron-effusive .dust-2 {
  top: 40%; left: 50%;
  animation: be-dust 25s linear infinite reverse;
  animation-delay: -10s;
}

@keyframes be-ambient { 0% { opacity: 0.8; } 50% { opacity: 1; } 100% { opacity: 0.9; } }
@keyframes be-window { 0% { opacity: 0.7; transform: scale(1); } 50% { opacity: 1; transform: scale(1.02); } 100% { opacity: 0.85; transform: scale(0.98); } }
@keyframes be-moon { 0% { transform: translate(0, 0) scale(1); opacity: 0.8; } 50% { transform: translate(5px, -3px) scale(1.05); opacity: 1; } 100% { transform: translate(-3px, 2px) scale(0.95); opacity: 0.7; } }
@keyframes be-fire { 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.95) scaleX(1); opacity: 0.9; } }
@keyframes be-baron { 0% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-2px) rotate(1deg); } 100% { transform: translateY(1px) rotate(-1deg); } }
@keyframes be-glow { 0% { opacity: 0.4; transform: scale(1); } 50% { opacity: 0.7; transform: scale(1.1); } 100% { opacity: 0.5; transform: scale(0.95); } }
@keyframes be-dust { 0% { transform: translate(0, 0) rotate(0deg) scale(1); opacity: 0; } 10% { opacity: 0.8; } 50% { transform: translate(30px, -20px) rotate(180deg) scale(1.5); opacity: 0.6; } 90% { opacity: 0.3; } 100% { transform: translate(60px, -40px) rotate(360deg) scale(0.5); opacity: 0; } }

.scn-aftermath-silence-sledge { background: linear-gradient(180deg, #0a0a2e 0%, #1a2a4a 40%, #2a3a5a 70%, #4a5a6a 100%), radial-gradient(ellipse at 50% 0%, #4a6a8a 0%, transparent 60%); }
.scn-aftermath-silence-sledge .moon { position:absolute; top:10%; left:70%; width:40px; height:40px; background:radial-gradient(circle, #c0d0e0 0%, #8090a0 60%, transparent 100%); border-radius:50%; box-shadow:0 0 40px 10px rgba(160,180,200,.5),0 0 80px 30px rgba(160,180,200,.2); animation:asm-moon-glow 6s ease-in-out infinite alternate; }
.scn-aftermath-silence-sledge .mountain-back { position:absolute; bottom:30%; left:0; right:0; height:25%; background:#121a2e; border-radius:40% 60% 0 0 / 70% 80% 0 0; box-shadow:inset 0 -10px 20px rgba(0,0,0,.5); animation:asm-mtn-b 20s ease-in-out infinite alternate; }
.scn-aftermath-silence-sledge .mountain-front { position:absolute; bottom:20%; left:0; right:0; height:20%; background:#1a2a3e; border-radius:60% 40% 0 0 / 80% 60% 0 0; box-shadow:inset 0 -8px 20px rgba(0,0,0,.4); animation:asm-mtn-f 18s ease-in-out infinite alternate; }
.scn-aftermath-silence-sledge .ground { position:absolute; bottom:0; left:0; right:0; height:20%; background:linear-gradient(180deg, #c8d8e0 0%, #a0b0c0 100%); border-radius:20% 20% 0 0; box-shadow:inset 0 10px 30px rgba(0,0,0,.3); animation:asm-ground 12s ease-in-out infinite alternate; }
.scn-aftermath-silence-sledge .sledge { position:absolute; bottom:25%; left:10%; width:60px; height:20px; background:#0a0a1a; border-radius:10% 10% 30% 30% / 20% 20% 50% 50%; box-shadow:0 2px 4px rgba(0,0,0,.6); animation:asm-sledge 8s ease-in-out infinite; }
.scn-aftermath-silence-sledge .figure { position:absolute; bottom:20%; left:30%; width:12px; height:30px; background:#0a0a1a; border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin:bottom center; animation:asm-figure 4s ease-in-out infinite; }
@keyframes asm-moon-glow { 0% { box-shadow: 0 0 30px 8px rgba(160,180,200,.4); } 50% { box-shadow: 0 0 50px 15px rgba(160,180,200,.7); } 100% { box-shadow: 0 0 35px 10px rgba(160,180,200,.5); } }
@keyframes asm-mtn-b { 0% { transform:translateY(0); } 50% { transform:translateY(-3px); } 100% { transform:translateY(0); } }
@keyframes asm-mtn-f { 0% { transform:translateY(0); } 50% { transform:translateY(-2px); } 100% { transform:translateY(0); } }
@keyframes asm-ground { 0% { opacity:0.8; } 50% { opacity:1; } 100% { opacity:0.9; } }
@keyframes asm-sledge { 0% { left:10%; transform:rotate(0deg); } 25% { left:30%; transform:rotate(-1deg); } 50% { left:50%; transform:rotate(0deg); } 75% { left:70%; transform:rotate(1deg); } 100% { left:90%; transform:rotate(0deg); } }
@keyframes asm-figure { 0%,100% { transform:translateX(0) rotate(-1deg); } 50% { transform:translateX(5px) rotate(1deg); } }
/* end per-scene blocks */

/* auto-stub: parent tag-classes flagged by CSS audit */
.hound-run { position: absolute; pointer-events: none; }
.hound-slow { position: absolute; pointer-events: none; }
.scn { position: absolute; pointer-events: none; }
.star { position: absolute; pointer-events: none; }

/* ============ tier A ============ */
/* per-scene blocks (EXP step_scenes) */
.scn-baron-devoured-hounds {
  background: 
    linear-gradient(180deg, #070921 0%, #12153a 40%, #1e234a 70%, #0e1930 100%),
    radial-gradient(ellipse at 80% 20%, #3a4a7a 0%, transparent 60%);
}
.scn-baron-devoured-hounds .sky { position:absolute; inset:0; background: none; } /* inherit from parent */
.scn-baron-devoured-hounds .moon-glow { position:absolute; top:6%; right:12%; width:120px; height:120px; background: radial-gradient(circle, rgba(180,195,230,0.6) 0%, rgba(120,140,180,0.1) 70%, transparent 100%); border-radius:50%; filter: blur(14px); animation: bdh-moon-glow 4s ease-in-out infinite alternate; }
.scn-baron-devoured-hounds .moon { position:absolute; top:10%; right:18%; width:50px; height:50px; background: radial-gradient(circle, #d0d8ef 0%, #a0a8c8 80%); border-radius:50%; box-shadow: 0 0 40px 10px rgba(160,168,200,0.5); animation: bdh-moon 4s ease-in-out infinite alternate; }
.scn-baron-devoured-hounds .cloud-left { position:absolute; top:20%; left:5%; width:140px; height:30px; background: linear-gradient(90deg, rgba(100,110,140,0.5) 0%, transparent 100%); border-radius:50%; filter: blur(8px); animation: bdh-cloud-drift 20s linear infinite; }
.scn-baron-devoured-hounds .cloud-right { position:absolute; top:15%; right:5%; width:180px; height:30px; background: linear-gradient(270deg, rgba(100,110,140,0.4) 0%, transparent 100%); border-radius:50%; filter: blur(8px); animation: bdh-cloud-drift 25s linear infinite reverse; }
.scn-baron-devoured-hounds .ground { position:absolute; bottom:0; left:0; right:0; height:30%; background: linear-gradient(180deg, #0b1424 0%, #060d1a 100%); border-radius: 30% 30% 0 0 / 20% 20% 0 0; box-shadow: inset 0 8px 30px rgba(0,0,0,.6); animation: bdh-ground-shake 2s ease-in-out infinite; }
.scn-baron-devoured-hounds .hound-1 { position:absolute; bottom:20%; left:45%; width:40px; height:25px; background: linear-gradient(180deg, #1a1f33 0%, #0b0e1a 100%); border-radius: 60% 40% 30% 70% / 40% 60% 30% 50%; transform-origin: bottom center; animation: bdh-hound-lunge 1.8s ease-in infinite; }
.scn-baron-devoured-hounds .hound-2 { position:absolute; bottom:20%; left:55%; width:45px; height:28px; background: linear-gradient(180deg, #1a1f33 0%, #0e1221 100%); border-radius: 50% 50% 40% 60% / 50% 50% 40% 40%; transform-origin: bottom center; animation: bdh-hound-lunge 2s ease-in infinite 0.3s; }
.scn-baron-devoured-hounds .hound-3 { position:absolute; bottom:22%; left:65%; width:38px; height:22px; background: linear-gradient(180deg, #1f2438 0%, #0c101f 100%); border-radius: 60% 40% 20% 80% / 30% 70% 50% 50%; transform-origin: bottom center; animation: bdh-hound-lunge 1.6s ease-in infinite 0.6s; }
.scn-baron-devoured-hounds .baron { position:absolute; bottom:18%; left:35%; width:30px; height:40px; background: linear-gradient(180deg, #151828 0%, #090c1a 100%); border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%; transform: rotate(20deg); animation: bdh-baron-twitch 0.4s ease-in-out infinite; }

@keyframes bdh-moon-glow { 0% { transform: scale(1); opacity:0.7; } 50% { transform: scale(1.3); opacity:1; } 100% { transform: scale(0.9); opacity:0.5; } }
@keyframes bdh-moon { 0% { transform: scale(1); box-shadow: 0 0 40px 10px rgba(160,168,200,0.5); } 100% { transform: scale(1.05); box-shadow: 0 0 60px 20px rgba(160,168,200,0.7); } }
@keyframes bdh-cloud-drift { 0% { transform: translateX(0); } 50% { transform: translateX(40px); } 100% { transform: translateX(-40px); } }
@keyframes bdh-ground-shake { 0% { transform: translateY(0); } 25% { transform: translateY(-3px); } 50% { transform: translateY(1px); } 75% { transform: translateY(-2px); } 100% { transform: translateY(0); } }
@keyframes bdh-hound-lunge { 0% { transform: scale(1) rotate(0deg) translate(0,0); } 30% { transform: scale(1.1) rotate(-5deg) translate(-8px, -5px); } 60% { transform: scale(1.15) rotate(-10deg) translate(-15px, -10px); } 100% { transform: scale(1) rotate(0deg) translate(0,0); } }
@keyframes bdh-baron-twitch { 0% { transform: rotate(20deg) scale(1); } 50% { transform: rotate(25deg) scale(1.05) translateY(-2px); } 100% { transform: rotate(20deg) scale(1); } }

.scn-valet-conversation-baroness {
  background: linear-gradient(180deg, #1f1410 0%, #3a241a 40%, #5a3a28 70%, #2e1e16 100%),
              radial-gradient(ellipse at 50% 80%, #d07030 0%, transparent 60%);
}
.scn-valet-conversation-baroness .room-back {
  position: absolute; inset: 0; background: linear-gradient(180deg, #2a2018 0%, #1a100c 100%);
  animation: vc-room 20s ease-in-out infinite alternate;
}
.scn-valet-conversation-baroness .fire-glow {
  position: absolute; bottom: 10%; left: 20%; width: 50%; height: 50%;
  background: radial-gradient(ellipse at 50% 100%, #d07030 0%, #a05020 30%, transparent 70%);
  filter: blur(18px); opacity: 0.6; animation: vc-glow 4s ease-in-out infinite alternate;
}
.scn-valet-conversation-baroness .hearth {
  position: absolute; bottom: 5%; left: 25%; width: 30%; height: 25%;
  background: linear-gradient(180deg, #4a2a1a 0%, #2a1a10 100%);
  border-radius: 20% 20% 0 0; box-shadow: inset 0 8px 20px rgba(0,0,0,0.7);
}
.scn-valet-conversation-baroness .flames {
  position: absolute; bottom: 18%; left: 32%; width: 16%; height: 20%;
  background: linear-gradient(0deg, #f09030 0%, #d06020 50%, #804020 100%);
  border-radius: 50% 50% 20% 20%; filter: blur(6px);
  animation: vc-flame 1.2s ease-in-out infinite alternate;
}
.scn-valet-conversation-baroness .valet-fig {
  position: absolute; bottom: 8%; left: 55%; width: 14%; height: 38%;
  background: linear-gradient(180deg, #1a1814 0%, #0e0c0a 100%);
  border-radius: 40% 40% 20% 20% / 50% 50% 30% 30%;
  transform-origin: bottom center;
  animation: vc-valet 6s ease-in-out infinite alternate;
}
.scn-valet-conversation-baroness .narrator-fig {
  position: absolute; bottom: 8%; left: 35%; width: 13%; height: 36%;
  background: linear-gradient(180deg, #1c1612 0%, #120e0a 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: vc-narr 5s ease-in-out infinite alternate;
}
.scn-valet-conversation-baroness .chair {
  position: absolute; bottom: 0%; left: 40%; width: 20%; height: 20%;
  background: linear-gradient(180deg, #3a2818 0%, #1e1410 100%);
  border-radius: 10% 10% 0 0; box-shadow: 0 -4px 10px rgba(0,0,0,0.5);
}
.scn-valet-conversation-baroness .shadow-arc {
  position: absolute; bottom: 0; left: 15%; width: 70%; height: 30%;
  background: radial-gradient(ellipse at 50% 100%, rgba(0,0,0,0.6) 0%, transparent 70%);
  filter: blur(10px); animation: vc-shadow 8s ease-in-out infinite alternate;
}
@keyframes vc-room { 0% { opacity: 0.9 } 50% { opacity: 1 } 100% { opacity: 0.85 } }
@keyframes vc-glow { 0% { opacity: 0.4; transform: scaleY(1) } 50% { opacity: 0.7; transform: scaleY(1.05) } 100% { opacity: 0.5; transform: scaleY(0.95) } }
@keyframes vc-flame { 0% { height: 18%; filter: blur(8px) } 50% { height: 22%; filter: blur(5px) } 100% { height: 19%; filter: blur(6px) } }
@keyframes vc-valet { 0% { transform: translateY(0) rotate(0deg) } 50% { transform: translateY(-2px) rotate(2deg) } 100% { transform: translateY(0) rotate(-1deg) } }
@keyframes vc-narr { 0% { transform: translateY(0) rotate(0deg) } 50% { transform: translateY(-1px) rotate(-2deg) } 100% { transform: translateY(0) rotate(1deg) } }
@keyframes vc-shadow { 0% { opacity: 0.6 } 50% { opacity: 0.8 } 100% { opacity: 0.5 } }

.scn-discovering-baroness-english {
  background: linear-gradient(180deg, #2e1a12 0%, #4a281a 40%, #6e3824 70%, #3a1e14 100%),
              radial-gradient(ellipse at 40% 70%, #d08040 0%, transparent 60%);
}
.scn-discovering-baroness-english .bg-tawny {
  position: absolute; inset: 0; background: linear-gradient(135deg, #2a1812 0%, #3e2218 50%, #1e100c 100%);
  animation: db-bg 15s ease-in-out infinite alternate;
}
.scn-discovering-baroness-english .fire-blaze {
  position: absolute; bottom: 5%; left: 30%; width: 30%; height: 35%;
  background: radial-gradient(ellipse at 50% 0%, #f0a040 0%, #b06020 40%, transparent 70%);
  filter: blur(12px); animation: db-blaze 3s ease-in-out infinite alternate;
}
.scn-discovering-baroness-english .table-edge {
  position: absolute; bottom: 15%; left: 20%; width: 60%; height: 4%;
  background: linear-gradient(90deg, #4a2a18 0%, #2e1a0e 100%);
  border-radius: 4px; box-shadow: 0 2px 8px rgba(0,0,0,0.6);
  transform: perspective(200px) rotateX(15deg);
}
.scn-discovering-baroness-english .narrator-lean {
  position: absolute; bottom: 18%; left: 40%; width: 16%; height: 40%;
  background: linear-gradient(180deg, #1a1412 0%, #0e0c0a 100%);
  border-radius: 40% 40% 20% 20% / 50% 50% 30% 30%;
  transform-origin: bottom center;
  animation: db-narr 2s ease-in-out infinite alternate;
}
.scn-discovering-baroness-english .valet-hand {
  position: absolute; bottom: 35%; left: 60%; width: 10%; height: 14%;
  background: linear-gradient(180deg, #1e1814 0%, #0e0c0a 100%);
  border-radius: 30% 30% 20% 20%; clip-path: polygon(0 0, 100% 0, 80% 100%, 20% 100%);
  animation: db-hand 1.5s ease-in-out infinite alternate;
}
.scn-discovering-baroness-english .marriage-ring {
  position: absolute; bottom: 42%; left: 63%; width: 4%; height: 4%;
  background: radial-gradient(circle, #f0c060 0%, #c09030 100%);
  border-radius: 50%; box-shadow: 0 0 10px 2px #f0c060;
  animation: db-ring 3s ease-in-out infinite;
}
.scn-discovering-baroness-english .spark-trail {
  position: absolute; bottom: 50%; left: 20%; width: 60%; height: 2%;
  background: linear-gradient(90deg, transparent 0%, #d08040 20%, transparent 100%);
  filter: blur(3px); opacity: 0.4; animation: db-spark 2s linear infinite;
}
@keyframes db-bg { 0% { opacity: 0.8 } 50% { opacity: 1 } 100% { opacity: 0.75 } }
@keyframes db-blaze { 0% { transform: scaleY(1) rotate(0deg) } 50% { transform: scaleY(1.08) rotate(2deg) } 100% { transform: scaleY(0.95) rotate(-1deg) } }
@keyframes db-narr { 0% { transform: translateX(0) rotate(0deg) } 50% { transform: translateX(4px) rotate(3deg) } 100% { transform: translateX(0) rotate(-2deg) } }
@keyframes db-hand { 0% { transform: translateY(0) rotate(0deg) } 50% { transform: translateY(-5px) rotate(8deg) } 100% { transform: translateY(0) rotate(-4deg) } }
@keyframes db-ring { 0% { transform: scale(1); opacity: 0.8 } 50% { transform: scale(1.2); opacity: 1 } 100% { transform: scale(0.9); opacity: 0.7 } }
@keyframes db-spark { 0% { transform: translateX(-20px); opacity: 0.3 } 100% { transform: translateX(100px); opacity: 0 } }

.scn-valet-describes-barones-life {
  background: linear-gradient(180deg, #1a0e0a 0%, #2e1a12 40%, #4a2a1a 70%, #22120c 100%),
              radial-gradient(ellipse at 50% 90%, #b06030 0%, transparent 50%);
}
.scn-valet-describes-barones-life .room-dark {
  position: absolute; inset: 0; background: linear-gradient(180deg, #0e0a08 0%, #1a100c 100%);
  animation: vb-room 25s ease-in-out infinite alternate;
}
.scn-valet-describes-barones-life .fire-cast {
  position: absolute; bottom: 5%; left: 15%; width: 50%; height: 45%;
  background: radial-gradient(ellipse at 30% 70%, #d07040 0%, #a05030 30%, transparent 60%);
  filter: blur(25px); opacity: 0.3; animation: vb-cast 5s ease-in-out infinite alternate;
}
.scn-valet-describes-barones-life .valet-shrug {
  position: absolute; bottom: 10%; left: 50%; width: 15%; height: 42%;
  background: linear-gradient(180deg, #14100e 0%, #0a0806 100%);
  border-radius: 40% 40% 20% 20% / 50% 50% 30% 30%;
  transform-origin: center bottom;
  animation: vb-shrug 8s ease-in-out infinite;
}
.scn-valet-describes-barones-life .baroness-ghost {
  position: absolute; bottom: 30%; left: 25%; width: 12%; height: 25%;
  background: linear-gradient(180deg, rgba(200,160,120,0.15) 0%, transparent 100%);
  border-radius: 50% 50% 30% 30%; filter: blur(8px);
  animation: vb-ghost 12s ease-in-out infinite alternate;
}
.scn-valet-describes-barones-life .chain-dangle {
  position: absolute; bottom: 10%; left: 42%; width: 2%; height: 20%;
  background: linear-gradient(180deg, #b08050 0%, #604020 100%);
  border-radius: 10%; animation: vb-chain 3s ease-in-out infinite;
}
.scn-valet-describes-barones-life .empty-chair {
  position: absolute; bottom: 2%; left: 20%; width: 20%; height: 25%;
  background: linear-gradient(180deg, #3a2218 0%, #1e120c 100%);
  border-radius: 10% 10% 0 0; box-shadow: 0 -3px 8px rgba(0,0,0,0.6);
  animation: vb-chair 10s ease-in-out infinite alternate;
}
.scn-valet-describes-barones-life .candle-drip {
  position: absolute; bottom: 35%; left: 70%; width: 3%; height: 6%;
  background: linear-gradient(180deg, #c0a070 0%, #a08050 100%);
  border-radius: 30% 30% 0 0; box-shadow: 0 0 6px 2px #c0a070;
  animation: vb-candle 4s ease-in-out infinite alternate;
}
@keyframes vb-room { 0% { opacity: 0.85 } 50% { opacity: 1 } 100% { opacity: 0.75 } }
@keyframes vb-cast { 0% { opacity: 0.2; transform: scale(1) } 50% { opacity: 0.4; transform: scale(1.05) } 100% { opacity: 0.25; transform: scale(0.95) } }
@keyframes vb-shrug { 0% { transform: translateY(0) rotate(0deg) } 30% { transform: translateY(-3px) rotate(5deg) } 60% { transform: translateY(0) rotate(-3deg) } 100% { transform: translateY(-1px) rotate(0deg) } }
@keyframes vb-ghost { 0% { opacity: 0.1; transform: translateY(0) } 50% { opacity: 0.25; transform: translateY(-4px) } 100% { opacity: 0.05; transform: translateY(0) } }
@keyframes vb-chain { 0% { transform: rotate(0deg); transform-origin: top } 50% { transform: rotate(6deg) } 100% { transform: rotate(-4deg) } }
@keyframes vb-chair { 0% { transform: translateY(0) } 50% { transform: translateY(-2px) } 100% { transform: translateY(0) } }
@keyframes vb-candle { 0% { transform: scaleY(1); opacity: 0.8 } 50% { transform: scaleY(1.1); opacity: 1 } 100% { transform: scaleY(0.95); opacity: 0.7 } }

.scn-encounter-baron-passage {
  background: linear-gradient(90deg, #0a0a12 0%, #1a1a2e 40%, #2e2e46 70%, #12121a 100%),
              radial-gradient(ellipse at 30% 50%, #b09060 0%, transparent 40%);
}
.scn-encounter-baron-passage .passage-back {
  position: absolute; inset: 0; background: linear-gradient(90deg, #08080e 0%, #161620 100%);
  animation: eb-pass 30s ease-in-out infinite alternate;
}
.scn-encounter-baron-passage .wall-left {
  position: absolute; top: 0; left: 0; width: 25%; height: 100%;
  background: linear-gradient(180deg, #1a1a2a 0%, #0e0e18 100%);
  box-shadow: inset -10px 0 20px rgba(0,0,0,0.5);
  animation: eb-wall 8s ease-in-out infinite alternate;
}
.scn-encounter-baron-passage .wall-right {
  position: absolute; top: 0; right: 0; width: 25%; height: 100%;
  background: linear-gradient(180deg, #1a1a2a 0%, #0e0e18 100%);
  box-shadow: inset 10px 0 20px rgba(0,0,0,0.5);
  animation: eb-wall 8s ease-in-out infinite alternate-reverse;
}
.scn-encounter-baron-passage .floor-strip {
  position: absolute; bottom: 0; left: 25%; width: 50%; height: 12%;
  background: linear-gradient(180deg, #2e2e3a 0%, #1a1a24 100%);
  border-radius: 2px;
}
.scn-encounter-baron-passage .narrator-turn {
  position: absolute; bottom: 10%; left: 55%; width: 12%; height: 35%;
  background: linear-gradient(180deg, #12121c 0%, #0a0a10 100%);
  border-radius: 50% 50% 20% 20% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: eb-turn 4s ease-in-out infinite alternate;
}
.scn-encounter-baron-passage .door-crack {
  position: absolute; bottom: 30%; left: 38%; width: 8%; height: 30%;
  background: linear-gradient(180deg, #3a2a1a 0%, #1e1610 100%);
  border-radius: 0 30% 30% 0; box-shadow: inset -4px 0 8px rgba(0,0,0,0.7);
}
.scn-encounter-baron-passage .lamp-glow {
  position: absolute; bottom: 50%; left: 42%; width: 12%; height: 12%;
  background: radial-gradient(circle, #d0b080 0%, #a08050 40%, transparent 70%);
  filter: blur(12px); animation: eb-lamp 5s ease-in-out infinite alternate;
}
.scn-encounter-baron-passage .shadow-stretch {
  position: absolute; bottom: 0; left: 50%; width: 20%; height: 15%;
  background: linear-gradient(180deg, rgba(0,0,0,0.4) 0%, transparent 100%);
  transform: skewX(-10deg); animation: eb-shadow 6s ease-in-out infinite alternate;
}
@keyframes eb-pass { 0% { opacity: 0.8 } 50% { opacity: 1 } 100% { opacity: 0.75 } }
@keyframes eb-wall { 0% { opacity: 0.9 } 50% { opacity: 1 } 100% { opacity: 0.85 } }
@keyframes eb-turn { 0% { transform: translateX(0) rotate(0deg) } 50% { transform: translateX(6px) rotate(4deg) } 100% { transform: translateX(0) rotate(-2deg) } }
@keyframes eb-lamp { 0% { transform: scale(1); opacity: 0.5 } 50% { transform: scale(1.1); opacity: 0.8 } 100% { transform: scale(0.95); opacity: 0.6 } }
@keyframes eb-shadow { 0% { transform: skewX(-10deg) scaleY(1) } 50% { transform: skewX(-8deg) scaleY(1.2) } 100% { transform: skewX(-12deg) scaleY(0.9) } }

.scn-baron-demands-slav-melody {
  background:
    linear-gradient(180deg, #2a1e14 0%, #1a120a 40%, #0d0906 100%),
    radial-gradient(ellipse at 50% 80%, #3a2a1a 0%, transparent 70%);
}
.scn-baron-demands-slav-melody .wall-left {
  position:absolute; left:0; top:0; width:45%; height:100%;
  background: linear-gradient(135deg, #3a2a1a 0%, #1a120a 100%);
  box-shadow: inset -8px 0 20px rgba(0,0,0,.5);
  animation: bdsm-wall 12s ease-in-out infinite alternate;
}
.scn-baron-demands-slav-melody .wall-right {
  position:absolute; right:0; top:0; width:55%; height:100%;
  background: linear-gradient(225deg, #4a3a2a 0%, #2a1e14 100%);
  box-shadow: inset 8px 0 20px rgba(0,0,0,.5);
}
.scn-baron-demands-slav-melody .floor {
  position:absolute; bottom:0; left:0; right:0; height:35%;
  background: linear-gradient(180deg, #2a1a0a 0%, #1a0e05 100%);
  border-radius: 0 0 20% 20% / 0 0 10% 10%;
  box-shadow: inset 0 8px 15px rgba(0,0,0,.6);
}
.scn-baron-demands-slav-melody .window {
  position:absolute; top:12%; right:12%; width:80px; height:100px;
  background: linear-gradient(180deg, #4a5a6a 0%, #2a3a4a 100%);
  border-radius: 4px;
  box-shadow: inset 0 0 20px rgba(74,90,106,.3), 0 0 30px rgba(74,90,106,.15);
  animation: bdsm-window 30s ease-in-out infinite alternate;
}
.scn-baron-demands-slav-melody .piano {
  position:absolute; bottom:28%; left:10%; width:120px; height:60px;
  background: linear-gradient(180deg, #1a120a 0%, #0d0906 100%);
  border-radius: 10% 10% 5% 5% / 40% 40% 20% 20%;
  box-shadow: 0 4px 8px rgba(0,0,0,.7);
}
.scn-baron-demands-slav-melody .singer {
  position:absolute; bottom:25%; left:35%; width:30px; height:70px;
  background: linear-gradient(180deg, #4a3020 0%, #2a1a10 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: bdsm-singer 4s ease-in-out infinite;
}
.scn-baron-demands-slav-melody .baron {
  position:absolute; bottom:25%; right:20%; width:45px; height:75px;
  background: linear-gradient(180deg, #3a2820 0%, #1a1410 100%);
  border-radius: 50% 50% 40% 40% / 55% 55% 35% 35%;
  transform-origin: bottom center;
  animation: bdsm-baron 6s ease-in-out infinite;
}
.scn-baron-demands-slav-melody .lamp-glow {
  position:absolute; bottom:40%; left:55%; width:20px; height:20px;
  background: radial-gradient(circle, #c8a060 0%, #8a6a3a 50%, transparent 80%);
  border-radius: 50%;
  box-shadow: 0 0 40px 15px rgba(200,160,96,.3), 0 0 80px 30px rgba(200,160,96,.15);
  animation: bdsm-lamp 8s ease-in-out infinite alternate;
}
@keyframes bdsm-wall { 0% { opacity: .9 } 50% { opacity: 1 } 100% { opacity: .85 } }
@keyframes bdsm-window { 0% { opacity: .6; filter: brightness(.8) } 50% { opacity: .9; filter: brightness(1) } 100% { opacity: .7; filter: brightness(.85) } }
@keyframes bdsm-singer { 0% { transform: translateY(0) rotate(0) } 40% { transform: translateY(-2px) rotate(2deg) } 70% { transform: translateY(-1px) rotate(-1deg) } 100% { transform: translateY(0) rotate(0) } }
@keyframes bdsm-baron { 0% { transform: translateY(0) rotate(0) } 30% { transform: translateY(-3px) rotate(-3deg) } 60% { transform: translateY(0) rotate(0) } 80% { transform: translateY(-2px) rotate(2deg) } 100% { transform: translateY(0) rotate(0) } }
@keyframes bdsm-lamp { 0% { opacity: .7; transform: scale(1) } 50% { opacity: 1; transform: scale(1.1) } 100% { opacity: .8; transform: scale(.95) } }

.scn-music-discussion-marshfield {
  background:
    linear-gradient(180deg, #1a1a2e 0%, #0f1020 40%, #0a0a15 100%),
    radial-gradient(ellipse at 40% 50%, #2a2a4e 0%, transparent 70%);
}
.scn-music-discussion-marshfield .bg-room {
  position:absolute; inset:0;
  background: linear-gradient(135deg, #2a2a3e 0%, #15152a 100%);
  box-shadow: inset 0 0 40px rgba(0,0,0,.7);
}
.scn-music-discussion-marshfield .table {
  position:absolute; bottom:20%; left:30%; width:120px; height:40px;
  background: linear-gradient(180deg, #2a1e14 0%, #1a120a 100%);
  border-radius: 10% 10% 5% 5% / 20% 20% 10% 10%;
  box-shadow: 0 6px 12px rgba(0,0,0,.5);
  transform: perspective(200px) rotateX(5deg);
}
.scn-music-discussion-marshfield .figure-bar {
  position:absolute; bottom:18%; left:25%; width:35px; height:80px;
  background: linear-gradient(180deg, #3a2a2a 0%, #1a1010 100%);
  border-radius: 50% 50% 40% 40% / 55% 55% 35% 35%;
  transform-origin: bottom center;
  animation: mdm-figure-bar 2s ease-in-out infinite alternate;
}
.scn-music-discussion-marshfield .figure-marsh {
  position:absolute; bottom:18%; right:30%; width:35px; height:78px;
  background: linear-gradient(180deg, #2a3a2a 0%, #101a10 100%);
  border-radius: 50% 50% 40% 40% / 55% 55% 35% 35%;
  transform-origin: bottom center;
  animation: mdm-figure-marsh 2.5s ease-in-out infinite alternate;
}
.scn-music-discussion-marshfield .candle {
  position:absolute; bottom:40%; left:48%; width:4px; height:20px;
  background: linear-gradient(180deg, #c8a060 0%, #a08040 100%);
  border-radius: 10% 10% 5% 5% / 30% 30% 15% 15%;
  box-shadow: 0 0 10px 2px #c8a060;
  animation: mdm-candle 3s ease-in-out infinite;
}
.scn-music-discussion-marshfield .candle-glow {
  position:absolute; bottom:40%; left:48%; width:40px; height:40px;
  background: radial-gradient(circle, rgba(200,160,96,.4) 0%, transparent 70%);
  border-radius: 50%;
  transform: translate(-50%, -50%);
  animation: mdm-glow 2s ease-in-out infinite alternate;
}
.scn-music-discussion-marshfield .shadow-sharp {
  position:absolute; bottom:0; left:0; right:0; height:50%;
  background: linear-gradient(180deg, transparent 0%, rgba(0,0,0,.6) 100%);
  animation: mdm-shadow 1.5s ease-in-out infinite alternate;
}
@keyframes mdm-figure-bar { 0% { transform: translateY(0) rotate(0) } 50% { transform: translateY(-2px) rotate(3deg) } 100% { transform: translateY(0) rotate(0) } }
@keyframes mdm-figure-marsh { 0% { transform: translateY(0) rotate(0) } 50% { transform: translateY(-1px) rotate(-3deg) } 100% { transform: translateY(0) rotate(0) } }
@keyframes mdm-candle { 0% { transform: rotate(0) scaleY(1) } 50% { transform: rotate(2deg) scaleY(1.05) } 100% { transform: rotate(0) scaleY(1) } }
@keyframes mdm-glow { 0% { opacity: .6; transform: translate(-50%, -50%) scale(1) } 50% { opacity: .9; transform: translate(-50%, -50%) scale(1.1) } 100% { opacity: .7; transform: translate(-50%, -50%) scale(.95) } }
@keyframes mdm-shadow { 0% { opacity: .7 } 50% { opacity: 1 } 100% { opacity: .8 } }

.scn-baron-alteration-chase {
  background:
    linear-gradient(180deg, #2a0e05 0%, #1a0800 30%, #0d0400 100%),
    radial-gradient(ellipse at 60% 50%, #4a1a0a 0%, transparent 60%);
}
.scn-baron-alteration-chase .corridor-bg {
  position:absolute; inset:0;
  background: linear-gradient(90deg, #1a0800 0%, #2a0e05 50%, #1a0800 100%);
  box-shadow: inset 0 0 60px rgba(0,0,0,.8);
}
.scn-baron-alteration-chase .fireplace {
  position:absolute; bottom:10%; left:50%; width:100px; height:120px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #0d0400 0%, #1a0800 100%);
  border-radius: 20% 20% 5% 5% / 40% 40% 15% 15%;
  box-shadow: inset 0 -10px 20px rgba(0,0,0,.5), 0 0 30px rgba(200,80,20,.2);
}
.scn-baron-alteration-chase .fire-glow {
  position:absolute; bottom:15%; left:50%; width:30px; height:50px;
  transform: translateX(-50%);
  background: radial-gradient(ellipse at 50% 80%, #c8553d 0%, #a0461a 40%, transparent 70%);
  border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%;
  animation: bac-fire 2s ease-in-out infinite alternate;
}
.scn-baron-alteration-chase .figure-baron {
  position:absolute; bottom:18%; left:25%; width:40px; height:85px;
  background: linear-gradient(180deg, #3a1a10 0%, #1a0a05 100%);
  border-radius: 50% 50% 40% 40% / 55% 55% 35% 35%;
  transform-origin: bottom center;
  animation: bac-figure-baron 3s ease-in-out infinite;
}
.scn-baron-alteration-chase .figure-marshfield {
  position:absolute; bottom:18%; right:25%; width:38px; height:82px;
  background: linear-gradient(180deg, #2a1a10 0%, #100a05 100%);
  border-radius: 50% 50% 40% 40% / 55% 55% 35% 35%;
  transform-origin: bottom center;
  animation: bac-figure-marsh 3.5s ease-in-out infinite;
}
.scn-baron-alteration-chase .door {
  position:absolute; top:0; left:0; width:40px; height:100%;
  background: linear-gradient(180deg, #1a0a05 0%, #0d0400 100%);
  box-shadow: 4px 0 10px rgba(0,0,0,.6);
  border-radius: 0 10% 10% 0 / 0 20% 20% 0;
}
.scn-baron-alteration-chase .shadow-wall {
  position:absolute; top:0; left:40px; width:100px; height:100%;
  background: linear-gradient(90deg, rgba(0,0,0,.8) 0%, transparent 100%);
  animation: bac-shadow 4s ease-in-out infinite alternate;
}
@keyframes bac-fire { 0% { opacity: .6; transform: translateX(-50%) scaleY(1) } 50% { opacity: 1; transform: translateX(-50%) scaleY(1.1) } 100% { opacity: .7; transform: translateX(-50%) scaleY(.9) } }
@keyframes bac-figure-baron { 0% { transform: translateY(0) rotate(-2deg) } 40% { transform: translateY(-2px) rotate(4deg) } 70% { transform: translateY(1px) rotate(-3deg) } 100% { transform: translateY(0) rotate(0) } }
@keyframes bac-figure-marsh { 0% { transform: translateY(0) rotate(0) } 30% { transform: translateY(-1px) rotate(-2deg) } 60% { transform: translateY(0) rotate(0) } 90% { transform: translateY(-2px) rotate(3deg) } 100% { transform: translateY(0) rotate(0) } }
@keyframes bac-shadow { 0% { opacity: .5 } 50% { opacity: 1 } 100% { opacity: .6 } }

.scn-marshfield-joins-hunt {
  background:
    linear-gradient(180deg, #1a0e05 0%, #0d0800 30%, #050300 100%),
    radial-gradient(ellipse at 50% 100%, #3a1a0a 0%, transparent 70%);
}
.scn-marshfield-joins-hunt .night-sky {
  position:absolute; inset:0 0 40% 0;
  background: linear-gradient(180deg, #0a0200 0%, #1a0e05 60%, transparent 100%);
  animation: mjh-sky 20s ease-in-out infinite alternate;
}
.scn-marshfield-joins-hunt .ground {
  position:absolute; bottom:0; left:0; right:0; height:40%;
  background: linear-gradient(180deg, #1a1005 0%, #0d0800 100%);
  border-radius: 40% 20% 0 0 / 30% 15% 0 0;
  box-shadow: inset 0 20px 30px rgba(0,0,0,.7);
}
.scn-marshfield-joins-hunt .campfire {
  position:absolute; bottom:20%; left:30%; width:40px; height:30px;
  background: radial-gradient(ellipse at 50% 80%, #c8553d 0%, #a0461a 50%, transparent 70%);
  border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%;
  animation: mjh-fire 1.5s ease-in-out infinite alternate;
}
.scn-marshfield-joins-hunt .fire-light {
  position:absolute; bottom:15%; left:25%; width:80px; height:80px;
  background: radial-gradient(circle, rgba(200,80,30,.4) 0%, transparent 70%);
  border-radius: 50%;
  transform: translate(-10%, -10%);
  animation: mjh-light 3s ease-in-out infinite alternate;
}
.scn-marshfield-joins-hunt .figure-hunter-a {
  position:absolute; bottom:22%; left:18%; width:35px; height:75px;
  background: linear-gradient(180deg, #1a0e05 0%, #0d0800 100%);
  border-radius: 50% 50% 40% 40% / 55% 55% 35% 35%;
  transform-origin: bottom center;
  animation: mjh-hunter-a 4s ease-in-out infinite;
}
.scn-marshfield-joins-hunt .figure-hunter-b {
  position:absolute; bottom:22%; right:28%; width:35px; height:72px;
  background: linear-gradient(180deg, #1a0e05 0%, #0d0800 100%);
  border-radius: 50% 50% 40% 40% / 55% 55% 35% 35%;
  transform-origin: bottom center;
  animation: mjh-hunter-b 4.5s ease-in-out infinite;
}
.scn-marshfield-joins-hunt .tree-silhouette {
  position:absolute; bottom:30%; right:10%; width:60px; height:200px;
  background: linear-gradient(135deg, #0d0800 0%, #050300 100%);
  border-radius: 50% 50% 0 0 / 20% 20% 0 0;
  box-shadow: 0 0 10px rgba(0,0,0,.5);
  transform: rotate(-5deg);
  animation: mjh-tree 30s ease-in-out infinite alternate;
}
.scn-marshfield-joins-hunt .torch {
  position:absolute; bottom:30%; left:45%; width:6px; height:25px;
  background: linear-gradient(180deg, #a0461a 0%, #1a0e05 100%);
  border-radius: 10% 10% 5% 5% / 30% 30% 10% 10%;
  box-shadow: 0 0 15px 5px rgba(200,80,30,.5);
  animation: mjh-torch 2s ease-in-out infinite;
}
@keyframes mjh-sky { 0% { opacity: .8 } 50% { opacity: 1 } 100% { opacity: .7 } }
@keyframes mjh-fire { 0% { transform: scaleY(1) opacity(.8) } 50% { transform: scaleY(1.15) opacity(1) } 100% { transform: scaleY(.9) opacity(.7) } }
@keyframes mjh-light { 0% { opacity: .5; transform: scale(1) } 50% { opacity: .8; transform: scale(1.1) } 100% { opacity: .6; transform: scale(.95) } }
@keyframes mjh-hunter-a { 0% { transform: translateY(0) rotate(-1deg) } 40% { transform: translateY(-2px) rotate(2deg) } 70% { transform: translateY(0) rotate(-2deg) } 100% { transform: translateY(0) rotate(0) } }
@keyframes mjh-hunter-b { 0% { transform: translateY(0) rotate(0) } 30% { transform: translateY(-1px) rotate(-2deg) } 60% { transform: translateY(0) rotate(0) } 90% { transform: translateY(-3px) rotate(3deg) } 100% { transform: translateY(0) rotate(0) } }
@keyframes mjh-tree { 0% { transform: rotate(-5deg) } 50% { transform: rotate(-3deg) } 100% { transform: rotate(-5deg) } }
@keyframes mjh-torch { 0% { transform: rotate(0) } 30% { transform: rotate(3deg) } 70% { transform: rotate(-2deg) } 100% { transform: rotate(0) } }

/* mount-horses-moonlit (mhm) */
.scn-mounting-horses-moonlit {
  background: linear-gradient(180deg, #0a1224 0%, #141e36 40%, #1c2a4a 100%),
              radial-gradient(circle at 70% 20%, #3c5a8a 0%, transparent 60%);
}
.scn-mounting-horses-moonlit .sky { position:absolute; inset:0 0 40% 0; background: linear-gradient(180deg, #0f1a30 0%, #1a2a48 60%, transparent); animation: mhm-sky 20s ease-in-out infinite alternate; }
.scn-mounting-horses-moonlit .moon { position:absolute; top:8%; right:20%; width:50px; height:50px; background: radial-gradient(circle, #d4e6f0 0%, #8aaac8 60%, transparent 70%); border-radius:50%; box-shadow: 0 0 30px 10px rgba(138,170,200,.5); animation: mhm-moon 12s ease-in-out infinite alternate; }
.scn-mounting-horses-moonlit .wall-left { position:absolute; bottom:0; left:0; width:25%; height:70%; background: linear-gradient(90deg, #0f1724 0%, #1a2438 100%); border-right: 2px solid #253a50; animation: mhm-wall 6s ease-in-out infinite; }
.scn-mounting-horses-moonlit .wall-right { position:absolute; bottom:0; right:0; width:30%; height:75%; background: linear-gradient(90deg, #1a2438 0%, #0f1724 100%); border-left: 2px solid #253a50; animation: mhm-wall 6s ease-in-out infinite reverse; }
.scn-mounting-horses-moonlit .stable { position:absolute; bottom:15%; left:35%; width:35%; height:45%; background: linear-gradient(180deg, #2a3a52 0%, #1a2a3e 100%); border-radius: 4% 4% 0 0; box-shadow: inset 0 -10px 20px rgba(0,0,0,.6); }
.scn-mounting-horses-moonlit .horse { position:absolute; bottom:25%; left:40%; width:40px; height:35px; background: linear-gradient(135deg, #3a4a5a 0%, #1a2a3a 100%); border-radius: 50% 10% 40% 40% / 60% 20% 60% 40%; transform: rotate(-5deg); animation: mhm-horse 3s ease-in-out infinite; }
.scn-mounting-horses-moonlit .figure { position:absolute; bottom:38%; left:38%; width:20px; height:40px; background: linear-gradient(180deg, #0f1724 0%, #000 100%); border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%; transform-origin: bottom center; animation: mhm-figure 4s ease-in-out infinite; }
.scn-mounting-horses-moonlit .shadow { position:absolute; bottom:20%; left:30%; width:60%; height:10px; background: radial-gradient(ellipse, rgba(0,0,0,.6) 0%, transparent 80%); animation: mhm-shadow 4s ease-in-out infinite; }
@keyframes mhm-sky { 0% { opacity:.7 } 50% { opacity:1 } 100% { opacity:.8 } }
@keyframes mhm-moon { 0% { transform: translate(0, 0) scale(1); box-shadow: 0 0 30px 10px rgba(138,170,200,.5); } 50% { transform: translate(-5px, -3px) scale(1.02); box-shadow: 0 0 40px 15px rgba(138,170,200,.7); } 100% { transform: translate(2px, 2px) scale(.98); box-shadow: 0 0 20px 8px rgba(138,170,200,.4); } }
@keyframes mhm-wall { 0%,100% { filter: brightness(.9); } 50% { filter: brightness(1.1); } }
@keyframes mhm-horse { 0%,100% { transform: rotate(-5deg) translateY(0); } 50% { transform: rotate(-2deg) translateY(-3px); } }
@keyframes mhm-figure { 0%,100% { transform: rotate(0deg); } 25% { transform: rotate(3deg) translateX(2px); } 75% { transform: rotate(-2deg) translateX(-1px); } }
@keyframes mhm-shadow { 0%,100% { opacity:.4; transform: scaleX(1); } 50% { opacity:.8; transform: scaleX(1.08); } }

/* item-hounds-release (ihr) */
.scn-item-hounds-release {
  background: linear-gradient(180deg, #0a1224 0%, #121e34 40%, #1a2840 100%),
              radial-gradient(circle at 30% 60%, #2a4060 0%, transparent 70%);
}
.scn-item-hounds-release .sky { position:absolute; inset:0 0 45% 0; background: linear-gradient(180deg, #0f1a30 0%, #1a2840 60%, transparent); animation: ihr-sky 18s ease-in-out infinite alternate; }
.scn-item-hounds-release .moon { position:absolute; top:10%; left:15%; width:45px; height:45px; background: radial-gradient(circle, #d0e0ee 0%, #7a9ab8 60%, transparent); border-radius:50%; box-shadow: 0 0 25px 8px rgba(122,154,184,.6); animation: ihr-moon 14s ease-in-out infinite alternate; }
.scn-item-hounds-release .kennel { position:absolute; bottom:10%; left:20%; width:40%; height:50%; background: linear-gradient(180deg, #2a384a 0%, #1a2840 100%); border-radius: 8% 8% 0 0; box-shadow: inset 0 -8px 16px rgba(0,0,0,.5); }
.scn-item-hounds-release .gate { position:absolute; bottom:15%; left:35%; width:8%; height:40%; background: linear-gradient(180deg, #0f1a24 0%, #000 100%); border-radius: 4px; transform-origin: left center; animation: ihr-gate 2s ease-in-out infinite; }
.scn-item-hounds-release .baron { position:absolute; bottom:30%; right:22%; width:22px; height:45px; background: linear-gradient(180deg, #0f1724 0%, #000 100%); border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%; transform-origin: bottom center; animation: ihr-figure 3s ease-in-out infinite; }
.scn-item-hounds-release .horse-hound { position:absolute; bottom:20%; right:18%; width:45px; height:30px; background: linear-gradient(135deg, #2a3a4a 0%, #0f1a24 100%); border-radius: 50% 10% 40% 40% / 60% 20% 60% 40%; animation: ihr-horse 3s ease-in-out infinite; }
.scn-item-hounds-release .hound-1 { position:absolute; bottom:12%; left:30%; width:20px; height:18px; background: linear-gradient(135deg, #3a4a5a 0%, #1a2a3a 100%); border-radius: 50% 30% 40% 40% / 60% 40% 60% 50%; animation: ihr-hound 1.5s ease-in-out infinite; }
.scn-item-hounds-release .hound-2 { position:absolute; bottom:10%; left:42%; width:22px; height:20px; background: linear-gradient(135deg, #2a3a4a 0%, #0f1a24 100%); border-radius: 50% 30% 40% 40% / 60% 40% 60% 50%; animation: ihr-hound 1.8s ease-in-out infinite 0.3s; }
.scn-item-hounds-release .dust { position:absolute; bottom:8%; left:25%; width:50%; height:12px; background: radial-gradient(ellipse, rgba(200,210,220,.15) 0%, transparent 70%); filter: blur(4px); animation: ihr-dust 2s ease-in-out infinite; }
@keyframes ihr-sky { 0% { opacity:.6 } 50% { opacity:1 } 100% { opacity:.8 } }
@keyframes ihr-moon { 0% { transform: scale(1); box-shadow: 0 0 25px 8px rgba(122,154,184,.6); } 50% { transform: scale(1.03); box-shadow: 0 0 35px 12px rgba(122,154,184,.8); } 100% { transform: scale(.97); box-shadow: 0 0 20px 6px rgba(122,154,184,.4); } }
@keyframes ihr-gate { 0%,100% { transform: rotate(0deg); } 50% { transform: rotate(25deg); } }
@keyframes ihr-figure { 0%,100% { transform: rotate(0deg); } 25% { transform: rotate(4deg) translateX(3px); } 75% { transform: rotate(-3deg) translateX(-2px); } }
@keyframes ihr-horse { 0%,100% { transform: rotate(-3deg) translateY(0); } 50% { transform: rotate(0deg) translateY(-4px); } }
@keyframes ihr-hound { 0%,100% { transform: translateX(0) rotate(0deg); } 25% { transform: translateX(8px) rotate(5deg); } 50% { transform: translateX(15px) rotate(-3deg); } 75% { transform: translateX(8px) rotate(2deg); } }
@keyframes ihr-dust { 0%,100% { opacity:.3; transform: scaleX(1); } 50% { opacity:.8; transform: scaleX(1.5); } }

/* lost-scent-sleigh-tracks (lst) */
.scn-lost-scent-sleigh-tracks {
  background: linear-gradient(180deg, #060e1a 0%, #0f1a2e 50%, #162240 100%),
              radial-gradient(ellipse at 50% 20%, #2a4a6a 0%, transparent 60%);
}
.scn-lost-scent-sleigh-tracks .sky { position:absolute; inset:0 0 35% 0; background: linear-gradient(180deg, #0a1424 0%, #162240 60%, transparent); animation: lst-sky 22s ease-in-out infinite alternate; }
.scn-lost-scent-sleigh-tracks .moon { position:absolute; top:6%; left:50%; width:55px; height:55px; background: radial-gradient(circle, #dce8f2 0%, #8aaac8 60%, transparent 70%); border-radius:50%; transform: translateX(-50%); box-shadow: 0 0 40px 15px rgba(138,170,200,.4); animation: lst-moon 15s ease-in-out infinite alternate; }
.scn-lost-scent-sleigh-tracks .ground { position:absolute; bottom:0; left:0; right:0; height:40%; background: linear-gradient(180deg, #1a2838 0%, #0f1a24 100%); border-radius: 60% 40% 0 0 / 30% 20% 0 0; }
.scn-lost-scent-sleigh-tracks .tracks { position:absolute; bottom:25%; left:10%; width:80%; height:4px; background: repeating-linear-gradient(90deg, rgba(255,255,255,.1) 0px, rgba(255,255,255,.1) 6px, transparent 6px, transparent 12px); animation: lst-tracks 8s linear infinite; }
.scn-lost-scent-sleigh-tracks .sleigh { position:absolute; bottom:22%; left:15%; width:40px; height:25px; background: linear-gradient(135deg, #2a3a4a 0%, #0f1a24 100%); border-radius: 20% 10% 30% 30% / 40% 20% 60% 50%; transform: rotate(2deg); animation: lst-sleigh 4s ease-in-out infinite; }
.scn-lost-scent-sleigh-tracks .figure-falter { position:absolute; bottom:30%; left:25%; width:18px; height:38px; background: linear-gradient(180deg, #0f1724 0%, #000 100%); border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%; transform-origin: bottom center; animation: lst-figure 5s ease-in-out infinite; }
.scn-lost-scent-sleigh-tracks .hound-slow-1 { position:absolute; bottom:18%; left:40%; width:20px; height:16px; background: linear-gradient(135deg, #2a3a4a 0%, #0f1a24 100%); border-radius: 50% 30% 40% 40% / 60% 40% 60% 50%; animation: lst-hound 7s ease-in-out infinite; }
.scn-lost-scent-sleigh-tracks .hound-slow-2 { position:absolute; bottom:15%; left:55%; width:22px; height:18px; background: linear-gradient(135deg, #1a2a3a 0%, #000 100%); border-radius: 50% 30% 40% 40% / 60% 40% 60% 50%; animation: lst-hound 7.5s ease-in-out infinite 1s; }
@keyframes lst-sky { 0% { opacity:.5 } 50% { opacity:1 } 100% { opacity:.7 } }
@keyframes lst-moon { 0% { transform: translateX(-50%) scale(1); box-shadow: 0 0 40px 15px rgba(138,170,200,.4); } 50% { transform: translateX(-50%) translateY(-5px) scale(1.05); box-shadow: 0 0 50px 20px rgba(138,170,200,.6); } 100% { transform: translateX(-50%) translateY(3px) scale(.95); box-shadow: 0 0 30px 10px rgba(138,170,200,.3); } }
@keyframes lst-tracks { 0% { background-position: 0 0; } 100% { background-position: -100% 0; } }
@keyframes lst-sleigh { 0%,100% { transform: rotate(2deg) translateY(0); } 50% { transform: rotate(-1deg) translateY(-5px); } }
@keyframes lst-figure { 0%,100% { transform: rotate(0deg) translateY(0); } 50% { transform: rotate(2deg) translateY(-3px); } }
@keyframes lst-hound { 0%,100% { transform: translateX(0) rotate(0deg); opacity:.7; } 25% { transform: translateX(-5px) rotate(-2deg); opacity:.5; } 50% { transform: translateX(5px) rotate(2deg); opacity:.9; } 75% { transform: translateX(-3px) rotate(1deg); opacity:.6; } }

/* pursuit-moon-plain (pmp) */
.scn-pursuit-moon-plain {
  background: linear-gradient(180deg, #060e1a 0%, #0f1a2e 50%, #162240 100%),
              radial-gradient(circle at 20% 30%, #2a4a6a 0%, transparent 80%);
}
.scn-pursuit-moon-plain .sky { position:absolute; inset:0 0 30% 0; background: linear-gradient(180deg, #0a1424 0%, #162240 60%, transparent); animation: pmp-sky 16s ease-in-out infinite alternate; }
.scn-pursuit-moon-plain .moon { position:absolute; top:6%; right:15%; width:50px; height:50px; background: radial-gradient(circle, #d0e0ee 0%, #7a9ab8 60%, transparent); border-radius:50%; box-shadow: 0 0 30px 10px rgba(122,154,184,.5); animation: pmp-moon 12s ease-in-out infinite alternate; }
.scn-pursuit-moon-plain .plain { position:absolute; bottom:0; left:0; right:0; height:35%; background: linear-gradient(180deg, #1a2838 0%, #0f1a24 100%); border-radius: 80% 20% 0 0 / 40% 10% 0 0; }
.scn-pursuit-moon-plain .rider { position:absolute; bottom:30%; right:25%; width:20px; height:40px; background: linear-gradient(180deg, #0f1724 0%, #000 100%); border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%; transform-origin: bottom center; animation: pmp-rider .8s ease-in-out infinite; }
.scn-pursuit-moon-plain .horse-gallop { position:absolute; bottom:20%; right:20%; width:50px; height:30px; background: linear-gradient(135deg, #2a3a4a 0%, #0f1a24 100%); border-radius: 50% 10% 40% 40% / 60% 20% 60% 40%; animation: pmp-horse .6s ease-in-out infinite; }
.scn-pursuit-moon-plain .whip { position:absolute; bottom:32%; right:28%; width:4px; height:30px; background: linear-gradient(180deg, #3a4a5a 0%, #0f1a24 100%); border-radius: 2px; transform-origin: 2px 0; animation: pmp-whip .4s ease-in-out infinite; }
.scn-pursuit-moon-plain .hound-run-1 { position:absolute; bottom:12%; left:30%; width:22px; height:18px; background: linear-gradient(135deg, #2a3a4a 0%, #0f1a24 100%); border-radius: 50% 30% 40% 40% / 60% 40% 60% 50%; animation: pmp-hound .5s ease-in-out infinite; }
.scn-pursuit-moon-plain .hound-run-2 { position:absolute; bottom:10%; left:45%; width:20px; height:16px; background: linear-gradient(135deg, #1a2a3a 0%, #000 100%); border-radius: 50% 30% 40% 40% / 60% 40% 60% 50%; animation: pmp-hound .55s ease-in-out infinite .1s; }
.scn-pursuit-moon-plain .dust-trail { position:absolute; bottom:8%; left:20%; width:60%; height:15px; background: radial-gradient(ellipse, rgba(200,210,220,.2) 0%, transparent 70%); filter: blur(5px); animation: pmp-dust 2s ease-in-out infinite; }
@keyframes pmp-sky { 0% { opacity:.7 } 50% { opacity:1 } 100% { opacity:.8 } }
@keyframes pmp-moon { 0% { transform: scale(1); box-shadow: 0 0 30px 10px rgba(122,154,184,.5); } 50% { transform: scale(1.02); box-shadow: 0 0 40px 15px rgba(122,154,184,.7); } 100% { transform: scale(.98); box-shadow: 0 0 25px 8px rgba(122,154,184,.4); } }
@keyframes pmp-rider { 0%,100% { transform: translateY(0) rotate(0deg); } 25% { transform: translateY(-8px) rotate(2deg); } 50% { transform: translateY(-2px) rotate(-1deg); } 75% { transform: translateY(-6px) rotate(1deg); } }
@keyframes pmp-horse { 0%,100% { transform: rotate(-2deg) translateY(0); } 25% { transform: rotate(1deg) translateY(-10px); } 50% { transform: rotate(0deg) translateY(-4px); } 75% { transform: rotate(-1deg) translateY(-8px); } }
@keyframes pmp-whip { 0%,100% { transform: rotate(10deg); } 50% { transform: rotate(-20deg); } }
@keyframes pmp-hound { 0%,100% { transform: translateX(0) rotate(0deg); } 25% { transform: translateX(12px) rotate(5deg); } 50% { transform: translateX(20px) rotate(-2deg); } 75% { transform: translateX(8px) rotate(3deg); } }
@keyframes pmp-dust { 0%,100% { opacity:.2; transform: scaleX(1); } 50% { opacity:.7; transform: scaleX(1.8); } }

.scn-first-view-baroness-drawing-room {
  background: linear-gradient(180deg, #1a1010 0%, #2a1818 50%, #3a2020 100%),
              radial-gradient(ellipse at 50% 60%, #8a4020 0%, transparent 70%);
}
.scn-first-view-baroness-drawing-room .bg-wall {
  position: absolute; inset: 0 0 35% 0;
  background: linear-gradient(180deg, #2a1818 0%, #1e1212 100%);
  border-radius: 0 0 30% 30% / 0 0 20% 20%;
}
.scn-first-view-baroness-drawing-room .bg-floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 35%;
  background: linear-gradient(180deg, #3a2520 0%, #1a1010 100%);
}
.scn-first-view-baroness-drawing-room .fireplace {
  position: absolute; bottom: 30%; left: 50%; width: 140px; height: 100px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #4a2a1a 0%, #2a1a10 100%);
  border-radius: 10% 10% 5% 5%;
  box-shadow: 0 6px 20px rgba(0,0,0,.6);
}
.scn-first-view-baroness-drawing-room .fire {
  position: absolute; bottom: 35%; left: 50%; width: 60px; height: 80px;
  transform: translateX(-50%);
  background: radial-gradient(ellipse at 50% 70%, #c8553d 0%, #8a4020 50%, transparent 100%);
  border-radius: 50% 50% 40% 40% / 70% 70% 30% 30%;
  box-shadow: 0 0 40px 20px rgba(200,85,61,.5), 0 0 80px 40px rgba(200,85,61,.3);
  animation: si1-fire 0.8s ease-in-out infinite alternate;
}
.scn-first-view-baroness-drawing-room .figure {
  position: absolute; bottom: 32%; left: 42%; width: 30px; height: 80px;
  background: linear-gradient(180deg, #0a0808 0%, #1a1010 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: si1-figure 4s ease-in-out infinite;
}
.scn-first-view-baroness-drawing-room .lamp {
  position: absolute; bottom: 45%; left: 30%; width: 20px; height: 30px;
  background: radial-gradient(circle, #d09050 0%, #a06030 100%);
  border-radius: 10% 10% 30% 30%;
  box-shadow: 0 0 30px 10px rgba(208,144,80,.4);
  animation: si1-lamp 6s ease-in-out infinite alternate;
}
.scn-first-view-baroness-drawing-room .shadow {
  position: absolute; bottom: 30%; left: 38%; width: 50px; height: 20px;
  background: radial-gradient(ellipse, rgba(0,0,0,.6) 0%, transparent 100%);
  border-radius: 50%;
  animation: si1-shadow 4s ease-in-out infinite;
}
.scn-first-view-baroness-drawing-room .flicker {
  position: absolute; inset: 0;
  background: radial-gradient(ellipse at 50% 60%, rgba(200,85,61,.1) 0%, transparent 60%);
  animation: si1-flicker 2s ease-in-out infinite alternate;
  pointer-events: none;
}
@keyframes si1-fire {
  0% { transform: translateX(-50%) scale(1); opacity: .8; }
  50% { transform: translateX(-50%) scale(1.05, 1.1); opacity: 1; }
  100% { transform: translateX(-50%) scale(.95, .9); opacity: .7; }
}
@keyframes si1-figure {
  0%,100% { transform: translateX(0) rotate(0deg); }
  25% { transform: translateX(2px) rotate(-2deg); }
  50% { transform: translateX(-1px) rotate(1deg); }
  75% { transform: translateX(3px) rotate(-1deg); }
}
@keyframes si1-lamp {
  0% { transform: translateY(0) rotate(0deg); box-shadow: 0 0 30px 10px rgba(208,144,80,.4); }
  50% { transform: translateY(-5px) rotate(3deg); box-shadow: 0 0 40px 15px rgba(208,144,80,.5); }
  100% { transform: translateY(0) rotate(-2deg); box-shadow: 0 0 30px 10px rgba(208,144,80,.4); }
}
@keyframes si1-shadow {
  0%,100% { transform: scale(1); opacity: .6; }
  50% { transform: scale(1.2); opacity: .4; }
}
@keyframes si1-flicker {
  0% { opacity: .3; }
  50% { opacity: .5; }
  100% { opacity: .2; }
}

.scn-recognition-barones-rathdrum {
  background: linear-gradient(180deg, #2a1a18 0%, #3a2820 50%, #4a3025 100%),
              radial-gradient(ellipse at 50% 50%, #d08050 0%, transparent 70%);
}
.scn-recognition-barones-rathdrum .bg-wall {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #3a2820 0%, #2a1a18 100%);
  border-radius: 0 0 40% 40% / 0 0 25% 25%;
}
.scn-recognition-barones-rathdrum .bg-floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #4a3025 0%, #2a1a18 100%);
}
.scn-recognition-barones-rathdrum .fireplace {
  position: absolute; bottom: 28%; left: 55%; width: 130px; height: 90px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #5a3020 0%, #3a2018 100%);
  border-radius: 10% 10% 5% 5%;
  box-shadow: 0 4px 15px rgba(0,0,0,.5);
}
.scn-recognition-barones-rathdrum .fire {
  position: absolute; bottom: 33%; left: 55%; width: 55px; height: 75px;
  transform: translateX(-50%);
  background: radial-gradient(ellipse at 50% 70%, #c8553d 0%, #a0461a 50%, transparent 100%);
  border-radius: 50% 50% 40% 40% / 70% 70% 30% 30%;
  box-shadow: 0 0 50px 25px rgba(200,85,61,.6), 0 0 80px 40px rgba(200,85,61,.3);
  animation: si2-fire 1s ease-in-out infinite alternate;
}
.scn-recognition-barones-rathdrum .figure-her {
  position: absolute; bottom: 28%; left: 45%; width: 28px; height: 75px;
  background: linear-gradient(180deg, #1a1210 0%, #0a0808 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: si2-figure-her 6s ease-in-out infinite;
}
.scn-recognition-barones-rathdrum .figure-her::after {
  content: '';
  position: absolute; top: -5px; left: -2px; width: 30px; height: 22px;
  background: linear-gradient(180deg, #1a1210 0%, transparent 100%);
  border-radius: 50% 50% 30% 30% / 70% 70% 30% 30%;
  transform: rotate(-15deg);
  animation: si2-hand 3s ease-in-out infinite alternate;
}
.scn-recognition-barones-rathdrum .figure-me {
  position: absolute; bottom: 28%; left: 58%; width: 28px; height: 75px;
  background: linear-gradient(180deg, #1a1210 0%, #0a0808 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: si2-figure-me 6s ease-in-out infinite;
}
.scn-recognition-barones-rathdrum .sparkles {
  position: absolute; top: 40%; left: 50%; width: 100%; height: 60%;
  pointer-events: none;
  background: radial-gradient(circle at 30% 50%, rgba(255,200,150,.6) 0%, transparent 4%),
              radial-gradient(circle at 60% 30%, rgba(255,200,150,.4) 0%, transparent 3%),
              radial-gradient(circle at 45% 70%, rgba(255,200,150,.5) 0%, transparent 3%),
              radial-gradient(circle at 70% 55%, rgba(255,200,150,.3) 0%, transparent 2%);
  animation: si2-sparkles 4s ease-in-out infinite alternate;
}
@keyframes si2-fire {
  0% { transform: translateX(-50%) scale(1); opacity: .9; }
  50% { transform: translateX(-50%) scale(1.03, 1.08); opacity: 1; }
  100% { transform: translateX(-50%) scale(.97, .92); opacity: .8; }
}
@keyframes si2-figure-her {
  0%,100% { transform: translateX(0) rotate(0deg); }
  33% { transform: translateX(2px) rotate(-1deg); }
  66% { transform: translateX(-1px) rotate(2deg); }
}
@keyframes si2-hand {
  0% { transform: rotate(-15deg) translateY(0); }
  50% { transform: rotate(-5deg) translateY(-3px); }
  100% { transform: rotate(-15deg) translateY(0); }
}
@keyframes si2-figure-me {
  0%,100% { transform: translateX(0) rotate(0deg); }
  25% { transform: translateX(-2px) rotate(1deg); }
  50% { transform: translateX(3px) rotate(-1deg); }
  75% { transform: translateX(-1px) rotate(0deg); }
}
@keyframes si2-sparkles {
  0% { opacity: .3; }
  50% { opacity: .7; }
  100% { opacity: .5; }
}

.scn-conversation-barones-changed {
  background: linear-gradient(180deg, #1a0e0a 0%, #2a1410 50%, #3a1a12 100%),
              radial-gradient(ellipse at 50% 60%, #a0461a 0%, transparent 70%);
}
.scn-conversation-barones-changed .bg-close {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, #1a0e0a 0%, #2a1410 30%, #3a1a12 60%, #1a0e0a 100%);
}
.scn-conversation-barones-changed .face-her {
  position: absolute; bottom: 30%; left: 35%; width: 40px; height: 50px;
  background: linear-gradient(180deg, #2a1a12 0%, #1a0e0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform: rotate(-10deg);
  animation: si3-face-her 5s ease-in-out infinite;
}
.scn-conversation-barones-changed .face-her::after {
  content: '';
  position: absolute; top: 15px; left: 5px; width: 4px; height: 4px;
  background: radial-gradient(circle, #e0c080 0%, transparent 100%);
  border-radius: 50%;
  box-shadow: 0 0 6px 2px rgba(224,192,128,.6);
  animation: si3-gaze 3s ease-in-out infinite alternate;
}
.scn-conversation-barones-changed .face-me {
  position: absolute; bottom: 30%; right: 35%; width: 40px; height: 50px;
  background: linear-gradient(180deg, #2a1a12 0%, #1a0e0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform: rotate(10deg) scaleX(-1);
  animation: si3-face-me 5s ease-in-out infinite;
}
.scn-conversation-barones-changed .fire {
  position: absolute; bottom: 25%; left: 50%; width: 70px; height: 90px;
  transform: translateX(-50%);
  background: radial-gradient(ellipse at 50% 70%, #c8553d 0%, #8a4020 40%, transparent 100%);
  border-radius: 50% 50% 40% 40% / 70% 70% 30% 30%;
  box-shadow: 0 0 60px 30px rgba(200,85,61,.5), 0 0 100px 50px rgba(200,85,61,.2);
  animation: si3-fire 0.6s ease-in-out infinite alternate;
}
.scn-conversation-barones-changed .shadow-throw {
  position: absolute; bottom: 28%; left: 30%; width: 80px; height: 40px;
  background: radial-gradient(ellipse, rgba(0,0,0,.7) 0%, transparent 100%);
  border-radius: 50%;
  animation: si3-shadow 5s ease-in-out infinite;
}
.scn-conversation-barones-changed .flicker {
  position: absolute; inset: 0;
  background: radial-gradient(ellipse at 50% 60%, rgba(200,85,61,.15) 0%, transparent 50%);
  animation: si3-flicker 1.5s ease-in-out infinite alternate;
  pointer-events: none;
}
@keyframes si3-face-her {
  0%,100% { transform: rotate(-10deg) translateY(0); }
  30% { transform: rotate(-8deg) translateY(-2px); }
  70% { transform: rotate(-12deg) translateY(1px); }
}
@keyframes si3-gaze {
  0% { opacity: .4; transform: translate(0,0); }
  50% { opacity: .8; transform: translate(1px,-1px); }
  100% { opacity: .5; transform: translate(-1px,1px); }
}
@keyframes si3-face-me {
  0%,100% { transform: rotate(10deg) scaleX(-1) translateY(0); }
  25% { transform: rotate(8deg) scaleX(-1) translateY(-1px); }
  75% { transform: rotate(12deg) scaleX(-1) translateY(1px); }
}
@keyframes si3-fire {
  0% { transform: translateX(-50%) scale(1); opacity: .7; }
  50% { transform: translateX(-50%) scale(1.06, 1.12); opacity: 1; }
  100% { transform: translateX(-50%) scale(.94, .88); opacity: .6; }
}
@keyframes si3-shadow {
  0%,100% { transform: scale(1); opacity: .6; }
  50% { transform: scale(1.3); opacity: .8; }
}
@keyframes si3-flicker {
  0% { opacity: .2; }
  50% { opacity: .6; }
  100% { opacity: .3; }
}

.scn-baroness-distracted-talk {
  background: linear-gradient(180deg, #1a1210 0%, #2a1a16 50%, #3a221a 100%),
              radial-gradient(ellipse at 50% 60%, #b05030 0%, transparent 70%);
}
.scn-baroness-distracted-talk .bg-wall {
  position: absolute; inset: 0 0 32% 0;
  background: linear-gradient(180deg, #2a1a16 0%, #1a1210 100%);
  border-radius: 0 0 35% 35% / 0 0 20% 20%;
}
.scn-baroness-distracted-talk .bg-floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 32%;
  background: linear-gradient(180deg, #3a221a 0%, #1a1210 100%);
}
.scn-baroness-distracted-talk .fireplace {
  position: absolute; bottom: 28%; left: 50%; width: 120px; height: 85px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #4a2a1a 0%, #2a1a10 100%);
  border-radius: 10% 10% 5% 5%;
  box-shadow: 0 4px 15px rgba(0,0,0,.5);
}
.scn-baroness-distracted-talk .fire {
  position: absolute; bottom: 33%; left: 50%; width: 60px; height: 80px;
  transform: translateX(-50%);
  background: radial-gradient(ellipse at 50% 70%, #c8553d 0%, #a0461a 50%, transparent 100%);
  border-radius: 50% 50% 40% 40% / 70% 70% 30% 30%;
  box-shadow: 0 0 50px 25px rgba(200,85,61,.5), 0 0 80px 40px rgba(200,85,61,.3);
  animation: si4-fire 1.2s ease-in-out infinite alternate;
}
.scn-baroness-distracted-talk .figure-baroness {
  position: absolute; bottom: 30%; left: 38%; width: 30px; height: 80px;
  background: linear-gradient(180deg, #1a1210 0%, #0a0808 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: si4-figure 7s ease-in-out infinite;
}
.scn-baroness-distracted-talk .figure-baroness::after {
  content: '';
  position: absolute; top: 0; right: -10px; width: 20px; height: 15px;
  background: linear-gradient(180deg, #2a1a12 0%, transparent 100%);
  border-radius: 50% 50% 10% 10% / 60% 60% 20% 20%;
  transform: rotate(20deg);
  animation: si4-arm 4s ease-in-out infinite alternate;
}
.scn-baroness-distracted-talk .chair {
  position: absolute; bottom: 26%; left: 60%; width: 50px; height: 60px;
  background: linear-gradient(180deg, #3a2a20 0%, #1a1210 100%);
  border-radius: 10% 10% 5% 5%;
  box-shadow: 0 4px 10px rgba(0,0,0,.4);
  animation: si4-chair 8s ease-in-out infinite;
}
.scn-baroness-distracted-talk .shadow {
  position: absolute; bottom: 28%; left: 35%; width: 60px; height: 30px;
  background: radial-gradient(ellipse, rgba(0,0,0,.6) 0%, transparent 100%);
  border-radius: 50%;
  animation: si4-shadow 7s ease-in-out infinite;
}
@keyframes si4-fire {
  0% { transform: translateX(-50%) scale(1); opacity: .8; }
  50% { transform: translateX(-50%) scale(1.04, 1.1); opacity: 1; }
  100% { transform: translateX(-50%) scale(.96, .9); opacity: .7; }
}
@keyframes si4-figure {
  0%,100% { transform: translateX(0) rotate(0deg); }
  20% { transform: translateX(1px) rotate(-1deg); }
  40% { transform: translateX(-2px) rotate(1deg); }
  60% { transform: translateX(3px) rotate(-2deg); }
  80% { transform: translateX(-1px) rotate(0deg); }
}
@keyframes si4-arm {
  0% { transform: rotate(20deg) translateY(0); }
  50% { transform: rotate(30deg) translateY(-4px); }
  100% { transform: rotate(15deg) translateY(0); }
}
@keyframes si4-chair {
  0%,100% { transform: translateY(0); }
  50% { transform: translateY(-2px); }
}
@keyframes si4-shadow {
  0%,100% { transform: scale(1); opacity: .5; }
  50% { transform: scale(1.1); opacity: .7; }
}

/* journey-to-yany-invitation */
.scn-journey-to-yany-invitation {
  background: linear-gradient(180deg, #f9d99e 0%, #f2b880 30%, #d48a6e 70%, #a65d4a 100%),
              radial-gradient(ellipse at 50% 100%, #f2b880 0%, transparent 60%);
}
.scn-journey-to-yany-invitation .sky-dawn {
  position: absolute; inset: 0 0 45% 0;
  background: linear-gradient(180deg, #ffdcb0 0%, #ffc994 40%, #e8a070 100%);
  animation: jy-sky 14s ease-in-out infinite alternate;
}
.scn-journey-to-yany-invitation .sun-hint {
  position: absolute; top: 25%; left: 65%; width: 60px; height: 60px;
  background: radial-gradient(circle, #ffe9b0 0%, #ffbb70 60%, transparent 100%);
  border-radius: 50%; filter: blur(8px);
  animation: jy-sun 20s ease-in-out infinite alternate;
}
.scn-journey-to-yany-invitation .hills-soft {
  position: absolute; bottom: 30%; left: 0; right: 0; height: 20%;
  background: linear-gradient(180deg, #a8a06a 0%, #7a6a4a 100%);
  border-radius: 50% 60% 0 0 / 70% 80% 0 0;
  box-shadow: inset 0 6px 15px rgba(0,0,0,0.25);
  animation: jy-hills 12s ease-in-out infinite alternate;
}
.scn-journey-to-yany-invitation .road-curve {
  position: absolute; bottom: 23%; left: 20%; right: 30%; height: 8%;
  background: linear-gradient(180deg, #c6a070 0%, #9c7a50 100%);
  border-radius: 40% 60% 10% 10% / 30% 40% 10% 10%;
  transform: skewX(-10deg);
  animation: jy-road 18s ease-in-out infinite alternate;
}
.scn-journey-to-yany-invitation .figure-walker {
  position: absolute; bottom: 24%; left: 35%; width: 16px; height: 36px;
  background: linear-gradient(180deg, #2a1a0a 0%, #3a2a1a 100%);
  border-radius: 50% 50% 40% 40% / 70% 70% 40% 40%;
  transform-origin: bottom center;
  animation: jy-walk 4s ease-in-out infinite;
}
.scn-journey-to-yany-invitation .distant-manor {
  position: absolute; bottom: 28%; right: 15%; width: 50px; height: 40px;
  background: linear-gradient(180deg, #6a4a3a 0%, #3a2a1a 100%);
  border-radius: 4% 4% 2% 2%;
  box-shadow: 0 4px 8px rgba(0,0,0,0.4);
  animation: jy-house 9s ease-in-out infinite;
}
.scn-journey-to-yany-invitation .cloud-drift-a {
  position: absolute; top: 12%; left: 10%; width: 90px; height: 18px;
  background: linear-gradient(180deg, rgba(255,230,200,0.6) 0%, rgba(255,190,140,0.15) 100%);
  border-radius: 50%; filter: blur(8px);
  animation: jy-drift-a 40s linear infinite;
}
.scn-journey-to-yany-invitation .cloud-drift-b {
  position: absolute; top: 20%; right: 20%; width: 60px; height: 12px;
  background: linear-gradient(180deg, rgba(255,210,160,0.5) 0%, rgba(255,170,110,0.1) 100%);
  border-radius: 50%; filter: blur(6px);
  animation: jy-drift-b 55s linear infinite reverse;
}
@keyframes jy-sky     { 0% { opacity:0.85 } 50% { opacity:1 } 100% { opacity:0.9 } }
@keyframes jy-sun     { 0% { transform:translate(0,0) scale(1) } 50% { transform:translate(4px,-3px) scale(1.08) } 100% { transform:translate(-2px,2px) scale(0.95) } }
@keyframes jy-hills   { 0% { transform:translateY(0) } 50% { transform:translateY(-4px) } 100% { transform:translateY(2px) } }
@keyframes jy-road    { 0% { transform:skewX(-10deg) translateY(0) } 50% { transform:skewX(-8deg) translateY(-2px) } 100% { transform:skewX(-12deg) translateY(1px) } }
@keyframes jy-walk    { 0% { transform:translateX(0) translateY(0) rotate(-2deg) } 25% { transform:translateX(8px) translateY(-1px) rotate(1deg) } 50% { transform:translateX(16px) translateY(0) rotate(-2deg) } 75% { transform:translateX(24px) translateY(-1px) rotate(1deg) } 100% { transform:translateX(32px) translateY(0) rotate(0) } }
@keyframes jy-house   { 0%,100% { transform:translateY(0) } 50% { transform:translateY(-2px) } }
@keyframes jy-drift-a { 0% { transform:translateX(-40px) } 100% { transform:translateX(130vw) } }
@keyframes jy-drift-b { 0% { transform:translateX(0) } 100% { transform:translateX(-110vw) } }

/* journey-carpathians-approach */
.scn-journey-carpathians-approach {
  background: linear-gradient(180deg, #b8b8b0 0%, #9a9a8a 30%, #6a6a5a 70%, #3a3a2a 100%),
              radial-gradient(ellipse at 50% 80%, #8a8a7a 0%, transparent 60%);
}
.scn-journey-carpathians-approach .overcast-sky {
  position: absolute; inset: 0 0 35% 0;
  background: linear-gradient(180deg, #d0d0c0 0%, #a0a090 50%, #707060 100%);
  animation: ca-sky 16s ease-in-out infinite alternate;
}
.scn-journey-carpathians-approach .far-horizon {
  position: absolute; bottom: 30%; left: 0; right: 0; height: 15%;
  background: linear-gradient(180deg, #5a5a4a 0%, #3a3a2a 100%);
  border-radius: 30% 70% 0 0 / 50% 60% 0 0;
  box-shadow: inset 0 4px 10px rgba(0,0,0,0.3);
  animation: ca-horizon 20s ease-in-out infinite alternate;
}
.scn-journey-carpathians-approach .road-dusty {
  position: absolute; bottom: 22%; left: 20%; right: 20%; height: 10%;
  background: linear-gradient(180deg, #8a7a5a 0%, #5a4a3a 100%);
  border-radius: 20% 80% 10% 10% / 40% 60% 10% 10%;
  transform: perspective(200px) rotateX(5deg);
  animation: ca-road 22s ease-in-out infinite alternate;
}
.scn-journey-carpathians-approach .cart-mule {
  position: absolute; bottom: 24%; left: 30%; width: 50px; height: 28px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 30% 30% 40% 40% / 50% 50% 30% 30%;
  box-shadow: 0 4px 6px rgba(0,0,0,0.4);
  animation: ca-cart 6s ease-in-out infinite;
}
.scn-journey-carpathians-approach .fiddler {
  position: absolute; bottom: 25%; left: 45%; width: 14px; height: 30px;
  background: linear-gradient(180deg, #1a1a0a 0%, #0a0a00 100%);
  border-radius: 50% 50% 40% 40% / 70% 70% 40% 40%;
  transform-origin: bottom;
  animation: ca-fiddler 3s ease-in-out infinite;
}
.scn-journey-carpathians-approach .campfire-hint {
  position: absolute; bottom: 27%; left: 55%; width: 10px; height: 10px;
  background: radial-gradient(circle, #e89050 0%, #c07030 50%, transparent 100%);
  border-radius: 50%; box-shadow: 0 0 20px 6px #c07030;
  animation: ca-fire 4s ease-in-out infinite alternate;
}
.scn-journey-carpathians-approach .mist-bank {
  position: absolute; bottom: 20%; left: 0; right: 0; height: 25%;
  background: linear-gradient(180deg, rgba(160,150,140,0.3) 0%, rgba(100,90,80,0.05) 100%);
  filter: blur(12px);
  animation: ca-mist 30s ease-in-out infinite alternate;
}
@keyframes ca-sky      { 0% { opacity:0.8 } 50% { opacity:1 } 100% { opacity:0.85 } }
@keyframes ca-horizon  { 0% { transform:translateY(0) scale(1) } 50% { transform:translateY(-3px) scale(0.98) } 100% { transform:translateY(2px) scale(1) } }
@keyframes ca-road     { 0% { transform:perspective(200px) rotateX(5deg) translateY(0) } 50% { transform:perspective(200px) rotateX(6deg) translateY(-2px) } 100% { transform:perspective(200px) rotateX(4deg) translateY(1px) } }
@keyframes ca-cart     { 0%,100% { transform:translateX(0) translateY(0) rotate(0) } 25% { transform:translateX(3px) translateY(-1px) rotate(1deg) } 50% { transform:translateX(6px) translateY(0) rotate(-1deg) } 75% { transform:translateX(9px) translateY(-1px) rotate(1deg) } }
@keyframes ca-fiddler  { 0% { transform:translateY(0) rotate(-3deg) } 50% { transform:translateY(-2px) rotate(3deg) } 100% { transform:translateY(0) rotate(-2deg) } }
@keyframes ca-fire     { 0% { box-shadow:0 0 15px 4px #c07030; opacity:0.7 } 50% { box-shadow:0 0 25px 8px #e89050; opacity:1 } 100% { box-shadow:0 0 12px 3px #b06020; opacity:0.8 } }
@keyframes ca-mist     { 0% { opacity:0.2 } 50% { opacity:0.6 } 100% { opacity:0.3 } }

/* arrival-yany-evening */
.scn-arrival-yany-evening {
  background: linear-gradient(180deg, #1a0a0a 0%, #2a1010 20%, #4a1a0a 50%, #2a0a00 100%),
              radial-gradient(ellipse at 80% 40%, #6a3020 0%, transparent 60%);
}
.scn-arrival-yany-evening .dusk-sky {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #4a1010 0%, #6a2020 30%, #8a2a1a 60%, #3a0a0a 100%);
  animation: ay-sky 15s ease-in-out infinite alternate;
}
.scn-arrival-yany-evening .copper-gleam {
  position: absolute; top: 20%; right: 30%; width: 80px; height: 80px;
  background: radial-gradient(circle, #c06030 0%, #8a3010 50%, transparent 100%);
  border-radius: 50%; filter: blur(14px);
  animation: ay-gleam 18s ease-in-out infinite alternate;
}
.scn-arrival-yany-evening .house-silhouette {
  position: absolute; bottom: 25%; left: 25%; right: 25%; height: 50%;
  background: linear-gradient(180deg, #0a0500 0%, #1a0a00 100%);
  border-radius: 20% 20% 0 0 / 60% 60% 0 0;
  box-shadow: inset 0 -20px 40px rgba(0,0,0,0.8);
  animation: ay-house 20s ease-in-out infinite alternate;
}
.scn-arrival-yany-evening .poplar-row {
  position: absolute; bottom: 28%; left: 15%; right: 15%; height: 30%;
  background: linear-gradient(180deg, #0a0500 0%, #1a0a00 50%, #0a0500 100%);
  border-radius: 50% 50% 0 0 / 80% 80% 0 0;
  clip-path: polygon(10% 0%, 15% 100%, 20% 100%, 25% 0%, 35% 0%, 40% 100%, 45% 100%, 50% 0%, 60% 0%, 65% 100%, 70% 100%, 75% 0%, 85% 0%, 90% 100%, 95% 100%, 100% 0%);
  animation: ay-poplar 25s ease-in-out infinite alternate;
}
.scn-arrival-yany-evening .snow-mist {
  position: absolute; bottom: 0; left: 0; right: 0; height: 40%;
  background: linear-gradient(180deg, rgba(180,180,200,0.2) 0%, rgba(120,120,140,0.1) 100%);
  filter: blur(12px);
  animation: ay-mist 30s ease-in-out infinite alternate;
}
.scn-arrival-yany-evening .ground-shadow {
  position: absolute; bottom: 0; left: 0; right: 0; height: 25%;
  background: linear-gradient(180deg, #0a0500 0%, #050200 100%);
  border-radius: 20% 20% 0 0 / 30% 30% 0 0;
}
.scn-arrival-yany-evening .lantern-pair {
  position: absolute; bottom: 28%; left: 30%; width: 6px; height: 16px;
  background: linear-gradient(180deg, #c08040 0%, #a06020 100%);
  border-radius: 50% 50% 20% 20% / 40% 40% 20% 20%;
  box-shadow: 0 0 10px 3px #a06020, 0 0 20px 6px rgba(160,96,32,0.5);
  animation: ay-lantern 4s ease-in-out infinite alternate;
}
@keyframes ay-sky     { 0% { opacity:0.8 } 50% { opacity:1 } 100% { opacity:0.85 } }
@keyframes ay-gleam   { 0% { transform:scale(0.9) translate(0,0) } 50% { transform:scale(1.1) translate(-5px,3px) } 100% { transform:scale(0.95) translate(2px,-2px) } }
@keyframes ay-house   { 0% { transform:scaleY(1) } 50% { transform:scaleY(1.02) translateY(-2px) } 100% { transform:scaleY(0.98) translateY(1px) } }
@keyframes ay-poplar  { 0% { transform:translateY(0) rotate(0) } 50% { transform:translateY(-3px) rotate(1deg) } 100% { transform:translateY(2px) rotate(-1deg) } }
@keyframes ay-mist    { 0% { opacity:0.2 } 50% { opacity:0.7 } 100% { opacity:0.3 } }
@keyframes ay-lantern { 0% { box-shadow:0 0 8px 2px #a06020; opacity:0.5 } 50% { box-shadow:0 0 18px 6px #c08040; opacity:1 } 100% { box-shadow:0 0 10px 3px #a06020; opacity:0.6 } }

/* inside-yany-warm-interior */
.scn-inside-yany-warm-interior {
  background: linear-gradient(180deg, #2a1a0a 0%, #4a2a10 30%, #6a3a18 70%, #3a1a08 100%),
              radial-gradient(ellipse at 50% 80%, #6a3a18 0%, transparent 60%);
}
.scn-inside-yany-warm-interior .interior-walls {
  position: absolute; inset: 0;
  background: linear-gradient(135deg, #2a1a0a 0%, #4a2a10 50%, #3a1a08 100%);
  animation: iy-walls 20s ease-in-out infinite alternate;
}
.scn-inside-yany-warm-interior .fireplace-glow {
  position: absolute; bottom: 15%; left: 30%; width: 80px; height: 80px;
  background: radial-gradient(circle, #ff8844 0%, #cc5522 40%, #883311 70%, transparent 100%);
  border-radius: 50%; filter: blur(20px);
  animation: iy-fire 5s ease-in-out infinite alternate;
}
.scn-inside-yany-warm-interior .butler-figure {
  position: absolute; bottom: 10%; left: 20%; width: 18px; height: 48px;
  background: linear-gradient(180deg, #1a1a1a 0%, #0a0a0a 100%);
  border-radius: 50% 50% 40% 40% / 70% 70% 40% 40%;
  transform-origin: bottom center;
  animation: iy-butler 8s ease-in-out infinite;
}
.scn-inside-yany-warm-interior .chandelier {
  position: absolute; top: 10%; left: 35%; width: 40px; height: 30px;
  background: linear-gradient(180deg, #c0a060 0%, #a08040 100%);
  border-radius: 50% 50% 20% 20% / 60% 60% 30% 30%;
  box-shadow: 0 0 20px 6px rgba(192,160,96,0.5);
  animation: iy-chandelier 12s ease-in-out infinite alternate;
}
.scn-inside-yany-warm-interior .window-bleak {
  position: absolute; top: 22%; right: 15%; width: 50px; height: 60px;
  background: linear-gradient(180deg, #1a2a3a 0%, #0a1a2a 100%);
  border: 3px solid #4a2a10;
  border-radius: 4px;
  box-shadow: inset 0 0 10px rgba(0,0,0,0.6);
  animation: iy-window 16s ease-in-out infinite alternate;
}
.scn-inside-yany-warm-interior .table-cloth {
  position: absolute; bottom: 8%; left: 40%; width: 70px; height: 20px;
  background: linear-gradient(180deg, #e8d0a0 0%, #c8a870 100%);
  border-radius: 10% 10% 30% 30% / 30% 30% 50% 50%;
  box-shadow: 0 4px 8px rgba(0,0,0,0.3);
  animation: iy-cloth 10s ease-in-out infinite alternate;
}
.scn-inside-yany-warm-interior .candle-flame {
  position: absolute; bottom: 16%; left: 48%; width: 6px; height: 14px;
  background: linear-gradient(180deg, #ffdd88 0%, #ffaa44 50%, #cc6622 100%);
  border-radius: 50% 50% 30% 30% / 70% 70% 40% 40%;
  box-shadow: 0 0 12px 3px #ffaa44, 0 0 24px 6px rgba(255,170,68,0.4);
  animation: iy-candle 2s ease-in-out infinite alternate;
}
@keyframes iy-walls     { 0% { opacity:0.9 } 50% { opacity:1 } 100% { opacity:0.95 } }
@keyframes iy-fire      { 0% { transform:scale(0.9) translate(0,0) } 50% { transform:scale(1.15) translate(3px,-4px) } 100% { transform:scale(0.95) translate(-2px,2px) } }
@keyframes iy-butler    { 0% { transform:translateX(0) rotate(0) } 25% { transform:translateX(4px) rotate(1deg) } 50% { transform:translateX(8px) rotate(-1deg) } 75% { transform:translateX(12px) rotate(0) } 100% { transform:translateX(16px) rotate(1deg) } }
@keyframes iy-chandelier { 0% { transform:rotate(-2deg) scale(1) } 50% { transform:rotate(2deg) scale(1.03) } 100% { transform:rotate(-1deg) scale(0.97) } }
@keyframes iy-window    { 0% { opacity:0.4 } 50% { opacity:0.8 } 100% { opacity:0.5 } }
@keyframes iy-cloth     { 0% { transform:skewX(0) } 50% { transform:skewX(2deg) } 100% { transform:skewX(-2deg) } }
@keyframes iy-candle    { 0% { transform:scaleY(1) translateY(0) } 50% { transform:scaleY(1.2) translateY(-2px) } 100% { transform:scaleY(0.9) translateY(1px) } }

.scn-hounds-howling-hunting-prep {
  background: linear-gradient(180deg, #2a1a1a 0%, #3a2a1a 40%, #1a1a0a 100%),
              radial-gradient(ellipse at 50% 30%, #4a3a2a 0%, transparent 60%);
}
.scn-hounds-howling-hunting-prep .wall {
  position: absolute; inset: 0; background: linear-gradient(90deg, rgba(40,25,10,.6) 0%, transparent 50%, rgba(40,25,10,.6) 100%);
}
.scn-hounds-howling-hunting-prep .door {
  position: absolute; bottom: 0; left: 50%; width: 60px; height: 100px; transform: translateX(-50%);
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius: 4% 4% 0 0; box-shadow: inset 0 4px 8px #1a0a00;
  animation: hh-door 6s ease-in-out infinite alternate;
}
.scn-hounds-howling-hunting-prep .hound-a,
.scn-hounds-howling-hunting-prep .hound-b {
  position: absolute; bottom: 10%; width: 40px; height: 30px; background: #1a1a0a;
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; box-shadow: 0 2px 6px #000;
}
.scn-hounds-howling-hunting-prep .hound-a { left: 20%; animation: hh-howl-a 4s ease-in-out infinite; }
.scn-hounds-howling-hunting-prep .hound-b { right: 20%; animation: hh-howl-b 4s ease-in-out infinite 2s; }
.scn-hounds-howling-hunting-prep .baron {
  position: absolute; bottom: 10%; left: 45%; width: 30px; height: 50px;
  background: linear-gradient(180deg, #2a1a1a 0%, #0a0505 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center;
  animation: hh-baron 8s ease-in-out infinite;
}
.scn-hounds-howling-hunting-prep .lantern {
  position: absolute; bottom: 18%; left: 30%; width: 8px; height: 8px;
  background: radial-gradient(circle, #d08040 0%, #a06030 70%); border-radius: 50%;
  box-shadow: 0 0 20px 6px #c07040, 0 0 40px 12px rgba(192,112,64,.3);
  animation: hh-lantern 3s ease-in-out infinite alternate;
}
.scn-hounds-howling-hunting-prep .shadow {
  position: absolute; bottom: 0; left: 0; right: 0; height: 20%;
  background: linear-gradient(180deg, transparent, rgba(0,0,0,.6));
  animation: hh-shadow 12s ease-in-out infinite;
}
@keyframes hh-door { 0% { transform: translateX(-50%) scaleY(1); } 50% { transform: translateX(-50%) scaleY(1.02); } 100% { transform: translateX(-50%) scaleY(0.98); } }
@keyframes hh-howl-a { 0% { transform: translateY(0) scale(1); } 25% { transform: translateY(-4px) scale(1.1); opacity: .9; } 50% { transform: translateY(0) scale(1); } 75% { transform: translateY(-2px) scale(1.05); } 100% { transform: translateY(0) scale(1); } }
@keyframes hh-howl-b { 0% { transform: translateY(0) scale(1); } 25% { transform: translateY(-3px) scale(1.08); } 50% { transform: translateY(0) scale(1); opacity: .9; } 75% { transform: translateY(-5px) scale(1.12); } 100% { transform: translateY(0) scale(1); } }
@keyframes hh-baron { 0%,100% { transform: rotate(0deg); } 25% { transform: rotate(-2deg); } 75% { transform: rotate(2deg); } }
@keyframes hh-lantern { 0% { box-shadow: 0 0 15px 4px #c07040; opacity: .8; } 50% { box-shadow: 0 0 25px 8px #e09050; opacity: 1; } 100% { box-shadow: 0 0 15px 4px #c07040; opacity: .85; } }
@keyframes hh-shadow { 0%,100% { opacity: .6; } 50% { opacity: .8; } }

.scn-marshfield-prepares-pistols {
  background: linear-gradient(180deg, #2a1a0a 0%, #3a2a1a 50%, #1a1008 100%),
              radial-gradient(ellipse at 50% 100%, #4a3a2a 0%, transparent 70%);
}
.scn-marshfield-prepares-pistols .wall {
  position: absolute; inset: 0; background: linear-gradient(90deg, #1a1008 0%, transparent 40%, transparent 60%, #1a1008 100%);
}
.scn-marshfield-prepares-pistols .table {
  position: absolute; bottom: 20%; left: 30%; width: 60px; height: 8px;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%); border-radius: 2px;
  box-shadow: 0 2px 4px #000; animation: mp-table 10s ease-in-out infinite;
}
.scn-marshfield-prepares-pistols .pistols {
  position: absolute; bottom: 26%; left: 35%; width: 20px; height: 4px;
  background: #4a3a2a; border-radius: 2px; transform: rotate(-10deg);
  box-shadow: 0 0 2px #a08060; animation: mp-pistols 8s ease-in-out infinite alternate;
}
.scn-marshfield-prepares-pistols .marshfield {
  position: absolute; bottom: 8%; left: 45%; width: 28px; height: 50px;
  background: linear-gradient(180deg, #2a1a1a 0%, #0a0505 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center;
  animation: mp-marshfield 6s ease-in-out infinite;
}
.scn-marshfield-prepares-pistols .candle {
  position: absolute; bottom: 32%; left: 32%; width: 4px; height: 10px;
  background: linear-gradient(180deg, #d09050 0%, #a06030 100%); border-radius: 50% 50% 0 0;
}
.scn-marshfield-prepares-pistols .glow {
  position: absolute; bottom: 30%; left: 30%; width: 30px; height: 30px;
  background: radial-gradient(circle, rgba(200,140,80,.4) 0%, transparent 70%);
  box-shadow: 0 0 20px 10px rgba(200,140,80,.3); border-radius: 50%;
  animation: mp-glow 4s ease-in-out infinite alternate;
}
.scn-marshfield-prepares-pistols .bed {
  position: absolute; bottom: 0; left: 50%; width: 70px; height: 40px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 8% 8% 0 0; box-shadow: inset 0 4px 8px #1a0a00;
  transform: translateX(-50%); animation: mp-bed 15s ease-in-out infinite;
}
@keyframes mp-table { 0%,100% { transform: translateY(0); } 50% { transform: translateY(-1px); } }
@keyframes mp-pistols { 0% { opacity: .6; } 100% { opacity: 1; transform: rotate(-5deg); } }
@keyframes mp-marshfield { 0% { transform: rotate(0deg) translateY(0); } 25% { transform: rotate(1deg) translateY(-2px); } 50% { transform: rotate(0deg) translateY(0); } 75% { transform: rotate(-1deg) translateY(-1px); } 100% { transform: rotate(0deg) translateY(0); } }
@keyframes mp-glow { 0% { opacity: .5; transform: scale(.9); } 100% { opacity: .9; transform: scale(1.2); } }
@keyframes mp-bed { 0%,100% { transform: translateX(-50%); } 50% { transform: translateX(-50%) translateY(-2px); } }

.scn-baron-rises-moonlight {
  background: linear-gradient(180deg, #0a0a2a 0%, #1a1a3a 40%, #2a2a4a 100%),
              radial-gradient(ellipse at 50% 20%, #3a3a5a 0%, transparent 70%);
}
.scn-baron-rises-moonlight .moon-window {
  position: absolute; top: 10%; left: 35%; width: 60px; height: 80px;
  background: linear-gradient(180deg, #4a4a6a 0%, #2a2a4a 100%);
  border-radius: 4% 4% 0 0; box-shadow: inset 0 0 10px #6a6a8a;
  animation: br-window 12s ease-in-out infinite alternate;
}
.scn-baron-rises-moonlight .moonlight {
  position: absolute; top: 15%; left: 35%; width: 60px; height: 150px;
  background: linear-gradient(180deg, rgba(200,200,255,.3) 0%, transparent 100%);
  clip-path: polygon(0 0, 100% 0, 70% 100%, 30% 100%);
  animation: br-moonlight 8s ease-in-out infinite alternate;
}
.scn-baron-rises-moonlight .baron-rise {
  position: absolute; bottom: 10%; left: 45%; width: 28px; height: 60px;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center;
  animation: br-baron 5s ease-in-out infinite;
}
.scn-baron-rises-moonlight .lamp-off {
  position: absolute; bottom: 18%; left: 30%; width: 10px; height: 14px;
  background: #2a2a3a; border-radius: 50% 50% 0 0; box-shadow: inset 0 -2px 4px #000;
  animation: br-lamp 10s ease-in-out infinite;
}
.scn-baron-rises-moonlight .chair {
  position: absolute; bottom: 0; left: 52%; width: 30px; height: 30px;
  background: #1a1a2a; border-radius: 10% 10% 0 0; box-shadow: inset 0 4px 6px #000;
  animation: br-chair 20s ease-in-out infinite;
}
.scn-baron-rises-moonlight .shadow-rise {
  position: absolute; bottom: 0; left: 0; right: 0; height: 15%;
  background: linear-gradient(180deg, transparent, rgba(0,0,0,.7));
  animation: br-shadow 5s ease-in-out infinite;
}
@keyframes br-window { 0% { opacity: .8; } 50% { opacity: 1; } 100% { opacity: .7; } }
@keyframes br-moonlight { 0% { opacity: .4; transform: scaleY(.9); } 50% { opacity: .7; transform: scaleY(1.1); } 100% { opacity: .5; transform: scaleY(.95); } }
@keyframes br-baron { 0% { transform: translateY(0) scaleY(1); } 25% { transform: translateY(-10px) scaleY(1.05); } 50% { transform: translateY(0) scaleY(1); } 75% { transform: translateY(-5px) scaleY(1.02); } 100% { transform: translateY(0) scaleY(1); } }
@keyframes br-lamp { 0%,100% { opacity: .3; } 50% { opacity: .5; } }
@keyframes br-chair { 0%,100% { transform: rotate(0deg); } 50% { transform: rotate(1deg) translateY(-1px); } }
@keyframes br-shadow { 0%,100% { opacity: .5; } 50% { opacity: .8; } }

.scn-sleigh-bells-hounds-chase {
  background: linear-gradient(180deg, #0a0a2a 0%, #1a1a3a 50%, #2a2a4a 100%),
              radial-gradient(ellipse at 50% 80%, #3a3a5a 0%, transparent 60%);
}
.scn-sleigh-bells-hounds-chase .moon {
  position: absolute; top: 8%; left: 20%; width: 40px; height: 40px;
  background: radial-gradient(circle at 50% 50%, #e0e0ff 0%, #a0a0c0 100%);
  border-radius: 50%; box-shadow: 0 0 30px 10px rgba(200,200,255,.4);
  animation: sb-moon 10s ease-in-out infinite;
}
.scn-sleigh-bells-hounds-chase .snow {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #4a4a6a 0%, #2a2a4a 100%);
  border-radius: 60% 40% 0 0 / 30% 20% 0 0; box-shadow: inset 0 8px 12px #1a1a3a;
  animation: sb-snow 20s linear infinite;
}
.scn-sleigh-bells-hounds-chase .sleigh {
  position: absolute; bottom: 8%; left: 30%; width: 60px; height: 20px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 30% 30% 0 0; transform: rotate(-5deg); box-shadow: 0 4px 8px #000;
  animation: sb-sleigh 4s ease-in-out infinite;
}
.scn-sleigh-bells-hounds-chase .hound-c,
.scn-sleigh-bells-hounds-chase .hound-d {
  position: absolute; bottom: 5%; width: 30px; height: 20px;
  background: #1a1a2a; border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  box-shadow: 0 2px 4px #000;
}
.scn-sleigh-bells-hounds-chase .hound-c { left: 45%; animation: sb-hound-c 3s ease-in-out infinite; }
.scn-sleigh-bells-hounds-chase .hound-d { left: 55%; animation: sb-hound-d 3s ease-in-out infinite 1.5s; }
.scn-sleigh-bells-hounds-chase .figures {
  position: absolute; bottom: 10%; left: 35%; width: 24px; height: 30px;
  background: #1a1a2a; border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: sb-figures 5s ease-in-out infinite;
}
.scn-sleigh-bells-hounds-chase .tree-a,
.scn-sleigh-bells-hounds-chase .tree-b {
  position: absolute; bottom: 10%; width: 16px; height: 60px;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 20% 20% 0 0; box-shadow: 0 2px 6px #000;
}
.scn-sleigh-bells-hounds-chase .tree-a { left: 10%; animation: sb-tree-a 15s ease-in-out infinite; }
.scn-sleigh-bells-hounds-chase .tree-b { right: 15%; animation: sb-tree-b 15s ease-in-out infinite 7s; }
@keyframes sb-moon { 0%,100% { opacity: .9; transform: scale(1); } 50% { opacity: 1; transform: scale(1.05); } }
@keyframes sb-snow { 0% { background-position: 0 0; } 100% { background-position: 50px 0; } }
@keyframes sb-sleigh { 0% { transform: rotate(-5deg) translateY(0); } 25% { transform: rotate(-4deg) translateY(-2px); } 50% { transform: rotate(-5deg) translateY(0); } 75% { transform: rotate(-6deg) translateY(-1px); } 100% { transform: rotate(-5deg) translateY(0); } }
@keyframes sb-hound-c { 0% { transform: translateX(0) rotate(0deg); } 20% { transform: translateX(8px) rotate(5deg); } 40% { transform: translateX(16px) rotate(-3deg); } 60% { transform: translateX(24px) rotate(4deg); } 80% { transform: translateX(32px) rotate(-2deg); } 100% { transform: translateX(40px) rotate(0deg); } }
@keyframes sb-hound-d { 0% { transform: translateX(0) rotate(0deg); } 20% { transform: translateX(6px) rotate(-4deg); } 40% { transform: translateX(12px) rotate(3deg); } 60% { transform: translateX(18px) rotate(-5deg); } 80% { transform: translateX(24px) rotate(2deg); } 100% { transform: translateX(30px) rotate(0deg); } }
@keyframes sb-figures { 0% { transform: translateY(0) rotate(0deg); } 25% { transform: translateY(-2px) rotate(-1deg); } 50% { transform: translateY(0) rotate(0deg); } 75% { transform: translateY(-1px) rotate(1deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes sb-tree-a { 0%,100% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-2px) rotate(-1deg); } }
@keyframes sb-tree-b { 0%,100% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-3px) rotate(1deg); } }

/* scene: sighting-sleigh-passengers */
.scn-sighting-sleigh-passengers {
  background: linear-gradient(180deg, #0c0c2a 0%, #1a1a3e 40%, #2a2a5e 70%, #1e1e3a 100%), radial-gradient(ellipse at 50% 100%, #3a3a6e 0%, transparent 60%);
}
.scn-sighting-sleigh-passengers .sky {
  position: absolute; inset: 0; background: linear-gradient(180deg, #0a0a1e 0%, #16163a 100%); animation: stg-sky 12s ease-in-out infinite alternate;
}
.scn-sighting-sleigh-passengers .moon-glow {
  position: absolute; top: 12%; right: 20%; width: 80px; height: 80px; background: radial-gradient(circle at 30% 30%, rgba(200,210,255,0.3) 0%, rgba(180,190,255,0.1) 40%, transparent 70%); border-radius: 50%; filter: blur(10px); animation: stg-moon 8s ease-in-out infinite alternate;
}
.scn-sighting-sleigh-passengers .hills {
  position: absolute; bottom: 28%; left: 0; right: 0; height: 30%; background: linear-gradient(180deg, #1a2a2a 0%, #0f1a1f 100%); border-radius: 60% 40% 0 0 / 80% 70% 0 0; box-shadow: inset 0 8px 20px rgba(0,0,0,0.5); animation: stg-hills 18s ease-in-out infinite alternate;
}
.scn-sighting-sleigh-passengers .sleigh {
  position: absolute; bottom: 22%; left: 30%; width: 140px; height: 40px; background: linear-gradient(180deg, #1a1a2e 0%, #0a0a1a 100%); border-radius: 20% 10% 30% 10%; box-shadow: 0 4px 12px rgba(0,0,0,0.7); transform: rotate(-2deg); animation: stg-sleigh 4s ease-in-out infinite;
}
.scn-sighting-sleigh-passengers .figure-passenger-1 {
  position: absolute; bottom: 24%; left: 38%; width: 30px; height: 50px; background: linear-gradient(180deg, #1c1c30 0%, #0a0a1a 100%); border-radius: 30% 30% 20% 20% / 50% 50% 30% 30%; transform: rotate(3deg); animation: stg-figure 3s ease-in-out infinite;
}
.scn-sighting-sleigh-passengers .figure-passenger-2 {
  position: absolute; bottom: 24%; left: 44%; width: 28px; height: 48px; background: linear-gradient(180deg, #1e1e32 0%, #0c0c1e 100%); border-radius: 30% 30% 20% 20% / 50% 50% 30% 30%; transform: rotate(-2deg); animation: stg-figure 3.2s ease-in-out infinite 0.3s;
}
.scn-sighting-sleigh-passengers .hound-1 {
  position: absolute; bottom: 20%; left: 55%; width: 40px; height: 20px; background: linear-gradient(180deg, #1a1a2e 0%, #0e0e1a 100%); border-radius: 40% 40% 30% 30%; transform: skewX(-10deg); animation: stg-hound 2s ease-in-out infinite;
}
.scn-sighting-sleigh-passengers .hound-2 {
  position: absolute; bottom: 19%; left: 62%; width: 36px; height: 18px; background: linear-gradient(180deg, #16162a 0%, #0a0a16 100%); border-radius: 40% 40% 30% 30%; transform: skewX(-15deg); animation: stg-hound 2.3s ease-in-out infinite 0.4s;
}
.scn-sighting-sleigh-passengers .ground-blur {
  position: absolute; bottom: 0; left: 0; right: 0; height: 22%; background: linear-gradient(0deg, #0a0a1a 0%, transparent 100%); filter: blur(4px); animation: stg-ground 5s ease-in-out infinite alternate;
}
@keyframes stg-sky { 0% { opacity: 0.7; } 50% { opacity: 1; } 100% { opacity: 0.8; } }
@keyframes stg-moon { 0% { transform: scale(1) translate(0, 0); opacity: 0.6; } 50% { transform: scale(1.05) translate(2px, -2px); opacity: 0.9; } 100% { transform: scale(0.98) translate(-1px, 1px); opacity: 0.7; } }
@keyframes stg-hills { 0% { transform: translateY(0); } 50% { transform: translateY(-3px); } 100% { transform: translateY(0); } }
@keyframes stg-sleigh { 0% { transform: rotate(-2deg) translateX(0); } 30% { transform: rotate(-3deg) translateX(-2px); } 60% { transform: rotate(-1deg) translateX(3px); } 100% { transform: rotate(-2deg) translateX(0); } }
@keyframes stg-figure { 0% { transform: rotate(0deg) translateY(0); } 25% { transform: rotate(2deg) translateY(-2px); } 50% { transform: rotate(-1deg) translateY(0); } 75% { transform: rotate(1deg) translateY(-1px); } 100% { transform: rotate(0deg) translateY(0); } }
@keyframes stg-hound { 0% { transform: skewX(-10deg) translateX(0); } 50% { transform: skewX(-15deg) translateX(4px); } 100% { transform: skewX(-10deg) translateX(0); } }
@keyframes stg-ground { 0% { opacity: 0.3; } 50% { opacity: 0.6; } 100% { opacity: 0.4; } }

/* scene: marshfield-realization-quarry */
.scn-marshfield-realization-quarry {
  background: linear-gradient(180deg, #0a0a1e 0%, #1a1a3e 50%, #2a2a5e 100%), radial-gradient(ellipse at 50% 0%, #3a3a6e 0%, transparent 80%);
}
.scn-marshfield-realization-quarry .sky {
  position: absolute; inset: 0; background: linear-gradient(180deg, #0e0e2e 0%, #1a1a3e 100%); animation: mrq-sky 10s ease-in-out infinite alternate;
}
.scn-marshfield-realization-quarry .moon {
  position: absolute; top: 10%; left: 50%; transform: translateX(-50%); width: 60px; height: 60px; background: radial-gradient(circle at 40% 40%, #d0d8ff 0%, #a0a8e0 40%, transparent 70%); border-radius: 50%; box-shadow: 0 0 30px 10px rgba(160,168,224,0.3); animation: mrq-moon 6s ease-in-out infinite alternate;
}
.scn-marshfield-realization-quarry .beam {
  position: absolute; top: 0; left: 40%; width: 80px; height: 100%; background: linear-gradient(180deg, rgba(200,210,255,0.08) 0%, rgba(200,210,255,0.02) 100%); filter: blur(8px); transform: skewX(-5deg); animation: mrq-beam 8s ease-in-out infinite alternate;
}
.scn-marshfield-realization-quarry .figure-marshfield {
  position: absolute; bottom: 28%; left: 46%; width: 40px; height: 70px; background: linear-gradient(180deg, #1a1a2e 0%, #0a0a1a 100%); border-radius: 30% 30% 20% 20% / 50% 50% 30% 30%; transform: rotate(2deg); animation: mrq-figure 4s ease-in-out infinite;
}
.scn-marshfield-realization-quarry .shadow {
  position: absolute; bottom: 24%; left: 42%; width: 60px; height: 20px; background: radial-gradient(ellipse at 50% 50%, rgba(0,0,0,0.6) 0%, transparent 70%); border-radius: 50%; filter: blur(6px); animation: mrq-shadow 4s ease-in-out infinite alternate;
}
.scn-marshfield-realization-quarry .ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%; background: linear-gradient(0deg, #12122a 0%, #1a1a3e 100%); clip-path: polygon(0% 0%, 100% 0%, 100% 100%, 0% 100%); animation: mrq-ground 12s ease-in-out infinite alternate;
}
.scn-marshfield-realization-quarry .distant-sleigh {
  position: absolute; bottom: 35%; left: 20%; width: 60px; height: 20px; background: linear-gradient(180deg, #0e0e1e 0%, #060610 100%); border-radius: 20% 10% 10% 20%; opacity: 0.4; transform: scale(0.6); animation: mrq-distant 20s linear infinite;
}
@keyframes mrq-sky { 0% { opacity: 0.6; } 50% { opacity: 0.9; } 100% { opacity: 0.7; } }
@keyframes mrq-moon { 0% { transform: translateX(-50%) scale(1); box-shadow: 0 0 20px 8px rgba(160,168,224,0.2); } 50% { transform: translateX(-50%) scale(1.03); box-shadow: 0 0 40px 15px rgba(160,168,224,0.4); } 100% { transform: translateX(-50%) scale(0.98); box-shadow: 0 0 25px 10px rgba(160,168,224,0.3); } }
@keyframes mrq-beam { 0% { transform: skewX(-5deg) translateX(0); opacity: 0.3; } 50% { transform: skewX(-8deg) translateX(5px); opacity: 0.6; } 100% { transform: skewX(-5deg) translateX(0); opacity: 0.3; } }
@keyframes mrq-figure { 0% { transform: rotate(2deg) translateY(0); } 30% { transform: rotate(4deg) translateY(-3px); } 60% { transform: rotate(-1deg) translateY(0); } 100% { transform: rotate(2deg) translateY(0); } }
@keyframes mrq-shadow { 0% { transform: scaleX(1); opacity: 0.6; } 50% { transform: scaleX(1.2); opacity: 0.8; } 100% { transform: scaleX(0.9); opacity: 0.5; } }
@keyframes mrq-ground { 0% { background-position: 0 0; } 50% { background-position: 10px 0; } 100% { background-position: -5px 0; } }
@keyframes mrq-distant { 0% { transform: scale(0.6) translateX(0); opacity: 0.4; } 100% { transform: scale(0.6) translateX(30vw); opacity: 0.1; } }

/* scene: item-revolver-flash */
.scn-item-revolver-flash {
  background: linear-gradient(180deg, #0a0a1a 0%, #1a1a3e 40%, #2a2a5e 80%, #1a1a3e 100%), radial-gradient(ellipse at 30% 50%, #4a4a7e 0%, transparent 60%);
}
.scn-item-revolver-flash .sky {
  position: absolute; inset: 0; background: linear-gradient(180deg, #0c0c24 0%, #1a1a3e 100%); animation: rvl-sky 8s ease-in-out infinite alternate;
}
.scn-item-revolver-flash .sleigh-outline {
  position: absolute; bottom: 20%; left: 10%; width: 180px; height: 50px; background: linear-gradient(180deg, #1a1a2e 0%, #0a0a1a 100%); border-radius: 20% 10% 30% 10%; transform: rotate(-3deg); animation: rvl-sleigh 3s ease-in-out infinite;
}
.scn-item-revolver-flash .horse {
  position: absolute; bottom: 18%; right: 15%; width: 80px; height: 50px; background: linear-gradient(180deg, #1a1a2e 0%, #0e0e1e 100%); border-radius: 40% 40% 20% 20%; transform: rotate(5deg); animation: rvl-horse 2s ease-in-out infinite;
}
.scn-item-revolver-flash .revolver {
  position: absolute; bottom: 35%; left: 45%; width: 60px; height: 16px; background: linear-gradient(90deg, #3a3a4e 0%, #2a2a3e 100%); border-radius: 20% 10% 10% 20%; transform: rotate(-20deg); box-shadow: 0 2px 6px rgba(0,0,0,0.7); animation: rvl-revolver 0.5s ease-in-out infinite;
}
.scn-item-revolver-flash .muzzle-flash {
  position: absolute; bottom: 38%; left: 40%; width: 30px; height: 30px; background: radial-gradient(circle at 30% 30%, #ffcc66 0%, #ff9922 40%, transparent 80%); border-radius: 50%; box-shadow: 0 0 40px 20px rgba(255,153,34,0.6); animation: rvl-flash 0.3s ease-in-out infinite;
}
.scn-item-revolver-flash .sparks {
  position: absolute; bottom: 39%; left: 38%; width: 8px; height: 8px; background: #ffe680; border-radius: 50%; box-shadow: 0 0 10px 5px #ffe680; animation: rvl-sparks 0.4s ease-in-out infinite;
}
.scn-item-revolver-flash .driver-swap {
  position: absolute; bottom: 22%; left: 25%; width: 28px; height: 50px; background: linear-gradient(180deg, #1e1e32 0%, #0e0e1e 100%); border-radius: 30% 30% 20% 20% / 50% 50% 30% 30%; transform: rotate(8deg); animation: rvl-swap 2s ease-in-out infinite;
}
@keyframes rvl-sky { 0% { opacity: 0.7; } 50% { opacity: 0.9; } 100% { opacity: 0.8; } }
@keyframes rvl-sleigh { 0% { transform: rotate(-3deg) translateX(0); } 30% { transform: rotate(-4deg) translateX(-2px); } 60% { transform: rotate(-2deg) translateX(3px); } 100% { transform: rotate(-3deg) translateX(0); } }
@keyframes rvl-horse { 0% { transform: rotate(5deg) translateY(0); } 25% { transform: rotate(7deg) translateY(-2px); } 50% { transform: rotate(3deg) translateY(0); } 75% { transform: rotate(6deg) translateY(-1px); } 100% { transform: rotate(5deg) translateY(0); } }
@keyframes rvl-revolver { 0% { transform: rotate(-20deg) translate(0, 0); } 50% { transform: rotate(-25deg) translate(3px, -1px); } 100% { transform: rotate(-20deg) translate(0, 0); } }
@keyframes rvl-flash { 0% { transform: scale(0.5); opacity: 0; } 20% { transform: scale(1.5); opacity: 1; } 50% { transform: scale(1); opacity: 0.8; } 100% { transform: scale(0.6); opacity: 0; } }
@keyframes rvl-sparks { 0% { transform: translate(0, 0) scale(0.5); opacity: 1; } 100% { transform: translate(-15px, -10px) scale(0); opacity: 0; } }
@keyframes rvl-swap { 0% { transform: rotate(8deg) translateX(0); } 30% { transform: rotate(12deg) translateX(-5px); } 60% { transform: rotate(4deg) translateX(5px); } 100% { transform: rotate(8deg) translateX(0); } }

/* scene: confrontation-barones-sledge */
.scn-confrontation-barones-sledge {
  background: linear-gradient(180deg, #0a0a1a 0%, #1a1a3e 50%, #2a2a5e 100%), radial-gradient(ellipse at 60% 50%, #3a3a6e 0%, transparent 70%);
}
.scn-confrontation-barones-sledge .sky {
  position: absolute; inset: 0; background: linear-gradient(180deg, #0c0c24 0%, #1a1a3e 100%); animation: cbf-sky 8s ease-in-out infinite alternate;
}
.scn-confrontation-barones-sledge .moon {
  position: absolute; top: 8%; right: 15%; width: 50px; height: 50px; background: radial-gradient(circle at 30% 30%, #d0d8ff 0%, #a0a8e0 40%, transparent 70%); border-radius: 50%; box-shadow: 0 0 20px 8px rgba(160,168,224,0.3); animation: cbf-moon 6s ease-in-out infinite alternate;
}
.scn-confrontation-barones-sledge .sledge {
  position: absolute; bottom: 22%; left: 20%; width: 160px; height: 45px; background: linear-gradient(180deg, #1a1a2e 0%, #0a0a1a 100%); border-radius: 20% 10% 30% 10%; transform: rotate(-4deg); animation: cbf-sledge 4s ease-in-out infinite;
}
.scn-confrontation-barones-sledge .baron-silhouette {
  position: absolute; bottom: 24%; left: 25%; width: 35px; height: 60px; background: linear-gradient(180deg, #1c1c30 0%, #0a0a1a 100%); border-radius: 30% 30% 20% 20% / 50% 50% 30% 30%; transform: rotate(5deg); animation: cbf-baron 3s ease-in-out infinite;
}
.scn-confrontation-barones-sledge .englishman-profile {
  position: absolute; bottom: 24%; left: 35%; width: 32px; height: 58px; background: linear-gradient(180deg, #1e1e32 0%, #0c0c1e 100%); border-radius: 30% 20% 20% 30% / 50% 40% 40% 50%; transform: rotate(-3deg) scaleX(-1); animation: cbf-english 3.5s ease-in-out infinite;
}
.scn-confrontation-barones-sledge .hound-leaping {
  position: absolute; bottom: 30%; left: 50%; width: 50px; height: 30px; background: linear-gradient(180deg, #1a1a2e 0%, #0e0e1a 100%); border-radius: 40% 40% 20% 20%; transform: rotate(20deg); animation: cbf-hound 2s ease-in-out infinite;
}
.scn-confrontation-barones-sledge .muzzle-flash {
  position: absolute; bottom: 28%; left: 42%; width: 25px; height: 25px; background: radial-gradient(circle at 30% 30%, #ffcc66 0%, #ff9922 40%, transparent 80%); border-radius: 50%; box-shadow: 0 0 30px 15px rgba(255,153,34,0.5); animation: cbf-flash 0.4s ease-in-out infinite;
}
.scn-confrontation-barones-sledge .blood-drops {
  position: absolute; bottom: 32%; left: 55%; width: 6px; height: 6px; background: #c8553d; border-radius: 50%; box-shadow: 0 0 8px 2px rgba(200,85,61,0.5); animation: cbf-blood 1s ease-in-out infinite 0.2s;
}
.scn-confrontation-barones-sledge .ground-rush {
  position: absolute; bottom: 0; left: 0; right: 0; height: 25%; background: linear-gradient(0deg, #0a0a1a 0%, transparent 100%); filter: blur(6px); animation: cbf-ground 5s ease-in-out infinite alternate;
}
@keyframes cbf-sky { 0% { opacity: 0.6; } 50% { opacity: 0.9; } 100% { opacity: 0.7; } }
@keyframes cbf-moon { 0% { transform: scale(1) translate(0, 0); opacity: 0.6; } 50% { transform: scale(1.05) translate(2px, -2px); opacity: 0.9; } 100% { transform: scale(0.98) translate(-1px, 1px); opacity: 0.7; } }
@keyframes cbf-sledge { 0% { transform: rotate(-4deg) translateX(0); } 30% { transform: rotate(-5deg) translateX(-3px); } 60% { transform: rotate(-3deg) translateX(3px); } 100% { transform: rotate(-4deg) translateX(0); } }
@keyframes cbf-baron { 0% { transform: rotate(5deg) translateY(0); } 25% { transform: rotate(7deg) translateY(-2px); } 50% { transform: rotate(3deg) translateY(0); } 75% { transform: rotate(6deg) translateY(-1px); } 100% { transform: rotate(5deg) translateY(0); } }
@keyframes cbf-english { 0% { transform: rotate(-3deg) scaleX(-1) translateY(0); } 25% { transform: rotate(-5deg) scaleX(-1) translateY(-2px); } 50% { transform: rotate(-1deg) scaleX(-1) translateY(0); } 75% { transform: rotate(-4deg) scaleX(-1) translateY(-1px); } 100% { transform: rotate(-3deg) scaleX(-1) translateY(0); } }
@keyframes cbf-hound { 0% { transform: rotate(20deg) translateX(0) scale(1); } 30% { transform: rotate(25deg) translateX(5px) scale(1.1); } 60% { transform: rotate(15deg) translateX(-2px) scale(0.95); } 100% { transform: rotate(20deg) translateX(0) scale(1); } }
@keyframes cbf-flash { 0% { transform: scale(0.2); opacity: 0; } 20% { transform: scale(1.5); opacity: 1; } 50% { transform: scale(1); opacity: 0.8; } 100% { transform: scale(0.3); opacity: 0; } }
@keyframes cbf-blood { 0% { transform: translate(0, 0); opacity: 1; } 100% { transform: translate(8px, 10px); opacity: 0; } }
@keyframes cbf-ground { 0% { opacity: 0.3; } 50% { opacity: 0.7; } 100% { opacity: 0.4; } }

/* Scene: baroness-apologetic-dullness (firelit, calm) */
.scn-baroness-apologetic-dullness {
  background: 
    linear-gradient(180deg, #3a1a0a 0%, #5a2a1a 40%, #7a3a1a 100%),
    radial-gradient(ellipse at 50% 70%, #c07030 0%, transparent 60%);
}
.scn-baroness-apologetic-dullness .bg-fire {
  position: absolute; bottom: 5%; left: 25%; width: 50%; height: 25%;
  background: linear-gradient(180deg, #d08030 0%, #a04020 30%, #501010 100%);
  border-radius: 10% 10% 0 0;
  box-shadow: 0 0 60px 20px #c06020;
  animation: bd-fire 2s ease-in-out infinite alternate;
}
.scn-baroness-apologetic-dullness .figure-sit {
  position: absolute; bottom: 25%; left: 45%; width: 24px; height: 40px;
  background: linear-gradient(180deg, #1a0a0a 0%, #0a0505 100%);
  border-radius: 50% 40% 30% 50% / 60% 50% 40% 50%;
  transform-origin: bottom center;
  animation: bd-breathe 5s ease-in-out infinite;
}
.scn-baroness-apologetic-dullness .chair {
  position: absolute; bottom: 22%; left: 42%; width: 50px; height: 35px;
  background: linear-gradient(135deg, #3a2a1a 0%, #2a1a0a 100%);
  border-radius: 10% 10% 20% 20%;
  box-shadow: 0 4px 8px rgba(0,0,0,.5);
  animation: bd-settle 8s ease-in-out infinite alternate;
}
.scn-baroness-apologetic-dullness .window {
  position: absolute; top: 15%; left: 10%; width: 20%; height: 35%;
  background: linear-gradient(180deg, #0a0a1a 0%, #1a1a2a 100%);
  border: 3px solid #2a1a0a;
  border-radius: 4px;
  box-shadow: inset 0 0 10px #1a0a0a;
  animation: bd-window 12s ease-in-out infinite alternate;
}
.scn-baroness-apologetic-dullness .curtain-a {
  position: absolute; top: 15%; left: 8%; width: 5%; height: 38%;
  background: linear-gradient(90deg, #4a2a1a 0%, #2a1a0a 100%);
  border-radius: 0 50% 50% 0;
  animation: bd-sway 7s ease-in-out infinite;
}
.scn-baroness-apologetic-dullness .curtain-b {
  position: absolute; top: 15%; right: 8%; width: 5%; height: 38%;
  background: linear-gradient(270deg, #4a2a1a 0%, #2a1a0a 100%);
  border-radius: 50% 0 0 50%;
  animation: bd-sway 7s ease-in-out infinite reverse;
}
.scn-baroness-apologetic-dullness .glow-halo {
  position: absolute; inset: 30% 20% 10% 20%;
  background: radial-gradient(ellipse at 50% 60%, rgba(192,112,48,.3) 0%, transparent 70%);
  animation: bd-pulse 4s ease-in-out infinite alternate;
}
.scn-baroness-apologetic-dullness .hearth {
  position: absolute; bottom: 3%; left: 30%; width: 40%; height: 5%;
  background: #2a1a0a;
  border-radius: 10% 10% 0 0;
  box-shadow: 0 -10px 20px rgba(192,96,32,.4);
}
@keyframes bd-fire {
  0% { opacity: .8; transform: scaleY(.95); }
  50% { opacity: 1; transform: scaleY(1.05); }
  100% { opacity: .85; transform: scaleY(1); }
}
@keyframes bd-breathe {
  0% { transform: translateY(0) rotate(0deg); }
  50% { transform: translateY(-2px) rotate(1deg); }
  100% { transform: translateY(0) rotate(0deg); }
}
@keyframes bd-settle {
  0% { transform: translateY(0); }
  100% { transform: translateY(-1px); }
}
@keyframes bd-window {
  0% { opacity: .6; }
  50% { opacity: .8; }
  100% { opacity: .7; }
}
@keyframes bd-sway {
  0% { transform: translateX(0); }
  50% { transform: translateX(3px); }
  100% { transform: translateX(0); }
}
@keyframes bd-pulse {
  0% { opacity: .6; }
  100% { opacity: .9; }
}

/* Scene: baron-enters-drawing-room (tense, dim-interior) */
.scn-baron-enters-drawing-room {
  background: 
    linear-gradient(180deg, #12121a 0%, #1a1a24 50%, #22222c 100%),
    radial-gradient(ellipse at 60% 40%, #d0a060 0%, transparent 60%);
}
.scn-baron-enters-drawing-room .bg-dark {
  position: absolute; inset: 0; 
  background: linear-gradient(135deg, #0f0f0f 0%, #1a1a1a 100%);
  opacity: .3;
  animation: be-dark 10s ease-in-out infinite alternate;
}
.scn-baron-enters-drawing-room .door {
  position: absolute; right: 5%; top: 10%; width: 20%; height: 80%;
  background: linear-gradient(90deg, #2a2a1a 0%, #1a1a0a 100%);
  border-radius: 5px;
  box-shadow: -5px 0 15px rgba(0,0,0,.6);
  animation: be-door 8s ease-in-out infinite;
}
.scn-baron-enters-drawing-room .baron-silhouette {
  position: absolute; bottom: 10%; right: 18%; width: 22px; height: 60px;
  background: #050505;
  border-radius: 40% 30% 30% 40% / 50% 40% 40% 50%;
  transform-origin: bottom center;
  animation: be-enter 6s ease-in-out infinite;
}
.scn-baron-enters-drawing-room .woman-silhouette {
  position: absolute; bottom: 10%; left: 35%; width: 20px; height: 55px;
  background: #0a0a0a;
  border-radius: 35% 40% 40% 35% / 45% 50% 50% 45%;
  transform-origin: bottom center;
  animation: be-tremble 3s ease-in-out infinite;
}
.scn-baron-enters-drawing-room .lamp-glow {
  position: absolute; top: 20%; left: 45%; width: 20px; height: 20px;
  background: radial-gradient(circle, #e0c060 0%, #c0a040 50%, transparent 100%);
  border-radius: 50%;
  box-shadow: 0 0 30px 10px rgba(192,160,64,.5);
  animation: be-lamp 2.5s ease-in-out infinite alternate;
}
.scn-baron-enters-drawing-room .shadow-woman {
  position: absolute; left: 30%; bottom: 10%; width: 80px; height: 10px;
  background: #0a0a0a;
  border-radius: 50%;
  transform: skewX(-20deg);
  animation: be-shadow-w 4s ease-in-out infinite;
}
.scn-baron-enters-drawing-room .shadow-baron {
  position: absolute; right: 25%; bottom: 10%; width: 100px; height: 12px;
  background: #0a0a0a;
  border-radius: 50%;
  transform: skewX(30deg);
  animation: be-shadow-b 5s ease-in-out infinite;
}
@keyframes be-dark {
  0% { opacity: .2; }
  50% { opacity: .4; }
  100% { opacity: .25; }
}
@keyframes be-door {
  0% { transform: rotateY(0deg); }
  25% { transform: rotateY(-5deg); }
  50% { transform: rotateY(0deg); }
  75% { transform: rotateY(3deg); }
  100% { transform: rotateY(0deg); }
}
@keyframes be-enter {
  0% { transform: translateX(0) translateY(0) rotate(0deg); }
  30% { transform: translateX(-5px) translateY(-2px) rotate(2deg); }
  60% { transform: translateX(-10px) translateY(-4px) rotate(4deg); }
  100% { transform: translateX(-15px) translateY(-6px) rotate(6deg); }
}
@keyframes be-tremble {
  0% { transform: translateX(0) rotate(0deg); }
  25% { transform: translateX(1px) rotate(0.5deg); }
  50% { transform: translateX(-1px) rotate(-0.5deg); }
  75% { transform: translateX(1.5px) rotate(0.7deg); }
  100% { transform: translateX(0) rotate(0deg); }
}
@keyframes be-lamp {
  0% { opacity: .8; box-shadow: 0 0 20px 5px rgba(192,160,64,.4); }
  50% { opacity: 1; box-shadow: 0 0 40px 15px rgba(224,192,96,.6); }
  100% { opacity: .85; box-shadow: 0 0 25px 8px rgba(192,160,64,.45); }
}
@keyframes be-shadow-w {
  0% { transform: skewX(-20deg) scaleX(1); }
  50% { transform: skewX(-22deg) scaleX(1.05); }
  100% { transform: skewX(-20deg) scaleX(1); }
}
@keyframes be-shadow-b {
  0% { transform: skewX(30deg) scaleX(1); }
  50% { transform: skewX(28deg) scaleX(0.95); }
  100% { transform: skewX(30deg) scaleX(1); }
}

/* Scene: baron-offers-library (calm, dim-interior) */
.scn-baron-offers-library {
  background: 
    linear-gradient(180deg, #1a1a0a 0%, #2a2a12 40%, #1a1a0a 100%),
    radial-gradient(ellipse at 50% 50%, #3a3a1a 0%, transparent 70%);
}
.scn-baron-offers-library .bg-shelves {
  position: absolute; top: 0; left: 0; right: 0; height: 55%;
  background: repeating-linear-gradient(
    180deg,
    #2a1a0a 0px, #2a1a0a 8px,
    #3a2a1a 8px, #3a2a1a 10px,
    #1a0a0a 10px, #1a0a0a 20px
  );
  opacity: .8;
  animation: bl-shelves 15s ease-in-out infinite alternate;
}
.scn-baron-offers-library .desk {
  position: absolute; bottom: 10%; left: 15%; width: 70%; height: 25%;
  background: linear-gradient(135deg, #3a2a1a 0%, #2a1a0a 100%);
  border-radius: 5% 5% 0 0;
  box-shadow: 0 -4px 12px rgba(0,0,0,.5);
  animation: bl-desk 10s ease-in-out infinite;
}
.scn-baron-offers-library .globe {
  position: absolute; bottom: 30%; left: 20%; width: 40px; height: 40px;
  background: radial-gradient(circle at 30% 30%, #6a8a5a 0%, #3a5a2a 30%, #2a3a1a 100%);
  border-radius: 50%;
  box-shadow: inset -3px -3px 6px rgba(0,0,0,.4);
  animation: bl-globe 20s linear infinite;
}
.scn-baron-offers-library .portrait {
  position: absolute; top: 10%; left: 40%; width: 15%; height: 22%;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 10% 10% 30% 30% / 20% 20% 40% 40%;
  box-shadow: 0 0 15px rgba(0,0,0,.6);
  animation: bl-portrait 8s ease-in-out infinite alternate;
}
.scn-baron-offers-library .candle-a {
  position: absolute; bottom: 30%; left: 45%; width: 6px; height: 18px;
  background: linear-gradient(180deg, #d0c080 0%, #a09060 100%);
  border-radius: 20% 20% 10% 10%;
  box-shadow: 0 0 12px 4px rgba(200,180,100,.4);
  animation: bl-candle 3s ease-in-out infinite alternate;
}
.scn-baron-offers-library .candle-b {
  position: absolute; bottom: 30%; left: 50%; width: 6px; height: 15px;
  background: linear-gradient(180deg, #d0c080 0%, #a09060 100%);
  border-radius: 20% 20% 10% 10%;
  box-shadow: 0 0 10px 3px rgba(200,180,100,.3);
  animation: bl-candle 3.5s ease-in-out infinite alternate;
}
.scn-baron-offers-library .book-pile {
  position: absolute; bottom: 23%; left: 55%; width: 40px; height: 20px;
  background: repeating-linear-gradient(
    90deg,
    #4a3a2a 0px, #4a3a2a 12px,
    #3a2a1a 12px, #3a2a1a 14px,
    #5a4a3a 14px, #5a4a3a 26px,
    #2a1a0a 26px, #2a1a0a 40px
  );
  border-radius: 3px;
  box-shadow: 0 2px 4px rgba(0,0,0,.5);
  animation: bl-books 6s ease-in-out infinite;
}
@keyframes bl-shelves {
  0% { opacity: .7; }
  50% { opacity: .9; }
  100% { opacity: .75; }
}
@keyframes bl-desk {
  0% { transform: translateY(0); }
  50% { transform: translateY(-2px); }
  100% { transform: translateY(0); }
}
@keyframes bl-globe {
  0% { transform: rotate(0deg) scale(1); }
  50% { transform: rotate(180deg) scale(1.01); }
  100% { transform: rotate(360deg) scale(1); }
}
@keyframes bl-portrait {
  0% { transform: rotate(0deg) scale(1); }
  50% { transform: rotate(1deg) scale(1.02); }
  100% { transform: rotate(0deg) scale(1); }
}
@keyframes bl-candle {
  0% { opacity: .8; transform: scaleY(.95); }
  50% { opacity: 1; transform: scaleY(1.05); }
  100% { opacity: .85; transform: scaleY(1); }
}
@keyframes bl-books {
  0% { transform: translateY(0) rotate(0deg); }
  33% { transform: translateY(-2px) rotate(1deg); }
  66% { transform: translateY(-1px) rotate(-1deg); }
  100% { transform: translateY(0) rotate(0deg); }
}

/* Scene: baron-wolves-concern (tense, dim-interior) */
.scn-baron-wolves-concern {
  background: 
    linear-gradient(180deg, #0a0a12 0%, #12121c 50%, #0a0a12 100%),
    radial-gradient(ellipse at 50% 80%, #1a1a2a 0%, transparent 70%);
}
.scn-baron-wolves-concern .bg-night {
  position: absolute; inset: 0;
  background: radial-gradient(ellipse at 30% 20%, #1a1a3a 0%, #0a0a1a 100%);
  animation: bw-night 15s ease-in-out infinite alternate;
}
.scn-baron-wolves-concern .window {
  position: absolute; top: 15%; left: 25%; width: 50%; height: 55%;
  background: linear-gradient(180deg, #0a0a1a 0%, #12122a 50%, #0a0a1a 100%);
  border: 4px solid #1a1a0a;
  border-radius: 8px;
  box-shadow: inset 0 0 20px #0a0a1a, 0 0 30px rgba(0,0,0,.7);
  animation: bw-window 8s ease-in-out infinite alternate;
}
.scn-baron-wolves-concern .figure-at-window {
  position: absolute; bottom: 25%; left: 40%; width: 30px; height: 60px;
  background: #050505;
  border-radius: 40% 30% 30% 40% / 50% 40% 40% 50%;
  transform-origin: bottom center;
  animation: bw-figure 5s ease-in-out infinite;
}
.scn-baron-wolves-concern .moon {
  position: absolute; top: 20%; left: 45%; width: 30px; height: 30px;
  background: radial-gradient(circle at 40% 40%, #e8e8d0 0%, #c0c0a0 100%);
  border-radius: 50%;
  box-shadow: 0 0 20px 8px rgba(200,200,180,.3);
  animation: bw-moon 12s ease-in-out infinite;
}
.scn-baron-wolves-concern .wolves-left {
  position: absolute; bottom: 22%; left: 28%; width: 50px; height: 18px;
  background: #0a0a0a;
  border-radius: 40% 10% 50% 20% / 30% 20% 40% 20%;
  animation: bw-wolf 4s ease-in-out infinite;
}
.scn-baron-wolves-concern .wolves-right {
  position: absolute; bottom: 18%; right: 28%; width: 45px; height: 16px;
  background: #0a0a0a;
  border-radius: 10% 30% 20% 50% / 20% 30% 30% 20%;
  animation: bw-wolf 4.5s ease-in-out infinite reverse;
}
.scn-baron-wolves-concern .curtain-left {
  position: absolute; top: 15%; left: 23%; width: 4%; height: 60%;
  background: linear-gradient(90deg, #1a1a0a 0%, #0a0a00 100%);
  border-radius: 0 50% 50% 0;
  animation: bw-curtain 7s ease-in-out infinite;
}
.scn-baron-wolves-concern .curtain-right {
  position: absolute; top: 15%; right: 23%; width: 4%; height: 60%;
  background: linear-gradient(270deg, #1a1a0a 0%, #0a0a00 100%);
  border-radius: 50% 0 0 50%;
  animation: bw-curtain 7s ease-in-out infinite reverse;
}
@keyframes bw-night {
  0% { opacity: .7; }
  50% { opacity: .9; }
  100% { opacity: .75; }
}
@keyframes bw-window {
  0% { opacity: .6; box-shadow: inset 0 0 15px #0a0a1a, 0 0 20px rgba(0,0,0,.6); }
  50% { opacity: .8; box-shadow: inset 0 0 25px #0a0a1a, 0 0 35px rgba(0,0,0,.8); }
  100% { opacity: .65; box-shadow: inset 0 0 18px #0a0a1a, 0 0 25px rgba(0,0,0,.65); }
}
@keyframes bw-figure {
  0% { transform: translateY(0) rotate(0deg); }
  30% { transform: translateY(-2px) rotate(1deg); }
  60% { transform: translateY(-1px) rotate(-1deg); }
  100% { transform: translateY(0) rotate(0deg); }
}
@keyframes bw-moon {
  0% { opacity: .8; transform: scale(1); }
  50% { opacity: 1; transform: scale(1.03); }
  100% { opacity: .85; transform: scale(1); }
}
@keyframes bw-wolf {
  0% { transform: translateX(0) translateY(0) rotate(0deg); }
  25% { transform: translateX(2px) translateY(-3px) rotate(-5deg); }
  50% { transform: translateX(4px) translateY(-1px) rotate(2deg); }
  75% { transform: translateX(1px) translateY(-2px) rotate(-3deg); }
  100% { transform: translateX(0) translateY(0) rotate(0deg); }
}
@keyframes bw-curtain {
  0% { transform: translateX(0); }
  50% { transform: translateX(2px); }
  100% { transform: translateX(0); }
}

/* ==================== SCENE: baron-reassures-wife (brw) ==================== */
.scn-baron-reassures-wife { background: linear-gradient(180deg, #1c1311 0%, #2a1c18 40%, #1a1210 100%), radial-gradient(ellipse at 30% 60%, #3a2018 0%, transparent 70%); overflow: hidden; position: absolute; inset: 0; }
.scn-baron-reassures-wife .bg-wall  { position: absolute; inset: 0 0 35% 0; background: linear-gradient(90deg, #2a1c18, #3a2822); }
.scn-baron-reassures-wife .bg-shadow { position: absolute; inset: 30% 0 0 0; background: linear-gradient(180deg, transparent, #100a08); }
.scn-baron-reassures-wife .candle-glow { position: absolute; bottom: 40%; left: 55%; width: 40px; height: 60px; background: radial-gradient(circle, #e8b878 0%, #b87840 40%, transparent 70%); border-radius: 50%; animation: brw-glow 3s ease-in-out infinite alternate; }
.scn-baron-reassures-wife .table   { position: absolute; bottom: 25%; left: 30%; width: 120px; height: 20px; background: linear-gradient(180deg, #4a3028, #2a1814); border-radius: 4px; transform: skewX(-20deg); }
.scn-baron-reassures-wife .baron-figure { position: absolute; bottom: 35%; left: 40%; width: 30px; height: 60px; background: linear-gradient(180deg, #2a1e1a, #160e0c); border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%; transform-origin: bottom center; animation: brw-reach 4s ease-in-out infinite; }
.scn-baron-reassures-wife .violet-figure { position: absolute; bottom: 35%; left: 55%; width: 28px; height: 58px; background: linear-gradient(180deg, #2a1e1c, #140c0a); border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%; animation: brw-tremble 3s ease-in-out infinite; }
.scn-baron-reassures-wife .violet-hands { position: absolute; bottom: 38%; left: 58%; width: 16px; height: 16px; background: radial-gradient(circle, #3a2824, #1c1210); border-radius: 40% 40% 20% 20%; transform: rotate(15deg); animation: brw-clench 2.5s ease-in-out infinite alternate; }
@keyframes brw-glow  { 0%   { opacity: .8; transform: scale(1); } 50%  { opacity: 1; transform: scale(1.1); } 100% { opacity: .85; transform: scale(.95); } }
@keyframes brw-reach { 0%   { transform: translateX(0) translateY(0) rotate(0); } 50%  { transform: translateX(-4px) translateY(-1px) rotate(-2deg); } 100% { transform: translateX(0) translateY(0) rotate(0); } }
@keyframes brw-tremble { 0%   { transform: translateX(0) rotate(0); } 25%  { transform: translateX(1px) rotate(1deg); } 50%  { transform: translateX(-1px) rotate(-1deg); } 75%  { transform: translateX(1px) rotate(1deg); } 100% { transform: translateX(0) rotate(0); } }
@keyframes brw-clench { 0%   { transform: scale(1) rotate(15deg); } 50%  { transform: scale(1.1) rotate(20deg); } 100% { transform: scale(.95) rotate(10deg); } }

/* ==================== SCENE: supper-announced (sa) ==================== */
.scn-supper-announced { background: linear-gradient(180deg, #1a0e0a 0%, #2a1410 30%, #3a1a14 60%, #1a0e0a 100%), radial-gradient(ellipse at 70% 50%, #4a2018 0%, transparent 50%); overflow: hidden; position: absolute; inset: 0; }
.scn-supper-announced .bg-fire-glow { position: absolute; inset: 0; background: radial-gradient(ellipse at 70% 60%, #c86040 0%, #d87040 10%, transparent 50%); animation: sa-glow-pulse 4s ease-in-out infinite alternate; }
.scn-supper-announced .fireplace-mantle { position: absolute; bottom: 30%; left: 50%; width: 40%; height: 15%; background: linear-gradient(180deg, #1a0a08, #0e0604); border-radius: 20px 20px 0 0; transform: translateX(-50%); }
.scn-supper-announced .fire-flames { position: absolute; bottom: 30%; left: 64%; width: 40px; height: 60px; background: radial-gradient(circle at 50% 100%, #e87830 0%, #c84020 40%, transparent 70%); border-radius: 50% 50% 20% 20%; animation: sa-fire 1.5s ease-in-out infinite alternate; }
.scn-supper-announced .wife-silhouette { position: absolute; bottom: 25%; left: 25%; width: 40px; height: 80px; background: linear-gradient(180deg, #0e0806, #040202); border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%; animation: sa-breathe 3s ease-in-out infinite; }
.scn-supper-announced .wife-profile { position: absolute; bottom: 50%; left: 22%; width: 10px; height: 10px; background: #0e0806; border-radius: 50%; transform: rotate(-20deg); animation: sa-turn-away 6s ease-in-out infinite; }
.scn-supper-announced .chair { position: absolute; bottom: 22%; left: 22%; width: 30px; height: 40px; background: linear-gradient(180deg, #2a1a14, #140a08); border-radius: 10px 10px 4px 4px; }
.scn-supper-announced .table { position: absolute; bottom: 20%; left: 10%; width: 80px; height: 10px; background: linear-gradient(180deg, #3a2220, #1c0e0c); border-radius: 4px; transform: skewY(5deg); }
@keyframes sa-glow-pulse { 0%   { opacity: .7; transform: scale(1); } 50%  { opacity: 1; transform: scale(1.05); } 100% { opacity: .8; transform: scale(.98); } }
@keyframes sa-fire      { 0%   { transform: translateY(0) scaleY(1) rotate(0); } 50%  { transform: translateY(-4px) scaleY(1.1) rotate(-1deg); } 100% { transform: translateY(2px) scaleY(.95) rotate(1deg); } }
@keyframes sa-breathe   { 0%   { transform: scaleY(1) translateY(0); } 50%  { transform: scaleY(1.02) translateY(-2px); } 100% { transform: scaleY(1) translateY(0); } }
@keyframes sa-turn-away { 0%   { transform: translateX(0) rotate(-20deg); } 50%  { transform: translateX(-6px) rotate(-30deg); } 100% { transform: translateX(0) rotate(-20deg); } }

/* ==================== SCENE: dinner-barones-hysteria (dbh) ==================== */
.scn-dinner-barones-hysteria { background: linear-gradient(180deg, #1a0c08 0%, #2a1410 50%, #1a0c08 100%), radial-gradient(ellipse at 50% 30%, #4a2218 0%, transparent 60%); overflow: hidden; position: absolute; inset: 0; }
.scn-dinner-barones-hysteria .bg-table  { position: absolute; inset: 40% 0 0 0; background: linear-gradient(180deg, #2a1612, #1a0a08); border-radius: 50% 50% 0 0 / 20% 20% 0 0; }
.scn-dinner-barones-hysteria .candle   { position: absolute; bottom: 45%; left: 45%; width: 8px; height: 20px; background: linear-gradient(180deg, #e8d8b8, #b89870); border-radius: 2px; animation: dbh-candle-flicker 2s ease-in-out infinite alternate; }
.scn-dinner-barones-hysteria .candle-glow { position: absolute; bottom: 40%; left: 40%; width: 80px; height: 80px; background: radial-gradient(circle, #e8a878 0%, #c87040 30%, transparent 70%); border-radius: 50%; animation: dbh-glow-pulse 3s ease-in-out infinite alternate; }
.scn-dinner-barones-hysteria .champagne-glass { position: absolute; bottom: 50%; left: 60%; width: 12px; height: 20px; background: linear-gradient(180deg, rgba(200,180,140,.4), rgba(200,180,140,.1)); border-radius: 50% 50% 10% 10%; backdrop-filter: blur(2px); animation: dbh-tilt 4s ease-in-out infinite; }
.scn-dinner-barones-hysteria .baroness-hands { position: absolute; bottom: 48%; left: 55%; width: 20px; height: 14px; background: radial-gradient(circle, #1c0e0a, #0e0604); border-radius: 30% 30% 20% 20%; animation: dbh-clutch 3s ease-in-out infinite alternate; }
.scn-dinner-barones-hysteria .baroness-face-down { position: absolute; bottom: 55%; left: 58%; width: 16px; height: 20px; background: linear-gradient(180deg, #1a0c08, #0e0604); border-radius: 50% 50% 40% 40%; animation: dbh-face-turn 5s ease-in-out infinite; }
.scn-dinner-barones-hysteria .plate    { position: absolute; bottom: 43%; left: 35%; width: 60px; height: 16px; background: linear-gradient(180deg, #3a2824, #1c1210); border-radius: 50%; transform: perspective(100px) rotateX(20deg); }
@keyframes dbh-candle-flicker { 0%   { opacity: .8; transform: scaleY(1); } 50%  { opacity: 1; transform: scaleY(1.15); } 100% { opacity: .85; transform: scaleY(.9); } }
@keyframes dbh-glow-pulse    { 0%   { opacity: .6; transform: scale(1); } 50%  { opacity: 1; transform: scale(1.2); } 100% { opacity: .7; transform: scale(.9); } }
@keyframes dbh-tilt          { 0%   { transform: rotate(0) translateY(0); } 50%  { transform: rotate(-5deg) translateY(-2px); } 100% { transform: rotate(2deg) translateY(1px); } }
@keyframes dbh-clutch        { 0%   { transform: scale(1) rotate(0); } 50%  { transform: scale(1.1) rotate(-5deg); } 100% { transform: scale(.95) rotate(3deg); } }
@keyframes dbh-face-turn     { 0%   { transform: translateX(0) rotate(0); } 50%  { transform: translateX(-4px) rotate(-10deg); } 100% { transform: translateX(0) rotate(0); } }

/* ==================== SCENE: barones-singing-music (bsm) ==================== */
.scn-barones-singing-music { background: linear-gradient(180deg, #1e1612 0%, #2c1e18 50%, #1a1210 100%), radial-gradient(ellipse at 50% 60%, #3a2420 0%, transparent 70%); overflow: hidden; position: absolute; inset: 0; }
.scn-barones-singing-music .bg-room   { position: absolute; inset: 0; background: linear-gradient(90deg, #2a1c18, #1e1410 30%, #1a100e 70%, #2a1c18); }
.scn-barones-singing-music .window-curtain { position: absolute; inset: 10% 5% 20% auto; width: 25%; background: linear-gradient(180deg, #3a2824, #1e1410); border-radius: 0 0 40% 40% / 0 0 60% 60%; animation: bsm-curl 8s ease-in-out infinite alternate; }
.scn-barones-singing-music .piano-shape { position: absolute; bottom: 15%; left: 50%; width: 140px; height: 60px; background: linear-gradient(180deg, #1a0e0c, #0e0604); border-radius: 20px 20px 8px 8px; transform: perspective(200px) rotateX(10deg) translateX(-50%); }
.scn-barones-singing-music .baroness-silhouette { position: absolute; bottom: 30%; left: 50%; width: 36px; height: 60px; background: linear-gradient(180deg, #0e0806, #040202); border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%; transform: translateX(-50%); animation: bsm-sway 6s ease-in-out infinite; }
.scn-barones-singing-music .baron-figure-chair { position: absolute; bottom: 20%; left: 20%; width: 40px; height: 50px; background: linear-gradient(180deg, #2a1c18, #140c0a); border-radius: 40% 40% 20% 20%; animation: bsm-lounge 4s ease-in-out infinite alternate; }
.scn-barones-singing-music .sheet-music-stand { position: absolute; bottom: 40%; left: 55%; width: 30px; height: 20px; background: linear-gradient(180deg, #2a1e1a, #140c0a); border-radius: 4px 4px 20px 20px; transform: perspective(50px) rotateX(15deg); animation: bsm-page-turn 10s ease-in-out infinite; }
.scn-barones-singing-music .lamp-glow { position: absolute; bottom: 50%; left: 55%; width: 40px; height: 50px; background: radial-gradient(circle, #e8c878 0%, #c89840 30%, transparent 70%); border-radius: 50%; animation: bsm-glow 5s ease-in-out infinite alternate; }
@keyframes bsm-curl       { 0%   { transform: translateX(0); } 50%  { transform: translateX(5px); } 100% { transform: translateX(0); } }
@keyframes bsm-sway       { 0%   { transform: translateX(-50%) rotate(0); } 50%  { transform: translateX(-50%) rotate(-2deg); } 100% { transform: translateX(-50%) rotate(2deg); } }
@keyframes bsm-lounge     { 0%   { transform: translateY(0) rotate(0); } 50%  { transform: translateY(-3px) rotate(-1deg); } 100% { transform: translateY(0) rotate(1deg); } }
@keyframes bsm-page-turn  { 0%   { transform: perspective(50px) rotateX(15deg) translateX(0); } 50%  { transform: perspective(50px) rotateX(20deg) translateX(2px); } 100% { transform: perspective(50px) rotateX(15deg) translateX(0); } }
@keyframes bsm-glow       { 0%   { opacity: .7; transform: scale(1); } 50%  { opacity: 1; transform: scale(1.1); } 100% { opacity: .8; transform: scale(.95); } }

.scn-holmes-pavement-investigation { 
  background: linear-gradient(180deg, #c4d8e2 0%, #9bb8cc 40%, #7fa5c0 100%), 
              radial-gradient(ellipse at 30% 100%, #b8c8d4 0%, transparent 60%); 
}
.scn-holmes-pavement-investigation .street { 
  position:absolute; inset:0 0 40% 0; 
  background: linear-gradient(180deg, #d0dfe8 0%, #b0c8d8 100%); 
  animation: hpi-sky 12s ease-in-out infinite alternate; 
}
.scn-holmes-pavement-investigation .pavement { 
  position:absolute; bottom:0; left:0; right:0; height:40%; 
  background: linear-gradient(180deg, #9a8b78 0%, #7a6b5a 100%); 
  box-shadow: inset 0 10px 20px rgba(0,0,0,0.3); 
  animation: hpi-pave 8s ease-in-out infinite; 
}
.scn-holmes-pavement-investigation .cellar-hole { 
  position:absolute; bottom:35%; left:40%; width:20%; height:10%; 
  background: #3a2a1a; 
  border-radius: 30% 30% 0 0; 
  box-shadow: inset 0 -5px 10px rgba(0,0,0,0.8); 
  animation: hpi-hole 6s ease-in-out infinite alternate; 
}
.scn-holmes-pavement-investigation .building { 
  position:absolute; bottom:40%; left:60%; width:30%; height:60%; 
  background: linear-gradient(180deg, #b8a898 0%, #8a7a6a 100%); 
  border-radius: 5% 5% 0 0; 
  box-shadow: -5px 0 15px rgba(0,0,0,0.2); 
  animation: hpi-build 15s ease-in-out infinite alternate; 
}
.scn-holmes-pavement-investigation .holmes { 
  position:absolute; bottom:36%; left:30%; width:8%; height:25%; 
  background: linear-gradient(180deg, #3a4a5a 0%, #2a3a4a 100%); 
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%; 
  transform-origin: bottom; 
  animation: hpi-figure 4s ease-in-out infinite; 
}
.scn-holmes-pavement-investigation .stick { 
  position:absolute; bottom:38%; left:33%; width:2%; height:20%; 
  background: linear-gradient(180deg, #6a5a3a 0%, #4a3a1a 100%); 
  border-radius: 10%; 
  transform: rotate(-15deg); 
  animation: hpi-stick 3s ease-in-out infinite alternate; 
}
.scn-holmes-pavement-investigation .bell { 
  position:absolute; bottom:52%; left:62%; width:4%; height:4%; 
  background: radial-gradient(circle, #d0a050 0%, #a07030 100%); 
  border-radius: 50%; 
  box-shadow: 0 0 10px 2px #d0a050; 
  animation: hpi-bell 2s ease-in-out infinite; 
}
@keyframes hpi-sky { 0%{opacity:0.9} 50%{opacity:1} 100%{opacity:0.8} }
@keyframes hpi-pave { 0%{transform:translateY(0)} 50%{transform:translateY(-2px)} 100%{transform:translateY(0)} }
@keyframes hpi-hole { 0%{opacity:0.7} 50%{opacity:1} 100%{opacity:0.6} }
@keyframes hpi-build { 0%{transform:scaleY(1)} 50%{transform:scaleY(1.02)} 100%{transform:scaleY(1)} }
@keyframes hpi-figure { 0%{transform:translateX(0) rotate(-2deg)} 50%{transform:translateX(2px) rotate(2deg)} 100%{transform:translateX(0) rotate(-2deg)} }
@keyframes hpi-stick { 0%{transform:rotate(-20deg)} 50%{transform:rotate(-10deg)} 100%{transform:rotate(-20deg)} }
@keyframes hpi-bell { 0%{transform:scale(1)} 50%{transform:scale(1.1)} 100%{transform:scale(1)} }

.scn-holmes-deduction-explained { 
  background: linear-gradient(180deg, #fff8e7 0%, #f5e6c8 50%, #e0c8a0 100%), 
              radial-gradient(ellipse at 80% 30%, #ffe8b0 0%, transparent 50%); 
}
.scn-holmes-deduction-explained .window { 
  position:absolute; top:0; left:20%; width:60%; height:30%; 
  background: linear-gradient(180deg, #b0d4f0 0%, #80b8e0 100%); 
  border-bottom: 4px solid #8a7a5a; 
  animation: hde-window 10s ease-in-out infinite alternate; 
}
.scn-holmes-deduction-explained .sunbeam { 
  position:absolute; top:30%; left:30%; width:40%; height:60%; 
  background: linear-gradient(180deg, rgba(255,250,200,0.4) 0%, transparent 100%); 
  clip-path: polygon(0% 0%, 100% 0%, 80% 100%, 20% 100%); 
  animation: hde-beam 14s ease-in-out infinite; 
}
.scn-holmes-deduction-explained .holmes { 
  position:absolute; bottom:10%; left:20%; width:15%; height:35%; 
  background: linear-gradient(180deg, #2a3a4a 0%, #1a2a3a 100%); 
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; 
  animation: hde-holmes 5s ease-in-out infinite; 
}
.scn-holmes-deduction-explained .watson { 
  position:absolute; bottom:10%; left:45%; width:15%; height:35%; 
  background: linear-gradient(180deg, #4a5a4a 0%, #3a4a3a 100%); 
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; 
  animation: hde-watson 5s ease-in-out infinite; 
}
.scn-holmes-deduction-explained .desk { 
  position:absolute; bottom:0; left:25%; width:50%; height:15%; 
  background: linear-gradient(180deg, #8a7a5a 0%, #6a5a3a 100%); 
  border-radius: 5% 5% 0 0; 
  box-shadow: 0 -5px 15px rgba(0,0,0,0.3); 
  animation: hde-desk 8s ease-in-out infinite alternate; 
}
.scn-holmes-deduction-explained .book { 
  position:absolute; bottom:12%; left:35%; width:8%; height:12%; 
  background: linear-gradient(180deg, #6a5a3a 0%, #4a3a1a 100%); 
  border-radius: 5%; 
  animation: hde-book 6s ease-in-out infinite; 
}
.scn-holmes-deduction-explained .lamp { 
  position:absolute; bottom:25%; left:60%; width:6%; height:15%; 
  background: radial-gradient(ellipse at 50% 20%, #ffe8b0 0%, #c8a060 100%); 
  border-radius: 50% 50% 20% 20%; 
  box-shadow: 0 0 20px 5px rgba(255,232,176,0.5); 
  animation: hde-lamp 3s ease-in-out infinite alternate; 
}
@keyframes hde-window { 0%{opacity:0.9} 50%{opacity:1} 100%{opacity:0.8} }
@keyframes hde-beam { 0%{opacity:0.3;transform:translateX(-10px)} 50%{opacity:0.6;transform:translateX(10px)} 100%{opacity:0.3;transform:translateX(-10px)} }
@keyframes hde-holmes { 0%{transform:translateX(0) rotate(-3deg)} 50%{transform:translateX(3px) rotate(3deg)} 100%{transform:translateX(0) rotate(-3deg)} }
@keyframes hde-watson { 0%{transform:translateX(0) rotate(3deg)} 50%{transform:translateX(-3px) rotate(-3deg)} 100%{transform:translateX(0) rotate(3deg)} }
@keyframes hde-desk { 0%{transform:scaleY(1)} 50%{transform:scaleY(1.02)} 100%{transform:scaleY(1)} }
@keyframes hde-book { 0%{transform:translateY(0)} 50%{transform:translateY(-2px)} 100%{transform:translateY(0)} }
@keyframes hde-lamp { 0%{opacity:0.8;transform:scale(1)} 50%{opacity:1;transform:scale(1.1)} 100%{opacity:0.8;transform:scale(1)} }

.scn-marshfield-framing-story { 
  background: linear-gradient(180deg, #4a3a2a 0%, #3a2a1a 50%, #2a1a0a 100%), 
              radial-gradient(ellipse at 50% 30%, #6a5a3a 0%, transparent 70%); 
}
.scn-marshfield-framing-story .wall { 
  position:absolute; inset:0; 
  background: linear-gradient(90deg, #4a3a2a 0%, #3a2a1a 100%); 
  animation: mfr-wall 20s ease-in-out infinite alternate; 
}
.scn-marshfield-framing-story .table { 
  position:absolute; bottom:0; left:10%; width:80%; height:20%; 
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%); 
  border-radius: 10% 10% 0 0; 
  box-shadow: inset 0 5px 10px rgba(0,0,0,0.5); 
  animation: mfr-table 8s ease-in-out infinite alternate; 
}
.scn-marshfield-framing-story .chair { 
  position:absolute; bottom:20%; left:40%; width:20%; height:30%; 
  background: linear-gradient(180deg, #6a5a4a 0%, #4a3a2a 100%); 
  border-radius: 20% 20% 10% 10%; 
  animation: mfr-chair 10s ease-in-out infinite; 
}
.scn-marshfield-framing-story .figure { 
  position:absolute; bottom:20%; left:45%; width:12%; height:30%; 
  background: linear-gradient(180deg, #1a1a1a 0%, #0a0a0a 100%); 
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; 
  animation: mfr-figure 4s ease-in-out infinite; 
}
.scn-marshfield-framing-story .cigar { 
  position:absolute; bottom:30%; left:48%; width:2%; height:8%; 
  background: linear-gradient(180deg, #8a4a2a 0%, #6a2a0a 100%); 
  border-radius: 20%; 
  transform: rotate(30deg); 
  animation: mfr-cigar 3s ease-in-out infinite alternate; 
}
.scn-marshfield-framing-story .smoke-a { 
  position:absolute; bottom:34%; left:48%; width:6%; height:15%; 
  background: radial-gradient(ellipse at 50% 100%, rgba(180,170,150,0.3) 0%, transparent 100%); 
  border-radius: 50%; 
  filter: blur(4px); 
  animation: mfr-smoke 8s ease-out infinite; 
}
.scn-marshfield-framing-story .smoke-b { 
  position:absolute; bottom:34%; left:50%; width:8%; height:20%; 
  background: radial-gradient(ellipse at 50% 100%, rgba(200,190,170,0.2) 0%, transparent 100%); 
  border-radius: 50%; 
  filter: blur(6px); 
  animation: mfr-smoke 12s ease-out infinite 4s; 
}
.scn-marshfield-framing-story .lamp { 
  position:absolute; bottom:40%; left:25%; width:8%; height:12%; 
  background: radial-gradient(circle, #e0b060 0%, #a07030 100%); 
  border-radius: 50% 50% 20% 20%; 
  box-shadow: 0 0 30px 10px rgba(224,176,96,0.4); 
  animation: mfr-lamp 5s ease-in-out infinite alternate; 
}
@keyframes mfr-wall { 0%{opacity:0.9} 50%{opacity:1} 100%{opacity:0.8} }
@keyframes mfr-table { 0%{transform:scaleY(1)} 50%{transform:scaleY(1.02)} 100%{transform:scaleY(1)} }
@keyframes mfr-chair { 0%{transform:translateY(0)} 50%{transform:translateY(-3px)} 100%{transform:translateY(0)} }
@keyframes mfr-figure { 0%{transform:translateX(0) rotate(-2deg)} 50%{transform:translateX(3px) rotate(2deg)} 100%{transform:translateX(0) rotate(-2deg)} }
@keyframes mfr-cigar { 0%{transform:rotate(20deg)} 50%{transform:rotate(40deg)} 100%{transform:rotate(20deg)} }
@keyframes mfr-smoke { 0%{opacity:0;transform:translateY(0) scale(0.5)} 50%{opacity:0.5;transform:translateY(-10px) scale(1)} 100%{opacity:0;transform:translateY(-20px) scale(1.5)} }
@keyframes mfr-lamp { 0%{opacity:0.7;box-shadow:0 0 20px 5px rgba(224,176,96,0.3)} 50%{opacity:1;box-shadow:0 0 40px 15px rgba(224,176,96,0.5)} 100%{opacity:0.7;box-shadow:0 0 20px 5px rgba(224,176,96,0.3)} }

.scn-baron-kossowski-first-impression { 
  background: linear-gradient(180deg, #6a7a8a 0%, #8a9aaa 30%, #aabcce 100%), 
              radial-gradient(ellipse at 50% 0%, #b8c8d8 0%, transparent 70%); 
}
.scn-baron-kossowski-first-impression .dawn-sky { 
  position:absolute; top:0; left:0; right:0; bottom:50%; 
  background: linear-gradient(180deg, #f0e0b0 0%, #a0c0d0 50%, #6a7a8a 100%); 
  animation: bkf-sky 15s ease-in-out infinite alternate; 
}
.scn-baron-kossowski-first-impression .window { 
  position:absolute; top:5%; left:10%; width:80%; height:45%; 
  background: linear-gradient(180deg, #b0c8d8 0%, #8090a0 100%); 
  border: 2px solid #4a5a6a; 
  border-radius: 2%; 
  animation: bkf-window 20s ease-in-out infinite; 
}
.scn-baron-kossowski-first-impression .chair { 
  position:absolute; bottom:0; left:40%; width:20%; height:35%; 
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%); 
  border-radius: 20% 20% 10% 10%; 
  animation: bkf-chair 12s ease-in-out infinite; 
}
.scn-baron-kossowski-first-impression .baron { 
  position:absolute; bottom:5%; left:43%; width:12%; height:30%; 
  background: linear-gradient(180deg, #2a3a4a 0%, #1a2a3a 100%); 
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; 
  animation: bkf-baron 8s ease-in-out infinite; 
}
.scn-baron-kossowski-first-impression .narrator { 
  position:absolute; bottom:5%; left:58%; width:12%; height:30%; 
  background: linear-gradient(180deg, #4a5a4a 0%, #3a4a3a 100%); 
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; 
  animation: bkf-narrator 8s ease-in-out infinite 2s; 
}
.scn-baron-kossowski-first-impression .table { 
  position:absolute; bottom:0; left:30%; width:40%; height:10%; 
  background: linear-gradient(180deg, #6a5a4a 0%, #4a3a2a 100%); 
  border-radius: 5% 5% 0 0; 
  box-shadow: 0 -5px 10px rgba(0,0,0,0.3); 
  animation: bkf-table 10s ease-in-out infinite alternate; 
}
@keyframes bkf-sky { 0%{opacity:0.8} 50%{opacity:1} 100%{opacity:0.7} }
@keyframes bkf-window { 0%{opacity:0.9} 50%{opacity:1} 100%{opacity:0.8} }
@keyframes bkf-chair { 0%{transform:translateY(0)} 50%{transform:translateY(-2px)} 100%{transform:translateY(0)} }
@keyframes bkf-baron { 0%{transform:translateX(0) rotate(-2deg)} 50%{transform:translateX(2px) rotate(2deg)} 100%{transform:translateX(0) rotate(-2deg)} }
@keyframes bkf-narrator { 0%{transform:translateX(0) rotate(2deg)} 50%{transform:translateX(-2px) rotate(-2deg)} 100%{transform:translateX(0) rotate(2deg)} }
@keyframes bkf-table { 0%{transform:scaleY(1)} 50%{transform:scaleY(1.02)} 100%{transform:scaleY(1)} }
/* end per-scene blocks */

/* auto-stub: parent tag-classes flagged by CSS audit */
.figure-mount { position: absolute; pointer-events: none; }
.hounds-chase { position: absolute; pointer-events: none; }
.shadow-ground { position: absolute; pointer-events: none; }

/* ============ tier S ============ */
/* per-scene blocks (EXP step_scenes) */
/* baron-effusive (tense, bright-interior) */
.scn-baron-effusive {
  background: linear-gradient(180deg, #f5e6d0 0%, #d4c4a8 40%, #b8a88a 100%),
              radial-gradient(ellipse at 30% 50%, #ffffff88 0%, transparent 60%);
}
.scn-baron-effusive .wall-be { position:absolute; inset:0 0 25% 0; background: linear-gradient(90deg, #f5e6d0 0%, #fff8ee 50%, #f5e6d0 100%); }
.scn-baron-effusive .floor-be { position:absolute; bottom:0; left:0; right:0; height:25%; background: linear-gradient(180deg, #8b7355 0%, #654b32 100%); border-radius: 10% 10% 0 0; }
.scn-baron-effusive .chandelier-be { position:absolute; top:5%; left:50%; width:80px; height:60px; transform:translateX(-50%); background: radial-gradient(circle at 50% 30%, #d4aa70 0%, #b88a50 40%, #8a6a30 100%); clip-path: polygon(10% 100%, 40% 20%, 60% 20%, 90% 100%, 70% 100%, 50% 60%, 30% 100%); animation: be-sway 4s ease-in-out infinite; }
.scn-baron-effulsive .glow-be { position:absolute; top:8%; left:50%; width:120px; height:120px; transform:translateX(-50%); background: radial-gradient(circle, #fff8c0 0%, #ffe080 30%, transparent 70%); opacity:0.6; animation: be-flicker 2s ease-in-out infinite alternate; }
.scn-baron-effusive .figure-be { position:absolute; bottom:22%; left:42%; width:24px; height:48px; background: linear-gradient(180deg, #2a2a2a 0%, #1a1a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: be-turn 5s ease-in-out infinite; }
.scn-baron-effusive .shadow-be { position:absolute; bottom:25%; left:38%; width:60px; height:20px; background: radial-gradient(ellipse, #00000055 0%, transparent 70%); animation: be-pulse 3s ease-in-out infinite; }
.scn-baron-effusive .drape-left-be { position:absolute; top:0; left:0; width:25%; height:100%; background: linear-gradient(90deg, #8a3a2a 0%, #a05040 100%); opacity:0.5; animation: be-drape 7s ease-in-out infinite alternate; }
.scn-baron-effusive .drape-right-be { position:absolute; top:0; right:0; width:25%; height:100%; background: linear-gradient(270deg, #8a3a2a 0%, #a05040 100%); opacity:0.5; animation: be-drape 7s ease-in-out infinite alternate-reverse; }
@keyframes be-sway { 0% { transform: translateX(-50%) rotate(-2deg); } 50% { transform: translateX(-50%) rotate(3deg); } 100% { transform: translateX(-50%) rotate(-1deg); } }
@keyframes be-flicker { 0% { opacity:0.4; } 50% { opacity:0.8; } 100% { opacity:0.5; } }
@keyframes be-turn { 0% { transform: rotate(-2deg); } 25% { transform: rotate(4deg) translateX(4px); } 50% { transform: rotate(-3deg) translateX(-2px); } 75% { transform: rotate(2deg) translateX(6px); } 100% { transform: rotate(0deg) translateX(0); } }
@keyframes be-pulse { 0% { transform: scaleX(0.8); opacity:0.5; } 50% { transform: scaleX(1.2); opacity:1; } 100% { transform: scaleX(0.9); opacity:0.6; } }
@keyframes be-drape { 0% { transform: translateX(-10px); } 100% { transform: translateX(10px); } }

/* supper-tension (tense, firelit) */
.scn-supper-tension {
  background: linear-gradient(180deg, #1a0a0a 0%, #2a1414 30%, #3a1e1e 60%, #4a2828 100%),
              radial-gradient(ellipse at 50% 60%, #ff883366 0%, transparent 70%);
}
.scn-supper-tension .wall-st { position:absolute; inset:0 0 30% 0; background: linear-gradient(180deg, #3a1e1e 0%, #2a1414 100%); }
.scn-supper-tension .table-st { position:absolute; bottom:20%; left:15%; right:15%; height:8%; background: linear-gradient(180deg, #5e3a24 0%, #3a1e12 100%); border-radius: 4px; box-shadow: 0 -4px 12px rgba(0,0,0,0.6); }
.scn-supper-tension .fire-st { position:absolute; bottom:30%; left:20%; width:30px; height:60px; background: radial-gradient(ellipse at 50% 80%, #ff6600 0%, #ff3300 30%, #ff0000 60%, transparent 100%); opacity:0.9; animation: st-fire 0.8s ease-in-out infinite alternate; }
.scn-supper-tension .glow-st { position:absolute; bottom:25%; left:15%; width:120px; height:100px; background: radial-gradient(ellipse, #ff883388 0%, #ff550044 40%, transparent 80%); animation: st-fireglow 1.2s ease-in-out infinite alternate; }
.scn-supper-tension .figure1-st { position:absolute; bottom:28%; left:30%; width:20px; height:38px; background: linear-gradient(180deg, #1a1a1a 0%, #0a0a0a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: st-turnaway 4s ease-in-out infinite; }
.scn-supper-tension .figure2-st { position:absolute; bottom:28%; right:30%; width:22px; height:40px; background: linear-gradient(180deg, #2a2a2a 0%, #1a1a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: st-lean 5s ease-in-out infinite; }
.scn-supper-tension .shadow-st { position:absolute; bottom:30%; left:25%; width:90px; height:20px; background: radial-gradient(ellipse, #00000088 0%, transparent 70%); animation: st-shade 3s ease-in-out infinite; }
.scn-supper-tension .utensil-st { position:absolute; bottom:24%; left:45%; width:12px; height:20px; background: linear-gradient(180deg, #c0c0c0 0%, #888888 100%); border-radius: 2px; transform: rotate(15deg); animation: st-util 6s ease-in-out infinite; }
@keyframes st-fire { 0% { transform: scaleY(1) scaleX(1); opacity:0.8; } 50% { transform: scaleY(1.3) scaleX(0.8); opacity:1; } 100% { transform: scaleY(0.9) scaleX(1.1); opacity:0.7; } }
@keyframes st-fireglow { 0% { opacity:0.5; } 50% { opacity:0.9; } 100% { opacity:0.6; } }
@keyframes st-turnaway { 0% { transform: rotate(0deg); } 25% { transform: rotate(-10deg) translateX(-4px); } 50% { transform: rotate(-20deg) translateX(-8px); } 75% { transform: rotate(-10deg) translateX(-4px); } 100% { transform: rotate(0deg) translateX(0); } }
@keyframes st-lean { 0% { transform: rotate(5deg); } 50% { transform: rotate(-5deg); } 100% { transform: rotate(5deg); } }
@keyframes st-shade { 0% { opacity:0.4; } 50% { opacity:0.8; } 100% { opacity:0.5; } }
@keyframes st-util { 0% { transform: rotate(15deg) translateY(0); } 50% { transform: rotate(20deg) translateY(-4px); } 100% { transform: rotate(10deg) translateY(0); } }

/* russian-air-performance (dark, dim-interior) */
.scn-russian-air-performance {
  background: linear-gradient(180deg, #0a0a1a 0%, #141428 40%, #1e1e3a 100%),
              radial-gradient(ellipse at 50% 40%, #2a2a4a88 0%, transparent 70%);
}
.scn-russian-air-performance .bg-rp { position:absolute; inset:0; background: linear-gradient(180deg, #0f0f24 0%, #1a1a3a 50%, #0f0f24 100%); }
.scn-russian-air-performance .piano-rp { position:absolute; bottom:15%; left:20%; right:20%; height:20%; background: linear-gradient(180deg, #1a1a1a 0%, #0a0a0a 100%); border-radius: 4px; box-shadow: 0 4px 20px rgba(0,0,0,0.8); }
.scn-russian-air-performance .figure-rp { position:absolute; bottom:22%; left:45%; width:20px; height:36px; background: linear-gradient(180deg, #2a2a2a 0%, #1a1a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: rp-play 3s ease-in-out infinite; }
.scn-russian-air-performance .glow-rp { position:absolute; top:20%; left:45%; width:80px; height:80px; background: radial-gradient(circle, #8880ff44 0%, transparent 70%); animation: rp-pulse 5s ease-in-out infinite alternate; }
.scn-russian-air-performance .shadow-rp { position:absolute; bottom:25%; left:35%; width:120px; height:30px; background: radial-gradient(ellipse, #00000066 0%, transparent 70%); }
.scn-russian-air-performance .dust-rp { position:absolute; top:10%; left:30%; width:20px; height:20px; background: radial-gradient(circle, #ffffff33 0%, transparent 100%); border-radius:50%; filter: blur(3px); animation: rp-float 12s linear infinite; }
@keyframes rp-play { 0% { transform: rotate(-3deg) translateY(0); } 25% { transform: rotate(2deg) translateY(-2px); } 50% { transform: rotate(-1deg) translateY(1px); } 75% { transform: rotate(3deg) translateY(-3px); } 100% { transform: rotate(0deg) translateY(0); } }
@keyframes rp-pulse { 0% { opacity:0.2; } 50% { opacity:0.6; } 100% { opacity:0.3; } }
@keyframes rp-float { 0% { transform: translate(0, 0) scale(1); } 33% { transform: translate(20px, -15px) scale(0.8); } 66% { transform: translate(-10px, -5px) scale(1.2); } 100% { transform: translate(0, 0) scale(1); } }

/* wolf-raid-plan (dark, dim-interior) */
.scn-wolf-raid-plan {
  background: linear-gradient(180deg, #05050a 0%, #0f0f1a 40%, #1a1a2e 100%),
              radial-gradient(ellipse at 50% 30%, #2a2a4a44 0%, transparent 60%);
}
.scn-wolf-raid-plan .wall-wr { position:absolute; inset:0; background: linear-gradient(180deg, #0a0a14 0%, #141428 100%); }
.scn-wolf-raid-plan .window-wr { position:absolute; top:10%; left:35%; width:120px; height:160px; background: linear-gradient(180deg, #0f1440 0%, #1a2050 100%); border: 4px solid #2a2a2a; border-radius: 6px; box-shadow: inset 0 0 20px #00000088; }
.scn-wolf-raid-plan .moonlight-wr { position:absolute; top:10%; left:35%; width:120px; height:160px; background: radial-gradient(ellipse at 50% 0%, #c0c8ff33 0%, transparent 60%); clip-path: polygon(20% 0%, 80% 0%, 60% 100%, 40% 100%); animation: wr-moon 6s ease-in-out infinite alternate; }
.scn-wolf-raid-plan .figure-wr { position:absolute; bottom:20%; left:50%; width:22px; height:44px; background: linear-gradient(180deg, #1a1a1a 0%, #0a0a0a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: wr-stalk 8s ease-in-out infinite; }
.scn-wolf-raid-plan .shadow-wr { position:absolute; bottom:20%; left:45%; width:80px; height:20px; background: radial-gradient(ellipse, #00000099 0%, transparent 70%); animation: wr-grow 4s ease-in-out infinite; }
.scn-wolf-raid-plan .hound-wr { position:absolute; bottom:25%; left:25%; width:30px; height:16px; background: linear-gradient(180deg, #2a2a2a 0%, #1a1a1a 100%); border-radius: 50% 50% 40% 40%; transform: rotate(-10deg); animation: wr-prowl 5s ease-in-out infinite; }
.scn-wolf-raid-plan .howl-wr { position:absolute; top:20%; left:45%; width:40px; height:20px; background: radial-gradient(ellipse, #aabbff22 0%, transparent 100%); filter: blur(4px); animation: wr-sound 3s ease-in-out infinite alternate; }
@keyframes wr-moon { 0% { opacity:0.3; } 50% { opacity:0.7; } 100% { opacity:0.4; } }
@keyframes wr-stalk { 0% { transform: translateX(-10px) rotate(-2deg); } 25% { transform: translateX(5px) rotate(3deg); } 50% { transform: translateX(15px) rotate(-1deg); } 75% { transform: translateX(5px) rotate(2deg); } 100% { transform: translateX(-10px) rotate(-2deg); } }
@keyframes wr-grow { 0% { transform: scaleX(0.8); opacity:0.5; } 50% { transform: scaleX(1.3); opacity:1; } 100% { transform: scaleX(0.9); opacity:0.6; } }
@keyframes wr-prowl { 0% { transform: translateX(0) rotate(-10deg); } 50% { transform: translateX(20px) rotate(5deg); } 100% { transform: translateX(0) rotate(-10deg); } }
@keyframes wr-sound { 0% { transform: scale(1) translateY(0); opacity:0.2; } 50% { transform: scale(1.3) translateY(-10px); opacity:0.6; } 100% { transform: scale(1) translateY(0); opacity:0.3; } }

.scn-arrival-at-yany {
  background: linear-gradient(180deg, #2b2b4a 0%, #4a3a3a 40%, #7a5a3a 100%), radial-gradient(ellipse at 60% 0%, #8a6a4a 0%, transparent 70%);
}
.scn-arrival-at-yany .sky-dusk {
  position: absolute; inset: 0 0 50% 0;
  background: linear-gradient(180deg, #1a1a3a 0%, #4a3a4a 60%, #6a4a3a 100%);
  animation: ay-sky 14s ease-in-out infinite alternate;
}
.scn-arrival-at-yany .court-walls {
  position: absolute; bottom: 30%; left: 5%; right: 5%; height: 40%;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 10% 10% 0 0; box-shadow: inset 0 8px 20px rgba(0,0,0,0.5);
  animation: ay-walls 20s ease-in-out infinite alternate;
}
.scn-arrival-at-yany .stable-door {
  position: absolute; bottom: 30%; left: 20%; width: 120px; height: 70px;
  background: linear-gradient(135deg, #3a2a1a 0%, #2a1a0a 100%);
  border-radius: 6px; box-shadow: 0 4px 12px rgba(0,0,0,0.6);
  transform-origin: left center; animation: ay-door 6s ease-in-out infinite;
}
.scn-arrival-at-yany .retainers {
  position: absolute; bottom: 28%; left: 15%; width: 50px; height: 30px;
  background: radial-gradient(ellipse at 50% 30%, #5a3a2a 0%, #2a1a0a 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  filter: blur(1px); animation: ay-retainers 8s ease-in-out infinite;
}
.scn-arrival-at-yany .interior-glow {
  position: absolute; bottom: 35%; left: 55%; width: 100px; height: 80px;
  background: radial-gradient(circle, #f0c060 0%, rgba(240,192,96,0.3) 60%, transparent 100%);
  border-radius: 50%; animation: ay-glow 4s ease-in-out infinite alternate;
}
.scn-arrival-at-yany .chasseur {
  position: absolute; bottom: 32%; left: 58%; width: 20px; height: 40px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: ay-figure 5s ease-in-out infinite;
}
.scn-arrival-at-yany .butler {
  position: absolute; bottom: 30%; left: 64%; width: 22px; height: 42px;
  background: linear-gradient(180deg, #2a2a3a 0%, #0a0a1a 100%);
  border-radius: 45% 45% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: ay-figure 6s ease-in-out infinite reverse;
}
.scn-arrival-at-yany .warm-light {
  position: absolute; bottom: 34%; left: 60%; width: 12px; height: 12px;
  background: #f0c060; border-radius: 50%;
  box-shadow: 0 0 30px 8px rgba(240,192,96,0.6);
  animation: ay-pulse 3s ease-in-out infinite;
}
@keyframes ay-sky {0%{opacity:0.7}50%{opacity:1}100%{opacity:0.8}}
@keyframes ay-walls {0%{transform:translateY(0)}50%{transform:translateY(-3px)}100%{transform:translateY(0)}}
@keyframes ay-door {0%{transform:scaleX(1) translateY(0)}25%{transform:scaleX(0.2) translateY(0)}50%{transform:scaleX(1) translateY(-2px)}75%{transform:scaleX(1) translateY(0)}100%{transform:scaleX(1) translateY(0)}}
@keyframes ay-retainers {0%{transform:translateX(0) scale(0.95)}50%{transform:translateX(5px) scale(1)}100%{transform:translateX(0) scale(0.95)}}
@keyframes ay-glow {0%{opacity:0.5;transform:scale(0.9)}50%{opacity:1;transform:scale(1.1)}100%{opacity:0.6;transform:scale(1)}}
@keyframes ay-figure {0%{transform:translateY(0) rotate(0deg)}25%{transform:translateY(-2px) rotate(2deg)}50%{transform:translateY(0) rotate(-1deg)}75%{transform:translateY(-1px) rotate(1deg)}100%{transform:translateY(0) rotate(0deg)}}
@keyframes ay-pulse {0%{opacity:0.8;transform:scale(1)}50%{opacity:1;transform:scale(1.3)}100%{opacity:0.7;transform:scale(0.9)}}

.scn-barons-marriage-revealed {
  background: linear-gradient(180deg, #2a1a1a 0%, #4a2a1a 40%, #6a3a1a 100%), radial-gradient(ellipse at 50% 80%, #8a4a2a 0%, transparent 60%);
}
.scn-barons-marriage-revealed .fire-bg {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(180deg, #3a1a0a 0%, #6a3a1a 60%, #9a5a2a 100%);
  animation: bmr-fire 12s ease-in-out infinite alternate;
}
.scn-barons-marriage-revealed .mantle {
  position: absolute; bottom: 30%; left: 10%; right: 10%; height: 20%;
  background: linear-gradient(180deg, #5a3a2a 0%, #3a2a1a 100%);
  border-radius: 10% 10% 0 0; box-shadow: inset 0 4px 10px rgba(0,0,0,0.5);
  animation: bmr-mantle 15s ease-in-out infinite alternate;
}
.scn-barons-marriage-revealed .armchair {
  position: absolute; bottom: 25%; left: 40%; width: 80px; height: 50px;
  background: linear-gradient(135deg, #4a2a1a 0%, #2a1a0a 100%);
  border-radius: 20% 20% 10% 10%; box-shadow: 0 4px 12px rgba(0,0,0,0.6);
  transform-origin: bottom center; animation: bmr-chair 7s ease-in-out infinite;
}
.scn-barons-marriage-revealed .madame-figure {
  position: absolute; bottom: 28%; left: 45%; width: 30px; height: 50px;
  background: linear-gradient(180deg, #6a3a2a 0%, #3a1a0a 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: bmr-figure 5s ease-in-out infinite;
}
.scn-barons-marriage-revealed .valet {
  position: absolute; bottom: 26%; left: 60%; width: 24px; height: 48px;
  background: linear-gradient(180deg, #2a2a3a 0%, #0a0a1a 100%);
  border-radius: 45% 45% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: bmr-figure 6s ease-in-out infinite reverse;
}
.scn-barons-marriage-revealed .hearth-glow {
  position: absolute; bottom: 22%; left: 35%; width: 100px; height: 100px;
  background: radial-gradient(circle, #f08030 0%, rgba(240,128,48,0.4) 50%, transparent 100%);
  border-radius: 50%; animation: bmr-glow 4s ease-in-out infinite alternate;
}
.scn-barons-marriage-revealed .marriage-vision {
  position: absolute; top: 10%; left: 50%; width: 40px; height: 60px;
  background: radial-gradient(circle, rgba(200,140,60,0.8) 0%, rgba(200,140,60,0.1) 70%);
  border-radius: 50%; filter: blur(4px);
  animation: bmr-vision 8s ease-in-out infinite;
}
@keyframes bmr-fire {0%{opacity:0.7}50%{opacity:1}100%{opacity:0.8}}
@keyframes bmr-mantle {0%{transform:translateY(0)}50%{transform:translateY(-2px)}100%{transform:translateY(0)}}
@keyframes bmr-chair {0%{transform:translateY(0) rotate(0deg)}25%{transform:translateY(-1px) rotate(1deg)}50%{transform:translateY(0) rotate(-1deg)}75%{transform:translateY(-1px) rotate(1deg)}100%{transform:translateY(0) rotate(0deg)}}
@keyframes bmr-figure {0%{transform:translateY(0) rotate(0deg) scale(1)}25%{transform:translateY(-2px) rotate(2deg) scale(1.02)}50%{transform:translateY(0) rotate(-1deg) scale(1)}75%{transform:translateY(-1px) rotate(1deg) scale(0.98)}100%{transform:translateY(0) rotate(0deg) scale(1)}}
@keyframes bmr-glow {0%{opacity:0.4;transform:scale(0.9)}50%{opacity:1;transform:scale(1.2)}100%{opacity:0.5;transform:scale(1)}}
@keyframes bmr-vision {0%{opacity:0;transform:translateY(-10px) scale(0.8)}25%{opacity:0.8;transform:translateY(0) scale(1)}50%{opacity:0.6;transform:translateY(5px) scale(1.1)}75%{opacity:0.4;transform:translateY(-5px) scale(0.9)}100%{opacity:0;transform:translateY(-20px) scale(0.7)}}

.scn-wrong-turning-meeting {
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 40%, #2a1a0a 100%), radial-gradient(ellipse at 30% 50%, #3a2a1a 0%, transparent 80%);
}
.scn-wrong-turning-meeting .corridor {
  position: absolute; inset: 0 10% 20% 10%;
  background: linear-gradient(90deg, #2a1a0a 0%, #1a0a00 50%, #2a1a0a 100%);
  border-radius: 0 0 20% 20%;
  animation: wtm-corridor 18s ease-in-out infinite alternate;
}
.scn-wrong-turning-meeting .narrow-wall {
  position: absolute; bottom: 10%; left: 15%; right: 15%; height: 60%;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0a00 100%);
  box-shadow: inset 0 0 20px rgba(0,0,0,0.7);
  animation: wtm-wall 14s ease-in-out infinite alternate;
}
.scn-wrong-turning-meeting .little-door {
  position: absolute; bottom: 20%; left: 30%; width: 80px; height: 100px;
  background: linear-gradient(135deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 6px; box-shadow: inset 0 4px 8px rgba(0,0,0,0.5);
  transform-origin: left center;
  animation: wtm-door 10s ease-in-out infinite;
}
.scn-wrong-turning-meeting .kossowski-figure {
  position: absolute; bottom: 15%; left: 28%; width: 40px; height: 60px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0a00 100%);
  border-radius: 35% 35% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: wtm-figure 4s ease-in-out infinite;
}
.scn-wrong-turning-meeting .sheepskin-cloak {
  position: absolute; bottom: 16%; left: 30%; width: 36px; height: 40px;
  background: radial-gradient(ellipse at 50% 30%, #5a4a3a 0%, #2a1a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  filter: blur(2px);
  animation: wtm-cloak 5s ease-in-out infinite alternate;
}
.scn-wrong-turning-meeting .filthy-cap {
  position: absolute; bottom: 60%; left: 33%; width: 30px; height: 20px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0a00 100%);
  border-radius: 60% 60% 40% 40% / 70% 70% 30% 30%;
  transform: rotate(-10deg);
  animation: wtm-cap 6s ease-in-out infinite;
}
.scn-wrong-turning-meeting .shadow-growl {
  position: absolute; bottom: 12%; left: 25%; width: 60px; height: 30px;
  background: radial-gradient(ellipse at 50% 50%, rgba(0,0,0,0.6) 0%, transparent 100%);
  filter: blur(8px);
  animation: wtm-shadow 8s ease-in-out infinite;
}
@keyframes wtm-corridor {0%{opacity:0.8}50%{opacity:1}100%{opacity:0.7}}
@keyframes wtm-wall {0%{transform:translateX(0)}50%{transform:translateX(2px)}100%{transform:translateX(0)}}
@keyframes wtm-door {0%{transform:scaleX(1) translateY(0)}25%{transform:scaleX(0.8) translateY(-1px)}50%{transform:scaleX(1) translateY(0)}75%{transform:scaleX(0.9) translateY(1px)}100%{transform:scaleX(1) translateY(0)}}
@keyframes wtm-figure {0%{transform:translateY(0) rotate(0deg) scale(1)}25%{transform:translateY(-3px) rotate(3deg) scale(1.02)}50%{transform:translateY(0) rotate(-2deg) scale(1)}75%{transform:translateY(-2px) rotate(2deg) scale(0.98)}100%{transform:translateY(0) rotate(0deg) scale(1)}}
@keyframes wtm-cloak {0%{opacity:0.6;transform:scale(1)}50%{opacity:1;transform:scale(1.1)}100%{opacity:0.5;transform:scale(0.9)}}
@keyframes wtm-cap {0%{transform:rotate(-10deg) translateY(0)}25%{transform:rotate(-8deg) translateY(-1px)}50%{transform:rotate(-12deg) translateY(0)}75%{transform:rotate(-9deg) translateY(1px)}100%{transform:rotate(-10deg) translateY(0)}}
@keyframes wtm-shadow {0%{opacity:0.3;transform:scale(1)}50%{opacity:0.6;transform:scale(1.2)}100%{opacity:0.2;transform:scale(0.9)}}

.scn-baroness-revelation {
  background: linear-gradient(180deg, #2a1a1a 0%, #4a2a1a 40%, #6a3a1a 100%), radial-gradient(ellipse at 50% 60%, #8a4a2a 0%, transparent 70%);
}
.scn-baroness-revelation .fire-bg {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(180deg, #3a1a0a 0%, #6a3a1a 60%, #9a5a2a 100%);
  animation: br-fire 13s ease-in-out infinite alternate;
}
.scn-baroness-revelation .room-panel {
  position: absolute; bottom: 25%; left: 5%; right: 5%; height: 35%;
  background: linear-gradient(180deg, #5a3a2a 0%, #3a2a1a 100%);
  border-radius: 10% 10% 0 0; box-shadow: inset 0 4px 12px rgba(0,0,0,0.5);
  animation: br-panel 17s ease-in-out infinite alternate;
}
.scn-baroness-revelation .baroness-figure {
  position: absolute; bottom: 30%; left: 45%; width: 30px; height: 55px;
  background: linear-gradient(180deg, #6a3a2a 0%, #3a1a0a 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: br-figure 5s ease-in-out infinite;
}
.scn-baroness-revelation .red-hair {
  position: absolute; bottom: 70%; left: 43%; width: 30px; height: 20px;
  background: radial-gradient(ellipse at 50% 30%, #a55a3a 0%, #6a2a1a 100%);
  border-radius: 60% 60% 40% 40% / 70% 70% 30% 30%;
  transform: rotate(5deg);
  animation: br-hair 8s ease-in-out infinite alternate;
}
.scn-baroness-revelation .flush-glow {
  position: absolute; bottom: 55%; left: 46%; width: 20px; height: 20px;
  background: radial-gradient(circle, #c08050 0%, rgba(192,128,80,0.3) 50%, transparent 100%);
  border-radius: 50%;
  animation: br-flush 6s ease-in-out infinite;
}
.scn-baroness-revelation .cold-expression {
  position: absolute; bottom: 65%; left: 47%; width: 10px; height: 10px;
  background: radial-gradient(circle, #7a6a5a 0%, transparent 100%);
  border-radius: 50%; filter: blur(2px);
  animation: br-cold 10s ease-in-out infinite alternate;
}
.scn-baroness-revelation .shadow-flame {
  position: absolute; bottom: 20%; left: 30%; width: 80px; height: 80px;
  background: radial-gradient(circle, rgba(200,100,50,0.4) 0%, transparent 100%);
  border-radius: 50%; filter: blur(10px);
  animation: br-shadow 7s ease-in-out infinite alternate;
}
@keyframes br-fire {0%{opacity:0.7}50%{opacity:1}100%{opacity:0.8}}
@keyframes br-panel {0%{transform:translateY(0)}50%{transform:translateY(-2px)}100%{transform:translateY(0)}}
@keyframes br-figure {0%{transform:translateY(0) rotate(0deg) scale(1)}25%{transform:translateY(-2px) rotate(2deg) scale(1.02)}50%{transform:translateY(0) rotate(-1deg) scale(1)}75%{transform:translateY(-1px) rotate(1deg) scale(0.98)}100%{transform:translateY(0) rotate(0deg) scale(1)}}
@keyframes br-hair {0%{transform:rotate(5deg) translateY(0)}50%{transform:rotate(3deg) translateY(-2px)}100%{transform:rotate(7deg) translateY(0)}}
@keyframes br-flush {0%{opacity:0.2;transform:scale(0.8)}50%{opacity:0.7;transform:scale(1.3)}100%{opacity:0.3;transform:scale(0.9)}}
@keyframes br-cold {0%{opacity:0.4;transform:translateY(0)}50%{opacity:0.8;transform:translateY(-2px)}100%{opacity:0.5;transform:translateY(0)}}
@keyframes br-shadow {0%{opacity:0.3;transform:scale(0.9)}50%{opacity:0.6;transform:scale(1.1)}100%{opacity:0.4;transform:scale(1)}}

.scn-attack-and-struggle { background: linear-gradient(180deg, #0a0a1a 0%, #1a1a3a 30%, #2a2a4a 60%, #1a1a3a 100%), radial-gradient(ellipse at 70% 15%, #4a4a7a 0%, transparent 50%); }
.scn-attack-and-struggle .sky    { position:absolute; inset:0 0 45% 0; background: linear-gradient(180deg, #0a0a1a 0%, #1a1a3a 40%, transparent 100%); }
.scn-attack-and-struggle .cloud  { position:absolute; top:12%; left:0; width:100px; height:14px; background: linear-gradient(90deg, transparent, rgba(200,210,240,0.15) 20%, rgba(200,210,240,0.25) 50%, transparent); border-radius:50%; filter: blur(6px); animation: as-cloud 35s linear infinite; }
.scn-attack-and-struggle .ground { position:absolute; bottom:0; left:0; right:0; height:40%; background: linear-gradient(180deg, #1a1a2a 0%, #0f0f1a 100%); border-radius: 30% 50% 0 0 / 20% 30% 0 0; box-shadow: inset 0 8px 20px rgba(0,0,0,.6); }
.scn-attack-and-struggle .horse  { position:absolute; bottom:28%; left:28%; width:70px; height:50px; background: linear-gradient(180deg, #15152a 0%, #0a0a1a 100%); border-radius: 50% 50% 40% 40% / 60% 50% 50% 60%; transform-origin: bottom center; animation: as-horse 0.8s ease-in-out infinite alternate; }
.scn-attack-and-struggle .rider  { position:absolute; bottom:45%; left:30%; width:18px; height:24px; background: linear-gradient(180deg, #1a1a3a 0%, #0a0a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: as-rider 0.8s ease-in-out infinite; }
.scn-attack-and-struggle .baron  { position:absolute; bottom:24%; left:44%; width:16px; height:30px; background: linear-gradient(180deg, #0a0a2a 0%, #050510 100%); border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%; transform-origin: bottom center; animation: as-baron 1s ease-in-out infinite; }
.scn-attack-and-struggle .whip   { position:absolute; bottom:38%; left:36%; width:80px; height:2px; background: linear-gradient(90deg, #9a9aaa 0%, #7a7a8a 100%); transform-origin: left center; border-radius: 2px; animation: as-whip 0.5s ease-in-out infinite; }
.scn-attack-and-struggle .hound  { position:absolute; bottom:14%; right:10%; width:40px; height:16px; background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%); border-radius: 50% 50% 40% 40% / 60% 50% 50% 60%; transform-origin: center; animation: as-hound 2s ease-in-out infinite; }
.scn-attack-and-struggle .trail  { position:absolute; bottom:16%; left:20%; width:120px; height:3px; background: linear-gradient(90deg, transparent 0%, #4a1a1a 20%, #5e2a1a 50%, #4a1a1a 80%, transparent 100%); border-radius: 50%; filter: blur(1px); opacity:0.7; animation: as-trail 3s ease-in-out infinite alternate; }
@keyframes as-cloud {
  0% { transform: translateX(-20px); }
  50% { transform: translateX(40vw); }
  100% { transform: translateX(90vw); }
}
@keyframes as-horse {
  0% { transform: translateY(0) rotate(0deg); }
  50% { transform: translateY(-8px) rotate(3deg); }
  100% { transform: translateY(2px) rotate(-2deg); }
}
@keyframes as-rider {
  0% { transform: translateY(0) rotate(0deg); }
  30% { transform: translateY(-4px) rotate(8deg); }
  70% { transform: translateY(-2px) rotate(-4deg); }
  100% { transform: translateY(0) rotate(0deg); }
}
@keyframes as-baron {
  0% { transform: translateY(0) rotate(0deg); }
  40% { transform: translateY(-6px) rotate(10deg); }
  80% { transform: translateY(-2px) rotate(-5deg); }
  100% { transform: translateY(0) rotate(2deg); }
}
@keyframes as-whip {
  0% { transform: rotate(-20deg) scaleX(1); }
  50% { transform: rotate(20deg) scaleX(1.3); }
  100% { transform: rotate(-15deg) scaleX(0.9); }
}
@keyframes as-hound {
  0% { transform: translateX(0) scaleX(1); }
  40% { transform: translateX(-15px) scaleX(0.95); }
  80% { transform: translateX(-30px) scaleX(1.05); }
  100% { transform: translateX(-40px) scaleX(1); }
}
@keyframes as-trail {
  0% { opacity:0.3; transform: scaleX(0.8); }
  50% { opacity:0.7; transform: scaleX(1.2); }
  100% { opacity:0.5; transform: scaleX(1); }
}

.scn-night-preparations {
  background: linear-gradient(180deg, #1a1410 0%, #2a1f1a 40%, #3a2a22 100%), radial-gradient(ellipse at 60% 30%, #5a3a2a 0%, transparent 60%);
}
.scn-night-preparations .wall-left {
  position: absolute; top: 0; left: 0; width: 30%; height: 100%;
  background: linear-gradient(90deg, #2a1f1a 0%, #1a1410 100%);
}
.scn-night-preparations .wall-right {
  position: absolute; top: 0; right: 0; width: 30%; height: 100%;
  background: linear-gradient(270deg, #2a1f1a 0%, #1a1410 100%);
}
.scn-night-preparations .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 20%;
  background: linear-gradient(0deg, #1a1210 0%, #2a1a14 100%);
}
.scn-night-preparations .divan {
  position: absolute; bottom: 15%; left: 35%; width: 30%; height: 25%;
  background: linear-gradient(180deg, #4a3028 0%, #3a221a 100%);
  border-radius: 25% 25% 12% 12% / 40% 40% 20% 20%;
}
.scn-night-preparations .baron {
  position: absolute; bottom: 18%; left: 45%; width: 12%; height: 22%;
  background: linear-gradient(180deg, #3a2a22 0%, #1a1410 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform: rotate(-5deg);
  animation: np-baron 6s ease-in-out infinite;
}
.scn-night-preparations .marshfield {
  position: absolute; bottom: 20%; left: 22%; width: 10%; height: 30%;
  background: linear-gradient(180deg, #2a1f1a 0%, #1a1410 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: np-marsh 4s ease-in-out infinite;
}
.scn-night-preparations .lamp {
  position: absolute; bottom: 45%; left: 28%; width: 4%; height: 6%;
  background: radial-gradient(circle, #ffc880 0%, #b08040 70%);
  border-radius: 50%;
  box-shadow: 0 0 30px 10px rgba(255, 200, 128, 0.4), 0 0 60px 20px rgba(255, 200, 128, 0.2);
  animation: np-flicker 2s ease-in-out infinite alternate;
}
.scn-night-preparations .shadow {
  position: absolute; bottom: 20%; left: 20%; width: 30%; height: 10%;
  background: linear-gradient(90deg, transparent, rgba(0, 0, 0, 0.5), transparent);
  filter: blur(8px);
  animation: np-shadow 8s ease-in-out infinite;
}
@keyframes np-baron {
  0% { transform: rotate(-5deg) translateY(0); }
  50% { transform: rotate(-4deg) translateY(-2px); }
  100% { transform: rotate(-5deg) translateY(0); }
}
@keyframes np-marsh {
  0% { transform: rotate(2deg) translateX(0); }
  30% { transform: rotate(3deg) translateX(4px); }
  60% { transform: rotate(1deg) translateX(-2px); }
  100% { transform: rotate(2deg) translateX(0); }
}
@keyframes np-flicker {
  0% { box-shadow: 0 0 30px 10px rgba(255, 200, 128, 0.4), 0 0 60px 20px rgba(255, 200, 128, 0.2); opacity: 0.9; }
  50% { box-shadow: 0 0 40px 15px rgba(255, 220, 150, 0.6), 0 0 80px 30px rgba(255, 220, 150, 0.3); opacity: 1; }
  100% { box-shadow: 0 0 25px 8px rgba(255, 180, 100, 0.3), 0 0 50px 15px rgba(255, 180, 100, 0.15); opacity: 0.85; }
}
@keyframes np-shadow {
  0% { transform: scaleX(1); opacity: 0.4; }
  50% { transform: scaleX(1.2); opacity: 0.6; }
  100% { transform: scaleX(1); opacity: 0.4; }
}

.scn-moonlit-departure {
  background: linear-gradient(180deg, #1a2030 0%, #2a3050 40%, #3a4060 100%), radial-gradient(ellipse at 50% 15%, #c0d8f0 0%, transparent 50%);
}
.scn-moonlit-departure .sky {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #1a2238 0%, transparent 100%);
  animation: md-sky 20s ease-in-out infinite alternate;
}
.scn-moonlit-departure .moon {
  position: absolute; top: 6%; left: 70%; width: 8%; height: 12%;
  background: radial-gradient(circle, #e0e8ff 0%, #c0c8e0 80%);
  border-radius: 50%;
  box-shadow: 0 0 60px 30px rgba(192, 200, 224, 0.3), 0 0 120px 60px rgba(192, 200, 224, 0.1);
  animation: md-moon 40s linear infinite;
}
.scn-moonlit-departure .courtyard {
  position: absolute; bottom: 0; left: 5%; right: 5%; height: 35%;
  background: linear-gradient(0deg, #2a3040 0%, #3a4050 100%);
  border-radius: 10% 10% 0 0;
}
.scn-moonlit-departure .gate {
  position: absolute; bottom: 25%; left: 40%; width: 20%; height: 40%;
  background: linear-gradient(180deg, #4a5050 0%, #2a3030 100%);
  border-left: 4px solid #5a6060;
  border-right: 4px solid #5a6060;
  transform: rotateY(0deg);
  animation: md-gate 3s ease-in-out infinite alternate;
}
.scn-moonlit-departure .stable {
  position: absolute; bottom: 25%; left: 10%; width: 25%; height: 30%;
  background: linear-gradient(180deg, #3a4040 0%, #2a3030 100%);
  border-radius: 5% 5% 0 0;
}
.scn-moonlit-departure .horse {
  position: absolute; bottom: 32%; left: 30%; width: 12%; height: 18%;
  background: linear-gradient(180deg, #5a6060 0%, #3a4040 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  animation: md-horse 2s ease-in-out infinite;
}
.scn-moonlit-departure .kossowski {
  position: absolute; bottom: 35%; left: 28%; width: 8%; height: 20%;
  background: linear-gradient(180deg, #3a4040 0%, #2a3030 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 30% 30%;
  animation: md-figure 3s ease-in-out infinite;
}
.scn-moonlit-departure .shadow-md {
  position: absolute; bottom: 30%; left: 25%; width: 20%; height: 8%;
  background: linear-gradient(90deg, transparent, rgba(0, 0, 0, 0.4), transparent);
  filter: blur(6px);
  animation: md-shadow 5s ease-in-out infinite;
}
@keyframes md-sky { 0% { opacity: 0.7; } 50% { opacity: 1; } 100% { opacity: 0.8; } }
@keyframes md-moon { 0% { transform: translateX(0); } 100% { transform: translateX(200px); } }
@keyframes md-gate { 0% { transform: rotateY(0deg); } 50% { transform: rotateY(10deg); } 100% { transform: rotateY(0deg); } }
@keyframes md-horse {
  0% { transform: translateY(0) rotate(-2deg); }
  25% { transform: translateY(-3px) rotate(0deg); }
  50% { transform: translateY(-1px) rotate(2deg); }
  75% { transform: translateY(-2px) rotate(0deg); }
  100% { transform: translateY(0) rotate(-2deg); }
}
@keyframes md-figure {
  0% { transform: translateX(0) rotate(0deg); }
  50% { transform: translateX(5px) rotate(3deg); }
  100% { transform: translateX(0) rotate(0deg); }
}
@keyframes md-shadow { 0% { transform: scaleX(1); opacity: 0.3; } 50% { transform: scaleX(1.2); opacity: 0.5; } 100% { transform: scaleX(1); opacity: 0.3; } }

.scn-track-discovery {
  background: linear-gradient(180deg, #202a40 0%, #2a3550 50%, #3a4560 100%), radial-gradient(ellipse at 50% 100%, #4a5a70 0%, transparent 60%);
}
.scn-track-discovery .sky {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(180deg, #1a2335 0%, transparent 100%);
  animation: td-sky 25s ease-in-out infinite alternate;
}
.scn-track-discovery .snow {
  position: absolute; bottom: 0; left: 0; right: 0; height: 45%;
  background: linear-gradient(0deg, #d0d8e0 0%, #b0bcc8 100%);
  border-radius: 30% 70% 0 0 / 50% 80% 0 0;
}
.scn-track-discovery .fir-left {
  position: absolute; bottom: 38%; left: 5%; width: 15%; height: 50%;
  background: linear-gradient(180deg, #2a3a30 0%, #1a2a20 100%);
  clip-path: polygon(50% 0%, 0% 100%, 100% 100%);
  animation: td-tree 14s ease-in-out infinite alternate;
}
.scn-track-discovery .fir-right {
  position: absolute; bottom: 40%; right: 8%; width: 12%; height: 45%;
  background: linear-gradient(180deg, #2a3a30 0%, #1a2a20 100%);
  clip-path: polygon(50% 0%, 0% 100%, 100% 100%);
  animation: td-tree 18s ease-in-out infinite alternate-reverse;
}
.scn-track-discovery .track {
  position: absolute; bottom: 30%; left: 30%; width: 40%; height: 4%;
  background: linear-gradient(90deg, transparent 0%, #8a8a8a 20%, #6a6a6a 50%, #8a8a8a 80%, transparent 100%);
  border-radius: 50%;
  filter: blur(2px);
  animation: td-track 5s ease-in-out infinite;
}
.scn-track-discovery .kossowski-td {
  position: absolute; bottom: 35%; left: 35%; width: 10%; height: 22%;
  background: linear-gradient(180deg, #2a3a30 0%, #1a2a20 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 30% 30%;
  animation: td-figure 2s ease-in-out infinite;
}
.scn-track-discovery .whip {
  position: absolute; bottom: 40%; left: 42%; width: 2%; height: 15%;
  background: linear-gradient(180deg, #4a5a40 0%, #2a3a20 100%);
  border-radius: 20%;
  transform-origin: bottom center;
  animation: td-whip 0.6s ease-in-out infinite;
}
.scn-track-discovery .hound1 {
  position: absolute; bottom: 33%; left: 28%; width: 6%; height: 10%;
  background: linear-gradient(180deg, #4a4a3a 0%, #2a2a1a 100%);
  border-radius: 50% 50% 40% 40% / 50% 50% 30% 30%;
  animation: td-hound 1.2s ease-in-out infinite;
}
.scn-track-discovery .hound2 {
  position: absolute; bottom: 34%; left: 38%; width: 5%; height: 9%;
  background: linear-gradient(180deg, #3a3a2a 0%, #1a1a0a 100%);
  border-radius: 50% 50% 40% 40% / 50% 50% 30% 30%;
  animation: td-hound 1.5s ease-in-out infinite 0.3s;
}
@keyframes td-sky { 0% { opacity: 0.6; } 50% { opacity: 0.9; } 100% { opacity: 0.7; } }
@keyframes td-tree { 0% { transform: scale(1) translateY(0); } 50% { transform: scale(1.02) translateY(-2px); } 100% { transform: scale(1) translateY(0); } }
@keyframes td-track { 0% { transform: scaleX(1); opacity: 0.6; } 50% { transform: scaleX(1.1); opacity: 0.8; } 100% { transform: scaleX(1); opacity: 0.6; } }
@keyframes td-figure {
  0% { transform: translateX(0) rotate(0deg); }
  25% { transform: translateX(4px) rotate(-5deg); }
  50% { transform: translateX(0) rotate(0deg); }
  75% { transform: translateX(-4px) rotate(5deg); }
  100% { transform: translateX(0) rotate(0deg); }
}
@keyframes td-whip {
  0% { transform: rotate(0deg); }
  25% { transform: rotate(60deg); }
  50% { transform: rotate(0deg); }
  75% { transform: rotate(-60deg); }
  100% { transform: rotate(0deg); }
}
@keyframes td-hound {
  0% { transform: translateY(0) translateX(0); }
  30% { transform: translateY(-3px) translateX(2px); }
  60% { transform: translateY(-1px) translateX(4px); }
  100% { transform: translateY(0) translateX(0); }
}

.scn-revelation-and-pursuit {
  background: linear-gradient(180deg, #182030 0%, #283850 50%, #384860 100%), radial-gradient(ellipse at 70% 20%, #b0c8e0 0%, transparent 60%);
}
.scn-revelation-and-pursuit .sky-rp {
  position: absolute; inset: 0 0 35% 0;
  background: linear-gradient(180deg, #1a2235 0%, transparent 100%);
  animation: rp-sky 30s ease-in-out infinite alternate;
}
.scn-revelation-and-pursuit .moon-rp {
  position: absolute; top: 8%; right: 15%; width: 10%; height: 14%;
  background: radial-gradient(circle, #e0e8ff 0%, #c0c8e0 80%);
  border-radius: 50%;
  box-shadow: 0 0 80px 40px rgba(192, 200, 224, 0.3), 0 0 150px 70px rgba(192, 200, 224, 0.1);
  animation: rp-moon 50s linear infinite;
}
.scn-revelation-and-pursuit .ground-rp {
  position: absolute; bottom: 0; left: 0; right: 0; height: 40%;
  background: linear-gradient(0deg, #2a3a40 0%, #3a4a50 100%);
  border-radius: 20% 80% 0 0 / 40% 60% 0 0;
}
.scn-revelation-and-pursuit .marshfield-rp {
  position: absolute; bottom: 28%; left: 30%; width: 10%; height: 24%;
  background: linear-gradient(180deg, #2a3a3a 0%, #1a2a2a 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 30% 30%;
  animation: rp-rider 1.5s ease-in-out infinite;
}
.scn-revelation-and-pursuit .horse1-rp {
  position: absolute; bottom: 30%; left: 28%; width: 14%; height: 20%;
  background: linear-gradient(180deg, #4a5a5a 0%, #2a3a3a 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  animation: rp-gallop 0.8s ease-in-out infinite;
}
.scn-revelation-and-pursuit .horse2-rp {
  position: absolute; bottom: 30%; left: 50%; width: 12%; height: 18%;
  background: linear-gradient(180deg, #3a4a4a 0%, #2a3a3a 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  animation: rp-gallop 0.9s ease-in-out infinite 0.15s;
}
.scn-revelation-and-pursuit .dust {
  position: absolute; bottom: 26%; left: 25%; width: 30%; height: 10%;
  background: radial-gradient(ellipse, rgba(180, 180, 160, 0.3), transparent 70%);
  filter: blur(10px);
  animation: rp-dust 4s ease-in-out infinite alternate;
}
.scn-revelation-and-pursuit .tree-pass {
  position: absolute; bottom: 30%; right: 5%; width: 15%; height: 55%;
  background: linear-gradient(180deg, #2a3a2a 0%, #1a2a1a 100%);
  clip-path: polygon(50% 0%, 0% 100%, 100% 100%);
  animation: rp-tree 10s linear infinite;
}
@keyframes rp-sky { 0% { opacity: 0.7; } 50% { opacity: 1; } 100% { opacity: 0.8; } }
@keyframes rp-moon { 0% { transform: translateX(0); } 100% { transform: translateX(-150px); } }
@keyframes rp-rider {
  0% { transform: translateY(0) rotate(0deg); }
  25% { transform: translateY(-4px) rotate(3deg); }
  50% { transform: translateY(-2px) rotate(0deg); }
  75% { transform: translateY(-4px) rotate(-3deg); }
  100% { transform: translateY(0) rotate(0deg); }
}
@keyframes rp-gallop {
  0% { transform: translateY(0) scaleX(1); }
  20% { transform: translateY(-6px) scaleX(0.95); }
  40% { transform: translateY(-2px) scaleX(1); }
  60% { transform: translateY(-4px) scaleX(0.95); }
  80% { transform: translateY(-1px) scaleX(1); }
  100% { transform: translateY(0) scaleX(1); }
}
@keyframes rp-dust {
  0% { transform: scaleY(1) scaleX(0.8); opacity: 0.3; }
  50% { transform: scaleY(1.2) scaleX(1); opacity: 0.5; }
  100% { transform: scaleY(1) scaleX(0.8); opacity: 0.3; }
}
@keyframes rp-tree { 0% { transform: translateX(0); } 100% { transform: translateX(-70px); } }

.scn-cellar-confirmation {
  background: 
    linear-gradient(180deg, #1a1a1e 0%, #2a2a30 40%, #1e1e22 100%),
    radial-gradient(ellipse at 50% 100%, #3a2a1a 0%, transparent 70%);
}
.scn-cellar-confirmation .wall-bg {
  position:absolute; inset:0; background:
    repeating-linear-gradient(0deg, #3a3a40 0px, #3a3a40 2px, #2a2a30 2px, #2a2a30 4px);
  opacity:0.3;
}
.scn-cellar-confirmation .floor {
  position:absolute; bottom:0; left:0; right:0; height:30%;
  background: linear-gradient(180deg, #2a2a2e 0%, #1a1a1e 100%);
  box-shadow: inset 0 8px 12px rgba(0,0,0,0.6);
}
.scn-cellar-confirmation .figure-holmes {
  position:absolute; bottom:20%; left:35%; width:24px; height:60px;
  background: linear-gradient(180deg, #151518 0%, #0a0a0c 100%);
  border-radius: 30% 30% 20% 20% / 60% 60% 20% 20%;
  transform-origin: bottom center;
  animation: cc-figure 6s ease-in-out infinite;
}
.scn-cellar-confirmation .stick {
  position:absolute; bottom:18%; left:37%; width:4px; height:50px;
  background: #3a3a30; border-radius: 2px;
  transform: rotate(-15deg); transform-origin: bottom center;
  animation: cc-stick 8s ease-in-out infinite alternate;
}
.scn-cellar-confirmation .bell {
  position:absolute; bottom:46%; left:28%; width:12px; height:16px;
  background: radial-gradient(circle at 50% 30%, #8a7a50 0%, #5a4a30 100%);
  border-radius: 50% 50% 30% 30%;
  box-shadow: 0 0 6px 2px rgba(200,180,120,0.3);
  animation: cc-bell 4s ease-in-out infinite;
}
.scn-cellar-confirmation .light-shaft {
  position:absolute; top:0; left:20%; width:60%; height:100%;
  background: linear-gradient(180deg, rgba(200,180,100,0.12) 0%, rgba(200,180,100,0.03) 60%, transparent 100%);
  filter: blur(8px);
  animation: cc-shaft 10s ease-in-out infinite alternate;
}
.scn-cellar-confirmation .dust-motes {
  position:absolute; inset:0;
  background: radial-gradient(circle at 30% 40%, rgba(220,200,160,0.08) 0%, transparent 50%),
              radial-gradient(circle at 70% 60%, rgba(220,200,160,0.05) 0%, transparent 40%);
  animation: cc-dust 14s linear infinite;
}
.scn-cellar-confirmation .assistant-knees {
  position:absolute; bottom:22%; left:52%; width:20px; height:14px;
  background: linear-gradient(180deg, #3a3a2e 0%, #2a2a20 100%);
  border-radius: 40% 40% 10% 10%;
  transform: rotate(10deg);
  box-shadow: inset 0 -2px 4px rgba(0,0,0,0.5);
  animation: cc-knees 12s ease-in-out infinite alternate;
}
@keyframes cc-figure {
  0%,100% { transform: translateX(0) rotate(0deg); }
  25% { transform: translateX(4px) rotate(1deg); }
  50% { transform: translateX(0) rotate(0deg) scaleY(0.98); }
  75% { transform: translateX(-3px) rotate(-1deg); }
}
@keyframes cc-stick {
  0% { transform: rotate(-15deg) translateY(0); }
  50% { transform: rotate(-10deg) translateY(-2px); }
  100% { transform: rotate(-18deg) translateY(1px); }
}
@keyframes cc-bell {
  0%,100% { transform: translateY(0) rotate(0deg); }
  30% { transform: translateY(-2px) rotate(4deg); }
  60% { transform: translateY(1px) rotate(-3deg); }
}
@keyframes cc-shaft {
  0% { opacity:0.4; transform: scaleX(1); }
  50% { opacity:0.8; transform: scaleX(1.05); }
  100% { opacity:0.5; transform: scaleX(0.95); }
}
@keyframes cc-dust {
  0% { background-position: 0% 0%; }
  100% { background-position: 100% 100%; }
}
@keyframes cc-knees {
  0% { transform: rotate(10deg) scaleY(1); }
  50% { transform: rotate(5deg) scaleY(0.95); }
  100% { transform: rotate(12deg) scaleY(1); }
}

.scn-admiration-exchange {
  background: 
    linear-gradient(180deg, #f5edd0 0%, #e8d8b0 40%, #d4c090 100%),
    radial-gradient(ellipse at 70% 30%, #fff8e0 0%, transparent 60%);
}
.scn-admiration-exchange .room-bg {
  position:absolute; inset:0;
  background: linear-gradient(90deg, #d8c8a8 0%, #e8d8b8 50%, #d0c0a0 100%);
}
.scn-admiration-exchange .window-glow {
  position:absolute; top:5%; right:10%; width:30%; height:50%;
  background: linear-gradient(180deg, #fff8e0 0%, rgba(255,248,224,0.2) 100%);
  border-radius: 10% / 5%;
  box-shadow: 0 0 40px 20px rgba(255,240,200,0.4);
  animation: ae-window 10s ease-in-out infinite alternate;
}
.scn-admiration-exchange .fireplace-glow {
  position:absolute; bottom:10%; left:15%; width:20%; height:30%;
  background: radial-gradient(ellipse at 50% 100%, #ffb060 0%, #a06020 60%, transparent 80%);
  border-radius: 30% 30% 10% 10%;
  box-shadow: 0 0 60px 30px rgba(255,160,80,0.3);
  animation: ae-fire 4s ease-in-out infinite alternate;
}
.scn-admiration-exchange .figure-watson {
  position:absolute; bottom:18%; left:35%; width:22px; height:50px;
  background: linear-gradient(180deg, #3a3a3a 0%, #1a1a1a 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: ae-watson 6s ease-in-out infinite;
}
.scn-admiration-exchange .figure-holmes-seated {
  position:absolute; bottom:15%; right:25%; width:24px; height:48px;
  background: linear-gradient(180deg, #2a2a2a 0%, #0a0a0a 100%);
  border-radius: 35% 35% 25% 25% / 55% 55% 25% 25%;
  transform-origin: bottom center;
  box-shadow: 0 2px 6px rgba(0,0,0,0.3);
  animation: ae-holmes 8s ease-in-out infinite;
}
.scn-admiration-exchange .bookshelf {
  position:absolute; top:8%; left:5%; width:15%; height:60%;
  background: repeating-linear-gradient(0deg, #6a4a2a 0px, #6a4a2a 3px, #8a6a4a 3px, #8a6a4a 6px);
  border-left: 3px solid #5a3a1a;
  box-shadow: 2px 0 8px rgba(0,0,0,0.2);
}
.scn-admiration-exchange .table-lamp {
  position:absolute; bottom:20%; left:55%; width:12px; height:18px;
  background: radial-gradient(circle at 50% 0%, #ffd060 0%, #b08030 100%);
  border-radius: 50% 50% 20% 20%;
  box-shadow: 0 0 30px 12px rgba(255,200,80,0.4);
  animation: ae-lamp 5s ease-in-out infinite alternate;
}
.scn-admiration-exchange .armchair {
  position:absolute; bottom:12%; right:38%; width:32px; height:28px;
  background: radial-gradient(ellipse at 50% 100%, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 30% 30% 10% 10%;
  box-shadow: 0 4px 6px rgba(0,0,0,0.3);
}
@keyframes ae-window {
  0% { opacity:0.6; transform: scaleY(1); }
  50% { opacity:1; transform: scaleY(1.05); }
  100% { opacity:0.7; transform: scaleY(1); }
}
@keyframes ae-fire {
  0% { opacity:0.7; transform: scale(1); }
  50% { opacity:1; transform: scale(1.1); }
  100% { opacity:0.8; transform: scale(0.95); }
}
@keyframes ae-watson {
  0%,100% { transform: translateX(0) rotate(0deg); }
  25% { transform: translateX(3px) rotate(2deg) scaleY(1.02); }
  50% { transform: translateX(0) rotate(-1deg); }
  75% { transform: translateX(-2px) rotate(1deg); }
}
@keyframes ae-holmes {
  0%,100% { transform: translateX(0) rotate(0deg) scaleY(1); }
  33% { transform: translateX(-2px) rotate(1deg) scaleY(0.98); }
  66% { transform: translateX(2px) rotate(-1deg) scaleY(1.02); }
}
@keyframes ae-lamp {
  0% { box-shadow: 0 0 20px 8px rgba(255,200,80,0.3); opacity:0.8; }
  50% { box-shadow: 0 0 40px 16px rgba(255,200,80,0.5); opacity:1; }
  100% { box-shadow: 0 0 25px 10px rgba(255,200,80,0.35); opacity:0.9; }
}

.scn-hunt-story-start {
  background: 
    linear-gradient(180deg, #2a1e14 0%, #1e140e 50%, #0a0806 100%),
    radial-gradient(ellipse at 50% 30%, #3a2a1a 0%, transparent 70%);
}
.scn-hunt-story-start .smoking-room-bg {
  position:absolute; inset:0;
  background: linear-gradient(135deg, #1e1812 0%, #2a221c 50%, #18120e 100%);
}
.scn-hunt-story-start .fireplace-hearth {
  position:absolute; bottom:5%; left:15%; width:30%; height:25%;
  background: radial-gradient(ellipse at 50% 100%, #e07030 0%, #802010 60%, transparent 80%);
  border-radius: 40% 40% 10% 10%;
  box-shadow: 0 0 50px 20px rgba(200,80,30,0.3);
  animation: hs-fire 6s ease-in-out infinite alternate;
}
.scn-hunt-story-start .figure-marshfield {
  position:absolute; bottom:15%; left:45%; width:20px; height:55px;
  background: linear-gradient(180deg, #1a1a1a 0%, #0a0a0a 100%);
  border-radius: 30% 30% 20% 20% / 55% 55% 20% 20%;
  transform-origin: bottom center;
  animation: hs-marsh 8s ease-in-out infinite;
}
.scn-hunt-story-start .audience-silhouettes {
  position:absolute; bottom:12%; left:60%; width:40px; height:40px;
  background: 
    radial-gradient(ellipse at 20% 100%, #0a0a0a 0%, transparent 50%),
    radial-gradient(ellipse at 50% 100%, #0a0a0a 0%, transparent 50%),
    radial-gradient(ellipse at 80% 100%, #0a0a0a 0%, transparent 50%);
  border-radius: 0 0 30% 30%;
}
.scn-hunt-story-start .armchair-a {
  position:absolute; bottom:10%; left:30%; width:28px; height:24px;
  background: radial-gradient(ellipse at 50% 100%, #3a2a1a 0%, #1a0e06 100%);
  border-radius: 20% 20% 10% 10%;
  animation: hs-chair 14s ease-in-out infinite alternate;
}
.scn-hunt-story-start .armchair-b {
  position:absolute; bottom:12%; right:10%; width:30px; height:26px;
  background: radial-gradient(ellipse at 50% 100%, #3a2a1a 0%, #1a0e06 100%);
  border-radius: 20% 20% 10% 10%;
  animation: hs-chair 14s ease-in-out infinite alternate-reverse;
}
.scn-hunt-story-start .brandy-snifter {
  position:absolute; bottom:20%; left:38%; width:10px; height:14px;
  background: radial-gradient(circle at 50% 30%, #b08040 0%, #603000 100%);
  border-radius: 40% 40% 20% 20%;
  box-shadow: 0 0 8px 2px rgba(180,120,60,0.3);
  animation: hs-brandy 5s ease-in-out infinite alternate;
}
.scn-hunt-story-start .wall-lamp {
  position:absolute; top:15%; right:20%; width:8px; height:12px;
  background: radial-gradient(circle at 50% 0%, #d0b080 0%, #806040 100%);
  border-radius: 30% 30% 10% 10%;
  box-shadow: 0 0 20px 6px rgba(200,150,80,0.2);
  animation: hs-lamp 10s ease-in-out infinite alternate;
}
@keyframes hs-fire {
  0% { opacity:0.6; transform: scale(1) rotate(-1deg); }
  50% { opacity:1; transform: scale(1.08) rotate(2deg); }
  100% { opacity:0.7; transform: scale(0.95) rotate(0deg); }
}
@keyframes hs-marsh {
  0%,100% { transform: translateX(0) rotate(0deg); }
  20% { transform: translateX(4px) rotate(1deg) scaleY(1.01); }
  40% { transform: translateX(0) rotate(-2deg); }
  60% { transform: translateX(-3px) rotate(1deg) scaleY(0.99); }
  80% { transform: translateX(2px) rotate(0deg); }
}
@keyframes hs-chair {
  0% { transform: translateY(0) scale(1); }
  50% { transform: translateY(-1px) scale(1.02); }
  100% { transform: translateY(0) scale(0.98); }
}
@keyframes hs-brandy {
  0% { transform: rotate(-3deg) translateY(0); opacity:0.7; }
  50% { transform: rotate(0deg) translateY(-1px); opacity:1; }
  100% { transform: rotate(4deg) translateY(0); opacity:0.8; }
}
@keyframes hs-lamp {
  0% { opacity:0.5; box-shadow: 0 0 10px 3px rgba(200,150,80,0.1); }
  50% { opacity:0.9; box-shadow: 0 0 30px 10px rgba(200,150,80,0.3); }
  100% { opacity:0.6; box-shadow: 0 0 15px 5px rgba(200,150,80,0.15); }
}

.scn-invitation-procured {
  background: 
    linear-gradient(180deg, #f0d8b0 0%, #d4b890 40%, #a08870 100%),
    radial-gradient(ellipse at 50% 20%, #ffe8c0 0%, transparent 60%);
}
.scn-invitation-procured .dawn-sky {
  position:absolute; inset:0 0 40% 0;
  background: linear-gradient(180deg, #ffc8a0 0%, #e0a070 30%, #b08060 60%, #705040 100%);
  animation: ip-sky 20s ease-in-out infinite alternate;
}
.scn-invitation-procured .snow-ground {
  position:absolute; bottom:0; left:0; right:0; height:40%;
  background: linear-gradient(180deg, #e0d0c0 0%, #c0b0a0 100%);
  box-shadow: inset 0 8px 20px rgba(0,0,0,0.1);
  animation: ip-snow 30s ease-in-out infinite alternate;
}
.scn-invitation-procured .sled {
  position:absolute; bottom:22%; left:35%; width:50px; height:20px;
  background: linear-gradient(90deg, #6a4a2a 0%, #8a6a3a 50%, #5a3a1a 100%);
  border-radius: 10% 10% 30% 30% / 50% 50% 20% 20%;
  box-shadow: 0 4px 6px rgba(0,0,0,0.3);
  animation: ip-sled 12s ease-in-out infinite alternate;
}
.scn-invitation-procured .figure-marshfield-sled {
  position:absolute; bottom:28%; left:38%; width:18px; height:40px;
  background: linear-gradient(180deg, #2a2a2a 0%, #0a0a0a 100%);
  border-radius: 30% 30% 20% 20% / 50% 50% 20% 20%;
  transform-origin: bottom center;
  animation: ip-figure 8s ease-in-out infinite;
}
.scn-invitation-procured .horse {
  position:absolute; bottom:22%; left:42%; width:40px; height:30px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 30% 40% 20% 20% / 60% 50% 20% 20%;
  transform-origin: bottom center;
  animation: ip-horse 10s ease-in-out infinite alternate;
}
.scn-invitation-procured .sun-glow {
  position:absolute; top:10%; left:60%; width:30%; height:40%;
  background: radial-gradient(ellipse at 50% 50%, #ffe8c0 0%, rgba(255,232,192,0.2) 40%, transparent 70%);
  animation: ip-sun 15s ease-in-out infinite alternate;
}
.scn-invitation-procured .distant-hills {
  position:absolute; bottom:30%; left:0; right:0; height:20%;
  background: linear-gradient(180deg, #7a6a5a 0%, #5a4a3a 100%);
  border-radius: 60% 40% 0 0 / 80% 70% 0 0;
  filter: blur(2px);
  animation: ip-hills 25s ease-in-out infinite alternate;
}
.scn-invitation-procured .tracks {
  position:absolute; bottom:25%; left:0; right:0; height:2px;
  background: repeating-linear-gradient(90deg, #9a8a7a 0px, #9a8a7a 6px, transparent 6px, transparent 14px);
  opacity:0.4;
  animation: ip-tracks 8s linear infinite;
}
@keyframes ip-sky {
  0% { opacity:0.8; transform: scaleY(1); }
  50% { opacity:1; transform: scaleY(1.02); }
  100% { opacity:0.9; transform: scaleY(0.98); }
}
@keyframes ip-snow {
  0% { background-position: 0% 0%; opacity:0.9; }
  50% { background-position: 2% 0%; opacity:1; }
  100% { background-position: 0% 0%; opacity:0.95; }
}
@keyframes ip-sled {
  0% { transform: translateX(0) rotate(-1deg); }
  50% { transform: translateX(4px) rotate(0deg); }
  100% { transform: translateX(0) rotate(1deg); }
}
@keyframes ip-figure {
  0%,100% { transform: translateX(0) rotate(0deg); }
  25% { transform: translateX(2px) rotate(1deg) scaleY(1.01); }
  50% { transform: translateX(0) rotate(-1deg); }
  75% { transform: translateX(-1px) rotate(0deg) scaleY(0.99); }
}
@keyframes ip-horse {
  0% { transform: translateX(0) rotate(0deg); }
  50% { transform: translateX(3px) rotate(2deg); }
  100% { transform: translateX(0) rotate(-1deg); }
}
@keyframes ip-sun {
  0% { opacity:0.5; transform: scale(1); }
  50% { opacity:1; transform: scale(1.08); }
  100% { opacity:0.6; transform: scale(0.95); }
}
@keyframes ip-hills {
  0% { transform: translateY(0) scaleY(1); }
  50% { transform: translateY(-2px) scaleY(1.02); }
  100% { transform: translateY(0) scaleY(0.98); }
}
@keyframes ip-tracks {
  0% { transform: translateX(0); opacity:0.3; }
  50% { opacity:0.5; }
  100% { transform: translateX(-20px); opacity:0.2; }
}

.scn-baron-effusive {
  background: linear-gradient(180deg, #f5e6d3 0%, #d9c2a3 50%, #c4a882 100%), radial-gradient(ellipse at 50% 100%, rgba(0,0,0,0.2) 0%, transparent 70%);
  overflow: hidden;
}
.scn-baron-effusive .floor { position:absolute; bottom:0; left:0; right:0; height:22%; background: linear-gradient(180deg, #6b4a2c 0%, #3a2a1a 100%); }
.scn-baron-effusive .bookshelf { position:absolute; top:5%; left:5%; width:22%; height:70%; background: linear-gradient(90deg, #a0522d 0%, #8b4513 10%, #5a3a1a 20%, #b8860b 30%, #a52a2a 40%, #8b4513 50%, #5a3a1a 60%, #a0522d 70%, #8b4513 80%, #5a3a1a 90%, #a0522d 100%); border-radius: 4px; box-shadow: inset 0 0 10px rgba(0,0,0,0.3); animation: ba-shelf 20s ease-in-out infinite; }
.scn-baron-effusive .desk { position:absolute; bottom:20%; left:30%; width:45%; height:8%; background: linear-gradient(180deg, #7a5a3a 0%, #4a3a1a 100%); border-radius: 4px; box-shadow: 0 4px 8px rgba(0,0,0,0.4); }
.scn-baron-effusive .lamp-base { position:absolute; bottom:26%; left:48%; width:8px; height:18px; background: #a0461a; transform: translateX(-50%); border-radius: 2px; }
.scn-baron-effusive .lamp-glow { position:absolute; bottom:32%; left:48%; width:70px; height:80px; transform: translateX(-50%); background: radial-gradient(circle, rgba(255,230,150,0.9) 0%, rgba(255,200,100,0.4) 40%, transparent 70%); animation: ba-glow 3s ease-in-out infinite; }
.scn-baron-effusive .figure { position:absolute; bottom:18%; right:15%; width:35px; height:65px; background: #1a0a0a; border-radius: 40% 60% 40% 60% / 60% 40% 60% 40%; transform-origin: bottom center; animation: ba-figure 5s ease-in-out infinite; box-shadow: 0 2px 6px rgba(0,0,0,0.5); }
.scn-baron-effusive .globe { position:absolute; bottom:22%; left:55%; width:22px; height:22px; border-radius: 50%; background: radial-gradient(circle at 35% 35%, #6a9ac0, #2a5a7a 50%, #1a3a5a 100%); box-shadow: 0 0 8px rgba(0,0,0,0.3); animation: ba-globe 4s ease-in-out infinite; }

@keyframes ba-shelf { 0% { transform: translateY(0); } 50% { transform: translateY(-1px); } 100% { transform: translateY(0); } }
@keyframes ba-glow { 0% { opacity: 0.7; transform: translateX(-50%) scale(1); } 50% { opacity: 1; transform: translateX(-50%) scale(1.1); } 100% { opacity: 0.75; transform: translateX(-50%) scale(0.95); } }
@keyframes ba-figure { 0% { transform: rotate(-2deg); } 50% { transform: rotate(3deg); } 100% { transform: rotate(-2deg); } }
@keyframes ba-globe { 0% { transform: rotate(0deg); } 50% { transform: rotate(10deg) scale(1.05); } 100% { transform: rotate(-5deg); } }

.scn-baron-effusive {
  background: 
    linear-gradient(180deg, #f5e6d3 0%, #d9c5b0 40%, #4a3e35 100%),
    radial-gradient(ellipse at 30% 20%, rgba(255,230,190,0.6) 0%, transparent 60%);
}
.scn-baron-effusive .bg-wall {
  position: absolute; inset: 0; background: linear-gradient(180deg, transparent 60%, rgba(30,25,20,0.3) 100%);
}
.scn-baron-effusive .window-glow {
  position: absolute; top: 10%; left: 25%; width: 120px; height: 160px;
  background: radial-gradient(ellipse, #fff8e0 0%, #ffe0a0 40%, transparent 70%);
  border-radius: 4px; box-shadow: 0 0 60px 20px rgba(255,220,150,0.4);
  animation: be-glow 3s ease-in-out infinite alternate;
}
.scn-baron-effusive .bookshelf-left {
  position: absolute; top: 25%; left: 4%; width: 18%; height: 55%;
  background: linear-gradient(180deg, #5e4a38 0%, #3a2a1a 100%);
  border-radius: 4px; box-shadow: 4px 0 12px rgba(0,0,0,0.4);
  animation: be-sway 5s ease-in-out infinite alternate;
}
.scn-baron-effusive .bookshelf-right {
  position: absolute; top: 25%; right: 4%; width: 18%; height: 55%;
  background: linear-gradient(180deg, #5e4a38 0%, #3a2a1a 100%);
  border-radius: 4px; box-shadow: -4px 0 12px rgba(0,0,0,0.4);
  animation: be-sway 5s ease-in-out infinite alternate-reverse;
}
.scn-baron-effusive .desk {
  position: absolute; bottom: 18%; left: 28%; width: 44%; height: 24%;
  background: linear-gradient(180deg, #6b5540 0%, #4a3728 100%);
  border-radius: 8px 8px 0 0; box-shadow: 0 -6px 20px rgba(0,0,0,0.5);
}
.scn-baron-effusive .baron {
  position: absolute; bottom: 20%; left: 42%; width: 22px; height: 50px;
  background: linear-gradient(180deg, #2a2a3e 0%, #12121e 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: be-walk 4s ease-in-out infinite;
}
.scn-baron-effusive .shadow {
  position: absolute; bottom: 18%; left: 40%; width: 30px; height: 8px;
  background: radial-gradient(ellipse, rgba(20,15,10,0.6) 0%, transparent 70%);
  transform-origin: center center;
  animation: be-shadow 4s ease-in-out infinite;
}
.scn-baron-effusive .dust {
  position: absolute; top: 30%; left: 20%; width: 100%; height: 60%;
  background: radial-gradient(circle at 20% 40%, rgba(255,240,200,0.08) 0%, transparent 80%),
              radial-gradient(circle at 70% 30%, rgba(255,240,200,0.05) 0%, transparent 60%);
  filter: blur(2px);
  animation: be-dust 15s linear infinite;
}
@keyframes be-glow {
  0%   { opacity: 0.7; transform: scale(0.98); }
  50%  { opacity: 1; transform: scale(1); }
  100% { opacity: 0.8; transform: scale(0.99); }
}
@keyframes be-sway {
  0%   { transform: translateX(0); }
  50%  { transform: translateX(2px); }
  100% { transform: translateX(-1px); }
}
@keyframes be-walk {
  0%   { transform: translateX(0) rotate(0deg); }
  25%  { transform: translateX(8px) rotate(2deg); }
  50%  { transform: translateX(0) rotate(0deg); }
  75%  { transform: translateX(-8px) rotate(-2deg); }
  100% { transform: translateX(0) rotate(0deg); }
}
@keyframes be-shadow {
  0%   { transform: scaleX(1); opacity: 0.6; }
  25%  { transform: scaleX(1.3); opacity: 0.4; }
  50%  { transform: scaleX(1); opacity: 0.6; }
  75%  { transform: scaleX(0.7); opacity: 0.8; }
  100% { transform: scaleX(1); opacity: 0.6; }
}
@keyframes be-dust {
  0%   { opacity: 0; transform: translateY(0) scale(1); }
  20%  { opacity: 0.3; }
  50%  { opacity: 0.6; transform: translateY(-15px) scale(1.1); }
  80%  { opacity: 0.2; }
  100% { opacity: 0; transform: translateY(-30px) scale(0.9); }
}
/* end per-scene blocks */
