/* style.css -- merged from per-tier scene CSS by _build_deploy.py */
/* Scene root must fill its positioning container. */
.scn { position: absolute; inset: 0; }

/* ============ tier U ============ */
/* per-scene blocks (EXP step_scenes) */
.scn-final-confrontation-quint {
  background: linear-gradient(180deg, #0d0d1a 0%, #12122a 40%, #1a1a3a 70%, #0a0a14 100%),
              radial-gradient(ellipse at 50% 30%, #2a2a5a 0%, transparent 60%);
}

.scn-final-confrontation-quint .bg-deep {
  position: absolute; inset: 0;
  background: linear-gradient(135deg, #0a0a14 0%, #1a1a30 60%, #252545 100%);
  opacity: 0.9;
}

.scn-final-confrontation-quint .window-outline {
  position: absolute; top: 10%; left: 30%; width: 40%; height: 55%;
  background: #1a1a2e;
  border-radius: 4px;
  box-shadow: inset 0 0 20px rgba(0,0,0,.7);
}

.scn-final-confrontation-quint .window-light {
  position: absolute; top: 13%; left: 33%; width: 34%; height: 49%;
  background: radial-gradient(ellipse at 50% 40%, #c0d0e8 0%, #8090b8 30%, #4a5a7a 60%, #1a1a30 100%);
  opacity: 0.8;
  animation: fcq-window-glint 6s ease-in-out infinite alternate;
}

.scn-final-confrontation-quint .figure-window {
  position: absolute; bottom: 20%; left: 42%; width: 14%; height: 45%;
  background: linear-gradient(180deg, #1a1a2a 0%, #0d0d1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  box-shadow: 0 0 30px 10px rgba(0,0,0,.8);
  animation: fcq-tremble 4s ease-in-out infinite alternate;
}

.scn-final-confrontation-quint .shadow-floor {
  position: absolute; bottom: 0; left: 20%; width: 60%; height: 15%;
  background: radial-gradient(ellipse at 50% 60%, #0a0a14 0%, transparent 70%);
  opacity: 0.6;
  animation: fcq-shadow-pulse 8s ease-in-out infinite;
}

.scn-final-confrontation-quint .figure-protag {
  position: absolute; bottom: 0; left: 48%; width: 12%; height: 40%;
  background: linear-gradient(180deg, #1a1a2e 0%, #0a0a14 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  transform-origin: bottom center;
  animation: fcq-leap 3s ease-in-out infinite;
}

.scn-final-confrontation-quint .light-ray {
  position: absolute; top: 30%; left: 34%; width: 32%; height: 70%;
  background: linear-gradient(180deg, rgba(192,208,232,0.12) 0%, transparent 100%);
  opacity: 0.4;
  animation: fcq-ray-glow 5s ease-in-out infinite alternate;
}

@keyframes fcq-window-glint {
  0% { opacity: 0.7; transform: scale(1); }
  50% { opacity: 1; transform: scale(1.02); }
  100% { opacity: 0.75; transform: scale(0.98); }
}

@keyframes fcq-tremble {
  0% { transform: translate(0, 0) rotate(0deg); }
  25% { transform: translate(-2px, 1px) rotate(-1deg); }
  50% { transform: translate(2px, -1px) rotate(1deg); }
  75% { transform: translate(-1px, 2px) rotate(-0.5deg); }
  100% { transform: translate(1px, -2px) rotate(0.5deg); }
}

@keyframes fcq-shadow-pulse {
  0% { opacity: 0.4; transform: scaleX(1); }
  50% { opacity: 0.7; transform: scaleX(1.05); }
  100% { opacity: 0.5; transform: scaleX(0.95); }
}

@keyframes fcq-leap {
  0% { transform: translateY(0) scaleY(1); }
  20% { transform: translateY(-15%) scaleY(0.95) rotate(-5deg); }
  40% { transform: translateY(-30%) scaleY(1.05) rotate(10deg); }
  60% { transform: translateY(-20%) scaleY(0.9) rotate(5deg); }
  80% { transform: translateY(-10%) scaleY(1.02) rotate(-3deg); }
  100% { transform: translateY(0) scaleY(1); }
}

@keyframes fcq-ray-glow {
  0% { opacity: 0.2; }
  50% { opacity: 0.5; }
  100% { opacity: 0.3; }
}

.scn-miles-stole-letter { background: linear-gradient(180deg, #4a6a8a 0%, #3a5a7a 30%, #6a8aaa 60%, #8ab4d4 100%), radial-gradient(ellipse at 50% 100%, #8ab4d4 0%, transparent 80%); }
.scn-miles-stole-letter .bg-dawn { position:absolute; inset:0; background: linear-gradient(180deg, #2a4a6a 0%, #5a7a9a 40%, #b0d4e8 100%); opacity:.6; animation: ms-sky 12s ease-in-out infinite alternate; }
.scn-miles-stole-letter .window { position:absolute; top:10%; left:30%; width:40%; height:50%; background: rgba(180,220,250,.15); border:3px solid #2a3a4a; border-radius:4px; box-shadow: inset 0 0 30px rgba(180,220,250,.3); }
.scn-miles-stole-letter .table { position:absolute; bottom:18%; left:25%; width:50%; height:10%; background: linear-gradient(180deg, #5a3a2a 0%, #3a2a1a 100%); border-radius:8px; box-shadow: 0 -4px 8px rgba(0,0,0,.4); }
.scn-miles-stole-letter .letter { position:absolute; bottom:22%; left:45%; width:20%; height:6%; background: #e8dcc8; border-radius:2px; transform:rotate(-3deg); box-shadow: 0 2px 4px rgba(0,0,0,.3); animation: ms-letter 4s ease-in-out infinite; }
.scn-miles-stole-letter .figure-miles { position:absolute; bottom:18%; left:55%; width:12%; height:45%; background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: ms-figure 3s ease-in-out infinite; }
.scn-miles-stole-letter .shadow-letter { position:absolute; bottom:18%; left:42%; width:20%; height:2%; background: rgba(0,0,0,.4); border-radius:50%; filter:blur(3px); animation: ms-shadow 4s ease-in-out infinite; }
@keyframes ms-sky    { 0% { opacity:.5 } 50% { opacity:.8 } 100% { opacity:.6 } }
@keyframes ms-letter  { 0% { transform:rotate(-3deg) scale(1); } 50% { transform:rotate(-1deg) scale(1.02); } 100% { transform:rotate(-3deg) scale(1); } }
@keyframes ms-figure  { 0% { transform:rotate(-2deg) translateX(0); } 50% { transform:rotate(2deg) translateX(2px); } 100% { transform:rotate(-2deg) translateX(0); } }
@keyframes ms-shadow  { 0% { opacity:.3; transform:scale(1); } 50% { opacity:.5; transform:scale(1.1); } 100% { opacity:.3; transform:scale(1); } }

.scn-governess-parting-with-mrs-grose { background: linear-gradient(180deg, #2a1a0a 0%, #1a0a00 40%, #3a2a1a 80%, #4a3a2a 100%), radial-gradient(ellipse at 50% 0%, #4a3a2a 0%, transparent 70%); }
.scn-governess-parting-with-mrs-grose .bg-interior { position:absolute; inset:0; background: linear-gradient(180deg, #2a1a0a 0%, #4a3a2a 100%); opacity:.7; animation: gp-dim 15s ease-in-out infinite alternate; }
.scn-governess-parting-with-mrs-grose .door { position:absolute; bottom:20%; left:70%; width:20%; height:60%; background: linear-gradient(180deg, #3a2a1a 0%, #1a0a00 100%); border:3px solid #2a1a0a; border-radius:4px; box-shadow: inset 0 0 20px rgba(0,0,0,.5); }
.scn-governess-parting-with-mrs-grose .figure-left { position:absolute; bottom:20%; left:20%; width:15%; height:50%; background: linear-gradient(180deg, #0a0a1a 0%, #000 100%); border-radius:50% 40% 40% 50% / 60% 60% 40% 40%; transform:rotate(5deg); animation: gp-figure-l 5s ease-in-out infinite; }
.scn-governess-parting-with-mrs-grose .figure-right { position:absolute; bottom:20%; left:60%; width:14%; height:48%; background: linear-gradient(180deg, #0a0a1a 0%, #000 100%); border-radius:40% 50% 50% 40% / 60% 60% 40% 40%; transform:rotate(-5deg); animation: gp-figure-r 5s ease-in-out infinite reverse; }
.scn-governess-parting-with-mrs-grose .lamp { position:absolute; bottom:30%; left:45%; width:8%; height:12%; background: radial-gradient(circle, #ffcc66 0%, #cc8844 60%, #662200 100%); border-radius:50%; box-shadow: 0 0 30px 10px rgba(255,204,102,.3); animation: gp-lamp 6s ease-in-out infinite; }
.scn-governess-parting-with-mrs-grose .glow-lamp { position:absolute; bottom:25%; left:40%; width:20%; height:20%; background: radial-gradient(circle, rgba(255,204,102,.2) 0%, transparent 100%); border-radius:50%; animation: gp-glow 6s ease-in-out infinite alternate; }
@keyframes gp-dim { 0% { opacity:.5 } 50% { opacity:.8 } 100% { opacity:.6 } }
@keyframes gp-figure-l { 0% { transform:rotate(3deg) translateX(0) } 50% { transform:rotate(7deg) translateX(-2px) } 100% { transform:rotate(3deg) translateX(0) } }
@keyframes gp-figure-r { 0% { transform:rotate(-3deg) translateX(0) } 50% { transform:rotate(-7deg) translateX(2px) } 100% { transform:rotate(-3deg) translateX(0) } }
@keyframes gp-lamp { 0% { opacity:.8; transform:scale(1) } 50% { opacity:1; transform:scale(1.05) } 100% { opacity:.8; transform:scale(1) } }
@keyframes gp-glow { 0% { opacity:.3; transform:scale(.9) } 50% { opacity:.6; transform:scale(1.1) } 100% { opacity:.3; transform:scale(.9) } }

.scn-governess-alone-after-departure { background: linear-gradient(180deg, #1a1a2a 0%, #2a2a4a 30%, #3a3a5a 70%, #2a2a4a 100%), radial-gradient(ellipse at 50% 100%, #3a3a5a 0%, transparent 80%); }
.scn-governess-alone-after-departure .bg-room { position:absolute; inset:0; background: linear-gradient(180deg, #1a1a2a 0%, #2a2a3a 100%); opacity:.8; animation: ga-dim 20s ease-in-out infinite alternate; }
.scn-governess-alone-after-departure .window { position:absolute; top:10%; left:65%; width:30%; height:50%; background: rgba(150,180,220,.15); border:3px solid #3a3a5a; border-radius:3px; box-shadow: inset 0 0 20px rgba(150,180,220,.2); }
.scn-governess-alone-after-departure .chair { position:absolute; bottom:20%; left:30%; width:15%; height:30%; background: linear-gradient(180deg, #3a2a1a 0%, #1a120a 100%); border-radius:10% 10% 30% 30%; box-shadow: 0 4px 8px rgba(0,0,0,.4); }
.scn-governess-alone-after-departure .figure-g { position:absolute; bottom:20%; left:35%; width:12%; height:50%; background: linear-gradient(180deg, #0a0a1a 0%, #000 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: ga-figure 8s ease-in-out infinite; }
.scn-governess-alone-after-departure .curtain { position:absolute; top:5%; left:60%; width:5%; height:70%; background: linear-gradient(180deg, #2a2a4a 0%, #1a1a3a 100%); border-radius:2px; box-shadow: 0 0 10px rgba(0,0,0,.3); animation: ga-curtain 12s ease-in-out infinite alternate; }
.scn-governess-alone-after-departure .dust { position:absolute; top:30%; left:20%; width:60%; height:40%; background: radial-gradient(circle at 30% 40%, rgba(200,200,220,.05) 0%, transparent 60%); border-radius:50%; filter:blur(8px); animation: ga-dust 25s linear infinite; }
@keyframes ga-dim { 0% { opacity:.6 } 50% { opacity:.9 } 100% { opacity:.7 } }
@keyframes ga-figure { 0% { transform:translateY(0) rotate(-2deg) scale(1) } 50% { transform:translateY(-4px) rotate(0) scale(1.01) } 100% { transform:translateY(0) rotate(-2deg) scale(1) } }
@keyframes ga-curtain { 0% { transform:scaleY(1) } 50% { transform:scaleY(1.02) } 100% { transform:scaleY(1) } }
@keyframes ga-dust { 0% { transform:translateX(0) scale(1); opacity:.1 } 50% { transform:translateX(30px) scale(1.2); opacity:.3 } 100% { transform:translateX(60px) scale(1); opacity:.1 } }

.scn-miles-absence-at-breakfast { background: linear-gradient(180deg, #d4e8f0 0%, #b0d0e0 30%, #e8f4fa 60%, #f0f8ff 100%), radial-gradient(ellipse at 50% 100%, #e8f4fa 0%, transparent 80%); }
.scn-miles-absence-at-breakfast .bg-bright { position:absolute; inset:0; background: linear-gradient(180deg, #f0f8ff 0%, #d4e8f0 100%); opacity:.5; animation: ma-bright 10s ease-in-out infinite alternate; }
.scn-miles-absence-at-breakfast .table { position:absolute; bottom:15%; left:20%; width:60%; height:8%; background: linear-gradient(180deg, #f0e8d4 0%, #d0c8b4 100%); border-radius:6px; box-shadow: 0 -2px 6px rgba(0,0,0,.2); }
.scn-miles-absence-at-breakfast .chair-empty { position:absolute; bottom:18%; left:55%; width:10%; height:25%; background: linear-gradient(180deg, #c8b8a0 0%, #a89880 100%); border-radius:10% 10% 30% 30%; box-shadow: 0 4px 8px rgba(0,0,0,.3); transform:rotate(2deg); }
.scn-miles-absence-at-breakfast .plate { position:absolute; bottom:18%; left:45%; width:15%; height:4%; background: radial-gradient(circle, #fffff8 0%, #e8e0d0 100%); border-radius:50%; box-shadow: 0 2px 4px rgba(0,0,0,.2); }
.scn-miles-absence-at-breakfast .piano { position:absolute; bottom:12%; left:10%; width:25%; height:30%; background: linear-gradient(180deg, #2a1a0a 0%, #1a0a00 100%); border-radius:4px 4px 8px 8px; box-shadow: 0 4px 8px rgba(0,0,0,.4); }
.scn-miles-absence-at-breakfast .shadow-miles { position:absolute; bottom:15%; left:52%; width:14%; height:30%; background: radial-gradient(ellipse at 50% 100%, rgba(0,0,0,.2) 0%, transparent 70%); animation: ma-shadow 6s ease-in-out infinite alternate; }
@keyframes ma-bright { 0% { opacity:.4 } 50% { opacity:.7 } 100% { opacity:.5 } }
@keyframes ma-shadow { 0% { transform:scaleX(1) translateX(0); opacity:.4 } 50% { transform:scaleX(1.1) translateX(3px); opacity:.6 } 100% { transform:scaleX(1) translateX(0); opacity:.4 } }

.scn-meeting-mrs-grose-in-hall {
  background: linear-gradient(180deg, #4a3b33 0%, #2b1f1a 40%, #1a1210 100%),
              radial-gradient(ellipse at 50% 30%, #5a4b43 0%, transparent 60%);
  overflow: hidden;
}
.scn-meeting-mrs-grose-in-hall .wall-panel {
  position: absolute;
  inset: 0 0 30% 0;
  background: repeating-linear-gradient(90deg, #6b5a50 0px, #6b5a50 80px, #5a4b43 80px, #5a4b43 82px);
  box-shadow: inset 0 0 80px rgba(0,0,0,0.6);
}
.scn-meeting-mrs-grose-in-hall .floor {
  position: absolute;
  bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #3a2a22 0%, #2a1a12 100%);
  box-shadow: inset 0 10px 40px rgba(0,0,0,0.7);
}
.scn-meeting-mrs-grose-in-hall .gaslight {
  position: absolute;
  top: 18%; left: 38%;
  width: 30px; height: 40px;
  background: radial-gradient(ellipse, #ffd080 0%, #d09040 40%, transparent 70%);
  border-radius: 50%;
  box-shadow: 0 0 60px 30px #b07030, 0 0 120px 60px rgba(176,112,48,0.4);
  animation: s1-flicker 2s ease-in-out infinite alternate;
}
.scn-meeting-mrs-grose-in-hall .figure {
  position: absolute;
  bottom: 28%; left: 42%;
  width: 28px; height: 80px;
  background: linear-gradient(180deg, #1a1410 0%, #0a0806 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: s1-fig-move 6s ease-in-out infinite;
}
.scn-meeting-mrs-grose-in-hall .door {
  position: absolute;
  bottom: 30%; right: 20%;
  width: 70px; height: 110px;
  background: linear-gradient(180deg, #4a3a30 0%, #2a1e18 100%);
  border: 2px solid #3a2a20;
  border-radius: 4px 4px 0 0;
  box-shadow: inset 0 0 20px rgba(0,0,0,0.5);
}
.scn-meeting-mrs-grose-in-hall .shadow {
  position: absolute;
  bottom: 25%; left: 30%;
  width: 120px; height: 60px;
  background: radial-gradient(ellipse, rgba(0,0,0,0.4) 0%, transparent 70%);
  animation: s1-shadow-pulse 8s ease-in-out infinite alternate;
}
.scn-meeting-mrs-grose-in-hall .glimmer {
  position: absolute;
  top: 20%; left: 35%;
  width: 80px; height: 80px;
  background: radial-gradient(circle, rgba(255,220,180,0.15) 0%, transparent 60%);
  filter: blur(10px);
  animation: s1-glimmer 4s ease-in-out infinite alternate;
}
@keyframes s1-flicker { 0% { opacity: 0.7; transform: scale(0.95) rotate(-1deg); } 50% { opacity: 1; transform: scale(1.05) rotate(1deg); } 100% { opacity: 0.8; transform: scale(1) rotate(0deg); } }
@keyframes s1-fig-move { 0% { transform: translateX(0) translateY(0) rotate(-2deg); } 50% { transform: translateX(8px) translateY(-3px) rotate(2deg); } 100% { transform: translateX(0) translateY(0) rotate(-2deg); } }
@keyframes s1-shadow-pulse { 0% { opacity: 0.4; transform: scale(1); } 50% { opacity: 0.7; transform: scale(1.1); } 100% { opacity: 0.4; transform: scale(1); } }
@keyframes s1-glimmer { 0% { opacity: 0.2; transform: scale(0.85); } 100% { opacity: 0.5; transform: scale(1.15); } }

.scn-instinct-to-spare-companion {
  background: linear-gradient(180deg, #3a3030 0%, #2a2020 50%, #1a1212 100%),
              radial-gradient(ellipse at 50% 70%, #4a3a3a 0%, transparent 60%);
  overflow: hidden;
}
.scn-instinct-to-spare-companion .room-bg {
  position: absolute;
  inset: 0 0 25% 0;
  background: linear-gradient(180deg, #4a3a3a 0%, #2a2020 100%);
  box-shadow: inset 0 0 100px rgba(0,0,0,0.5);
}
.scn-instinct-to-spare-companion .table {
  position: absolute;
  bottom: 22%; left: 30%;
  width: 120px; height: 50px;
  background: linear-gradient(180deg, #6a5040 0%, #4a3828 100%);
  border-radius: 6px;
  box-shadow: 0 8px 20px rgba(0,0,0,0.6);
}
.scn-instinct-to-spare-companion .lamp {
  position: absolute;
  bottom: 55%; left: 34%;
  width: 16px; height: 20px;
  background: radial-gradient(ellipse, #ffd080 0%, #d09040 60%, transparent 80%);
  border-radius: 50%;
  box-shadow: 0 0 40px 20px #b07030, 0 0 80px 40px rgba(176,112,48,0.3);
  animation: s2-lamp-flicker 2.5s ease-in-out infinite alternate;
}
.scn-instinct-to-spare-companion .figure {
  position: absolute;
  bottom: 25%; left: 36%;
  width: 24px; height: 70px;
  background: linear-gradient(180deg, #1a1410 0%, #0a0806 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: s2-fig-turn 8s ease-in-out infinite;
}
.scn-instinct-to-spare-companion .chair {
  position: absolute;
  bottom: 18%; left: 50%;
  width: 40px; height: 60px;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 10% 10% 0 0;
  box-shadow: 0 4px 10px rgba(0,0,0,0.5);
}
.scn-instinct-to-spare-companion .shadow-floor {
  position: absolute;
  bottom: 0; left: 20%;
  width: 200px; height: 40px;
  background: radial-gradient(ellipse, rgba(0,0,0,0.6) 0%, transparent 70%);
  animation: s2-shadow-shift 12s ease-in-out infinite alternate;
}
@keyframes s2-lamp-flicker { 0% { opacity: 0.8; transform: scale(0.95); } 50% { opacity: 1; transform: scale(1.08); } 100% { opacity: 0.85; transform: scale(1); } }
@keyframes s2-fig-turn { 0% { transform: rotate(-5deg) scale(1); } 50% { transform: rotate(5deg) scale(0.98); } 100% { transform: rotate(-5deg) scale(1); } }
@keyframes s2-shadow-shift { 0% { transform: translateX(-10px) scale(0.9); } 50% { transform: translateX(10px) scale(1.1); } 100% { transform: translateX(-10px) scale(0.9); } }

.scn-shut-up-to-think {
  background: linear-gradient(180deg, #1a1a24 0%, #12121a 50%, #0a0a10 100%),
              radial-gradient(ellipse at 50% 40%, #2a2a3a 0%, transparent 60%);
  overflow: hidden;
}
.scn-shut-up-to-think .wall-dark {
  position: absolute;
  inset: 0 0 30% 0;
  background: linear-gradient(180deg, #1e1e2a 0%, #12121a 100%);
  box-shadow: inset 0 0 80px rgba(0,0,0,0.7);
}
.scn-shut-up-to-think .desk {
  position: absolute;
  bottom: 28%; left: 30%;
  width: 140px; height: 40px;
  background: linear-gradient(180deg, #3a3028 0%, #221a14 100%);
  border-radius: 6px;
  box-shadow: 0 6px 20px rgba(0,0,0,0.8);
}
.scn-shut-up-to-think .chair {
  position: absolute;
  bottom: 22%; left: 50%;
  width: 50px; height: 70px;
  background: linear-gradient(180deg, #3a3028 0%, #1a1410 100%);
  border-radius: 20% 20% 0 0;
  box-shadow: 0 4px 10px rgba(0,0,0,0.6);
}
.scn-shut-up-to-think .paper {
  position: absolute;
  bottom: 36%; left: 34%;
  width: 40px; height: 30px;
  background: linear-gradient(135deg, #d0c0a0 0%, #b0a080 100%);
  border-radius: 2px;
  box-shadow: 0 2px 6px rgba(0,0,0,0.5);
  animation: s3-paper-breathe 7s ease-in-out infinite alternate;
}
.scn-shut-up-to-think .window-dim {
  position: absolute;
  top: 14%; right: 16%;
  width: 60px; height: 90px;
  background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%);
  border: 2px solid #2a2a3a;
  border-radius: 6px;
  box-shadow: inset 0 0 20px rgba(0,0,0,0.5), 0 0 10px rgba(100,100,150,0.2);
}
.scn-shut-up-to-think .candle {
  position: absolute;
  bottom: 50%; left: 38%;
  width: 8px; height: 12px;
  background: linear-gradient(180deg, #ffd080 0%, #d08030 100%);
  border-radius: 2px;
  box-shadow: 0 0 30px 15px #b07030, 0 0 60px 30px rgba(176,112,48,0.3);
  animation: s3-candle-flicker 3s ease-in-out infinite alternate;
}
@keyframes s3-paper-breathe { 0% { transform: translateY(0) rotate(-2deg); } 50% { transform: translateY(-2px) rotate(2deg); } 100% { transform: translateY(0) rotate(-2deg); } }
@keyframes s3-candle-flicker { 0% { opacity: 0.8; transform: scale(0.95); } 50% { opacity: 1; transform: scale(1.1); } 100% { opacity: 0.85; transform: scale(0.95); } }

.scn-domestic-complications-sounded {
  background: linear-gradient(180deg, #e8d8c8 0%, #d4c0a8 40%, #c0a890 100%),
              radial-gradient(ellipse at 50% 60%, #f0e0d0 0%, transparent 60%);
  overflow: hidden;
}
.scn-domestic-complications-sounded .room-bright {
  position: absolute;
  inset: 0 0 20% 0;
  background: linear-gradient(180deg, #f0e0d0 0%, #d4c0a8 100%);
  box-shadow: inset 0 0 60px rgba(0,0,0,0.1);
}
.scn-domestic-complications-sounded .table-large {
  position: absolute;
  bottom: 20%; left: 20%;
  width: 200px; height: 50px;
  background: linear-gradient(180deg, #b8a088 0%, #988068 100%);
  border-radius: 8px;
  box-shadow: 0 6px 20px rgba(0,0,0,0.2);
}
.scn-domestic-complications-sounded .teapot {
  position: absolute;
  bottom: 42%; left: 35%;
  width: 30px; height: 30px;
  background: radial-gradient(ellipse at 50% 40%, #c06050 0%, #a04030 100%);
  border-radius: 50% 50% 40% 40%;
  box-shadow: 0 4px 8px rgba(0,0,0,0.3);
  animation: s4-pot-bob 5s ease-in-out infinite alternate;
}
.scn-domestic-complications-sounded .cup {
  position: absolute;
  bottom: 40%; left: 48%;
  width: 20px; height: 18px;
  background: linear-gradient(180deg, #e0d0c0 0%, #c0b0a0 100%);
  border-radius: 0 0 40% 40%;
  box-shadow: 0 2px 6px rgba(0,0,0,0.2);
}
.scn-domestic-complications-sounded .window-light {
  position: absolute;
  top: 10%; right: 12%;
  width: 80px; height: 100px;
  background: linear-gradient(180deg, #fff8f0 0%, #f0e0d0 100%);
  border: 3px solid #a09080;
  border-radius: 6px;
  box-shadow: inset 0 0 30px rgba(255,255,255,0.3), 0 0 20px rgba(255,200,150,0.4);
}
.scn-domestic-complications-sounded .curtain {
  position: absolute;
  top: 8%; right: 8%;
  width: 100px; height: 110px;
  background: linear-gradient(90deg, #d4a080 0%, #c08060 50%, #d4a080 100%);
  border-radius: 20% 0 0 20%;
  filter: blur(2px);
  animation: s4-curtain-sway 10s ease-in-out infinite alternate;
}
.scn-domestic-complications-sounded .figure-seated {
  position: absolute;
  bottom: 20%; left: 28%;
  width: 30px; height: 70px;
  background: linear-gradient(180deg, #4a3a30 0%, #2a1e18 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: s4-fig-sit 6s ease-in-out infinite;
}
@keyframes s4-pot-bob { 0% { transform: translateY(0) rotate(-3deg); } 50% { transform: translateY(-3px) rotate(3deg); } 100% { transform: translateY(0) rotate(-3deg); } }
@keyframes s4-curtain-sway { 0% { transform: translateX(0) scale(1); } 50% { transform: translateX(4px) scale(1.02); } 100% { transform: translateX(0) scale(1); } }
@keyframes s4-fig-sit { 0% { transform: translateY(0) rotate(-1deg); } 50% { transform: translateY(-1px) rotate(1deg); } 100% { transform: translateY(0) rotate(-1deg); } }

.scn-fern-dropped { background: linear-gradient(180deg, #4b4b5a 0%, #3a3a47 40%, #2a2a35 100%), radial-gradient(ellipse at 50% 100%, #3a3a47 0%, transparent 80%); }
.scn-fern-dropped .sky { position:absolute; inset:0 0 50% 0; background: linear-gradient(180deg, #5c5c6e 0%, transparent 100%); animation: fd-sky 14s ease-in-out infinite alternate; }
.scn-fern-dropped .ground { position:absolute; bottom:0; left:0; right:0; height:55%; background: linear-gradient(180deg, #2e2e3a 0%, #1e1e2a 100%); border-radius: 30% 70% 0 0 / 50% 40% 0 0; box-shadow: inset 0 10px 20px rgba(0,0,0,.5); animation: fd-ground 20s ease-in-out infinite; }
.scn-fern-dropped .figure { position:absolute; bottom:30%; left:40%; width:28px; height:70px; background: linear-gradient(180deg, #1f1f2e 0%, #10101a 100%); border-radius: 45% 55% 50% 50% / 60% 60% 40% 40%; transform-origin: bottom center; animation: fd-figure 8s ease-in-out infinite; }
.scn-fern-dropped .arm { position:absolute; bottom:45%; left:38%; width:16px; height:40px; background: linear-gradient(180deg, #1f1f2e 0%, #10101a 100%); border-radius: 50% 40% 20% 10%; transform-origin: top left; animation: fd-arm 5s ease-in-out infinite; }
.scn-fern-dropped .fern { position:absolute; bottom:28%; left:32%; width:14px; height:18px; background: radial-gradient(ellipse at 50% 30%, #3a5a3a 0%, #1e2e1e 80%); border-radius: 60% 40% 50% 50%; transform-origin: top center; animation: fd-fern 6s ease-in-out infinite; }
.scn-fern-dropped .mist { position:absolute; bottom:20%; left:0; right:0; height:30%; background: radial-gradient(ellipse at 50% 100%, rgba(120,120,140,.15) 0%, transparent 70%); filter: blur(8px); animation: fd-mist 30s linear infinite; }
@keyframes fd-sky { 0% { opacity:.6 } 50% { opacity:.9 } 100% { opacity:.7 } }
@keyframes fd-ground { 0% { transform: translateY(0) scaleY(1) } 50% { transform: translateY(2px) scaleY(.98) } 100% { transform: translateY(0) scaleY(1) } }
@keyframes fd-figure { 0%,100% { transform: translateX(0) rotate(0) } 30% { transform: translateX(4px) rotate(-1deg) } 70% { transform: translateX(-2px) rotate(1deg) } }
@keyframes fd-arm { 0%,100% { transform: rotate(10deg) } 50% { transform: rotate(-15deg) } }
@keyframes fd-fern { 0% { transform: rotate(20deg) translateY(0) } 30% { transform: rotate(0deg) translateY(8px) } 70% { transform: rotate(-10deg) translateY(5px) } 100% { transform: rotate(20deg) translateY(0) } }
@keyframes fd-mist { 0% { transform: translateX(0) } 50% { transform: translateX(-20px) } 100% { transform: translateX(0) } }

.scn-accusation-begins { background: linear-gradient(180deg, #2a2a38 0%, #1c1c28 60%, #12121a 100%), radial-gradient(ellipse at 50% 30%, #3a3a4e 0%, transparent 70%); }
.scn-accusation-begins .bg-dark { position:absolute; inset:0; background: linear-gradient(90deg, #1a1a24 0%, #0e0e14 100%); animation: ab-bg 12s ease-in-out infinite; }
.scn-accusation-begins .table { position:absolute; bottom:20%; left:10%; right:10%; height:12%; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius: 4px; box-shadow: 0 6px 10px rgba(0,0,0,.6); }
.scn-accusation-begins .cup { position:absolute; bottom:25%; left:45%; width:20px; height:24px; background: linear-gradient(180deg, #7a5a3a 0%, #5a3a1a 100%); border-radius: 10% 10% 8% 8%; box-shadow: 0 0 12px 2px rgba(200,160,100,.3); transform-origin: bottom center; animation: ab-cup 3s ease-in-out infinite; }
.scn-accusation-begins .blade-flash { position:absolute; bottom:42%; left:38%; width:6px; height:30px; background: linear-gradient(180deg, #b8b8c8 0%, #808090 100%); border-radius: 20% 20% 40% 40%; box-shadow: 0 0 18px 6px rgba(200,200,210,.5); transform-origin: bottom center; animation: ab-blade 2s ease-in-out infinite alternate; }
.scn-accusation-begins .hand { position:absolute; bottom:32%; left:36%; width:20px; height:26px; background: linear-gradient(180deg, #3a2a1a 0%, #1a100a 100%); border-radius: 50% 40% 30% 20%; transform-origin: bottom right; animation: ab-hand 4s ease-in-out infinite; }
.scn-accusation-begins .shadow-flicker { position:absolute; inset:0; background: radial-gradient(ellipse at 50% 50%, rgba(0,0,0,.3) 0%, transparent 70%); animation: ab-flicker 1.5s steps(2) infinite; }
@keyframes ab-bg { 0%,100% { opacity:.8 } 50% { opacity:1 } }
@keyframes ab-cup { 0%,100% { transform: rotate(0) } 20% { transform: rotate(5deg) } 40% { transform: rotate(-3deg) } 60% { transform: rotate(4deg) } 80% { transform: rotate(-2deg) } }
@keyframes ab-blade { 0% { opacity:.2; transform: rotate(-10deg) scaleY(.8) } 50% { opacity:1; transform: rotate(5deg) scaleY(1.2) } 100% { opacity:.5; transform: rotate(-5deg) scaleY(.9) } }
@keyframes ab-hand { 0%,100% { transform: translate(0,0) rotate(0) } 30% { transform: translate(4px,-3px) rotate(8deg) } 70% { transform: translate(-2px,2px) rotate(-5deg) } }
@keyframes ab-flicker { 0%,100% { opacity:.1 } 50% { opacity:.3 } }

.scn-name-smashed { background: linear-gradient(180deg, #1e1e2e 0%, #14141f 50%, #0a0a12 100%), radial-gradient(ellipse at 50% 30%, #2a2a40 0%, transparent 80%); }
.scn-name-smashed .bg-deep { position:absolute; inset:0; background: linear-gradient(135deg, #0e0e18 0%, #1a1a28 50%, #0e0e18 100%); animation: ns-bg 20s ease-in-out infinite; }
.scn-name-smashed .child-silhouette { position:absolute; bottom:25%; left:40%; width:40px; height:80px; background: linear-gradient(180deg, #1a1a28 0%, #0a0a14 100%); border-radius: 50% 50% 30% 30% / 70% 70% 40% 40%; animation: ns-silhouette 6s ease-in-out infinite; }
.scn-name-smashed .face-profile { position:absolute; bottom:55%; left:38%; width:18px; height:20px; background: linear-gradient(180deg, #1e1e32 0%, #0e0e1a 100%); border-radius: 40% 60% 50% 50% / 60% 40% 50% 50%; transform-origin: bottom left; animation: ns-face 4s ease-in-out infinite; }
.scn-name-smashed .crack-1 { position:absolute; top:30%; left:20%; width:60%; height:2px; background: linear-gradient(90deg, transparent 0%, #6a6a8a 30%, transparent 70%); transform: rotate(-15deg); filter: blur(1px); animation: ns-crack 3s linear infinite; }
.scn-name-smashed .crack-2 { position:absolute; top:50%; right:10%; width:40%; height:2px; background: linear-gradient(90deg, transparent 0%, #5a5a7a 20%, transparent 80%); transform: rotate(25deg); filter: blur(1px); animation: ns-crack2 5s linear infinite reverse; }
.scn-name-smashed .light-burst { position:absolute; top:35%; left:30%; width:40px; height:40px; background: radial-gradient(circle, rgba(200,200,220,.5) 0%, transparent 70%); transform: rotate(45deg); animation: ns-burst 2s ease-in-out infinite alternate; }
@keyframes ns-bg { 0%,100% { opacity:.7 } 50% { opacity:.9 } }
@keyframes ns-silhouette { 0%,100% { transform: translateY(0) } 40% { transform: translateY(-4px) } 80% { transform: translateY(2px) } }
@keyframes ns-face { 0%,100% { transform: rotate(0) scaleX(1) } 30% { transform: rotate(10deg) scaleX(1.1) } 70% { transform: rotate(-5deg) scaleX(.95) } }
@keyframes ns-crack { 0% { opacity:0; transform: translateX(-10px) rotate(-15deg) } 50% { opacity:.4; transform: translateX(10px) rotate(-15deg) } 100% { opacity:0; transform: translateX(30px) rotate(-15deg) } }
@keyframes ns-crack2 { 0% { opacity:0; transform: translateX(0) rotate(25deg) } 50% { opacity:.3; transform: translateX(-15px) rotate(25deg) } 100% { opacity:0; transform: translateX(-30px) rotate(25deg) } }
@keyframes ns-burst { 0% { opacity:.1; transform: scale(.5) rotate(45deg) } 100% { opacity:.6; transform: scale(1.5) rotate(45deg) } }

.scn-jessel-standing { background: linear-gradient(180deg, #1c1c2a 0%, #14141f 50%, #0a0a12 100%), radial-gradient(ellipse at 50% 100%, #2a2a3e 0%, transparent 80%); }
.scn-jessel-standing .bg-thick { position:absolute; inset:0; background: linear-gradient(135deg, #0e0e18 0%, #1a1a28 100%); animation: js-bg 18s ease-in-out infinite; }
.scn-jessel-standing .floor { position:absolute; bottom:0; left:0; right:0; height:30%; background: linear-gradient(180deg, #2a2a36 0%, #1a1a24 100%); border-radius: 20% 80% 0 0 / 30% 40% 0 0; box-shadow: inset 0 8px 16px rgba(0,0,0,.6); }
.scn-jessel-standing .figure-rise { position:absolute; bottom:28%; left:40%; width:30px; height:90px; background: linear-gradient(180deg, #2a2a3e 0%, #1a1a2a 100%); border-radius: 40% 60% 50% 50% / 60% 60% 40% 40%; transform-origin: bottom center; animation: js-rise 10s ease-in-out infinite; }
.scn-jessel-standing .drapery { position:absolute; bottom:38%; left:35%; width:50px; height:70px; background: linear-gradient(180deg, #1f1f32 0%, #0e0e1a 100%); border-radius: 20% 30% 40% 20%; transform: rotate(5deg); animation: js-drape 12s ease-in-out infinite; }
.scn-jessel-standing .evil-aura { position:absolute; bottom:35%; left:30%; width:80px; height:80px; background: radial-gradient(circle, rgba(80,60,100,.4) 0%, transparent 70%); filter: blur(10px); animation: js-aura 6s ease-in-out infinite alternate; }
.scn-jessel-standing .shadow-pool { position:absolute; bottom:10%; left:25%; right:25%; height:20%; background: radial-gradient(ellipse at 50% 100%, rgba(0,0,0,.5) 0%, transparent 80%); animation: js-shadow 15s ease-in-out infinite; }
@keyframes js-bg { 0%,100% { opacity:.7 } 50% { opacity:.95 } }
@keyframes js-rise { 0% { transform: translateY(30px) scaleY(.7) } 30% { transform: translateY(0) scaleY(1) } 70% { transform: translateY(-10px) scaleY(1.05) } 100% { transform: translateY(0) scaleY(1) } }
@keyframes js-drape { 0%,100% { transform: rotate(5deg) } 50% { transform: rotate(-8deg) translateX(4px) } }
@keyframes js-aura { 0% { opacity:.2; transform: scale(.8) } 100% { opacity:.6; transform: scale(1.3) } }
@keyframes js-shadow { 0%,100% { opacity:.4; transform: scaleY(1) } 50% { opacity:.8; transform: scaleY(1.2) } }

.scn-boat-hidden {
  background:
    linear-gradient(180deg, #5b6b7a 0%, #3a4a5a 40%, #2a3a4a 100%),
    radial-gradient(ellipse at 50% 30%, #7a8a9a 0%, transparent 60%);
}
.scn-boat-hidden .sky-bh {
  position: absolute; inset: 0 0 55% 0;
  background: linear-gradient(180deg, #6b7b8a 0%, #4a5a6a 60%);
  animation: bh1-sky 15s ease-in-out infinite alternate;
}
.scn-boat-hidden .lake-bh {
  position: absolute; bottom: 0; left: 0; right: 0; height: 50%;
  background: linear-gradient(180deg, #3a4a5a 0%, #2a3a4a 100%);
  border-radius: 20% 20% 0 0;
  animation: bh1-water 8s ease-in-out infinite alternate;
}
.scn-boat-hidden .shore-bh {
  position: absolute; bottom: 30%; left: 0; right: 30%; height: 20%;
  background: linear-gradient(180deg, #4a5a4a 0%, #2a3a2a 100%);
  border-radius: 0 40% 0 0;
}
.scn-boat-hidden .dock-bh {
  position: absolute; bottom: 35%; left: 10%; width: 80px; height: 12px;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 2px;
  transform: scaleY(0.3);
}
.scn-boat-hidden .figure-bh {
  position: absolute; bottom: 32%; left: 40%; width: 16px; height: 36px;
  background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: bh1-figure 6s ease-in-out infinite;
}
.scn-boat-hidden .shadow-bh {
  position: absolute; bottom: 30%; left: 35%; width: 40px; height: 8px;
  background: rgba(0,0,0,0.3);
  border-radius: 50%;
  filter: blur(3px);
  animation: bh1-shadow 6s ease-in-out infinite;
}
.scn-boat-hidden .mist-bh {
  position: absolute; top: 20%; left: 0; right: 0; height: 30%;
  background: radial-gradient(ellipse at 30% 50%, rgba(200,200,210,0.15) 0%, transparent 70%);
  filter: blur(8px);
  animation: bh1-mist 24s linear infinite;
}
@keyframes bh1-sky { 0% { opacity: 0.8 } 50% { opacity: 1 } 100% { opacity: 0.7 } }
@keyframes bh1-water { 0% { transform: translateY(0) scaleY(1) } 50% { transform: translateY(-2px) scaleY(1.02) } 100% { transform: translateY(0) scaleY(1) } }
@keyframes bh1-figure { 0% { transform: translateX(0) rotate(0) } 25% { transform: translateX(6px) rotate(2deg) } 50% { transform: translateX(12px) rotate(0) } 75% { transform: translateX(18px) rotate(-2deg) } 100% { transform: translateX(24px) rotate(0) } }
@keyframes bh1-shadow { 0%,100% { width: 40px; opacity: 0.3 } 50% { width: 50px; opacity: 0.2 } }
@keyframes bh1-mist { 0% { transform: translateX(0) } 100% { transform: translateX(50vw) } }

.scn-find-the-boat {
  background:
    linear-gradient(180deg, #5b6b7a 0%, #3a4a5a 40%, #2a3a4a 100%),
    radial-gradient(ellipse at 50% 40%, #6a7a8a 0%, transparent 60%);
}
.scn-find-the-boat .ground-fb {
  position: absolute; bottom: 0; left: 0; right: 0; height: 40%;
  background: linear-gradient(180deg, #4a5a4a 0%, #3a4a3a 100%);
  border-radius: 30% 70% 0 0;
}
.scn-find-the-boat .water-fb {
  position: absolute; bottom: 10%; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #3a4a5a 0%, #2a3a4a 100%);
  animation: fb-water 10s ease-in-out infinite alternate;
}
.scn-find-the-boat .path-fb {
  position: absolute; bottom: 30%; left: 20%; width: 60px; height: 50%;
  background: linear-gradient(180deg, #5a6a5a 0%, #4a5a4a 100%);
  border-radius: 10% 10% 0 0;
  transform: skewX(-10deg);
}
.scn-find-the-boat .bush-fb {
  position: absolute; bottom: 25%; left: 60%; width: 40px; height: 30px;
  background: linear-gradient(180deg, #3a5a3a 0%, #2a4a2a 100%);
  border-radius: 50% 50% 0 0;
  animation: fb-bush 6s ease-in-out infinite alternate;
}
.scn-find-the-boat .figure-fb {
  position: absolute; bottom: 28%; left: 30%; width: 18px; height: 40px;
  background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: fb-walk 4s ease-in-out infinite;
}
.scn-find-the-boat .post-fb {
  position: absolute; bottom: 22%; left: 15%; width: 4px; height: 20px;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 1px;
  animation: fb-post 8s ease-in-out infinite;
}
.scn-find-the-boat .fog-fb {
  position: absolute; top: 10%; left: 0; right: 0; height: 25%;
  background: radial-gradient(ellipse at 40% 50%, rgba(200,200,210,0.12) 0%, transparent 60%);
  filter: blur(6px);
  animation: fb-fog 30s linear infinite reverse;
}
@keyframes fb-water { 0% { opacity: 0.9; transform: translateY(0) } 50% { opacity: 1; transform: translateY(-3px) } 100% { opacity: 0.9; transform: translateY(0) } }
@keyframes fb-bush { 0% { transform: scaleY(1) } 50% { transform: scaleY(1.05) } 100% { transform: scaleY(1) } }
@keyframes fb-walk { 0% { transform: translateX(0) rotate(0) } 30% { transform: translateX(8px) rotate(2deg) } 60% { transform: translateX(16px) rotate(-1deg) } 100% { transform: translateX(24px) rotate(0) } }
@keyframes fb-post { 0%,100% { box-shadow: 0 0 0 transparent } 50% { box-shadow: 0 0 6px rgba(0,0,0,0.3) } }
@keyframes fb-fog { 0% { transform: translateX(0) } 100% { transform: translateX(-40vw) } }

.scn-boat-tied {
  background:
    linear-gradient(180deg, #4b5b6a 0%, #3a4a5a 40%, #2a3a4a 100%),
    radial-gradient(ellipse at 50% 60%, #5a6a7a 0%, transparent 60%);
}
.scn-boat-tied .water-bt {
  position: absolute; bottom: 0; left: 0; right: 0; height: 40%;
  background: linear-gradient(180deg, #3a4a5a 0%, #2a3a4a 100%);
  border-radius: 20% 20% 0 0;
  animation: bt-water 8s ease-in-out infinite alternate;
}
.scn-boat-tied .fence-bt {
  position: absolute; bottom: 40%; left: 0; right: 0; height: 20px;
  background: linear-gradient(90deg, #5a4a3a 0%, #4a3a2a 50%, #5a4a3a 100%);
  border-radius: 2px;
}
.scn-boat-tied .post-bt {
  position: absolute; bottom: 35%; left: 50%; width: 6px; height: 30px;
  background: linear-gradient(180deg, #6a5a4a 0%, #4a3a2a 100%);
  border-radius: 2px;
  transform: translateX(-50%);
  box-shadow: 0 4px 8px rgba(0,0,0,0.4);
}
.scn-boat-tied .boat-bt {
  position: absolute; bottom: 22%; left: 40%; width: 60px; height: 20px;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 0 0 30% 30% / 0 0 80% 80%;
  animation: bt-boat 6s ease-in-out infinite;
}
.scn-boat-tied .oar-bt {
  position: absolute; bottom: 20%; left: 45%; width: 30px; height: 4px;
  background: linear-gradient(180deg, #6a5a4a 0%, #4a3a2a 100%);
  border-radius: 2px;
  transform: rotate(20deg);
  animation: bt-oar 4s ease-in-out infinite alternate;
}
.scn-boat-tied .rope-bt {
  position: absolute; bottom: 30%; left: 48%; width: 6px; height: 30px;
  background: linear-gradient(180deg, #7a6a5a 0%, #5a4a3a 100%);
  border-radius: 1px;
  transform: rotate(10deg);
  animation: bt-rope 3s ease-in-out infinite;
}
.scn-boat-tied .grass-bt {
  position: absolute; bottom: 35%; left: 0; right: 0; height: 15px;
  background: linear-gradient(180deg, #4a6a3a 0%, #3a5a2a 100%);
  border-radius: 50% 50% 0 0;
  animation: bt-grass 5s ease-in-out infinite alternate;
}
@keyframes bt-water { 0% { transform: translateY(0) scaleY(1) } 50% { transform: translateY(-2px) scaleY(1.01) } 100% { transform: translateY(0) scaleY(1) } }
@keyframes bt-boat { 0% { transform: translateX(0) rotate(0) } 50% { transform: translateX(4px) rotate(2deg) } 100% { transform: translateX(0) rotate(0) } }
@keyframes bt-oar { 0% { transform: rotate(15deg) } 100% { transform: rotate(25deg) } }
@keyframes bt-rope { 0%,100% { transform: rotate(8deg) } 50% { transform: rotate(12deg) } }
@keyframes bt-grass { 0% { transform: translateY(0) } 100% { transform: translateY(-2px) } }

.scn-flora-found {
  background:
    linear-gradient(180deg, #5b6b7a 0%, #4a5a6a 40%, #3a4a5a 100%),
    radial-gradient(ellipse at 50% 20%, #6a7a8a 0%, transparent 60%);
}
.scn-flora-found .ground-ff {
  position: absolute; bottom: 0; left: 0; right: 0; height: 35%;
  background: linear-gradient(180deg, #4a6a4a 0%, #3a5a3a 100%);
  border-radius: 40% 60% 0 0;
}
.scn-flora-found .figure-ff {
  position: absolute; bottom: 18%; left: 50%; width: 20px; height: 38px;
  background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform: translateX(-50%);
  animation: ff-figure 5s ease-in-out infinite;
}
.scn-flora-found .fern-ff {
  position: absolute; bottom: 15%; left: 55%; width: 30px; height: 25px;
  background: linear-gradient(180deg, #4a6a3a 0%, #3a5a2a 100%);
  border-radius: 0 50% 50% 50%;
  transform: rotate(-20deg);
  animation: ff-fern 4s ease-in-out infinite alternate;
}
.scn-flora-found .glove-ff {
  position: absolute; bottom: 20%; left: 48%; width: 8px; height: 10px;
  background: linear-gradient(180deg, #6a5a4a 0%, #4a3a2a 100%);
  border-radius: 30% 30% 20% 20%;
  animation: ff-glove 3s ease-in-out infinite alternate;
}
.scn-flora-found .shadow-ff {
  position: absolute; bottom: 16%; left: 45%; width: 30px; height: 6px;
  background: rgba(0,0,0,0.2);
  border-radius: 50%;
  filter: blur(2px);
  animation: ff-shadow 5s ease-in-out infinite;
}
.scn-flora-found .sky-ff {
  position: absolute; top: 0; left: 0; right: 0; height: 65%;
  background: linear-gradient(180deg, #6b7b8a 0%, #4a5a6a 100%);
  animation: ff-sky 12s ease-in-out infinite alternate;
}
.scn-flora-found .mist-ff {
  position: absolute; top: 10%; left: 0; right: 0; height: 20%;
  background: radial-gradient(ellipse at 30% 50%, rgba(200,200,210,0.1) 0%, transparent 60%);
  filter: blur(5px);
  animation: ff-mist 20s linear infinite;
}
@keyframes ff-figure { 0% { transform: translateX(-50%) rotate(0) } 30% { transform: translateX(-50%) translateY(-4px) rotate(3deg) } 60% { transform: translateX(-50%) translateY(0) rotate(-2deg) } 100% { transform: translateX(-50%) rotate(0) } }
@keyframes ff-fern { 0% { transform: rotate(-15deg) scaleY(1) } 100% { transform: rotate(-25deg) scaleY(0.6) } }
@keyframes ff-glove { 0% { transform: translateY(0) } 100% { transform: translateY(-3px) } }
@keyframes ff-shadow { 0%,100% { opacity: 0.2; width: 30px } 50% { opacity: 0.1; width: 40px } }
@keyframes ff-sky { 0% { opacity: 0.8 } 50% { opacity: 1 } 100% { opacity: 0.7 } }
@keyframes ff-mist { 0% { transform: translateX(0) } 100% { transform: translateX(30vw) } }

.scn-first-gasp-surprise {
  background: linear-gradient(180deg, #1b1b3a 0%, #2a1f3a 40%, #3a2a4a 100%), radial-gradient(ellipse at 50% 60%, #3a2a4a 0%, transparent 70%);
}
.scn-first-gasp-surprise .sky-fgs {
  position: absolute; inset: 0 0 50% 0; background: linear-gradient(180deg, #3a4a6a 0%, #1a1a3a 100%); animation: fgs-sky 8s ease-in-out infinite alternate;
}
.scn-first-gasp-surprise .ground-fgs {
  position: absolute; bottom: 0; left: 0; right: 0; height: 55%; background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%); border-radius: 50% 50% 0 0 / 30% 30% 0 0; animation: fgs-ground 5s ease-in-out infinite;
}
.scn-first-gasp-surprise .figure-fgs {
  position: absolute; bottom: 35%; left: 45%; width: 20px; height: 50px; background: linear-gradient(180deg, #0a0a1a 0%, #2a2a3a 100%); border-radius: 45% 55% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: fgs-figure 3s ease-in-out infinite;
}
.scn-first-gasp-surprise .shadow-fgs {
  position: absolute; bottom: 33%; left: 43%; width: 30px; height: 10px; background: rgba(0,0,0,0.5); border-radius: 50%; filter: blur(4px); animation: fgs-shadow 3s ease-in-out infinite;
}
.scn-first-gasp-surprise .branch-fgs {
  position: absolute; top: 20%; left: 30%; width: 80px; height: 6px; background: linear-gradient(90deg, #2a1a1a 0%, #1a0a0a 100%); border-radius: 50%; transform: rotate(-15deg); animation: fgs-branch 10s ease-in-out infinite alternate;
}
.scn-first-gasp-surprise .light-fgs {
  position: absolute; top: 40%; left: 60%; width: 12px; height: 12px; background: radial-gradient(circle, #ffd080 0%, rgba(255,208,128,0.2) 70%); border-radius: 50%; box-shadow: 0 0 20px 6px rgba(255,208,128,0.4); animation: fgs-light 4s ease-in-out infinite alternate;
}
@keyframes fgs-sky { 0%{ opacity:.7 } 50%{ opacity:1 } 100%{ opacity:.8 } }
@keyframes fgs-ground { 0%,100%{ transform: scale(1) } 50%{ transform: scale(1.02) } }
@keyframes fgs-figure { 0%{ transform: translateX(0) rotate(0) } 25%{ transform: translateX(-8px) rotate(-10deg) } 50%{ transform: translateX(0) rotate(0) } 75%{ transform: translateX(8px) rotate(10deg) } 100%{ transform: translateX(0) rotate(0) } }
@keyframes fgs-shadow { 0%,100%{ transform: translateX(0) scale(1) } 50%{ transform: translateX(-6px) scale(0.8) } }
@keyframes fgs-branch { 0%{ transform: rotate(-15deg) } 100%{ transform: rotate(-10deg) } }
@keyframes fgs-light { 0%{ opacity:.6; box-shadow:0 0 14px 4px } 100%{ opacity:1; box-shadow:0 0 28px 10px } }

.scn-unknown-man-at-solitude {
  background: linear-gradient(180deg, #0f0f2a 0%, #1a1a3a 50%, #2a2a4a 100%), radial-gradient(ellipse at 30% 70%, #2a2a4a 0%, transparent 60%);
}
.scn-unknown-man-at-solitude .sky-ums {
  position: absolute; inset: 0 0 45% 0; background: linear-gradient(180deg, #2a2a5a 0%, #1a1a3a 100%); animation: ums-sky 12s ease-in-out infinite alternate;
}
.scn-unknown-man-at-solitude .horizon-ums {
  position: absolute; bottom: 45%; left: 0; right: 0; height: 4px; background: linear-gradient(90deg, transparent 0%, #3a3a5a 50%, transparent 100%); filter: blur(2px);
}
.scn-unknown-man-at-solitude .ground-ums {
  position: absolute; bottom: 0; left: 0; right: 0; height: 50%; background: linear-gradient(180deg, #0a0a1a 0%, #050510 100%); border-radius: 60% 40% 0 0 / 20% 10% 0 0; animation: ums-ground 15s ease-in-out infinite alternate;
}
.scn-unknown-man-at-solitude .figure1-ums {
  position: absolute; bottom: 40%; left: 25%; width: 18px; height: 45px; background: linear-gradient(180deg, #050510 0%, #151525 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom; animation: ums-figure1 6s ease-in-out infinite;
}
.scn-unknown-man-at-solitude .figure2-ums {
  position: absolute; bottom: 40%; right: 30%; width: 22px; height: 52px; background: linear-gradient(180deg, #0a0a15 0%, #1a1a30 100%); border-radius: 55% 45% 40% 40% / 60% 50% 40% 40%; transform-origin: bottom; animation: ums-figure2 8s ease-in-out infinite;
}
.scn-unknown-man-at-solitude .stone-ums {
  position: absolute; bottom: 28%; left: 50%; width: 40px; height: 20px; background: linear-gradient(180deg, #1a1a2a 0%, #0a0a15 100%); border-radius: 40% 60% 30% 70% / 50% 40% 60% 50%; transform: translateX(-50%); animation: ums-stone 10s ease-in-out infinite alternate;
}
@keyframes ums-sky { 0%{ opacity:.8 } 50%{ opacity:1 } 100%{ opacity:.9 } }
@keyframes ums-ground { 0%,100%{ transform: translateY(0) } 50%{ transform: translateY(-3px) } }
@keyframes ums-figure1 { 0%{ transform: translate(0,0) rotate(0) } 25%{ transform: translate(4px,-2px) rotate(3deg) } 50%{ transform: translate(0,0) rotate(0) } 75%{ transform: translate(-4px,-2px) rotate(-3deg) } 100%{ transform: translate(0,0) rotate(0) } }
@keyframes ums-figure2 { 0%{ transform: translate(0,0) } 20%{ transform: translate(-6px,0) } 40%{ transform: translate(-3px,-3px) } 60%{ transform: translate(3px,-1px) } 80%{ transform: translate(0,0) } 100%{ transform: translate(1px,0) } }
@keyframes ums-stone { 0%{ transform: translateX(-50%) scale(1) } 100%{ transform: translateX(-50%) scale(0.95) } }

.scn-scene-stricken-with-death {
  background: linear-gradient(180deg, #0e0e1e 0%, #16162e 40%, #1a1a3a 100%), radial-gradient(ellipse at 50% 30%, #1a1a3a 0%, transparent 60%);
}
.scn-scene-stricken-with-death .sky-swd {
  position: absolute; inset: 0 0 40% 0; background: linear-gradient(180deg, #2a2a4a 0%, #1a1a2e 100%); animation: swd-sky 15s ease-in-out infinite alternate;
}
.scn-scene-stricken-with-death .field-swd {
  position: absolute; bottom: 0; left: 0; right: 0; height: 65%; background: linear-gradient(180deg, #0a0a1a 0%, #05050f 100%); border-radius: 70% 30% 0 0 / 40% 10% 0 0; animation: swd-field 20s ease-in-out infinite alternate;
}
.scn-scene-stricken-with-death .tree-swd {
  position: absolute; bottom: 25%; left: 30%; width: 15px; height: 80px; background: linear-gradient(180deg, #1a0a0a 0%, #0a0505 100%); border-radius: 40% 40% 10% 10% / 60% 60% 20% 20%; transform-origin: bottom; animation: swd-tree 12s ease-in-out infinite;
}
.scn-scene-stricken-with-death .moon-swd {
  position: absolute; top: 12%; right: 20%; width: 40px; height: 40px; background: radial-gradient(circle, #c0b8a0 0%, rgba(192,184,160,0.3) 70%); border-radius: 50%; box-shadow: 0 0 60px 20px rgba(192,184,160,0.15); animation: swd-moon 25s linear infinite;
}
.scn-scene-stricken-with-death .branch-shadow-swd {
  position: absolute; top: 18%; left: 28%; width: 70px; height: 10px; background: rgba(0,0,0,0.3); border-radius: 50%; filter: blur(3px); transform: rotate(-20deg); animation: swd-branch 8s ease-in-out infinite alternate;
}
@keyframes swd-sky { 0%{ opacity:.7 } 50%{ opacity:1 } 100%{ opacity:.8 } }
@keyframes swd-field { 0%,100%{ transform: translateY(0) } 50%{ transform: translateY(-2px) } }
@keyframes swd-tree { 0%{ transform: rotate(0) } 25%{ transform: rotate(-1deg) } 50%{ transform: rotate(0) } 75%{ transform: rotate(1deg) } 100%{ transform: rotate(0) } }
@keyframes swd-moon { 0%{ transform: translateX(0) } 50%{ transform: translateX(10px) } 100%{ transform: translateX(0) } }
@keyframes swd-branch { 0%{ transform: rotate(-20deg) translateX(0) } 100%{ transform: rotate(-15deg) translateX(5px) } }

.scn-picture-in-a-frame {
  background: linear-gradient(180deg, #0e0e1e 0%, #1a1a2e 50%, #2a2a3e 100%), radial-gradient(ellipse at 50% 50%, #2a2a3e 0%, transparent 70%);
}
.scn-picture-in-a-frame .frame-paf {
  position: absolute; inset: 10% 15% 15% 10%; background: linear-gradient(180deg, #2a2518 0%, #4a3f2a 100%); border-radius: 8px; box-shadow: inset 0 0 20px rgba(0,0,0,0.7), 0 4px 12px rgba(0,0,0,0.5); animation: paf-frame 20s ease-in-out infinite alternate;
}
.scn-picture-in-a-frame .view-sky-paf {
  position: absolute; top: 12%; left: 13%; right: 13%; bottom: 50%; background: linear-gradient(180deg, #1e1e38 0%, #2a2a4a 100%); border-radius: 4px 4px 0 0; animation: paf-sky 12s ease-in-out infinite alternate;
}
.scn-picture-in-a-frame .view-ground-paf {
  position: absolute; bottom: 17%; left: 13%; right: 13%; height: 35%; background: linear-gradient(180deg, #0a0a1a 0%, #050510 100%); border-radius: 0 0 4px 4px; animation: paf-ground 15s ease-in-out infinite alternate;
}
.scn-picture-in-a-frame .figure1-paf {
  position: absolute; bottom: 25%; left: 35%; width: 14px; height: 40px; background: linear-gradient(180deg, #050510 0%, #151525 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom; animation: paf-fig1 6s ease-in-out infinite;
}
.scn-picture-in-a-frame .figure2-paf {
  position: absolute; bottom: 28%; right: 30%; width: 16px; height: 36px; background: linear-gradient(180deg, #0a0a15 0%, #1a1a30 100%); border-radius: 55% 45% 40% 40% / 50% 50% 40% 40%; transform-origin: bottom; animation: paf-fig2 8s ease-in-out infinite;
}
.scn-picture-in-a-frame .frame-edge-paf {
  position: absolute; inset: 9% 14% 14% 9%; border: 6px solid #3a3020; border-radius: 12px; box-shadow: inset 0 0 30px rgba(0,0,0,0.8), 0 0 40px rgba(0,0,0,0.5); pointer-events: none; animation: paf-edge 10s ease-in-out infinite alternate;
}
@keyframes paf-frame { 0%,100%{ transform: scale(1) } 50%{ transform: scale(1.01) } }
@keyframes paf-sky { 0%{ opacity:.8 } 50%{ opacity:1 } 100%{ opacity:.9 } }
@keyframes paf-ground { 0%,100%{ transform: translateY(0) } 50%{ transform: translateY(-2px) } }
@keyframes paf-fig1 { 0%{ transform: translate(0,0) rotate(0) } 25%{ transform: translate(2px,-1px) rotate(2deg) } 50%{ transform: translate(0,0) rotate(0) } 75%{ transform: translate(-2px,-1px) rotate(-2deg) } 100%{ transform: translate(0,0) rotate(0) } }
@keyframes paf-fig2 { 0%{ transform: translate(0,0) } 20%{ transform: translate(-3px,0) } 40%{ transform: translate(0,-2px) } 60%{ transform: translate(3px,0) } 80%{ transform: translate(0,0) } 100%{ transform: translate(0,0) } }
@keyframes paf-edge { 0%{ box-shadow: inset 0 0 20px, 0 0 30px } 100%{ box-shadow: inset 0 0 40px, 0 0 60px } }

.scn-look-at-her {
  background: linear-gradient(180deg, #f9e8d0 0%, #e6c9a8 40%, #d4b28a 100%),
              radial-gradient(ellipse at 60% 20%, #fff5e6 0%, transparent 70%);
}
.scn-look-at-her .wall { position:absolute; inset:0 0 35% 0; background: linear-gradient(135deg, #f2ddc6 0%, #e3c4a4 100%); }
.scn-look-at-her .window { position:absolute; top:8%; left:50%; width:100px; height:130px; transform:translateX(-50%); background: linear-gradient(180deg, #b8d4e8, #d6e8f4); border: 6px solid #c4a47a; border-radius: 4px; box-shadow: 0 0 30px 8px rgba(255,235,200,0.6); animation: lh-window 10s ease-in-out infinite alternate; }
.scn-look-at-her .floor { position:absolute; bottom:0; left:0; right:0; height:35%; background: linear-gradient(180deg, #c8a87a 0%, #a87a4a 100%); border-radius: 20% 20% 0 0; box-shadow: inset 0 10px 20px rgba(0,0,0,0.15); }
.scn-look-at-her .child { position:absolute; bottom:28%; left:35%; width:40px; height:70px; background: linear-gradient(180deg, #f4d8b0 0%, #d4a87a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: lh-child-bounce 4s ease-in-out infinite; }
.scn-look-at-her .lightbeam { position:absolute; top:12%; left:48%; width:80px; height:200px; background: linear-gradient(180deg, rgba(255,245,220,0.5) 0%, rgba(255,245,220,0) 100%); transform: rotate(-15deg); filter: blur(8px); animation: lh-beam 8s ease-in-out infinite alternate; }
.scn-look-at-her .dust { position:absolute; top:20%; left:30%; width:100%; height:100%; background: none; filter: blur(2px); animation: lh-dust 20s linear infinite; }
.scn-look-at-her .motes { position:absolute; top:25%; left:0; width:100%; height:100%; background: radial-gradient(circle at 20% 30%, rgba(255,240,200,0.3) 0%, transparent 3%), radial-gradient(circle at 70% 60%, rgba(255,240,200,0.2) 0%, transparent 2%); animation: lh-motes 25s linear infinite alternate; }
@keyframes lh-window { 0% { opacity: 0.8; box-shadow: 0 0 20px 4px rgba(255,235,200,0.4); } 50% { opacity: 1; box-shadow: 0 0 40px 12px rgba(255,235,200,0.7); } 100% { opacity: 0.85; box-shadow: 0 0 25px 6px rgba(255,235,200,0.5); } }
@keyframes lh-child-bounce { 0% { transform: translateY(0) scale(1); } 25% { transform: translateY(-3px) scale(1.02); } 50% { transform: translateY(0) scale(1); } 75% { transform: translateY(-2px) scale(0.98); } 100% { transform: translateY(0) scale(1); } }
@keyframes lh-beam { 0% { opacity: 0.6; transform: rotate(-18deg) scaleX(0.9); } 50% { opacity: 1; transform: rotate(-12deg) scaleX(1.1); } 100% { opacity: 0.7; transform: rotate(-15deg) scaleX(0.95); } }
@keyframes lh-dust { 0% { transform: translateX(0) translateY(0); } 50% { transform: translateX(20px) translateY(10px); } 100% { transform: translateX(40px) translateY(0); } }
@keyframes lh-motes { 0% { opacity: 0.3; transform: scale(1) rotate(0deg); } 50% { opacity: 0.6; transform: scale(1.1) rotate(5deg); } 100% { opacity: 0.4; transform: scale(0.9) rotate(-5deg); } }

.scn-sob-of-atonement {
  background: linear-gradient(180deg, #e6d4b8 0%, #c8a87a 50%, #a07850 100%),
              radial-gradient(ellipse at 30% 50%, #f4e0c0 0%, transparent 70%);
}
.scn-sob-of-atonement .bg-room { position:absolute; inset:0 0 25% 0; background: linear-gradient(135deg, #dcc8a8, #b89868); }
.scn-sob-of-atonement .sofa { position:absolute; bottom:20%; left:10%; width:60%; height:30%; background: linear-gradient(180deg, #8a6040 0%, #6a4a2a 100%); border-radius: 20% 20% 10% 10%; box-shadow: inset 0 -8px 12px rgba(0,0,0,0.3); }
.scn-sob-of-atonement .adult { position:absolute; bottom:22%; left:25%; width:50px; height:90px; background: linear-gradient(180deg, #c8a07a 0%, #a07850 100%); border-radius: 50% 50% 40% 40% / 70% 70% 30% 30%; transform-origin: bottom center; animation: sa-adult 6s ease-in-out infinite; }
.scn-sob-of-atonement .child { position:absolute; bottom:24%; left:32%; width:36px; height:60px; background: linear-gradient(180deg, #e0c0a0 0%, #c09868 100%); border-radius: 50% 50% 40% 40% / 65% 65% 35% 35%; transform-origin: bottom center; animation: sa-child 5s ease-in-out infinite; }
.scn-sob-of-atonement .light-source { position:absolute; top:10%; left:60%; width:40px; height:60px; background: radial-gradient(circle, #ffd080 0%, transparent 100%); filter: blur(10px); animation: sa-light 8s ease-in-out infinite alternate; }
.scn-sob-of-atonement .shadow { position:absolute; bottom:0; left:0; right:0; height:40%; background: linear-gradient(180deg, rgba(0,0,0,0.05) 0%, rgba(0,0,0,0.25) 100%); border-radius: 50% 50% 0 0; animation: sa-shadow 10s ease-in-out infinite alternate; }
@keyframes sa-adult { 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 sa-child { 0% { transform: translateX(0) translateY(0) scale(1); } 30% { transform: translateX(-5px) translateY(-2px) scale(1.05); } 60% { transform: translateX(3px) translateY(-1px) scale(0.98); } 100% { transform: translateX(0) translateY(0) scale(1); } }
@keyframes sa-light { 0% { opacity: 0.7; transform: scale(0.8); } 50% { opacity: 1; transform: scale(1.2); } 100% { opacity: 0.8; transform: scale(0.9); } }
@keyframes sa-shadow { 0% { opacity: 0.6; } 50% { opacity: 0.8; } 100% { opacity: 0.7; } }

.scn-never-known-him-bad {
  background: linear-gradient(180deg, #2a2a2a 0%, #1a1a1a 50%, #0f0f0f 100%),
              radial-gradient(ellipse at 40% 40%, #3a3a3a 0%, transparent 80%);
}
.scn-never-known-him-bad .bg-shadow { position:absolute; inset:0; background: linear-gradient(135deg, #1e1e1e, #111); border-radius: 0; }
.scn-never-known-him-bad .table { position:absolute; bottom:15%; left:20%; width:60%; height:12%; background: linear-gradient(180deg, #3a2a1a 0%, #1a1008 100%); border-radius: 6px; box-shadow: 0 4px 10px rgba(0,0,0,0.5); }
.scn-never-known-him-bad .figure-left { position:absolute; bottom:18%; left:15%; width:40px; height:80px; background: linear-gradient(180deg, #2a2a2a 0%, #0a0a0a 100%); border-radius: 50% 50% 40% 40% / 70% 70% 30% 30%; transform-origin: bottom center; animation: nh-figure-left 7s ease-in-out infinite; }
.scn-never-known-him-bad .figure-right { position:absolute; bottom:18%; right:15%; width:45px; height:85px; background: linear-gradient(180deg, #2a2a2a 0%, #0a0a0a 100%); border-radius: 50% 50% 40% 40% / 70% 70% 30% 30%; transform-origin: bottom center; animation: nh-figure-right 7s ease-in-out infinite; }
.scn-never-known-him-bad .lamp { position:absolute; top:10%; left:45%; width:20px; height:30px; background: radial-gradient(circle, #d4a86a, #8a6020); border-radius: 50% 50% 30% 30%; box-shadow: 0 0 30px 8px #b08040; animation: nh-lamp 6s ease-in-out infinite alternate; }
.scn-never-known-him-bad .lamp-glow { position:absolute; top:2%; left:35%; width:30%; height:50%; background: radial-gradient(ellipse, rgba(200,160,80,0.3) 0%, transparent 100%); filter: blur(20px); animation: nh-glow 8s ease-in-out infinite alternate; }
.scn-never-known-him-bad .candle { position:absolute; top:28%; left:48%; width:8px; height:14px; background: linear-gradient(180deg, #d4a86a, #8a6020); border-radius: 2px; box-shadow: 0 0 10px 3px #ffd080; animation: nh-candle 4s ease-in-out infinite; }
@keyframes nh-figure-left { 0% { transform: translateY(0) rotate(-2deg); } 30% { transform: translateY(2px) rotate(3deg); } 60% { transform: translateY(-1px) rotate(-1deg); } 100% { transform: translateY(0) rotate(-2deg); } }
@keyframes nh-figure-right { 0% { transform: translateY(0) rotate(2deg); } 30% { transform: translateY(-2px) rotate(-3deg); } 60% { transform: translateY(1px) rotate(1deg); } 100% { transform: translateY(0) rotate(2deg); } }
@keyframes nh-lamp { 0% { opacity: 0.8; transform: scale(0.95); box-shadow: 0 0 20px 4px #b08040; } 50% { opacity: 1; transform: scale(1.05); box-shadow: 0 0 40px 12px #d4a86a; } 100% { opacity: 0.85; transform: scale(0.98); box-shadow: 0 0 25px 6px #b08040; } }
@keyframes nh-glow { 0% { opacity: 0.4; transform: scale(0.9); } 50% { opacity: 0.7; transform: scale(1.1); } 100% { opacity: 0.5; transform: scale(0.95); } }
@keyframes nh-candle { 0% { transform: scaleY(1) rotate(0deg); } 25% { transform: scaleY(1.1) rotate(2deg); } 50% { transform: scaleY(0.95) rotate(-1deg); } 75% { transform: scaleY(1.05) rotate(3deg); } 100% { transform: scaleY(1) rotate(0deg); } }

.scn-spirit-to-be-naughty {
  background: linear-gradient(180deg, #3a2a1a 0%, #2a1a0a 50%, #1a0a00 100%),
              radial-gradient(ellipse at 60% 30%, #5a3a1a 0%, transparent 70%);
}
.scn-spirit-to-be-naughty .wall-dark { position:absolute; inset:0; background: linear-gradient(135deg, #2a1a0a, #1a0a00); }
.scn-spirit-to-be-naughty .hearth { position:absolute; bottom:15%; left:30%; width:40%; height:25%; background: linear-gradient(180deg, #4a2a0a 0%, #2a1000 100%); border-radius: 30% 30% 10% 10%; box-shadow: inset 0 -8px 12px rgba(0,0,0,0.5); }
.scn-spirit-to-be-naughty .fire { position:absolute; bottom:18%; left:40%; width:60px; height:70px; background: radial-gradient(circle, #ff6040 0%, #e04020 30%, #802000 100%); border-radius: 50% 50% 30% 30%; filter: blur(4px); animation: sn-fire 3s ease-in-out infinite alternate; }
.scn-spirit-to-be-naughty .adult-figure { position:absolute; bottom:20%; left:20%; width:50px; height:100px; background: linear-gradient(180deg, #3a2a1a 0%, #1a1008 100%); border-radius: 50% 50% 40% 40% / 70% 70% 30% 30%; transform-origin: bottom center; animation: sn-adult 8s ease-in-out infinite; }
.scn-spirit-to-be-naughty .child-figure { position:absolute; bottom:22%; right:20%; width:35px; height:60px; background: linear-gradient(180deg, #5a3a1a 0%, #2a1000 100%); border-radius: 50% 50% 40% 40% / 65% 65% 35% 35%; transform-origin: bottom center; animation: sn-child 6s ease-in-out infinite; }
.scn-spirit-to-be-naughty .shadow-shape { position:absolute; bottom:0; left:0; right:0; height:30%; background: linear-gradient(180deg, transparent 0%, rgba(0,0,0,0.3) 100%); border-radius: 40% 40% 0 0; animation: sn-shadow 12s ease-in-out infinite alternate; }
.scn-spirit-to-be-naughty .cozy-glow { position:absolute; top:10%; left:10%; width:80%; height:80%; background: radial-gradient(ellipse, rgba(255,100,40,0.2) 0%, transparent 100%); filter: blur(30px); animation: sn-glow 7s ease-in-out infinite alternate; }
@keyframes sn-fire { 0% { transform: scale(0.85) translateY(0); opacity: 0.7; } 50% { transform: scale(1.1) translateY(-3px); opacity: 1; } 100% { transform: scale(0.9) translateY(1px); opacity: 0.8; } }
@keyframes sn-adult { 0% { transform: translateY(0) rotate(-1deg); } 25% { transform: translateY(-2px) rotate(2deg); } 50% { transform: translateY(1px) rotate(-2deg); } 75% { transform: translateY(-1px) rotate(1deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes sn-child { 0% { transform: translateX(0) translateY(0) scale(1); } 30% { transform: translateX(-4px) translateY(-2px) scale(1.05); } 60% { transform: translateX(3px) translateY(0) scale(0.98); } 100% { transform: translateX(0) translateY(0) scale(1); } }
@keyframes sn-shadow { 0% { opacity: 0.5; } 50% { opacity: 0.8; } 100% { opacity: 0.6; } }
@keyframes sn-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); } }

/* big-house-spoils-travel – warm interior with trophies */
.scn-bht { background: linear-gradient(180deg, #8b6f4c 0%, #6b4f2c 40%, #3a2a1a 100%), radial-gradient(ellipse at 40% 30%, #c9a86a 0%, transparent 70%); }
.scn-bht .room-bg    { position:absolute; inset:0; background: linear-gradient(135deg, #7a5d3a 0%, #5a3d1e 100%); }
.scn-bht .floor      { position:absolute; bottom:0; left:0; right:0; height:35%; background: linear-gradient(180deg, #4a3020 0%, #2a1a0a 100%); border-top:2px solid #3a2a1a; }
.scn-bht .fireplace  { position:absolute; bottom:25%; left:20%; width:80px; height:100px; background: linear-gradient(135deg, #4a3a2a 0%, #2a1a0a 100%); border-radius:8% 8% 4% 4%; box-shadow: inset 0 0 20px #1a0a00; }
.scn-bht .fire-glow  { position:absolute; bottom:25%; left:22%; width:60px; height:70px; background: radial-gradient(circle, #ffb84d 0%, #cc7722 40%, transparent 70%); border-radius:50%; box-shadow: 0 0 40px 10px #ffb84d; animation: bht-fire 2s ease-in-out infinite alternate; }
.scn-bht .trophy     { position:absolute; top:18%; width:30px; height:40px; background: #6b4f2c; border-radius:50% 50% 30% 30% / 60% 60% 40% 40%; box-shadow: 0 4px 8px rgba(0,0,0,0.4); }
.scn-bht .trophy.stag{ left:30%; transform:rotate(5deg); }
.scn-bht .trophy.boar{ right:32%; transform:rotate(-3deg); }
.scn-bht .rug        { position:absolute; bottom:15%; left:15%; right:15%; height:20%; background: conic-gradient(from 45deg, #5e3a1e, #8b6f4c, #5e3a1e, #8b6f4c); border-radius:50% / 40%; opacity:0.7; }
.scn-bht .chandelier { position:absolute; top:6%; left:50%; width:60px; height:30px; transform:translateX(-50%); background: radial-gradient(circle at 50% 30%, #c9a86a 0%, transparent 70%); border-radius:50%; box-shadow: 0 0 20px 8px #c9a86a; animation: bht-sway 6s ease-in-out infinite; }

@keyframes bht-fire   { 0% { opacity:.6; transform:scale(1) ; } 50% { opacity:1; transform:scale(1.05) ; } 100% { opacity:.8; transform:scale(0.95) ; } }
@keyframes bht-sway   { 0% { transform:translateX(-50%) rotate(-2deg); } 50% { transform:translateX(-50%) rotate(2deg); } 100% { transform:translateX(-50%) rotate(-2deg); } }

/* children-heavy-on-hands – tense bright interior with sharp shadows */
.scn-chh { background: linear-gradient(180deg, #e0e0e0 0%, #b0b0b0 50%, #808080 100%), radial-gradient(ellipse at 20% 80%, #d0d0d0 0%, transparent 60%); }
.scn-chh .nursery-wall{ position:absolute; inset:0; background: linear-gradient(180deg, #f0f0f0 0%, #d8d8d8 100%); }
.scn-chh .window-bars { position:absolute; top:10%; left:10%; width:80%; height:40%; background: repeating-linear-gradient(90deg, transparent 0px, transparent 8px, #404040 8px, #404040 10px); background-size:10px 100%; border:3px solid #606060; border-radius:4px; }
.scn-chh .table       { position:absolute; bottom:20%; left:20%; width:60%; height:12%; background: #a0a0a0; border-radius:2px; box-shadow: 0 4px 8px rgba(0,0,0,0.3); transform:perspective(200px) rotateX(10deg); }
.scn-chh .chair       { position:absolute; bottom:18%; left:25%; width:40px; height:50px; background: #909090; border-radius:4px; transform:skewX(-5deg); }
.scn-chh .doll        { position:absolute; bottom:30%; left:34%; width:20px; height:35px; background: #b0a090; border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform:rotate(10deg); animation: chh-doll 3s ease-in-out infinite alternate; }
.scn-chh .toy-block   { position:absolute; bottom:25%; right:30%; width:18px; height:18px; background: #c08060; border-radius:2px; transform:rotate(15deg); animation: chh-block 4s ease-in-out infinite alternate; }
.scn-chh .shadow-pool { position:absolute; bottom:0; left:0; right:0; height:30%; background: linear-gradient(0deg, rgba(0,0,0,0.3) 0%, transparent 100%); animation: chh-shadow 5s ease-in-out infinite alternate; }

@keyframes chh-doll   { 0% { transform:rotate(10deg) translateY(0); } 50% { transform:rotate(-5deg) translateY(-2px); } 100% { transform:rotate(10deg) translateY(0); } }
@keyframes chh-block  { 0% { transform:rotate(15deg) scale(1); } 50% { transform:rotate(-10deg) scale(1.1); } 100% { transform:rotate(20deg) scale(0.95); } }
@keyframes chh-shadow { 0% { opacity:0.3; } 50% { opacity:0.6; } 100% { opacity:0.2; } }

/* bly-healthy-secure – calm window-lit view of a lawn */
.scn-bhs { background: linear-gradient(180deg, #87ceeb 0%, #b0e0e6 30%, #f0f8ff 60%, #c8e6c9 100%), radial-gradient(ellipse at 50% 20%, #e0f0ff 0%, transparent 70%); }
.scn-bhs .window-frame{ position:absolute; top:0; left:0; right:0; bottom:0; border:8px solid #5a3a1a; background: transparent; pointer-events:none; }
.scn-bhs .glass-pane  { position:absolute; top:4%; left:4%; width:92%; height:92%; background: rgba(255,255,255,0.15); backdrop-filter: blur(2px); }
.scn-bhs .lawn        { position:absolute; bottom:0; left:5%; right:5%; height:45%; background: linear-gradient(180deg, #6bab6a 0%, #4a8a4a 100%); border-radius:60% 60% 0 0 / 30% 30% 0 0; }
.scn-bhs .tree-left   { position:absolute; bottom:20%; left:12%; width:40px; height:90px; background: #3a6a3a; border-radius:40% 40% 30% 30% / 80% 80% 50% 50%; box-shadow: 0 8px 12px rgba(0,0,0,0.2); animation: bhs-branch 10s ease-in-out infinite alternate; }
.scn-bhs .tree-right  { position:absolute; bottom:18%; right:15%; width:50px; height:100px; background: #2a5a2a; border-radius:50% 50% 30% 30% / 70% 70% 40% 40%; transform:scale(0.9); animation: bhs-branch 12s ease-in-out infinite alternate reverse; }
.scn-bhs .curtain     { position:absolute; top:0; left:0; width:30%; height:100%; background: linear-gradient(180deg, rgba(255,253,240,0.8) 0%, rgba(220,200,170,0.9) 100%); transform-origin: left center; animation: bhs-curtain 8s ease-in-out infinite alternate; }
.scn-bhs .bird        { position:absolute; top:30%; left:20%; width:12px; height:8px; background: #4a4a4a; border-radius:50% 50% 40% 40%; animation: bhs-bird 20s linear infinite; }

@keyframes bhs-branch { 0% { transform:translateY(0) rotate(-2deg); } 50% { transform:translateY(-5px) rotate(1deg); } 100% { transform:translateY(0) rotate(2deg); } }
@keyframes bhs-curtain{ 0% { transform:scaleX(1); } 50% { transform:scaleX(0.95); } 100% { transform:scaleX(1.02); } }
@keyframes bhs-bird   { 0% { left:20%; top:30%; } 25% { left:40%; top:28%; } 50% { left:60%; top:32%; } 75% { left:80%; top:29%; } 100% { left:90%; top:30%; } }

/* supreme-authority-governess – calm study with desk and lamp */
.scn-sag { background: linear-gradient(180deg, #4a3a2a 0%, #3a2a1a 40%, #2a1a0a 100%), radial-gradient(ellipse at 60% 40%, #8b6f4c 0%, transparent 70%); }
.scn-sag .study-wall  { position:absolute; inset:0; background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%); }
.scn-sag .desk        { position:absolute; bottom:15%; left:15%; right:15%; height:20%; background: #6a4a2a; border-radius:2px; box-shadow: 0 6px 12px rgba(0,0,0,0.5); transform:perspective(150px) rotateX(5deg); }
.scn-sag .book        { position:absolute; bottom:22%; left:38%; width:50px; height:30px; background: #8b6f4c; border-radius:2px; box-shadow: 0 2px 4px rgba(0,0,0,0.3); transform:rotate(2deg); animation: sag-book 10s ease-in-out infinite alternate; }
.scn-sag .lamp        { position:absolute; bottom:30%; left:30%; width:20px; height:40px; background: #c9a86a; border-radius:4px 4px 10% 10%; box-shadow: 0 0 30px 10px #ffb84d; animation: sag-lamp 3s ease-in-out infinite alternate; }
.scn-sag .chair-back  { position:absolute; bottom:12%; right:20%; width:30px; height:50px; background: #4a3a2a; border-radius:8px 8px 4px 4px; transform:rotate(-5deg); }
.scn-sag .window-light{ position:absolute; top:8%; right:8%; width:50%; height:60%; background: linear-gradient(135deg, rgba(255,253,240,0.3) 0%, transparent 60%); border-radius:10px; animation: sag-light 6s ease-in-out infinite alternate; }
.scn-sag .inkwell     { position:absolute; bottom:22%; left:30%; width:14px; height:18px; background: #2a1a0a; border-radius:50% 50% 30% 30% / 60% 60% 40% 40%; }

@keyframes sag-book   { 0% { transform:rotate(2deg) translateY(0); } 50% { transform:rotate(0deg) translateY(-2px); } 100% { transform:rotate(-1deg) translateY(0); } }
@keyframes sag-lamp   { 0% { box-shadow: 0 0 20px 6px #ffb84d; opacity:0.9; } 50% { box-shadow: 0 0 35px 12px #ffb84d; opacity:1; } 100% { box-shadow: 0 0 25px 8px #ffb84d; opacity:0.9; } }
@keyframes sag-light  { 0% { opacity:0.2; } 50% { opacity:0.5; } 100% { opacity:0.3; } }

.scn-stair-collapse {
  background: 
    radial-gradient(ellipse at 50% 100%, #1a1a2e 0%, transparent 50%),
    linear-gradient(180deg, #2a1f2a 0%, #14101a 70%);
}
.scn-stair-collapse .wall {
  position: absolute; inset: 0 0 20% 0;
  background: linear-gradient(180deg, #3a2a3a 0%, #1a121a 100%);
  animation: sc-wall 10s ease-in-out infinite alternate;
}
.scn-stair-collapse .stair-top {
  position: absolute; bottom: 40%; left: 30%; width: 120px; height: 12px;
  background: linear-gradient(135deg, #4a3a3a 0%, #2a1a1a 100%);
  border-radius: 2px;
  transform: skewX(-20deg);
  box-shadow: 0 2px 4px rgba(0,0,0,0.5);
  animation: sc-stair-top 6s ease-in-out infinite;
}
.scn-stair-collapse .stair-mid {
  position: absolute; bottom: 34%; left: 28%; width: 130px; height: 10px;
  background: linear-gradient(135deg, #4a3a3a 0%, #2a1a1a 100%);
  border-radius: 2px;
  transform: skewX(-20deg) rotate(-2deg);
  box-shadow: 0 2px 4px rgba(0,0,0,0.5);
  animation: sc-stair-mid 8s ease-in-out infinite alternate;
}
.scn-stair-collapse .stair-bot {
  position: absolute; bottom: 28%; left: 25%; width: 140px; height: 10px;
  background: linear-gradient(135deg, #4a3a3a 0%, #2a1a1a 100%);
  border-radius: 2px;
  transform: skewX(-20deg) rotate(-4deg);
  box-shadow: 0 2px 4px rgba(0,0,0,0.5);
  animation: sc-stair-bot 10s ease-in-out infinite alternate;
}
.scn-stair-collapse .figure-crumpled {
  position: absolute; bottom: 18%; left: 35%; width: 40px; height: 50px;
  background: radial-gradient(ellipse at 50% 80%, #2a1a1a 0%, #1a0a0a 80%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  box-shadow: 0 4px 12px rgba(0,0,0,0.7);
  animation: sc-figure 4s ease-in-out infinite;
}
.scn-stair-collapse .dust {
  position: absolute; top: 20%; left: 0; right: 0; bottom: 0;
  background: radial-gradient(circle at 30% 40%, rgba(180,160,140,0.15) 0%, transparent 60%);
  filter: blur(8px);
  animation: sc-dust 15s ease-in-out infinite alternate;
}
.scn-stair-collapse .light-shaft {
  position: absolute; top: 0; left: 50%; width: 60px; height: 100%;
  background: linear-gradient(180deg, rgba(200,180,160,0.1) 0%, transparent 70%);
  filter: blur(6px);
  animation: sc-light 12s ease-in-out infinite alternate;
}
@keyframes sc-wall {
  0% { opacity:0.9; }
  50% { opacity:0.8; transform: scaleY(0.98); }
  100% { opacity:0.9; }
}
@keyframes sc-stair-top {
  0% { transform: skewX(-20deg) translateY(0); }
  50% { transform: skewX(-20deg) translateY(-4px) rotate(-1deg); }
  100% { transform: skewX(-20deg) translateY(0); }
}
@keyframes sc-stair-mid {
  0% { transform: skewX(-20deg) rotate(-2deg) translateY(0); }
  50% { transform: skewX(-20deg) rotate(-3deg) translateY(-6px); }
  100% { transform: skewX(-20deg) rotate(-2deg) translateY(0); }
}
@keyframes sc-stair-bot {
  0% { transform: skewX(-20deg) rotate(-4deg) translateY(0); }
  50% { transform: skewX(-20deg) rotate(-5deg) translateY(-8px); opacity:0.8; }
  100% { transform: skewX(-20deg) rotate(-4deg) translateY(0); }
}
@keyframes sc-figure {
  0% { transform: translateY(0) rotate(0deg); }
  25% { transform: translateY(-2px) rotate(5deg); }
  50% { transform: translateY(0) rotate(-3deg); }
  75% { transform: translateY(1px) rotate(2deg); }
  100% { transform: translateY(0) rotate(0deg); }
}
@keyframes sc-dust {
  0% { opacity:0.3; transform: scale(1); }
  50% { opacity:0.6; transform: scale(1.1); }
  100% { opacity:0.3; transform: scale(1); }
}
@keyframes sc-light {
  0% { opacity:0.2; transform: translateX(-10px) scaleX(0.8); }
  50% { opacity:0.5; transform: translateX(0) scaleX(1.1); }
  100% { opacity:0.2; transform: translateX(-10px) scaleX(0.8); }
}

/* schoolroom-apparition */
.scn-schoolroom-apparition {
  background: 
    radial-gradient(ellipse at 50% 80%, #e8e0d0 0%, #c8b8a0 60%, #9a8a7a 100%),
    linear-gradient(180deg, #f0e8d8 0%, #d8c8b0 50%, #b0a090 100%);
}
.scn-schoolroom-apparition .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #b8a890 0%, #887868 100%);
  border-radius: 20% 20% 0 0 / 10% 10% 0 0;
}
.scn-schoolroom-apparition .window {
  position: absolute; top: 10%; left: 15%; width: 80px; height: 100px;
  background: linear-gradient(180deg, #e0d8c8 0%, #c8b8a0 100%);
  border: 4px solid #8a7a6a;
  border-radius: 2px;
  box-shadow: inset 0 0 30px rgba(200,180,160,0.5);
  animation: sch-window 8s ease-in-out infinite alternate;
}
.scn-schoolroom-apparition .table {
  position: absolute; bottom: 20%; left: 20%; width: 200px; height: 30px;
  background: linear-gradient(135deg, #b0a090 0%, #908070 100%);
  border-radius: 4px;
  box-shadow: 0 4px 8px rgba(0,0,0,0.2);
  transform: rotate(-1deg);
}
.scn-schoolroom-apparition .chair {
  position: absolute; bottom: 25%; left: 60%; width: 30px; height: 40px;
  background: linear-gradient(180deg, #a09080 0%, #807060 100%);
  border-radius: 4px;
  transform: rotate(2deg);
}
.scn-schoolroom-apparition .figure-housemaid {
  position: absolute; bottom: 28%; left: 40%; width: 50px; height: 70px;
  background: radial-gradient(ellipse at 50% 30%, #c8b8a8 0%, #b0a090 50%, #908070 100%);
  border-radius: 40% 40% 35% 35% / 50% 50% 40% 40%;
  transform-origin: bottom center;
  animation: sch-maid 6s ease-in-out infinite;
}
.scn-schoolroom-apparition .light-pool {
  position: absolute; bottom: 15%; left: 30%; width: 150px; height: 80px;
  background: radial-gradient(ellipse, rgba(200,180,160,0.3) 0%, transparent 70%);
  filter: blur(10px);
  animation: sch-light 12s ease-in-out infinite alternate;
}
.scn-schoolroom-apparition .shadow {
  position: absolute; bottom: 18%; left: 40%; width: 60px; height: 20px;
  background: radial-gradient(ellipse, rgba(0,0,0,0.15) 0%, transparent 70%);
  animation: sch-shadow 6s ease-in-out infinite;
}
@keyframes sch-window {
  0% { opacity:0.9; transform: scaleY(1); }
  50% { opacity:1; transform: scaleY(0.98); }
  100% { opacity:0.95; transform: scaleY(1); }
}
@keyframes sch-maid {
  0% { transform: translateY(0) rotate(0deg); }
  25% { transform: translateY(-3px) rotate(2deg); }
  50% { transform: translateY(0) rotate(-1deg); }
  75% { transform: translateY(-1px) rotate(1deg); }
  100% { transform: translateY(0) rotate(0deg); }
}
@keyframes sch-light {
  0% { opacity:0.3; transform: scaleX(0.9); }
  50% { opacity:0.6; transform: scaleX(1.2); }
  100% { opacity:0.3; transform: scaleX(0.9); }
}
@keyframes sch-shadow {
  0% { opacity:0.4; transform: scaleX(1); }
  50% { opacity:0.2; transform: scaleX(1.1); }
  100% { opacity:0.4; transform: scaleX(1); }
}

/* identity-flares */
.scn-identity-flares {
  background: 
    radial-gradient(ellipse at 40% 40%, #f0e0c0 0%, #d0c0a0 60%, #a09080 100%),
    linear-gradient(180deg, #e8d8b8 0%, #c8b898 50%, #a89878 100%);
}
.scn-identity-flares .wall-back {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #d0c0a0 0%, #b0a080 100%);
}
.scn-identity-flares .desk {
  position: absolute; bottom: 20%; left: 10%; width: 80%; height: 40px;
  background: linear-gradient(135deg, #b8a888 0%, #a09070 100%);
  border-radius: 6px;
  box-shadow: 0 4px 12px rgba(0,0,0,0.3);
  transform: rotate(0.5deg);
}
.scn-identity-flares .figure-head {
  position: absolute; bottom: 30%; left: 35%; width: 60px; height: 50px;
  background: radial-gradient(ellipse at 50% 60%, #c8b8a0 0%, #a89878 70%);
  border-radius: 50% 50% 45% 45% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: id-head 5s ease-in-out infinite;
}
.scn-identity-flares .arms {
  position: absolute; bottom: 24%; left: 30%; width: 100px; height: 20px;
  background: linear-gradient(135deg, #b8a890 0%, #a09070 100%);
  border-radius: 10px;
  transform: rotate(-10deg);
  animation: id-arms 4s ease-in-out infinite alternate;
}
.scn-identity-flares .flare.glow {
  position: absolute; top: 15%; left: 25%; width: 80px; height: 80px;
  background: radial-gradient(circle, rgba(240,200,150,0.4) 0%, transparent 60%);
  filter: blur(12px);
  animation: id-glow 3s ease-in-out infinite alternate;
}
.scn-identity-flares .shadow-desk {
  position: absolute; bottom: 15%; left: 10%; width: 80%; height: 30px;
  background: radial-gradient(ellipse, rgba(0,0,0,0.15) 0%, transparent 70%);
}
@keyframes id-head {
  0% { transform: translateY(0) rotate(0deg); }
  30% { transform: translateY(-4px) rotate(3deg); }
  60% { transform: translateY(-2px) rotate(-2deg); }
  100% { transform: translateY(0) rotate(0deg); }
}
@keyframes id-arms {
  0% { transform: rotate(-10deg) translateX(0); }
  50% { transform: rotate(-8deg) translateX(5px); }
  100% { transform: rotate(-12deg) translateX(-3px); }
}
@keyframes id-glow {
  0% { opacity:0.3; transform: scale(0.9); }
  50% { opacity:0.7; transform: scale(1.1); }
  100% { opacity:0.3; transform: scale(0.9); }
}

/* miss-jessel-appears */
.scn-miss-jessel-appears {
  background: 
    radial-gradient(ellipse at 50% 30%, #e0d0b8 0%, #c0b098 60%, #a09078 100%),
    linear-gradient(180deg, #d8c8b0 0%, #b8a890 50%, #988878 100%);
}
.scn-miss-jessel-appears .bg-wall {
  position: absolute; inset: 0 0 20% 0;
  background: linear-gradient(180deg, #c8b8a0 0%, #a09078 100%);
  box-shadow: inset 0 20px 40px rgba(0,0,0,0.1);
}
.scn-miss-jessel-appears .floor-tile {
  position: absolute; bottom: 0; left: 0; right: 0; height: 20%;
  background: repeating-linear-gradient(90deg, #b8a890 0px, #b8a890 20px, #a89880 20px, #a89880 40px);
  border-radius: 10% 10% 0 0 / 20% 20% 0 0;
}
.scn-miss-jessel-appears .figure-dress {
  position: absolute; bottom: 15%; left: 35%; width: 80px; height: 120px;
  background: radial-gradient(ellipse at 50% 20%, #2a2a3a 0%, #1a1a2a 70%);
  border-radius: 40% 40% 35% 35% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  box-shadow: 0 8px 20px rgba(0,0,0,0.5);
  animation: mj-dress 7s ease-in-out infinite;
}
.scn-miss-jessel-appears .figure-face {
  position: absolute; bottom: 55%; left: 38%; width: 30px; height: 35px;
  background: radial-gradient(ellipse at 50% 60%, #d8c8b0 0%, #b8a890 70%);
  border-radius: 45% 45% 40% 40% / 50% 50% 45% 45%;
  transform-origin: bottom center;
  animation: mj-face 5s ease-in-out infinite;
}
.scn-miss-jessel-appears .glow-halo {
  position: absolute; bottom: 40%; left: 30%; width: 120px; height: 120px;
  background: radial-gradient(circle, rgba(200,180,160,0.2) 0%, transparent 60%);
  filter: blur(15px);
  animation: mj-glow 8s ease-in-out infinite alternate;
}
.scn-miss-jessel-appears .shadow-ground {
  position: absolute; bottom: 8%; left: 30%; width: 100px; height: 30px;
  background: radial-gradient(ellipse, rgba(0,0,0,0.2) 0%, transparent 70%);
  animation: mj-shadow 7s ease-in-out infinite;
}
.scn-miss-jessel-appears .dust-mote {
  position: absolute; top: 20%; left: 20%; width: 4px; height: 4px;
  background: rgba(180,160,140,0.3);
  border-radius: 50%;
  box-shadow: 20px 30px 0 2px rgba(180,160,140,0.2), 40px 60px 0 1px rgba(180,160,140,0.25);
  filter: blur(2px);
  animation: mj-mote 20s linear infinite;
}
@keyframes mj-dress {
  0% { transform: translateY(0) rotate(0deg); }
  25% { transform: translateY(-5px) rotate(1deg); }
  50% { transform: translateY(0) rotate(-1deg); }
  75% { transform: translateY(-2px) rotate(2deg); }
  100% { transform: translateY(0) rotate(0deg); }
}
@keyframes mj-face {
  0% { opacity:0.8; transform: translateY(0); }
  50% { opacity:1; transform: translateY(-3px); }
  100% { opacity:0.8; transform: translateY(0); }
}
@keyframes mj-glow {
  0% { opacity:0.2; transform: scale(0.95); }
  50% { opacity:0.4; transform: scale(1.05); }
  100% { opacity:0.2; transform: scale(0.95); }
}
@keyframes mj-shadow {
  0% { opacity:0.3; transform: scaleX(1); }
  50% { opacity:0.2; transform: scaleX(1.1); }
  100% { opacity:0.3; transform: scaleX(1); }
}
@keyframes mj-mote {
  0% { transform: translateY(0) translateX(0); opacity:0.3; }
  25% { transform: translateY(20px) translateX(10px); opacity:0.5; }
  50% { transform: translateY(40px) translateX(-5px); opacity:0.2; }
  75% { transform: translateY(60px) translateX(15px); opacity:0.4; }
  100% { transform: translateY(80px) translateX(0); opacity:0.3; }
}

/* reflection-heroism – tense dim interior, hero figure with shield */
.scn-reflection-heroism {
  background: linear-gradient(180deg, #2a1a1a 0%, #1a0d0d 40%, #221212 100%), radial-gradient(ellipse at 50% 55%, #3a2a2a 0%, transparent 70%);
}
.scn-reflection-heroism .rh-bg {
  position: absolute; inset: 0;
  background: linear-gradient(135deg, #3a2020 0%, #1a0d0d 50%, #2a1515 100%);
  animation: rh-bg 10s ease-in-out infinite alternate;
}
.scn-reflection-heroism .rh-figure {
  position: absolute; bottom: 10%; left: 50%; width: 60px; height: 140px;
  transform: translateX(-50%) scale(0.9);
  background: linear-gradient(180deg, #1a1a1a 0%, #0d0d0d 60%, #1a0d0d 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%;
  animation: rh-figure 6s ease-in-out infinite;
}
.scn-reflection-heroism .rh-glow {
  position: absolute; bottom: 20%; left: 45%; width: 30px; height: 30px;
  background: radial-gradient(circle, #c88a4a 0%, #7a4a2a 50%, transparent 70%);
  border-radius: 50%;
  box-shadow: 0 0 40px 20px rgba(200,138,74,0.3);
  animation: rh-glow 4s ease-in-out infinite alternate;
}
.scn-reflection-heroism .rh-shield {
  position: absolute; bottom: 15%; left: 42%; width: 40px; height: 50px;
  background: linear-gradient(135deg, #6a5040 0%, #4a3525 50%, #3a2a1a 100%);
  border-radius: 20% 20% 10% 10% / 30% 30% 20% 20%;
  box-shadow: 0 4px 8px rgba(0,0,0,0.6);
  animation: rh-shield 8s ease-in-out infinite;
}
.scn-reflection-heroism .rh-orb {
  position: absolute; bottom: 28%; left: 48%; width: 8px; height: 8px;
  background: radial-gradient(circle, #d4a060 0%, #b07030 100%);
  border-radius: 50%;
  box-shadow: 0 0 20px 6px rgba(180,112,48,0.7);
  animation: rh-orb 3s ease-in-out infinite alternate;
}
.scn-reflection-heroism .rh-shadow {
  position: absolute; bottom: 5%; left: 30%; width: 80px; height: 10px;
  background: radial-gradient(ellipse, rgba(0,0,0,0.6) 0%, transparent 70%);
  border-radius: 50%;
  animation: rh-shadow 6s ease-in-out infinite alternate;
}
@keyframes rh-bg { 0% { opacity:0.7; } 50% { opacity:1; } 100% { opacity:0.8; } }
@keyframes rh-figure { 0%,100% { transform: translateX(-50%) scale(0.9) rotate(0deg); } 50% { transform: translateX(-50%) scale(0.92) rotate(2deg); } }
@keyframes rh-glow { 0% { opacity:0.6; transform: scale(1); } 100% { opacity:1; transform: scale(1.2); } }
@keyframes rh-shield { 0%,100% { transform: translateY(0) rotate(-2deg); } 50% { transform: translateY(-4px) rotate(2deg); } }
@keyframes rh-orb { 0% { opacity:0.7; box-shadow: 0 0 20px 6px rgba(180,112,48,0.5); } 100% { opacity:1; box-shadow: 0 0 30px 10px rgba(180,112,48,0.8); } }
@keyframes rh-shadow { 0% { opacity:0.5; transform: scaleX(0.9); } 100% { opacity:0.8; transform: scaleX(1.1); } }

/* reflection-mission – dim interior, guardian over small creatures */
.scn-reflection-mission {
  background: linear-gradient(180deg, #191a2a 0%, #0d0e1a 50%, #151620 100%), radial-gradient(ellipse at 50% 60%, #2a2b3a 0%, transparent 70%);
}
.scn-reflection-mission .rm-bg {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, #222a3a 0%, #101520 60%, #1a1e2a 100%);
  animation: rm-bg 12s ease-in-out infinite alternate;
}
.scn-reflection-mission .rm-guardian {
  position: absolute; bottom: 15%; left: 50%; width: 80px; height: 160px;
  transform: translateX(-60%);
  background: linear-gradient(180deg, #1a1a2a 0%, #0d0d1a 60%, #151520 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%;
  animation: rm-guardian 7s ease-in-out infinite;
}
.scn-reflection-mission .rm-creatures {
  position: absolute; bottom: 8%; left: 35%; width: 30px; height: 20px;
  background: linear-gradient(180deg, #3a2a2a 0%, #1a1515 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  box-shadow: 20px -5px 0 -2px rgba(50,40,40,0.6), 40px 0 0 -1px rgba(60,45,45,0.4);
  animation: rm-creatures 5s ease-in-out infinite alternate;
}
.scn-reflection-mission .rm-light {
  position: absolute; top: 20%; left: 40%; width: 50px; height: 50px;
  background: radial-gradient(circle, #8a7a5a 0%, #4a3a2a 50%, transparent 70%);
  border-radius: 50%;
  box-shadow: 0 0 60px 30px rgba(120,100,70,0.2);
  animation: rm-light 8s ease-in-out infinite alternate;
}
.scn-reflection-mission .rm-floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 10%;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a12 100%);
  animation: rm-floor 10s ease-in-out infinite alternate;
}
.scn-reflection-mission .rm-wall {
  position: absolute; bottom: 20%; left: 20%; width: 2px; height: 60%;
  background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%);
  box-shadow: 80px 0 0 0 #2a2a3a, 160px 0 0 0 #1a1a2a;
  animation: rm-wall 15s linear infinite;
}
@keyframes rm-bg { 0% { opacity:0.6; } 50% { opacity:1; } 100% { opacity:0.7; } }
@keyframes rm-guardian { 0%,100% { transform: translateX(-60%) scale(1) rotate(0deg); } 50% { transform: translateX(-60%) scale(1.02) rotate(1deg); } }
@keyframes rm-creatures { 0% { opacity:0.8; transform: translateY(0); } 100% { opacity:1; transform: translateY(-3px); } }
@keyframes rm-light { 0% { opacity:0.4; transform: scale(0.8); } 100% { opacity:0.8; transform: scale(1.2); } }
@keyframes rm-floor { 0% { opacity:0.5; } 100% { opacity:0.7; } }
@keyframes rm-wall { 0% { transform: translateX(0); } 100% { transform: translateX(-10px); } }

/* reflection-screen – figure behind screen, tense atmosphere */
.scn-reflection-screen {
  background: linear-gradient(180deg, #1a1a2a 0%, #101020 40%, #202040 100%), radial-gradient(ellipse at 50% 50%, #2a2a4a 0%, transparent 70%);
}
.scn-reflection-screen .rs-bg {
  position: absolute; inset: 0;
  background: linear-gradient(135deg, #202035 0%, #15152a 50%, #1a1a30 100%);
  animation: rs-bg 10s ease-in-out infinite alternate;
}
.scn-reflection-screen .rs-screen {
  position: absolute; top: 10%; left: 30%; width: 40%; height: 75%;
  background: linear-gradient(180deg, #2a2a40 0%, #1a1a30 50%, #202038 100%);
  border-radius: 2% 2% 0 0;
  box-shadow: 0 0 20px 5px rgba(0,0,0,0.5), inset 0 0 30px rgba(0,0,0,0.3);
  transform: perspective(500px) rotateY(-8deg);
  animation: rs-screen 8s ease-in-out infinite alternate;
}
.scn-reflection-screen .rs-figure {
  position: absolute; bottom: 15%; right: 15%; width: 50px; height: 130px;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 60%, #15152a 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%;
  animation: rs-figure 6s ease-in-out infinite;
}
.scn-reflection-screen .rs-shadow {
  position: absolute; bottom: 5%; left: 20%; width: 60%; height: 8px;
  background: radial-gradient(ellipse, rgba(0,0,0,0.7) 0%, transparent 70%);
  animation: rs-shadow 8s ease-in-out infinite alternate;
}
.scn-reflection-screen .rs-edge {
  position: absolute; top: 10%; left: 30%; width: 2px; height: 75%;
  background: linear-gradient(180deg, #4a4a6a 0%, #2a2a4a 100%);
  box-shadow: 40% 0 0 0 #3a3a5a;
  animation: rs-edge 12s linear infinite;
}
.scn-reflection-screen .rs-dust {
  position: absolute; top: 30%; left: 20%; width: 4px; height: 4px;
  background: rgba(200,200,240,0.3);
  border-radius: 50%;
  box-shadow: 40px 30px 0 2px rgba(200,200,240,0.2), 80px 80px 0 1px rgba(200,200,240,0.15), 120px 20px 0 3px rgba(200,200,240,0.1);
  animation: rs-dust 20s linear infinite;
}
@keyframes rs-bg { 0% { opacity:0.6; } 50% { opacity:1; } 100% { opacity:0.8; } }
@keyframes rs-screen { 0% { transform: perspective(500px) rotateY(-8deg) translateX(0); } 100% { transform: perspective(500px) rotateY(-5deg) translateX(-2px); } }
@keyframes rs-figure { 0%,100% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-3px) rotate(2deg); } }
@keyframes rs-shadow { 0% { opacity:0.5; transform: scaleX(0.9); } 100% { opacity:0.8; transform: scaleX(1.1); } }
@keyframes rs-edge { 0% { opacity:0.6; } 50% { opacity:1; } 100% { opacity:0.7; } }
@keyframes rs-dust { 0% { transform: translate(0, 0) scale(1); opacity:0; } 25% { opacity:0.8; } 100% { transform: translate(-10px, -80px) scale(0.4); opacity:0; } }

/* afternoon-grounds-flora – sunlit tense, sharp shadows and flora */
.scn-afternoon-grounds-flora {
  background: linear-gradient(180deg, #6a8a6a 0%, #4a6a4a 30%, #5a7a5a 60%, #3a5a3a 100%), radial-gradient(ellipse at 50% 100%, #7a9a7a 0%, transparent 70%);
}
.scn-afternoon-grounds-flora .ag-bg {
  position: absolute; inset: 0;
  background: linear-gradient(135deg, #7a9a6a 0%, #5a7a4a 50%, #6a8a5a 100%);
  animation: ag-bg 8s ease-in-out infinite alternate;
}
.scn-afternoon-grounds-flora .ag-sky {
  position: absolute; top: 0; left: 0; right: 0; height: 50%;
  background: linear-gradient(180deg, #8ab8d0 0%, #c8e0f0 40%, #a0c8d8 100%);
  animation: ag-sky 20s ease-in-out infinite alternate;
}
.scn-afternoon-grounds-flora .ag-sun {
  position: absolute; top: 10%; right: 20%; width: 40px; height: 40px;
  background: radial-gradient(circle, #ffe080 0%, #f0c060 50%, #d0a040 100%);
  border-radius: 50%;
  box-shadow: 0 0 60px 30px rgba(240,192,96,0.4);
  animation: ag-sun 12s ease-in-out infinite alternate;
}
.scn-afternoon-grounds-flora .ag-tree {
  position: absolute; bottom: 20%; left: 10%; width: 60px; height: 120px;
  background: linear-gradient(180deg, #3a4a2a 0%, #2a3a1a 60%, #1a2a0a 100%);
  border-radius: 30% 30% 20% 20% / 40% 40% 30% 30%;
  box-shadow: 0 4px 8px rgba(0,0,0,0.4);
  animation: ag-tree 15s ease-in-out infinite;
}
.scn-afternoon-grounds-flora .ag-bush {
  position: absolute; bottom: 15%; left: 25%; width: 50px; height: 30px;
  background: linear-gradient(180deg, #5a7a3a 0%, #3a5a2a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  box-shadow: 30px 0 0 -5px #4a6a2a, 60px 5px 0 -8px #5a7a3a;
  animation: ag-bush 10s ease-in-out infinite alternate;
}
.scn-afternoon-grounds-flora .ag-flower {
  position: absolute; bottom: 12%; left: 35%; width: 6px; height: 12px;
  background: radial-gradient(circle, #d08860 0%, #a86840 100%);
  border-radius: 50%;
  box-shadow: 10px -2px 0 0 #c88050, 20px 1px 0 -1px #b87048;
  animation: ag-flower 4s ease-in-out infinite alternate;
}
.scn-afternoon-grounds-flora .ag-grass {
  position: absolute; bottom: 5%; left: 0; right: 0; height: 15%;
  background: repeating-linear-gradient(90deg, #4a6a2a 0px, #3a5a1a 2px, #5a7a3a 4px, #4a6a2a 6px);
  background-size: 6px 100%;
  animation: ag-grass 30s linear infinite;
}
.scn-afternoon-grounds-flora .ag-shadow {
  position: absolute; bottom: 10%; left: 20%; width: 100px; height: 20px;
  background: radial-gradient(ellipse, rgba(0,0,0,0.3) 0%, transparent 70%);
  border-radius: 50%;
  animation: ag-shadow 10s ease-in-out infinite alternate;
}
@keyframes ag-bg { 0% { opacity:0.8; } 50% { opacity:1; } 100% { opacity:0.9; } }
@keyframes ag-sky { 0% { background-position: 0 0; } 100% { background-position: 10% 10%; } }
@keyframes ag-sun { 0% { transform: scale(0.9); opacity:0.8; } 100% { transform: scale(1.1); opacity:1; } }
@keyframes ag-tree { 0%,100% { transform: translateY(0) rotate(-1deg); } 50% { transform: translateY(-2px) rotate(1deg); } }
@keyframes ag-bush { 0% { opacity:0.7; } 100% { opacity:1; transform: scale(1.02); } }
@keyframes ag-flower { 0% { opacity:0.6; transform: translateY(0); } 100% { opacity:1; transform: translateY(-2px); } }
@keyframes ag-grass { 0% { background-position: 0 0; } 100% { background-position: -100px 0; } }
@keyframes ag-shadow { 0% { opacity:0.3; transform: scaleX(0.8); } 100% { opacity:0.5; transform: scaleX(1.2); } }

.scn-mrs-griffin-riddle { background: linear-gradient(180deg, #2b1a0e 0%, #4a2a14 40%, #1e1008 100%), radial-gradient(ellipse at 50% 80%, #c07030 0%, transparent 60%); }
.scn-mrs-griffin-riddle .fireplace { position:absolute; bottom:10%; left:30%; width:180px; height:200px; background: linear-gradient(180deg, #5a3a20 0%, #3a2210 100%); border-radius: 10% 10% 4% 4% / 20% 20% 8% 8%; box-shadow: inset 0 -20px 30px rgba(0,0,0,.6); }
.scn-mrs-griffin-riddle .fire-glow { position:absolute; bottom:14%; left:38%; width:100px; height:120px; background: radial-gradient(ellipse, #ff8030 0%, #d05020 50%, transparent 80%); border-radius: 50%; filter: blur(12px); animation: mrg-fire 2.5s ease-in-out infinite alternate; }
.scn-mrs-griffin-riddle .figure { position:absolute; bottom:18%; left:44%; width:30px; height:80px; background: linear-gradient(180deg, #1a0e06 0%, #2a1a0e 60%, #1a0e06 100%); border-radius: 40% 40% 30% 30% / 70% 70% 50% 50%; transform-origin: bottom center; animation: mrg-fig 6s ease-in-out infinite; }
.scn-mrs-griffin-riddle .chair { position:absolute; bottom:10%; left:40%; width:70px; height:90px; background: linear-gradient(180deg, #2a1a0e 0%, #1a0e06 100%); border-radius: 10% 10% 20% 20% / 20% 20% 30% 30%; box-shadow: 0 4px 8px rgba(0,0,0,.5); }
.scn-mrs-griffin-riddle .mantel { position:absolute; bottom:60%; left:28%; width:220px; height:16px; background: linear-gradient(180deg, #6a4220 0%, #3a2210 100%); border-radius: 2px; box-shadow: 0 2px 6px rgba(0,0,0,.4); }
.scn-mrs-griffin-riddle .shadow { position:absolute; bottom:10%; left:30%; width:200px; height:100px; background: radial-gradient(ellipse at 50% 0%, rgba(0,0,0,.5) 0%, transparent 100%); transform:scaleY(0.6); animation: mrg-shadow 4s ease-in-out infinite alternate; }
.scn-mrs-griffin-riddle .ember-a { position:absolute; bottom:36%; left:42%; width:6px; height:6px; background: radial-gradient(circle, #ffd060 0%, #ff8030 80%); border-radius:50%; box-shadow: 0 0 10px 4px #ff8030; animation: mrg-ember-a 3s ease-in-out infinite; }
.scn-mrs-griffin-riddle .ember-b { position:absolute; bottom:30%; left:48%; width:4px; height:4px; background: radial-gradient(circle, #ffd080 0%, #c05020 80%); border-radius:50%; box-shadow: 0 0 8px 3px #c05020; animation: mrg-ember-b 4s ease-in-out infinite alternate; }
@keyframes mrg-fire { 0% { transform: scale(1) opacity(0.8); } 50% { transform: scale(1.05) scaleY(1.1) opacity(1); } 100% { transform: scale(0.95) opacity(0.7); } }
@keyframes mrg-fig { 0%,100% { transform: translateX(0) rotate(-2deg); } 25% { transform: translateX(2px) rotate(1deg); } 50% { transform: translateX(0) rotate(2deg); } 75% { transform: translateX(-2px) rotate(-1deg); } }
@keyframes mrg-shadow { 0% { opacity:0.6; } 100% { opacity:0.3; } }
@keyframes mrg-ember-a { 0% { transform: translate(0,0) scale(1); } 25% { transform: translate(8px,-6px) scale(0.8); } 50% { transform: translate(12px,-2px) scale(1.1); } 75% { transform: translate(6px,-8px) scale(0.9); } 100% { transform: translate(0,0) scale(1); } }
@keyframes mrg-ember-b { 0% { transform: translate(0,0) scale(1); } 50% { transform: translate(10px,-10px) scale(0.7); } 100% { transform: translate(0,0) scale(0.9); } }

.scn-last-story-incomplete { background: linear-gradient(180deg, #1a1410 0%, #2a2018 40%, #0e0a06 100%), radial-gradient(ellipse at 60% 40%, #c08040 0%, transparent 50%); }
.scn-last-story-incomplete .room-bg { position:absolute; inset:0; background: linear-gradient(180deg, #1e1814 0%, #0a0806 100%); }
.scn-last-story-incomplete .desk { position:absolute; bottom:20%; left:30%; width:180px; height:60px; background: linear-gradient(180deg, #3a2a1e 0%, #1a120c 100%); border-radius: 4px; box-shadow: 0 4px 10px rgba(0,0,0,.6); }
.scn-last-story-incomplete .candle { position:absolute; bottom:40%; left:40%; width:10px; height:40px; background: linear-gradient(180deg, #e0c8a0 0%, #c0a880 100%); border-radius: 20% 20% 10% 10% / 40% 40% 20% 20%; }
.scn-last-story-incomplete .candle-glow { position:absolute; bottom:42%; left:40%; width:50px; height:60px; background: radial-gradient(ellipse, #ffd880 0%, #d09040 60%, transparent 100%); filter: blur(8px); animation: lsi-glow 3s ease-in-out infinite alternate; }
.scn-last-story-incomplete .papers { position:absolute; bottom:22%; left:32%; width:60px; height:8px; background: linear-gradient(180deg, #f0e0c0 0%, #d0c0a0 100%); border-radius:1px; transform:rotate(-5deg); animation: lsi-paper 6s ease-in-out infinite; }
.scn-last-story-incomplete .figure { position:absolute; bottom:20%; left:35%; width:24px; height:60px; background: linear-gradient(180deg, #1a1410 0%, #0e0a06 100%); border-radius: 30% 30% 40% 40% / 60% 60% 50% 50%; transform-origin: bottom center; animation: lsi-fig 8s ease-in-out infinite; }
.scn-last-story-incomplete .shadow-cast { position:absolute; bottom:20%; left:30%; width:240px; height:80px; background: radial-gradient(ellipse at 50% 100%, rgba(0,0,0,.4) 0%, transparent 100%); animation: lsi-shadow 5s ease-in-out infinite alternate; }
@keyframes lsi-glow { 0% { opacity:0.7; transform:scale(1); } 50% { opacity:1; transform:scale(1.1); } 100% { opacity:0.8; transform:scale(0.9); } }
@keyframes lsi-paper { 0%,100% { transform:rotate(-5deg) translateY(0); } 50% { transform:rotate(-3deg) translateY(-2px); } }
@keyframes lsi-fig { 0%,100% { transform: translateY(0) rotate(-1deg); } 25% { transform: translateY(-2px) rotate(0); } 50% { transform: translateY(0) rotate(1deg); } 75% { transform: translateY(-1px) rotate(0); } }
@keyframes lsi-shadow { 0% { opacity:0.5; transform:scaleX(1); } 100% { opacity:0.8; transform:scaleX(1.05); } }

.scn-governess-answers-advertisement { background: linear-gradient(180deg, #1a1a24 0%, #2a2a3a 50%, #0e0e18 100%), radial-gradient(ellipse at 40% 50%, #3a3a4a 0%, transparent 60%); }
.scn-governess-answers-advertisement .wall { position:absolute; inset:0; background: repeating-linear-gradient(90deg, #2a2a3a 0px, #2a2a3a 2px, #3a3a4a 2px, #3a3a4a 4px); opacity:0.15; }
.scn-governess-answers-advertisement .door { position:absolute; bottom:10%; left:35%; width:120px; height:200px; background: linear-gradient(180deg, #3a3a4a 0%, #2a2a3a 100%); border-radius: 4% 4% 2% 2% / 10% 10% 4% 4%; box-shadow: inset 0 0 20px rgba(0,0,0,.6); }
.scn-governess-answers-advertisement .gentleman { position:absolute; bottom:14%; left:38%; width:28px; height:80px; background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%); border-radius: 40% 40% 35% 35% / 70% 70% 50% 50%; transform-origin: bottom center; animation: gaa-fig 4s ease-in-out infinite; }
.scn-governess-answers-advertisement .window-high { position:absolute; top:5%; left:55%; width:60px; height:70px; background: linear-gradient(180deg, #4a4a5a 20%, #2a2a3a 100%); border-radius: 8% 8% 4% 4%; box-shadow: inset 0 0 10px rgba(200,200,220,.3); }
.scn-governess-answers-advertisement .light-shaft { position:absolute; top:5%; left:55%; width:60px; height:300px; background: linear-gradient(180deg, rgba(180,180,200,0.2) 0%, transparent 100%); transform-origin: top; animation: gaa-shaft 8s ease-in-out infinite alternate; }
.scn-governess-answers-advertisement .shadow-dark { position:absolute; bottom:10%; left:35%; width:200px; height:120px; background: radial-gradient(ellipse at 50% 100%, rgba(0,0,0,.5) 0%, transparent 100%); animation: gaa-shadow 5s ease-in-out infinite alternate; }
.scn-governess-answers-advertisement .chair { position:absolute; bottom:10%; left:20%; width:50px; height:70px; background: linear-gradient(180deg, #3a3a4a 0%, #2a2a3a 100%); border-radius: 10% 10% 30% 30% / 20% 20% 40% 40%; box-shadow: 0 4px 8px rgba(0,0,0,.4); }
@keyframes gaa-fig { 0%,100% { transform: translateX(0) rotate(0); } 25% { transform: translateX(1px) rotate(-1deg); } 50% { transform: translateX(0) rotate(1deg); } 75% { transform: translateX(-1px) rotate(0); } }
@keyframes gaa-shaft { 0% { opacity:0.3; transform: scaleY(1); } 50% { opacity:0.8; transform: scaleY(1.05); } 100% { opacity:0.4; transform: scaleY(0.95); } }
@keyframes gaa-shadow { 0% { opacity:0.6; transform:scaleY(1); } 100% { opacity:0.3; transform:scaleY(1.1); } }

.scn-handsome-bold-suitor { background: linear-gradient(180deg, #f0e8d8 0%, #e8dcc8 50%, #d8c8b0 100%), radial-gradient(ellipse at 50% 60%, #faf0e0 0%, transparent 60%); }
.scn-handsome-bold-suitor .parlour-wall { position:absolute; inset:0; background: repeating-linear-gradient(90deg, #e8dcc8 0px, #e8dcc8 6px, #f0e8d8 6px, #f0e8d8 8px); opacity:0.1; }
.scn-handsome-bold-suitor .window { position:absolute; top:10%; right:10%; width:100px; height:160px; background: linear-gradient(180deg, #c0d8e8 0%, #a0b8c8 100%); border-radius: 4% 4% 2% 2% / 8% 8% 4% 4%; box-shadow: inset 0 0 20px rgba(255,255,255,0.3); animation: hbs-window 6s ease-in-out infinite alternate; }
.scn-handsome-bold-suitor .curtains { position:absolute; top:10%; right:10%; width:120px; height:180px; background: linear-gradient(180deg, #b87878 0%, #a06262 100%); border-radius: 8% 8% 10% 10% / 20% 20% 30% 30%; opacity:0.8; }
.scn-handsome-bold-suitor .suitor { position:absolute; bottom:18%; left:30%; width:34px; height:90px; background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%); border-radius: 30% 30% 40% 40% / 60% 60% 50% 50%; transform-origin: bottom center; animation: hbs-fig1 4s ease-in-out infinite; }
.scn-handsome-bold-suitor .lady { position:absolute; bottom:18%; left:48%; width:28px; height:80px; background: linear-gradient(180deg, #3a2a3a 0%, #2a1a2a 100%); border-radius: 35% 35% 40% 40% / 65% 65% 50% 50%; animation: hbs-fig2 4s ease-in-out infinite 0.5s; }
.scn-handsome-bold-suitor .rug { position:absolute; bottom:10%; left:20%; width:200px; height:20px; background: linear-gradient(90deg, #c8553d 0%, #a0461a 30%, #702243 70%, #c8553d 100%); border-radius: 50% / 100% 100% 0 0; }
.scn-handsome-bold-suitor .table { position:absolute; bottom:14%; left:40%; width:40px; height:50px; background: linear-gradient(180deg, #6a5a4a 0%, #4a3a2a 100%); border-radius: 10% 10% 4% 4%; }
.scn-handsome-bold-suitor .vase { position:absolute; bottom:20%; left:42%; width:8px; height:20px; background: linear-gradient(180deg, #e0c8a0 0%, #c0a880 100%); border-radius: 20% 20% 10% 10% / 30% 30% 20% 20%; }
@keyframes hbs-window { 0% { opacity:0.9; } 50% { opacity:1; } 100% { opacity:0.8; } }
@keyframes hbs-fig1 { 0%,100% { transform: translateX(0) rotate(-1deg); } 25% { transform: translateX(2px) rotate(0); } 50% { transform: translateX(0) rotate(1deg); } 75% { transform: translateX(-2px) rotate(0); } }
@keyframes hbs-fig2 { 0%,100% { transform: translateX(0) rotate(1deg); } 25% { transform: translateX(-2px) rotate(0); } 50% { transform: translateX(0) rotate(-1deg); } 75% { transform: translateX(2px) rotate(0); } }

/* name-utterance */
.scn-name-utterance {
  background: linear-gradient(180deg, #0e0a1a 0%, #1a142e 40%, #2a1a3a 70%, #0e0a1a 100%),
              radial-gradient(ellipse at 50% 30%, #2a1a4a 0%, transparent 60%);
}
.scn-name-utterance .bg { position:absolute; inset:0; background: linear-gradient(135deg, #0e0a1a 0%, #1a142e 100%); }
.scn-name-utterance .wall-shadow { position:absolute; top:0; left:0; right:0; bottom:40%; background: radial-gradient(ellipse at 30% 50%, rgba(0,0,0,.6) 0%, transparent 70%); }
.scn-name-utterance .figure { position:absolute; bottom:20%; left:50%; width:60px; height:90px; transform:translateX(-50%); background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 60%, #0a0a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; box-shadow: 0 0 20px rgba(0,0,0,.5); animation: nu-figure 6s ease-in-out infinite; }
.scn-name-utterance .arms { position:absolute; bottom:38%; left:50%; width:80px; height:20px; transform:translateX(-50%); background: linear-gradient(90deg, transparent 0%, #2a2a3a 20%, #2a2a3a 80%, transparent 100%); border-radius: 40% 40% 20% 20%; animation: nu-arms 2s ease-in-out infinite alternate; }
.scn-name-utterance .mouth { position:absolute; bottom:42%; left:50%; width:14px; height:6px; transform:translateX(-50%); background: #3a2a2a; border-radius: 50% 50% 0 0; animation: nu-mouth 4s ease-in-out infinite; }
.scn-name-utterance .echo { position:absolute; bottom:60%; left:50%; width:20px; height:20px; background: radial-gradient(circle, rgba(180,160,200,.3) 0%, transparent 70%); border-radius:50%; opacity:0; animation: nu-echo 8s ease-out infinite; }
.scn-name-utterance .echo-a { animation-delay:0s; }
.scn-name-utterance .echo-b { animation-delay:2.5s; }
.scn-name-utterance .window { position:absolute; top:12%; left:70%; width:40px; height:60px; background: linear-gradient(180deg, #2a1a1a 0%, #1a0a0a 100%); border:2px solid #3a2a2a; border-radius:4px; box-shadow: inset 0 0 10px rgba(100,80,60,.3); animation: nu-window 10s ease-in-out infinite alternate; }
.scn-name-utterance .floor { position:absolute; bottom:0; left:0; right:0; height:20%; background: linear-gradient(180deg, #1a1224 0%, #0e0a1a 100%); }
@keyframes nu-figure {
  0% { transform: translateX(-50%) rotate(0deg); }
  25% { transform: translateX(-50%) rotate(-3deg); }
  50% { transform: translateX(-50%) rotate(1deg); }
  75% { transform: translateX(-50%) rotate(-2deg); }
  100% { transform: translateX(-50%) rotate(0deg); }
}
@keyframes nu-arms {
  0% { transform: translateX(-50%) rotate(-20deg) scaleY(1); }
  50% { transform: translateX(-50%) rotate(20deg) scaleY(1.2); }
  100% { transform: translateX(-50%) rotate(-20deg) scaleY(1); }
}
@keyframes nu-mouth {
  0% { transform: translateX(-50%) scaleX(1) scaleY(1); }
  25% { transform: translateX(-50%) scaleX(1.6) scaleY(1.2); }
  50% { transform: translateX(-50%) scaleX(1) scaleY(0.8); }
  75% { transform: translateX(-50%) scaleX(1.4) scaleY(1); }
  100% { transform: translateX(-50%) scaleX(1) scaleY(1); }
}
@keyframes nu-echo {
  0% { opacity:0; transform: translate(-50%,0) scale(0.2); }
  20% { opacity:1; transform: translate(-50%,-20px) scale(1); }
  100% { opacity:0; transform: translate(-50%,-60px) scale(2); }
}
@keyframes nu-window {
  0% { opacity:.6; box-shadow: inset 0 0 5px rgba(100,80,60,.2); }
  50% { opacity:1; box-shadow: inset 0 0 20px rgba(120,100,80,.5); }
  100% { opacity:.7; box-shadow: inset 0 0 8px rgba(100,80,60,.3); }
}

/* self-reproach */
.scn-self-reproach {
  background: linear-gradient(180deg, #0e0a18 0%, #1a1428 50%, #2a1e32 100%),
              radial-gradient(ellipse at 50% 70%, #2a1a30 0%, transparent 70%);
}
.scn-self-reproach .bg { position:absolute; inset:0; background: linear-gradient(135deg, #0a0812 0%, #1a1428 100%); }
.scn-self-reproach .figure { position:absolute; bottom:15%; left:50%; width:70px; height:100px; transform:translateX(-50%); background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 60%, #0a0a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: sr-figure 8s ease-in-out infinite; }
.scn-self-reproach .hands { position:absolute; bottom:40%; left:50%; width:40px; height:30px; transform:translateX(-50%); background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%); border-radius: 50% 50% 40% 40%; box-shadow: 0 4px 8px rgba(0,0,0,.4); animation: sr-hands 4s ease-in-out infinite alternate; }
.scn-self-reproach .blush { position:absolute; bottom:35%; left:50%; width:30px; height:20px; transform:translateX(-50%); background: radial-gradient(ellipse, #c8553d 0%, transparent 70%); opacity:.6; animation: sr-blush 6s ease-in-out infinite; }
.scn-self-reproach .shadow { position:absolute; bottom:0; left:30%; width:60%; height:50%; background: linear-gradient(180deg, transparent 0%, rgba(0,0,0,.3) 100%); border-radius: 50% 50% 0 0; transform-origin: bottom; animation: sr-shadow 10s ease-in-out infinite alternate; }
.scn-self-reproach .floor { position:absolute; bottom:0; left:0; right:0; height:15%; background: linear-gradient(180deg, #1a1224 0%, #0e0a1a 100%); }
.scn-self-reproach .wall { position:absolute; top:0; left:0; right:0; bottom:40%; background: linear-gradient(180deg, #1a1428 0%, #0e0a18 100%); }
@keyframes sr-figure {
  0% { transform: translateX(-50%) rotate(0deg); }
  25% { transform: translateX(-50%) rotate(-1deg) translateY(2px); }
  50% { transform: translateX(-50%) rotate(0deg) translateY(0); }
  75% { transform: translateX(-50%) rotate(1deg) translateY(1px); }
  100% { transform: translateX(-50%) rotate(0deg); }
}
@keyframes sr-hands {
  0% { transform: translateX(-50%) translateY(0) scale(1); }
  50% { transform: translateX(-50%) translateY(-5px) scale(1.05); }
  100% { transform: translateX(-50%) translateY(2px) scale(0.95); }
}
@keyframes sr-blush {
  0% { opacity:.4; }
  30% { opacity:.8; }
  60% { opacity:.5; }
  100% { opacity:.4; }
}
@keyframes sr-shadow {
  0% { transform: scaleX(1); }
  50% { transform: scaleX(1.1); }
  100% { transform: scaleX(0.95); }
}

/* outsiders-presence */
.scn-outsiders-presence {
  background: linear-gradient(180deg, #0e0a1a 0%, #1a142e 40%, #2a1a3e 80%, #0e0a1a 100%),
              radial-gradient(ellipse at 50% 50%, #2a1a4a 0%, transparent 60%);
}
.scn-outsiders-presence .bg { position:absolute; inset:0; background: linear-gradient(135deg, #0e0a1a 0%, #1a142e 100%); }
.scn-outsiders-presence .child { position:absolute; bottom:18%; left:50%; width:40px; height:60px; transform:translateX(-50%); background: linear-gradient(180deg, #1a1a2a 0%, #0e0e1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: op-child 5s ease-in-out infinite; }
.scn-outsiders-presence .outsider { position:absolute; bottom:10%; width:50px; height:120px; background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%); border-radius: 40% 40% 30% 30%; animation: op-outsider 10s ease-in-out infinite; }
.scn-outsiders-presence .outsider-1 { left:12%; transform-origin: bottom center; animation-delay:0s; }
.scn-outsiders-presence .outsider-2 { left:35%; transform-origin: bottom center; animation-delay:-3s; }
.scn-outsiders-presence .outsider-3 { right:15%; transform-origin: bottom center; animation-delay:-6s; }
.scn-outsiders-presence .aura { position:absolute; top:10%; left:20%; right:20%; bottom:30%; background: radial-gradient(ellipse at 50% 50%, rgba(80,60,120,.15) 0%, transparent 70%); animation: op-aura 8s ease-in-out infinite alternate; }
.scn-outsiders-presence .floor { position:absolute; bottom:0; left:0; right:0; height:15%; background: linear-gradient(180deg, #1a1224 0%, #0e0a1a 100%); }
.scn-outsiders-presence .shadow-cluster { position:absolute; bottom:0; left:0; right:0; height:40%; background: linear-gradient(180deg, transparent 0%, rgba(0,0,0,.4) 100%); }
@keyframes op-child {
  0% { transform: translateX(-50%) scale(1); }
  25% { transform: translateX(-50%) scale(1.02) translateY(-1px); }
  50% { transform: translateX(-50%) scale(0.98); }
  75% { transform: translateX(-50%) scale(1.01); }
  100% { transform: translateX(-50%) scale(1); }
}
@keyframes op-outsider {
  0% { transform: rotate(0deg) scaleY(1); }
  25% { transform: rotate(2deg) scaleY(1.05); }
  50% { transform: rotate(-1deg) scaleY(0.95); }
  75% { transform: rotate(3deg) scaleY(1.02); }
  100% { transform: rotate(0deg) scaleY(1); }
}
@keyframes op-aura {
  0% { opacity:.3; }
  50% { opacity:.7; }
  100% { opacity:.2; }
}

/* cruel-idea */
.scn-cruel-idea {
  background: linear-gradient(180deg, #0e0a1a 0%, #1a142e 50%, #2a1a3a 100%),
              radial-gradient(ellipse at 50% 40%, #2a1a3e 0%, transparent 70%);
}
.scn-cruel-idea .bg { position:absolute; inset:0; background: linear-gradient(135deg, #0e0a1a 0%, #1a142e 100%); }
.scn-cruel-idea .child { position:absolute; bottom:22%; width:35px; height:50px; background: linear-gradient(180deg, #1a1a2a 0%, #0e0e1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: ci-child 7s ease-in-out infinite; }
.scn-cruel-idea .child-left { left:35%; animation-delay:0s; }
.scn-cruel-idea .child-right { right:35%; animation-delay:-3.5s; }
.scn-cruel-idea .shadow-monster { position:absolute; bottom:5%; left:20%; right:20%; height:70%; background: linear-gradient(180deg, transparent 0%, #0a0a1a 40%, #0a0a1a 100%); border-radius: 40% 40% 20% 20%; transform-origin: bottom; animation: ci-monster 12s ease-in-out infinite alternate; }
.scn-cruel-idea .window { position:absolute; top:10%; left:70%; width:30px; height:50px; background: linear-gradient(180deg, #2a1a1a 0%, #1a0a0a 100%); border:2px solid #3a2a2a; border-radius:4px; animation: ci-window 8s linear infinite; }
.scn-cruel-idea .floor { position:absolute; bottom:0; left:0; right:0; height:20%; background: linear-gradient(180deg, #1a1224 0%, #0e0a1a 100%); }
.scn-cruel-idea .thought-shape { position:absolute; top:20%; left:50%; width:60px; height:60px; transform:translateX(-50%); background: radial-gradient(ellipse, rgba(100,80,140,.2) 0%, transparent 70%); border-radius: 50% 50% 40% 40%; animation: ci-thought 10s ease-in-out infinite; }
@keyframes ci-child {
  0% { transform: translateY(0) rotate(0deg); }
  25% { transform: translateY(-2px) rotate(-2deg); }
  50% { transform: translateY(0) rotate(0deg); }
  75% { transform: translateY(-1px) rotate(1deg); }
  100% { transform: translateY(0) rotate(0deg); }
}
@keyframes ci-monster {
  0% { transform: scaleY(1) scaleX(1); opacity:.8; }
  50% { transform: scaleY(1.05) scaleX(1.02); opacity:1; }
  100% { transform: scaleY(0.95) scaleX(0.98); opacity:.7; }
}
@keyframes ci-window {
  0% { opacity:.4; }
  20% { opacity:1; }
  40% { opacity:.5; }
  60% { opacity:.9; }
  80% { opacity:.4; }
  100% { opacity:.4; }
}
@keyframes ci-thought {
  0% { transform: translateX(-50%) scale(0.8); opacity:.3; }
  50% { transform: translateX(-50%) scale(1.2); opacity:.6; }
  100% { transform: translateX(-50%) scale(0.8); opacity:.3; }
}

.scn-caught-at-dozen-possibilities {
  background: linear-gradient(180deg, #1a1a2e 0%, #2c2a44 40%, #3a3050 100%), radial-gradient(ellipse at 70% 80%, #2a2040 0%, transparent 60%);
}
.scn-caught-at-dozen-possibilities .floor      { position:absolute; bottom:0; left:0; right:0; height:30%; background: linear-gradient(180deg, #3a2a2a 0%, #1a1010 100%); box-shadow: inset 0 10px 20px rgba(0,0,0,.6); }
.scn-caught-at-dozen-possibilities .wall-left   { position:absolute; top:0; left:0; bottom:30%; width:35%; background: linear-gradient(180deg, #2a2240 0%, #1a1430 100%); transform: skewY(2deg) scaleX(0.9); box-shadow: inset -8px 0 12px rgba(0,0,0,.5); }
.scn-caught-at-dozen-possibilities .wall-right  { position:absolute; top:0; right:0; bottom:30%; width:35%; background: linear-gradient(180deg, #2a2240 0%, #1a1430 100%); transform: skewY(-2deg) scaleX(0.9); box-shadow: inset 8px 0 12px rgba(0,0,0,.5); }
.scn-caught-at-dozen-possibilities .door        { position:absolute; top:10%; bottom:30%; width:12%; background: #0e0a1a; border-radius: 4% 4% 0 0; box-shadow: inset 0 0 20px rgba(0,0,0,.8); }
.scn-caught-at-dozen-possibilities .door.one    { left:10%; }
.scn-caught-at-dozen-possibilities .door.two    { left:43%; }
.scn-caught-at-dozen-possibilities .door.three  { right:10%; }
.scn-caught-at-dozen-possibilities .figure      { position:absolute; bottom:30%; left:50%; width:24px; height:50px; transform:translateX(-50%); background: linear-gradient(180deg, #2a2a3e 0%, #0a0a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: cad-fig 5s ease-in-out infinite; }
.scn-caught-at-dozen-possibilities .lamp        { position:absolute; bottom:32%; left:50%; width:10px; height:12px; transform:translateX(-50%); background: radial-gradient(circle, #d0a050 0%, #805020 70%); border-radius: 30%; box-shadow: 0 0 30px 8px rgba(208,160,80,.4); animation: cad-lamp 4s ease-in-out infinite alternate; }
.scn-caught-at-dozen-possibilities .shadow      { position:absolute; bottom:30%; left:40%; right:40%; height:8px; background: radial-gradient(ellipse, rgba(0,0,0,.6) 0%, transparent 70%); transform: translateY(10px); animation: cad-shadow 5s ease-in-out infinite; }
@keyframes cad-fig    { 0%,100% { transform:translateX(-50%) rotate(-1deg); } 50% { transform:translateX(-50%) translateY(-3px) rotate(1deg); } }
@keyframes cad-lamp   { 0% { opacity:.7; box-shadow: 0 0 20px 4px rgba(208,160,80,.3); } 50% { opacity:1; box-shadow: 0 0 40px 12px rgba(208,160,80,.6); } 100% { opacity:.8; box-shadow: 0 0 25px 6px rgba(208,160,80,.4); } }
@keyframes cad-shadow { 0%,100% { opacity:.3; transform: scaleX(1); } 50% { opacity:.5; transform: scaleX(0.9) translateY(5px); } }

.scn-no-hat-visitant {
  background: linear-gradient(180deg, #1b1b3a 0%, #2c2850 30%, #4a3860 60%, #6a5060 80%, #806060 100%);
}
.scn-no-hat-visitant .sky-dusk        { position:absolute; inset:0 0 40% 0; background: linear-gradient(180deg, #2a2a5e 0%, #4a4870 50%, #908070 100%); animation: nhv-sky 12s ease-in-out infinite alternate; }
.scn-no-hat-visitant .horizon-line    { position:absolute; bottom:40%; left:0; right:0; height:4px; background: #6a5a4a; box-shadow: 0 0 8px 2px rgba(106,90,74,.5); }
.scn-no-hat-visitant .grass-fg        { position:absolute; bottom:0; left:0; right:0; height:40%; background: linear-gradient(180deg, #2a3a2a 0%, #1a2a1a 100%); border-radius: 60% 40% 0 0 / 100% 80% 0 0; }
.scn-no-hat-visitant .figure-left     { position:absolute; bottom:38%; left:20%; width:22px; height:46px; background: linear-gradient(180deg, #1a1a2e 0%, #0a0a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: nhv-fig-l 4s ease-in-out infinite; }
.scn-no-hat-visitant .figure-right    { position:absolute; bottom:38%; right:20%; width:22px; height:46px; background: linear-gradient(180deg, #1a1a2e 0%, #0a0a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: nhv-fig-r 4s ease-in-out infinite; }
.scn-no-hat-visitant .tree-silhouette { position:absolute; bottom:20%; left:55%; width:60px; height:120px; background: linear-gradient(180deg, #0a0a1a 0%, #000 100%); border-radius: 40% 60% 0 0 / 80% 70% 0 0; filter: blur(2px); opacity:.7; }
@keyframes nhv-sky   { 0% { opacity:.6; } 50% { opacity:.9; } 100% { opacity:.7; } }
@keyframes nhv-fig-l { 0%,100% { transform: translateY(0) rotate(-2deg); } 50% { transform: translateY(-4px) rotate(2deg); } }
@keyframes nhv-fig-r { 0%,100% { transform: translateY(0) rotate(2deg); } 50% { transform: translateY(-4px) rotate(-2deg); } }

.scn-transit-to-other-corner {
  background: linear-gradient(180deg, #0e0e2a 0%, #1a1a44 30%, #2a2a5e 100%), radial-gradient(ellipse at 60% 100%, #1a1a3a 0%, transparent 70%);
}
.scn-transit-to-other-corner .sky-dark       { position:absolute; inset:0 0 50% 0; background: linear-gradient(180deg, #0a0a2e 0%, #1a1a4e 100%); }
.scn-transit-to-other-corner .battlement     { position:absolute; bottom:55%; left:10%; right:50%; height:8%; background: #1a1a2a; border-radius: 0 0 10% 10%; box-shadow: 0 -4px 12px rgba(0,0,0,.5); }
.scn-transit-to-other-corner .wall-stone     { position:absolute; bottom:30%; left:10%; right:50%; height:25%; background: linear-gradient(180deg, #2a2a3e 0%, #1a1a2a 100%); border-radius: 0 0 20% 20%; }
.scn-transit-to-other-corner .figure-walker  { position:absolute; bottom:57%; left:15%; width:18px; height:36px; background: #0a0a1a; border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: ttc-walk 4s ease-in-out infinite; }
.scn-transit-to-other-corner .figure-watcher { position:absolute; bottom:57%; right:20%; width:18px; height:36px; background: #0a0a1a; border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform: scaleX(-1); animation: ttc-watch 6s ease-in-out infinite; }
.scn-transit-to-other-corner .lantern-on-wall{ position:absolute; bottom:58%; left:30%; width:8px; height:10px; background: radial-gradient(circle, #d0a050 0%, #805020 70%); border-radius: 20%; box-shadow: 0 0 20px 6px rgba(208,160,80,.5); animation: ttc-lantern 3s ease-in-out infinite alternate; }
@keyframes ttc-walk    { 0% { transform: translateX(0) translateY(0) rotate(0); } 25% { transform: translateX(20px) translateY(-2px) rotate(2deg); } 50% { transform: translateX(40px) translateY(0) rotate(0); } 75% { transform: translateX(60px) translateY(-2px) rotate(-2deg); } 100% { transform: translateX(80px) translateY(0) rotate(0); } }
@keyframes ttc-watch   { 0%,100% { transform: scaleX(-1) translateY(0); } 50% { transform: scaleX(-1) translateY(-3px); } }
@keyframes ttc-lantern { 0% { opacity:.6; box-shadow: 0 0 12px 3px rgba(208,160,80,.3); } 50% { opacity:1; box-shadow: 0 0 28px 8px rgba(208,160,80,.6); } 100% { opacity:.8; box-shadow: 0 0 18px 5px rgba(208,160,80,.4); } }

.scn-mystery-of-udolpho {
  background: linear-gradient(180deg, #0a0a0f 0%, #121218 50%, #1a1a24 100%), radial-gradient(ellipse at 30% 70%, #1a1a2a 0%, transparent 80%);
}
.scn-mystery-of-udolpho .darkness       { position:absolute; inset:0; background: #0a0a12; }
.scn-mystery-of-udolpho .wall-texture   { position:absolute; bottom:20%; left:10%; right:10%; top:30%; background: repeating-linear-gradient(90deg, #1a1a22 0px, #1a1a22 8px, #22222e 8px, #22222e 10px); opacity:.5; }
.scn-mystery-of-udolpho .lantern        { position:absolute; top:20%; left:30%; width:14px; height:18px; background: radial-gradient(circle, #c0a060 0%, #805020 70%); border-radius: 20%; box-shadow: 0 0 40px 12px rgba(192,160,96,.4); animation: mou-lantern 5s ease-in-out infinite alternate; }
.scn-mystery-of-udolpho .light-cone     { position:absolute; top:28%; left:28%; width:20%; height:50%; background: linear-gradient(180deg, rgba(192,160,96,.15) 0%, transparent 100%); clip-path: polygon(50% 0%, 0% 100%, 100% 100%); filter: blur(6px); }
.scn-mystery-of-udolpho .hand           { position:absolute; bottom:30%; left:45%; width:20px; height:30px; background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform: rotate(10deg); animation: mou-hand 6s ease-in-out infinite; }
.scn-mystery-of-udolpho .shadow-figure  { position:absolute; bottom:10%; right:15%; width:30px; height:60px; background: #0a0a12; border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; filter: blur(4px); opacity:.6; }
@keyframes mou-lantern { 0% { opacity:.5; box-shadow: 0 0 20px 6px rgba(192,160,96,.2); } 50% { opacity:1; box-shadow: 0 0 60px 20px rgba(192,160,96,.6); } 100% { opacity:.7; box-shadow: 0 0 30px 10px rgba(192,160,96,.35); } }
@keyframes mou-hand    { 0%,100% { transform: rotate(10deg) translateY(0); } 50% { transform: rotate(5deg) translateY(-2px); } }

.scn-last-governess-was-young { background: linear-gradient(180deg, #fef7e0 0%, #f5e6c8 60%, #dcc8a0 100%), radial-gradient(ellipse at 80% 60%, #fff5e0 0%, transparent 70%); }
.scn-last-governess-was-young .wall { position:absolute; inset:0 0 0 0; background: linear-gradient(135deg, #f5e8d5 0%, #e6d4b8 100%); }
.scn-last-governess-was-young .window-frame { position:absolute; left:20%; top:10%; width:50%; height:60%; border:12px solid #8b7355; border-radius:8px; background: transparent; box-shadow: inset 0 0 0 4px #6b5a3e; }
.scn-last-governess-was-young .window-light { position:absolute; left:calc(20% + 16px); top:calc(10% + 16px); width:calc(50% - 32px); height:calc(60% - 32px); background: linear-gradient(180deg, #d8e8ff 0%, #b0ccff 100%); animation: lgy-sky 18s ease-in-out infinite alternate; }
.scn-last-governess-was-young .curtain-l { position:absolute; left:20%; top:10%; width:30%; height:60%; background: linear-gradient(90deg, rgba(140,110,80,0.7) 0%, rgba(200,170,140,0.3) 100%); border-radius: 0 20px 20px 0; transform-origin: left; animation: lgy-curtain 12s ease-in-out infinite; }
.scn-last-governess-was-young .curtain-r { position:absolute; right:20%; top:10%; width:30%; height:60%; background: linear-gradient(270deg, rgba(140,110,80,0.7) 0%, rgba(200,170,140,0.3) 100%); border-radius: 20px 0 0 20px; animation: lgy-curtain 12s ease-in-out infinite reverse; }
.scn-last-governess-was-young .figure-gov { position:absolute; bottom:15%; left:40%; width:24px; height:60px; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: lgy-figure 6s ease-in-out infinite alternate; }
.scn-last-governess-was-young .chair { position:absolute; bottom:15%; left:40%; width:20px; height:25px; margin-left: -15px; background: linear-gradient(180deg, #5c4a2e 0%, #3e2e1a 100%); border-radius: 10% 10% 20% 20%; transform: translateY(-20px); animation: lgy-chair 8s ease-in-out infinite; }
@keyframes lgy-sky { 0% { opacity:0.6; filter: brightness(1) } 50% { opacity:0.9; filter: brightness(1.1) } 100% { opacity:0.7; filter: brightness(0.95) } }
@keyframes lgy-curtain { 0% { transform: scaleX(1) } 25% { transform: scaleX(0.95) } 50% { transform: scaleX(1) } 75% { transform: scaleX(1.02) } 100% { transform: scaleX(1) } }
@keyframes lgy-figure { 0% { transform: translateY(0) rotate(0deg) } 33% { transform: translateY(-2px) rotate(2deg) } 66% { transform: translateY(0) rotate(-2deg) } 100% { transform: translateY(0) rotate(0deg) } }
@keyframes lgy-chair { 0%,100% { transform: translateY(-20px) scale(1) } 50% { transform: translateY(-22px) scale(1.01) } }

.scn-of-whom-did-you-speak { background: linear-gradient(180deg, #faf0dc 0%, #f0e1c8 50%, #e0cba8 100%), radial-gradient(ellipse at 60% 80%, #fff5e0 0%, transparent 60%); }
.scn-of-whom-did-you-speak .floor { position:absolute; bottom:0; left:0; right:0; height:25%; background: linear-gradient(0deg, #806040 0%, #a08060 100%); }
.scn-of-whom-did-you-speak .wall-ow { position:absolute; inset:0 0 25% 0; background: linear-gradient(135deg, #f5e6d0 0%, #e6d0b0 100%); }
.scn-of-whom-did-you-speak .shadow-ow { position:absolute; left:0; bottom:25%; width:100%; height:40%; background: linear-gradient(180deg, rgba(80,60,40,0.1) 0%, rgba(80,60,40,0.3) 100%); animation: ows-shadow 4s ease-in-out infinite alternate; }
.scn-of-whom-did-you-speak .figure-a { position:absolute; bottom:25%; left:30%; width:28px; height:65px; background: linear-gradient(180deg, #3a2a1a 0%, #1a0a00 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: ows-figure-a 3s ease-in-out infinite alternate; }
.scn-of-whom-did-you-speak .figure-b { position:absolute; bottom:25%; left:50%; width:30px; height:70px; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform: translateX(-15px); animation: ows-figure-b 4s ease-in-out infinite alternate; }
.scn-of-whom-did-you-speak .door { position:absolute; left:70%; bottom:25%; width:50px; height:60%; background: linear-gradient(180deg, #604020 0%, #402010 100%); border-radius: 8% 8% 0 0; border: 2px solid #2a1a0a; box-shadow: inset 0 0 20px rgba(0,0,0,0.4); }
.scn-of-whom-did-you-speak .crack { position:absolute; left:73%; bottom:35%; width:2px; height:20%; background: #1a1008; animation: ows-crack 5s ease-in-out infinite; }
@keyframes ows-shadow { 0% { opacity:0.3 } 50% { opacity:0.5 } 100% { opacity:0.2 } }
@keyframes ows-figure-a { 0% { transform: translateY(0) rotate(0deg) } 25% { transform: translateY(-1px) rotate(2deg) } 50% { transform: translateY(0) rotate(-2deg) } 75% { transform: translateY(-1px) rotate(1deg) } 100% { transform: translateY(0) rotate(0deg) } }
@keyframes ows-figure-b { 0% { transform: translateY(0) translateX(-15px) rotate(0deg) } 33% { transform: translateY(-1px) translateX(-14px) rotate(-1deg) } 66% { transform: translateY(0) translateX(-16px) rotate(1deg) } 100% { transform: translateY(0) translateX(-15px) rotate(0deg) } }
@keyframes ows-crack { 0%,100% { opacity:0.4 } 50% { opacity:0.8 } }

.scn-careful-particular-governess { background: linear-gradient(180deg, #fdf3e8 0%, #f0e0cc 50%, #ddc8ad 100%), radial-gradient(ellipse at 50% 60%, #fff8ee 0%, transparent 70%); }
.scn-careful-particular-governess .bg-desk { position:absolute; inset:0 0 0 0; background: linear-gradient(135deg, #e8dcc8 0%, #d4c4a8 100%); }
.scn-careful-particular-governess .desk-top { position:absolute; bottom:20%; left:15%; right:15%; height:30%; background: linear-gradient(180deg, #8b6b48 0%, #6b4b28 100%); border-radius: 4% 4% 0 0; box-shadow: 0 8px 16px rgba(0,0,0,0.3); }
.scn-careful-particular-governess .paper { position:absolute; bottom:35%; left:35%; width:60px; height:40px; background: linear-gradient(135deg, #faf0e0 0%, #f0e0c0 100%); border: 1px solid #b09878; transform: rotate(-5deg); border-radius: 2px; animation: cpg-paper 6s ease-in-out infinite; }
.scn-careful-particular-governess .hand { position:absolute; bottom:40%; left:40%; width:14px; height:24px; background: linear-gradient(180deg, #dbb8a0 0%, #c09070 100%); border-radius: 30% 30% 50% 50% / 40% 40% 60% 60%; transform-origin: bottom; animation: cpg-hand 3s ease-in-out infinite alternate; }
.scn-careful-particular-governess .lamp { position:absolute; right:18%; bottom:40%; width:16px; height:40px; background: linear-gradient(180deg, #c0a080 0%, #a08060 100%); border-radius: 40% 40% 10% 10%; }
.scn-careful-particular-governess .lamp-glow { position:absolute; right:18%; bottom:40%; width:60px; height:60px; background: radial-gradient(circle, #ffe080 0%, rgba(255,224,128,0.2) 60%, transparent 100%); border-radius: 50%; transform: translate(-20px, -20px); animation: cpg-glow 4s ease-in-out infinite alternate; }
.scn-careful-particular-governess .window-cpg { position:absolute; left:5%; top:5%; width:25%; height:70%; background: linear-gradient(180deg, #c0d8ff 0%, #a0b8e0 100%); border-radius: 4px; border: 6px solid #8b7355; opacity:0.6; animation: cpg-window 10s linear infinite alternate; }
@keyframes cpg-paper { 0% { transform: rotate(-5deg) translateY(0) } 25% { transform: rotate(-3deg) translateY(-2px) } 50% { transform: rotate(-6deg) translateY(0) } 75% { transform: rotate(-4deg) translateY(-1px) } 100% { transform: rotate(-5deg) translateY(0) } }
@keyframes cpg-hand { 0% { transform: rotate(0deg) translateY(0) } 33% { transform: rotate(8deg) translateY(-2px) } 66% { transform: rotate(-3deg) translateY(0) } 100% { transform: rotate(0deg) translateY(0) } }
@keyframes cpg-glow { 0% { opacity:0.3; transform: translate(-20px, -20px) scale(0.8) } 50% { opacity:0.6; transform: translate(-20px, -20px) scale(1.1) } 100% { opacity:0.4; transform: translate(-20px, -20px) scale(0.9) } }
@keyframes cpg-window { 0% { opacity:0.4; filter: brightness(0.9) } 50% { opacity:0.7; filter: brightness(1) } 100% { opacity:0.5; filter: brightness(0.95) } }

.scn-went-off-to-die { background: linear-gradient(180deg, #1e1e3a 0%, #141430 60%, #0a0a20 100%), radial-gradient(ellipse at 50% 30%, #2a2a50 0%, transparent 60%); }
.scn-went-off-to-die .bg-dark { position:absolute; inset:0 0 0 0; background: linear-gradient(135deg, #1a1a30 0%, #101020 100%); }
.scn-went-off-to-die .window-die { position:absolute; left:20%; top:10%; width:60%; height:70%; border: 8px solid #2a2a40; border-radius: 4px; background: #0a0a1a; box-shadow: inset 0 0 40px rgba(0,0,0,0.8); }
.scn-went-off-to-die .sill-die { position:absolute; left:20%; top:calc(10% + 70%); width:60%; height:6px; background: #3a3a50; transform: translateY(-2px); }
.scn-went-off-to-die .curtain-die { position:absolute; left:20%; top:10%; width:60%; height:70%; background: linear-gradient(180deg, rgba(40,30,50,0.8) 0%, rgba(20,15,30,0.4) 100%); border-radius: 0 0 20% 20%; animation: die-curtain 14s ease-in-out infinite; }
.scn-went-off-to-die .figure-die { position:absolute; bottom:15%; left:40%; width:22px; height:50px; background: linear-gradient(180deg, #2a2030 0%, #101018 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: die-figure 6s ease-in-out infinite alternate; }
.scn-went-off-to-die .candle { position:absolute; right:25%; bottom:22%; width:6px; height:20px; background: linear-gradient(0deg, #4a3520 0%, #6a5040 100%); border-radius: 2px; }
.scn-went-off-to-die .candle-glow { position:absolute; right:25%; bottom:22%; width:30px; height:30px; background: radial-gradient(circle, #884422 0%, rgba(136,68,34,0.2) 50%, transparent 100%); border-radius: 50%; transform: translate(-12px, -4px); animation: die-glow 3s ease-in-out infinite alternate; }
.scn-went-off-to-die .tear { position:absolute; left:42%; bottom:32%; width:4px; height:12px; background: linear-gradient(180deg, #6080b0 0%, #406090 100%); border-radius: 50%; animation: die-tear 8s ease-in-out infinite; }
@keyframes die-curtain { 0% { opacity:0.6 } 25% { opacity:0.8 } 50% { opacity:0.5 } 75% { opacity:0.7 } 100% { opacity:0.6 } }
@keyframes die-figure { 0% { transform: translateY(0) rotate(0deg) } 33% { transform: translateY(-2px) rotate(1deg) } 66% { transform: translateY(0) rotate(-1deg) } 100% { transform: translateY(0) rotate(0deg) } }
@keyframes die-glow { 0% { opacity:0.3; transform: translate(-12px, -4px) scale(0.8) } 50% { opacity:0.7; transform: translate(-12px, -4px) scale(1.2) } 100% { opacity:0.4; transform: translate(-12px, -4px) scale(0.9) } }
@keyframes die-tear { 0%,100% { transform: translateY(0) opacity(0.4) } 25% { transform: translateY(10px) opacity(0.8) } 50% { transform: translateY(20px) opacity(0.2) } 75% { transform: translateY(5px) opacity(0.6) } }

/* ----- scene: she-asks-for-me ----- */
.scn-she-asks-for-me {
  background: linear-gradient(135deg, #3a3a4e 0%, #4a4a5e 30%, #5a5a6e 60%, #4a4a5e 100%),
              radial-gradient(ellipse at 70% 30%, #7a7a8e 0%, transparent 60%);
}
.scn-she-asks-for-me .dawn-wall { position:absolute; inset:0; background: linear-gradient(180deg, #4a4a5e 0%, #3a3a4e 50%, #2a2a3e 100%); }
.scn-she-asks-for-me .dawn-window { position:absolute; top:15%; left:60%; width:120px; height:160px; background: linear-gradient(180deg, #6a6a8e 0%, #5a5a7e 40%, #8a8aae 100%); border:6px solid #3a3a4e; border-radius:4px; box-shadow: inset 0 0 30px rgba(200,200,220,0.3); }
.scn-she-asks-for-me .dawn-light { position:absolute; top:15%; left:60%; width:120px; height:160px; background: radial-gradient(ellipse at 50% 30%, rgba(220,220,240,0.15) 0%, transparent 80%); animation: sa-light 8s ease-in-out infinite alternate; }
.scn-she-asks-for-me .figure-waiting { position:absolute; bottom:18%; left:35%; width:30px; height:80px; background: linear-gradient(180deg, #2a2a3e 0%, #1a1a2e 50%, #0a0a1e 100%); border-radius: 45% 45% 35% 35% / 55% 55% 40% 40%; transform-origin: bottom center; animation: sa-wait 5s ease-in-out infinite; }
.scn-she-asks-for-me .figure-visitor { position:absolute; bottom:18%; left:55%; width:34px; height:82px; background: linear-gradient(180deg, #3a3a4e 0%, #2a2a3e 60%, #1a1a2e 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: sa-visit 7s ease-in-out infinite; }
.scn-she-asks-for-me .shadow-long { position:absolute; bottom:0; left:30%; width:200px; height:20px; background: linear-gradient(90deg, transparent 0%, rgba(0,0,0,0.4) 30%, rgba(0,0,0,0.6) 70%, transparent 100%); border-radius:50%; filter: blur(4px); animation: sa-shadow 9s ease-in-out infinite alternate; }
.scn-she-asks-for-me .curtain-sway { position:absolute; top:15%; left:58%; width:10px; height:170px; background: linear-gradient(180deg, #5a5a6e 0%, #4a4a5e 50%, #3a3a4e 100%); border-radius:2px; transform-origin: top center; animation: sa-curtain 6s ease-in-out infinite alternate; }
.scn-she-asks-for-me .dust-motes { position:absolute; inset:0; background: radial-gradient(circle at 30% 40%, rgba(220,220,240,0.05) 0%, transparent 50%), radial-gradient(circle at 70% 60%, rgba(200,200,220,0.03) 0%, transparent 40%); animation: sa-dust 20s linear infinite; }

@keyframes sa-light { 0% { opacity:0.3 } 50% { opacity:0.7 } 100% { opacity:0.4 } }
@keyframes sa-wait { 0% { transform:translateX(0) translateY(0) rotate(-1deg) } 25% { transform:translateX(3px) translateY(-2px) rotate(0deg) } 50% { transform:translateX(0) translateY(0) rotate(1deg) } 75% { transform:translateX(-2px) translateY(-1px) rotate(0deg) } 100% { transform:translateX(0) translateY(0) rotate(-1deg) } }
@keyframes sa-visit { 0% { transform:translateX(0) translateY(0) rotate(1deg) } 33% { transform:translateX(-2px) translateY(-1px) rotate(0deg) } 66% { transform:translateX(2px) translateY(-2px) rotate(1deg) } 100% { transform:translateX(0) translateY(0) rotate(0deg) } }
@keyframes sa-shadow { 0% { opacity:0.3; transform:scaleX(0.8) } 50% { opacity:0.6; transform:scaleX(1.1) } 100% { opacity:0.4; transform:scaleX(0.9) } }
@keyframes sa-curtain { 0% { transform:rotate(-2deg) scaleY(1) } 50% { transform:rotate(3deg) scaleY(1.02) } 100% { transform:rotate(-1deg) scaleY(0.98) } }
@keyframes sa-dust { 0% { transform:translateY(0) scale(1); opacity:0.5 } 50% { transform:translateY(-20px) scale(0.9); opacity:0.8 } 100% { transform:translateY(0) scale(1); opacity:0.5 } }

/* ----- scene: to-what-end ----- */
.scn-to-what-end {
  background: linear-gradient(135deg, #3e3e52 0%, #4e4e62 40%, #5e5e72 100%),
              radial-gradient(ellipse at 30% 50%, #6e6e82 0%, transparent 70%);
}
.scn-to-what-end .dawn-wall { position:absolute; inset:0; background: linear-gradient(180deg, #4e4e62 0%, #3e3e52 50%, #2e2e42 100%); }
.scn-to-what-end .dawn-window { position:absolute; top:20%; left:20%; width:100px; height:140px; background: linear-gradient(180deg, #7e7e9e 0%, #6e6e8e 50%, #9e9ebe 100%); border:5px solid #3e3e52; border-radius:3px; box-shadow: inset 0 0 20px rgba(200,200,220,0.25); }
.scn-to-what-end .dawn-light { position:absolute; top:20%; left:20%; width:100px; height:140px; background: radial-gradient(ellipse at 50% 20%, rgba(200,200,240,0.2) 0%, transparent 80%); animation: tw-light 9s ease-in-out infinite alternate; }
.scn-to-what-end .figure-left { position:absolute; bottom:20%; left:30%; width:32px; height:78px; background: linear-gradient(180deg, #2e2e42 0%, #1e1e32 50%, #0e0e22 100%); border-radius: 48% 48% 38% 38% / 58% 58% 42% 42%; transform-origin: bottom center; animation: tw-left 6s ease-in-out infinite; }
.scn-to-what-end .figure-right { position:absolute; bottom:20%; left:55%; width:36px; height:84px; background: linear-gradient(180deg, #3e3e52 0%, #2e2e42 60%, #1e1e32 100%); border-radius: 52% 52% 40% 40% / 62% 62% 40% 40%; transform-origin: bottom center; animation: tw-right 8s ease-in-out infinite; }
.scn-to-what-end .shadow-floor { position:absolute; bottom:0; left:25%; width:180px; height:18px; background: linear-gradient(90deg, transparent 0%, rgba(0,0,0,0.35) 30%, rgba(0,0,0,0.5) 60%, transparent 100%); border-radius:50%; filter: blur(3px); animation: tw-shadow 10s ease-in-out infinite alternate; }
.scn-to-what-end .clock-tick { position:absolute; top:10%; left:80%; width:4px; height:4px; background: #8a8a9e; border-radius:50%; box-shadow: 0 0 6px rgba(200,200,220,0.4); animation: tw-clock 2s ease-in-out infinite; }

@keyframes tw-light { 0% { opacity:0.2 } 50% { opacity:0.6 } 100% { opacity:0.35 } }
@keyframes tw-left { 0% { transform:translateX(0) translateY(0) rotate(0deg) } 30% { transform:translateX(-2px) translateY(-1px) rotate(-1deg) } 60% { transform:translateX(1px) translateY(-2px) rotate(0deg) } 100% { transform:translateX(0) translateY(0) rotate(1deg) } }
@keyframes tw-right { 0% { transform:translateX(0) translateY(0) rotate(1deg) } 35% { transform:translateX(3px) translateY(-1px) rotate(2deg) } 70% { transform:translateX(-1px) translateY(0) rotate(0deg) } 100% { transform:translateX(0) translateY(0) rotate(-1deg) } }
@keyframes tw-shadow { 0% { opacity:0.3; transform:scaleX(0.85) } 50% { opacity:0.55; transform:scaleX(1.05) } 100% { opacity:0.4; transform:scaleX(0.9) } }
@keyframes tw-clock { 0% { transform:scale(1); opacity:0.7 } 50% { transform:scale(1.3); opacity:1 } 100% { transform:scale(1); opacity:0.7 } }

/* ----- scene: you-must-take-flora ----- */
.scn-you-must-take-flora {
  background: linear-gradient(135deg, #3c3c50 0%, #4c4c60 40%, #5c5c70 100%),
              radial-gradient(ellipse at 50% 20%, #6c6c80 0%, transparent 60%);
}
.scn-you-must-take-flora .dawn-hall { position:absolute; inset:0; background: linear-gradient(180deg, #4c4c60 0%, #3c3c50 60%, #2c2c40 100%); }
.scn-you-must-take-flora .dawn-door { position:absolute; top:10%; left:70%; width:100px; height:180px; background: linear-gradient(180deg, #5c5c70 0%, #4c4c60 40%, #3c3c50 100%); border:4px solid #2c2c40; border-radius:2px; box-shadow: inset 0 0 15px rgba(0,0,0,0.3); }
.scn-you-must-take-flora .dawn-light { position:absolute; top:10%; left:70%; width:100px; height:180px; background: radial-gradient(ellipse at 50% 40%, rgba(200,200,240,0.15) 0%, transparent 70%); animation: yo-light 7s ease-in-out infinite alternate; }
.scn-you-must-take-flora .figure-urging { position:absolute; bottom:20%; left:40%; width:34px; height:80px; background: linear-gradient(180deg, #2c2c40 0%, #1c1c30 50%, #0c0c20 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: yo-urge 6s ease-in-out infinite; }
.scn-you-must-take-flora .figure-flora { position:absolute; bottom:20%; left:55%; width:28px; height:60px; background: linear-gradient(180deg, #3c3c50 0%, #2c2c40 50%, #1c1c30 100%); border-radius: 45% 45% 35% 35% / 55% 55% 40% 40%; transform-origin: bottom center; animation: yo-flora 8s ease-in-out infinite; }
.scn-you-must-take-flora .shadow-door { position:absolute; top:10%; left:74%; width:80px; height:180px; background: linear-gradient(90deg, rgba(0,0,0,0.3) 0%, transparent 100%); filter: blur(4px); animation: yo-shadow 10s ease-in-out infinite alternate; }
.scn-you-must-take-flora .carpet-runner { position:absolute; bottom:0; left:30%; width:200px; height:10px; background: linear-gradient(90deg, #5c5c70 0%, #4c4c60 50%, #3c3c50 100%); border-radius:2px; box-shadow: 0 2px 6px rgba(0,0,0,0.3); animation: yo-carpet 14s ease-in-out infinite; }

@keyframes yo-light { 0% { opacity:0.15 } 50% { opacity:0.5 } 100% { opacity:0.25 } }
@keyframes yo-urge { 0% { transform:translateX(0) translateY(0) rotate(0deg) } 25% { transform:translateX(4px) translateY(-2px) rotate(3deg) } 50% { transform:translateX(2px) translateY(-1px) rotate(1deg) } 75% { transform:translateX(6px) translateY(-2px) rotate(4deg) } 100% { transform:translateX(0) translateY(0) rotate(0deg) } }
@keyframes yo-flora { 0% { transform:translateX(0) translateY(0) rotate(0deg) } 33% { transform:translateX(-1px) translateY(-1px) rotate(-1deg) } 66% { transform:translateX(1px) translateY(0) rotate(0deg) } 100% { transform:translateX(0) translateY(0) rotate(1deg) } }
@keyframes yo-shadow { 0% { opacity:0.2; transform:scaleX(0.9) } 50% { opacity:0.5; transform:scaleX(1.05) } 100% { opacity:0.3; transform:scaleX(0.95) } }
@keyframes yo-carpet { 0% { transform:translateX(-2px); opacity:0.8 } 50% { transform:translateX(2px); opacity:1 } 100% { transform:translateX(-2px); opacity:0.8 } }

/* ----- scene: not-that-fool ----- */
.scn-not-that-fool {
  background: linear-gradient(135deg, #404054 0%, #505064 40%, #606074 100%),
              radial-gradient(ellipse at 60% 40%, #707084 0%, transparent 60%);
}
.scn-not-that-fool .dawn-room { position:absolute; inset:0; background: linear-gradient(180deg, #505064 0%, #404054 60%, #303044 100%); }
.scn-not-that-fool .dawn-lock { position:absolute; top:40%; left:20%; width:20px; height:40px; background: linear-gradient(180deg, #606074 0%, #505064 50%, #404054 100%); border-radius:4px; border:2px solid #303044; box-shadow: 0 0 8px rgba(0,0,0,0.4); animation: no-lock 5s ease-in-out infinite; }
.scn-not-that-fool .dawn-light { position:absolute; top:0; left:0; width:100%; height:60%; background: radial-gradient(ellipse at 50% 20%, rgba(200,200,240,0.1) 0%, transparent 60%); animation: no-light 8s ease-in-out infinite alternate; }
.scn-not-that-fool .figure-maid { position:absolute; bottom:18%; left:45%; width:36px; height:86px; background: linear-gradient(180deg, #303044 0%, #202034 50%, #101024 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: no-maid 7s ease-in-out infinite; }
.scn-not-that-fool .figure-flora { position:absolute; bottom:18%; left:60%; width:26px; height:58px; background: linear-gradient(180deg, #404054 0%, #303044 50%, #202034 100%); border-radius: 45% 45% 35% 35% / 55% 55% 40% 40%; transform-origin: bottom center; animation: no-flora 9s ease-in-out infinite; }
.scn-not-that-fool .shadow-lock { position:absolute; top:45%; left:22%; width:40px; height:40px; background: radial-gradient(circle, rgba(0,0,0,0.4) 0%, transparent 70%); filter: blur(3px); animation: no-shadow 6s ease-in-out infinite alternate; }
.scn-not-that-fool .table-edge { position:absolute; bottom:22%; left:25%; width:120px; height:6px; background: linear-gradient(90deg, #606074 0%, #505064 50%, #404054 100%); border-radius:2px; box-shadow: 0 3px 8px rgba(0,0,0,0.3); animation: no-table 12s ease-in-out infinite; }
.scn-not-that-fool .candle-glow { position:absolute; bottom:25%; left:30%; width:8px; height:8px; background: radial-gradient(circle, rgba(255,200,150,0.6) 0%, rgba(255,180,120,0.3) 40%, transparent 80%); border-radius:50%; filter: blur(2px); animation: no-candle 4s ease-in-out infinite alternate; }

@keyframes no-lock { 0% { transform:translateY(0) rotate(0deg) } 50% { transform:translateY(-2px) rotate(2deg) } 100% { transform:translateY(0) rotate(0deg) } }
@keyframes no-light { 0% { opacity:0.1 } 50% { opacity:0.45 } 100% { opacity:0.2 } }
@keyframes no-maid { 0% { transform:translateX(0) translateY(0) rotate(0deg) } 25% { transform:translateX(3px) translateY(-2px) rotate(2deg) } 50% { transform:translateX(-1px) translateY(-1px) rotate(-1deg) } 75% { transform:translateX(2px) translateY(-3px) rotate(1deg) } 100% { transform:translateX(0) translateY(0) rotate(0deg) } }
@keyframes no-flora { 0% { transform:translateX(0) translateY(0) rotate(0deg) } 33% { transform:translateX(-2px) translateY(-1px) rotate(-1deg) } 66% { transform:translateX(1px) translateY(0) rotate(1deg) } 100% { transform:translateX(0) translateY(0) rotate(0deg) } }
@keyframes no-shadow { 0% { opacity:0.2; transform:scale(0.8) } 50% { opacity:0.5; transform:scale(1.1) } 100% { opacity:0.3; transform:scale(0.9) } }
@keyframes no-table { 0% { transform:translateX(-2px); opacity:0.8 } 50% { transform:translateX(2px); opacity:1 } 100% { transform:translateX(-2px); opacity:0.8 } }
@keyframes no-candle { 0% { transform:scale(0.8); opacity:0.3 } 50% { transform:scale(1.4); opacity:0.8 } 100% { transform:scale(0.9); opacity:0.4 } }

/* send-for-uncle */
.scn-send-for-uncle {
  background: linear-gradient(180deg, #2b1a10 0%, #3a221a 40%, #1d0f0a 100%),
              radial-gradient(ellipse at 40% 60%, #6a3020 0%, transparent 60%);
}
.scn-send-for-uncle .wall-back {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #3a2a20 0%, #2a1a10 100%);
  animation: sfu-wall 12s ease-in-out infinite alternate;
}
.scn-send-for-uncle .window {
  position: absolute; top: 12%; right: 18%; width: 60px; height: 80px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a10 100%);
  border-radius: 6px; box-shadow: inset 0 0 18px #1a0a00;
  animation: sfu-window 8s ease-in-out infinite alternate;
}
.scn-send-for-uncle .desk {
  position: absolute; bottom: 20%; left: 30%; right: 30%; height: 4%;
  background: linear-gradient(180deg, #4a3018 0%, #2a1808 100%);
  border-radius: 2px; box-shadow: 0 4px 8px rgba(0,0,0,.5);
}
.scn-send-for-uncle .letter {
  position: absolute; bottom: 26%; left: 42%; width: 22px; height: 16px;
  background: #c8a86a; border-radius: 2px;
  transform-origin: left center;
  animation: sfu-letter 5s ease-in-out infinite;
}
.scn-send-for-uncle .figure-sfu {
  position: absolute; bottom: 14%; left: 38%; width: 24px; height: 48px;
  background: linear-gradient(180deg, #1a1210 0%, #0a0604 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: sfu-figure 6s ease-in-out infinite;
}
.scn-send-for-uncle .fire {
  position: absolute; bottom: 16%; left: 14%; width: 20px; height: 40px;
  background: radial-gradient(ellipse at 50% 100%, #b85a20 0%, #e08a30 40%, #f0c060 60%, transparent 80%);
  border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%;
  filter: blur(2px);
  animation: sfu-fire 0.8s ease-in-out infinite alternate;
}
.scn-send-for-uncle .glow-sfu {
  position: absolute; inset: 0;
  background: radial-gradient(ellipse at 14% 50%, #e08030 0%, transparent 40%);
  pointer-events: none; mix-blend-mode: overlay; opacity: .5;
  animation: sfu-glow 4s ease-in-out infinite alternate;
}
@keyframes sfu-wall { 0% { opacity: .7 } 50% { opacity: 1 } 100% { opacity: .8 } }
@keyframes sfu-window { 0% { box-shadow: inset 0 0 18px #1a0a00; } 50% { box-shadow: inset 0 0 28px #2a1a10; } 100% { box-shadow: inset 0 0 14px #0a0500; } }
@keyframes sfu-letter { 0% { transform: rotate(0deg); } 25% { transform: rotate(2deg); } 50% { transform: rotate(-1deg); } 75% { transform: rotate(1deg); } 100% { transform: rotate(0deg); } }
@keyframes sfu-figure { 0% { transform: translateY(0) rotate(0deg); } 30% { transform: translateY(-2px) rotate(0.5deg); } 60% { transform: translateY(0) rotate(-0.5deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes sfu-fire { 0% { transform: scaleY(0.9); opacity: .8; } 50% { transform: scaleY(1.1); opacity: 1; } 100% { transform: scaleY(0.95); opacity: .9; } }
@keyframes sfu-glow { 0% { opacity: .4; } 50% { opacity: .6; } 100% { opacity: .45; } }

/* awful-reason */
.scn-awful-reason {
  background: linear-gradient(180deg, #1e1210 0%, #2e1a14 50%, #160c08 100%),
              radial-gradient(ellipse at 50% 80%, #4a2818 0%, transparent 70%);
}
.scn-awful-reason .wall-awr {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(135deg, #2a1a14 0%, #1a0e0a 100%);
  animation: awr-wall 15s ease-in-out infinite alternate;
}
.scn-awful-reason .table {
  position: absolute; bottom: 22%; left: 20%; right: 20%; height: 3%;
  background: linear-gradient(180deg, #3a2818 0%, #1a1008 100%);
  border-radius: 2px; box-shadow: 0 2px 6px rgba(0,0,0,.6);
}
.scn-awful-reason .candle {
  position: absolute; bottom: 28%; left: 48%; width: 8px; height: 24px;
  background: linear-gradient(180deg, #d8b86a 0%, #a88848 100%);
  border-radius: 2px;
  animation: awr-candle 6s ease-in-out infinite;
}
.scn-awful-reason .letter-awr {
  position: absolute; bottom: 24%; left: 34%; width: 28px; height: 18px;
  background: #c0a060; border-radius: 1px;
  transform-origin: left center;
  animation: awr-letter 4s ease-in-out infinite;
}
.scn-awful-reason .figure-awr-a {
  position: absolute; bottom: 12%; left: 22%; width: 22px; height: 44px;
  background: linear-gradient(180deg, #1a1210 0%, #0a0604 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: awr-fig-a 7s ease-in-out infinite;
}
.scn-awful-reason .figure-awr-b {
  position: absolute; bottom: 12%; right: 22%; width: 22px; height: 44px;
  background: linear-gradient(180deg, #221612 0%, #0e0806 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: awr-fig-b 8s ease-in-out infinite reverse;
}
.scn-awful-reason .shadow-awr {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, transparent 0%, rgba(0,0,0,.4) 100%);
  animation: awr-shadow 10s ease-in-out infinite alternate;
}
@keyframes awr-wall { 0% { opacity: .6; } 50% { opacity: .9; } 100% { opacity: .7; } }
@keyframes awr-candle { 0% { transform: translateY(0); opacity: .9; } 50% { transform: translateY(-2px); opacity: 1; } 100% { transform: translateY(0); opacity: .95; } }
@keyframes awr-letter { 0% { transform: rotate(-2deg); } 25% { transform: rotate(1deg); } 50% { transform: rotate(-1deg); } 75% { transform: rotate(2deg); } 100% { transform: rotate(-2deg); } }
@keyframes awr-fig-a { 0% { transform: translateX(0) rotate(0deg); } 25% { transform: translateX(2px) rotate(1deg); } 50% { transform: translateX(0) rotate(-0.5deg); } 75% { transform: translateX(-2px) rotate(0.5deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes awr-fig-b { 0% { transform: translateX(0) rotate(0deg); } 25% { transform: translateX(-2px) rotate(-1deg); } 50% { transform: translateX(0) rotate(0.5deg); } 75% { transform: translateX(2px) rotate(-0.5deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes awr-shadow { 0% { opacity: .3; } 50% { opacity: .5; } 100% { opacity: .35; } }

/* expelled-unknown */
.scn-expelled-unknown {
  background: linear-gradient(180deg, #1a0e08 0%, #2a1810 40%, #0e0604 100%),
              radial-gradient(ellipse at 60% 50%, #4a2818 0%, transparent 60%);
}
.scn-expelled-unknown .wall-exu {
  position: absolute; inset: 0 0 50% 0;
  background: linear-gradient(135deg, #2a1a12 0%, #140a06 100%);
  animation: exu-wall 18s ease-in-out infinite alternate;
}
.scn-expelled-unknown .window-exu {
  position: absolute; top: 14%; left: 10%; width: 50px; height: 70px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0e 100%);
  border-radius: 8px; box-shadow: inset 0 0 14px #0a0500;
  animation: exu-window 10s ease-in-out infinite alternate;
}
.scn-expelled-unknown .child-figure {
  position: absolute; bottom: 20%; left: 38%; width: 18px; height: 34px;
  background: linear-gradient(180deg, #1a1412 0%, #0e0a08 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: exu-child 5s ease-in-out infinite;
}
.scn-expelled-unknown .fireplace {
  position: absolute; bottom: 18%; right: 16%; width: 40px; height: 60px;
  background: linear-gradient(180deg, #3a2818 0%, #1a0e06 100%);
  border-radius: 10% 10% 4% 4% / 20% 20% 6% 6%;
  box-shadow: inset 0 0 12px #0a0500;
}
.scn-expelled-unknown .fire-exu {
  position: absolute; bottom: 22%; right: 20%; width: 18px; height: 34px;
  background: radial-gradient(ellipse at 50% 100%, #c85a20 0%, #e08830 30%, #f0b850 50%, transparent 70%);
  filter: blur(3px);
  animation: exu-fire 0.6s ease-in-out infinite alternate;
}
.scn-expelled-unknown .glow-exu {
  position: absolute; inset: 0;
  background: radial-gradient(ellipse at 72% 40%, #d07030 0%, transparent 60%);
  mix-blend-mode: overlay; opacity: .4;
  animation: exu-glow 5s ease-in-out infinite alternate;
}
@keyframes exu-wall { 0% { opacity: .7; } 50% { opacity: 1; } 100% { opacity: .8; } }
@keyframes exu-window { 0% { box-shadow: inset 0 0 14px #0a0500; } 50% { box-shadow: inset 0 0 24px #1a0e06; } 100% { box-shadow: inset 0 0 10px #050200; } }
@keyframes exu-child { 0% { transform: translateY(0) scale(1); } 25% { transform: translateY(-2px) scale(1.02); } 50% { transform: translateY(0) scale(1); } 75% { transform: translateY(-1px) scale(0.98); } 100% { transform: translateY(0) scale(1); } }
@keyframes exu-fire { 0% { transform: scaleY(0.85); opacity: .7; } 50% { transform: scaleY(1.15); opacity: 1; } 100% { transform: scaleY(0.9); opacity: .8; } }
@keyframes exu-glow { 0% { opacity: .3; } 50% { opacity: .5; } 100% { opacity: .35; } }

/* children-shant-suffer */
.scn-children-shant-suffer {
  background: linear-gradient(180deg, #22120c 0%, #3a2016 40%, #120804 100%),
              radial-gradient(ellipse at 50% 70%, #4a2818 0%, transparent 60%);
}
.scn-children-shant-suffer .floor-chs {
  position: absolute; bottom: 0; left: 0; right: 0; height: 35%;
  background: linear-gradient(180deg, #2a1a12 0%, #1a0e08 100%);
  animation: chs-floor 20s ease-in-out infinite alternate;
}
.scn-children-shant-suffer .wall-chs {
  position: absolute; inset: 0 0 35% 0;
  background: linear-gradient(135deg, #2e1c14 0%, #1a0e08 100%);
}
.scn-children-shant-suffer .door {
  position: absolute; bottom: 10%; left: 8%; width: 50px; height: 90px;
  background: linear-gradient(180deg, #3a2818 0%, #1a0e06 100%);
  border-radius: 4px; box-shadow: inset 0 0 10px #0a0500;
}
.scn-children-shant-suffer .figure-chs {
  position: absolute; bottom: 15%; left: 42%; width: 26px; height: 52px;
  background: linear-gradient(180deg, #1a1410 0%, #0a0604 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: chs-figure 6s ease-in-out infinite;
}
.scn-children-shant-suffer .child-left {
  position: absolute; bottom: 10%; left: 28%; width: 16px; height: 28px;
  background: linear-gradient(180deg, #1e1612 0%, #0e0a06 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: chs-child-l 7s ease-in-out infinite;
}
.scn-children-shant-suffer .child-right {
  position: absolute; bottom: 10%; right: 24%; width: 16px; height: 28px;
  background: linear-gradient(180deg, #1e1612 0%, #0e0a06 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: chs-child-r 8s ease-in-out infinite reverse;
}
.scn-children-shant-suffer .candle-chs {
  position: absolute; bottom: 44%; left: 52%; width: 6px; height: 20px;
  background: linear-gradient(180deg, #d8b86a 0%, #a88848 100%);
  border-radius: 2px;
  animation: chs-candle 5s ease-in-out infinite;
}
.scn-children-shant-suffer .glow-chs {
  position: absolute; inset: 0;
  background: radial-gradient(ellipse at 52% 45%, #d07030 0%, transparent 50%);
  mix-blend-mode: overlay; opacity: .4;
  animation: chs-glow 4s ease-in-out infinite alternate;
}
@keyframes chs-floor { 0% { opacity: .5; } 50% { opacity: .7; } 100% { opacity: .6; } }
@keyframes chs-figure { 0% { transform: translateY(0) rotate(0deg); } 20% { transform: translateY(-3px) rotate(1deg); } 40% { transform: translateY(0) rotate(-0.5deg); } 60% { transform: translateY(-2px) rotate(0.5deg); } 80% { transform: translateY(0) rotate(-0.2deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes chs-child-l { 0% { transform: translateX(0) rotate(0deg); } 25% { transform: translateX(3px) rotate(2deg); } 50% { transform: translateX(0) rotate(-1deg); } 75% { transform: translateX(-2px) rotate(1deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes chs-child-r { 0% { transform: translateX(0) rotate(0deg); } 25% { transform: translateX(-3px) rotate(-2deg); } 50% { transform: translateX(0) rotate(1deg); } 75% { transform: translateX(2px) rotate(-1deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes chs-candle { 0% { transform: translateY(0); opacity: .85; } 50% { transform: translateY(-1px); opacity: 1; } 100% { transform: translateY(0); opacity: .9; } }
@keyframes chs-glow { 0% { opacity: .3; } 50% { opacity: .5; } 100% { opacity: .35; } }

/* scene: intimate-exchange-surrender */
.scn-intimate-exchange-surrender {
  background: linear-gradient(180deg, #2c1a0e 0%, #4c2a1a 40%, #6a3a2a 100%), radial-gradient(ellipse at 50% 30%, #8a5a3a 0%, transparent 60%);
}
.scn-intimate-exchange-surrender .room-bg {
  position: absolute; inset: 0; background: linear-gradient(180deg, #3a2010 0%, #1a0e06 100%);
  animation: ie-shift 20s ease-in-out infinite;
}
.scn-intimate-exchange-surrender .lamplight {
  position: absolute; bottom: 50%; left: 40%; width: 30%; height: 40%;
  background: radial-gradient(ellipse at 50% 100%, #e8c080 0%, #c09060 30%, transparent 70%);
  opacity: 0.6; animation: ie-flicker 3s ease-in-out infinite alternate;
}
.scn-intimate-exchange-surrender .figure-left {
  position: absolute; bottom: 10%; left: 18%; width: 22%; height: 55%;
  background: linear-gradient(180deg, #2a140a 0%, #0e0602 100%);
  border-radius: 45% 40% 40% 45% / 60% 55% 45% 40%;
  transform-origin: bottom center;
  animation: ie-breathe 5s ease-in-out infinite;
}
.scn-intimate-exchange-surrender .figure-right {
  position: absolute; bottom: 12%; right: 20%; width: 20%; height: 50%;
  background: linear-gradient(180deg, #2a140a 0%, #0e0602 100%);
  border-radius: 40% 45% 45% 40% / 55% 60% 40% 45%;
  transform-origin: bottom center;
  animation: ie-breathe 5s ease-in-out infinite reverse;
}
.scn-intimate-exchange-surrender .table {
  position: absolute; bottom: 8%; left: 30%; width: 40%; height: 8%;
  background: linear-gradient(180deg, #5a3020 0%, #3a1a0e 100%);
  border-radius: 10% 10% 20% 20%;
  box-shadow: 0 -4px 10px rgba(0,0,0,0.6);
}
.scn-intimate-exchange-surrender .shadow-pool {
  position: absolute; bottom: 0; left: 10%; width: 80%; height: 20%;
  background: radial-gradient(ellipse at 50% 0%, transparent 0%, rgba(0,0,0,0.5) 100%);
}
.scn-intimate-exchange-surrender .warm-haze {
  position: absolute; inset: 0; background: radial-gradient(ellipse at 50% 60%, rgba(200,160,100,0.15) 0%, transparent 60%);
  animation: ie-haze 7s ease-in-out infinite;
}
@keyframes ie-shift { 0% { opacity: 0.8; } 50% { opacity: 1; } 100% { opacity: 0.85; } }
@keyframes ie-flicker { 0% { opacity: 0.5; transform: scale(1); } 30% { opacity: 0.7; transform: scale(1.02); } 60% { opacity: 0.6; transform: scale(0.98); } 100% { opacity: 0.65; transform: scale(1.01); } }
@keyframes ie-breathe { 0% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-3px) rotate(1deg); } 100% { transform: translateY(0) rotate(-1deg); } }
@keyframes ie-haze { 0% { opacity: 0.3; } 50% { opacity: 0.5; } 100% { opacity: 0.35; } }

/* scene: letter-query */
.scn-letter-query {
  background: linear-gradient(180deg, #0c0e1a 0%, #1a1a30 40%, #2c203c 100%), radial-gradient(ellipse at 40% 20%, #3a2a50 0%, transparent 70%);
}
.scn-letter-query .study-bg {
  position: absolute; inset: 0; background: linear-gradient(180deg, #0e101f 0%, #05060a 100%);
}
.scn-letter-query .desk {
  position: absolute; bottom: 5%; left: 15%; width: 70%; height: 12%;
  background: linear-gradient(180deg, #3a281c 0%, #1a100e 100%);
  border-radius: 4% 4% 8% 8%;
  box-shadow: 0 -6px 15px rgba(0,0,0,0.8);
}
.scn-letter-query .figure-writing {
  position: absolute; bottom: 12%; left: 35%; width: 18%; height: 50%;
  background: linear-gradient(180deg, #1a1420 0%, #080612 100%);
  border-radius: 45% 40% 40% 45% / 55% 50% 45% 50%;
  transform-origin: bottom center;
  animation: lq-tremble 2.5s ease-in-out infinite;
}
.scn-letter-query .letter {
  position: absolute; bottom: 14%; left: 42%; width: 10%; height: 6%;
  background: linear-gradient(135deg, #e8dcc0 0%, #c8b898 100%);
  border-radius: 5%;
  transform: rotate(5deg);
  animation: lq-flutter 3s ease-in-out infinite;
}
.scn-letter-query .candle {
  position: absolute; bottom: 16%; left: 25%; width: 3%; height: 12%;
  background: linear-gradient(180deg, #e8d0a0 0%, #8a6a3a 100%);
  border-radius: 30% 30% 20% 20%;
}
.scn-letter-query .candle-glow {
  position: absolute; bottom: 20%; left: 23%; width: 10%; height: 20%;
  background: radial-gradient(ellipse, #ffc880 0%, #c08040 50%, transparent 80%);
  opacity: 0.7;
  animation: lq-flicker 1.8s ease-in-out infinite alternate;
}
.scn-letter-query .clock {
  position: absolute; top: 15%; right: 15%; width: 8%; height: 8%;
  background: radial-gradient(circle, #2a2030 40%, transparent 40%);
  border-radius: 50%;
  border: 2px solid #4a384a;
  animation: lq-tick 1s steps(2) infinite;
}
.scn-letter-query .shadow-sweep {
  position: absolute; bottom: 0; left: 0; width: 100%; height: 30%;
  background: linear-gradient(180deg, transparent 0%, rgba(0,0,0,0.6) 100%);
  animation: lq-sweep 8s ease-in-out infinite;
}
@keyframes lq-tremble { 0% { transform: translateX(0) rotate(0deg); } 20% { transform: translateX(2px) rotate(2deg); } 40% { transform: translateX(-2px) rotate(-1deg); } 60% { transform: translateX(1px) rotate(1deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes lq-flutter { 0% { transform: rotate(5deg) scale(1); } 25% { transform: rotate(8deg) scale(1.02); } 50% { transform: rotate(2deg) scale(0.98); } 75% { transform: rotate(6deg) scale(1.01); } 100% { transform: rotate(5deg) scale(1); } }
@keyframes lq-flicker { 0% { opacity: 0.6; transform: scale(1); } 30% { opacity: 0.8; transform: scale(1.05); } 60% { opacity: 0.5; transform: scale(0.95); } 100% { opacity: 0.65; transform: scale(1.02); } }
@keyframes lq-tick { 0% { transform: scale(1); } 50% { transform: scale(1.02); } 100% { transform: scale(1); } }
@keyframes lq-sweep { 0% { opacity: 0.8; } 50% { opacity: 1; } 100% { opacity: 0.85; } }

/* scene: quint-window-confrontation */
.scn-quint-window-confrontation {
  background: linear-gradient(180deg, #1a1a2e 0%, #0c0e1a 60%, #080a12 100%), radial-gradient(ellipse at 50% 40%, #2a2a44 0%, transparent 60%);
}
.scn-quint-window-confrontation .dark-room {
  position: absolute; inset: 0; background: #040608;
}
.scn-quint-window-confrontation .window-frame {
  position: absolute; top: 10%; left: 25%; width: 50%; height: 70%;
  border: 6px solid #2a2030;
  border-radius: 4% 4% 8% 8%;
  background: transparent;
  box-shadow: inset 0 0 30px rgba(0,0,0,0.9);
}
.scn-quint-window-confrontation .window-glass {
  position: absolute; top: 12%; left: 27%; width: 46%; height: 66%;
  background: linear-gradient(180deg, rgba(180,200,220,0.15) 0%, rgba(100,120,160,0.05) 100%);
  backdrop-filter: blur(4px);
  animation: qw-fade 12s ease-in-out infinite;
}
.scn-quint-window-confrontation .figure-silhouette {
  position: absolute; bottom: 10%; left: 38%; width: 24%; height: 65%;
  background: linear-gradient(180deg, #0a0a14 0%, #020204 100%);
  border-radius: 45% 40% 40% 45% / 55% 50% 45% 50%;
  animation: qw-shift 6s ease-in-out infinite;
}
.scn-quint-window-confrontation .hand-on-glass {
  position: absolute; bottom: 30%; left: 43%; width: 8%; height: 10%;
  background: linear-gradient(135deg, #121220 0%, #080812 100%);
  border-radius: 20% 20% 40% 40%;
  transform: rotate(-15deg);
  animation: qw-press 4s ease-in-out infinite;
}
.scn-quint-window-confrontation .curtain-left {
  position: absolute; top: 8%; left: 20%; width: 15%; height: 74%;
  background: linear-gradient(180deg, #1e1424 0%, #0e0814 100%);
  border-radius: 0 30% 30% 0;
  animation: qw-sway 9s ease-in-out infinite;
}
.scn-quint-window-confrontation .curtain-right {
  position: absolute; top: 8%; right: 20%; width: 15%; height: 74%;
  background: linear-gradient(180deg, #1e1424 0%, #0e0814 100%);
  border-radius: 30% 0 0 30%;
  animation: qw-sway 9s ease-in-out infinite reverse;
}
.scn-quint-window-confrontation .outside-light {
  position: absolute; top: 10%; left: 25%; width: 50%; height: 70%;
  background: radial-gradient(ellipse at 50% 30%, rgba(150,170,200,0.08) 0%, transparent 60%);
  animation: qw-pulse 7s ease-in-out infinite;
}
@keyframes qw-fade { 0% { opacity: 0.3; } 50% { opacity: 0.5; } 100% { opacity: 0.35; } }
@keyframes qw-shift { 0% { transform: translateX(0) rotate(0deg); } 30% { transform: translateX(10px) rotate(2deg); } 60% { transform: translateX(-5px) rotate(-1deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes qw-press { 0% { transform: translateY(0) rotate(-15deg) scale(1); } 30% { transform: translateY(-5px) rotate(-10deg) scale(0.95); } 60% { transform: translateY(3px) rotate(-18deg) scale(1.05); } 100% { transform: translateY(0) rotate(-15deg) scale(1); } }
@keyframes qw-sway { 0% { transform: translateX(0) scaleY(1); } 50% { transform: translateX(5px) scaleY(1.02); } 100% { transform: translateX(0) scaleY(1); } }
@keyframes qw-pulse { 0% { opacity: 0.2; } 50% { opacity: 0.4; } 100% { opacity: 0.25; } }

/* scene: confession-of-words */
.scn-confession-of-words {
  background: linear-gradient(180deg, #1a1c2a 0%, #0e1020 40%, #0a0c18 100%), radial-gradient(ellipse at 30% 40%, #2a3040 0%, transparent 70%);
}
.scn-confession-of-words .doorway {
  position: absolute; bottom: 0; left: 30%; width: 40%; height: 85%;
  background: linear-gradient(180deg, #14161f 0%, #080a10 100%);
  border-radius: 10% 10% 0 0;
  box-shadow: inset 0 0 20px rgba(0,0,0,0.8);
}
.scn-confession-of-words .window {
  position: absolute; top: 8%; left: 35%; width: 30%; height: 30%;
  background: linear-gradient(180deg, #2a3444 0%, #1c2230 100%);
  border-radius: 4% 4% 10% 10%;
  box-shadow: inset 0 0 15px rgba(0,0,0,0.5), 0 0 10px rgba(150,170,200,0.1);
  animation: cw-glow 5s ease-in-out infinite alternate;
}
.scn-confession-of-words .floor {
  position: absolute; bottom: 0; left: 0; width: 100%; height: 15%;
  background: linear-gradient(180deg, #201a12 0%, #0e0a06 100%);
}
.scn-confession-of-words .small-figure {
  position: absolute; bottom: 12%; left: 42%; width: 16%; height: 40%;
  background: linear-gradient(180deg, #0e0c14 0%, #040208 100%);
  border-radius: 45% 40% 40% 45% / 55% 50% 45% 50%;
  transform-origin: bottom center;
  animation: cw-cower 4s ease-in-out infinite;
}
.scn-confession-of-words .threshold-shadow {
  position: absolute; bottom: 0; left: 30%; width: 40%; height: 20%;
  background: linear-gradient(180deg, transparent 0%, rgba(0,0,0,0.7) 100%);
  animation: cw-deepen 8s ease-in-out infinite;
}
.scn-confession-of-words .dust-motes {
  position: absolute; top: 20%; left: 10%; width: 80%; height: 60%;
  background: radial-gradient(circle at 20% 30%, rgba(200,200,220,0.04) 0%, transparent 50%);
  background-size: 200% 200%;
  animation: cw-drift 25s linear infinite;
}
@keyframes cw-glow { 0% { box-shadow: 0 0 10px rgba(150,170,200,0.1); } 50% { box-shadow: 0 0 20px rgba(150,170,200,0.2); } 100% { box-shadow: 0 0 15px rgba(150,170,200,0.15); } }
@keyframes cw-cower { 0% { transform: translateY(0) rotate(0deg) scale(1); } 25% { transform: translateY(3px) rotate(2deg) scale(0.98); } 50% { transform: translateY(-2px) rotate(-1deg) scale(1.02); } 75% { transform: translateY(1px) rotate(1deg) scale(0.99); } 100% { transform: translateY(0) rotate(0deg) scale(1); } }
@keyframes cw-deepen { 0% { opacity: 0.5; } 50% { opacity: 0.7; } 100% { opacity: 0.55; } }
@keyframes cw-drift { 0% { background-position: 0% 0%; } 100% { background-position: 100% 100%; } }

.scn-intruder-traveler-theory {
  background:
    linear-gradient(180deg, #f5efe0 0%, #e8dcca 40%, #d4c8b0 100%),
    radial-gradient(ellipse at 70% 50%, #fff8e0 0%, transparent 60%);
}
.scn-intruder-traveler-theory .room-wall { position:absolute; inset:0 0 0 0; background: linear-gradient(90deg, #e4d6c0 0%, #f0e6d0 40%, #e4d6c0 100%); }
.scn-intruder-traveler-theory .door { position:absolute; left:10%; top:10%; width:80px; height:100px; background: linear-gradient(90deg, #a08060 0%, #c8a880 40%, #a08060 100%); border-radius:4px 4px 0 0; box-shadow: inset -4px 0 10px rgba(0,0,0,0.3); animation: itt-door 6s ease-in-out infinite; }
.scn-intruder-traveler-theory .window { position:absolute; right:15%; top:10%; width:100px; height:80px; background: linear-gradient(180deg, #b8d8f0 0%, #d0e8f8 100%); border:6px solid #c8b090; border-radius:4px; box-shadow: inset 0 0 20px rgba(200,220,255,0.5); animation: itt-window 8s ease-in-out infinite; }
.scn-intruder-traveler-theory .desk { position:absolute; left:25%; bottom:8%; width:120px; height:40px; background: linear-gradient(180deg, #b09070 0%, #8a7050 100%); border-radius:4px; box-shadow: 0 4px 8px rgba(0,0,0,0.2); animation: itt-desk 12s ease-in-out infinite; }
.scn-intruder-traveler-theory .figure { position:absolute; left:12%; bottom:5%; width:30px; height:60px; background: linear-gradient(180deg, #3a2a1a 0%, #1a120a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: itt-figure 4s ease-in-out infinite; }
.scn-intruder-traveler-theory .lamp-glow { position:absolute; left:40%; top:20%; width:20px; height:30px; background: radial-gradient(circle, #fce68c 0%, #f0c858 60%, transparent 100%); border-radius:50% 50% 30% 30%; box-shadow: 0 0 40px 12px rgba(240,200,88,0.5); animation: itt-lamp 3s ease-in-out infinite alternate; }
.scn-intruder-traveler-theory .dust-particles { position:absolute; inset:0; background: radial-gradient(circle at 30% 40%, rgba(255,255,200,0.08) 0%, transparent 50%); animation: itt-dust 12s ease-in-out infinite; }
@keyframes itt-door { 0% { transform: scaleY(1); } 50% { transform: scaleY(0.98); } 100% { transform: scaleY(1); } }
@keyframes itt-window { 0% { background: linear-gradient(180deg, #b8d8f0 0%, #d0e8f8 100%); } 50% { background: linear-gradient(180deg, #c0e0f8 0%, #d8f0ff 100%); } 100% { background: linear-gradient(180deg, #b8d8f0 0%, #d0e8f8 100%); } }
@keyframes itt-desk { 0% { transform: translateY(0); } 50% { transform: translateY(-1px); } 100% { transform: translateY(0); } }
@keyframes itt-figure { 0% { transform: translateX(0) rotate(0deg); } 25% { transform: translateX(3px) rotate(1deg); } 50% { transform: translateX(0) rotate(0deg); } 75% { transform: translateX(-3px) rotate(-1deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes itt-lamp { 0% { opacity:0.8; transform: scale(1); } 50% { opacity:1; transform: scale(1.1); } 100% { opacity:0.85; transform: scale(0.95); } }
@keyframes itt-dust { 0% { opacity:0.4; } 50% { opacity:0.6; } 100% { opacity:0.3; } }

.scn-charming-work-life-with-children {
  background:
    linear-gradient(180deg, #fff5e0 0%, #ffe8c0 50%, #f0c890 100%),
    radial-gradient(ellipse at 70% 30%, #ffffcc 0%, transparent 60%);
}
.scn-charming-work-life-with-children .sunny-wall { position:absolute; inset:0 0 0 0; background: linear-gradient(180deg, #f8e4c8 0%, #ecd4b0 100%); }
.scn-charming-work-life-with-children .window-sun { position:absolute; left:10%; top:5%; width:120px; height:100px; background: linear-gradient(180deg, #ffe8a0 0%, #ffd870 100%); border:8px solid #d4b890; border-radius:10px; box-shadow: 0 0 30px 10px rgba(255,215,100,0.6); animation: cwc-sun 6s ease-in-out infinite; }
.scn-charming-work-life-with-children .table { position:absolute; bottom:15%; right:20%; width:160px; height:40px; background: linear-gradient(180deg, #d4b890 0%, #b89870 100%); border-radius:6px; box-shadow: 0 6px 15px rgba(0,0,0,0.2); }
.scn-charming-work-life-with-children .child-left { position:absolute; bottom:10%; left:10%; width:28px; height:50px; background: linear-gradient(180deg, #4a7090 0%, #2a4a60 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: cwc-child 5s ease-in-out infinite; }
.scn-charming-work-life-with-children .child-right { position:absolute; bottom:12%; left:20%; width:25px; height:45px; background: linear-gradient(180deg, #c87848 0%, #a06038 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: cwc-child2 4.5s ease-in-out infinite reverse; }
.scn-charming-work-life-with-children .toy-cube { position:absolute; bottom:17%; left:28%; width:20px; height:20px; background: radial-gradient(circle, #f8c040 0%, #d08030 100%); border-radius:4px; box-shadow: 0 0 10px rgba(255,200,60,0.4); animation: cwc-cube 3s ease-in-out infinite; }
.scn-charming-work-life-with-children .book { position:absolute; bottom:20%; right:30%; width:30px; height:40px; background: linear-gradient(180deg, #70a080 0%, #486050 100%); border-radius:2px; transform: rotate(-12deg); box-shadow: 2px 4px 8px rgba(0,0,0,0.2); animation: cwc-book 8s ease-in-out infinite; }
@keyframes cwc-sun { 0% { box-shadow: 0 0 30px 10px rgba(255,215,100,0.6); } 50% { box-shadow: 0 0 50px 20px rgba(255,215,100,0.8); } 100% { box-shadow: 0 0 30px 10px rgba(255,215,100,0.6); } }
@keyframes cwc-child { 0% { transform: translateX(0) rotate(0deg); } 25% { transform: translateX(5px) rotate(2deg); } 50% { transform: translateX(0) rotate(0deg); } 75% { transform: translateX(-5px) rotate(-2deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes cwc-child2 { 0% { transform: translateX(0) rotate(0deg); } 25% { transform: translateX(-4px) rotate(-1deg); } 50% { transform: translateX(0) rotate(0deg); } 75% { transform: translateX(4px) rotate(1deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes cwc-cube { 0% { transform: translateY(0) rotate(0deg); } 25% { transform: translateY(-4px) rotate(15deg); } 50% { transform: translateY(0) rotate(0deg); } 75% { transform: translateY(-2px) rotate(-10deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes cwc-book { 0% { transform: rotate(-12deg); } 50% { transform: rotate(-8deg) translateY(-2px); } 100% { transform: rotate(-12deg); } }

.scn-daily-beauty-of-nursery {
  background:
    linear-gradient(180deg, #faf0e0 0%, #f0e0c0 50%, #e0c888 100%),
    radial-gradient(ellipse at 80% 20%, #fff7e0 0%, transparent 70%);
}
.scn-daily-beauty-of-nursery .nursery-room { position:absolute; inset:0; background: linear-gradient(180deg, #f8ecdc 0%, #ecdcc4 100%); }
.scn-daily-beauty-of-nursery .window-beam { position:absolute; left:5%; top:0; width:80px; height:100%; background: linear-gradient(180deg, rgba(255,255,200,0.6) 0%, rgba(255,255,200,0) 100%); clip-path: polygon(0 0, 100% 0, 70% 100%, 30% 100%); animation: dbn-beam 8s ease-in-out infinite; }
.scn-daily-beauty-of-nursery .crib { position:absolute; bottom:10%; left:20%; width:140px; height:60px; background: linear-gradient(180deg, #c8a880 0%, #a88868 100%); border-radius: 8px 8px 20px 20px; box-shadow: inset 0 -6px 10px rgba(0,0,0,0.3); }
.scn-daily-beauty-of-nursery .rocking-chair { position:absolute; bottom:8%; right:15%; width:60px; height:50px; background: linear-gradient(180deg, #a08060 0%, #806040 100%); border-radius: 50% 50% 30% 30%; transform-origin: bottom center; animation: dbn-chair 6s ease-in-out infinite; }
.scn-daily-beauty-of-nursery .child-sleeping { position:absolute; bottom:12%; left:35%; width:30px; height:40px; background: linear-gradient(180deg, #3a5a7a 0%, #1a3040 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: center; animation: dbn-sleep 8s ease-in-out infinite; }
.scn-daily-beauty-of-nursery .teddy { position:absolute; bottom:14%; left:50%; width:16px; height:20px; background: radial-gradient(circle at 40% 30%, #c87040 0%, #a05030 100%); border-radius: 50%; animation: dbn-teddy 5s ease-in-out infinite; }
.scn-daily-beauty-of-nursery .shadow-dust { position:absolute; inset:0; background: radial-gradient(ellipse at 30% 70%, rgba(200,180,140,0.1) 0%, transparent 60%); animation: dbn-dust 12s linear infinite; }
@keyframes dbn-beam { 0% { opacity:0.5; } 50% { opacity:0.8; } 100% { opacity:0.4; } }
@keyframes dbn-chair { 0% { transform: rotate(0deg); } 25% { transform: rotate(3deg); } 50% { transform: rotate(0deg); } 75% { transform: rotate(-3deg); } 100% { transform: rotate(0deg); } }
@keyframes dbn-sleep { 0% { transform: scale(1); } 50% { transform: scale(1.02); } 100% { transform: scale(1); } }
@keyframes dbn-teddy { 0% { transform: translateY(0); } 50% { transform: translateY(-2px); } 100% { transform: translateY(0); } }
@keyframes dbn-dust { 0% { background-position: 0% 0%; } 50% { background-position: 50% 50%; } 100% { background-position: 100% 100%; } }

.scn-deep-obscurity-school-conduct {
  background:
    linear-gradient(180deg, #e8e0d0 0%, #d8cbb8 50%, #c0b098 100%),
    radial-gradient(ellipse at 50% 30%, #fffae0 0%, transparent 70%);
}
.scn-deep-obscurity-school-conduct .school-room { position:absolute; inset:0; background: linear-gradient(90deg, #d8ccc0 0%, #e4d8c8 40%, #d8ccc0 100%); }
.scn-deep-obscurity-school-conduct .desk-wood { position:absolute; bottom:8%; left:15%; width:180px; height:30px; background: linear-gradient(180deg, #b09880 0%, #907868 100%); border-radius:4px; box-shadow: 0 4px 10px rgba(0,0,0,0.2); }
.scn-deep-obscurity-school-conduct .book-open { position:absolute; bottom:15%; left:25%; width:60px; height:40px; background: linear-gradient(180deg, #e8e0c0 0%, #c0b090 100%); clip-path: polygon(0 0, 100% 0, 80% 100%, 20% 100%); border-radius:2px; box-shadow: 0 2px 6px rgba(0,0,0,0.15); }
.scn-deep-obscurity-school-conduct .figure-standing { position:absolute; bottom:5%; left:50%; width:30px; height:70px; background: linear-gradient(180deg, #2a1a1a 0%, #0a0a0a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: dsc-figure 6s ease-in-out infinite; }
.scn-deep-obscurity-school-conduct .window-light { position:absolute; right:10%; top:5%; width:90px; height:120px; background: linear-gradient(180deg, #ffe0a0 0%, #ffd070 100%); border:6px solid #c0a880; border-radius:6px; box-shadow: inset 0 0 20px rgba(255,220,100,0.5); }
.scn-deep-obscurity-school-conduct .ink-pot { position:absolute; bottom:22%; left:20%; width:14px; height:22px; background: radial-gradient(circle, #604020 0%, #302010 100%); border-radius: 30% 30% 40% 40%; box-shadow: 0 0 8px rgba(0,0,0,0.4); animation: dsc-ink 8s ease-in-out infinite; }
.scn-deep-obscurity-school-conduct .chalk-board { position:absolute; left:5%; top:10%; width:160px; height:80px; background: linear-gradient(180deg, #3a4a3a 0%, #2a3a2a 100%); border:4px solid #807060; border-radius:4px; box-shadow: inset 0 0 30px rgba(0,0,0,0.5); }
@keyframes dsc-figure { 0% { transform: translateX(0) rotate(0deg); } 25% { transform: translateX(4px) rotate(0.5deg); } 50% { transform: translateX(0) rotate(0deg); } 75% { transform: translateX(-4px) rotate(-0.5deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes dsc-ink { 0% { transform: scaleY(1); } 50% { transform: scaleY(0.95); } 100% { transform: scaleY(1); } }

/* SCENE 1: mrs-grose-relation */
.scn-mrs-grose-relation {
  background: 
    linear-gradient(180deg, #b08a5c 0%, #8c6b3e 60%, #5a4024 100%),
    radial-gradient(ellipse at 50% 0%, #f0d090 0%, transparent 70%);
}
.scn-mrs-grose-relation .wall {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #deb887 0%, #c4a265 100%);
  box-shadow: inset 0 0 60px rgba(0,0,0,0.2);
  animation: mgr-wall 8s ease-in-out infinite alternate;
}
.scn-mrs-grose-relation .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #6b4226 0%, #4a2c18 100%);
  transform: perspective(400px) rotateX(5deg);
}
.scn-mrs-grose-relation .window {
  position: absolute; top: 12%; left: 65%; width: 100px; height: 130px;
  background: radial-gradient(ellipse at center, #fff5e0 0%, #e8d8b0 60%, #a08050 100%);
  border: 6px solid #5a3a1a;
  border-radius: 4px;
  box-shadow: inset 0 0 30px rgba(255,245,224,0.3), 0 0 60px #f0d090;
  animation: mgr-window 12s ease-in-out infinite;
}
.scn-mrs-grose-relation .fireplace {
  position: absolute; bottom: 26%; left: 18%; width: 80px; height: 100px;
  background: linear-gradient(180deg, #3a2a18 0%, #1e140a 100%);
  border-radius: 10% 10% 4% 4%;
  box-shadow: inset 0 -20px 30px #8a6030;
}
.scn-mrs-grose-relation .glow {
  position: absolute; bottom: 38%; left: 22%; width: 60px; height: 40px;
  background: radial-gradient(ellipse, #ffb060 0%, transparent 70%);
  border-radius: 50%;
  animation: mgr-glow 3s ease-in-out infinite alternate;
}
.scn-mrs-grose-relation .figure {
  position: absolute; bottom: 22%; left: 42%; width: 30px; height: 70px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1e12 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: mgr-figure 5s ease-in-out infinite;
}
.scn-mrs-grose-relation .table {
  position: absolute; bottom: 22%; left: 48%; width: 50px; height: 15px;
  background: linear-gradient(180deg, #6b4226 0%, #3e2818 100%);
  border-radius: 2px;
  box-shadow: 0 4px 8px rgba(0,0,0,0.4);
}
@keyframes mgr-wall { 0% { opacity: 0.9; } 50% { opacity: 1; } 100% { opacity: 0.85; } }
@keyframes mgr-window { 0%,100% { box-shadow: inset 0 0 30px rgba(255,245,224,0.3), 0 0 60px #f0d090; } 50% { box-shadow: inset 0 0 50px rgba(255,245,224,0.5), 0 0 80px #f0c060; } }
@keyframes mgr-glow { 0% { transform: scale(1); opacity: 0.7; } 50% { transform: scale(1.3); opacity: 1; } 100% { transform: scale(0.9); opacity: 0.6; } }
@keyframes mgr-figure { 0% { transform: translateY(0) rotate(0deg); } 25% { transform: translateY(-2px) rotate(2deg); } 50% { transform: translateY(0) rotate(0deg); } 75% { transform: translateY(-1px) rotate(-2deg); } 100% { transform: translateY(0) rotate(0deg); } }

/* SCENE 2: uneasiness-in-connection */
.scn-uneasiness-in-connection {
  background: 
    linear-gradient(180deg, #2c3e50 0%, #1a252f 60%, #0f1a20 100%),
    radial-gradient(ellipse at 30% 50%, #4a6a80 0%, transparent 70%);
}
.scn-uneasiness-in-connection .bg-wall {
  position: absolute; inset: 0;
  background: linear-gradient(135deg, #1e2a36 0%, #2a3a4a 100%);
  animation: uic-wall 10s ease-in-out infinite alternate;
}
.scn-uneasiness-in-connection .window-frame {
  position: absolute; top: 15%; left: 30%; width: 160px; height: 180px;
  border: 8px solid #34495e;
  border-radius: 6px;
  background: transparent;
  box-shadow: inset 0 0 40px rgba(255,255,255,0.1);
}
.scn-uneasiness-in-connection .child-silhouette {
  position: absolute; bottom: 25%; left: 38%; width: 24px; height: 50px;
  background: #0a0e14;
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: uic-child 4s ease-in-out infinite alternate;
}
.scn-uneasiness-in-connection .light-rays {
  position: absolute; top: 20%; left: 32%; width: 100px; height: 150px;
  background: linear-gradient(135deg, rgba(220,240,255,0.4) 0%, transparent 100%);
  clip-path: polygon(0 0, 100% 0, 100% 100%, 0 100%);
  animation: uic-rays 3s ease-in-out infinite alternate;
}
.scn-uneasiness-in-connection .shadow-outside {
  position: absolute; top: 25%; left: 25%; width: 80px; height: 140px;
  background: rgba(10,14,20,0.7);
  border-radius: 10% 10% 40% 40%;
  filter: blur(6px);
  animation: uic-shadow 6s ease-in-out infinite;
}
.scn-uneasiness-in-connection .curtain {
  position: absolute; top: 15%; left: 28%; width: 40px; height: 180px;
  background: linear-gradient(180deg, #2a3a4a 0%, #1a2530 100%);
  border-radius: 4px;
  transform-origin: top left;
  animation: uic-curtain 7s ease-in-out infinite alternate;
}
@keyframes uic-wall { 0% { opacity: 0.8; } 50% { opacity: 1; } 100% { opacity: 0.7; } }
@keyframes uic-child { 0% { transform: translateY(0) rotate(-1deg); } 50% { transform: translateY(-3px) rotate(2deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes uic-rays { 0% { opacity: 0.3; transform: scaleX(1); } 50% { opacity: 0.7; transform: scaleX(1.1); } 100% { opacity: 0.4; transform: scaleX(0.9); } }
@keyframes uic-shadow { 0%,100% { transform: translateY(0) scale(1); opacity: 0.7; } 50% { transform: translateY(2px) scale(1.05); opacity: 0.9; } }
@keyframes uic-curtain { 0% { transform: rotate(0deg); } 50% { transform: rotate(3deg); } 100% { transform: rotate(-2deg); } }

/* SCENE 3: faint-summer-dawn-birds */
.scn-faint-summer-dawn-birds {
  background: 
    linear-gradient(180deg, #f2d8b8 0%, #e8c8a0 40%, #b8a080 70%, #6a5038 100%),
    radial-gradient(ellipse at 50% 0%, #ffe4c4 0%, transparent 70%);
}
.scn-faint-summer-dawn-birds .sky-dawn {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(180deg, #ffd8b0 0%, #f0c890 50%, #d4a86a 100%);
  animation: fsd-sky 15s ease-in-out infinite alternate;
}
.scn-faint-summer-dawn-birds .horizon {
  position: absolute; bottom: 35%; left: 0; right: 0; height: 8%;
  background: linear-gradient(180deg, #7a6a5a 0%, #5a4a3a 100%);
  border-radius: 50% 50% 0 0;
}
.scn-faint-summer-dawn-birds .branch {
  position: absolute; top: 12%; left: 10%; width: 180px; height: 6px;
  background: linear-gradient(90deg, #4a3a28 0%, #6a5a48 100%);
  border-radius: 4px;
  transform-origin: left center;
  animation: fsd-branch 20s ease-in-out infinite alternate;
}
.scn-faint-summer-dawn-birds .bird {
  position: absolute; top: 14%; left: 60%; width: 20px; height: 16px;
  background: #3a2a1a;
  clip-path: polygon(0% 50%, 30% 0%, 70% 0%, 100% 50%, 70% 100%, 30% 100%);
  animation: fsd-bird 1.5s ease-in-out infinite;
}
.scn-faint-summer-dawn-birds .sun-glow {
  position: absolute; top: 5%; left: 45%; width: 80px; height: 80px;
  background: radial-gradient(circle, #ffe4b0 0%, #ffd090 40%, transparent 70%);
  border-radius: 50%;
  filter: blur(8px);
  animation: fsd-sun 6s ease-in-out infinite alternate;
}
.scn-faint-summer-dawn-birds .clouds {
  position: absolute; top: 8%; left: 20%; width: 100px; height: 20px;
  background: rgba(255,240,220,0.4);
  border-radius: 50%;
  filter: blur(10px);
  animation: fsd-cloud 30s linear infinite;
}
@keyframes fsd-sky { 0% { opacity: 0.8; } 50% { opacity: 1; } 100% { opacity: 0.9; } }
@keyframes fsd-branch { 0% { transform: rotate(-2deg); } 50% { transform: rotate(3deg); } 100% { transform: rotate(-1deg); } }
@keyframes fsd-bird { 0%,100% { transform: translateY(0) rotate(0deg); } 25% { transform: translateY(-4px) rotate(-10deg); } 50% { transform: translateY(0) rotate(0deg); } 75% { transform: translateY(4px) rotate(10deg); } }
@keyframes fsd-sun { 0% { transform: scale(1); opacity: 0.6; } 50% { transform: scale(1.2); opacity: 1; } 100% { transform: scale(0.9); opacity: 0.7; } }
@keyframes fsd-cloud { 0% { transform: translateX(0); } 100% { transform: translateX(120vw); } }

/* SCENE 4: fancies-thrown-off */
.scn-fancies-thrown-off {
  background: 
    linear-gradient(180deg, #e8c8a0 0%, #d4b88a 40%, #a88a6a 70%, #7a6048 100%),
    radial-gradient(ellipse at 50% 0%, #fce4c8 0%, transparent 70%);
}
.scn-fancies-thrown-off .sky-dawn-fto {
  position: absolute; inset: 0 0 45% 0;
  background: linear-gradient(180deg, #ffd8b0 0%, #f0c890 50%, #c4a06a 100%);
  animation: fto-sky 14s ease-in-out infinite alternate;
}
.scn-fancies-thrown-off .house-fto {
  position: absolute; bottom: 35%; left: 60%; width: 100px; height: 80px;
  background: linear-gradient(180deg, #b08a60 0%, #7a5a3a 100%);
  border-radius: 8% 8% 4% 4%;
  box-shadow: 0 6px 12px rgba(0,0,0,0.3);
  animation: fto-house 9s ease-in-out infinite;
}
.scn-fancies-thrown-off .path {
  position: absolute; bottom: 15%; left: 30%; right: 30%; height: 10%;
  background: linear-gradient(180deg, #a08060 0%, #8a6a4a 100%);
  border-radius: 50% 50% 0 0;
  transform: perspective(200px) rotateX(10deg);
}
.scn-fancies-thrown-off .fence {
  position: absolute; bottom: 30%; left: 20%; width: 4px; height: 40px;
  background: #6a4a2a;
  box-shadow: 20px 0 0 #6a4a2a, 40px 0 0 #6a4a2a, 60px 0 0 #6a4a2a, 80px 0 0 #6a4a2a;
  animation: fto-fence 12s ease-in-out infinite;
}
.scn-fancies-thrown-off .child-figure {
  position: absolute; bottom: 22%; left: 38%; width: 20px; height: 45px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1e140a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: fto-child 4s ease-in-out infinite;
}
.scn-fancies-thrown-off .flowers {
  position: absolute; bottom: 18%; left: 55%; width: 24px; height: 24px;
  background: radial-gradient(circle, #d88870 0%, #b86850 100%);
  border-radius: 50%;
  box-shadow: 30px 0 0 #d88870, -20px 10px 0 #c87858;
  animation: fto-flowers 6s ease-in-out infinite alternate;
}
.scn-fancies-thrown-off .butterfly {
  position: absolute; top: 20%; left: 45%; width: 16px; height: 12px;
  background: #8a6a4a;
  clip-path: polygon(0% 50%, 50% 0%, 100% 50%, 50% 100%);
  transform-origin: center;
  animation: fto-butterfly 3s ease-in-out infinite;
}
@keyframes fto-sky { 0% { opacity: 0.85; } 50% { opacity: 1; } 100% { opacity: 0.9; } }
@keyframes fto-house { 0%,100% { transform: translateY(0); } 50% { transform: translateY(-2px); } }
@keyframes fto-fence { 0%,100% { opacity: 0.8; } 50% { opacity: 1; } }
@keyframes fto-child { 0% { transform: translateY(0) rotate(0deg); } 25% { transform: translateY(-3px) rotate(3deg); } 50% { transform: translateY(0) rotate(0deg); } 75% { transform: translateY(-2px) rotate(-3deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes fto-flowers { 0% { transform: rotate(-5deg); } 50% { transform: rotate(5deg); } 100% { transform: rotate(-3deg); } }
@keyframes fto-butterfly { 0%,100% { transform: translateY(0) rotate(0deg) scale(1); } 25% { transform: translateY(-8px) rotate(-15deg) scale(1.2); } 50% { transform: translateY(0) rotate(0deg) scale(1); } 75% { transform: translateY(6px) rotate(15deg) scale(0.9); } }

.scn-write-tonight { background: linear-gradient(180deg, #2a1a10 0%, #1a0e05 100%), radial-gradient(ellipse at 70% 60%, #3a2a1a 0%, transparent 80%); }
.scn-write-tonight .bg { position:absolute; inset:0; background: linear-gradient(135deg, #1a1a1a 0%, #0d0d0d 100%); opacity:.6; }
.scn-write-tonight .desk { position:absolute; bottom:8%; left:10%; right:10%; height:16%; background: linear-gradient(180deg, #4a3020 0%, #2a1a10 100%); border-radius:4px; box-shadow:0 -4px 8px rgba(0,0,0,.5); }
.scn-write-tonight .lamp { position:absolute; bottom:24%; left:30%; width:12px; height:36px; background: linear-gradient(180deg, #6a5040 0%, #3a2a1a 100%); border-radius:6px 6px 2px 2px; transform:rotate(-5deg); }
.scn-write-tonight .lamp-glow { position:absolute; bottom:36%; left:30%; width:40px; height:40px; background: radial-gradient(circle, #f0c060 0%, #c08030 40%, transparent 70%); border-radius:50%; opacity:.8; animation: wt-glow 2s ease-in-out infinite alternate; }
.scn-write-tonight .paper { position:absolute; bottom:14%; left:35%; width:40%; height:12%; background: linear-gradient(135deg, #e8dcc8 0%, #c8b898 100%); border-radius:2px; transform:rotate(2deg); box-shadow:0 2px 6px rgba(0,0,0,.3); animation: wt-flutter 6s ease-in-out infinite; }
.scn-write-tonight .window { position:absolute; top:10%; right:8%; width:30%; height:40%; background: linear-gradient(180deg, #1a2a3a 0%, #0a1a2a 100%); border:4px solid #3a2a1a; border-radius:4px; }
.scn-write-tonight .curtain-left { position:absolute; top:8%; left:5%; width:12%; height:44%; background: linear-gradient(180deg, #5a4a3a 0%, #2a1a10 100%); border-radius:0 8px 8px 0; transform-origin:top left; animation: wt-curtain 10s ease-in-out infinite; }
.scn-write-tonight .curtain-right { position:absolute; top:8%; right:5%; width:12%; height:44%; background: linear-gradient(180deg, #5a4a3a 0%, #2a1a10 100%); border-radius:8px 0 0 8px; transform-origin:top right; animation: wt-curtain 10s ease-in-out infinite reverse; }
@keyframes wt-glow { 0% { opacity:.6; transform:scale(.9); } 50% { opacity:1; transform:scale(1.1); } 100% { opacity:.7; transform:scale(1); } }
@keyframes wt-flutter { 0% { transform:rotate(2deg) translateY(0); } 33% { transform:rotate(1deg) translateY(-2px); } 66% { transform:rotate(3deg) translateY(1px); } 100% { transform:rotate(2deg) translateY(0); } }
@keyframes wt-curtain { 0% { transform:rotate(0deg) scaleX(1); } 50% { transform:rotate(3deg) scaleX(1.05); } 100% { transform:rotate(0deg) scaleX(1); } }

.scn-miles-awake { background: linear-gradient(180deg, #2a1a0e 0%, #1a0e05 100%), radial-gradient(ellipse at 50% 80%, #3a2a1a 0%, transparent 70%); }
.scn-miles-awake .bg { position:absolute; inset:0; background: linear-gradient(135deg, #1a1a1a 0%, #0d0d0d 100%); opacity:.5; }
.scn-miles-awake .bed-frame { position:absolute; bottom:5%; left:10%; right:10%; height:55%; background: linear-gradient(180deg, #5a4030 0%, #3a2818 100%); border-radius:8px; box-shadow:0 8px 20px rgba(0,0,0,.6); }
.scn-miles-awake .mattress { position:absolute; bottom:12%; left:12%; right:12%; height:40%; background: linear-gradient(180deg, #8a7060 0%, #6a5040 100%); border-radius:6px; }
.scn-miles-awake .blanket { position:absolute; bottom:18%; left:15%; right:15%; height:25%; background: linear-gradient(180deg, #7a6050 0%, #5a4030 100%); border-radius:4px; transform-origin:bottom; animation: ma-blanket 4s ease-in-out infinite; }
.scn-miles-awake .pillow { position:absolute; bottom:38%; left:25%; width:20%; height:10%; background: linear-gradient(180deg, #c8b898 0%, #a89070 100%); border-radius:50%; }
.scn-miles-awake .boy-body { position:absolute; bottom:28%; left:35%; width:14%; height:30%; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a10 100%); border-radius:30% 30% 20% 20% / 40% 40% 30% 30%; transform-origin:bottom; animation: ma-bounce 2s ease-in-out infinite; }
.scn-miles-awake .boy-head { position:absolute; bottom:54%; left:34%; width:16%; height:14%; background: linear-gradient(180deg, #6a5040 0%, #4a3a2a 100%); border-radius:50%; animation: ma-bounce 2s ease-in-out infinite 0.1s; }
.scn-miles-awake .candle { position:absolute; bottom:40%; right:20%; width:6px; height:20px; background: linear-gradient(180deg, #e8c8a0 0%, #c8a080 100%); border-radius:2px; }
.scn-miles-awake .candle-glow { position:absolute; bottom:50%; right:20%; width:30px; height:30px; background: radial-gradient(circle, #f0d060 0%, #d0a040 40%, transparent 70%); border-radius:50%; opacity:.7; animation: ma-flicker 1.5s ease-in-out infinite alternate; }
@keyframes ma-blanket { 0% { transform:scaleY(1) translateY(0); } 40% { transform:scaleY(1.02) translateY(-2px); } 70% { transform:scaleY(0.98) translateY(1px); } 100% { transform:scaleY(1) translateY(0); } }
@keyframes ma-bounce { 0% { transform:translateY(0) rotate(0deg); } 30% { transform:translateY(-6px) rotate(4deg); } 60% { transform:translateY(-2px) rotate(-2deg); } 100% { transform:translateY(0) rotate(0deg); } }
@keyframes ma-flicker { 0% { opacity:.5; transform:scale(.8); } 50% { opacity:1; transform:scale(1.2); } 100% { opacity:.6; transform:scale(.9); } }

.scn-think-of-you { background: linear-gradient(180deg, #1a120a 0%, #0d0805 100%), radial-gradient(ellipse at 30% 70%, #3a2a1a 0%, transparent 80%); }
.scn-think-of-you .bg { position:absolute; inset:0; background: linear-gradient(135deg, #1a1a1a 0%, #0d0d0d 100%); opacity:.5; }
.scn-think-of-you .bed { position:absolute; bottom:5%; left:8%; right:8%; height:60%; background: linear-gradient(180deg, #4a3828 0%, #2a1a10 100%); border-radius:10px; box-shadow:0 6px 18px rgba(0,0,0,.6); }
.scn-think-of-you .blanket { position:absolute; bottom:15%; left:10%; right:10%; height:20%; background: linear-gradient(180deg, #6a5040 0%, #4a3828 100%); border-radius:4px; animation: ty-blanket 8s ease-in-out infinite; }
.scn-think-of-you .pillow { position:absolute; bottom:45%; left:20%; width:22%; height:12%; background: linear-gradient(180deg, #b89878 0%, #987858 100%); border-radius:50%; }
.scn-think-of-you .man-body { position:absolute; bottom:25%; left:20%; width:20%; height:35%; background: linear-gradient(180deg, #3a2a1a 0%, #1a120a 100%); border-radius:40% 40% 20% 20% / 50% 50% 30% 30%; }
.scn-think-of-you .man-arm { position:absolute; bottom:30%; left:28%; width:15%; height:8%; background: linear-gradient(180deg, #3a2a1a 0%, #2a1a10 100%); border-radius:20% 20% 50% 50%; transform-origin:left center; animation: ty-reach 10s ease-in-out infinite; }
.scn-think-of-you .candle { position:absolute; bottom:50%; right:20%; width:6px; height:24px; background: linear-gradient(180deg, #e8c8a0 0%, #c8a080 100%); border-radius:2px; }
.scn-think-of-you .candle-glow { position:absolute; bottom:60%; right:20%; width:40px; height:40px; background: radial-gradient(circle, #f0c060 0%, #d0a040 30%, transparent 70%); border-radius:50%; opacity:.8; animation: ty-glow 6s ease-in-out infinite alternate; }
@keyframes ty-blanket { 0% { transform:translateY(0); } 33% { transform:translateY(-2px); } 66% { transform:translateY(1px); } 100% { transform:translateY(0); } }
@keyframes ty-reach { 0% { transform:rotate(-10deg) translateX(0); } 50% { transform:rotate(10deg) translateX(8px); } 100% { transform:rotate(-10deg) translateX(0); } }
@keyframes ty-glow { 0% { opacity:.6; transform:scale(.9); } 50% { opacity:1; transform:scale(1.15); } 100% { opacity:.7; transform:scale(1); } }

.scn-queer-business { background: linear-gradient(180deg, #2a1a10 0%, #1a0e05 100%), radial-gradient(ellipse at 40% 70%, #2a1a10 0%, transparent 80%); }
.scn-queer-business .bg { position:absolute; inset:0; background: linear-gradient(135deg, #1a1a1a 0%, #0d0d0d 100%); opacity:.6; }
.scn-queer-business .bed { position:absolute; bottom:5%; left:10%; right:10%; height:55%; background: linear-gradient(180deg, #4a3828 0%, #2a1a10 100%); border-radius:8px; box-shadow:0 6px 20px rgba(0,0,0,.6); }
.scn-queer-business .blanket { position:absolute; bottom:15%; left:12%; right:12%; height:20%; background: linear-gradient(180deg, #5a4030 0%, #3a2818 100%); border-radius:4px; animation: qb-blanket 5s ease-in-out infinite; }
.scn-queer-business .pillow { position:absolute; bottom:42%; left:25%; width:20%; height:10%; background: linear-gradient(180deg, #b89878 0%, #987858 100%); border-radius:50%; }
.scn-queer-business .boy-body { position:absolute; bottom:26%; left:30%; width:15%; height:30%; background: linear-gradient(180deg, #3a2a1a 0%, #1a120a 100%); border-radius:30% 30% 20% 20% / 40% 40% 30% 30%; transform-origin:bottom; animation: qb-boy 4s ease-in-out infinite; }
.scn-queer-business .boy-head { position:absolute; bottom:52%; left:29%; width:18%; height:16%; background: linear-gradient(180deg, #5a4030 0%, #3a2a1a 100%); border-radius:50%; animation: qb-boy 4s ease-in-out infinite 0.2s; }
.scn-queer-business .taper { position:absolute; bottom:45%; right:22%; width:4px; height:18px; background: linear-gradient(180deg, #e8c8a0 0%, #c8a080 100%); border-radius:1px; }
.scn-queer-business .taper-glow { position:absolute; bottom:52%; right:22%; width:25px; height:25px; background: radial-gradient(circle, #f0c060 0%, #c08030 30%, transparent 70%); border-radius:50%; opacity:.7; animation: qb-flicker 1.5s ease-in-out infinite alternate; }
@keyframes qb-blanket { 0% { transform:translateY(0) scaleX(1); } 40% { transform:translateY(-2px) scaleX(1.02); } 70% { transform:translateY(1px) scaleX(0.98); } 100% { transform:translateY(0) scaleX(1); } }
@keyframes qb-boy { 0% { transform:translateY(0) rotate(0deg); } 25% { transform:translateY(-4px) rotate(3deg); } 50% { transform:translateY(-1px) rotate(-1deg); } 75% { transform:translateY(-3px) rotate(2deg); } 100% { transform:translateY(0) rotate(0deg); } }
@keyframes qb-flicker { 0% { opacity:.4; transform:scale(.8); } 50% { opacity:1; transform:scale(1.2); } 100% { opacity:.5; transform:scale(.9); } }

.scn-conditions-prohibitive { background: linear-gradient(180deg, #2a1a1a 0%, #3a2a1a 50%, #1a0a0a 100%), radial-gradient(ellipse at 50% 80%, #4a2a10 0%, transparent 70%); }
.scn-conditions-prohibitive .room-wall { position: absolute; inset: 0 0 30% 0; background: linear-gradient(180deg, #3a2a1a 0%, #2a1a1a 100%); box-shadow: inset 0 -20px 40px rgba(0,0,0,.6); animation: cp-wall 20s ease-in-out infinite alternate; }
.scn-conditions-prohibitive .floor { position: absolute; bottom: 0; left: 0; right: 0; height: 30%; background: linear-gradient(180deg, #1a0a0a 0%, #0a0505 100%); box-shadow: inset 0 10px 30px rgba(0,0,0,.5); }
.scn-conditions-prohibitive .fireplace { position: absolute; bottom: 30%; left: 50%; width: 120px; height: 80px; transform: translateX(-50%); background: linear-gradient(180deg, #2a1a0a 0%, #1a0a00 100%); border-radius: 20% 20% 10% 10% / 30% 30% 10% 10%; box-shadow: inset 0 0 30px rgba(0,0,0,.7); }
.scn-conditions-prohibitive .fire { position: absolute; bottom: 35%; left: 50%; width: 60px; height: 70px; transform: translateX(-50%); background: radial-gradient(ellipse at 50% 80%, #ff8c40 0%, #ff6020 30%, #c04010 60%, transparent 100%); border-radius: 50% 50% 20% 20%; animation: cp-fire 1.5s ease-in-out infinite alternate; }
.scn-conditions-prohibitive .door { position: absolute; bottom: 30%; left: 20%; width: 80px; height: 110px; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius: 5% 5% 0 0; border: 4px solid #1a0a00; box-sizing: border-box; box-shadow: -5px 0 15px rgba(0,0,0,.5); }
.scn-conditions-prohibitive .barrier { position: absolute; bottom: 38%; left: 20%; width: 70px; height: 5px; background: #5a4a3a; box-shadow: 0 15px 0 #5a4a3a, 0 30px 0 #5a4a3a, 0 45px 0 #5a4a3a; animation: cp-barrier 4s ease-in-out infinite; }
.scn-conditions-prohibitive .figure-shadow { position: absolute; bottom: 30%; left: 60%; width: 35px; height: 60px; background: linear-gradient(180deg, #1a0a0a 0%, #0a0000 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: cp-figure 3s ease-in-out infinite; }
.scn-conditions-prohibitive .sparks { position: absolute; bottom: 42%; left: 50%; width: 100px; height: 80px; transform: translateX(-50%); background: radial-gradient(circle at 30% 70%, #ffa040 2px, transparent 2px), radial-gradient(circle at 50% 50%, #ff8040 1px, transparent 1px), radial-gradient(circle at 70% 60%, #ffa040 3px, transparent 3px); background-size: 100% 100%; animation: cp-sparks 0.8s linear infinite; }
@keyframes cp-wall { 0% { opacity: .9 } 50% { opacity: 1 } 100% { opacity: .85 } }
@keyframes cp-fire { 0% { transform: translateX(-50%) scaleY(1) translateY(0); opacity: .9 } 50% { transform: translateX(-50%) scaleY(1.1) translateY(-3px); opacity: 1 } 100% { transform: translateX(-50%) scaleY(.95) translateY(1px); opacity: .85 } }
@keyframes cp-barrier { 0%, 100% { box-shadow: 0 15px 0 #5a4a3a, 0 30px 0 #5a4a3a, 0 45px 0 #5a4a3a; } 50% { box-shadow: 0 15px 0 #6a5a4a, 0 30px 0 #6a5a4a, 0 45px 0 #6a5a4a; } }
@keyframes cp-figure { 0% { transform: translateX(0) rotate(-2deg) } 25% { transform: translateX(10px) rotate(2deg) } 50% { transform: translateX(20px) rotate(-1deg) } 75% { transform: translateX(30px) rotate(1deg) } 100% { transform: translateX(40px) rotate(0) } }
@keyframes cp-sparks { 0% { background-position: 0 0, 0 0, 0 0; opacity: 1 } 50% { background-position: -10px -5px, 5px -10px, -5px -3px; opacity: .8 } 100% { background-position: -20px -10px, 10px -20px, -10px -6px; opacity: .6 } }

.scn-already-felt-rewarded { background: linear-gradient(180deg, #3a2a1a 0%, #4a3a2a 50%, #2a1a0a 100%), radial-gradient(ellipse at 60% 50%, #8a6020 0%, transparent 70%); }
.scn-already-felt-rewarded .room-corner { position: absolute; inset: 0 0 25% 0; background: linear-gradient(135deg, #4a3a2a 0%, #2a1a0a 100%); box-shadow: inset 0 0 40px rgba(0,0,0,.5); }
.scn-already-felt-rewarded .hearth { position: absolute; bottom: 25%; left: 20%; width: 140px; height: 90px; background: linear-gradient(180deg, #3a2a1a 0%, #1a0a00 100%); border-radius: 30% 30% 10% 10% / 40% 40% 10% 10%; box-shadow: inset 0 0 30px #000; }
.scn-already-felt-rewarded .fire-glow { position: absolute; bottom: 30%; left: 20%; width: 140px; height: 100px; background: radial-gradient(ellipse at 50% 80%, #ffa040 0%, #ff8020 30%, transparent 70%); border-radius: 50%; animation: afr-glow 2s ease-in-out infinite alternate; }
.scn-already-felt-rewarded .figure-a { position: absolute; bottom: 25%; left: 50%; width: 30px; height: 50px; background: linear-gradient(180deg, #2a1a0a 0%, #1a0a00 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: afr-fig-a 4s ease-in-out infinite; }
.scn-already-felt-rewarded .figure-b { position: absolute; bottom: 25%; left: 65%; width: 30px; height: 50px; background: linear-gradient(180deg, #1a2a0a 0%, #0a1a00 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: afr-fig-b 4s ease-in-out infinite reverse; }
.scn-already-felt-rewarded .hands { position: absolute; bottom: 33%; left: 55%; width: 20px; height: 15px; background: #4a3a2a; border-radius: 30% 30% 40% 40%; box-shadow: 10px 0 0 #3a2a1a; animation: afr-hands 6s ease-in-out infinite; }
.scn-already-felt-rewarded .warm-light { position: absolute; bottom: 25%; left: 50%; width: 200px; height: 200px; transform: translateX(-50%); background: radial-gradient(ellipse at 50% 50%, rgba(255,160,64,.3) 0%, transparent 70%); animation: afr-light 8s ease-in-out infinite alternate; }
@keyframes afr-glow { 0% { opacity: .7; transform: scale(1) } 50% { opacity: 1; transform: scale(1.1) } 100% { opacity: .8; transform: scale(.95) } }
@keyframes afr-fig-a { 0% { transform: translateY(0) rotate(-1deg) } 25% { transform: translateY(-2px) rotate(0) } 50% { transform: translateY(-1px) rotate(1deg) } 75% { transform: translateY(-3px) rotate(0) } 100% { transform: translateY(0) rotate(-1deg) } }
@keyframes afr-fig-b { 0% { transform: translateY(0) rotate(1deg) } 25% { transform: translateY(-1px) rotate(0) } 50% { transform: translateY(-2px) rotate(-1deg) } 75% { transform: translateY(-3px) rotate(0) } 100% { transform: translateY(0) rotate(1deg) } }
@keyframes afr-hands { 0% { transform: translateY(0) scale(1) } 25% { transform: translateY(-2px) scale(1.05) } 50% { transform: translateY(0) scale(1) } 75% { transform: translateY(1px) scale(.98) } 100% { transform: translateY(0) scale(1) } }
@keyframes afr-light { 0% { opacity: .4; transform: translateX(-50%) scale(1) } 50% { opacity: .8; transform: translateX(-50%) scale(1.2) } 100% { opacity: .5; transform: translateX(-50%) scale(.9) } }

.scn-gilt-edged-album-manuscript { background: linear-gradient(180deg, #2a1a0a 0%, #1a0a00 50%, #0a0500 100%), radial-gradient(ellipse at 50% 60%, #4a2a10 0%, transparent 80%); }
.scn-gilt-edged-album-manuscript .desk-surface { position: absolute; bottom: 0; left: 10%; right: 10%; height: 40%; background: linear-gradient(180deg, #2a1a0a 0%, #1a0a00 100%); border-radius: 5% 5% 0 0; box-shadow: inset 0 10px 20px rgba(0,0,0,.6); }
.scn-gilt-edged-album-manuscript .book-spine { position: absolute; bottom: 35%; left: 20%; width: 12px; height: 60px; background: linear-gradient(180deg, #8a6a3a 0%, #5a3a1a 100%); border-radius: 3px; }
.scn-gilt-edged-album-manuscript .open-page { position: absolute; bottom: 30%; left: 25%; width: 120px; height: 80px; background: linear-gradient(180deg, #f0e0c0 0%, #d0c0a0 100%); transform: skewX(-5deg); border-radius: 2px; box-shadow: 2px 2px 10px rgba(0,0,0,.3); animation: gea-page 10s ease-in-out infinite alternate; }
.scn-gilt-edged-album-manuscript .gilt-edge { position: absolute; bottom: 30%; left: 25%; width: 120px; height: 4px; background: linear-gradient(90deg, #ffd700 0%, #cc9900 50%, #ffd700 100%); box-shadow: 0 0 15px #ffd700, 0 0 30px rgba(255,215,0,.3); animation: gea-gilt 4s ease-in-out infinite alternate; }
.scn-gilt-edged-album-manuscript .candle { position: absolute; bottom: 28%; left: 60%; width: 14px; height: 40px; background: linear-gradient(180deg, #f0e0c0 0%, #e0c0a0 100%); border-radius: 2px 2px 0 0; box-shadow: 0 0 10px rgba(255,200,100,.5); }
.scn-gilt-edged-album-manuscript .candle-flame { position: absolute; bottom: 65%; left: 60%; width: 8px; height: 16px; margin-left: 3px; background: radial-gradient(ellipse at 50% 80%, #ffa040 0%, #ff8020 40%, transparent 100%); border-radius: 50% 50% 30% 30%; animation: gea-flame 3s ease-in-out infinite alternate; }
.scn-gilt-edged-album-manuscript .hand { position: absolute; bottom: 28%; left: 70%; width: 18px; height: 24px; background: linear-gradient(180deg, #c0a080 0%, #a08060 100%); border-radius: 30% 30% 40% 40% / 50% 50% 30% 30%; transform-origin: bottom; animation: gea-hand 6s ease-in-out infinite; }
@keyframes gea-page { 0% { transform: skewX(-5deg) translateY(0) } 50% { transform: skewX(-4deg) translateY(-2px) } 100% { transform: skewX(-5deg) translateY(0) } }
@keyframes gea-gilt { 0% { opacity: .7; box-shadow: 0 0 10px #ffd700, 0 0 20px rgba(255,215,0,.3) } 50% { opacity: 1; box-shadow: 0 0 25px #ffd700, 0 0 40px rgba(255,215,0,.5) } 100% { opacity: .8; box-shadow: 0 0 15px #ffd700, 0 0 30px rgba(255,215,0,.4) } }
@keyframes gea-flame { 0% { transform: scaleY(1) translateY(0) rotate(-2deg) } 50% { transform: scaleY(1.15) translateY(-2px) rotate(2deg) } 100% { transform: scaleY(.9) translateY(1px) rotate(-1deg) } }
@keyframes gea-hand { 0% { transform: rotate(0) translateY(0) } 25% { transform: rotate(5deg) translateY(-2px) } 50% { transform: rotate(0) translateY(0) } 75% { transform: rotate(-3deg) translateY(-1px) } 100% { transform: rotate(0) translateY(0) } }

.scn-journey-to-bly { background: linear-gradient(180deg, #3a3a4a 0%, #2a2a3a 50%, #1a1a2a 100%), radial-gradient(ellipse at 50% 30%, #5a5a6a 0%, transparent 60%); }
.scn-journey-to-bly .coach-interior { position: absolute; inset: 0; background: linear-gradient(135deg, #2a2a3a 0%, #1a1a2a 100%); box-shadow: inset 0 0 60px rgba(0,0,0,.7); }
.scn-journey-to-bly .window-frame { position: absolute; top: 15%; left: 20%; right: 20%; bottom: 30%; border: 12px solid #2a1a1a; box-shadow: inset 0 0 20px rgba(0,0,0,.5); background: #3a3a4a; border-radius: 5px; }
.scn-journey-to-bly .sky-outside { position: absolute; top: 0; left: 0; right: 0; bottom: 0; background: linear-gradient(180deg, #4a4a5a 0%, #3a3a4a 50%, #2a2a3a 100%); animation: jtb-sky 30s linear infinite; }
.scn-journey-to-bly .hills-passing { position: absolute; bottom: 30%; left: 0; right: 0; height: 35%; background: linear-gradient(180deg, #2a3a2a 0%, #1a2a1a 100%); border-radius: 40% 40% 0 0; animation: jtb-hills 20s linear infinite; }
.scn-journey-to-bly .road { position: absolute; bottom: 0; left: 0; right: 0; height: 30%; background: linear-gradient(180deg, #2a2a1a 0%, #1a1a0a 100%); animation: jtb-road 8s linear infinite; }
.scn-journey-to-bly .figure-seated { position: absolute; bottom: 30%; left: 10%; width: 25px; height: 45px; background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: jtb-figure 3s ease-in-out infinite; }
.scn-journey-to-bly .luggage { position: absolute; bottom: 30%; right: 10%; width: 30px; height: 20px; background: linear-gradient(180deg, #2a1a0a 0%, #1a0a00 100%); border-radius: 3px; box-shadow: 5px 0 0 #1a0a00; animation: jtb-luggage 4s ease-in-out infinite alternate; }
@keyframes jtb-sky { 0% { background-position: 0 0; } 100% { background-position: -300px 0; } }
@keyframes jtb-hills { 0% { transform: translateX(0); } 100% { transform: translateX(-100px); } }
@keyframes jtb-road { 0% { background-position: 0 0; } 100% { background-position: -200px 0; } }
@keyframes jtb-figure { 0% { transform: translateY(0) rotate(0) } 25% { transform: translateY(-2px) rotate(2deg) } 50% { transform: translateY(-1px) rotate(0) } 75% { transform: translateY(-3px) rotate(-1deg) } 100% { transform: translateY(0) rotate(0) } }
@keyframes jtb-luggage { 0% { transform: translateY(0) scale(1) } 50% { transform: translateY(-2px) scale(1.1) } 100% { transform: translateY(0) scale(1) } }

.scn-he-s-a-horror {
  background: linear-gradient(180deg, #2a2040 0%, #3a2a50 30%, #1a1030 70%, #0a0a1a 100%), radial-gradient(ellipse at 50% 0%, #4a3a6a 0%, transparent 60%);
}
.scn-he-s-a-horror .sky {
  position: absolute; inset: 0 0 60% 0;
  background: linear-gradient(180deg, #3a2a50 0%, #2a2040 100%);
  animation: hsh-sky 20s ease-in-out infinite alternate;
}
.scn-he-s-a-horror .horizon {
  position: absolute; bottom: 40%; left: 0; right: 0; height: 15%;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 30% 70% 0 0 / 60% 90% 0 0;
  box-shadow: inset 0 4px 10px rgba(0,0,0,0.6);
  animation: hsh-horizon 12s ease-in-out infinite;
}
.scn-he-s-a-horror .figure {
  position: absolute; bottom: 35%; left: 55%; width: 24px; height: 50px;
  background: linear-gradient(180deg, #0a0a12 0%, #000 100%);
  border-radius: 50% 50% 40% 40% / 70% 70% 40% 40%;
  transform-origin: bottom center;
  animation: hsh-figure 6s ease-in-out infinite;
}
.scn-he-s-a-horror .fence {
  position: absolute; bottom: 42%; left: 30%; width: 40%; height: 2px;
  background: #15152a;
  box-shadow: 0 -8px 0 #15152a, 0 -16px 0 #15152a, 0 -24px 0 #15152a;
  animation: hsh-fence 15s linear infinite;
}
.scn-he-s-a-horror .fog {
  position: absolute; inset: 50% 0 0 0;
  background: linear-gradient(0deg, rgba(20,15,30,0.6) 0%, transparent 100%);
  filter: blur(8px);
  animation: hsh-fog 8s ease-in-out infinite alternate;
}
.scn-he-s-a-horror .ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 40%;
  background: linear-gradient(180deg, #0a0a14 0%, #050510 100%);
  border-radius: 0 0 10% 10%;
}
@keyframes hsh-sky { 0% { opacity: 0.8; } 50% { opacity: 1; } 100% { opacity: 0.7; } }
@keyframes hsh-horizon { 0%,100% { transform: translateY(0); } 50% { transform: translateY(-2px); } }
@keyframes hsh-figure { 0% { transform: translateX(0) rotate(0deg); } 25% { transform: translateX(-4px) rotate(-2deg); } 50% { transform: translateX(4px) rotate(2deg); } 75% { transform: translateX(-2px) rotate(-1deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes hsh-fence { 0% { opacity: 0.5; } 50% { opacity: 1; } 100% { opacity: 0.5; } }
@keyframes hsh-fog { 0% { opacity: 0.6; transform: translateY(0); } 100% { opacity: 1; transform: translateY(-5px); } }

.scn-afraid-of-him {
  background: linear-gradient(180deg, #1a1a2a 0%, #2a2a3e 40%, #3a2a4a 100%), radial-gradient(circle at 30% 70%, #3a2a4a 0%, transparent 70%);
}
.scn-afraid-of-him .wall {
  position: absolute; inset: 0 30% 0 0;
  background: linear-gradient(180deg, #2a2a38 0%, #1a1a28 100%);
  border-right: 2px solid #0a0a14;
  animation: afh-wall 10s ease-in-out infinite alternate;
}
.scn-afraid-of-him .window-frame {
  position: absolute; top: 20%; left: 20%; width: 50%; height: 60%;
  background: #0a0a14;
  border: 4px solid #1a1a2a;
  border-radius: 8px;
  box-shadow: inset 0 0 20px rgba(0,0,0,0.8);
  animation: afh-frame 6s ease-in-out infinite;
}
.scn-afraid-of-him .glass {
  position: absolute; top: 22%; left: 23%; width: 44%; height: 56%;
  background: linear-gradient(135deg, rgba(60,50,80,0.4) 0%, rgba(20,15,30,0.6) 100%);
  filter: blur(2px);
  animation: afh-glass 4s ease-in-out infinite alternate;
}
.scn-afraid-of-him .figure-inside {
  position: absolute; bottom: 30%; left: 30%; width: 20px; height: 60px;
  background: linear-gradient(180deg, #15152a 0%, #0a0a1a 100%);
  border-radius: 50% 50% 40% 40% / 70% 70% 30% 30%;
  transform-origin: bottom center;
  animation: afh-inside 3s ease-in-out infinite;
}
.scn-afraid-of-him .figure-outside {
  position: absolute; bottom: 25%; left: 55%; width: 22px; height: 50px;
  background: linear-gradient(180deg, #050510 0%, #000 100%);
  border-radius: 40% 60% 40% 40% / 60% 80% 30% 30%;
  transform-origin: bottom center;
  opacity: 0.8;
  animation: afh-outside 5s ease-in-out infinite;
}
.scn-afraid-of-him .curtain {
  position: absolute; top: 18%; left: 18%; width: 54%; height: 64%;
  background: linear-gradient(180deg, rgba(30,20,40,0.3) 0%, transparent 100%);
  filter: blur(6px);
  animation: afh-curtain 8s ease-in-out infinite alternate;
}
.scn-afraid-of-him .shadow {
  position: absolute; bottom: 0; left: 30%; width: 40%; height: 10%;
  background: radial-gradient(ellipse at 50% 100%, rgba(0,0,0,0.5) 0%, transparent 100%);
  animation: afh-shadow 7s ease-in-out infinite;
}
@keyframes afh-wall { 0% { opacity: 0.9; } 50% { opacity: 1; } 100% { opacity: 0.8; } }
@keyframes afh-frame { 0%,100% { transform: scale(1); } 50% { transform: scale(0.98); } }
@keyframes afh-glass { 0% { opacity: 0.6; } 50% { opacity: 0.9; } 100% { opacity: 0.5; } }
@keyframes afh-inside { 0% { transform: translateX(0) rotate(0deg); } 30% { transform: translateX(3px) rotate(1deg); } 60% { transform: translateX(-2px) rotate(-1deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes afh-outside { 0% { transform: translateY(0) rotate(0deg); } 25% { transform: translateY(-3px) rotate(2deg); } 50% { transform: translateY(0) rotate(-1deg); } 75% { transform: translateY(-2px) rotate(1deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes afh-curtain { 0% { transform: translateX(0) scaleY(1); } 100% { transform: translateX(5px) scaleY(0.95); } }
@keyframes afh-shadow { 0%,100% { opacity: 0.5; } 50% { opacity: 0.8; } }

.scn-glimmer-of-consciousness {
  background: linear-gradient(180deg, #1a1a3a 0%, #2a1a4a 30%, #1a0a2a 70%, #0a0a1a 100%), radial-gradient(ellipse at 50% 0%, #3a2a5a 0%, transparent 60%);
}
.scn-glimmer-of-consciousness .sky {
  position: absolute; inset: 0 0 70% 0;
  background: linear-gradient(180deg, #2a1a4a 0%, #1a0a2a 100%);
  animation: goc-sky 15s ease-in-out infinite alternate;
}
.scn-glimmer-of-consciousness .tower-body {
  position: absolute; bottom: 20%; left: 50%; width: 30px; height: 60%;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 4px;
  box-shadow: -2px 0 8px rgba(0,0,0,0.5), 2px 0 8px rgba(0,0,0,0.5);
  animation: goc-tower 18s ease-in-out infinite;
}
.scn-glimmer-of-consciousness .tower-top {
  position: absolute; bottom: 80%; left: 50%; width: 40px; height: 20px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%);
  border-radius: 50% 50% 0 0;
  box-shadow: 0 -4px 10px rgba(0,0,0,0.4);
  animation: goc-top 12s ease-in-out infinite alternate;
}
.scn-glimmer-of-consciousness .figure-on-tower {
  position: absolute; bottom: 78%; left: 50%; width: 18px; height: 40px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #0a0a12 0%, #000 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 30% 30%;
  animation: goc-figure 4s ease-in-out infinite;
}
.scn-glimmer-of-consciousness .light-glow {
  position: absolute; bottom: 78%; left: 50%; width: 40px; height: 40px;
  transform: translate(-50%, -50%);
  background: radial-gradient(circle, rgba(200,180,120,0.1) 0%, transparent 100%);
  animation: goc-glow 3s ease-in-out infinite alternate;
}
.scn-glimmer-of-consciousness .cloud-fast {
  position: absolute; top: 15%; left: 0; width: 100px; height: 20px;
  background: linear-gradient(180deg, rgba(255,255,255,0.1) 0%, transparent 100%);
  filter: blur(8px);
  animation: goc-cloud 25s linear infinite;
}
@keyframes goc-sky { 0% { opacity: 0.7; } 50% { opacity: 1; } 100% { opacity: 0.6; } }
@keyframes goc-tower { 0%,100% { transform: translateX(-50%) scaleY(1); } 50% { transform: translateX(-50%) scaleY(1.02); } }
@keyframes goc-top { 0% { transform: translateX(-50%) rotate(0deg); } 50% { transform: translateX(-50%) rotate(1deg); } 100% { transform: translateX(-50%) rotate(0deg); } }
@keyframes goc-figure { 0% { transform: translateX(-50%) translateY(0) rotate(0deg); } 25% { transform: translateX(-50%) translateY(-2px) rotate(2deg); } 50% { transform: translateX(-50%) translateY(1px) rotate(-1deg); } 75% { transform: translateX(-50%) translateY(-1px) rotate(1deg); } 100% { transform: translateX(-50%) translateY(0) rotate(0deg); } }
@keyframes goc-glow { 0% { opacity: 0.2; transform: translate(-50%, -50%) scale(0.8); } 50% { opacity: 0.6; transform: translate(-50%, -50%) scale(1.2); } 100% { opacity: 0.3; transform: translate(-50%, -50%) scale(1); } }
@keyframes goc-cloud { 0% { transform: translateX(-120px); } 100% { transform: translateX(120vw); } }

.scn-go-to-church-i-must-watch {
  background: linear-gradient(180deg, #1a1a2a 0%, #2a1a3a 40%, #1a0a2a 100%), radial-gradient(circle at 70% 50%, #2a1a3a 0%, transparent 60%);
}
.scn-go-to-church-i-must-watch .wall {
  position: absolute; inset: 0 0 0 60%;
  background: linear-gradient(180deg, #2a2a38 0%, #1a1a28 100%);
  border-left: 2px solid #0a0a14;
  animation: gcm-wall 8s ease-in-out infinite alternate;
}
.scn-go-to-church-i-must-watch .window-frame {
  position: absolute; top: 15%; right: 10%; width: 50%; height: 70%;
  background: #0a0a14;
  border: 4px solid #1a1a2a;
  border-radius: 8px;
  box-shadow: inset 0 0 20px rgba(0,0,0,0.8);
  animation: gcm-frame 5s ease-in-out infinite;
}
.scn-go-to-church-i-must-watch .glass {
  position: absolute; top: 17%; right: 13%; width: 44%; height: 66%;
  background: linear-gradient(135deg, rgba(50,40,70,0.4) 0%, rgba(20,15,30,0.6) 100%);
  filter: blur(2px);
  animation: gcm-glass 3s ease-in-out infinite alternate;
}
.scn-go-to-church-i-must-watch .figure {
  position: absolute; bottom: 30%; right: 25%; width: 20px; height: 60px;
  background: linear-gradient(180deg, #15152a 0%, #0a0a1a 100%);
  border-radius: 50% 50% 40% 40% / 70% 70% 30% 30%;
  transform-origin: bottom center;
  animation: gcm-figure 4s ease-in-out infinite;
}
.scn-go-to-church-i-must-watch .outside-dark {
  position: absolute; top: 15%; right: 10%; width: 50%; height: 70%;
  background: linear-gradient(180deg, #0a0a14 0%, #05050a 100%);
  opacity: 0.4;
  animation: gcm-outside 12s ease-in-out infinite;
}
.scn-go-to-church-i-must-watch .curtain {
  position: absolute; top: 13%; right: 8%; width: 54%; height: 74%;
  background: linear-gradient(180deg, rgba(30,20,40,0.3) 0%, transparent 100%);
  filter: blur(6px);
  animation: gcm-curtain 7s ease-in-out infinite alternate;
}
.scn-go-to-church-i-must-watch .gleam {
  position: absolute; top: 40%; right: 25%; width: 10px; height: 10px;
  background: radial-gradient(circle, rgba(220,200,160,0.3) 0%, transparent 100%);
  animation: gcm-gleam 2s ease-in-out infinite alternate;
}
@keyframes gcm-wall { 0% { opacity: 0.9; transform: scaleX(1); } 100% { opacity: 1; transform: scaleX(0.98); } }
@keyframes gcm-frame { 0%,100% { transform: scale(1); } 50% { transform: scale(0.97); } }
@keyframes gcm-glass { 0% { opacity: 0.5; } 50% { opacity: 0.9; } 100% { opacity: 0.4; } }
@keyframes gcm-figure { 0% { transform: translateX(0) rotate(0deg); } 30% { transform: translateX(2px) rotate(2deg); } 70% { transform: translateX(-1px) rotate(-1deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes gcm-outside { 0% { opacity: 0.3; } 50% { opacity: 0.5; } 100% { opacity: 0.4; } }
@keyframes gcm-curtain { 0% { transform: translateX(0) scaleY(1); } 100% { transform: translateX(4px) scaleY(0.95); } }
@keyframes gcm-gleam { 0% { opacity: 0.1; transform: scale(0.5); } 100% { opacity: 0.4; transform: scale(1.5); } }

.scn-lake-scene-setup {
  background: linear-gradient(180deg, #dcc9a8 0%, #b89a6e 40%, #8b6f4a 100%),
              radial-gradient(ellipse at 50% 30%, #f0dca0 0%, transparent 70%);
}
.scn-lake-scene-setup .wall {
  position: absolute; inset: 0 0 20% 0;
  background: linear-gradient(90deg, #c4a87a 0%, #dbb98a 50%, #c4a87a 100%);
  animation: lk1-wall 12s ease-in-out infinite alternate;
}
.scn-lake-scene-setup .window {
  position: absolute; top: 10%; left: 30%; width: 40%; height: 50%;
  background: linear-gradient(180deg, #a8c8e0 0%, #7da0c0 100%);
  border-radius: 4%; box-shadow: inset 0 0 20px rgba(255,255,255,0.3);
  animation: lk1-window 8s ease-in-out infinite alternate;
}
.scn-lake-scene-setup .curtain-l, .scn-lake-scene-setup .curtain-r {
  position: absolute; top: 8%; width: 12%; height: 55%;
  background: linear-gradient(180deg, #e8d4b0 0%, #c4a87a 100%);
  border-radius: 0 20% 20% 0 / 0 30% 30% 0;
  filter: blur(1px);
  animation: lk1-curtain 10s ease-in-out infinite alternate;
}
.scn-lake-scene-setup .curtain-l { left: 28%; }
.scn-lake-scene-setup .curtain-r { right: 28%; left: auto; border-radius: 20% 0 0 20% / 30% 0 0 30%; }
.scn-lake-scene-setup .cushion {
  position: absolute; bottom: 12%; left: 38%; width: 24%; height: 8%;
  background: linear-gradient(180deg, #c8553d 0%, #a0461a 100%);
  border-radius: 30%; box-shadow: 0 4px 12px rgba(0,0,0,0.3);
  animation: lk1-cushion 6s ease-in-out infinite;
}
.scn-lake-scene-setup .figure {
  position: absolute; bottom: 20%; left: 44%; width: 12%; height: 25%;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 40% 40% 20% 20% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: lk1-figure 4s ease-in-out infinite alternate;
}
.scn-lake-scene-setup .book {
  position: absolute; bottom: 19%; left: 50%; width: 8%; height: 5%;
  background: linear-gradient(135deg, #d4c4a0 0%, #b8a480 100%);
  border-radius: 10%; transform: rotate(-10deg);
  animation: lk1-book 4s ease-in-out infinite alternate;
}
.scn-lake-scene-setup .sunbeam {
  position: absolute; top: 12%; left: 34%; width: 32%; height: 40%;
  background: linear-gradient(180deg, rgba(255,230,180,0.3) 0%, transparent 100%);
  clip-path: polygon(0 0, 100% 0, 85% 100%, 15% 100%);
  animation: lk1-sunbeam 7s ease-in-out infinite alternate;
}
@keyframes lk1-wall { 0%,100% { opacity:1; } 50% { opacity:0.9; } }
@keyframes lk1-window { 0%,100% { transform: scaleY(1); } 50% { transform: scaleY(0.98); } }
@keyframes lk1-curtain { 0% { transform: translateX(0); } 50% { transform: translateX(5px); } 100% { transform: translateX(-3px); } }
@keyframes lk1-cushion { 0% { transform: translateY(0); } 50% { transform: translateY(-2px); } 100% { transform: translateY(0); } }
@keyframes lk1-figure { 0% { transform: rotate(0deg); } 50% { transform: rotate(2deg); } 100% { transform: rotate(-1deg); } }
@keyframes lk1-book { 0%,100% { transform: rotate(-8deg); } 50% { transform: rotate(-12deg); } }
@keyframes lk1-sunbeam { 0%,100% { opacity:0.6; transform: scaleX(1); } 50% { opacity:1; transform: scaleX(1.05); } }

.scn-lake-scene-children {
  background: linear-gradient(180deg, #a3c4d0 0%, #c8d9c4 40%, #b0b890 100%),
              radial-gradient(ellipse at 50% 80%, #d6c9a0 0%, transparent 70%);
}
.scn-lake-scene-children .sky {
  position: absolute; inset: 0 0 45% 0;
  background: linear-gradient(180deg, #7fb0c0 0%, #a3c4d0 60%, #c0d8c8 100%);
  animation: lk2-sky 20s ease-in-out infinite alternate;
}
.scn-lake-scene-children .lake {
  position: absolute; bottom: 15%; left: 10%; width: 80%; height: 30%;
  background: linear-gradient(180deg, #7aa0b0 0%, #8eb0c0 100%);
  border-radius: 50% / 80% 80% 20% 20%;
  animation: lk2-lake 15s ease-in-out infinite alternate;
}
.scn-lake-scene-children .grass {
  position: absolute; bottom: 0; left: 0; right: 0; height: 20%;
  background: linear-gradient(180deg, #88a860 0%, #5a7a3a 100%);
  border-radius: 40% 40% 0 0 / 60% 60% 0 0;
}
.scn-lake-scene-children .path {
  position: absolute; bottom: 5%; left: 40%; width: 20%; height: 6%;
  background: linear-gradient(90deg, #b8a888 0%, #c8b898 100%);
  border-radius: 20%;
}
.scn-lake-scene-children .figure-left, .scn-lake-scene-children .figure-right {
  position: absolute; bottom: 8%; width: 8%; height: 20%;
  background: linear-gradient(180deg, #3a4a3a 0%, #2a3a2a 100%);
  border-radius: 40% 40% 20% 20% / 60% 60% 30% 30%;
  animation: lk2-figures 6s ease-in-out infinite alternate;
}
.scn-lake-scene-children .figure-left { left: 43%; transform: rotate(-2deg); }
.scn-lake-scene-children .figure-right { left: 52%; transform: rotate(3deg); animation-delay: -3s; }
.scn-lake-scene-children .cloud-a, .scn-lake-scene-children .cloud-b {
  position: absolute; top: 10%; width: 15%; height: 8%;
  background: linear-gradient(180deg, rgba(255,255,240,0.6) 0%, transparent 100%);
  border-radius: 50%; filter: blur(6px);
  animation: lk2-clouds 40s linear infinite;
}
.scn-lake-scene-children .cloud-a { left: 10%; animation-duration: 40s; }
.scn-lake-scene-children .cloud-b { left: 60%; animation-delay: -20s; animation-duration: 50s; }
.scn-lake-scene-children .flowers {
  position: absolute; bottom: 2%; left: 30%; width: 8%; height: 6%;
  background: radial-gradient(circle, #f0c060 0%, #c89040 70%);
  border-radius: 50%; filter: blur(2px);
  animation: lk2-flowers 8s ease-in-out infinite alternate;
}
@keyframes lk2-sky { 0% { opacity:0.8; } 50% { opacity:1; } 100% { opacity:0.7; } }
@keyframes lk2-lake { 0% { transform: translateY(0); } 50% { transform: translateY(-2px); } 100% { transform: translateY(0); } }
@keyframes lk2-figures { 0% { transform: rotate(-2deg) translateY(0); } 50% { transform: rotate(2deg) translateY(-3px); } 100% { transform: rotate(-1deg) translateY(0); } }
@keyframes lk2-clouds { 0% { transform: translateX(0); } 100% { transform: translateX(200px); } }
@keyframes lk2-flowers { 0% { opacity:0.5; transform: scale(1); } 50% { opacity:1; transform: scale(1.2); } 100% { opacity:0.7; transform: scale(1); } }

.scn-lake-scene-play {
  background: linear-gradient(180deg, #b8c890 0%, #9aab70 40%, #7a8a50 100%),
              radial-gradient(ellipse at 50% 30%, #f0e0a0 0%, transparent 70%);
}
.scn-lake-scene-play .meadow {
  position: absolute; inset: 0 0 20% 0;
  background: linear-gradient(180deg, #b0c080 0%, #8aa060 100%);
  animation: lk3-meadow 12s ease-in-out infinite alternate;
}
.scn-lake-scene-play .horizon {
  position: absolute; bottom: 40%; left: 0; right: 0; height: 6%;
  background: linear-gradient(90deg, #7a8a50 0%, #8a9a60 100%);
  border-radius: 40%;
}
.scn-lake-scene-play .figure-run, .scn-lake-scene-play .figure-crouch {
  position: absolute; bottom: 18%; width: 8%; height: 18%;
  background: linear-gradient(180deg, #4a5a3a 0%, #2a3a1a 100%);
  border-radius: 40% 40% 20% 20% / 60% 60% 30% 30%;
  animation: lk3-figures 3s ease-in-out infinite alternate;
}
.scn-lake-scene-play .figure-run { left: 40%; transform-origin: bottom center; }
.scn-lake-scene-play .figure-crouch { left: 55%; width: 7%; height: 12%; transform: scaleY(0.7); animation-duration: 4s; animation-delay: -1s; }
.scn-lake-scene-play .prop-crown {
  position: absolute; bottom: 30%; left: 42%; width: 6%; height: 3%;
  background: linear-gradient(180deg, #f0d060 0%, #c0a030 100%);
  border-radius: 30% 30% 0 0; clip-path: polygon(0 100%, 20% 0, 40% 100%, 60% 0, 80% 100%, 100% 0, 100% 100%);
  animation: lk3-crown 2s ease-in-out infinite alternate;
}
.scn-lake-scene-play .prop-stick {
  position: absolute; bottom: 16%; left: 48%; width: 2%; height: 14%;
  background: linear-gradient(180deg, #7a5a3a 0%, #4a2a1a 100%);
  border-radius: 10%; transform: rotate(15deg);
  animation: lk3-stick 1.5s ease-in-out infinite alternate;
}
.scn-lake-scene-play .butterfly {
  position: absolute; top: 30%; left: 30%; width: 4%; height: 3%;
  background: radial-gradient(circle, #f0c060 0%, #e0a040 100%);
  border-radius: 50%; filter: blur(1px);
  animation: lk3-butterfly 7s ease-in-out infinite;
}
.scn-lake-scene-play .sparkle {
  position: absolute; top: 25%; left: 60%; width: 2%; height: 2%;
  background: radial-gradient(circle, #fff8e0 0%, transparent 100%);
  border-radius: 50%; filter: blur(2px);
  animation: lk3-sparkle 3s ease-in-out infinite alternate;
}
@keyframes lk3-meadow { 0% { background-position: 0 0; } 50% { background-position: 10% 0; } 100% { background-position: 0 0; } }
@keyframes lk3-figures { 0% { transform: translateX(0) rotate(-3deg); } 50% { transform: translateX(10px) rotate(3deg); } 100% { transform: translateX(0) rotate(-2deg); } }
@keyframes lk3-crown { 0% { transform: translateY(0) rotate(-5deg); } 50% { transform: translateY(-5px) rotate(5deg); } 100% { transform: translateY(0) rotate(-3deg); } }
@keyframes lk3-stick { 0% { transform: rotate(10deg); } 50% { transform: rotate(20deg); } 100% { transform: rotate(12deg); } }
@keyframes lk3-butterfly { 0% { transform: translate(0,0) rotate(0); } 25% { transform: translate(20px,-10px) rotate(20deg); } 50% { transform: translate(40px,0) rotate(-10deg); } 75% { transform: translate(20px,10px) rotate(15deg); } 100% { transform: translate(0,0) rotate(0); } }
@keyframes lk3-sparkle { 0% { opacity:0.2; transform: scale(0.5); } 50% { opacity:1; transform: scale(1.2); } 100% { opacity:0.4; transform: scale(0.8); } }

.scn-lake-scene-spectator {
  background: linear-gradient(180deg, #c0a870 0%, #8a7a50 40%, #5a4a30 100%),
              radial-gradient(ellipse at 50% 40%, #f0d0a0 0%, transparent 60%);
}
.scn-lake-scene-spectator .water {
  position: absolute; bottom: 20%; left: 10%; width: 80%; height: 30%;
  background: linear-gradient(180deg, #7a8a70 0%, #5a6a50 100%);
  border-radius: 50% / 80% 80% 20% 20%;
  animation: lk4-water 3s ease-in-out infinite alternate;
}
.scn-lake-scene-spectator .shore-far {
  position: absolute; bottom: 35%; left: 40%; width: 20%; height: 8%;
  background: linear-gradient(180deg, #8a7a50 0%, #6a5a3a 100%);
  border-radius: 40%; filter: blur(2px);
  animation: lk4-shore 8s ease-in-out infinite alternate;
}
.scn-lake-scene-spectator .shore-near {
  position: absolute; bottom: 10%; left: 20%; width: 30%; height: 10%;
  background: linear-gradient(180deg, #9a8a60 0%, #7a6a4a 100%);
  border-radius: 40%; clip-path: polygon(0 20%, 100% 0, 100% 100%, 0 100%);
}
.scn-lake-scene-spectator .reeds {
  position: absolute; bottom: 12%; left: 25%; width: 4%; height: 12%;
  background: linear-gradient(180deg, #5a6a3a 0%, #3a4a2a 100%);
  border-radius: 20%; transform: rotate(-5deg);
  animation: lk4-reeds 2s ease-in-out infinite alternate;
}
.scn-lake-scene-spectator .spectator {
  position: absolute; bottom: 30%; left: 55%; width: 10%; height: 22%;
  background: linear-gradient(180deg, #2a2a1a 0%, #0a0a0a 100%);
  border-radius: 30% 30% 10% 10% / 60% 60% 20% 20%;
  transform-origin: bottom center;
  animation: lk4-spectator 5s ease-in-out infinite alternate;
}
.scn-lake-scene-spectator .shadow-stretch {
  position: absolute; bottom: 28%; left: 50%; width: 20%; height: 4%;
  background: linear-gradient(90deg, transparent 0%, #1a1a0a 100%);
  border-radius: 50%; filter: blur(3px);
  animation: lk4-shadow 5s ease-in-out infinite alternate;
}
.scn-lake-scene-spectator .cloud-threat {
  position: absolute; top: 15%; left: 60%; width: 20%; height: 10%;
  background: linear-gradient(180deg, rgba(80,70,50,0.8) 0%, transparent 100%);
  border-radius: 50%; filter: blur(8px);
  animation: lk4-cloud 30s linear infinite;
}
.scn-lake-scene-spectator .ripple {
  position: absolute; bottom: 22%; left: 30%; width: 8%; height: 2%;
  background: radial-gradient(ellipse, #b0a880 0%, transparent 100%);
  border-radius: 50%; filter: blur(1px);
  animation: lk4-ripple 4s ease-in-out infinite alternate;
}
@keyframes lk4-water { 0% { transform: translateY(0); } 50% { transform: translateY(-3px); } 100% { transform: translateY(0); } }
@keyframes lk4-shore { 0% { opacity:0.7; } 50% { opacity:1; } 100% { opacity:0.6; } }
@keyframes lk4-reeds { 0% { transform: rotate(-5deg) translateY(0); } 50% { transform: rotate(5deg) translateY(-2px); } 100% { transform: rotate(-5deg) translateY(0); } }
@keyframes lk4-spectator { 0% { transform: scaleY(1) rotate(0deg); } 50% { transform: scaleY(1.02) rotate(2deg); } 100% { transform: scaleY(1) rotate(-1deg); } }
@keyframes lk4-shadow { 0% { transform: scaleX(1); opacity:0.5; } 50% { transform: scaleX(1.2); opacity:0.7; } 100% { transform: scaleX(1); opacity:0.5; } }
@keyframes lk4-cloud { 0% { transform: translateX(0); } 100% { transform: translateX(-300px); } }
@keyframes lk4-ripple { 0% { transform: scaleX(0.5); opacity:0.3; } 50% { transform: scaleX(1.5); opacity:0.6; } 100% { transform: scaleX(0.8); opacity:0.2; } }

.scn-wild-protest {
  background: linear-gradient(180deg, #1a1a2e 0%, #2a1a3e 50%, #1a1a2e 100%), radial-gradient(ellipse at 30% 80%, #ffc88a 0%, transparent 60%);
}
.scn-wild-protest .door {
  position: absolute; left: 25%; top: 10%; width: 30%; height: 70%;
  background: linear-gradient(135deg, #fff5e0 0%, #e8c68a 100%);
  border-radius: 4% 4% 0 0; box-shadow: 0 0 40px 20px rgba(255, 197, 138, 0.6);
  animation: wp-door 4s ease-in-out infinite alternate;
}
.scn-wild-protest .figure {
  position: absolute; left: 50%; bottom: 10%; width: 12%; height: 50%;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #1a1a1a 0%, #0a0a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: wp-figure 1.2s ease-in-out infinite;
}
.scn-wild-protest .lightbeam {
  position: absolute; left: 0; top: 0; width: 100%; height: 100%;
  background: linear-gradient(135deg, rgba(255, 230, 180, 0.2) 0%, transparent 50%);
  clip-path: polygon(25% 10%, 55% 10%, 80% 100%, 20% 100%);
  animation: wp-beam 3s ease-in-out infinite alternate;
}
.scn-wild-protest .floor {
  position: absolute; bottom: 0; left: 0; width: 100%; height: 20%;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a1a0a 100%);
  box-shadow: inset 0 8px 20px rgba(0,0,0,0.6);
}
.scn-wild-protest .wall-left {
  position: absolute; left: 0; top: 0; width: 25%; height: 100%;
  background: linear-gradient(180deg, #2a1a1a 0%, #1a0a0a 100%);
}
.scn-wild-protest .wall-right {
  position: absolute; right: 0; top: 0; width: 45%; height: 100%;
  background: linear-gradient(180deg, #2a1a1a 0%, #1a0a0a 100%);
}
.scn-wild-protest .shadow {
  position: absolute; left: 40%; bottom: 20%; width: 20%; height: 10%;
  background: radial-gradient(ellipse, rgba(0,0,0,0.6) 0%, transparent 70%);
  animation: wp-shadow 1.2s ease-in-out infinite;
}

@keyframes wp-door {
  0% { transform: scaleX(1); filter: brightness(1); }
  50% { transform: scaleX(1.02); filter: brightness(1.1); }
  100% { transform: scaleX(0.98); filter: brightness(0.9); }
}
@keyframes wp-figure {
  0% { transform: translateX(-50%) rotate(-1deg); }
  25% { transform: translateX(-48%) rotate(2deg); }
  50% { transform: translateX(-52%) rotate(-2deg); }
  75% { transform: translateX(-49%) rotate(1deg); }
  100% { transform: translateX(-50%) rotate(-1deg); }
}
@keyframes wp-beam {
  0% { opacity: 0.6; }
  50% { opacity: 1; }
  100% { opacity: 0.7; }
}
@keyframes wp-shadow {
  0% { transform: scaleX(1); opacity: 0.6; }
  50% { transform: scaleX(1.2); opacity: 0.4; }
  100% { transform: scaleX(0.9); opacity: 0.7; }
}

.scn-pupils-return-silent {
  background: linear-gradient(180deg, #1a1a2e 0%, #2a2a3e 50%, #1a1a2e 100%), radial-gradient(ellipse at 50% 30%, #3a3a5e 0%, transparent 70%);
}
.scn-pupils-return-silent .window {
  position: absolute; top: 5%; left: 60%; width: 20%; height: 30%;
  background: linear-gradient(180deg, #4a4a6e 0%, #2a2a4e 100%);
  border-radius: 4% 4% 2% 2%; box-shadow: inset 0 0 20px rgba(0,0,0,0.5);
  animation: prs-window 8s ease-in-out infinite alternate;
}
.scn-pupils-return-silent .pupil-left {
  position: absolute; bottom: 20%; left: 30%; width: 8%; height: 30%;
  background: linear-gradient(180deg, #2a2a3e 0%, #1a1a2e 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: prs-pupil 6s ease-in-out infinite;
}
.scn-pupils-return-silent .pupil-right {
  position: absolute; bottom: 22%; left: 50%; width: 8%; height: 28%;
  background: linear-gradient(180deg, #2a2a3e 0%, #1a1a2e 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: prs-pupil 6s ease-in-out infinite 1s;
}
.scn-pupils-return-silent .narrator {
  position: absolute; bottom: 15%; left: 15%; width: 10%; height: 40%;
  background: linear-gradient(180deg, #1a1a2e 0%, #0a0a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: prs-narrator 10s ease-in-out infinite alternate;
}
.scn-pupils-return-silent .table {
  position: absolute; bottom: 10%; left: 20%; width: 40%; height: 8%;
  background: linear-gradient(180deg, #3a2a1a 0%, #2a1a0a 100%);
  border-radius: 10% 10% 5% 5%; box-shadow: 0 4px 10px rgba(0,0,0,0.5);
}
.scn-pupils-return-silent .candle {
  position: absolute; bottom: 20%; left: 35%; width: 4%; height: 15%;
  background: linear-gradient(180deg, #e8d8b8 0%, #a08060 100%);
  border-radius: 20% 20% 10% 10%; box-shadow: 0 0 20px 5px rgba(255, 200, 100, 0.3);
  animation: prs-candle 4s ease-in-out infinite alternate;
}

@keyframes prs-window {
  0% { opacity: 0.3; filter: brightness(0.5); }
  50% { opacity: 0.6; filter: brightness(0.8); }
  100% { opacity: 0.4; filter: brightness(0.6); }
}
@keyframes prs-pupil {
  0% { transform: translateY(0) rotate(0deg); }
  25% { transform: translateY(-3px) rotate(2deg); }
  50% { transform: translateY(0) rotate(0deg); }
  75% { transform: translateY(-1px) rotate(-1deg); }
  100% { transform: translateY(0) rotate(0deg); }
}
@keyframes prs-narrator {
  0% { transform: translateY(0) scale(1); }
  50% { transform: translateY(-5px) scale(1.02); }
  100% { transform: translateY(2px) scale(0.98); }
}
@keyframes prs-candle {
  0% { box-shadow: 0 0 15px 3px rgba(255, 200, 100, 0.2); transform: scaleY(1); }
  50% { box-shadow: 0 0 25px 8px rgba(255, 200, 100, 0.5); transform: scaleY(1.1); }
  100% { box-shadow: 0 0 10px 2px rgba(255, 200, 100, 0.1); transform: scaleY(0.95); }
}

.scn-housekeeper-room {
  background: linear-gradient(180deg, #2a1a0a 0%, #3a2a1a 40%, #1a0a00 100%), radial-gradient(ellipse at 50% 70%, #e8a050 0%, transparent 60%);
}
.scn-housekeeper-room .fire {
  position: absolute; bottom: 20%; left: 20%; width: 20%; height: 30%;
  background: radial-gradient(ellipse at 50% 30%, #ff6600 0%, #cc4400 40%, #662200 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%;
  box-shadow: 0 0 60px 20px rgba(255, 100, 0, 0.5), 0 0 120px 40px rgba(200, 80, 0, 0.3);
  animation: hkr-fire 2s ease-in-out infinite alternate;
}
.scn-housekeeper-room .table {
  position: absolute; bottom: 0; left: 30%; width: 40%; height: 15%;
  background: linear-gradient(180deg, #5a3a1a 0%, #3a2a0a 100%);
  border-radius: 10% 10% 0 0; box-shadow: inset 0 4px 10px rgba(0,0,0,0.6);
}
.scn-housekeeper-room .loaf {
  position: absolute; bottom: 12%; left: 45%; width: 8%; height: 10%;
  background: radial-gradient(ellipse, #d4a574 0%, #b07450 100%);
  border-radius: 40% 40% 30% 30%;
  box-shadow: 0 2px 8px rgba(0,0,0,0.4);
  animation: hkr-loaf 6s ease-in-out infinite;
}
.scn-housekeeper-room .chair {
  position: absolute; bottom: 0; left: 60%; width: 12%; height: 40%;
  background: linear-gradient(180deg, #4a2a1a 0%, #2a1a0a 100%);
  border-radius: 20% 20% 10% 10%; box-shadow: -4px 0 10px rgba(0,0,0,0.5);
}
.scn-housekeeper-room .window {
  position: absolute; top: 5%; right: 10%; width: 25%; height: 35%;
  background: linear-gradient(180deg, #4a5a7a 0%, #2a3a5a 100%);
  border-radius: 4% 4% 2% 2%; box-shadow: inset 0 0 30px rgba(0,0,0,0.7);
  animation: hkr-window 12s ease-in-out infinite alternate;
}
.scn-housekeeper-room .steam {
  position: absolute; top: 20%; left: 48%; width: 6%; height: 15%;
  background: radial-gradient(ellipse, rgba(255,255,255,0.3) 0%, transparent 70%);
  filter: blur(4px);
  animation: hkr-steam 5s ease-in-out infinite;
}
@keyframes hkr-fire {
  0% { transform: scale(1) translateY(0); filter: brightness(0.8); }
  50% { transform: scale(1.05) translateY(-5px); filter: brightness(1.2); }
  100% { transform: scale(0.95) translateY(2px); filter: brightness(0.9); }
}
@keyframes hkr-loaf {
  0% { transform: rotate(0deg); }
  50% { transform: rotate(3deg) scale(1.02); }
  100% { transform: rotate(-2deg) scale(0.98); }
}
@keyframes hkr-window {
  0% { opacity: 0.4; background-position: 0 0; }
  50% { opacity: 0.7; background-position: 0 10%; }
  100% { opacity: 0.5; background-position: 0 5%; }
}
@keyframes hkr-steam {
  0% { transform: translateY(0) scale(1); opacity: 0.3; }
  50% { transform: translateY(-20px) scale(1.5); opacity: 0.1; }
  100% { transform: translateY(-10px) scale(1.2); opacity: 0.2; }
}

.scn-question-to-mrs-grose {
  background: linear-gradient(180deg, #1a0a00 0%, #2a1a0a 50%, #1a0a00 100%), radial-gradient(ellipse at 50% 60%, #d07030 0%, transparent 60%);
}
.scn-question-to-mrs-grose .fire {
  position: absolute; bottom: 10%; left: 10%; width: 25%; height: 45%;
  background: radial-gradient(ellipse at 50% 30%, #ff5500 0%, #cc3300 40%, #661100 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%;
  box-shadow: 0 0 50px 15px rgba(255, 80, 0, 0.5);
  animation: qmg-fire 1.5s ease-in-out infinite alternate;
}
.scn-question-to-mrs-grose .narrator {
  position: absolute; bottom: 15%; left: 40%; width: 10%; height: 45%;
  background: linear-gradient(180deg, #1a1a1a 0%, #0a0a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: qmg-narrator 3s ease-in-out infinite;
}
.scn-question-to-mrs-grose .mrs-grose {
  position: absolute; bottom: 12%; left: 60%; width: 14%; height: 50%;
  background: linear-gradient(180deg, #2a1a1a 0%, #1a0a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: qmg-mrsgrose 3.5s ease-in-out infinite 0.5s;
}
.scn-question-to-mrs-grose .table {
  position: absolute; bottom: 0; left: 30%; width: 40%; height: 10%;
  background: linear-gradient(180deg, #3a2a1a 0%, #2a1a0a 100%);
  border-radius: 10% 10% 0 0; box-shadow: 0 -4px 10px rgba(0,0,0,0.6);
}
.scn-question-to-mrs-grose .screen {
  position: absolute; bottom: 0; left: 0; width: 100%; height: 100%;
  background: linear-gradient(180deg, transparent 60%, rgba(0,0,0,0.4) 100%);
  pointer-events: none;
}
.scn-question-to-mrs-grose .candle {
  position: absolute; bottom: 25%; left: 35%; width: 3%; height: 12%;
  background: linear-gradient(180deg, #e8d8b8 0%, #a08060 100%);
  border-radius: 20% 20% 10% 10%; box-shadow: 0 0 20px 5px rgba(255, 200, 100, 0.4);
  animation: qmg-candle 4s ease-in-out infinite alternate;
}
@keyframes qmg-fire {
  0% { transform: scale(1) rotate(0deg); filter: brightness(0.7); }
  50% { transform: scale(1.08) rotate(3deg); filter: brightness(1.3); }
  100% { transform: scale(0.95) rotate(-2deg); filter: brightness(0.8); }
}
@keyframes qmg-narrator {
  0% { transform: translateY(0) rotate(0deg); }
  30% { transform: translateY(-4px) rotate(2deg); }
  60% { transform: translateY(2px) rotate(-1deg); }
  100% { transform: translateY(0) rotate(0deg); }
}
@keyframes qmg-mrsgrose {
  0% { transform: translateY(0) scale(1); }
  25% { transform: translateY(-3px) scale(1.02); }
  50% { transform: translateY(0) scale(0.98); }
  75% { transform: translateY(-1px) scale(1.01); }
  100% { transform: translateY(0) scale(1); }
}
@keyframes qmg-candle {
  0% { box-shadow: 0 0 15px 3px rgba(255, 200, 100, 0.2); transform: scaleY(1); }
  50% { box-shadow: 0 0 30px 10px rgba(255, 200, 100, 0.5); transform: scaleY(1.1); }
  100% { box-shadow: 0 0 10px 2px rgba(255, 200, 100, 0.1); transform: scaleY(0.9); }
}

.scn-fireside-story-gathering {
  background:
    radial-gradient(ellipse at 30% 60%, #8a3c2a 0%, #2a1a10 50%, #100a05 100%),
    linear-gradient(180deg, #3a2a1a 0%, #1a0f08 80%);
}
.scn-fireside-story-gathering .fire {
  position: absolute;
  bottom: 30%;
  left: 50%;
  width: 80px;
  height: 100px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #ff8c3a 0%, #d4602a 40%, #8a3015 70%, transparent 100%);
  border-radius: 50% 50% 30% 30%;
  filter: blur(2px);
  animation: fsg-fire 1.5s ease-in-out infinite alternate;
}
.scn-fireside-story-gathering .mantel {
  position: absolute;
  bottom: 55%;
  left: 30%;
  right: 30%;
  height: 12px;
  background: linear-gradient(180deg, #4a301a 0%, #2a1a0a 100%);
  border-radius: 4px;
  box-shadow: 0 -2px 8px rgba(255,100,30,.3);
}
.scn-fireside-story-gathering .wall {
  position: absolute;
  inset: 0 30% 60% 30%;
  background: linear-gradient(180deg, #3d2b1a 0%, #1a1008 100%);
  border-radius: 0 0 20% 20%;
  opacity: 0.5;
}
.scn-fireside-story-gathering .chair {
  position: absolute;
  bottom: 25%;
  width: 50px;
  height: 60px;
  background: linear-gradient(180deg, #4a2a1a 0%, #2a1508 100%);
  border-radius: 10% 10% 30% 30%;
}
.scn-fireside-story-gathering .chair-a { left: 20%; animation: fsg-chair-a 12s ease-in-out infinite; }
.scn-fireside-story-gathering .chair-b { right: 20%; animation: fsg-chair-b 14s ease-in-out infinite; }
.scn-fireside-story-gathering .figure {
  position: absolute;
  bottom: 30%;
  width: 18px;
  height: 40px;
  background: linear-gradient(180deg, #1a0f08 0%, #0f0805 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
}
.scn-fireside-story-gathering .figure-a { left: 25%; animation: fsg-fig-a 8s ease-in-out infinite; }
.scn-fireside-story-gathering .figure-b { right: 25%; animation: fsg-fig-b 10s ease-in-out infinite; }
.scn-fireside-story-gathering .shadow {
  position: absolute;
  bottom: 20%;
  width: 120px;
  height: 20px;
  background: radial-gradient(ellipse, rgba(0,0,0,.6) 0%, transparent 70%);
  border-radius: 50%;
  filter: blur(4px);
  animation: fsg-shadow 6s ease-in-out infinite alternate;
}
.scn-fireside-story-gathering .shadow-a { left: 40%; }

@keyframes fsg-fire {
  0% { transform: translateX(-50%) scaleY(1); opacity: 0.9; }
  25% { transform: translateX(-50%) scaleY(1.05) scaleX(1.02); }
  50% { transform: translateX(-50%) scaleY(0.95) scaleX(0.98); opacity: 1; }
  75% { transform: translateX(-50%) scaleY(1.03) rotate(1deg); }
  100% { transform: translateX(-50%) scaleY(0.97) rotate(-1deg); opacity: 0.85; }
}
@keyframes fsg-chair-a {
  0%,100% { transform: translateY(0) rotate(0); }
  50% { transform: translateY(-2px) rotate(1deg); }
}
@keyframes fsg-chair-b {
  0%,100% { transform: translateY(0) rotate(0); }
  50% { transform: translateY(-2px) rotate(-1deg); }
}
@keyframes fsg-fig-a {
  0%,100% { transform: translateY(0) rotate(0); }
  50% { transform: translateY(-1px) rotate(1.5deg); }
}
@keyframes fsg-fig-b {
  0%,100% { transform: translateY(0) rotate(0); }
  50% { transform: translateY(-2px) rotate(-1deg); }
}
@keyframes fsg-shadow {
  0% { transform: scaleX(1) translateX(0); opacity: 0.6; }
  50% { transform: scaleX(1.1) translateX(-5px); opacity: 0.8; }
  100% { transform: scaleX(0.9) translateX(5px); opacity: 0.5; }
}

.scn-case-of-apparition-to-boy {
  background:
    radial-gradient(ellipse at 50% 70%, #5a2a1a 0%, #1a0f08 60%, #050302 100%),
    linear-gradient(180deg, #2a1a10 0%, #0a0503 100%);
}
.scn-case-of-apparition-to-boy .bed {
  position: absolute;
  bottom: 10%;
  left: 30%;
  right: 10%;
  height: 65px;
  background: linear-gradient(180deg, #4a2a1a 0%, #2a1508 100%);
  border-radius: 20% 20% 5% 5%;
  box-shadow: 0 4px 12px rgba(0,0,0,.7);
}
.scn-case-of-apparition-to-boy .pillow {
  position: absolute;
  bottom: 52%;
  left: 35%;
  width: 30px;
  height: 20px;
  background: linear-gradient(180deg, #8a6a4a 0%, #6a4a2a 100%);
  border-radius: 40%;
  animation: cab-pillow 6s ease-in-out infinite alternate;
}
.scn-case-of-apparition-to-boy .boy {
  position: absolute;
  bottom: 28%;
  left: 38%;
  width: 20px;
  height: 30px;
  background: linear-gradient(180deg, #2a1a10 0%, #150a05 100%);
  border-radius: 40% 40% 50% 50% / 50% 50% 40% 40%;
  transform: rotate(-5deg);
  animation: cab-boy 4s ease-in-out infinite;
}
.scn-case-of-apparition-to-boy .mother {
  position: absolute;
  bottom: 30%;
  right: 15%;
  width: 22px;
  height: 45px;
  background: linear-gradient(180deg, #3a2010 0%, #1f0f05 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 30% 30%;
  animation: cab-mother 8s ease-in-out infinite;
}
.scn-case-of-apparition-to-boy .apparition {
  position: absolute;
  top: 18%;
  left: 55%;
  width: 30px;
  height: 60px;
  background: radial-gradient(ellipse, rgba(200,180,180,.15) 0%, rgba(150,130,130,.05) 60%, transparent 100%);
  filter: blur(6px);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  box-shadow: 0 0 20px 10px rgba(200,180,180,.1);
  animation: cab-apparition 5s ease-in-out infinite alternate;
}
.scn-case-of-apparition-to-boy .candle {
  position: absolute;
  bottom: 40%;
  left: 20%;
  width: 8px;
  height: 25px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 10%;
  box-shadow: 0 0 12px 4px #ffb040;
}
.scn-case-of-apparition-to-boy .window {
  position: absolute;
  top: 10%;
  right: 5%;
  width: 60px;
  height: 80px;
  background: linear-gradient(180deg, #0a0a1a 0%, #151525 100%);
  border: 3px solid #2a2010;
  border-radius: 4px;
  opacity: 0.6;
  animation: cab-window 20s linear infinite alternate;
}

@keyframes cab-pillow {
  0%,100% { transform: translateY(0) scale(1); }
  50% { transform: translateY(-2px) scale(1.03); }
}
@keyframes cab-boy {
  0%,100% { transform: translateY(0) rotate(-5deg); }
  50% { transform: translateY(-1px) rotate(-3deg); }
}
@keyframes cab-mother {
  0%,100% { transform: translateY(0) rotate(2deg); }
  50% { transform: translateY(-1px) rotate(0); }
}
@keyframes cab-apparition {
  0% { transform: translateY(0) scale(1); opacity: 0.4; }
  50% { transform: translateY(-10px) scale(1.05); opacity: 0.7; }
  100% { transform: translateY(5px) scale(0.95); opacity: 0.3; }
}
@keyframes cab-window {
  0% { opacity: 0.4; }
  50% { opacity: 0.7; }
  100% { opacity: 0.5; }
}

.scn-douglas-hints-at-tale {
  background:
    radial-gradient(ellipse at 40% 60%, #7a3015 0%, #2a1508 50%, #0a0502 100%),
    linear-gradient(180deg, #2c1a0e 0%, #120a05 100%);
}
.scn-douglas-hints-at-tale .hearth {
  position: absolute;
  bottom: 20%;
  left: 25%;
  right: 25%;
  height: 35px;
  background: linear-gradient(180deg, #5a2a1a 0%, #2a1008 100%);
  border-radius: 30% 30% 10% 10%;
  box-shadow: 0 4px 15px rgba(200,80,20,.3);
}
.scn-douglas-hints-at-tale .douglas {
  position: absolute;
  bottom: 30%;
  left: 35%;
  width: 22px;
  height: 48px;
  background: linear-gradient(180deg, #1c0f08 0%, #0d0704 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 35% 35%;
  animation: dht-douglas 10s ease-in-out infinite;
}
.scn-douglas-hints-at-tale .hand {
  position: absolute;
  bottom: 42%;
  left: 38%;
  width: 14px;
  height: 10px;
  background: #2a1a0e;
  border-radius: 50% 50% 30% 30%;
  transform-origin: bottom left;
  animation: dht-hand 3s ease-in-out infinite;
}
.scn-douglas-hints-at-tale .chair-other {
  position: absolute;
  bottom: 25%;
  right: 20%;
  width: 45px;
  height: 55px;
  background: linear-gradient(180deg, #3a2010 0%, #1f0f05 100%);
  border-radius: 10% 10% 30% 30%;
  animation: dht-chair 15s ease-in-out infinite;
}
.scn-douglas-hints-at-tale .table {
  position: absolute;
  bottom: 22%;
  left: 45%;
  width: 30px;
  height: 8px;
  background: linear-gradient(180deg, #4a3020 0%, #2a1a0a 100%);
  border-radius: 4px;
}
.scn-douglas-hints-at-tale .glass {
  position: absolute;
  bottom: 28%;
  left: 48%;
  width: 10px;
  height: 14px;
  background: linear-gradient(180deg, rgba(200,180,160,.3) 0%, rgba(200,180,160,.05) 100%);
  border-radius: 2px 2px 8px 8px;
  border: 1px solid rgba(200,180,160,.2);
  animation: dht-glass 7s ease-in-out infinite;
}
.scn-douglas-hints-at-tale .shadow-fig {
  position: absolute;
  bottom: 18%;
  left: 50%;
  width: 80px;
  height: 15px;
  background: radial-gradient(ellipse, rgba(0,0,0,.5) 0%, transparent 70%);
  filter: blur(3px);
  animation: dht-shadow 9s ease-in-out infinite alternate;
}

@keyframes dht-douglas {
  0%,100% { transform: translateY(0) rotate(0); }
  50% { transform: translateY(-2px) rotate(1deg); }
}
@keyframes dht-hand {
  0%,100% { transform: rotate(0) translateX(0); }
  50% { transform: rotate(10deg) translateX(3px); }
}
@keyframes dht-chair {
  0%,100% { transform: translateY(0) rotate(0); }
  50% { transform: translateY(-1px) rotate(-0.5deg); }
}
@keyframes dht-glass {
  0%,100% { transform: translateY(0) rotate(0); opacity: 0.6; }
  50% { transform: translateY(-1px) rotate(2deg); opacity: 0.8; }
}
@keyframes dht-shadow {
  0% { transform: scaleX(1) translateX(0); opacity: 0.4; }
  50% { transform: scaleX(1.2) translateX(-8px); opacity: 0.6; }
  100% { transform: scaleX(0.9) translateX(8px); opacity: 0.3; }
}

.scn-douglas-agrees-with-griffin {
  background:
    radial-gradient(ellipse at 60% 60%, #8a3c1e 0%, #2a1508 45%, #080302 100%),
    linear-gradient(180deg, #2a1a0e 0%, #100805 100%);
}
.scn-douglas-agrees-with-griffin .fireplace {
  position: absolute;
  bottom: 10%;
  left: 50%;
  width: 100px;
  height: 80px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #5a3020 0%, #2a1508 100%);
  border-radius: 20% 20% 10% 10%;
  box-shadow: 0 4px 20px rgba(200,80,20,.4);
}
.scn-douglas-agrees-with-griffin .douglas-fig {
  position: absolute;
  bottom: 28%;
  left: 30%;
  width: 22px;
  height: 50px;
  background: linear-gradient(180deg, #1c0f08 0%, #0d0704 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 35% 35%;
  animation: dag-douglas 12s ease-in-out infinite;
}
.scn-douglas-agrees-with-griffin .griffin-fig {
  position: absolute;
  bottom: 28%;
  right: 30%;
  width: 22px;
  height: 50px;
  background: linear-gradient(180deg, #2a1508 0%, #150805 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 35% 35%;
  animation: dag-griffin 14s ease-in-out infinite;
}
.scn-douglas-agrees-with-griffin .armchair {
  position: absolute;
  bottom: 20%;
  width: 50px;
  height: 60px;
  background: linear-gradient(180deg, #3a2010 0%, #1a0f05 100%);
  border-radius: 10% 10% 30% 30%;
}
.scn-douglas-agrees-with-griffin .armchair-left { left: 25%; animation: dag-chair-l 16s ease-in-out infinite; }
.scn-douglas-agrees-with-griffin .armchair-right { right: 25%; animation: dag-chair-r 18s ease-in-out infinite; }
.scn-douglas-agrees-with-griffin .portrait {
  position: absolute;
  top: 8%;
  left: 50%;
  width: 40px;
  height: 55px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #4a3020 0%, #2a1a0a 100%);
  border: 3px solid #5a3a20;
  border-radius: 4px;
  box-shadow: 0 2px 6px rgba(0,0,0,.5);
  animation: dag-portrait 20s ease-in-out infinite alternate;
}
.scn-douglas-agrees-with-griffin .floor {
  position: absolute;
  bottom: 0;
  left: 0;
  right: 0;
  height: 20%;
  background: linear-gradient(180deg, #2a1a0e 0%, #1a0f05 100%);
  border-radius: 0 0 30% 30%;
}

@keyframes dag-douglas {
  0%,100% { transform: translateY(0) rotate(0); }
  50% { transform: translateY(-1px) rotate(1deg); }
}
@keyframes dag-griffin {
  0%,100% { transform: translateY(0) rotate(0); }
  50% { transform: translateY(-2px) rotate(-1deg); }
}
@keyframes dag-chair-l {
  0%,100% { transform: translateY(0) rotate(0); }
  50% { transform: translateY(-1px) rotate(0.5deg); }
}
@keyframes dag-chair-r {
  0%,100% { transform: translateY(0) rotate(0); }
  50% { transform: translateY(-1px) rotate(-0.5deg); }
}
@keyframes dag-portrait {
  0% { transform: translateX(-50%) rotate(0) scale(1); opacity: 0.7; }
  50% { transform: translateX(-50%) rotate(1deg) scale(1.02); opacity: 1; }
  100% { transform: translateX(-50%) rotate(-1deg) scale(0.98); opacity: 0.8; }
}

/* former-governess-died */
.scn-former-governess-died {
  background: linear-gradient(180deg, #1a1a2e 0%, #2a2a44 40%, #3a3a4e 80%, #2a2a3e 100%),
              radial-gradient(ellipse at 50% 100%, #2a2a44 0%, transparent 70%);
}
.scn-former-governess-died .wall {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(90deg, #1a1a2e 0%, #2a2a44 50%, #1a1a2e 100%);
}
.scn-former-governess-died .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #2a2a3e 0%, #1a1a2a 100%);
}
.scn-former-governess-died .chair {
  position: absolute; bottom: 20%; left: 30%; width: 60px; height: 80px;
  background: linear-gradient(180deg, #3a2a2a 0%, #2a1a1a 100%);
  border-radius: 10% 10% 5% 5% / 20% 20% 5% 5%;
  box-shadow: -4px 0 8px rgba(0,0,0,0.5);
  animation: fgd-chair 8s ease-in-out infinite alternate;
}
.scn-former-governess-died .figure {
  position: absolute; bottom: 22%; left: 32%; width: 20px; height: 40px;
  background: linear-gradient(180deg, #2a1a1a 0%, #1a0a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: fgd-figure 6s ease-in-out infinite alternate;
}
.scn-former-governess-died .window {
  position: absolute; top: 10%; right: 12%; width: 50px; height: 70px;
  background: linear-gradient(180deg, #3a3a5e 0%, #2a2a4e 100%);
  border: 2px solid #1a1a2e;
  border-radius: 2px;
  box-shadow: inset 0 0 10px rgba(255,255,255,0.1);
  animation: fgd-window 12s ease-in-out infinite alternate;
}
.scn-former-governess-died .curtain {
  position: absolute; top: 8%; right: 10%; width: 70px; height: 80px;
  background: linear-gradient(180deg, #4a3a3a 0%, #3a2a2a 100%);
  border-radius: 0 0 40% 40% / 0 0 60% 60%;
  opacity: 0.6;
  animation: fgd-curtain 15s ease-in-out infinite alternate;
}
.scn-former-governess-died .shadow {
  position: absolute; bottom: 10%; left: 20%; width: 80px; height: 60px;
  background: radial-gradient(ellipse, rgba(0,0,0,0.5) 0%, transparent 70%);
  filter: blur(8px);
  animation: fgd-shadow 10s ease-in-out infinite alternate;
}
@keyframes fgd-chair { 0% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-3px) rotate(1deg); } 100% { transform: translateY(0) rotate(-1deg); } }
@keyframes fgd-figure { 0% { transform: translateY(0) rotate(0deg); opacity: 0.8; } 50% { transform: translateY(-2px) rotate(2deg); opacity: 1; } 100% { transform: translateY(0) rotate(-1deg); opacity: 0.9; } }
@keyframes fgd-window { 0% { opacity: 0.3; box-shadow: inset 0 0 5px rgba(255,255,255,0.05); } 50% { opacity: 0.7; box-shadow: inset 0 0 15px rgba(255,255,255,0.15); } 100% { opacity: 0.4; box-shadow: inset 0 0 8px rgba(255,255,255,0.08); } }
@keyframes fgd-curtain { 0% { transform: translateX(0) scaleX(1); } 50% { transform: translateX(5px) scaleX(1.1); } 100% { transform: translateX(-3px) scaleX(0.95); } }
@keyframes fgd-shadow { 0% { transform: scale(1) translateX(0); opacity: 0.5; } 50% { transform: scale(1.2) translateX(10px); opacity: 0.7; } 100% { transform: scale(0.9) translateX(-5px); opacity: 0.4; } }

/* death-of-respectability */
.scn-death-of-respectability {
  background: linear-gradient(180deg, #1a1a2e 0%, #2a2a44 50%, #1a1a2e 100%),
              radial-gradient(ellipse at 30% 50%, #2a2a44 0%, transparent 60%);
}
.scn-death-of-respectability .wall {
  position: absolute; inset: 0 0 25% 0;
  background: linear-gradient(90deg, #1a1a2e 0%, #2a2a40 50%, #1a1a2e 100%);
}
.scn-death-of-respectability .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 25%;
  background: linear-gradient(180deg, #202038 0%, #15152a 100%);
}
.scn-death-of-respectability .desk {
  position: absolute; bottom: 18%; left: 20%; width: 120px; height: 50px;
  background: linear-gradient(180deg, #3a2a2a 0%, #2a1a1a 100%);
  border-radius: 2px;
  box-shadow: 0 4px 8px rgba(0,0,0,0.6);
  animation: dor-desk 10s ease-in-out infinite alternate;
}
.scn-death-of-respectability .candle {
  position: absolute; bottom: 30%; left: 48%; width: 8px; height: 20px;
  background: linear-gradient(180deg, #a08060 0%, #604030 100%);
  border-radius: 2px 2px 1px 1px;
  animation: dor-candle 4s ease-in-out infinite alternate;
}
.scn-death-of-respectability .candle::after {
  content: ""; position: absolute; top: -8px; left: -2px; width: 12px; height: 12px;
  background: radial-gradient(circle, #ffd080 0%, #c08040 70%, transparent 100%);
  border-radius: 50%;
  box-shadow: 0 0 20px 6px rgba(255,208,128,0.4);
  animation: dor-flame 3s ease-in-out infinite alternate;
}
.scn-death-of-respectability .paper {
  position: absolute; bottom: 22%; left: 35%; width: 40px; height: 30px;
  background: linear-gradient(180deg, #c0a060 0%, #a08040 100%);
  border-radius: 1px;
  transform: rotate(-5deg);
  box-shadow: 1px 1px 3px rgba(0,0,0,0.4);
  animation: dor-paper 8s ease-in-out infinite alternate;
}
.scn-death-of-respectability .hand {
  position: absolute; bottom: 20%; left: 30%; width: 16px; height: 24px;
  background: linear-gradient(180deg, #4a3a3a 0%, #3a2a2a 100%);
  border-radius: 40% 40% 20% 20% / 50% 50% 30% 30%;
  transform-origin: bottom center;
  animation: dor-hand 6s ease-in-out infinite alternate;
}
.scn-death-of-respectability .drape {
  position: absolute; top: 5%; right: 5%; width: 40px; height: 60px;
  background: linear-gradient(180deg, #4a3a3a 0%, #2a1a1a 100%);
  border-radius: 0 0 30% 30% / 0 0 50% 50%;
  opacity: 0.5;
  animation: dor-drape 14s ease-in-out infinite alternate;
}
@keyframes dor-desk { 0% { transform: scaleX(1); } 50% { transform: scaleX(1.05); } 100% { transform: scaleX(0.98); } }
@keyframes dor-candle { 0% { transform: translateY(0) scaleY(1); opacity: 0.8; } 50% { transform: translateY(-2px) scaleY(1.1); opacity: 1; } 100% { transform: translateY(1px) scaleY(0.95); opacity: 0.85; } }
@keyframes dor-flame { 0% { transform: scale(0.9) translate(0,0); opacity: 0.7; } 50% { transform: scale(1.3) translate(-2px,-3px); opacity: 1; } 100% { transform: scale(0.95) translate(1px,-1px); opacity: 0.75; } }
@keyframes dor-paper { 0% { transform: rotate(-8deg) translateY(0); } 50% { transform: rotate(-4deg) translateY(-3px); } 100% { transform: rotate(-6deg) translateY(1px); } }
@keyframes dor-hand { 0% { transform: translateX(0) rotate(0deg); } 50% { transform: translateX(8px) rotate(5deg); } 100% { transform: translateX(-4px) rotate(-3deg); } }
@keyframes dor-drape { 0% { transform: scaleX(1) translateX(0); } 50% { transform: scaleX(1.2) translateX(5px); } 100% { transform: scaleX(0.9) translateX(-3px); } }

/* grim-prospect-loneliness */
.scn-grim-prospect-loneliness {
  background: linear-gradient(180deg, #1a1a2e 0%, #2a2a40 40%, #3a3a4e 70%, #2a2a3e 100%),
              radial-gradient(ellipse at 50% 80%, #2a2a40 0%, transparent 60%);
}
.scn-grim-prospect-loneliness .wall {
  position: absolute; inset: 0 0 35% 0;
  background: linear-gradient(180deg, #1e1e36 0%, #2a2a40 100%);
}
.scn-grim-prospect-loneliness .table {
  position: absolute; bottom: 15%; left: 10%; width: 160px; height: 40px;
  background: linear-gradient(180deg, #3a2a2a 0%, #2a1a1a 100%);
  border-radius: 2px;
  box-shadow: 0 3px 6px rgba(0,0,0,0.5);
  animation: gpl-table 12s ease-in-out infinite alternate;
}
.scn-grim-prospect-loneliness .lantern {
  position: absolute; bottom: 28%; left: 30%; width: 12px; height: 18px;
  background: radial-gradient(circle, #c0a060 0%, #806040 100%);
  border-radius: 20% 20% 10% 10%;
  box-shadow: 0 0 30px 8px rgba(192,160,96,0.3);
  animation: gpl-lantern 4s ease-in-out infinite alternate;
}
.scn-grim-prospect-loneliness .letter {
  position: absolute; bottom: 20%; left: 35%; width: 50px; height: 35px;
  background: linear-gradient(180deg, #c8a86e 0%, #a08040 100%);
  border-radius: 2px;
  transform: rotate(3deg);
  box-shadow: 1px 1px 4px rgba(0,0,0,0.3);
  animation: gpl-letter 9s ease-in-out infinite alternate;
}
.scn-grim-prospect-loneliness .figure {
  position: absolute; bottom: 18%; left: 25%; width: 22px; height: 44px;
  background: linear-gradient(180deg, #2a1a1a 0%, #1a0a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: gpl-figure 7s ease-in-out infinite alternate;
}
.scn-grim-prospect-loneliness .chair {
  position: absolute; bottom: 12%; left: 40%; width: 45px; height: 60px;
  background: linear-gradient(180deg, #3a2a2a 0%, #2a1a1a 100%);
  border-radius: 5% 5% 5% 5% / 10% 10% 5% 5%;
  box-shadow: -2px 0 6px rgba(0,0,0,0.4);
  animation: gpl-chair 11s ease-in-out infinite alternate;
}
.scn-grim-prospect-loneliness .shadow {
  position: absolute; bottom: 5%; left: 15%; width: 100px; height: 40px;
  background: radial-gradient(ellipse, rgba(0,0,0,0.5) 0%, transparent 70%);
  filter: blur(6px);
  animation: gpl-shadow 8s ease-in-out infinite alternate;
}
@keyframes gpl-table { 0% { transform: scaleX(1); } 50% { transform: scaleX(1.03); } 100% { transform: scaleX(0.98); } }
@keyframes gpl-lantern { 0% { transform: translateY(0) rotate(-2deg); opacity: 0.8; } 50% { transform: translateY(-2px) rotate(2deg); opacity: 1; } 100% { transform: translateY(1px) rotate(-1deg); opacity: 0.85; } }
@keyframes gpl-letter { 0% { transform: rotate(0deg) translateY(0); } 50% { transform: rotate(4deg) translateY(-3px); } 100% { transform: rotate(-2deg) translateY(1px); } }
@keyframes gpl-figure { 0% { transform: translateX(0) rotate(0deg); opacity: 0.7; } 50% { transform: translateX(5px) rotate(3deg); opacity: 1; } 100% { transform: translateX(-3px) rotate(-2deg); opacity: 0.8; } }
@keyframes gpl-chair { 0% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-3px) rotate(1deg); } 100% { transform: translateY(0) rotate(-1deg); } }
@keyframes gpl-shadow { 0% { transform: scale(1) translateX(0); opacity: 0.4; } 50% { transform: scale(1.3) translateX(10px); opacity: 0.6; } 100% { transform: scale(0.9) translateX(-5px); opacity: 0.3; } }

/* seduction-splendid-young-man */
.scn-seduction-splendid-young-man {
  background: linear-gradient(180deg, #b08050 0%, #d0a070 30%, #e0c090 60%, #c09060 100%),
              radial-gradient(ellipse at 50% 30%, #e0c090 0%, transparent 80%);
}
.scn-seduction-splendid-young-man .wall {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #c09868 0%, #b08050 100%);
}
.scn-seduction-splendid-young-man .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #906838 0%, #705028 100%);
}
.scn-seduction-splendid-young-man .fireplace {
  position: absolute; bottom: 20%; left: 20%; width: 100px; height: 80px;
  background: linear-gradient(180deg, #5a3a1a 0%, #3a2a0a 100%);
  border-radius: 5% 5% 2% 2% / 10% 10% 2% 2%;
  box-shadow: inset 0 5px 15px rgba(0,0,0,0.4);
  animation: ssm-fireplace 14s ease-in-out infinite alternate;
}
.scn-seduction-splendid-young-man .fire {
  position: absolute; bottom: 24%; left: 30%; width: 40px; height: 60px;
  background: radial-gradient(ellipse, #ffd060 0%, #ff8040 40%, #c04020 70%, transparent 100%);
  border-radius: 50%;
  filter: blur(8px);
  box-shadow: 0 0 40px 20px rgba(255,128,64,0.5);
  animation: ssm-fire 3s ease-in-out infinite alternate;
}
.scn-seduction-splendid-young-man .woman {
  position: absolute; bottom: 18%; left: 45%; width: 20px; height: 42px;
  background: linear-gradient(180deg, #4a2a1a 0%, #3a1a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: ssm-woman 8s ease-in-out infinite alternate;
}
.scn-seduction-splendid-young-man .man {
  position: absolute; bottom: 18%; left: 58%; width: 22px; height: 46px;
  background: linear-gradient(180deg, #2a1a0a 0%, #1a0a00 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: ssm-man 6s ease-in-out infinite alternate;
}
.scn-seduction-splendid-young-man .armchair {
  position: absolute; bottom: 15%; left: 10%; width: 50px; height: 50px;
  background: linear-gradient(180deg, #6a4a2a 0%, #4a2a1a 100%);
  border-radius: 20% 20% 10% 10% / 30% 30% 10% 10%;
  box-shadow: 2px 2px 6px rgba(0,0,0,0.3);
  animation: ssm-chair 12s ease-in-out infinite alternate;
}
@keyframes ssm-fireplace { 0% { transform: scaleX(1) translateY(0); } 50% { transform: scaleX(1.02) translateY(-2px); } 100% { transform: scaleX(0.98) translateY(1px); } }
@keyframes ssm-fire { 0% { transform: scale(0.9) translate(0,0); opacity: 0.7; } 50% { transform: scale(1.4) translate(-3px,-5px); opacity: 1; } 100% { transform: scale(1) translate(2px,-2px); opacity: 0.8; } }
@keyframes ssm-woman { 0% { transform: translateX(0) rotate(0deg); } 50% { transform: translateX(8px) rotate(3deg); } 100% { transform: translateX(-4px) rotate(-2deg); } }
@keyframes ssm-man { 0% { transform: translateX(0) rotate(0deg); } 50% { transform: translateX(-6px) rotate(-2deg); } 100% { transform: translateX(3px) rotate(1deg); } }
@keyframes ssm-chair { 0% { transform: scale(1) rotate(0deg); } 50% { transform: scale(1.05) rotate(2deg); } 100% { transform: scale(0.95) rotate(-1deg); } }

/* ===== Scene: she-was-in-love (warm firelit interior) ===== */
.scn-she-was-in-love {
  background:
    radial-gradient(ellipse at 50% 20%, #e08040 0%, transparent 50%),
    linear-gradient(180deg, #2a1a10 0%, #120c08 100%);
}
.scn-she-was-in-love .bg { position:absolute; inset:0; background:#1a1008; }
.scn-she-was-in-love .fireplace {
  position:absolute; bottom:30%; left:50%; width:140px; height:120px; transform:translateX(-50%);
  background: linear-gradient(180deg, #4a3520 0%, #2a1a0e 100%);
  border-radius: 60% 60% 10% 10% / 80% 80% 10% 10%;
  box-shadow: inset 0 -20px 30px rgba(0,0,0,.6);
}
.scn-she-was-in-love .fire {
  position:absolute; bottom:38%; left:50%; width:30px; height:40px; transform:translateX(-50%);
  background: radial-gradient(ellipse, #f0a040 0%, #c06020 60%, transparent 100%);
  border-radius: 50% 50% 20% 20%;
  box-shadow: 0 0 40px 20px #c06020, 0 0 80px 40px rgba(192,96,32,.4);
  animation: sil-fire 2s ease-in-out infinite alternate;
}
.scn-she-was-in-love .chair-left {
  position:absolute; bottom:25%; left:30%; width:50px; height:60px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a120a 100%);
  border-radius: 30% 30% 10% 10%;
  transform: rotate(-5deg);
}
.scn-she-was-in-love .chair-right {
  position:absolute; bottom:25%; right:30%; width:50px; height:60px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a120a 100%);
  border-radius: 30% 30% 10% 10%;
  transform: rotate(5deg);
}
.scn-she-was-in-love .figure-left {
  position:absolute; bottom:28%; left:33%; width:22px; height:40px;
  background: linear-gradient(180deg, #0a0808 0%, #1a1410 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: sil-sway 6s ease-in-out infinite;
}
.scn-she-was-in-love .figure-right {
  position:absolute; bottom:28%; right:33%; width:20px; height:38px;
  background: linear-gradient(180deg, #0a0808 0%, #1a1410 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: sil-sway 6s ease-in-out infinite reverse;
}
.scn-she-was-in-love .candlestick {
  position:absolute; bottom:26%; left:48%; width:6px; height:14px;
  background: #6a4a2a; border-radius: 10%;
  box-shadow: 0 0 10px 3px #d08030;
  animation: sil-candle 4s ease-in-out infinite alternate;
}

@keyframes sil-fire {
  0% { transform: translateX(-50%) scaleY(1) scaleX(0.9); opacity:0.8; }
  50% { transform: translateX(-50%) scaleY(1.2) scaleX(1); opacity:1; }
  100% { transform: translateX(-50%) scaleY(0.8) scaleX(0.95); opacity:0.7; }
}
@keyframes sil-sway {
  0% { transform: rotate(-2deg); }
  50% { transform: rotate(2deg); }
  100% { transform: rotate(-1deg); }
}
@keyframes sil-candle {
  0% { box-shadow: 0 0 8px 2px #c07030; opacity:0.9; }
  50% { box-shadow: 0 0 16px 6px #e09040; opacity:1; }
  100% { box-shadow: 0 0 10px 3px #c07030; opacity:0.85; }
}

/* ===== Scene: corner-of-lawn-summer-afternoon (warm sunlit outdoor) ===== */
.scn-corner-of-lawn-summer-afternoon {
  background:
    linear-gradient(180deg, #ffe8b0 0%, #90b0d0 40%, #70a0c0 100%);
}
.scn-corner-of-lawn-summer-afternoon .sky {
  position:absolute; inset:0 0 50% 0;
  background: linear-gradient(180deg, #ffe8b0 0%, #c0d8e8 100%);
  animation: cls-sky 20s ease-in-out infinite alternate;
}
.scn-corner-of-lawn-summer-afternoon .grass {
  position:absolute; bottom:0; left:0; right:0; height:50%;
  background: linear-gradient(180deg, #80b060 0%, #507030 100%);
  border-radius: 70% 30% 0 0 / 40% 20% 0 0;
}
.scn-corner-of-lawn-summer-afternoon .tree-trunk {
  position:absolute; bottom:40%; left:20%; width:16px; height:60px;
  background: linear-gradient(90deg, #5a3a2a 0%, #7a5a3a 50%, #5a3a2a 100%);
  border-radius: 20% 20% 10% 10%;
}
.scn-corner-of-lawn-summer-afternoon .tree-canopy {
  position:absolute; bottom:55%; left:10%; width:120px; height:80px;
  background: radial-gradient(ellipse at 50% 60%, #90b070 0%, #607040 70%, transparent 100%);
  border-radius: 60% 40% 50% 50%;
  filter: blur(2px);
  animation: cls-canopy 12s ease-in-out infinite alternate;
}
.scn-corner-of-lawn-summer-afternoon .figure {
  position:absolute; bottom:30%; left:40%; width:30px; height:45px;
  background: linear-gradient(180deg, #2a1a10 0%, #3a2a1a 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: cls-figure 6s ease-in-out infinite;
}
.scn-corner-of-lawn-summer-afternoon .book {
  position:absolute; bottom:27%; left:44%; width:14px; height:20px;
  background: #a08050;
  border-radius: 5% 5% 15% 15%;
  box-shadow: 0 2px 4px rgba(0,0,0,.3);
  transform: rotate(-10deg);
  animation: cls-book 8s ease-in-out infinite;
}

@keyframes cls-sky {
  0% { opacity:0.8; }
  50% { opacity:1; }
  100% { opacity:0.9; }
}
@keyframes cls-canopy {
  0% { transform: scaleY(1) translateY(0); }
  50% { transform: scaleY(1.05) translateY(-2px); }
  100% { transform: scaleY(0.95) translateY(1px); }
}
@keyframes cls-figure {
  0% { transform: rotate(-3deg); }
  50% { transform: rotate(2deg) translateY(-1px); }
  100% { transform: rotate(-1deg); }
}
@keyframes cls-book {
  0% { transform: rotate(-10deg) translateY(0); }
  50% { transform: rotate(-8deg) translateY(-2px); }
  100% { transform: rotate(-11deg) translateY(1px); }
}

/* ===== Scene: everybody-stays-for-story (calm firelit interior) ===== */
.scn-everybody-stays-for-story {
  background:
    radial-gradient(ellipse at 50% 25%, #c08040 0%, transparent 50%),
    linear-gradient(180deg, #2a1a12 0%, #180e08 100%);
}
.scn-everybody-stays-for-story .bg { position:absolute; inset:0; background:#1a100a; }
.scn-everybody-stays-for-story .fireplace {
  position:absolute; bottom:30%; left:50%; width:160px; height:130px; transform:translateX(-50%);
  background: linear-gradient(180deg, #4a3520 0%, #2a1a0e 100%);
  border-radius: 50% 50% 8% 8% / 70% 70% 8% 8%;
  box-shadow: inset 0 -30px 40px rgba(0,0,0,.5);
}
.scn-everybody-stays-for-story .fire {
  position:absolute; bottom:39%; left:50%; width:40px; height:50px; transform:translateX(-50%);
  background: radial-gradient(ellipse, #f0a840 0%, #c06020 60%, transparent 100%);
  border-radius: 50% 50% 20% 20%;
  box-shadow: 0 0 50px 25px #c06020, 0 0 100px 50px rgba(192,96,32,.3);
  animation: ess-fire 3s ease-in-out infinite alternate;
}
.scn-everybody-stays-for-story .sofa {
  position:absolute; bottom:25%; left:30%; width:120px; height:50px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a12 100%);
  border-radius: 30% 30% 10% 10%;
  transform: translateX(-50%);
}
.scn-everybody-stays-for-story .figure1,
.scn-everybody-stays-for-story .figure2,
.scn-everybody-stays-for-story .figure3 {
  position:absolute; bottom:28%; width:20px; height:35px;
  background: linear-gradient(180deg, #0a0808 0%, #1a1410 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
}
.scn-everybody-stays-for-story .figure1 { left:35%; animation: ess-sway 7s ease-in-out infinite; }
.scn-everybody-stays-for-story .figure2 { left:50%; animation: ess-sway 7s ease-in-out infinite 1s; }
.scn-everybody-stays-for-story .figure3 { left:65%; animation: ess-sway 7s ease-in-out infinite 2s; }
.scn-everybody-stays-for-story .carpet {
  position:absolute; bottom:12%; left:25%; right:25%; height:30px;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 50% / 100% 100% 0 0;
  opacity:0.7;
}

@keyframes ess-fire {
  0% { transform: translateX(-50%) scaleY(1); opacity:0.8; }
  50% { transform: translateX(-50%) scaleY(1.3) scaleX(0.9); opacity:1; }
  100% { transform: translateX(-50%) scaleY(0.8) scaleX(1.1); opacity:0.7; }
}
@keyframes ess-sway {
  0% { transform: rotate(-2deg); }
  50% { transform: rotate(2deg) translateY(-1px); }
  100% { transform: rotate(-1deg); }
}

/* ===== Scene: douglas-promises-tomorrow (tense firelit) ===== */
.scn-douglas-promises-tomorrow {
  background:
    radial-gradient(ellipse at 50% 30%, #c07030 0%, transparent 40%),
    linear-gradient(180deg, #1a0e08 0%, #0a0604 100%);
}
.scn-douglas-promises-tomorrow .bg { position:absolute; inset:0; background:#120a06; }
.scn-douglas-promises-tomorrow .fireplace {
  position:absolute; bottom:25%; left:50%; width:130px; height:100px; transform:translateX(-50%);
  background: linear-gradient(180deg, #3a2520 0%, #1a100e 100%);
  border-radius: 50% 50% 5% 5% / 70% 70% 5% 5%;
  box-shadow: inset 0 -20px 30px rgba(0,0,0,.7);
}
.scn-douglas-promises-tomorrow .fire {
  position:absolute; bottom:33%; left:50%; width:25px; height:35px; transform:translateX(-50%);
  background: radial-gradient(ellipse, #e08030 0%, #a05020 60%, transparent 100%);
  border-radius: 50% 50% 20% 20%;
  box-shadow: 0 0 30px 15px #a05020, 0 0 60px 30px rgba(160,80,32,.3);
  animation: dpt-fire 1.5s ease-in-out infinite alternate;
}
.scn-douglas-promises-tomorrow .chair {
  position:absolute; bottom:22%; left:30%; width:45px; height:55px;
  background: linear-gradient(180deg, #2a1a12 0%, #120a06 100%);
  border-radius: 30% 30% 5% 5%;
  transform: rotate(-3deg);
}
.scn-douglas-promises-tomorrow .figure-rising {
  position:absolute; bottom:20%; left:28%; width:22px; height:50px;
  background: linear-gradient(180deg, #0a0808 0%, #1a1410 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: dpt-rise 3s ease-in-out infinite;
}
.scn-douglas-promises-tomorrow .candlestick {
  position:absolute; bottom:28%; left:22%; width:6px; height:18px;
  background: #6a4a2a; border-radius: 10%;
  box-shadow: 0 0 12px 4px #d08030;
  animation: dpt-candle 2s ease-in-out infinite alternate;
}
.scn-douglas-promises-tomorrow .shadow {
  position:absolute; bottom:18%; left:30%; width:30px; height:40px;
  background: rgba(0,0,0,.5);
  border-radius: 50% 50% 10% 10%;
  filter: blur(4px);
  animation: dpt-shadow 3s ease-in-out infinite;
}

@keyframes dpt-fire {
  0% { transform: translateX(-50%) scaleY(1) scaleX(0.8); opacity:0.7; }
  50% { transform: translateX(-50%) scaleY(1.4) scaleX(1.1); opacity:1; }
  100% { transform: translateX(-50%) scaleY(0.7) scaleX(0.9); opacity:0.6; }
}
@keyframes dpt-rise {
  0% { transform: translateY(0) rotate(-4deg); }
  50% { transform: translateY(-10px) rotate(2deg); }
  100% { transform: translateY(0) rotate(-2deg); }
}
@keyframes dpt-candle {
  0% { box-shadow: 0 0 8px 2px #b06020; opacity:0.8; }
  50% { box-shadow: 0 0 18px 6px #e08030; opacity:1; }
  100% { box-shadow: 0 0 10px 3px #b06020; opacity:0.7; }
}
@keyframes dpt-shadow {
  0% { transform: scaleX(1) scaleY(1); opacity:0.5; }
  50% { transform: scaleX(1.3) scaleY(1.2); opacity:0.7; }
  100% { transform: scaleX(0.9) scaleY(0.8); opacity:0.4; }
}

/* avenue-welcome-reprieve */
.scn-avenue-welcome-reprieve { background: linear-gradient(180deg, #87ceeb 0%, #f0e68c 40%, #9acd32 80%), radial-gradient(ellipse at 60% 30%, #fff8dc 0%, transparent 60%); }
.scn-avenue-welcome-reprieve .sky { position:absolute; inset:0 0 60% 0; background: linear-gradient(180deg, #f8f8ff 0%, #87ceeb 40%, transparent 100%); animation: awr-sky 12s ease-in-out infinite alternate; }
.scn-avenue-welcome-reprieve .sun { position:absolute; top:8%; left:60%; width:40px; height:40px; background: radial-gradient(circle, #fff8dc 0%, #f0e68c 60%, transparent 100%); border-radius:50%; animation: awr-sun 15s ease-in-out infinite alternate; }
.scn-avenue-welcome-reprieve .road { position:absolute; bottom:20%; left:10%; right:10%; height:8%; background: linear-gradient(90deg, #8b7355 0%, #a08b6e 50%, #8b7355 100%); border-radius:4px; animation: awr-road 20s linear infinite; }
.scn-avenue-welcome-reprieve .trees-left { position:absolute; bottom:30%; left:5%; width:15%; height:40%; background: linear-gradient(180deg, #228b22 0%, #006400 60%, #2e8b57 100%); border-radius: 40% 60% 40% 60% / 60% 40% 60% 40%; animation: awr-trees 8s ease-in-out infinite alternate; }
.scn-avenue-welcome-reprieve .trees-right { position:absolute; bottom:30%; right:5%; width:15%; height:40%; background: linear-gradient(180deg, #2e8b57 0%, #228b22 60%, #006400 100%); border-radius: 60% 40% 60% 40% / 40% 60% 40% 60%; animation: awr-trees 8s ease-in-out infinite alternate-reverse; }
.scn-avenue-welcome-reprieve .carriage { position:absolute; bottom:18%; left:0%; width:80px; height:40px; background: linear-gradient(90deg, #8b4513 0%, #a0522d 40%, #8b4513 70%, transparent 100%); border-radius:10% 10% 30% 30% / 20% 20% 40% 40%; animation: awr-carriage 25s linear infinite; }
.scn-avenue-welcome-reprieve .grass { position:absolute; bottom:0; left:0; right:0; height:20%; background: linear-gradient(180deg, #7cfc00 0%, #32cd32 40%, #228b22 100%); border-radius:20% 20% 0 0 / 40% 40% 0 0; animation: awr-grass 5s ease-in-out infinite alternate; }
@keyframes awr-sky { 0% { opacity:0.8; } 50% { opacity:1; } 100% { opacity:0.7; } }
@keyframes awr-sun { 0% { transform: scale(0.95); box-shadow: 0 0 20px 10px #f0e68c; } 50% { transform: scale(1.05); box-shadow: 0 0 30px 15px #fff8dc; } 100% { transform: scale(0.98); box-shadow: 0 0 25px 12px #f0e68c; } }
@keyframes awr-road { 0% { background-position: 0% 0%; } 100% { background-position: 100% 0%; } }
@keyframes awr-trees { 0% { transform: rotate(-2deg); } 50% { transform: rotate(2deg); } 100% { transform: rotate(-1deg); } }
@keyframes awr-carriage { 0% { transform: translateX(-100px); } 100% { transform: translateX(120vw); } }
@keyframes awr-grass { 0% { transform: translateY(0) scale(1); } 50% { transform: translateY(-2px) scale(1.01); } 100% { transform: translateY(0) scale(1); } }

/* first-view-of-bly */
.scn-first-view-of-bly { background: linear-gradient(180deg, #f0e68c 0%, #87ceeb 40%, #ffdead 80%), radial-gradient(ellipse at 50% 30%, #fff8dc 0%, transparent 60%); }
.scn-first-view-of-bly .sky { position:absolute; inset:0 0 50% 0; background: linear-gradient(180deg, #f8f8ff 0%, #87ceeb 30%, transparent 100%); animation: fvb-sky 14s ease-in-out infinite alternate; }
.scn-first-view-of-bly .house-wall { position:absolute; bottom:20%; left:25%; right:25%; height:45%; background: linear-gradient(90deg, #deb887 0%, #f5deb3 50%, #deb887 100%); border-radius: 5% 5% 0 0; box-shadow: inset 0 10px 30px rgba(0,0,0,0.1); animation: fvb-wall 9s ease-in-out infinite alternate; }
.scn-first-view-of-bly .door { position:absolute; bottom:22%; left:44%; width:12%; height:30%; background: linear-gradient(180deg, #8b4513 0%, #a0522d 50%, #8b4513 100%); border-radius:10% 10% 0 0; box-shadow: 2px 0 8px rgba(0,0,0,0.3); animation: fvb-door 12s ease-in-out infinite; }
.scn-first-view-of-bly .steps { position:absolute; bottom:18%; left:40%; right:40%; height:5%; background: linear-gradient(180deg, #bc8f8f 0%, #a08060 100%); border-radius:4px 4px 0 0; animation: fvb-steps 10s ease-in-out infinite alternate; }
.scn-first-view-of-bly .governess { position:absolute; bottom:25%; left:38%; width:10%; height:35%; background: linear-gradient(180deg, #556b2f 0%, #3b5323 60%, #2e3b1f 100%); border-radius:30% 30% 20% 20% / 50% 50% 30% 30%; transform: scaleX(-1); animation: fvb-governess 6s ease-in-out infinite; }
.scn-first-view-of-bly .flora { position:absolute; bottom:23%; left:50%; width:8%; height:25%; background: linear-gradient(180deg, #ffe4b5 0%, #f5deb3 40%, #ffe4b5 100%); border-radius:40% 40% 30% 30% / 60% 60% 40% 40%; animation: fvb-flora 5s ease-in-out infinite alternate; }
.scn-first-view-of-bly .ground { position:absolute; bottom:0; left:0; right:0; height:20%; background: linear-gradient(180deg, #7cfc00 0%, #32cd32 50%, #228b22 100%); border-radius:30% 30% 0 0 / 50% 50% 0 0; animation: fvb-ground 7s ease-in-out infinite alternate; }
@keyframes fvb-sky { 0% { opacity:0.85; } 50% { opacity:1; } 100% { opacity:0.9; } }
@keyframes fvb-wall { 0% { transform: scale(1); } 50% { transform: scale(1.02); } 100% { transform: scale(0.98); } }
@keyframes fvb-door { 0% { box-shadow: 2px 0 8px rgba(0,0,0,0.3); } 50% { box-shadow: 4px 0 12px rgba(0,0,0,0.4); } 100% { box-shadow: 2px 0 8px rgba(0,0,0,0.3); } }
@keyframes fvb-steps { 0% { transform: translateY(0); } 50% { transform: translateY(-1px); } 100% { transform: translateY(0); } }
@keyframes fvb-governess { 0% { transform: translateX(0) rotate(-1deg); } 50% { transform: translateX(3px) rotate(1deg); } 100% { transform: translateX(0) rotate(-1deg); } }
@keyframes fvb-flora { 0% { transform: translateY(0); } 50% { transform: translateY(-2px); } 100% { transform: translateY(0); } }
@keyframes fvb-ground { 0% { background-position: 0% 0%; } 50% { background-position: 10% 0%; } 100% { background-position: 0% 0%; } }

/* harley-street-narrower-notion */
.scn-harley-street-narrower-notion { background: linear-gradient(180deg, #fffaf0 0%, #f0c27a 40%, #f5deb3 80%), radial-gradient(ellipse at 50% 40%, #fff8dc 0%, transparent 60%); }
.scn-harley-street-narrower-notion .wall { position:absolute; inset:0; background: linear-gradient(90deg, #deb887 0%, #f5deb3 50%, #deb887 100%); animation: hsn-wall 12s ease-in-out infinite alternate; }
.scn-harley-street-narrower-notion .window { position:absolute; top:10%; left:35%; right:35%; height:30%; background: linear-gradient(180deg, #87ceeb 0%, #b0e0e6 100%); border-radius:4px; box-shadow: inset 0 0 20px rgba(0,0,0,0.1); animation: hsn-window 8s ease-in-out infinite alternate; }
.scn-harley-street-narrower-notion .curtain { position:absolute; top:10%; left:36%; right:36%; height:32%; background: linear-gradient(90deg, #f5deb3 0%, #fff8dc 50%, #f5deb3 100%); border-radius:4px; opacity:0.3; animation: hsn-curtain 10s ease-in-out infinite; }
.scn-harley-street-narrower-notion .desk { position:absolute; bottom:25%; left:20%; right:20%; height:15%; background: linear-gradient(180deg, #8b4513 0%, #a0522d 40%, #8b4513 100%); border-radius:8% 8% 0 0; animation: hsn-desk 6s ease-in-out infinite alternate; }
.scn-harley-street-narrower-notion .chair { position:absolute; bottom:18%; left:45%; right:45%; height:20%; background: linear-gradient(180deg, #cd853f 0%, #b8860b 60%, #cd853f 100%); border-radius:20% 20% 0 0; animation: hsn-chair 7s ease-in-out infinite alternate; }
.scn-harley-street-narrower-notion .letter { position:absolute; bottom:30%; left:28%; width:12%; height:6%; background: #fff8dc; border-radius:2px; box-shadow: 2px 2px 4px rgba(0,0,0,0.2); animation: hsn-letter 9s ease-in-out infinite; }
.scn-harley-street-narrower-notion .figure-seated { position:absolute; bottom:22%; left:42%; right:42%; height:25%; background: linear-gradient(180deg, #556b2f 0%, #3b5323 60%, #2e3b1f 100%); border-radius:40% 40% 30% 30% / 60% 60% 40% 40%; animation: hsn-figure 5s ease-in-out infinite alternate; }
@keyframes hsn-wall { 0% { opacity:0.95; } 50% { opacity:1; } 100% { opacity:0.9; } }
@keyframes hsn-window { 0% { opacity:0.8; } 50% { opacity:1; } 100% { opacity:0.85; } }
@keyframes hsn-curtain { 0% { transform: translateY(0); } 50% { transform: translateY(-2px); } 100% { transform: translateY(0); } }
@keyframes hsn-desk { 0% { transform: scale(1); } 50% { transform: scale(1.02); } 100% { transform: scale(0.98); } }
@keyframes hsn-chair { 0% { transform: rotate(-1deg); } 50% { transform: rotate(1deg); } 100% { transform: rotate(-1deg); } }
@keyframes hsn-letter { 0% { transform: translate(0,0) rotate(0deg); } 50% { transform: translate(1px,-1px) rotate(2deg); } 100% { transform: translate(0,0) rotate(0deg); } }
@keyframes hsn-figure { 0% { transform: translateY(0); } 50% { transform: translateY(-1px); } 100% { transform: translateY(0); } }

/* beautiful-child-flora */
.scn-beautiful-child-flora { background: linear-gradient(180deg, #ffe4b5 0%, #f5deb3 30%, #ffdead 60%, #deb887 100%), radial-gradient(ellipse at 50% 50%, #fff8dc 0%, transparent 70%); }
.scn-beautiful-child-flora .wall { position:absolute; inset:0; background: linear-gradient(90deg, #f5deb3 0%, #fff8dc 50%, #f5deb3 100%); animation: bcf-wall 14s ease-in-out infinite alternate; }
.scn-beautiful-child-flora .window { position:absolute; top:10%; left:30%; right:30%; height:35%; background: linear-gradient(180deg, #87ceeb 0%, #b0e0e6 100%); border-radius:4px; box-shadow: inset 0 0 30px rgba(0,0,0,0.1); animation: bcf-window 9s ease-in-out infinite alternate; }
.scn-beautiful-child-flora .curtains { position:absolute; top:10%; left:31%; right:31%; height:37%; background: linear-gradient(90deg, #f5deb3 0%, #fff8dc 50%, #f5deb3 100%); opacity:0.4; animation: bcf-curtains 11s ease-in-out infinite; }
.scn-beautiful-child-flora .child { position:absolute; bottom:20%; left:45%; right:45%; height:30%; background: linear-gradient(180deg, #ffe4b5 0%, #f5deb3 50%, #ffe4b5 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; animation: bcf-child 6s ease-in-out infinite alternate; }
.scn-beautiful-child-flora .bed { position:absolute; bottom:12%; left:35%; right:35%; height:10%; background: linear-gradient(180deg, #deb887 0%, #b8860b 60%, #deb887 100%); border-radius:10px 10px 0 0; animation: bcf-bed 8s ease-in-out infinite alternate; }
.scn-beautiful-child-flora .glow { position:absolute; top:20%; left:40%; width:20%; height:20%; background: radial-gradient(circle, #fff8dc 0%, transparent 70%); animation: bcf-glow 4s ease-in-out infinite alternate; }
.scn-beautiful-child-flora .lamp { position:absolute; top:25%; left:30%; width:16px; height:24px; background: linear-gradient(180deg, #cd853f 0%, #b8860b 100%); border-radius:30% 30% 10% 10%; box-shadow: 0 0 20px 8px #fff8dc; animation: bcf-lamp 5s ease-in-out infinite alternate; }
@keyframes bcf-wall { 0% { opacity:0.9; } 50% { opacity:1; } 100% { opacity:0.95; } }
@keyframes bcf-window { 0% { opacity:0.8; } 50% { opacity:1; } 100% { opacity:0.85; } }
@keyframes bcf-curtains { 0% { transform: translateY(0); } 50% { transform: translateY(-1px); } 100% { transform: translateY(0); } }
@keyframes bcf-child { 0% { transform: rotate(-1deg) translateY(0); } 50% { transform: rotate(1deg) translateY(-2px); } 100% { transform: rotate(-1deg) translateY(0); } }
@keyframes bcf-bed { 0% { transform: scale(1); } 50% { transform: scale(1.01); } 100% { transform: scale(1); } }
@keyframes bcf-glow { 0% { transform: scale(0.9); opacity:0.8; } 50% { transform: scale(1.1); opacity:1; } 100% { transform: scale(0.9); opacity:0.8; } }
@keyframes bcf-lamp { 0% { box-shadow: 0 0 15px 5px #fff8dc; } 50% { box-shadow: 0 0 25px 10px #fffacd; } 100% { box-shadow: 0 0 15px 5px #fff8dc; } }

/* we-ll-see-it-out */
.scn-we-ll-see-it-out {
  background: 
    linear-gradient(180deg, #f7e8d0 0%, #e8d5b0 40%, #d4bf9a 100%),
    radial-gradient(ellipse at 50% 100%, #d4bf9a 0%, transparent 70%);
}
.scn-we-ll-see-it-out .wall { position:absolute; inset:0 0 35% 0; background: linear-gradient(180deg, #f0dbb8 0%, #d9c9a5 100%); }
.scn-we-ll-see-it-out .floor { position:absolute; bottom:0; left:0; right:0; height:35%; background: linear-gradient(180deg, #b8a080 0%, #8c765a 100%); }
.scn-we-ll-see-it-out .table { position:absolute; bottom:25%; left:20%; width:60%; height:12%; background: linear-gradient(135deg, #a07850 0%, #7a5e3c 100%); border-radius: 4px; box-shadow: 0 6px 12px rgba(0,0,0,.3); }
.scn-we-ll-see-it-out .apron-figure { position:absolute; bottom:15%; left:30%; width:20%; height:40%; background: linear-gradient(180deg, #e0c8a0 0%, #d4b88a 50%, #c8a878 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin:bottom center; animation: wsio-fig1 6s ease-in-out infinite; }
.scn-we-ll-see-it-out .apron-figure::before { content:''; position:absolute; top:15%; left:15%; width:70%; height:30%; background: linear-gradient(135deg, #f0e0c8 0%, #e0c8a0 100%); border-radius:50%; } /* apron bib */
.scn-we-ll-see-it-out .other-figure { position:absolute; bottom:15%; left:55%; width:18%; height:42%; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin:bottom center; animation: wsio-fig2 6s ease-in-out infinite reverse; }
.scn-we-ll-see-it-out .hand-clasp { position:absolute; bottom:38%; left:45%; width:6%; height:4%; background: #c8a878; border-radius:50%; box-shadow: 0 0 8px 4px rgba(200,168,120,.6); animation: wsio-hand 3s ease-in-out infinite; }
.scn-we-ll-see-it-out .window { position:absolute; top:10%; right:10%; width:30%; height:40%; background: linear-gradient(180deg, #a0c8e0 0%, #7a9aba 100%); border: 6px solid #6a5a4a; border-radius:4px; box-shadow: inset 0 0 20px rgba(0,0,0,.2), 0 0 30px rgba(200,180,140,.3); animation: wsio-win 8s ease-in-out infinite; }
.scn-we-ll-see-it-out .window-light { position:absolute; top:12%; right:12%; width:26%; height:36%; background: radial-gradient(circle at 50% 30%, #f0e0c0 0%, transparent 70%); opacity:.5; animation: wsio-winlight 4s ease-in-out infinite alternate; }
@keyframes wsio-fig1     { 0% { transform: translateY(0) rotate(0) } 50% { transform: translateY(-4px) rotate(2deg) } 100% { transform: translateY(0) rotate(0) } }
@keyframes wsio-fig2     { 0% { transform: translateY(0) rotate(0) } 50% { transform: translateY(-3px) rotate(-2deg) } 100% { transform: translateY(0) rotate(0) } }
@keyframes wsio-hand     { 0% { transform: scale(1); opacity:.8 } 50% { transform: scale(1.1); opacity:1 } 100% { transform: scale(1); opacity:.8 } }
@keyframes wsio-win      { 0% { box-shadow: inset 0 0 20px rgba(0,0,0,.2), 0 0 30px rgba(200,180,140,.3) } 50% { box-shadow: inset 0 0 30px rgba(0,0,0,.3), 0 0 50px rgba(200,180,140,.5) } 100% { box-shadow: inset 0 0 20px rgba(0,0,0,.2), 0 0 30px rgba(200,180,140,.3) } }
@keyframes wsio-winlight { 0% { opacity:.3 } 50% { opacity:.7 } 100% { opacity:.4 } }

/* charm-smoothing-away */
.scn-charm-smoothing-away {
  background: 
    linear-gradient(180deg, #f0e0c8 0%, #e0cbaa 50%, #c8b08a 100%),
    radial-gradient(ellipse at 50% 80%, #e0cbaa 0%, transparent 70%);
}
.scn-charm-smoothing-away .desk { position:absolute; bottom:0; left:10%; width:80%; height:40%; background: linear-gradient(180deg, #a08060 0%, #7a5e3c 100%); border-radius:8px 8px 0 0; box-shadow: 0 -4px 12px rgba(0,0,0,.3); }
.scn-charm-smoothing-away .chair { position:absolute; bottom:35%; left:25%; width:12%; height:25%; background: linear-gradient(135deg, #8a6a4a 0%, #5a3a1a 100%); border-radius: 4px 4px 20% 20%; transform-origin:bottom center; animation: csa-chair 10s ease-in-out infinite; }
.scn-charm-smoothing-away .papers { position:absolute; bottom:28%; left:30%; width:15%; height:8%; background: linear-gradient(135deg, #f0e8d0 0%, #e0d0b0 100%); border-radius:2px; box-shadow: 2px 2px 4px rgba(0,0,0,.1); transform: rotate(-5deg); animation: csa-papers 12s ease-in-out infinite alternate; }
.scn-charm-smoothing-away .inkwell { position:absolute; bottom:25%; left:48%; width:5%; height:7%; background: radial-gradient(circle at 50% 30%, #2a1a0a 0%, #0a0a0a 100%); border-radius:50%; }
.scn-charm-smoothing-away .pen { position:absolute; bottom:30%; left:46%; width:10%; height:2%; background: linear-gradient(90deg, #c8a878 0%, #a07850 100%); transform: rotate(-30deg); transform-origin:left center; animation: csa-pen 5s ease-in-out infinite; }
.scn-charm-smoothing-away .figure-writing { position:absolute; bottom:30%; left:20%; width:20%; height:40%; background: linear-gradient(180deg, #6a5a4a 0%, #4a3a2a 50%, #2a1a0a 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin:bottom center; animation: csa-fig 8s ease-in-out infinite; }
.scn-charm-smoothing-away .figure-writing::after { content:''; position:absolute; top:10%; left:30%; width:40%; height:20%; background: radial-gradient(circle at 50% 40%, #f0dcc0 0%, #e0c8a0 100%); border-radius:50%; } /* face in profile */
.scn-charm-smoothing-away .lamp { position:absolute; top:15%; left:45%; width:6%; height:20%; background: linear-gradient(180deg, #d4a060 0%, #8a5a2a 100%); border-radius:4px; }
.scn-charm-smoothing-away .lamp-glow { position:absolute; top:12%; left:43%; width:12%; height:12%; background: radial-gradient(circle at 50% 50%, #f0d080 0%, #f0c060 50%, transparent 100%); opacity:.6; animation: csa-glow 3s ease-in-out infinite alternate; }
@keyframes csa-chair  { 0%,100% { transform: rotate(0) } 50% { transform: rotate(2deg) } }
@keyframes csa-papers { 0% { transform: rotate(-5deg) translateY(0) } 50% { transform: rotate(-2deg) translateY(-2px) } 100% { transform: rotate(-5deg) translateY(0) } }
@keyframes csa-pen    { 0% { transform: rotate(-30deg) } 50% { transform: rotate(-25deg) } 100% { transform: rotate(-30deg) } }
@keyframes csa-fig    { 0% { transform: translateY(0) rotate(0) } 50% { transform: translateY(-3px) rotate(1deg) } 100% { transform: translateY(0) rotate(0) } }
@keyframes csa-glow   { 0% { opacity:.4 } 50% { opacity:.8 } 100% { opacity:.5 } }

/* ignorance-confusion-conceit */
.scn-ignorance-confusion-conceit {
  background: 
    linear-gradient(180deg, #d8c8b0 0%, #c8b89a 40%, #b8a88a 100%),
    radial-gradient(ellipse at 50% 50%, #d8c8b0 0%, transparent 80%);
}
.scn-ignorance-confusion-conceit .blackboard { position:absolute; top:5%; left:10%; width:80%; height:45%; background: linear-gradient(180deg, #2a3a2a 0%, #1a2a1a 100%); border-radius:4px; box-shadow: 0 4px 12px rgba(0,0,0,.4); }
.scn-ignorance-confusion-conceit .blackboard::after { content:''; position:absolute; bottom:15%; left:20%; width:60%; height:2%; background: #e0d0b0; border-radius:2px; opacity:.4; } /* chalk line */
.scn-ignorance-confusion-conceit .desk1 { position:absolute; bottom:15%; left:10%; width:35%; height:12%; background: linear-gradient(180deg, #a08060 0%, #7a5e3c 100%); border-radius:4px; }
.scn-ignorance-confusion-conceit .desk2 { position:absolute; bottom:15%; right:10%; width:35%; height:12%; background: linear-gradient(180deg, #a08060 0%, #7a5e3c 100%); border-radius:4px; }
.scn-ignorance-confusion-conceit .teacher { position:absolute; bottom:55%; left:45%; width:15%; height:30%; background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin:bottom center; animation: icc-teach 8s ease-in-out infinite; }
.scn-ignorance-confusion-conceit .teacher::after { content:''; position:absolute; top:10%; left:35%; width:30%; height:25%; background: radial-gradient(circle at 50% 40%, #e0c8a0 0%, #c8a878 100%); border-radius:50%; } /* face */
.scn-ignorance-confusion-conceit .student { position:absolute; bottom:10%; left:30%; width:12%; height:25%; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin:bottom center; animation: icc-stu 6s ease-in-out infinite; }
.scn-ignorance-confusion-conceit .student::after { content:''; position:absolute; top:15%; left:20%; width:40%; height:20%; background: radial-gradient(circle at 50% 40%, #e0c8a0 0%, #c8a878 100%); border-radius:50%; } /* face */
.scn-ignorance-confusion-conceit .book { position:absolute; bottom:18%; left:15%; width:8%; height:6%; background: linear-gradient(135deg, #c8a878 0%, #a07850 100%); border-radius:2px; transform: rotate(5deg); }
.scn-ignorance-confusion-conceit .chalk-dust { position:absolute; top:10%; left:20%; width:60%; height:30%; background: radial-gradient(circle at 30% 40%, rgba(230,220,200,.3) 0%, transparent 60%); opacity:.3; animation: icc-dust 15s linear infinite; }
@keyframes icc-teach { 0% { transform: translateY(0) rotate(-1deg) } 50% { transform: translateY(-2px) rotate(1deg) } 100% { transform: translateY(0) rotate(-1deg) } }
@keyframes icc-stu   { 0% { transform: translateY(0) } 50% { transform: translateY(-1px) } 100% { transform: translateY(0) } }
@keyframes icc-dust  { 0% { transform: translateX(0) } 50% { transform: translateX(10px) } 100% { transform: translateX(0) } }

/* learned-to-be-amused */
.scn-learned-to-be-amused {
  background: 
    linear-gradient(180deg, #8bc4e8 0%, #6aa8d0 40%, #4a88b0 100%),
    radial-gradient(ellipse at 50% 0%, #ffd080 0%, transparent 70%);
}
.scn-learned-to-be-amused .sky { position:absolute; inset:0; background: linear-gradient(180deg, #9ad0f0 0%, #7ab8d8 100%); }
.scn-learned-to-be-amused .ground { position:absolute; bottom:0; left:0; right:0; height:40%; background: linear-gradient(180deg, #7ab070 0%, #5a9a50 100%); border-radius: 40% 60% 0 0 / 30% 40% 0 0; }
.scn-learned-to-be-amused .tree { position:absolute; bottom:30%; left:15%; width:10%; height:50%; background: linear-gradient(180deg, #6a4a2a 0%, #4a2a0a 100%); border-radius:8% 8% 0 0; transform-origin:bottom center; animation: ltba-tree1 20s ease-in-out infinite alternate; }
.scn-learned-to-be-amused .tree::after { content:''; position:absolute; top:-10%; left:-30%; width:160%; height:50%; background: radial-gradient(ellipse at 50% 80%, #5a8a40 0%, #3a6a20 100%); border-radius:50%; }
.scn-learned-to-be-amused .tree2 { position:absolute; bottom:35%; right:10%; width:8%; height:35%; background: linear-gradient(180deg, #5a3a1a 0%, #3a1a0a 100%); border-radius:8% 8% 0 0; transform-origin:bottom center; animation: ltba-tree2 25s ease-in-out infinite alternate; }
.scn-learned-to-be-amused .tree2::after { content:''; position:absolute; top:-15%; left:-20%; width:140%; height:60%; background: radial-gradient(ellipse at 50% 80%, #4a7a30 0%, #2a5a10 100%); border-radius:50%; }
.scn-learned-to-be-amused .figure-running { position:absolute; bottom:18%; left:40%; width:15%; height:30%; background: linear-gradient(180deg, #8a6a4a 0%, #6a4a2a 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin:bottom center; animation: ltba-run 4s ease-in-out infinite; }
.scn-learned-to-be-amused .figure-running::after { content:''; position:absolute; top:10%; left:25%; width:50%; height:25%; background: radial-gradient(circle at 50% 40%, #e0c8a0 0%, #c8a878 100%); border-radius:50%; } /* face profile */
.scn-learned-to-be-amused .bird { position:absolute; top:20%; left:60%; width:4%; height:3%; background: radial-gradient(ellipse at 50% 50%, #2a1a0a 0%, #4a3a2a 100%); border-radius:50%; animation: ltba-bird 12s linear infinite; }
.scn-learned-to-be-amused .sun { position:absolute; top:5%; right:15%; width:12%; height:12%; background: radial-gradient(circle at 50% 50%, #ffd080 0%, #f0c060 60%, transparent 100%); opacity:.85; animation: ltba-sun 8s ease-in-out infinite alternate; }
@keyframes ltba-tree1 { 0% { transform: rotate(-2deg) } 50% { transform: rotate(2deg) } 100% { transform: rotate(-2deg) } }
@keyframes ltba-tree2 { 0% { transform: rotate(1deg) } 50% { transform: rotate(-1deg) } 100% { transform: rotate(1deg) } }
@keyframes ltba-run   { 0% { transform: translateX(0) rotate(-3deg) } 25% { transform: translateX(15px) rotate(3deg) } 50% { transform: translateX(30px) rotate(-3deg) } 75% { transform: translateX(45px) rotate(3deg) } 100% { transform: translateX(60px) rotate(-3deg) } }
@keyframes ltba-bird  { 0% { transform: translateX(0) translateY(0) } 25% { transform: translateX(20px) translateY(-5px) } 50% { transform: translateX(40px) translateY(0) } 75% { transform: translateX(60px) translateY(-3px) } 100% { transform: translateX(80px) translateY(0) } }
@keyframes ltba-sun   { 0% { box-shadow: 0 0 30px 10px rgba(255,208,128,.5) } 50% { box-shadow: 0 0 50px 20px rgba(255,208,128,.7) } 100% { box-shadow: 0 0 30px 10px rgba(255,208,128,.5) } }

.scn-off-my-guard {
  background: 
    linear-gradient(180deg, #f9e9c8 0%, #b5d0e0 30%, #7ba4c0 100%),
    radial-gradient(ellipse at 70% 30%, #ffe9a0 0%, transparent 50%);
}
.scn-off-my-guard .sky     { position: absolute; inset: 0 0 40% 0; background: linear-gradient(180deg, #d4e7f0 0%, transparent 100%); animation: omg-sky 8s ease-in-out infinite alternate; }
.scn-off-my-guard .sun     { position: absolute; top: 12%; right: 20%; width: 50px; height: 50px; background: radial-gradient(circle, #fff5d0 0%, #ffd680 40%, transparent 70%); border-radius: 50%; box-shadow: 0 0 60px 30px rgba(255,214,128,.5); animation: omg-sun 12s ease-in-out infinite; }
.scn-off-my-guard .cloud   { position: absolute; top: 20%; width: 50px; height: 14px; background: linear-gradient(180deg, rgba(255,255,255,.7) 0%, rgba(200,220,240,.3) 100%); border-radius: 50%; filter: blur(4px); }
.scn-off-my-guard .c1      { left: 10%; animation: omg-drift 40s linear infinite; }
.scn-off-my-guard .c2      { left: 40%; width: 70px; height: 18px; animation: omg-drift 55s linear infinite reverse; animation-delay: -15s; }
.scn-off-my-guard .grass   { position: absolute; bottom: 0; left: 0; right: 0; height: 45%; background: linear-gradient(180deg, #7a9a5a 0%, #3a5a2a 100%); border-radius: 40% 60% 0 0 / 30% 40% 0 0; animation: omg-grass 7s ease-in-out infinite alternate; }
.scn-off-my-guard .tree-trunk { position: absolute; bottom: 36%; left: 22%; width: 12px; height: 40%; background: linear-gradient(180deg, #6a4a3a 0%, #3a2a1a 100%); border-radius: 4px; transform: rotate(2deg); }
.scn-off-my-guard .tree-canopy { position: absolute; bottom: 74%; left: 15%; width: 90px; height: 50px; background: radial-gradient(ellipse, #4a7a3a 0%, #2a5a1a 100%); border-radius: 50%; box-shadow: inset -10px -5px 15px rgba(0,0,0,.3); animation: omg-sway 9s ease-in-out infinite alternate; }
.scn-off-my-guard .figure  { position: absolute; bottom: 28%; left: 50%; width: 20px; height: 36px; background: linear-gradient(180deg, #d4b88a 0%, #b89868 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: omg-recline 6s ease-in-out infinite; }
.scn-off-my-guard .butterfly { position: absolute; bottom: 40%; left: 60%; width: 12px; height: 8px; background: radial-gradient(circle at 50% 50%, #f0b040 0%, transparent 100%); border-radius: 50%; animation: omg-flutter 3s ease-in-out infinite; }

@keyframes omg-sky { 0% { opacity: .8 } 50% { opacity: 1 } 100% { opacity: .7 } }
@keyframes omg-sun { 0%,100% { transform: scale(1); opacity: .9 } 50% { transform: scale(1.05); opacity: 1 } }
@keyframes omg-drift { 0% { transform: translateX(-50px) } 100% { transform: translateX(120vw) } }
@keyframes omg-grass { 0% { transform: translateY(0) } 50% { transform: translateY(-2px) } 100% { transform: translateY(0) } }
@keyframes omg-sway { 0% { transform: rotate(-2deg) } 50% { transform: rotate(3deg) } 100% { transform: rotate(-1deg) } }
@keyframes omg-recline { 0%,100% { transform: rotate(-8deg) translateY(0) } 50% { transform: rotate(-4deg) translateY(-3px) } }
@keyframes omg-flutter { 0%,100% { transform: translateX(0) rotate(0) } 25% { transform: translateX(8px) rotate(30deg) } 75% { transform: translateX(-8px) rotate(-30deg) } }

.scn-romantic-extension-of-park {
  background: 
    linear-gradient(180deg, #f7ebc2 0%, #b8d4b0 40%, #6a9a5a 100%),
    radial-gradient(ellipse at 30% 20%, #fff9e0 0%, transparent 60%);
}
.scn-romantic-extension-of-park .sky    { position: absolute; inset: 0 0 50% 0; background: linear-gradient(180deg, #d4e8f0 0%, transparent 100%); animation: rep-sky 10s ease-in-out infinite alternate; }
.scn-romantic-extension-of-park .distant-trees { position: absolute; bottom: 40%; left: 0; right: 0; height: 20%; background: linear-gradient(180deg, #4a6a3a 0%, #2a4a1a 100%); border-radius: 30% 70% 0 0 / 50% 60% 0 0; filter: blur(2px); animation: rep-trees 14s ease-in-out infinite alternate; }
.scn-romantic-extension-of-park .path  { position: absolute; bottom: 10%; left: 30%; right: 30%; height: 30%; background: linear-gradient(180deg, #c8a870 0%, #a08050 100%); border-radius: 10% 10% 0 0 / 20% 20% 0 0; transform: perspective(300px) rotateX(25deg); }
.scn-romantic-extension-of-park .bench { position: absolute; bottom: 22%; left: 35%; width: 60px; height: 20px; background: linear-gradient(180deg, #6a4a2a 0%, #4a2a1a 100%); border-radius: 6px 6px 4px 4px; box-shadow: 0 4px 8px rgba(0,0,0,.3); animation: rep-bench 5s ease-in-out infinite alternate; }
.scn-romantic-extension-of-park .fountain-base { position: absolute; bottom: 15%; left: 60%; width: 30px; height: 20px; background: linear-gradient(180deg, #b0a090 0%, #807060 100%); border-radius: 50% 50% 10% 10% / 60% 60% 10% 10%; }
.scn-romantic-extension-of-park .fountain-water { position: absolute; bottom: 25%; left: 60%; width: 6px; height: 20px; background: linear-gradient(180deg, rgba(180,220,255,.8) 0%, transparent 100%); border-radius: 50%; filter: blur(2px); animation: rep-fountain 3s ease-in-out infinite; }
.scn-romantic-extension-of-park .figure-a, .scn-romantic-extension-of-park .figure-b { position: absolute; bottom: 22%; width: 16px; height: 32px; background: linear-gradient(180deg, #c8b898 0%, #a09070 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; }
.scn-romantic-extension-of-park .figure-a { left: 40%; animation: rep-walk 6s ease-in-out infinite; }
.scn-romantic-extension-of-park .figure-b { left: 50%; animation: rep-walk 6s ease-in-out infinite reverse; animation-delay: -3s; }

@keyframes rep-sky { 0% { opacity: .85 } 50% { opacity: 1 } 100% { opacity: .8 } }
@keyframes rep-trees { 0% { transform: translateY(0) scale(1) } 50% { transform: translateY(-2px) scale(1.02) } 100% { transform: translateY(0) scale(1) } }
@keyframes rep-bench { 0%,100% { transform: translateY(0) } 50% { transform: translateY(-2px) } }
@keyframes rep-fountain { 0%,100% { transform: scaleY(1); opacity: .7 } 50% { transform: scaleY(1.2); opacity: 1 } }
@keyframes rep-walk { 0% { transform: translateX(0) rotate(-2deg) } 25% { transform: translateX(5px) rotate(2deg) } 50% { transform: translateX(10px) rotate(-1deg) } 75% { transform: translateX(15px) rotate(1deg) } 100% { transform: translateX(20px) rotate(0) } }

.scn-my-own-hour-walk {
  background: 
    linear-gradient(180deg, #b84a2a 0%, #7a5a4a 30%, #3a2a4a 100%),
    radial-gradient(ellipse at 50% 10%, #f0a060 0%, transparent 70%);
}
.scn-my-own-hour-walk .sky-dusk   { position: absolute; inset: 0 0 40% 0; background: linear-gradient(180deg, #5a4a6a 0%, #3a2a4a 100%); animation: ohw-sky 14s ease-in-out infinite alternate; }
.scn-my-own-hour-walk .sunset     { position: absolute; top: 15%; left: 50%; width: 70px; height: 70px; transform: translateX(-50%); background: radial-gradient(circle, #f0a060 0%, #c05a20 40%, transparent 70%); border-radius: 50%; box-shadow: 0 0 60px 30px rgba(192,90,32,.3); animation: ohw-sunset 20s ease-in-out infinite; }
.scn-my-own-hour-walk .treeline   { position: absolute; bottom: 35%; left: 0; right: 0; height: 25%; background: linear-gradient(180deg, #2a2a1a 0%, #1a1a0a 100%); border-radius: 30% 70% 0 0 / 40% 50% 0 0; clip-path: polygon(0% 100%, 5% 50%, 10% 100%, 18% 40%, 25% 100%, 35% 30%, 45% 100%, 55% 20%, 65% 100%, 75% 35%, 85% 100%, 92% 45%, 100% 100%); filter: blur(1px); }
.scn-my-own-hour-walk .path-dusk  { position: absolute; bottom: 10%; left: 20%; right: 20%; height: 25%; background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%); border-radius: 10% 10% 0 0 / 30% 30% 0 0; transform: perspective(400px) rotateX(20deg); }
.scn-my-own-hour-walk .walker     { position: absolute; bottom: 22%; left: 30%; width: 18px; height: 40px; background: linear-gradient(180deg, #2a1a1a 0%, #0a0a0a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: ohw-walk 8s ease-in-out infinite; }
.scn-my-own-hour-walk .bird       { position: absolute; top: 35%; width: 20px; height: 8px; background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%); border-radius: 50%; }
.scn-my-own-hour-walk .b1         { left: 15%; animation: ohw-fly 25s linear infinite; }
.scn-my-own-hour-walk .b2         { left: 60%; animation: ohw-fly 30s linear infinite reverse; animation-delay: -12s; }
.scn-my-own-hour-walk .lantern-dusk { position: absolute; bottom: 28%; left: 55%; width: 8px; height: 10px; background: radial-gradient(circle, #ffd680 0%, transparent 100%); border-radius: 50%; box-shadow: 0 0 20px 8px rgba(255,214,128,.6); animation: ohw-lantern 4s ease-in-out infinite alternate; }

@keyframes ohw-sky { 0% { opacity: .7 } 50% { opacity: .9 } 100% { opacity: .6 } }
@keyframes ohw-sunset { 0%,100% { transform: translateX(-50%) scale(1); opacity: .8 } 50% { transform: translateX(-50%) scale(1.05); opacity: 1 } }
@keyframes ohw-walk { 0% { transform: translateX(0) translateY(0) rotate(-3deg) } 25% { transform: translateX(10px) translateY(-2px) rotate(3deg) } 50% { transform: translateX(20px) translateY(0) rotate(-2deg) } 75% { transform: translateX(30px) translateY(-2px) rotate(2deg) } 100% { transform: translateX(40px) translateY(0) rotate(0) } }
@keyframes ohw-fly { 0% { transform: translateX(-30px) translateY(0) } 25% { transform: translateX(50px) translateY(-10px) } 50% { transform: translateX(130px) translateY(5px) } 75% { transform: translateX(200px) translateY(-5px) } 100% { transform: translateX(300px) translateY(0) } }
@keyframes ohw-lantern { 0% { box-shadow: 0 0 12px 4px rgba(255,214,128,.5); opacity: .8 } 50% { box-shadow: 0 0 28px 12px rgba(255,214,128,.8); opacity: 1 } 100% { box-shadow: 0 0 16px 6px rgba(255,214,128,.6); opacity: .9 } }

.scn-tranquil-justified-pleasure {
  background: 
    linear-gradient(180deg, #3a2a3a 0%, #2a1a2a 50%, #1a0a1a 100%),
    radial-gradient(ellipse at 50% 10%, #4a3a5a 0%, transparent 80%);
}
.scn-tranquil-justified-pleasure .room-wall { position: absolute; inset: 0; background: linear-gradient(90deg, #2a1a2a 0%, #3a2a3a 50%, #2a1a2a 100%); animation: tjp-wall 12s ease-in-out infinite alternate; }
.scn-tranquil-justified-pleasure .window  { position: absolute; top: 15%; left: 30%; right: 30%; bottom: 40%; background: linear-gradient(180deg, #7a5a6a 0%, #4a3a5a 100%); border: 6px solid #4a3a3a; border-radius: 4px; box-shadow: inset 0 0 40px rgba(0,0,0,.5); }
.scn-tranquil-justified-pleasure .curtain { position: absolute; top: 12%; left: 28%; right: 28%; height: 55%; background: linear-gradient(180deg, #5a4a5a 0%, #3a2a3a 100%); border-radius: 10px; opacity: .6; animation: tjp-curtain 7s ease-in-out infinite alternate; }
.scn-tranquil-justified-pleasure .desk    { position: absolute; bottom: 18%; left: 25%; right: 25%; height: 12%; background: linear-gradient(180deg, #6a4a3a 0%, #3a2a1a 100%); border-radius: 4px 4px 0 0; box-shadow: 0 4px 12px rgba(0,0,0,.5); }
.scn-tranquil-justified-pleasure .lamp    { position: absolute; bottom: 28%; left: 45%; width: 16px; height: 24px; background: radial-gradient(circle at 50% 20%, #f0c868 0%, #b08840 100%); border-radius: 10% 10% 40% 40%; box-shadow: 0 0 30px 10px rgba(240,200,104,.4); animation: tjp-lamp 4s ease-in-out infinite alternate; }
.scn-tranquil-justified-pleasure .figure-seated { position: absolute; bottom: 18%; left: 42%; width: 22px; height: 40px; background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: tjp-seated 8s ease-in-out infinite; }

@keyframes tjp-wall { 0% { opacity: .8 } 50% { opacity: 1 } 100% { opacity: .75 } }
@keyframes tjp-curtain { 0% { transform: translateX(-4px) } 50% { transform: translateX(4px) } 100% { transform: translateX(-2px) } }
@keyframes tjp-lamp { 0% { box-shadow: 0 0 20px 6px rgba(240,200,104,.3); opacity: .85 } 50% { box-shadow: 0 0 40px 16px rgba(240,200,104,.6); opacity: 1 } 100% { box-shadow: 0 0 25px 8px rgba(240,200,104,.4); opacity: .9 } }
@keyframes tjp-seated { 0%,100% { transform: translateY(0) rotate(-2deg) } 50% { transform: translateY(-2px) rotate(2deg) } }

/* visitor-vanished */
.scn-visitor-vanished {
  background: linear-gradient(180deg, #1a1a3a 0%, #2c2244 30%, #4a3a5e 60%, #3a2a3a 100%), radial-gradient(ellipse at 50% 100%, #5a4a5e 0%, transparent 70%);
}
.scn-visitor-vanished .sky {
  position:absolute; inset:0 0 45% 0; background: linear-gradient(180deg, #1a1a3a 0%, #2c2244 100%);
  animation: vv-sky 8s ease-in-out infinite alternate;
}
.scn-visitor-vanished .ground {
  position:absolute; bottom:0; left:0; right:0; height:45%; background: linear-gradient(180deg, #2a3a2a 0%, #1a2a1a 100%);
  box-shadow: inset 0 6px 12px rgba(0,0,0,0.5);
}
.scn-visitor-vanished .path {
  position:absolute; bottom:15%; left:50%; width:12%; height:35%; transform:translateX(-50%);
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 30% 30% 0 0;
  animation: vv-path 12s ease-in-out infinite alternate;
}
.scn-visitor-vanished .tree {
  position:absolute; bottom:30%; width:14%; height:40%;
  background: linear-gradient(180deg, #2a3a2a 0%, #1a2a1a 100%);
  border-radius: 60% 60% 20% 20% / 80% 80% 20% 20%;
  box-shadow: inset 0 -8px 12px rgba(0,0,0,0.6);
}
.scn-visitor-vanished .tree-left { left:16%; transform-origin: bottom center; animation: vv-sway-l 6s ease-in-out infinite; }
.scn-visitor-vanished .tree-right { right:16%; transform-origin: bottom center; animation: vv-sway-r 7s ease-in-out infinite; }
.scn-visitor-vanished .house {
  position:absolute; bottom:28%; left:50%; width:60px; height:45px; transform:translateX(-50%);
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 8% 8% 4% 4%;
  box-shadow: 0 4px 8px rgba(0,0,0,0.5);
  animation: vv-house 10s ease-in-out infinite;
}
.scn-visitor-vanished .figure {
  position:absolute; bottom:22%; left:45%; width:12px; height:28px;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: vv-figure 8s ease-in-out infinite;
}
.scn-visitor-vanished .fading {
  opacity: 0.7;
  animation: vv-fading 6s ease-in-out infinite alternate;
}
@keyframes vv-sky { 0%,100% { opacity:0.8 } 50% { opacity:1 } }
@keyframes vv-path { 0% { transform: translateX(-50%) scaleY(1) } 50% { transform: translateX(-50%) scaleY(0.95) } 100% { transform: translateX(-50%) scaleY(1) } }
@keyframes vv-sway-l { 0%,100% { transform: rotate(0deg) } 50% { transform: rotate(3deg) } }
@keyframes vv-sway-r { 0%,100% { transform: rotate(0deg) } 50% { transform: rotate(-3deg) } }
@keyframes vv-house { 0%,100% { transform: translateX(-50%) translateY(0) } 50% { transform: translateX(-50%) translateY(-2px) } }
@keyframes vv-figure { 0%,100% { transform: translateY(0) } 50% { transform: translateY(-2px) } }
@keyframes vv-fading { 0% { opacity:0.7; transform: translateY(0) } 100% { opacity:0.2; transform: translateY(6px) } }

/* empty-park-assurance */
.scn-empty-park-assurance {
  background: linear-gradient(180deg, #1e1a2e 0%, #2a2244 40%, #3a2a4a 70%, #4a3a3a 100%), radial-gradient(ellipse at 40% 50%, #3a2a4a 0%, transparent 60%);
}
.scn-empty-park-assurance .wall {
  position:absolute; inset:0 0 30% 0; background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%);
  border-bottom: 2px solid #3a3a4a;
}
.scn-empty-park-assurance .window-sill {
  position:absolute; bottom:30%; left:20%; width:60%; height:8px;
  background: linear-gradient(90deg, #4a3a3a, #5a4a4a, #4a3a3a);
  border-radius: 2px;
}
.scn-empty-park-assurance .sky-outside {
  position:absolute; bottom:38%; left:22%; width:56%; height:32%;
  background: linear-gradient(180deg, #1a1a2e 0%, #2a2244 100%);
  border: 1px solid #3a3a4a;
}
.scn-empty-park-assurance .tree {
  position:absolute; bottom:38%; width:12%; height:35%;
  background: linear-gradient(180deg, #2a3a2a 0%, #1a2a1a 100%);
  border-radius: 50% 50% 20% 20% / 80% 80% 20% 20%;
  box-shadow: inset 0 -6px 8px rgba(0,0,0,0.5);
}
.scn-empty-park-assurance .tree-a { left:25%; animation: ep-sway-l 7s ease-in-out infinite; }
.scn-empty-park-assurance .tree-b { right:25%; animation: ep-sway-r 8s ease-in-out infinite; }
.scn-empty-park-assurance .shrub {
  position:absolute; bottom:35%; left:35%; width:20%; height:12%;
  background: radial-gradient(ellipse at 50% 100%, #2a4a2a 0%, #1a2a1a 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 20% 20%;
  animation: ep-shrub 10s ease-in-out infinite;
}
.scn-empty-park-assurance .curtain-left {
  position:absolute; bottom:30%; left:18%; width:12%; height:40%;
  background: linear-gradient(90deg, #3a2a2a 0%, #2a1a1a 100%);
  border-radius: 0 20% 20% 0;
  animation: ep-curtain 12s ease-in-out infinite alternate;
}
@keyframes ep-sway-l { 0%,100% { transform: rotate(0deg) } 50% { transform: rotate(2deg) } }
@keyframes ep-sway-r { 0%,100% { transform: rotate(0deg) } 50% { transform: rotate(-2deg) } }
@keyframes ep-shrub { 0%,100% { transform: scaleY(1) } 50% { transform: scaleY(0.95) } }
@keyframes ep-curtain { 0% { transform: translateX(0) } 100% { transform: translateX(8px) } }

/* mrs-grose-sees-me */
.scn-mrs-grose-sees-me {
  background: linear-gradient(180deg, #1a1a2a 0%, #2a2244 50%, #3a2a3a 100%), radial-gradient(ellipse at 50% 70%, #4a3a3a 0%, transparent 60%);
}
.scn-mrs-grose-sees-me .bg {
  position:absolute; inset:0; background: radial-gradient(ellipse at 50% 40%, #2a2a3a 0%, transparent 70%);
  animation: mg-bg 10s ease-in-out infinite alternate;
}
.scn-mrs-grose-sees-me .floor {
  position:absolute; bottom:0; left:0; right:0; height:25%;
  background: linear-gradient(180deg, #2a2a1a 0%, #1a1a0a 100%);
  box-shadow: inset 0 6px 12px rgba(0,0,0,0.5);
}
.scn-mrs-grose-sees-me .figure {
  position:absolute; bottom:20%; width:16px; height:40px;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
}
.scn-mrs-grose-sees-me .left { left:35%; animation: mg-fig-l 4s ease-in-out infinite; }
.scn-mrs-grose-sees-me .right { right:35%; animation: mg-fig-r 4.5s ease-in-out infinite; }
.scn-mrs-grose-sees-me .candle {
  position:absolute; bottom:28%; left:50%; width:6px; height:12px; transform:translateX(-50%);
  background: linear-gradient(180deg, #c0a080 0%, #806040 100%);
  border-radius: 10% 10% 30% 30% / 20% 20% 40% 40%;
}
.scn-mrs-grose-sees-me .candle-glow {
  position:absolute; bottom:30%; left:50%; width:20px; height:20px; transform:translateX(-50%);
  background: radial-gradient(circle, #ffd080 0%, #b08040 50%, transparent 70%);
  border-radius: 50%;
  box-shadow: 0 0 30px 10px rgba(255,208,128,0.3);
  animation: mg-glow 2s ease-in-out infinite alternate;
}
@keyframes mg-bg { 0%,100% { opacity:0.8 } 50% { opacity:1 } }
@keyframes mg-fig-l { 0%,100% { transform: translateY(0) rotate(1deg) } 50% { transform: translateY(-2px) rotate(-1deg) } }
@keyframes mg-fig-r { 0%,100% { transform: translateY(0) rotate(-1deg) } 50% { transform: translateY(-2px) rotate(1deg) } }
@keyframes mg-glow { 0% { transform: translateX(-50%) scale(0.9); opacity:0.7; box-shadow: 0 0 20px 6px rgba(255,208,128,0.2) } 100% { transform: translateX(-50%) scale(1.1); opacity:1; box-shadow: 0 0 40px 15px rgba(255,208,128,0.5) } }

/* why-should-she-be-scared */
.scn-why-should-she-be-scared {
  background: linear-gradient(180deg, #1a1a2e 0%, #2a2244 40%, #3a2a3a 70%, #4a3a3a 100%), radial-gradient(ellipse at 60% 50%, #3a2a3a 0%, transparent 60%);
}
.scn-why-should-she-be-scared .bg {
  position:absolute; inset:0; background: radial-gradient(ellipse at 40% 40%, #2a2a3a 0%, transparent 70%);
  animation: ws-bg 12s ease-in-out infinite alternate;
}
.scn-why-should-she-be-scared .floor {
  position:absolute; bottom:0; left:0; right:0; height:20%;
  background: linear-gradient(180deg, #2a2a1a 0%, #1a1a0a 100%);
  box-shadow: inset 0 4px 8px rgba(0,0,0,0.6);
}
.scn-why-should-she-be-scared .figure {
  position:absolute; bottom:20%; width:16px; height:42px;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
}
.scn-why-should-she-be-scared .behind { left:38%; animation: ws-behind 5s ease-in-out infinite; }
.scn-why-should-she-be-scared .front {
  right:38%; animation: ws-front 4.5s ease-in-out infinite;
  background: linear-gradient(180deg, #3a2a3a 0%, #1a1a2a 100%);
  border-left: 2px solid #5a4a4a; /* pale highlight */
}
.scn-why-should-she-be-scared .flame {
  position:absolute; bottom:30%; left:50%; width:4px; height:10px; transform:translateX(-50%);
  background: linear-gradient(180deg, #ffd080 0%, #c08040 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 20% 20%;
  animation: ws-flame 1.5s ease-in-out infinite alternate;
}
.scn-why-should-she-be-scared .flame-glow {
  position:absolute; bottom:30%; left:50%; width:30px; height:30px; transform:translateX(-50%);
  background: radial-gradient(circle, rgba(255,208,128,0.6) 0%, transparent 70%);
  border-radius: 50%;
  animation: ws-glow 2s ease-in-out infinite alternate;
}
.scn-why-should-she-be-scared .shadow {
  position:absolute; bottom:20%; left:45%; width:30%; height:20%;
  background: radial-gradient(ellipse at 50% 100%, rgba(0,0,0,0.4) 0%, transparent 60%);
  animation: ws-shadow 6s ease-in-out infinite alternate;
}
@keyframes ws-bg { 0%,100% { opacity:0.8 } 50% { opacity:1 } }
@keyframes ws-behind { 0%,100% { transform: translateY(0) rotate(2deg) } 50% { transform: translateY(-2px) rotate(-2deg) } }
@keyframes ws-front { 0%,100% { transform: translateY(0) rotate(-2deg) translateX(0) } 50% { transform: translateY(-3px) rotate(2deg) translateX(-2px) } }
@keyframes ws-flame { 0% { transform: translateX(-50%) scaleY(1) rotate(-5deg) } 100% { transform: translateX(-50%) scaleY(1.2) rotate(5deg) } }
@keyframes ws-glow { 0% { transform: translateX(-50%) scale(0.9); opacity:0.6 } 100% { transform: translateX(-50%) scale(1.1); opacity:1 } }
@keyframes ws-shadow { 0% { transform: scaleX(1) } 100% { transform: scaleX(1.2) } }

.scn-never-mentioned-school {
  background: 
    linear-gradient(180deg, #1a2a3a 0%, #0f1a24 60%, #0a1218 100%),
    radial-gradient(ellipse at 80% 50%, #1a3a4a 0%, transparent 70%);
}
.scn-never-mentioned-school .wall {
  position: absolute; inset: 0;
  background: linear-gradient(135deg, #1a2a3a, #121c28);
  animation: nms-wall 20s ease-in-out infinite;
}
.scn-never-mentioned-school .window-frame {
  position: absolute; top: 12%; right: 15%; width: 90px; height: 120px;
  border: 4px solid #2a3a4a;
  border-radius: 4px;
  background: transparent;
  box-shadow: inset 0 0 20px rgba(0,0,0,0.4);
}
.scn-never-mentioned-school .window-glass {
  position: absolute; top: 13%; right: 16%; width: 80px; height: 110px;
  background: linear-gradient(180deg, rgba(180,200,220,0.2) 0%, rgba(100,130,160,0.4) 100%);
  border-radius: 2px;
  filter: blur(1px);
  animation: nms-glass 12s ease-in-out infinite alternate;
}
.scn-never-mentioned-school .bed {
  position: absolute; bottom: 5%; left: 10%; right: 30%; height: 30%;
  background: linear-gradient(180deg, #3a4a3a 0%, #2a3a2a 100%);
  border-radius: 10px;
  box-shadow: 0 -4px 10px rgba(0,0,0,0.5);
}
.scn-never-mentioned-school .child-body {
  position: absolute; bottom: 18%; left: 18%; width: 40px; height: 50px;
  background: linear-gradient(180deg, #5a6a6a 0%, #3a4a4a 100%);
  border-radius: 40% 40% 20% 20% / 50% 50% 30% 30%;
  transform: rotate(-5deg);
  animation: nms-child-body 8s ease-in-out infinite;
}
.scn-never-mentioned-school .child-head {
  position: absolute; bottom: 42%; left: 16%; width: 28px; height: 30px;
  background: radial-gradient(circle at 40% 30%, #b0c0c0 0%, #7a8a8a 70%, #4a5a5a 100%);
  border-radius: 50%;
  box-shadow: 0 2px 8px rgba(0,0,0,0.4);
  animation: nms-child-head 8s ease-in-out infinite;
}
.scn-never-mentioned-school .nurse {
  position: absolute; bottom: 10%; right: 20%; width: 50px; height: 90px;
  background: linear-gradient(180deg, #8a9aaa 0%, #5a6a7a 100%);
  border-radius: 30% 30% 10% 10% / 40% 40% 10% 10%;
  transform: scaleX(0.8);
  animation: nms-nurse 16s ease-in-out infinite;
}
.scn-never-mentioned-school .nurse-arm {
  position: absolute; bottom: 35%; right: 12%; width: 8px; height: 40px;
  background: linear-gradient(180deg, #8a9aaa, #6a7a8a);
  border-radius: 4px;
  transform: rotate(20deg);
  transform-origin: top center;
  animation: nms-arm 8s ease-in-out infinite alternate;
}
@keyframes nms-wall { 0% { opacity: 0.85; } 50% { opacity: 1; } 100% { opacity: 0.9; } }
@keyframes nms-glass { 0% { opacity: 0.3; } 100% { opacity: 0.6; } }
@keyframes nms-child-body { 0%,100% { transform: rotate(-5deg) translateY(0) scaleY(1); } 50% { transform: rotate(-3deg) translateY(-2px) scaleY(1.02); } }
@keyframes nms-child-head { 0%,100% { transform: rotate(0) translateY(0); } 50% { transform: rotate(3deg) translateY(-1px); } }
@keyframes nms-nurse { 0%,100% { transform: scaleX(0.8) translateY(0); } 50% { transform: scaleX(0.8) translateY(-3px); } }
@keyframes nms-arm { 0% { transform: rotate(20deg) scaleY(1); } 100% { transform: rotate(25deg) scaleY(0.95); } }

.scn-heart-aching {
  background: 
    linear-gradient(180deg, #0a0f1a 0%, #141a28 50%, #1a2430 100%),
    radial-gradient(ellipse at 30% 70%, #1a2a3a 0%, transparent 80%);
}
.scn-heart-aching .bg-wall {
  position: absolute; inset: 0;
  background: linear-gradient(135deg, #0a0f1a, #121a24);
}
.scn-heart-aching .light-source {
  position: absolute; top: 20%; left: 20%; width: 20px; height: 30px;
  background: radial-gradient(circle, #c0a060 0%, #806040 60%, transparent 100%);
  border-radius: 50% 50% 20% 20%;
  box-shadow: 0 0 40px 15px rgba(192,160,96,0.3);
  animation: ha-light 4s ease-in-out infinite alternate;
}
.scn-heart-aching .shadow-figure {
  position: absolute; bottom: 10%; left: 30%; width: 80px; height: 120px;
  background: linear-gradient(180deg, #0a0a14 0%, #1a1a2a 100%);
  border-radius: 30% 30% 10% 10% / 50% 50% 20% 20%;
  transform: scaleX(0.6);
  filter: blur(2px);
  animation: ha-shadow 12s ease-in-out infinite;
}
.scn-heart-aching .child-torso {
  position: absolute; bottom: 15%; left: 35%; width: 40px; height: 50px;
  background: linear-gradient(180deg, #3a3a4a 0%, #1a1a2a 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  transform: rotate(5deg);
  animation: ha-torso 6s ease-in-out infinite;
}
.scn-heart-aching .child-head {
  position: absolute; bottom: 48%; left: 34%; width: 30px; height: 32px;
  background: radial-gradient(circle at 40% 30%, #5a5a6a 0%, #2a2a3a 60%, #1a1a2a 100%);
  border-radius: 50%;
  box-shadow: 0 2px 6px rgba(0,0,0,0.5);
  transform: rotate(-3deg);
  animation: ha-head 8s ease-in-out infinite;
}
.scn-heart-aching .child-arms {
  position: absolute; bottom: 25%; left: 32%; width: 12px; height: 30px;
  background: linear-gradient(180deg, #3a3a4a, #1a1a2a);
  border-radius: 6px;
  transform: rotate(30deg);
  transform-origin: top center;
  animation: ha-arms 5s ease-in-out infinite;
}
.scn-heart-aching .tear-drop {
  position: absolute; bottom: 45%; left: 46%; width: 4px; height: 6px;
  background: radial-gradient(circle, #80a0b0 0%, transparent 100%);
  border-radius: 50%;
  filter: blur(1px);
  animation: ha-tear 2s ease-in-out infinite;
}
@keyframes ha-light { 0% { opacity: 0.6; transform: scale(1); box-shadow: 0 0 30px 12px rgba(192,160,96,0.2); } 50% { opacity: 0.9; transform: scale(1.05); box-shadow: 0 0 50px 20px rgba(192,160,96,0.4); } 100% { opacity: 0.7; transform: scale(0.95); box-shadow: 0 0 35px 14px rgba(192,160,96,0.25); } }
@keyframes ha-shadow { 0%,100% { transform: scaleX(0.6) translateY(0); } 50% { transform: scaleX(0.62) translateY(-2px); } }
@keyframes ha-torso { 0%,100% { transform: rotate(5deg) translateY(0); } 50% { transform: rotate(4deg) translateY(-1px); } }
@keyframes ha-head { 0%,100% { transform: rotate(-3deg) translateY(0); } 50% { transform: rotate(-5deg) translateY(-2px); } }
@keyframes ha-arms { 0%,100% { transform: rotate(30deg) scaleY(1); } 50% { transform: rotate(35deg) scaleY(1.05); } }
@keyframes ha-tear { 0%,100% { opacity: 0.3; transform: translateY(0); } 50% { opacity: 0.8; transform: translateY(3px); } }

.scn-secret-precocity {
  background: 
    linear-gradient(180deg, #0a0a10 0%, #12141a 50%, #161c24 100%),
    radial-gradient(ellipse at 70% 30%, #1a2a3a 0%, transparent 70%);
}
.scn-secret-precocity .bg-room {
  position: absolute; inset: 0;
  background: linear-gradient(135deg, #0a0a10, #12141a);
}
.scn-secret-precocity .desk-top {
  position: absolute; bottom: 20%; left: 20%; right: 20%; height: 6px;
  background: linear-gradient(180deg, #3a2a1a 0%, #2a1a0a 100%);
  border-radius: 2px;
  box-shadow: 0 2px 6px rgba(0,0,0,0.6);
}
.scn-secret-precocity .desk-leg {
  position: absolute; bottom: 0%; left: 25%; width: 6px; height: 20%;
  background: linear-gradient(180deg, #3a2a1a, #1a100a);
  border-radius: 2px;
}
.scn-secret-precocity .book-spine {
  position: absolute; bottom: 22%; left: 55%; width: 10px; height: 30px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 2px 2px 0 0;
  transform: rotate(-10deg);
  transform-origin: bottom center;
  animation: sp-book 15s ease-in-out infinite;
}
.scn-secret-precocity .lamp-base {
  position: absolute; bottom: 22%; right: 30%; width: 14px; height: 20px;
  background: linear-gradient(180deg, #6a5a4a 0%, #3a2a1a 100%);
  border-radius: 2px;
}
.scn-secret-precocity .lamp-glow {
  position: absolute; bottom: 40%; right: 28%; width: 60px; height: 60px;
  background: radial-gradient(circle, #d0a060 0%, #b08040 30%, #806030 70%, transparent 100%);
  border-radius: 50%;
  filter: blur(8px);
  animation: sp-lamp 4s ease-in-out infinite alternate;
}
.scn-secret-precocity .child-silhouette {
  position: absolute; bottom: 22%; left: 40%; width: 30px; height: 60px;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a14 100%);
  border-radius: 40% 40% 20% 20% / 50% 50% 20% 20%;
  transform: scaleX(0.7);
  animation: sp-child 7s ease-in-out infinite;
}
@keyframes sp-book { 0%,100% { transform: rotate(-10deg); } 50% { transform: rotate(-12deg); } }
@keyframes sp-lamp { 0% { opacity: 0.5; transform: scale(0.95); } 50% { opacity: 0.8; transform: scale(1.05); } 100% { opacity: 0.6; transform: scale(1); } }
@keyframes sp-child { 0%,100% { transform: scaleX(0.7) translateY(0); } 50% { transform: scaleX(0.72) translateY(-2px); } }

.scn-boy-wants {
  background: 
    linear-gradient(180deg, #2a1a10 0%, #3a2515 50%, #4a3020 100%),
    radial-gradient(ellipse at 50% 70%, #6a4030 0%, transparent 80%);
}
.scn-boy-wants .bg-wall {
  position: absolute; inset: 0;
  background: linear-gradient(135deg, #2a1a10, #3a2515);
}
.scn-boy-wants .bedframe {
  position: absolute; bottom: 8%; left: 10%; right: 10%; height: 35%;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 8px;
  box-shadow: inset 0 -4px 10px rgba(0,0,0,0.5);
}
.scn-boy-wants .pillow {
  position: absolute; bottom: 28%; left: 15%; width: 70px; height: 35px;
  background: linear-gradient(180deg, #6a5a4a 0%, #4a3a2a 100%);
  border-radius: 40% 40% 20% 20% / 50% 50% 30% 30%;
  transform: rotate(5deg);
}
.scn-boy-wants .boy-torso {
  position: absolute; bottom: 16%; left: 20%; width: 40px; height: 50px;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 40% 40% 20% 20% / 50% 50% 30% 30%;
  transform: rotate(-3deg);
  animation: bw-torso 9s ease-in-out infinite;
}
.scn-boy-wants .boy-head {
  position: absolute; bottom: 48%; left: 18%; width: 28px; height: 30px;
  background: radial-gradient(circle at 40% 30%, #7a6a5a 0%, #4a3a2a 60%, #2a1a0a 100%);
  border-radius: 50%;
  box-shadow: 0 2px 6px rgba(0,0,0,0.4);
  animation: bw-head 8s ease-in-out infinite;
}
.scn-boy-wants .hand-reaching {
  position: absolute; bottom: 32%; right: 25%; width: 10px; height: 30px;
  background: linear-gradient(180deg, #5a4a3a, #3a2a1a);
  border-radius: 5px;
  transform: rotate(-40deg);
  transform-origin: bottom center;
  animation: bw-hand 6s ease-in-out infinite alternate;
}
.scn-boy-wants .firelight {
  position: absolute; bottom: 0; left: 0; right: 0; height: 40%;
  background: linear-gradient(0deg, rgba(200,120,80,0.15) 0%, transparent 100%);
  animation: bw-fire 5s ease-in-out infinite;
}
@keyframes bw-torso { 0%,100% { transform: rotate(-3deg) translateY(0); } 50% { transform: rotate(-1deg) translateY(-2px); } }
@keyframes bw-head { 0%,100% { transform: rotate(0) translateY(0); } 50% { transform: rotate(4deg) translateY(-1px); } }
@keyframes bw-hand { 0% { transform: rotate(-40deg); } 50% { transform: rotate(-35deg); } 100% { transform: rotate(-42deg); } }
@keyframes bw-fire { 0%,100% { opacity: 0.6; } 50% { opacity: 0.9; } }

.scn-douglas-stands-before-fire {
  background: linear-gradient(180deg, #2a1a0a 0%, #4a2a0a 40%, #6a3a12 100%), radial-gradient(ellipse at 50% 30%, #8a4a20 0%, transparent 70%);
}
.scn-douglas-stands-before-fire .wall {
  position:absolute; inset:0 0 30% 0;
  background: linear-gradient(180deg, #3a2a1a 0%, #2a1a0a 100%);
  animation: dsf-wall 20s ease-in-out infinite alternate;
}
.scn-douglas-stands-before-fire .floor {
  position:absolute; bottom:0; left:0; right:0; height:30%;
  background: linear-gradient(0deg, #1a0c00 0%, #2a1800 100%);
  box-shadow: inset 0 10px 20px rgba(0,0,0,.6);
}
.scn-douglas-stands-before-fire .fireplace {
  position:absolute; bottom:35%; left:50%; width:200px; height:150px; transform:translateX(-50%);
  background: linear-gradient(180deg, #2a1c0a 0%, #1a0e02 100%);
  border-radius: 12px 12px 6px 6px;
  box-shadow: inset 0 -10px 20px rgba(0,0,0,.5), 0 4px 8px rgba(0,0,0,.4);
}
.scn-douglas-stands-before-fire .fire-glow {
  position:absolute; bottom:35%; left:50%; width:160px; height:110px; transform:translateX(-50%);
  background: radial-gradient(circle at 50% 60%, #d06020 0%, #a04010 40%, transparent 70%);
  animation: dsf-glow 3s ease-in-out infinite alternate;
}
.scn-douglas-stands-before-fire .log {
  position:absolute; bottom:38%; left:50%; width:80px; height:30px; transform:translateX(-50%);
  background: linear-gradient(180deg, #3a1a00 0%, #1a0a00 100%);
  border-radius: 50% / 60% 60% 40% 40%;
}
.scn-douglas-stands-before-fire .flame {
  position:absolute;
  width:20px; height:50px;
  bottom:38%; left:50%;
  background: radial-gradient(circle at 50% 100%, #ff8040 0%, #d06020 50%, transparent 100%);
  border-radius: 50% 50% 30% 30% / 80% 80% 20% 20%;
  filter: blur(3px);
}
.scn-douglas-stands-before-fire .flame-1 { margin-left:-15px; animation: dsf-flame1 .8s ease-in-out infinite; }
.scn-douglas-stands-before-fire .flame-2 { margin-left:5px; animation: dsf-flame2 .6s ease-in-out infinite reverse; }
.scn-douglas-stands-before-fire .figure {
  position:absolute; bottom:30%; left:50%; width:50px; height:120px; transform:translateX(-50%);
  background: linear-gradient(180deg, #1a0e02 0%, #0a0500 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%;
  box-shadow: 2px 0 8px rgba(0,0,0,.5);
  animation: dsf-figure 6s ease-in-out infinite alternate;
}
.scn-douglas-stands-before-fire .hand {
  position:absolute; bottom:40%; left:52%; width:8px; height:20px;
  background: #1a0e02;
  border-radius: 30% 30% 50% 50%;
  transform-origin: top center;
  animation: dsf-hand 4s ease-in-out infinite;
}
@keyframes dsf-wall { 0% { opacity:.9 } 50% { opacity:1 } 100% { opacity:.85 } }
@keyframes dsf-glow { 0% { opacity:.7; transform:translateX(-50%) scale(1); } 50% { opacity:1; transform:translateX(-50%) scale(1.05); } 100% { opacity:.8; transform:translateX(-50%) scale(1); } }
@keyframes dsf-flame1 { 0% { transform: translateY(0) rotate(-2deg) scaleY(1); } 50% { transform: translateY(-4px) rotate(2deg) scaleY(1.2); } 100% { transform: translateY(-2px) rotate(-1deg) scaleY(1); } }
@keyframes dsf-flame2 { 0% { transform: translateY(0) rotate(3deg) scaleY(1); } 50% { transform: translateY(-3px) rotate(-1deg) scaleY(1.15); } 100% { transform: translateY(-1px) rotate(2deg) scaleY(1); } }
@keyframes dsf-figure { 0% { transform: translateX(-50%) rotate(0deg); } 50% { transform: translateX(-50%) rotate(2deg); } 100% { transform: translateX(-50%) rotate(-2deg); } }
@keyframes dsf-hand { 0% { transform: rotate(0deg); } 50% { transform: rotate(10deg); } 100% { transform: rotate(-5deg); } }

.scn-sheer-terror-question {
  background: linear-gradient(135deg, #2a1a0a 0%, #3a2210 50%, #1f1206 100%), radial-gradient(circle at 30% 40%, #d06020 0%, transparent 60%);
}
.scn-sheer-terror-question .dark-room {
  position:absolute; inset:0;
  background: linear-gradient(180deg, #0d0802 0%, #1a0e02 100%);
  opacity:.6;
}
.scn-sheer-terror-question .firelight {
  position:absolute; bottom:20%; left:10%; width:70%; height:70%;
  background: radial-gradient(ellipse at 30% 40%, #e07020 0%, #b04810 30%, transparent 70%);
  animation: stq-fire 4s ease-in-out infinite alternate;
}
.scn-sheer-terror-question .profile-head {
  position:absolute; bottom:35%; right:30%; width:40px; height:50px;
  background: linear-gradient(135deg, #1a0e02 0%, #2a1a0a 100%);
  border-radius: 50% 30% 30% 50% / 50% 40% 40% 50%;
  box-shadow: inset -4px 0 8px rgba(0,0,0,.5);
  animation: stq-head 6s ease-in-out infinite;
}
.scn-sheer-terror-question .hand-over-eye {
  position:absolute; bottom:38%; right:28%; width:10px; height:22px;
  background: #1a0e02;
  border-radius: 30% 30% 50% 50%;
  transform: rotate(25deg);
  transform-origin: bottom right;
  animation: stq-hand 4s ease-in-out infinite alternate;
}
.scn-sheer-terror-question .shadow-cheek {
  position:absolute; bottom:35%; right:26%; width:18px; height:18px;
  background: radial-gradient(circle at 60% 50%, #0d0600 0%, transparent 100%);
  filter: blur(4px);
  animation: stq-shadow 3s ease-in-out infinite alternate;
}
.scn-sheer-terror-question .fire-fleck {
  position:absolute; bottom:50%; left:20%; width:4px; height:4px;
  background: #ff8040;
  border-radius: 50%;
  box-shadow: 0 0 6px 2px rgba(255,128,64,.8);
  animation: stq-fleck 2s ease-in-out infinite;
}
.scn-sheer-terror-question .background-chair {
  position:absolute; bottom:20%; left:10%; width:60px; height:80px;
  background: linear-gradient(135deg, #2a1c0a 0%, #1a0e02 100%);
  border-radius: 10% 10% 20% 20%;
  opacity:.4;
}
@keyframes stq-fire { 0% { opacity:.5; transform:scale(.95); } 50% { opacity:.8; transform:scale(1.1); } 100% { opacity:.6; transform:scale(1); } }
@keyframes stq-head { 0% { transform: rotate(-2deg) translateX(0); } 50% { transform: rotate(3deg) translateX(2px); } 100% { transform: rotate(-1deg) translateX(-1px); } }
@keyframes stq-hand { 0% { transform: rotate(20deg) translateY(0); } 50% { transform: rotate(30deg) translateY(-1px); } 100% { transform: rotate(25deg) translateY(1px); } }
@keyframes stq-shadow { 0% { opacity:.4; } 50% { opacity:.8; } 100% { opacity:.3; } }
@keyframes stq-fleck { 0% { transform: translate(0,0) scale(1); opacity:.5; } 50% { transform: translate(5px,-5px) scale(1.5); opacity:1; } 100% { transform: translate(10px,-10px) scale(2); opacity:0; } }

.scn-general-uncanny-ugliness {
  background: linear-gradient(180deg, #2a1800 0%, #3a2208 40%, #1f1000 100%), radial-gradient(circle at 60% 50%, #8a4010 0%, transparent 60%);
}
.scn-general-uncanny-ugliness .hearth {
  position:absolute; bottom:0; left:10%; right:10%; height:40%;
  background: linear-gradient(0deg, #0f0700 0%, #2a1a0a 100%);
  border-radius: 30% 30% 0 0 / 20% 20% 0 0;
  box-shadow: inset 0 10px 20px rgba(0,0,0,.7);
}
.scn-general-uncanny-ugliness .log-wood {
  position:absolute; bottom:35%; left:35%; width:100px; height:35px;
  background: linear-gradient(135deg, #4a2a0a 0%, #2a1a0a 100%);
  border-radius: 40% 30% 30% 40% / 50% 50% 50% 50%;
  transform: rotate(-10deg);
  animation: guu-log 8s ease-in-out infinite alternate;
}
.scn-general-uncanny-ugliness .flame-core {
  position:absolute; bottom:38%; left:42%; width:30px; height:60px;
  background: radial-gradient(circle at 50% 100%, #ff8020 0%, #d06010 50%, transparent 100%);
  border-radius: 50% 50% 20% 20% / 80% 80% 10% 10%;
  filter: blur(5px);
  animation: guu-core 1s ease-in-out infinite alternate;
}
.scn-general-uncanny-ugliness .flame-tip {
  position:absolute; bottom:42%; left:44%; width:15px; height:30px;
  background: radial-gradient(circle at 50% 100%, #ffa040 0%, #e07020 60%, transparent 100%);
  border-radius: 50% 50% 20% 20% / 90% 90% 10% 10%;
  filter: blur(3px);
  animation: guu-tip .7s ease-in-out infinite alternate-reverse;
}
.scn-general-uncanny-ugliness .man-figure {
  position:absolute; bottom:30%; right:20%; width:45px; height:110px;
  background: linear-gradient(180deg, #1a0e02 0%, #0a0500 100%);
  border-radius: 30% 40% 40% 30% / 50% 50% 40% 40%;
  transform-origin: bottom center;
  animation: guu-man 10s ease-in-out infinite alternate;
}
.scn-general-uncanny-ugliness .kicking-leg {
  position:absolute; bottom:20%; right:25%; width:12px; height:40px;
  background: #1a0e02;
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  transform-origin: top center;
  animation: guu-kick 4s ease-in-out infinite;
}
.scn-general-uncanny-ugliness .spark {
  position:absolute;
  width:4px; height:4px;
  background: #ffa040;
  border-radius: 50%;
  filter: blur(1px);
}
.scn-general-uncanny-ugliness .spark-1 { bottom:40%; left:30%; animation: guu-spark1 2s linear infinite; }
.scn-general-uncanny-ugliness .spark-2 { bottom:45%; left:50%; animation: guu-spark2 3s linear infinite reverse; }
@keyframes guu-log { 0% { transform: rotate(-12deg) translateX(0); } 50% { transform: rotate(-8deg) translateX(3px); } 100% { transform: rotate(-10deg) translateX(-2px); } }
@keyframes guu-core { 0% { transform: scaleY(1) rotate(-2deg); } 50% { transform: scaleY(1.2) rotate(0deg); } 100% { transform: scaleY(.95) rotate(3deg); } }
@keyframes guu-tip { 0% { transform: translateY(0) scaleY(1); } 50% { transform: translateY(-5px) scaleY(1.3); } 100% { transform: translateY(-2px) scaleY(.9); } }
@keyframes guu-man { 0% { transform: rotate(0deg) translateY(0); } 50% { transform: rotate(3deg) translateY(-2px); } 100% { transform: rotate(-2deg) translateY(0); } }
@keyframes guu-kick { 0% { transform: rotate(20deg); } 25% { transform: rotate(40deg); } 50% { transform: rotate(10deg); } 75% { transform: rotate(30deg); } 100% { transform: rotate(15deg); } }
@keyframes guu-spark1 { 0% { transform: translate(0,0) scale(1); opacity:1; } 100% { transform: translate(20px,-30px) scale(0); opacity:0; } }
@keyframes guu-spark2 { 0% { transform: translate(0,0) scale(0); opacity:0; } 50% { transform: translate(-10px,20px) scale(1.5); opacity:1; } 100% { transform: translate(-20px,40px) scale(0); opacity:0; } }

.scn-story-is-written-locked {
  background: linear-gradient(180deg, #1a1006 0%, #2a1a08 40%, #0f0802 100%), radial-gradient(ellipse at 40% 60%, #6a3010 0%, transparent 70%);
}
.scn-story-is-written-locked .desk-top {
  position:absolute; bottom:20%; left:10%; right:10%; height:40%;
  background: linear-gradient(180deg, #3a2210 0%, #2a1608 100%);
  border-radius: 4px;
  box-shadow: inset 0 -4px 10px rgba(0,0,0,.5);
  transform: perspective(500px) rotateX(5deg);
}
.scn-story-is-written-locked .drawer-front {
  position:absolute; bottom:25%; left:35%; width:120px; height:80px;
  background: linear-gradient(135deg, #2a1a0a 0%, #1a0e02 100%);
  border: 2px solid #1f1000;
  border-radius: 2px;
  box-shadow: inset 0 4px 6px rgba(0,0,0,.4);
}
.scn-story-is-written-locked .keyhole {
  position:absolute; bottom:35%; left:44%; width:12px; height:14px;
  background: radial-gradient(circle at 50% 50%, #0f0700 0%, #1f1000 100%);
  border-radius: 50% 50% 30% 30%;
  box-shadow: inset 0 2px 4px rgba(0,0,0,.6);
}
.scn-story-is-written-locked .keyhole-glow {
  position:absolute; bottom:34%; left:43%; width:16px; height:18px;
  background: radial-gradient(circle at 50% 50%, #ff8020 0%, transparent 70%);
  animation: swl-glow 4s ease-in-out infinite alternate;
}
.scn-story-is-written-locked .envelope {
  position:absolute; bottom:40%; left:50%; width:60px; height:40px;
  transform:translateX(-50%) rotate(-5deg);
  background: linear-gradient(135deg, #4a2a0a 0%, #3a1a08 100%);
  border-radius: 2px;
  box-shadow: 0 2px 6px rgba(0,0,0,.5);
  animation: swl-envelope 12s ease-in-out infinite alternate;
}
.scn-story-is-written-locked .shadow-hand {
  position:absolute; bottom:30%; right:25%; width:20px; height:40px;
  background: linear-gradient(135deg, #1a0e02 0%, #0a0500 100%);
  border-radius: 40% 40% 50% 50%;
  transform: rotate(15deg);
  transform-origin: top center;
  animation: swl-hand 5s ease-in-out infinite;
}
.scn-story-is-written-locked .lamp-light {
  position:absolute; bottom:50%; left:15%; width:80px; height:120px;
  background: radial-gradient(circle at 50% 100%, #d07020 0%, #a05010 40%, transparent 70%);
  animation: swl-lamp 8s ease-in-out infinite alternate;
}
.scn-story-is-written-locked .wall-panel {
  position:absolute; top:0; left:0; right:0; height:60%;
  background: linear-gradient(180deg, #1a0e02 0%, #2a1a08 100%);
  box-shadow: inset 0 0 30px rgba(0,0,0,.4);
}
@keyframes swl-glow { 0% { opacity:.3; transform:scale(1); } 50% { opacity:.8; transform:scale(1.5); } 100% { opacity:.4; transform:scale(1.1); } }
@keyframes swl-envelope { 0% { transform:translateX(-50%) rotate(-7deg); } 50% { transform:translateX(-50%) rotate(-3deg) translateY(-2px); } 100% { transform:translateX(-50%) rotate(-6deg); } }
@keyframes swl-hand { 0% { transform: rotate(10deg) translateX(0); } 50% { transform: rotate(20deg) translateX(5px); } 100% { transform: rotate(15deg) translateX(2px); } }
@keyframes swl-lamp { 0% { opacity:.5; transform:scaleY(.95); } 50% { opacity:.8; transform:scaleY(1.05); } 100% { opacity:.6; transform:scaleY(1); } }

.scn-working-for-that { background: linear-gradient(180deg, #2a1e1a 0%, #3a2a1e 40%, #1a1410 100%), radial-gradient(ellipse at 50% 80%, #3a2a1e 0%, transparent 70%); }
.scn-working-for-that .wall   { position:absolute; inset:0 0 30% 0; background: linear-gradient(180deg, #4a3a2a 0%, #2a1e14 100%); animation: wft-wall 15s ease-in-out infinite alternate; }
.scn-working-for-that .floor  { position:absolute; bottom:0; left:0; right:0; height:30%; background: linear-gradient(180deg, #3a2a1a 0%, #1a1008 100%); border-radius:0; }
.scn-working-for-that .lamp   { position:absolute; bottom:35%; left:35%; width:20px; height:30px; background: linear-gradient(180deg, #5a4a3a 0%, #2a1a0e 100%); border-radius:30% 30% 10% 10%; transform:rotate(5deg); animation: wft-lamp 4s ease-in-out infinite; }
.scn-working-for-that .glow   { position:absolute; bottom:38%; left:34%; width:40px; height:40px; background: radial-gradient(circle, #c08040 0%, rgba(192,128,64,0) 70%); border-radius:50%; box-shadow: 0 0 30px 10px #b07030; animation: wft-glow 2s ease-in-out infinite alternate; }
.scn-working-for-that .figure-a { position:absolute; bottom:30%; left:55%; width:24px; height:50px; background: linear-gradient(180deg, #1a1410 0%, #0a0806 100%); border-radius:40% 40% 30% 30% / 60% 60% 40% 40%; transform-origin:bottom center; animation: wft-fig-a 3s ease-in-out infinite; }
.scn-working-for-that .figure-b { position:absolute; bottom:30%; left:30%; width:20px; height:40px; background: linear-gradient(180deg, #2a1e14 0%, #140e08 100%); border-radius:50% 50% 30% 30% / 50% 50% 40% 40%; transform:scaleX(-1); animation: wft-fig-b 5s ease-in-out infinite; }
.scn-working-for-that .shadow  { position:absolute; bottom:0; left:40%; width:60px; height:20px; background: radial-gradient(ellipse at 50% 50%, rgba(0,0,0,0.5) 0%, transparent 70%); border-radius:50%; animation: wft-shadow 6s ease-in-out infinite alternate; }
@keyframes wft-wall { 0% { opacity:0.8 } 50% { opacity:1 } 100% { opacity:0.7 } }
@keyframes wft-lamp { 0%,100% { transform:rotate(5deg) } 50% { transform:rotate(-3deg) scaleY(0.95) } }
@keyframes wft-glow { 0% { opacity:0.6; box-shadow:0 0 20px 5px #b07030 } 50% { opacity:1; box-shadow:0 0 40px 15px #d09040 } 100% { opacity:0.7; box-shadow:0 0 25px 8px #b07030 } }
@keyframes wft-fig-a { 0%,100% { transform:translateX(0) rotate(-1deg) } 25% { transform:translateX(4px) rotate(2deg) } 50% { transform:translateX(0) rotate(0) } 75% { transform:translateX(-3px) rotate(-2deg) } }
@keyframes wft-fig-b { 0%,100% { transform:scaleX(-1) translateY(0) } 50% { transform:scaleX(-1) translateY(-2px) rotate(2deg) } }
@keyframes wft-shadow { 0% { transform:scaleX(1) } 50% { transform:scaleX(1.2) } 100% { transform:scaleX(0.9) } }

.scn-new-field { background: linear-gradient(180deg, #1a1a2e 0%, #2a2a3e 50%, #0e0e1a 100%), radial-gradient(ellipse at 30% 70%, #2a2a3e 0%, transparent 60%); }
.scn-new-field .bg-wall     { position:absolute; inset:0 0 35% 0; background: linear-gradient(180deg, #3a3a4e 0%, #1a1a2a 100%); animation: nwf-wall 20s ease-in-out infinite alternate; }
.scn-new-field .window      { position:absolute; top:15%; right:20%; width:40px; height:50px; background: linear-gradient(180deg, #4a4a6e 0%, #2a2a4e 100%); border-radius:20% 20% 10% 10%; border:3px solid #1a1a2a; animation: nwf-win 8s ease-in-out infinite; }
.scn-new-field .moonlight   { position:absolute; top:15%; right:18%; width:60px; height:70px; background: radial-gradient(ellipse at 50% 50%, rgba(200,200,240,0.15) 0%, transparent 80%); filter:blur(6px); animation: nwf-moon 12s ease-in-out infinite alternate; }
.scn-new-field .bed         { position:absolute; bottom:30%; left:10%; width:60%; height:30px; background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%); border-radius:20% 20% 5% 5%; box-shadow:inset 0 -4px 8px rgba(0,0,0,0.4); }
.scn-new-field .figure      { position:absolute; bottom:35%; left:35%; width:30px; height:40px; background: linear-gradient(180deg, #2a1e14 0%, #0e0804 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin:bottom center; animation: nwf-fig 6s ease-in-out infinite; }
.scn-new-field .blanket     { position:absolute; bottom:30%; left:20%; width:40%; height:12px; background: linear-gradient(180deg, #4a3a2a 0%, #2a1e14 100%); border-radius:50% 50% 10% 10%; filter:blur(2px); animation: nwf-blank 10s ease-in-out infinite alternate; }
.scn-new-field .shadow-slow { position:absolute; bottom:0; left:30%; width:80px; height:30px; background: radial-gradient(ellipse at 50% 50%, rgba(0,0,0,0.3) 0%, transparent 80%); border-radius:50%; animation: nwf-shad 30s ease-in-out infinite alternate; }
@keyframes nwf-wall { 0% { opacity:0.7 } 50% { opacity:0.9 } 100% { opacity:0.6 } }
@keyframes nwf-win { 0%,100% { transform:translateY(0) } 50% { transform:translateY(-3px) scaleY(1.02) } }
@keyframes nwf-moon { 0% { opacity:0.2 } 50% { opacity:0.5 } 100% { opacity:0.1 } }
@keyframes nwf-fig { 0%,100% { transform:translateX(0) rotate(0) } 25% { transform:translateX(3px) rotate(1deg) } 50% { transform:translateX(-2px) rotate(-1deg) } 75% { transform:translateX(1px) rotate(2deg) } }
@keyframes nwf-blank { 0% { transform:scaleY(1) } 50% { transform:scaleY(1.1) } 100% { transform:scaleY(0.95) } }
@keyframes nwf-shad { 0% { transform:scaleX(1) } 50% { transform:scaleX(1.3) } 100% { transform:scaleX(0.8) } }

.scn-let-me-alone { background: linear-gradient(180deg, #2a1e1a 0%, #1a100e 50%, #0e0806 100%), radial-gradient(ellipse at 70% 40%, #3a2a1e 0%, transparent 70%); }
.scn-let-me-alone .wall-dark    { position:absolute; inset:0 0 40% 0; background: linear-gradient(180deg, #3a2a1e 0%, #1a0e0a 100%); animation: lma-wall 18s ease-in-out infinite alternate; }
.scn-let-me-alone .floor-plank  { position:absolute; bottom:0; left:0; right:0; height:40%; background: linear-gradient(180deg, #2a1a10 0%, #100a06 100%); border-radius:0; }
.scn-let-me-alone .child-figure { position:absolute; bottom:35%; left:55%; width:22px; height:44px; background: linear-gradient(180deg, #1a1410 0%, #0a0604 100%); border-radius:45% 45% 35% 35% / 65% 65% 40% 40%; transform-origin:bottom center; animation: lma-child 8s ease-in-out infinite; }
.scn-let-me-alone .raised-hand  { position:absolute; bottom:50%; left:62%; width:8px; height:18px; background: linear-gradient(180deg, #1a1410 0%, #0e0804 100%); border-radius:30% 30% 20% 20%; transform:rotate(20deg); transform-origin:bottom center; animation: lma-hand 4s ease-in-out infinite alternate; }
.scn-let-me-alone .wall-shadow  { position:absolute; top:10%; right:0; width:40%; height:60%; background: linear-gradient(90deg, transparent 0%, rgba(0,0,0,0.3) 100%); animation: lma-shad 12s ease-in-out infinite alternate; }
.scn-let-me-alone .lamp-faint   { position:absolute; bottom:35%; left:30%; width:16px; height:24px; background: linear-gradient(180deg, #5a4a3a 0%, #2a1e0e 100%); border-radius:20% 20% 10% 10%; box-shadow: 0 0 12px 3px #6a4a2a; animation: lma-lamp 6s ease-in-out infinite; }
@keyframes lma-wall { 0% { opacity:0.8 } 50% { opacity:0.95 } 100% { opacity:0.7 } }
@keyframes lma-child { 0%,100% { transform:translateX(0) rotate(0) } 25% { transform:translateX(-5px) rotate(-2deg) } 50% { transform:translateX(2px) rotate(1deg) } 75% { transform:translateX(-3px) rotate(0) } }
@keyframes lma-hand { 0% { transform:rotate(15deg) } 50% { transform:rotate(25deg) } 100% { transform:rotate(10deg) } }
@keyframes lma-shad { 0% { opacity:0.3 } 50% { opacity:0.6 } 100% { opacity:0.2 } }
@keyframes lma-lamp { 0%,100% { opacity:0.6 } 50% { opacity:0.9 } }

.scn-finish-it { background: linear-gradient(180deg, #1a1814 0%, #2a221c 30%, #14100c 100%), radial-gradient(ellipse at 50% 60%, #3a2a1e 0%, transparent 80%); }
.scn-finish-it .room-bg     { position:absolute; inset:0 0 25% 0; background: linear-gradient(180deg, #3a2e24 0%, #1a140e 100%); animation: fni-room 16s ease-in-out infinite alternate; }
.scn-finish-it .table       { position:absolute; bottom:25%; left:30%; width:40%; height:12px; background: linear-gradient(180deg, #4a3a2a 0%, #2a1e14 100%); border-radius:10px; box-shadow: inset 0 -3px 6px rgba(0,0,0,0.5); animation: fni-table 10s ease-in-out infinite alternate; }
.scn-finish-it .candle      { position:absolute; bottom:35%; left:48%; width:8px; height:16px; background: linear-gradient(180deg, #7a6a4a 0%, #3a2a1a 100%); border-radius:10% 10% 20% 20%; animation: fni-candle 7s ease-in-out infinite; }
.scn-finish-it .flame-glow  { position:absolute; bottom:40%; left:47.5%; width:20px; height:20px; background: radial-gradient(circle, #d0a060 0%, rgba(208,160,96,0) 80%); border-radius:50%; box-shadow: 0 0 25px 8px #b08040; animation: fni-flame 1.5s ease-in-out infinite alternate; }
.scn-finish-it .figure-left { position:absolute; bottom:25%; left:25%; width:24px; height:48px; background: linear-gradient(180deg, #1a1410 0%, #0a0806 100%); border-radius:40% 40% 30% 30% / 60% 60% 40% 40%; transform-origin:bottom center; animation: fni-fig-l 4s ease-in-out infinite; }
.scn-finish-it .figure-right{ position:absolute; bottom:25%; right:25%; width:24px; height:48px; background: linear-gradient(180deg, #1a1410 0%, #0a0806 100%); border-radius:40% 40% 30% 30% / 60% 60% 40% 40%; transform:scaleX(-1); animation: fni-fig-r 5s ease-in-out infinite; }
.scn-finish-it .edges       { position:absolute; inset:0; background: radial-gradient(ellipse at 50% 50%, transparent 60%, rgba(0,0,0,0.4) 100%); pointer-events:none; animation: fni-edge 12s ease-in-out infinite alternate; }
@keyframes fni-room { 0% { opacity:0.7 } 50% { opacity:0.9 } 100% { opacity:0.6 } }
@keyframes fni-table { 0% { transform:scaleX(1) } 50% { transform:scaleX(1.02) } 100% { transform:scaleX(0.98) } }
@keyframes fni-candle { 0%,100% { transform:translateY(0) } 50% { transform:translateY(-2px) scaleX(0.95) } }
@keyframes fni-flame { 0% { opacity:0.7; transform:scale(0.9) } 50% { opacity:1; transform:scale(1.1) } 100% { opacity:0.8; transform:scale(0.95) } }
@keyframes fni-fig-l { 0%,100% { transform:translateX(0) rotate(-1deg) } 25% { transform:translateX(6px) rotate(2deg) } 50% { transform:translateX(-4px) rotate(-1deg) } 75% { transform:translateX(2px) rotate(1deg) } }
@keyframes fni-fig-r { 0%,100% { transform:scaleX(-1) translateX(0) } 25% { transform:scaleX(-1) translateX(-5px) rotate(-2deg) } 50% { transform:scaleX(-1) translateX(3px) rotate(1deg) } 75% { transform:scaleX(-1) translateX(-1px) rotate(0) } }
@keyframes fni-edge { 0% { opacity:0.5 } 50% { opacity:0.8 } 100% { opacity:0.4 } }

/* disgrace-of-miles */
.scn-disgrace-of-miles {
  background: linear-gradient(180deg, #2a1a0e 0%, #1f1208 50%, #140a04 100%), radial-gradient(ellipse at 30% 60%, #c06e2e20 0%, transparent 70%);
}
.scn-disgrace-of-miles .wall  { position:absolute; inset:0 0 15% 0; background: linear-gradient(180deg, #3a281c 0%, #24150a 100%); }
.scn-disgrace-of-miles .table { position:absolute; bottom:12%; left:20%; right:20%; height:6%; background: linear-gradient(180deg, #5a3f2a 0%, #3a2618 100%); border-radius:4px; box-shadow:0 4px 12px #00000055; }
.scn-disgrace-of-miles .letter{ position:absolute; bottom:18%; left:42%; width:16%; height:4%; background:#f5e8d0; border-radius:2px; transform:rotate(2deg); box-shadow:0 2px 6px #00000033; animation:dm-letter 5s ease-in-out infinite; }
.scn-disgrace-of-miles .hand  { position:absolute; bottom:17%; left:38%; width:14%; height:12%; background:radial-gradient(ellipse 50% 40% at 50% 40%, #7a5a3a 0%, #3a2210 100%); border-radius:60% 50% 40% 30% / 70% 60% 50% 40%; transform-origin:50% 80%; animation:dm-hand 4s ease-in-out infinite; }
.scn-disgrace-of-miles .candle{ position:absolute; bottom:22%; left:20%; width:3%; height:14%; background:linear-gradient(180deg, #f0e0c0 0%, #c08a50 40%, #6a3a1a 100%); border-radius:30% 30% 10% 10%; transform-origin:bottom center; animation:dm-candle 2s ease-in-out infinite; }
.scn-disgrace-of-miles .glow  { position:absolute; left:18%; bottom:30%; width:12%; padding-bottom:12%; border-radius:50%; background:radial-gradient(circle, #ffd08060 0%, #ffa03030 40%, transparent 70%); filter:blur(6px); animation:dm-glow 3s ease-in-out infinite alternate; }
.scn-disgrace-of-miles .shadow{ position:absolute; inset:0; background:linear-gradient(180deg, transparent 20%, #00000080 80%); pointer-events:none; animation:dm-shadow 6s ease-in-out infinite alternate; }

@keyframes dm-letter { 0%{ transform:rotate(2deg) } 50%{ transform:rotate(4deg) translateY(1px) } 100%{ transform:rotate(2deg) } }
@keyframes dm-hand { 0%{ transform:rotate(0deg) } 50%{ transform:rotate(3deg) translateX(2px) } 100%{ transform:rotate(0deg) } }
@keyframes dm-candle { 0%{ transform:scaleY(1) } 30%{ transform:scaleY(1.05) } 60%{ transform:scaleY(0.97) } 100%{ transform:scaleY(1) } }
@keyframes dm-glow { 0%{ opacity:0.6; filter:blur(6px) } 50%{ opacity:1; filter:blur(8px) } 100%{ opacity:0.7; filter:blur(5px) } }
@keyframes dm-shadow { 0%{ opacity:0.8 } 50%{ opacity:1 } 100%{ opacity:0.85 } }

/* is-he-really-bad */
.scn-is-he-really-bad {
  background: linear-gradient(90deg, #1a1c2e 0%, #2a2e4a 50%, #1a1c2e 100%), radial-gradient(ellipse at 40% 60%, #d4a06020 0%, transparent 60%);
}
.scn-is-he-really-bad .bg  { position:absolute; inset:0; background:linear-gradient(180deg, #10121e 0%, #1a1e30 100%); }
.scn-is-he-really-bad .figure-l { position:absolute; left:10%; bottom:15%; width:22%; height:55%; background:radial-gradient(ellipse 50% 60% at 50% 40%, #2a2e4a 0%, #0e1020 100%); border-radius:40% 50% 30% 35% / 60% 55% 50% 45%; transform-origin:bottom center; animation:irb-fig-l 8s ease-in-out infinite; }
.scn-is-he-really-bad .figure-r { position:absolute; right:15%; bottom:18%; width:18%; height:45%; background:radial-gradient(ellipse 50% 50% at 50% 35%, #35384a 0%, #12142a 100%); border-radius:45% 40% 35% 40% / 55% 50% 45% 50%; transform-origin:bottom center; animation:irb-fig-r 6s ease-in-out infinite; }
.scn-is-he-really-bad .tear { position:absolute; left:22%; bottom:48%; width:2%; height:4%; background:radial-gradient(circle, #ffffffcc 0%, #ffffff00 80%); border-radius:50%; animation:irb-tear 4s ease-in-out infinite; }
.scn-is-he-really-bad .eye-glint { position:absolute; left:18%; bottom:55%; width:3%; padding-bottom:3%; border-radius:50%; background:radial-gradient(circle, #ffffff60 0%, transparent 70%); animation:irb-eye 3s ease-in-out infinite; }
.scn-is-he-really-bad .lamp { position:absolute; left:5%; top:40%; width:10%; padding-bottom:10%; border-radius:50%; background:radial-gradient(circle, #ffd08030 0%, transparent 70%); filter:blur(10px); animation:irb-lamp 5s ease-in-out infinite alternate; }

@keyframes irb-fig-l { 0%{ transform:rotate(0deg) } 50%{ transform:rotate(2deg) translateY(-2px) } 100%{ transform:rotate(0deg) } }
@keyframes irb-fig-r { 0%{ transform:rotate(0deg) } 50%{ transform:rotate(-1deg) translateY(1px) } 100%{ transform:rotate(0deg) } }
@keyframes irb-tear { 0%{ transform:translateY(0); opacity:0 } 20%{ opacity:1 } 80%{ opacity:1 } 100%{ transform:translateY(30px); opacity:0 } }
@keyframes irb-eye { 0%{ opacity:0.3; transform:scale(1) } 30%{ opacity:1; transform:scale(1.2) } 70%{ opacity:0.5; transform:scale(0.8) } 100%{ opacity:0.3; transform:scale(1) } }
@keyframes irb-lamp { 0%{ opacity:0.5; filter:blur(10px) } 50%{ opacity:0.8; filter:blur(14px) } 100%{ opacity:0.6; filter:blur(8px) } }

/* injury-to-others */
.scn-injury-to-others {
  background: linear-gradient(180deg, #2e1a14 0%, #1c0e0a 50%, #0e0604 100%), radial-gradient(ellipse at 50% 30%, #a0461a30 0%, transparent 60%);
}
.scn-injury-to-others .room { position:absolute; inset:0; background:linear-gradient(135deg, #3a221a 0%, #1a0e08 100%); }
.scn-injury-to-others .torso { position:absolute; left:35%; bottom:25%; width:30%; height:45%; background:radial-gradient(ellipse 50% 60% at 50% 50%, #4a2a22 0%, #1a0e0a 100%); border-radius:40% 45% 30% 35% / 60% 55% 50% 45%; transform-origin:bottom center; animation:io-torso 3s ease-in-out infinite; }
.scn-injury-to-others .arm { position:absolute; left:55%; bottom:45%; width:18%; height:8%; background:linear-gradient(180deg, #3a221a 0%, #1a0e0a 100%); border-radius:40% 20% 30% 50% / 60% 40% 50% 40%; transform-origin:0% 50%; animation:io-arm 2s ease-in-out infinite; }
.scn-injury-to-others .hand-clench { position:absolute; left:70%; bottom:44%; width:8%; padding-bottom:8%; border-radius:50%; background:radial-gradient(circle, #4a2a22 0%, #1a0e0a 100%); animation:io-hand 2.5s ease-in-out infinite; }
.scn-injury-to-others .hearth { position:absolute; left:5%; bottom:8%; width:20%; height:15%; background:linear-gradient(180deg, #2a1a10 0%, #1a0e06 100%); border-radius:10% 10% 20% 20%; }
.scn-injury-to-others .flame { position:absolute; left:8%; bottom:22%; width:8%; height:12%; background:linear-gradient(180deg, #ffb06080 0%, #f0802030 100%); border-radius:50% 50% 20% 20%; transform-origin:bottom center; filter:blur(2px); animation:io-flame 1.5s ease-in-out infinite; }
.scn-injury-to-others .spark { position:absolute; left:12%; bottom:32%; width:1.5%; height:1.5%; border-radius:50%; background:#ffd080; box-shadow:0 0 6px #ffd080; animation:io-spark 3s ease-in-out infinite; }

@keyframes io-torso { 0%{ transform:rotate(0deg) translateY(0) } 50%{ transform:rotate(5deg) translateY(-3px) } 100%{ transform:rotate(0deg) translateY(0) } }
@keyframes io-arm { 0%{ transform:rotate(0deg) } 50%{ transform:rotate(-15deg) scaleX(1.1) } 100%{ transform:rotate(0deg) } }
@keyframes io-hand { 0%{ transform:scale(1) } 30%{ transform:scale(0.9) } 70%{ transform:scale(1.05) } 100%{ transform:scale(1) } }
@keyframes io-flame { 0%{ transform:scaleY(1) translateY(0) } 30%{ transform:scaleY(1.3) translateY(-2px) } 70%{ transform:scaleY(0.8) translateY(1px) } 100%{ transform:scaleY(1) translateY(0) } }
@keyframes io-spark { 0%{ opacity:0; transform:translate(0,0) } 20%{ opacity:1; transform:translate(8px,-10px) } 40%{ opacity:0.8; transform:translate(-4px,6px) } 60%{ opacity:0; transform:translate(12px,4px) } 100%{ opacity:0; transform:translate(0,0) } }

/* scarce-ten-years-old */
.scn-scarce-ten-years-old {
  background: linear-gradient(135deg, #3a2818 0%, #2a1a0e 50%, #1a0e06 100%), radial-gradient(ellipse at 40% 30%, #c08a5030 0%, transparent 70%);
}
.scn-scarce-ten-years-old .wall { position:absolute; inset:0 0 20% 0; background:linear-gradient(180deg, #4a3422 0%, #2a1a0e 100%); }
.scn-scarce-ten-years-old .doorway { position:absolute; left:35%; bottom:20%; width:30%; height:60%; background:#1a0e06; border-radius:60% 60% 0 0 / 40% 40% 0 0; box-shadow:inset 0 0 20px #00000066; }
.scn-scarce-ten-years-old .figure-child { position:absolute; left:42%; bottom:22%; width:10%; height:20%; background:radial-gradient(ellipse 50% 40% at 50% 40%, #2a1a10 0%, #0e0604 100%); border-radius:50% 45% 40% 35% / 60% 55% 45% 40%; transform-origin:bottom center; animation:sty-fig 8s ease-in-out infinite; }
.scn-scarce-ten-years-old .light-beam { position:absolute; left:37%; top:0; width:26%; height:100%; background:linear-gradient(135deg, #ffd08010 0%, #ffa03005 50%, transparent 100%); filter:blur(8px); animation:sty-beam 15s ease-in-out infinite; }
.scn-scarce-ten-years-old .floor { position:absolute; bottom:0; left:0; right:0; height:20%; background:linear-gradient(180deg, #3a2818 0%, #1a100a 100%); }
.scn-scarce-ten-years-old .chair { position:absolute; left:25%; bottom:22%; width:15%; height:18%; background:radial-gradient(ellipse 50% 50% at 50% 30%, #3a2818 0%, #1a0e06 100%); border-radius:20% 20% 10% 10%; animation:sty-chair 12s ease-in-out infinite; }
.scn-scarce-ten-years-old .pillar { position:absolute; left:10%; bottom:20%; width:6%; height:60%; background:linear-gradient(180deg, #4a3428 0%, #2a1a10 100%); border-radius:5%; }

@keyframes sty-fig { 0%{ transform:translateX(0) rotate(0deg) scale(1) } 25%{ transform:translateX(5px) rotate(2deg) scale(1.01) } 50%{ transform:translateX(-3px) rotate(-1deg) scale(0.98) } 75%{ transform:translateX(2px) rotate(1deg) scale(1) } 100%{ transform:translateX(0) rotate(0deg) scale(1) } }
@keyframes sty-beam { 0%{ opacity:0.3; transform:rotate(-2deg) } 50%{ opacity:0.8; transform:rotate(1deg) } 100%{ opacity:0.4; transform:rotate(-2deg) } }
@keyframes sty-chair { 0%{ transform:scale(1) translateY(0) } 50%{ transform:scale(0.97) translateY(1px) } 100%{ transform:scale(1) translateY(0) } }

/* nighttime-reading-amelia */
.scn-nighttime-reading-amelia {
  background:
    linear-gradient(0deg, #1f1a14 0%, #2a2219 40%, #3a2e20 70%, #0f0c08 100%),
    radial-gradient(ellipse at 40% 60%, #4a3820 0%, transparent 60%);
}
.scn-nighttime-reading-amelia .room-bg {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, #1c1610 0%, #2c2318 60%, #3a2c1c 100%);
  opacity: 0.85;
  animation: ntr-breath 15s ease-in-out infinite alternate;
}
.scn-nighttime-reading-amelia .wall {
  position: absolute; bottom: 0; left: 0; right: 0; height: 65%;
  background: linear-gradient(180deg, #3a2e22 0%, #2a1e12 100%);
  border-radius: 30% 70% 0 0 / 40% 60% 0 0;
  box-shadow: inset 0 -12px 20px rgba(0,0,0,0.5);
  animation: ntr-wall 20s ease-in-out infinite alternate;
}
.scn-nighttime-reading-amelia .window {
  position: absolute; top: 18%; left: 28%; width: 30%; height: 38%;
  background: linear-gradient(180deg, #1a2530 0%, #0d141a 100%);
  border: 4px solid #2a1e14;
  border-radius: 2% 2% 4% 4%;
  box-shadow: inset 0 0 30px rgba(0,0,0,0.8);
  animation: ntr-window 12s ease-in-out infinite alternate;
}
.scn-nighttime-reading-amelia .curtain {
  position: absolute; top: 15%; left: 24%; width: 38%; height: 44%;
  background: linear-gradient(135deg, #f0ebe0 0%, #d6cfc0 50%, #b8b0a0 100%);
  opacity: 0.5;
  border-radius: 20% 40% 10% 30% / 50% 30% 60% 20%;
  filter: blur(2px);
  animation: ntr-curtain 18s ease-in-out infinite alternate;
}
.scn-nighttime-reading-amelia .figure {
  position: absolute; bottom: 20%; left: 48%; width: 12%; height: 30%;
  background: linear-gradient(180deg, #1e1810 0%, #0f0a06 100%);
  border-radius: 40% 40% 50% 50% / 50% 50% 40% 40%;
  transform: rotate(-3deg);
  animation: ntr-figure 8s ease-in-out infinite alternate;
}
.scn-nighttime-reading-amelia .book {
  position: absolute; bottom: 22%; left: 44%; width: 16%; height: 10%;
  background: linear-gradient(135deg, #7a5a3a 0%, #4a3020 100%);
  border-radius: 4%;
  box-shadow: 0 4px 12px rgba(0,0,0,0.6);
  transform: rotate(10deg);
  animation: ntr-book 10s ease-in-out infinite alternate;
}
.scn-nighttime-reading-amelia .candle {
  position: absolute; bottom: 30%; left: 38%; width: 2%; height: 12%;
  background: linear-gradient(180deg, #e8c870 0%, #c09840 60%, #6a4a20 100%);
  border-radius: 20% 20% 10% 10%;
  box-shadow: 0 0 20px #f0c870;
  animation: ntr-candle 3s ease-in-out infinite alternate;
}
.scn-nighttime-reading-amelia .glow {
  position: absolute; bottom: 28%; left: 36%; width: 20%; height: 30%;
  background: radial-gradient(ellipse, #f0d080 0%, transparent 70%);
  opacity: 0.7;
  animation: ntr-glow 4s ease-in-out infinite alternate;
}
@keyframes ntr-breath { 0% { opacity: 0.8 } 50% { opacity: 0.95 } 100% { opacity: 0.85 } }
@keyframes ntr-wall { 0% { transform: translateY(0) } 50% { transform: translateY(-2px) } 100% { transform: translateY(0) } }
@keyframes ntr-window { 0% { background-position: 0% 0%; } 50% { background-position: 10% 20%; } 100% { background-position: 0% 0%; } }
@keyframes ntr-curtain { 0% { transform: scaleX(1) translateX(0) } 50% { transform: scaleX(1.05) translateX(-5px) } 100% { transform: scaleX(0.95) translateX(3px) } }
@keyframes ntr-figure { 0% { transform: rotate(-3deg) translateY(0) } 50% { transform: rotate(2deg) translateY(-2px) } 100% { transform: rotate(-3deg) translateY(0) } }
@keyframes ntr-book { 0% { transform: rotate(10deg) } 50% { transform: rotate(8deg) } 100% { transform: rotate(10deg) } }
@keyframes ntr-candle { 0% { opacity: 0.7; box-shadow: 0 0 15px #f0c870; } 50% { opacity: 1; box-shadow: 0 0 30px #ffda90; } 100% { opacity: 0.8; box-shadow: 0 0 20px #e0b860; } }
@keyframes ntr-glow { 0% { opacity: 0.5; transform: scale(1); } 50% { opacity: 0.8; transform: scale(1.1); } 100% { opacity: 0.6; transform: scale(0.95); } }

/* item-fielding-amelia */
.scn-item-fielding-amelia {
  background:
    linear-gradient(180deg, #1f1a14 0%, #2c241a 50%, #1a140e 100%),
    radial-gradient(ellipse at 50% 70%, #3a2a1a 0%, transparent 60%);
}
.scn-item-fielding-amelia .bg {
  position: absolute; inset: 0;
  background: linear-gradient(0deg, #0f0c08 0%, #2a2218 100%);
  animation: itf-bg 20s ease-in-out infinite alternate;
}
.scn-item-fielding-amelia .desk {
  position: absolute; bottom: 8%; left: 10%; right: 10%; height: 30%;
  background: linear-gradient(180deg, #3a2a18 0%, #1e140a 100%);
  border-radius: 4% 4% 0 0;
  box-shadow: 0 -8px 20px rgba(0,0,0,0.6);
  animation: itf-desk 25s ease-in-out infinite alternate;
}
.scn-item-fielding-amelia .book {
  position: absolute; bottom: 30%; left: 30%; width: 40%; height: 25%;
  background: linear-gradient(135deg, #6a4a2a 0%, #4a3020 50%, #2a1a0e 100%);
  border-radius: 2%;
  box-shadow: 0 6px 18px rgba(0,0,0,0.5), inset 0 0 20px rgba(0,0,0,0.3);
  transform: rotate(2deg);
  animation: itf-book 10s ease-in-out infinite alternate;
}
.scn-item-fielding-amelia .hand {
  position: absolute; bottom: 35%; left: 35%; width: 13%; height: 20%;
  background: linear-gradient(180deg, #2a1e14 0%, #140e08 100%);
  border-radius: 20% 30% 40% 40% / 60% 40% 30% 30%;
  transform: rotate(15deg);
  animation: itf-hand 8s ease-in-out infinite alternate;
}
.scn-item-fielding-amelia .candle {
  position: absolute; bottom: 45%; left: 20%; width: 2%; height: 18%;
  background: linear-gradient(180deg, #e8c870 0%, #c09840 50%, #6a4a20 100%);
  border-radius: 20% 20% 10% 10%;
  box-shadow: 0 0 20px #f0c870;
  animation: itf-candle 3s ease-in-out infinite alternate;
}
.scn-item-fielding-amelia .glow {
  position: absolute; bottom: 40%; left: 16%; width: 30%; height: 40%;
  background: radial-gradient(ellipse, #f0d080 0%, transparent 70%);
  opacity: 0.6;
  animation: itf-glow 5s ease-in-out infinite alternate;
}
.scn-item-fielding-amelia .shadow {
  position: absolute; bottom: 5%; left: 0; right: 0; height: 30%;
  background: linear-gradient(0deg, #0a0704 0%, transparent 100%);
  opacity: 0.7;
  animation: itf-shadow 12s ease-in-out infinite alternate;
}
@keyframes itf-bg { 0% { opacity: 0.9 } 50% { opacity: 1 } 100% { opacity: 0.85 } }
@keyframes itf-desk { 0% { transform: translateY(0) } 50% { transform: translateY(-2px) } 100% { transform: translateY(0) } }
@keyframes itf-book { 0% { transform: rotate(2deg) scale(1) } 50% { transform: rotate(0deg) scale(1.02) } 100% { transform: rotate(2deg) scale(1) } }
@keyframes itf-hand { 0% { transform: rotate(15deg) translateX(0) } 50% { transform: rotate(12deg) translateX(3px) } 100% { transform: rotate(15deg) translateX(0) } }
@keyframes itf-candle { 0% { opacity: 0.7; filter: blur(0); } 50% { opacity: 1; filter: blur(1px); } 100% { opacity: 0.8; filter: blur(0); } }
@keyframes itf-glow { 0% { opacity: 0.5; transform: scale(1); } 50% { opacity: 0.8; transform: scale(1.1); } 100% { opacity: 0.6; transform: scale(0.95); } }
@keyframes itf-shadow { 0% { opacity: 0.5 } 50% { opacity: 0.8 } 100% { opacity: 0.6 } }

/* nighttime-listening */
.scn-nighttime-listening {
  background:
    linear-gradient(180deg, #1a1a24 0%, #0f0f1a 40%, #2a2a38 80%, #0a0a12 100%),
    radial-gradient(ellipse at 30% 70%, #2a2a40 0%, transparent 60%);
}
.scn-nighttime-listening .room-bg {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, #0e0e18 0%, #1a1a28 60%, #12121c 100%);
  animation: ntl-room 25s ease-in-out infinite alternate;
}
.scn-nighttime-listening .window {
  position: absolute; top: 12%; left: 10%; width: 50%; height: 45%;
  background: linear-gradient(180deg, #20283a 0%, #101820 100%);
  border: 4px solid #1e1e2a;
  border-radius: 2% 2% 6% 6%;
  box-shadow: inset 0 0 40px rgba(0,0,0,0.9);
  animation: ntl-window 20s ease-in-out infinite alternate;
}
.scn-nighttime-listening .blind {
  position: absolute; top: 10%; left: 12%; width: 46%; height: 50%;
  background: repeating-linear-gradient(0deg, #c8b8a8 0px, #c8b8a8 4px, #e0d0c0 4px, #e0d0c0 8px);
  opacity: 0.35;
  filter: blur(1px);
  transform: translateY(-20%);
  animation: ntl-blind 15s ease-in-out infinite alternate;
}
.scn-nighttime-listening .figure {
  position: absolute; bottom: 18%; left: 55%; width: 10%; height: 35%;
  background: linear-gradient(180deg, #14141e 0%, #0a0a10 100%);
  border-radius: 40% 40% 50% 50% / 50% 50% 40% 40%;
  transform: rotate(5deg);
  animation: ntl-figure 8s ease-in-out infinite alternate;
}
.scn-nighttime-listening .shadow {
  position: absolute; bottom: 0; left: 40%; width: 30%; height: 40%;
  background: linear-gradient(0deg, #0a0a14 0%, transparent 100%);
  animation: ntl-shadow 12s ease-in-out infinite alternate;
}
.scn-nighttime-listening .breeze {
  position: absolute; top: 20%; left: 5%; width: 20%; height: 8%;
  background: linear-gradient(90deg, transparent, rgba(200,200,220,0.1), transparent);
  filter: blur(4px);
  animation: ntl-breeze 6s ease-in-out infinite;
}
@keyframes ntl-room { 0% { opacity: 0.8 } 50% { opacity: 1 } 100% { opacity: 0.9 } }
@keyframes ntl-window { 0% { transform: scaleY(1) } 50% { transform: scaleY(1.02) } 100% { transform: scaleY(0.98) } }
@keyframes ntl-blind { 0% { transform: translateY(-20%) scaleY(1) } 50% { transform: translateY(-10%) scaleY(1.05) } 100% { transform: translateY(-25%) scaleY(0.95) } }
@keyframes ntl-figure { 0% { transform: rotate(5deg) translateX(0) } 50% { transform: rotate(3deg) translateX(2px) } 100% { transform: rotate(5deg) translateX(0) } }
@keyframes ntl-shadow { 0% { opacity: 0.5 } 50% { opacity: 0.8 } 100% { opacity: 0.6 } }
@keyframes ntl-breeze { 0% { transform: translateX(-20px); opacity: 0 } 50% { transform: translateX(60px); opacity: 0.3 } 100% { transform: translateX(140px); opacity: 0 } }

/* staircase-encounter */
.scn-staircase-encounter {
  background:
    linear-gradient(180deg, #0c0a12 0%, #1a1624 30%, #120e18 70%, #080612 100%),
    radial-gradient(ellipse at 70% 50%, #2a2540 0%, transparent 60%);
}
.scn-staircase-encounter .bg-lobby {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, #14101e 0%, #0e0c18 50%, #080610 100%);
  animation: ste-lobby 30s ease-in-out infinite alternate;
}
.scn-staircase-encounter .stair-rail {
  position: absolute; bottom: 0; left: 20%; width: 60%; height: 60%;
  background: repeating-linear-gradient(45deg, transparent 0%, transparent 4%, #1e1c2a 4%, #1e1c2a 6%, transparent 6%, transparent 10%);
  opacity: 0.3;
  animation: ste-rail 20s linear infinite;
}
.scn-staircase-encounter .stair-window {
  position: absolute; top: 5%; left: 35%; width: 30%; height: 45%;
  background: linear-gradient(180deg, #1a2030 0%, #0a1018 100%);
  border: 3px solid #1e1c2a;
  border-radius: 4% 4% 10% 10%;
  box-shadow: inset 0 0 50px rgba(0,0,0,0.8);
  animation: ste-window 15s ease-in-out infinite alternate;
}
.scn-staircase-encounter .candle {
  position: absolute; bottom: 40%; left: 22%; width: 2%; height: 14%;
  background: linear-gradient(180deg, #e8c870 0%, #c09840 50%, #6a4a20 100%);
  border-radius: 20% 20% 10% 10%;
  box-shadow: 0 0 25px #f0c870;
  animation: ste-candle 3s ease-in-out infinite alternate;
}
.scn-staircase-encounter .figure-one {
  position: absolute; bottom: 20%; left: 60%; width: 8%; height: 30%;
  background: linear-gradient(180deg, #14101e 0%, #0a0812 100%);
  border-radius: 40% 40% 50% 50% / 50% 50% 40% 40%;
  transform: rotate(-2deg);
  animation: ste-fig1 12s ease-in-out infinite alternate;
}
.scn-staircase-encounter .figure-two {
  position: absolute; bottom: 25%; left: 70%; width: 7%; height: 28%;
  background: linear-gradient(180deg, #181420 0%, #0c0a16 100%);
  border-radius: 40% 40% 50% 50% / 50% 50% 40% 40%;
  transform: rotate(4deg);
  animation: ste-fig2 14s ease-in-out infinite alternate;
  animation-delay: 2s;
}
.scn-staircase-encounter .figure-three {
  position: absolute; bottom: 18%; left: 50%; width: 9%; height: 32%;
  background: linear-gradient(180deg, #1c1826 0%, #0e0c1a 100%);
  border-radius: 40% 40% 50% 50% / 50% 50% 40% 40%;
  transform: rotate(1deg);
  animation: ste-fig3 16s ease-in-out infinite alternate;
  animation-delay: 4s;
}
.scn-staircase-encounter .glow {
  position: absolute; bottom: 35%; left: 18%; width: 25%; height: 35%;
  background: radial-gradient(ellipse, #f0d080 0%, transparent 70%);
  opacity: 0.5;
  animation: ste-glow 5s ease-in-out infinite alternate;
}
@keyframes ste-lobby { 0% { opacity: 0.8 } 50% { opacity: 1 } 100% { opacity: 0.85 } }
@keyframes ste-rail { 0% { background-position: 0 0 } 100% { background-position: 200% 0 } }
@keyframes ste-window { 0% { transform: scaleY(1); } 50% { transform: scaleY(1.03); } 100% { transform: scaleY(0.97); } }
@keyframes ste-candle { 0% { opacity: 0.6; box-shadow: 0 0 15px #f0c870; } 50% { opacity: 1; box-shadow: 0 0 35px #ffda90; } 100% { opacity: 0.7; box-shadow: 0 0 20px #e0b860; } }
@keyframes ste-fig1 { 0% { transform: rotate(-2deg) translateX(0); } 50% { transform: rotate(1deg) translateX(3px); } 100% { transform: rotate(-2deg) translateX(0); } }
@keyframes ste-fig2 { 0% { transform: rotate(4deg) translateX(0); } 50% { transform: rotate(2deg) translateX(-2px); } 100% { transform: rotate(4deg) translateX(0); } }
@keyframes ste-fig3 { 0% { transform: rotate(1deg) translateX(0); } 50% { transform: rotate(-1deg) translateX(4px); } 100% { transform: rotate(1deg) translateX(0); } }
@keyframes ste-glow { 0% { opacity: 0.4; transform: scale(1); } 50% { opacity: 0.7; transform: scale(1.15); } 100% { opacity: 0.5; transform: scale(0.9); } }

/* Scene: pushing-mrs-grose — tense, dim-interior, figures opposite */
.scn-pushing-mrs-grose {
  background: 
    radial-gradient(ellipse 70% 60% at 40% 50%, rgba(60,40,80,0.5) 0%, transparent 70%),
    linear-gradient(180deg, #1a1a30 0%, #2a1a3e 50%, #0e0a1a 100%);
}
.scn-pushing-mrs-grose .shadow-floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(0deg, #050308 0%, rgba(5,3,8,0) 100%);
}
.scn-pushing-mrs-grose .lamp-glow {
  position: absolute; bottom: 42%; left: 48%; width: 20px; height: 30px;
  background: radial-gradient(circle at 50% 40%, #c89a5a 0%, #a06030 50%, transparent 70%);
  border-radius: 50%;
  box-shadow: 0 0 60px 30px rgba(200,154,90,0.4), 0 0 120px 60px rgba(200,154,90,0.2);
  animation: pMg-lamp 4s ease-in-out infinite alternate;
}
.scn-pushing-mrs-grose .left-figure {
  position: absolute; bottom: 22%; left: 25%; width: 28px; height: 50px;
  background: linear-gradient(180deg, #1a142a 0%, #0d0a1a 100%);
  border-radius: 45% 55% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: pMg-left 5s ease-in-out infinite;
}
.scn-pushing-mrs-grose .right-figure {
  position: absolute; bottom: 22%; right: 25%; width: 26px; height: 48px;
  background: linear-gradient(180deg, #2a2038 0%, #0f0c1c 100%);
  border-radius: 55% 45% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: pMg-right 5s ease-in-out infinite 0.5s;
}
.scn-pushing-mrs-grose .table-between {
  position: absolute; bottom: 24%; left: 38%; right: 38%; height: 12px;
  background: linear-gradient(180deg, #3a2840 0%, #1a1028 100%);
  border-radius: 10% 10% 0 0;
}
.scn-pushing-mrs-grose .flicker-overlay {
  position: absolute; inset: 0;
  background: radial-gradient(ellipse at 48% 50%, rgba(200,154,90,0.08) 0%, transparent 60%);
  animation: pMg-flicker 0.15s linear infinite;
}
.scn-pushing-mrs-grose .corner-wall {
  position: absolute; top: 0; left: 0; right: 0; height: 70%;
  background: linear-gradient(180deg, #2a1a3e 0%, #1a0e2e 100%);
  clip-path: polygon(0 0, 100% 0, 100% 30%, 0 60%);
}
@keyframes pMg-lamp {
  0% { opacity: 0.8; transform: scaleX(1); }
  50% { opacity: 1; transform: scaleX(1.1) scaleY(1.05); }
  100% { opacity: 0.75; transform: scaleX(0.95); }
}
@keyframes pMg-left {
  0%, 100% { transform: translateX(0) rotate(0); }
  25% { transform: translateX(2px) rotate(-2deg); }
  50% { transform: translateX(0) rotate(1deg); }
  75% { transform: translateX(-2px) rotate(-1deg); }
}
@keyframes pMg-right {
  0%, 100% { transform: translateX(0) rotate(1deg); }
  25% { transform: translateX(-2px) rotate(2deg); }
  50% { transform: translateX(0) rotate(-1deg); }
  75% { transform: translateX(2px) rotate(1deg); }
}
@keyframes pMg-flicker {
  0% { opacity: 0.92; }
  50% { opacity: 1; }
  100% { opacity: 0.95; }
}

/* Scene: mrs-grose-answer — dark, dim-interior, dawn light, figures separate */
.scn-mrs-grose-answer {
  background:
    radial-gradient(ellipse 50% 80% at 50% 0%, rgba(120,140,180,0.2) 0%, transparent 60%),
    linear-gradient(180deg, #1e2230 0%, #111825 50%, #080a12 100%);
}
.scn-mrs-grose-answer .dawn-window {
  position: absolute; top: 12%; left: 42%; width: 36px; height: 50px;
  background: radial-gradient(ellipse at 50% 50%, #a8bccd 0%, #6a7a8c 60%, transparent 80%);
  box-shadow: 0 0 40px 20px rgba(168,188,205,0.3);
  animation: mgA-dawn 15s ease-in-out infinite alternate;
}
.scn-mrs-grose-answer .curtain-left {
  position: absolute; top: 10%; left: 38%; width: 14px; height: 54px;
  background: linear-gradient(180deg, #1a1420 0%, #0e0a12 100%);
  border-radius: 0 30% 30% 0;
  animation: mgA-curtain 20s ease-in-out infinite;
}
.scn-mrs-grose-answer .curtain-right {
  position: absolute; top: 10%; right: 38%; width: 14px; height: 54px;
  background: linear-gradient(180deg, #1a1420 0%, #0e0a12 100%);
  border-radius: 30% 0 0 30%;
  animation: mgA-curtain 20s ease-in-out infinite 5s;
}
.scn-mrs-grose-answer .leaving-figure {
  position: absolute; bottom: 28%; left: 28%; width: 22px; height: 46px;
  background: linear-gradient(180deg, #181828 0%, #0a0a14 100%);
  border-radius: 50% 45% 35% 40% / 55% 55% 40% 40%;
  transform-origin: bottom center;
  animation: mgA-leave 12s ease-in-out infinite;
}
.scn-mrs-grose-answer .standing-figure {
  position: absolute; bottom: 28%; right: 30%; width: 24px; height: 50px;
  background: linear-gradient(180deg, #202038 0%, #10101c 100%);
  border-radius: 45% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: mgA-stand 12s ease-in-out infinite 2s;
}
.scn-mrs-grose-answer .floor-shadow {
  position: absolute; bottom: 0; left: 0; right: 0; height: 35%;
  background: linear-gradient(0deg, #04060a 0%, rgba(4,6,10,0) 100%);
}
@keyframes mgA-dawn {
  0% { opacity: 0.5; box-shadow: 0 0 20px 10px rgba(168,188,205,0.2); }
  33% { opacity: 0.7; box-shadow: 0 0 30px 15px rgba(168,188,205,0.4); }
  100% { opacity: 0.9; box-shadow: 0 0 50px 25px rgba(168,188,205,0.5); }
}
@keyframes mgA-curtain {
  0% { transform: translateX(0); }
  20% { transform: translateX(-4px); }
  40% { transform: translateX(2px); }
  60% { transform: translateX(-2px); }
  80% { transform: translateX(3px); }
  100% { transform: translateX(0); }
}
@keyframes mgA-leave {
  0% { transform: translateX(0) rotate(0); }
  30% { transform: translateX(8px) rotate(-3deg); opacity: 1; }
  60% { transform: translateX(18px) rotate(-5deg); opacity: 0.6; }
  100% { transform: translateX(28px) rotate(-7deg); opacity: 0.2; }
}
@keyframes mgA-stand {
  0%, 100% { transform: translateX(0) rotate(0); }
  30% { transform: translateX(-2px) rotate(1deg); }
  60% { transform: translateX(0) rotate(-1deg); }
}

/* Scene: waiting-days — tense, dim-interior, figure by desk, pendulum */
.scn-waiting-days {
  background:
    radial-gradient(ellipse 80% 40% at 50% 70%, rgba(90,60,50,0.3) 0%, transparent 70%),
    linear-gradient(180deg, #1c1828 0%, #28203a 50%, #0e0a18 100%);
}
.scn-waiting-days .rainy-window {
  position: absolute; top: 10%; left: 36%; width: 44px; height: 56px;
  background: linear-gradient(135deg, #2a3440 0%, #4a5c6a 40%, #6a7c8a 60%, #2a3440 100%);
  border-radius: 4% 4% 0 0;
  box-shadow: inset 0 0 20px rgba(0,0,0,0.8);
  animation: wD-rain 10s linear infinite;
}
.scn-waiting-days .sitting-figure {
  position: absolute; bottom: 20%; left: 42%; width: 30px; height: 40px;
  background: linear-gradient(180deg, #1c1c2c 0%, #0e0e1a 100%);
  border-radius: 50% 50% 40% 40% / 55% 55% 45% 45%;
  transform-origin: bottom center;
  animation: wD-sit 6s ease-in-out infinite;
}
.scn-waiting-days .desk {
  position: absolute; bottom: 18%; left: 38%; right: 38%; height: 8px;
  background: linear-gradient(180deg, #2a2030 0%, #141018 100%);
  border-radius: 4px;
}
.scn-waiting-days .candle-glow {
  position: absolute; bottom: 32%; left: 40%; width: 10px; height: 18px;
  background: radial-gradient(ellipse at 50% 40%, #e0b868 0%, #a07030 60%, transparent 80%);
  border-radius: 50%;
  box-shadow: 0 0 40px 20px rgba(224,184,104,0.5), 0 0 80px 40px rgba(224,184,104,0.2);
  animation: wD-candle 3s ease-in-out infinite alternate;
}
.scn-waiting-days .pendulum {
  position: absolute; top: 6%; left: 50%; width: 4px; height: 60px;
  background: linear-gradient(180deg, #5a4a3a 0%, #2a1a0a 100%);
  transform-origin: top center;
  border-radius: 2px;
  animation: wD-pendulum 2s ease-in-out infinite;
}
.scn-waiting-days .shadow-strip {
  position: absolute; bottom: 0; left: 0; right: 0; height: 20%;
  background: linear-gradient(0deg, #060408 0%, transparent 100%);
}
@keyframes wD-rain {
  0% { background-position: 0 0; }
  100% { background-position: -100px 200px; }
}
@keyframes wD-sit {
  0% { transform: translateY(0) rotate(0); }
  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 wD-candle {
  0% { opacity: 0.8; transform: scaleX(1) translateY(0); box-shadow: 0 0 30px 15px rgba(224,184,104,0.4); }
  50% { opacity: 1; transform: scaleX(1.15) scaleY(1.1) translateY(-1px); box-shadow: 0 0 50px 25px rgba(224,184,104,0.6); }
  100% { opacity: 0.85; transform: scaleX(0.95) translateY(0); box-shadow: 0 0 35px 18px rgba(224,184,104,0.5); }
}
@keyframes wD-pendulum {
  0% { transform: rotate(-15deg); }
  25% { transform: rotate(-8deg); }
  50% { transform: rotate(15deg); }
  75% { transform: rotate(8deg); }
  100% { transform: rotate(-15deg); }
}

/* Scene: nighttime-encounter-intro — dark, dim-interior, ghost figure in doorway */
.scn-nighttime-encounter-intro {
  background:
    radial-gradient(ellipse 60% 90% at 50% 100%, rgba(30,20,50,0.6) 0%, transparent 80%),
    linear-gradient(180deg, #0a0812 0%, #1a1228 40%, #120a1e 100%);
}
.scn-nighttime-encounter-intro .door-frame {
  position: absolute; bottom: 10%; left: 40%; width: 40px; height: 80px;
  border: 4px solid #2a1a3a;
  border-radius: 4px 4px 0 0;
  background: transparent;
}
.scn-nighttime-encounter-intro .door-open {
  position: absolute; bottom: 10%; left: 40%; width: 40px; height: 80px;
  background: linear-gradient(180deg, #0e0a1c 0%, #06040e 100%);
  transform-origin: left center;
  animation: nEi-door 8s ease-in-out infinite;
}
.scn-nighttime-encounter-intro .ghost-figure {
  position: absolute; bottom: 18%; left: 46%; width: 22px; height: 50px;
  background: linear-gradient(180deg, rgba(200,180,230,0.3) 0%, rgba(200,180,230,0.05) 100%);
  border-radius: 50% 50% 40% 40% / 55% 55% 45% 45%;
  filter: blur(3px);
  opacity: 0.4;
  animation: nEi-ghost 12s ease-in-out infinite alternate;
}
.scn-nighttime-encounter-intro .corridor-ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 12%;
  background: linear-gradient(0deg, #161026 0%, #0e0a1a 100%);
}
.scn-nighttime-encounter-intro .light-shaft {
  position: absolute; top: 0; left: 46%; width: 16px; height: 100%;
  background: linear-gradient(180deg, rgba(180,170,220,0.08) 0%, transparent 70%);
  animation: nEi-light 6s ease-in-out infinite alternate;
}
.scn-nighttime-encounter-intro .wall-left {
  position: absolute; top: 0; left: 0; right: 55%; height: 100%;
  background: linear-gradient(180deg, #100c1a 0%, #1a1428 50%, #0e0a16 100%);
  clip-path: polygon(0 0, 100% 0, 85% 100%, 0 100%);
}
.scn-nighttime-encounter-intro .wall-right {
  position: absolute; top: 0; left: 48%; right: 0; height: 100%;
  background: linear-gradient(180deg, #100c1a 0%, #1a1428 50%, #0e0a16 100%);
  clip-path: polygon(15% 0, 100% 0, 100% 100%, 0 100%);
}
@keyframes nEi-door {
  0% { transform: scaleX(0.3); opacity: 0.8; }
  20% { transform: scaleX(0.8); opacity: 1; }
  40% { transform: scaleX(0.95); opacity: 0.9; }
  60% { transform: scaleX(0.6); opacity: 0.7; }
  80% { transform: scaleX(0.9); opacity: 1; }
  100% { transform: scaleX(0.3); opacity: 0.8; }
}
@keyframes nEi-ghost {
  0% { opacity: 0.2; transform: translateY(0) scaleY(1); filter: blur(5px); }
  50% { opacity: 0.6; transform: translateY(-4px) scaleY(1.05); filter: blur(3px); }
  100% { opacity: 0.3; transform: translateY(0) scaleY(1); filter: blur(6px); }
}
@keyframes nEi-light {
  0% { opacity: 0.5; transform: scaleX(1); }
  50% { opacity: 1; transform: scaleX(1.2); }
  100% { opacity: 0.6; transform: scaleX(0.9); }
}

/* blast-of-cold */
.scn-blast-of-cold {
  background: 
    linear-gradient(180deg, #0b121c 0%, #141b2d 40%, #1f2937 70%, #0f172a 100%),
    radial-gradient(ellipse at 30% 20%, rgba(180,200,230,0.15) 0%, transparent 60%);
}
.scn-blast-of-cold .window-frame {
  position: absolute; inset: 5% 15% 50% 15%; border: 8px solid #2a3446; background: #0a0f1a; border-radius: 4px; box-shadow: 0 0 40px rgba(80,120,180,0.2); animation: bc-shatter 0.4s ease-in-out 2s infinite alternate;
}
.scn-blast-of-cold .glass-shard {
  position: absolute; top: 12%; left: 22%; width: 60px; height: 80px; background: rgba(200,220,240,0.4); clip-path: polygon(30% 0%, 70% 10%, 100% 80%, 20% 100%); filter: blur(1px); animation: bc-shard 1.2s ease-in-out infinite alternate;
}
.scn-blast-of-cold .curtain-left {
  position: absolute; left: 10%; top: 0; width: 12%; height: 100%; background: linear-gradient(135deg, #2a1e1e 0%, #1a1212 100%); transform-origin: left center; border-radius: 0 20% 20% 0; animation: bc-curtain-l 3s ease-in-out infinite alternate;
}
.scn-blast-of-cold .curtain-right {
  position: absolute; right: 10%; top: 0; width: 12%; height: 100%; background: linear-gradient(225deg, #2a1e1e 0%, #1a1212 100%); transform-origin: right center; border-radius: 20% 0 0 20%; animation: bc-curtain-r 3.2s ease-in-out infinite alternate;
}
.scn-blast-of-cold .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%; background: linear-gradient(0deg, #1c1618 0%, #2c2426 100%); box-shadow: inset 0 8px 20px rgba(0,0,0,0.6);
}
.scn-blast-of-cold .figure-recoil {
  position: absolute; bottom: 28%; left: 35%; width: 40px; height: 80px; background: linear-gradient(180deg, #1e2028 0%, #121218 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: bc-recoil 2.5s ease-in-out infinite;
}
.scn-blast-of-cold .cold-gust {
  position: absolute; top: 20%; left: 50%; width: 120px; height: 8px; background: linear-gradient(90deg, transparent, rgba(200,220,250,0.3), transparent); transform: rotate(-15deg); filter: blur(4px); animation: bc-gust3 1.8s linear infinite;
}
.scn-blast-of-cold .cold-gust2 {
  position: absolute; top: 45%; left: 30%; width: 100px; height: 10px; background: linear-gradient(90deg, transparent, rgba(180,210,240,0.25), transparent); transform: rotate(10deg); filter: blur(3px); animation: bc-gust4 2.2s linear infinite;
}
@keyframes bc-shatter {
  0% { transform: translateX(0) rotate(0); border-color: #2a3446; }
  50% { transform: translateX(4px) rotate(-2deg); border-color: #4a5a7a; }
  100% { transform: translateX(-2px) rotate(1deg); border-color: #2a3446; }
}
@keyframes bc-shard {
  0% { transform: translate(0,0) rotate(0) scale(1); opacity: 0.6; }
  50% { transform: translate(15px,-25px) rotate(-30deg) scale(0.9); opacity: 0.8; }
  100% { transform: translate(8px,-12px) rotate(15deg) scale(1.1); opacity: 0.4; }
}
@keyframes bc-curtain-l {
  0% { transform: scaleX(1) translateX(0); }
  100% { transform: scaleX(0.8) translateX(-20%); }
}
@keyframes bc-curtain-r {
  0% { transform: scaleX(1) translateX(0); }
  100% { transform: scaleX(0.8) translateX(20%); }
}
@keyframes bc-recoil {
  0% { transform: translateX(0) rotate(0); }
  30% { transform: translateX(-15px) rotate(-8deg) translateY(-5px); }
  60% { transform: translateX(-5px) rotate(2deg) translateY(-2px); }
  100% { transform: translateX(0) rotate(0); }
}
@keyframes bc-gust3 {
  0% { transform: translateX(-100%) rotate(-15deg); opacity: 0; }
  30% { opacity: 0.8; }
  70% { opacity: 0.6; }
  100% { transform: translateX(200%) rotate(-15deg); opacity: 0; }
}
@keyframes bc-gust4 {
  0% { transform: translateX(-150%) rotate(10deg); opacity: 0; }
  40% { opacity: 0.7; }
  80% { opacity: 0.3; }
  100% { transform: translateX(250%) rotate(10deg); opacity: 0; }
}

/* letter-written */
.scn-letter-written {
  background: 
    linear-gradient(135deg, #1f1a16 0%, #2d241e 30%, #3b302a 60%, #1f1a16 100%),
    radial-gradient(ellipse at 50% 30%, #3a2f28 0%, transparent 70%);
}
.scn-letter-written .desk {
  position: absolute; bottom: 0; left: 10%; right: 10%; height: 20%; background: linear-gradient(180deg, #4a3e34 0%, #2e261f 100%); border-radius: 4% 4% 0 0; box-shadow: 0 -4px 20px rgba(0,0,0,0.4);
}
.scn-letter-written .letter-paper {
  position: absolute; bottom: 16%; left: 22%; width: 50%; height: 14%; background: linear-gradient(135deg, #f5ecd9 0%, #e0d2b8 100%); border-radius: 2px; transform: rotate(-1deg); box-shadow: 0 2px 8px rgba(0,0,0,0.3); animation: lw-paper 5s ease-in-out infinite alternate;
}
.scn-letter-written .inkwell {
  position: absolute; bottom: 22%; left: 68%; width: 18px; height: 24px; background: linear-gradient(180deg, #2a2622 0%, #141210 100%); border-radius: 40%; box-shadow: inset 0 -4px 6px rgba(0,0,0,0.5); transform: rotate(2deg);
}
.scn-letter-written .pen {
  position: absolute; bottom: 28%; left: 68%; width: 6px; height: 40px; background: linear-gradient(180deg, #c8a876 0%, #8a6e4a 100%); border-radius: 40% 40% 20% 20%; transform-origin: bottom left; transform: rotate(-20deg); box-shadow: 0 2px 4px rgba(0,0,0,0.3); animation: lw-pen 3s ease-in-out infinite alternate;
}
.scn-letter-written .writing-hand {
  position: absolute; bottom: 22%; left: 28%; width: 30px; height: 40px; background: linear-gradient(135deg, #d4b896 0%, #b29874 100%); border-radius: 50% 40% 30% 30% / 60% 50% 40% 40%; transform: rotate(-15deg); transform-origin: bottom center; animation: lw-hand 1.8s ease-in-out infinite alternate;
}
.scn-letter-written .lamp {
  position: absolute; bottom: 50%; left: 15%; width: 40px; height: 60px; background: radial-gradient(circle at 50% 10%, #fadc9a 0%, #b87a40 60%, #2e2018 90%); border-radius: 50% 50% 30% 30%; box-shadow: 0 0 60px 20px rgba(250,220,150,0.3); animation: lw-lamp 2s ease-in-out infinite alternate;
}
.scn-letter-written .shadow {
  position: absolute; bottom: 0; left: 0; right: 0; height: 50%; background: linear-gradient(0deg, rgba(0,0,0,0.5) 0%, transparent 100%); pointer-events: none;
}
@keyframes lw-paper {
  0% { transform: rotate(-1deg) translateY(0); }
  100% { transform: rotate(2deg) translateY(-2px); }
}
@keyframes lw-pen {
  0% { transform: rotate(-20deg) translate(0,0); }
  50% { transform: rotate(-25deg) translate(2px,-5px); }
  100% { transform: rotate(-20deg) translate(0,0); }
}
@keyframes lw-hand {
  0% { transform: rotate(-15deg) translate(0,0); }
  50% { transform: rotate(-18deg) translate(5px,-2px); }
  100% { transform: rotate(-15deg) translate(0,0); }
}
@keyframes lw-lamp {
  0% { box-shadow: 0 0 50px 15px rgba(250,220,150,0.3); }
  100% { box-shadow: 0 0 80px 30px rgba(250,220,150,0.5); }
}

/* beauty-and-misery */
.scn-beauty-and-misery {
  background: 
    linear-gradient(180deg, #12161e 0%, #1a1f2e 40%, #252b3d 70%, #0c0f18 100%),
    radial-gradient(ellipse at 50% 30%, #2a3350 0%, transparent 60%);
}
.scn-beauty-and-misery .window {
  position: absolute; inset: 10% 20% 40% 20%; border: 6px solid #1e2636; background: #111520; border-radius: 2px; box-shadow: inset 0 0 30px rgba(180,200,230,0.08);
}
.scn-beauty-and-misery .moon {
  position: absolute; top: 18%; left: 35%; width: 30px; height: 30px; background: radial-gradient(circle, #d4dce8 0%, #b0bcd0 100%); border-radius: 50%; box-shadow: 0 0 40px 15px rgba(200,215,240,0.15); filter: blur(1px); animation: bm-moon 8s ease-in-out infinite alternate;
}
.scn-beauty-and-misery .child-silhouette {
  position: absolute; bottom: 32%; left: 38%; width: 30px; height: 75px; background: #0a0c14; border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; box-shadow: 0 0 15px rgba(0,0,0,0.6); animation: bm-child 6s ease-in-out infinite alternate;
}
.scn-beauty-and-misery .wall {
  position: absolute; left: 0; right: 0; top: 0; bottom: 25%; background: linear-gradient(180deg, #1a1f2e 0%, #141824 100%); opacity: 0.4;
}
.scn-beauty-and-misery .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 25%; background: linear-gradient(0deg, #0e111a 0%, #1a1f2e 100%);
}
.scn-beauty-and-misery .shadow-stripe {
  position: absolute; bottom: 30%; left: 30%; width: 20%; height: 4px; background: rgba(0,0,0,0.4); filter: blur(6px); animation: bm-stripe 12s linear infinite alternate;
}
.scn-beauty-and-misery .dust-motes {
  position: absolute; inset: 0; background: radial-gradient(circle at 50% 30%, rgba(200,215,240,0.02) 0%, transparent 70%); animation: bm-dust 30s linear infinite;
}
@keyframes bm-moon {
  0% { transform: scale(1) translateX(0); opacity: 0.7; }
  50% { transform: scale(1.05) translateX(-5px); opacity: 0.9; }
  100% { transform: scale(0.95) translateX(3px); opacity: 0.6; }
}
@keyframes bm-child {
  0% { transform: translateX(0) rotate(0); }
  50% { transform: translateX(3px) rotate(-2deg) translateY(-2px); }
  100% { transform: translateX(-1px) rotate(1deg) translateY(0); }
}
@keyframes bm-stripe {
  0% { transform: translateX(0) scaleX(1); }
  100% { transform: translateX(40%) scaleX(1.2); }
}
@keyframes bm-dust {
  0% { opacity: 0.3; }
  50% { opacity: 0.6; }
  100% { opacity: 0.3; }
}

/* playing-piano */
.scn-playing-piano {
  background: 
    linear-gradient(135deg, #f5e8d0 0%, #e8d5b5 30%, #d4bc98 60%, #c5a87a 100%),
    radial-gradient(ellipse at 70% 40%, #f0e0c8 0%, transparent 50%);
}
.scn-playing-piano .piano-body {
  position: absolute; bottom: 10%; left: 10%; right: 10%; height: 35%; background: linear-gradient(180deg, #2e241e 0%, #1c1512 100%); border-radius: 6% 6% 0 0; box-shadow: 0 -8px 30px rgba(0,0,0,0.4);
}
.scn-playing-piano .piano-keys {
  position: absolute; bottom: 10%; left: 15%; right: 15%; height: 10%; background: linear-gradient(0deg, #f5f0e8 0%, #e0d6c4 100%); display: flex; justify-content: space-evenly; border-top: 2px solid #3a2e26;
}
.scn-playing-piano .piano-keys::before {
  content: ''; position: absolute; top: 0; left: 0; right: 0; height: 40%; background: #1e1612; border-radius: 0 0 2px 2px;
}
.scn-playing-piano .stool {
  position: absolute; bottom: 10%; left: 40%; width: 50px; height: 15px; background: #6a5540; border-radius: 20% 20% 10% 10%; transform: translateX(-50%);
}
.scn-playing-piano .boy {
  position: absolute; bottom: 42%; left: 35%; width: 40px; height: 70px; background: linear-gradient(180deg, #d4b896 0%, #b29874 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: pp-boy 2s ease-in-out infinite alternate;
}
.scn-playing-piano .music-sheet {
  position: absolute; bottom: 45%; left: 22%; width: 80px; height: 12px; background: #f5ecdb; transform: rotate(-3deg); border-radius: 2px; box-shadow: 0 2px 6px rgba(0,0,0,0.2); animation: pp-sheet 4s ease-in-out infinite alternate;
}
.scn-playing-piano .sunbeam {
  position: absolute; top: -10%; left: 25%; width: 150px; height: 200%; background: linear-gradient(180deg, rgba(255,240,200,0.15) 0%, transparent 100%); transform: rotate(25deg); filter: blur(10px); animation: pp-beam 6s ease-in-out infinite alternate;
}
.scn-playing-piano .dust-motes {
  position: absolute; inset: 0; background: radial-gradient(circle at 30% 40%, rgba(240,220,180,0.05) 0%, transparent 60%); animation: pp-dust 20s linear infinite;
}
@keyframes pp-boy {
  0% { transform: translateY(0) rotate(0); }
  50% { transform: translateY(-3px) rotate(2deg) translateX(2px); }
  100% { transform: translateY(0) rotate(-1deg); }
}
@keyframes pp-sheet {
  0% { transform: rotate(-3deg) translateY(0); }
  100% { transform: rotate(2deg) translateY(-3px); }
}
@keyframes pp-beam {
  0% { opacity: 0.6; transform: rotate(25deg) translateX(0); }
  100% { opacity: 1; transform: rotate(28deg) translateX(10px); }
}
@keyframes pp-dust {
  0% { opacity: 0.2; }
  50% { opacity: 0.5; }
  100% { opacity: 0.2; }
}

.scn-gloves-required-stitches { background: radial-gradient(ellipse at 60% 80%, #8a6a4a 0%, #3a2a1a 70%, #1a0f0a 100%), linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); }
.scn-gloves-required-stitches .bg { position:absolute; inset:0; background: linear-gradient(180deg, #2a1a0a 0%, #1a0f0a 50%, #3a2a1a 100%); animation: grs-bg 12s ease-in-out infinite alternate; }
.scn-gloves-required-stitches .stairs { position:absolute; bottom:10%; left:0; right:60%; height:30%; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); clip-path:polygon(0 0, 50% 0, 80% 100%, 0 100%); animation: grs-stairs 15s ease-in-out infinite; }
.scn-gloves-required-stitches .table { position:absolute; bottom:18%; left:20%; width:30%; height:12%; background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%); border-radius:4px; box-shadow:0 4px 8px rgba(0,0,0,.6); animation: grs-table 8s ease-in-out infinite; }
.scn-gloves-required-stitches .gloves { position:absolute; bottom:30%; left:25%; width:8%; height:4%; background: radial-gradient(circle at 30% 50%, #6a5a4a 0%, #4a3a2a 100%); border-radius:50% 50% 40% 40%; transform:rotate(-20deg); animation: grs-gloves 6s ease-in-out infinite; }
.scn-gloves-required-stitches .tea-cup { position:absolute; bottom:32%; left:22%; width:4%; height:5%; background: linear-gradient(180deg, #8a7a6a 0%, #5a4a3a 100%); border-radius:0 0 6px 6px; animation: grs-cup 7s ease-in-out infinite; }
.scn-gloves-required-stitches .window { position:absolute; top:15%; right:5%; width:35%; height:50%; background: radial-gradient(ellipse at 50% 50%, #c0b09a 0%, #2a1a0a 80%); border-radius:4px; box-shadow:inset 0 0 20px rgba(192,176,154,.2); animation: grs-window 20s ease-in-out infinite alternate; }
.scn-gloves-required-stitches .child { position:absolute; bottom:20%; left:45%; width:6%; height:15%; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; animation: grs-child 9s ease-in-out infinite; }
.scn-gloves-required-stitches .lamp { position:absolute; top:40%; left:10%; width:5%; height:8%; background: radial-gradient(circle, #d0b090 0%, #3a2a1a 80%); border-radius:50%; box-shadow:0 0 30px 10px rgba(208,176,144,.3); animation: grs-lamp 4s ease-in-out infinite alternate; }
@keyframes grs-bg { 0% { opacity:0.9; } 50% { opacity:0.8; } 100% { opacity:0.85; } }
@keyframes grs-stairs { 0% { transform:translateY(0); } 50% { transform:translateY(-2px); } 100% { transform:translateY(0); } }
@keyframes grs-table { 0%,100% { transform:scaleY(1); } 50% { transform:scaleY(0.98); } }
@keyframes grs-gloves { 0% { transform:translateX(0) rotate(-20deg); } 50% { transform:translateX(2px) rotate(-18deg); } 100% { transform:translateX(0) rotate(-20deg); } }
@keyframes grs-cup { 0% { transform:translateY(0) rotate(0); } 50% { transform:translateY(-1px) rotate(1deg); } 100% { transform:translateY(0) rotate(0); } }
@keyframes grs-window { 0% { opacity:0.6; box-shadow:inset 0 0 15px rgba(192,176,154,.1); } 50% { opacity:0.8; box-shadow:inset 0 0 25px rgba(192,176,154,.3); } 100% { opacity:0.5; box-shadow:inset 0 0 10px rgba(192,176,154,.1); } }
@keyframes grs-child { 0%,100% { transform:translateX(0) rotate(0); } 50% { transform:translateX(3px) rotate(-2deg); } }
@keyframes grs-lamp { 0% { box-shadow:0 0 20px 5px rgba(208,176,144,.2); } 50% { box-shadow:0 0 40px 15px rgba(208,176,144,.5); } 100% { box-shadow:0 0 25px 8px rgba(208,176,144,.3); } }

.scn-second-apparition-at-window { background: radial-gradient(ellipse at 50% 0%, #4a5a6a 0%, #1a2a3a 60%, #0a0a1a 100%), linear-gradient(180deg, #2a3a4a 0%, #0a0a1a 100%); }
.scn-second-apparition-at-window .room { position:absolute; inset:0; background: linear-gradient(180deg, #1a2a3a 0%, #0a0a1a 100%); animation: sa-room 18s ease-in-out infinite; }
.scn-second-apparition-at-window .window-frame { position:absolute; top:10%; left:30%; width:40%; height:60%; background: linear-gradient(180deg, #3a4a5a 0%, #1a2a3a 100%); border-radius:4px; box-shadow:inset 0 0 20px rgba(0,0,0,.5); }
.scn-second-apparition-at-window .pane { position:absolute; top:15%; left:34%; width:32%; height:50%; background: radial-gradient(circle at 50% 50%, #6a7a8a 0%, #1a2a3a 80%); opacity:0.7; animation: sa-pane 9s ease-in-out infinite; }
.scn-second-apparition-at-window .figure { position:absolute; top:20%; left:40%; width:12%; height:30%; background: linear-gradient(180deg, #2a3a4a 0%, #0a0a1a 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform:scaleX(-1); animation: sa-figure 8s ease-in-out infinite; }
.scn-second-apparition-at-window .curtain { position:absolute; top:10%; left:28%; width:8%; height:60%; background: linear-gradient(90deg, #4a5a6a 0%, #2a3a4a 100%); border-radius:0 8px 8px 0; animation: sa-curtain 12s ease-in-out infinite alternate; }
.scn-second-apparition-at-window .shadow { position:absolute; top:20%; left:35%; width:20%; height:20%; background: radial-gradient(circle, #0a0a1a 0%, transparent 80%); animation: sa-shadow 7s ease-in-out infinite; }
.scn-second-apparition-at-window .moon { position:absolute; top:18%; left:45%; width:6%; height:6%; background: radial-gradient(circle, #c0d0e0 0%, #6a7a8a 100%); border-radius:50%; box-shadow:0 0 30px 10px rgba(192,208,224,.2); animation: sa-moon 25s linear infinite; }
.scn-second-apparition-at-window .cloud { position:absolute; top:20%; left:10%; width:30%; height:4%; background: rgba(255,255,255,.1); filter:blur(8px); border-radius:50%; animation: sa-cloud 40s linear infinite; }
@keyframes sa-room { 0% { opacity:0.9; } 50% { opacity:0.85; } 100% { opacity:0.95; } }
@keyframes sa-pane { 0% { opacity:0.5; } 50% { opacity:0.7; } 100% { opacity:0.5; } }
@keyframes sa-figure { 0%,100% { transform:scaleX(-1) translateX(0); opacity:0.8; } 50% { transform:scaleX(-1) translateX(-5px); opacity:0.6; } }
@keyframes sa-curtain { 0% { width:8%; } 50% { width:10%; } 100% { width:8%; } }
@keyframes sa-shadow { 0% { opacity:0.3; transform:scale(1); } 50% { opacity:0.6; transform:scale(1.2); } 100% { opacity:0.3; transform:scale(1); } }
@keyframes sa-moon { 0% { transform:translateY(0); } 50% { transform:translateY(-5px); } 100% { transform:translateY(0); } }
@keyframes sa-cloud { 0% { transform:translateX(-100%); } 100% { transform:translateX(100vw); } }

.scn-face-close-to-glass { background: radial-gradient(ellipse at 50% 50%, #2a3a4a 0%, #1a2a3a 60%, #0a0a1a 100%), linear-gradient(180deg, #1a2a3a 0%, #0a0a1a 100%); }
.scn-face-close-to-glass .frame { position:absolute; inset:20%; background: linear-gradient(180deg, #3a4a5a 0%, #1a2a3a 100%); border-radius:4px; box-shadow:inset 0 0 30px rgba(0,0,0,.7); }
.scn-face-close-to-glass .glass { position:absolute; inset:25%; background: radial-gradient(circle at 60% 40%, #6a7a8a 0%, #1a2a3a 80%); opacity:0.6; animation: fg-glass 10s ease-in-out infinite; }
.scn-face-close-to-glass .face { position:absolute; top:30%; left:35%; width:30%; height:40%; background: linear-gradient(180deg, #4a5a6a 0%, #2a3a4a 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform:scaleX(-1); animation: fg-face 6s ease-in-out infinite; }
.scn-face-close-to-glass .hand { position:absolute; top:45%; left:30%; width:10%; height:12%; background: linear-gradient(180deg, #4a5a6a 0%, #2a3a4a 100%); border-radius:50% 50% 40% 40%; transform:rotate(20deg); animation: fg-hand 5s ease-in-out infinite; }
.scn-face-close-to-glass .breath { position:absolute; top:32%; left:38%; width:20%; height:10%; background: rgba(255,255,255,.05); filter:blur(12px); border-radius:50%; animation: fg-breath 4s ease-in-out infinite alternate; }
.scn-face-close-to-glass .background { position:absolute; inset:0; background: linear-gradient(180deg, #0a0a1a 0%, #1a2a3a 100%); opacity:0.5; animation: fg-bg 14s ease-in-out infinite; }
.scn-face-close-to-glass .reflection { position:absolute; top:30%; left:40%; width:5%; height:20%; background: rgba(255,255,255,.1); transform:rotate(-30deg); filter:blur(4px); animation: fg-reflect 8s ease-in-out infinite; }
@keyframes fg-glass { 0% { opacity:0.5; } 50% { opacity:0.7; } 100% { opacity:0.5; } }
@keyframes fg-face { 0%,100% { transform:scaleX(-1) translateX(0); } 50% { transform:scaleX(-1) translateX(-3px) rotate(2deg); } }
@keyframes fg-hand { 0% { transform:rotate(20deg); } 50% { transform:rotate(25deg); } 100% { transform:rotate(20deg); } }
@keyframes fg-breath { 0% { opacity:0.1; transform:scale(0.8); } 100% { opacity:0.3; transform:scale(1.2); } }
@keyframes fg-bg { 0% { opacity:0.4; } 50% { opacity:0.6; } 100% { opacity:0.4; } }
@keyframes fg-reflect { 0% { opacity:0.1; } 50% { opacity:0.3; } 100% { opacity:0.1; } }

.scn-he-came-for-someone-else { background: radial-gradient(ellipse at 50% 0%, #4a5a6a 0%, #1a2a3a 70%, #0a0a1a 100%), linear-gradient(180deg, #2a3a4a 0%, #0a0a1a 100%); }
.scn-he-came-for-someone-else .room { position:absolute; inset:0; background: linear-gradient(180deg, #1a2a3a 0%, #0a0a1a 100%); animation: hc-room 16s ease-in-out infinite; }
.scn-he-came-for-someone-else .window { position:absolute; top:20%; left:20%; width:40%; height:50%; background: radial-gradient(ellipse at 50% 50%, #6a7a8a 0%, #1a2a3a 80%); border-radius:4px; box-shadow:inset 0 0 30px rgba(0,0,0,.5); animation: hc-window 12s ease-in-out infinite; }
.scn-he-came-for-someone-else .figure-window { position:absolute; top:30%; left:25%; width:10%; height:25%; background: linear-gradient(180deg, #2a3a4a 0%, #0a0a1a 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform:scaleX(-1); animation: hc-fig-w 7s ease-in-out infinite; }
.scn-he-came-for-someone-else .figure-room { position:absolute; bottom:20%; right:15%; width:8%; height:20%; background: linear-gradient(180deg, #3a4a5a 0%, #1a2a3a 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform:rotate(-10deg); animation: hc-fig-r 9s ease-in-out infinite; }
.scn-he-came-for-someone-else .shadow-window { position:absolute; top:35%; left:22%; width:15%; height:20%; background: radial-gradient(circle, #0a0a1a 0%, transparent 80%); animation: hc-shadow 8s ease-in-out infinite; }
.scn-he-came-for-someone-else .light { position:absolute; top:30%; left:20%; width:30%; height:40%; background: linear-gradient(135deg, rgba(192,208,224,.1) 0%, transparent 100%); transform:skewX(-20deg); animation: hc-light 10s ease-in-out infinite alternate; }
.scn-he-came-for-someone-else .door { position:absolute; bottom:0; left:65%; width:15%; height:80%; background: linear-gradient(180deg, #3a4a5a 0%, #1a2a3a 100%); border-radius:4px 4px 0 0; box-shadow:inset 0 0 10px rgba(0,0,0,.5); animation: hc-door 20s ease-in-out infinite; }
.scn-he-came-for-someone-else .object { position:absolute; bottom:15%; left:70%; width:10%; height:10%; background: linear-gradient(180deg, #4a5a6a 0%, #2a3a4a 100%); border-radius:50%; animation: hc-object 6s ease-in-out infinite; }
@keyframes hc-room { 0% { opacity:0.9; } 50% { opacity:0.85; } 100% { opacity:0.95; } }
@keyframes hc-window { 0% { opacity:0.6; } 50% { opacity:0.8; } 100% { opacity:0.6; } }
@keyframes hc-fig-w { 0%,100% { transform:scaleX(-1) translateX(0); } 50% { transform:scaleX(-1) translateX(-3px); } }
@keyframes hc-fig-r { 0% { transform:rotate(-10deg); } 50% { transform:rotate(-12deg); } 100% { transform:rotate(-10deg); } }
@keyframes hc-shadow { 0% { opacity:0.3; } 50% { opacity:0.5; } 100% { opacity:0.3; } }
@keyframes hc-light { 0% { opacity:0.1; } 50% { opacity:0.3; } 100% { opacity:0.1; } }
@keyframes hc-door { 0%,100% { transform:scaleY(1); } 50% { transform:scaleY(0.98); } }
@keyframes hc-object { 0% { transform:translateY(0); } 50% { transform:translateY(-3px); } 100% { transform:translateY(0); } }

.scn-quints-effect-on-lives {
  background:
    linear-gradient(180deg, #1c1720 0%, #2a1e28 30%, #1a141e 60%, #0e0a12 100%),
    radial-gradient(ellipse at 50% 20%, #3a2a3a 0%, transparent 70%);
}
.scn-quints-effect-on-lives .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(0deg, #1a1418 0%, #2a1e22 40%, #34262e 100%);
  border-radius: 30% 70% 0 0 / 20% 40% 0 0;
  box-shadow: inset 0 8px 20px rgba(0,0,0,.6);
}
.scn-quints-effect-on-lives .wall-left {
  position: absolute; top: 0; left: 0; width: 30%; height: 70%;
  background: linear-gradient(180deg, #2a1e28 0%, #1c1420 60%, #100c16 100%);
  transform: skewY(-3deg);
  box-shadow: inset -8px 0 16px rgba(0,0,0,.4);
}
.scn-quints-effect-on-lives .wall-right {
  position: absolute; top: 0; right: 0; width: 25%; height: 72%;
  background: linear-gradient(180deg, #2a1e28 0%, #1c1420 60%, #100c16 100%);
  transform: skewY(2deg);
  box-shadow: inset 8px 0 16px rgba(0,0,0,.4);
}
.scn-quints-effect-on-lives .figure-sitting {
  position: absolute; bottom: 18%; left: 25%; width: 32px; height: 48px;
  background: linear-gradient(180deg, #3a2a32 0%, #1a121a 100%);
  border-radius: 50% 50% 45% 45% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  box-shadow: -4px 0 8px rgba(0,0,0,.5);
  animation: qel-sit 6s ease-in-out infinite;
}
.scn-quints-effect-on-lives .figure-standing {
  position: absolute; bottom: 22%; right: 22%; width: 24px; height: 56px;
  background: linear-gradient(180deg, #2a222e 0%, #120e16 100%);
  border-radius: 50% 50% 40% 40% / 55% 55% 45% 45%;
  transform-origin: bottom center;
  box-shadow: 2px 0 8px rgba(0,0,0,.5);
  animation: qel-stand 8s ease-in-out infinite;
}
.scn-quints-effect-on-lives .lamp-glow {
  position: absolute; top: 20%; left: 45%; width: 40px; height: 50px;
  background: radial-gradient(ellipse, #c87840 0%, #a05830 40%, transparent 70%);
  border-radius: 50%;
  filter: blur(8px);
  box-shadow: 0 0 60px 20px rgba(200,120,64,.3), 0 0 100px 30px rgba(200,120,64,.1);
  animation: qel-lamp 4s ease-in-out infinite alternate;
}
.scn-quints-effect-on-lives .shadow-pool {
  position: absolute; bottom: 15%; left: 20%; width: 60%; height: 8%;
  background: radial-gradient(ellipse, rgba(0,0,0,.5) 0%, transparent 70%);
  border-radius: 50%;
  filter: blur(6px);
  animation: qel-shadow 8s ease-in-out infinite;
}
.scn-quints-effect-on-lives .dust-motes {
  position: absolute; top: 10%; left: 10%; width: 100%; height: 100%;
  background: radial-gradient(circle at 30% 40%, rgba(200,180,160,.08) 0%, transparent 40%),
              radial-gradient(circle at 70% 60%, rgba(200,180,160,.05) 0%, transparent 30%);
  filter: blur(4px);
  animation: qel-dust 12s ease-in-out infinite alternate;
}
@keyframes qel-sit {
  0%, 100% { transform: translateY(0) rotate(0deg); }
  50% { transform: translateY(-2px) rotate(-2deg); }
}
@keyframes qel-stand {
  0%, 100% { transform: translateY(0) rotate(1deg); }
  50% { transform: translateY(-3px) rotate(-1deg); }
}
@keyframes qel-lamp {
  0% { opacity: .7; transform: scale(.95); }
  100% { opacity: 1; transform: scale(1.05); }
}
@keyframes qel-shadow {
  0%, 100% { transform: scaleX(1) scaleY(1); opacity: .6; }
  50% { transform: scaleX(1.1) scaleY(1.2); opacity: .4; }
}
@keyframes qel-dust {
  0% { transform: translate(0, 0) scale(1); opacity: .5; }
  50% { transform: translate(8px, -6px) scale(1.1); opacity: .8; }
  100% { transform: translate(-4px, 4px) scale(.95); opacity: .6; }
}

.scn-rigid-control-from-next-day {
  background:
    linear-gradient(180deg, #f0e8d8 0%, #d8c8b0 40%, #c4b098 70%, #b09880 100%),
    linear-gradient(90deg, rgba(240,230,210,.3) 0%, rgba(200,180,160,.2) 50%, rgba(240,230,210,.3) 100%);
}
.scn-rigid-control-from-next-day .room-back {
  position: absolute; top: 0; left: 0; right: 0; height: 55%;
  background: linear-gradient(180deg, #e8dcc8 0%, #d0c0a8 100%);
  box-shadow: inset 0 -20px 40px rgba(0,0,0,.08);
}
.scn-rigid-control-from-next-day .desk {
  position: absolute; bottom: 18%; left: 10%; width: 55%; height: 14%;
  background: linear-gradient(180deg, #6a5040 0%, #4a3428 100%);
  border-radius: 4% 4% 2% 2% / 20% 20% 10% 10%;
  box-shadow: 0 6px 12px rgba(0,0,0,.3), inset 0 2px 4px rgba(255,255,255,.1);
  transform: perspective(300px) rotateX(6deg);
}
.scn-rigid-control-from-next-day .figure-seated {
  position: absolute; bottom: 18%; left: 22%; width: 30px; height: 52px;
  background: linear-gradient(180deg, #3a2a22 0%, #1e1410 100%);
  border-radius: 50% 50% 40% 40% / 55% 55% 45% 45%;
  transform-origin: bottom center;
  box-shadow: -2px 0 6px rgba(0,0,0,.3);
  animation: rcn-seated 5s ease-in-out infinite;
}
.scn-rigid-control-from-next-day .figure-standing-bg {
  position: absolute; bottom: 22%; right: 15%; width: 22px; height: 48px;
  background: linear-gradient(180deg, #2a1e18 0%, #140e0a 100%);
  border-radius: 50% 50% 35% 35% / 50% 50% 50% 50%;
  transform-origin: bottom center;
  box-shadow: 0 0 8px rgba(0,0,0,.3);
  animation: rcn-standing 7s ease-in-out infinite;
}
.scn-rigid-control-from-next-day .window-light {
  position: absolute; top: 8%; right: 8%; width: 40%; height: 35%;
  background: linear-gradient(180deg, rgba(255,250,230,.6) 0%, rgba(240,230,200,.3) 100%);
  border-radius: 4% 4% 2% 2%;
  box-shadow: inset 0 0 30px rgba(255,250,210,.2);
  animation: rcn-window 10s ease-in-out infinite alternate;
}
.scn-rigid-control-from-next-day .papers {
  position: absolute; bottom: 22%; left: 30%; width: 12%; height: 4%;
  background: linear-gradient(135deg, #f0e8d0 0%, #d8c8a8 70%);
  border-radius: 8% 12% 6% 10%;
  box-shadow: 0 2px 4px rgba(0,0,0,.15);
  transform: rotate(-4deg);
  animation: rcn-papers 8s ease-in-out infinite;
}
.scn-rigid-control-from-next-day .shadow-bars {
  position: absolute; top: 0; left: 0; width: 100%; height: 100%;
  background: repeating-linear-gradient(90deg, transparent 0, transparent 8%, rgba(0,0,0,.04) 8%, rgba(0,0,0,.04) 10%);
  pointer-events: none;
  animation: rcn-bars 15s linear infinite;
}
.scn-rigid-control-from-next-day .clock {
  position: absolute; top: 10%; left: 12%; width: 28px; height: 28px;
  background: radial-gradient(circle, #f0e8d8 20%, #8a7a6a 50%, #5a4a3a 100%);
  border-radius: 50%;
  box-shadow: 0 0 12px rgba(0,0,0,.2), inset 0 2px 4px rgba(255,255,255,.3);
  animation: rcn-clock 60s linear infinite;
}
@keyframes rcn-seated {
  0%, 100% { transform: translateY(0) rotate(0deg); }
  30% { transform: translateY(-2px) rotate(-3deg); }
  60% { transform: translateY(0) rotate(2deg); }
}
@keyframes rcn-standing {
  0%, 100% { transform: translateY(0) scaleX(1); }
  50% { transform: translateY(-4px) scaleX(.95); }
}
@keyframes rcn-window {
  0% { opacity: .6; }
  50% { opacity: 1; }
  100% { opacity: .7; }
}
@keyframes rcn-papers {
  0%, 100% { transform: rotate(-4deg) translateY(0); }
  50% { transform: rotate(-2deg) translateY(-1px); }
}
@keyframes rcn-bars {
  0% { transform: translateX(0); }
  100% { transform: translateX(10%); }
}
@keyframes rcn-clock {
  0% { transform: rotate(0deg); }
  100% { transform: rotate(360deg); }
}

.scn-sinister-figure-of-living-man {
  background:
    linear-gradient(180deg, #e8dcc8 0%, #c8b8a0 30%, #a89880 60%, #7a6a5a 100%),
    radial-gradient(ellipse at 50% 60%, #d8c8b0 0%, transparent 70%);
}
.scn-sinister-figure-of-living-man .hall-deep {
  position: absolute; top: 0; left: 0; width: 100%; height: 68%;
  background: linear-gradient(180deg, #c8b8a0 0%, #a0907a 40%, #7a6a58 100%);
  clip-path: polygon(0 0, 100% 0, 95% 100%, 5% 100%);
  box-shadow: inset 0 0 60px rgba(0,0,0,.15);
}
.scn-sinister-figure-of-living-man .wall-sconce {
  position: absolute; top: 20%; left: 15%; width: 16px; height: 20px;
  background: radial-gradient(ellipse at 50% 30%, #e8c870 0%, #c09840 50%, transparent 100%);
  border-radius: 50% 50% 30% 30%;
  box-shadow: 0 0 40px 12px rgba(200,160,80,.3), 0 0 80px 20px rgba(200,160,80,.1);
  animation: sfm-sconce 3s ease-in-out infinite alternate;
}
.scn-sinister-figure-of-living-man .figure-sinister {
  position: absolute; bottom: 18%; left: 38%; width: 34px; height: 64px;
  background: linear-gradient(180deg, #2a2220 0%, #0e0a08 100%);
  border-radius: 50% 50% 40% 40% / 65% 65% 35% 35%;
  transform-origin: bottom center;
  box-shadow: -8px 0 16px rgba(0,0,0,.5);
  animation: sfm-sinister 8s ease-in-out infinite;
}
.scn-sinister-figure-of-living-man .figure-observer {
  position: absolute; bottom: 18%; right: 18%; width: 22px; height: 48px;
  background: linear-gradient(180deg, #3a2e28 0%, #1a1410 100%);
  border-radius: 50% 50% 35% 35% / 55% 55% 45% 45%;
  transform-origin: bottom center;
  box-shadow: 2px 0 8px rgba(0,0,0,.3);
  animation: sfm-observer 10s ease-in-out infinite;
}
.scn-sinister-figure-of-living-man .door-arch {
  position: absolute; top: 8%; left: 32%; width: 36%; height: 48%;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1e 100%);
  border-radius: 50% 50% 0 0 / 30% 30% 0 0;
  box-shadow: inset 0 0 40px rgba(0,0,0,.4);
  transform: scaleY(.9);
}
.scn-sinister-figure-of-living-man .candle-flame {
  position: absolute; top: 22%; left: 22%; width: 8px; height: 12px;
  background: radial-gradient(ellipse, #ffe8a0 0%, #e8a040 50%, #c06020 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  box-shadow: 0 0 20px 6px rgba(232,160,64,.4), 0 0 40px 12px rgba(232,160,64,.15);
  animation: sfm-candle 2s ease-in-out infinite alternate;
}
.scn-sinister-figure-of-living-man .shadow-stretch {
  position: absolute; bottom: 10%; left: 35%; width: 50%; height: 10%;
  background: linear-gradient(90deg, rgba(0,0,0,.4) 0%, rgba(0,0,0,.1) 100%);
  filter: blur(8px);
  border-radius: 50%;
  transform: skewX(-10deg) scaleY(.6);
  animation: sfm-shadow 8s ease-in-out infinite;
}
@keyframes sfm-sconce {
  0% { opacity: .7; transform: scaleY(.95); }
  100% { opacity: 1; transform: scaleY(1.05); }
}
@keyframes sfm-sinister {
  0%, 100% { transform: translateY(0) rotate(0deg) scaleX(1); }
  25% { transform: translateY(-2px) rotate(-2deg) scaleX(1.02); }
  50% { transform: translateY(-4px) rotate(0deg) scaleX(.98); }
  75% { transform: translateY(-1px) rotate(2deg) scaleX(1.01); }
}
@keyframes sfm-observer {
  0%, 100% { transform: translateY(0) rotate(0deg); }
  50% { transform: translateY(-3px) rotate(3deg); }
}
@keyframes sfm-candle {
  0% { transform: scaleY(.9) scaleX(1.05); opacity: .8; filter: blur(0); }
  100% { transform: scaleY(1.1) scaleX(.95); opacity: 1; filter: blur(1px); }
}
@keyframes sfm-shadow {
  0%, 100% { transform: skewX(-10deg) scaleY(.6) scaleX(1); opacity: .5; }
  50% { transform: skewX(-12deg) scaleY(.7) scaleX(1.1); opacity: .7; }
}

.scn-quints-death-by-fall {
  background:
    linear-gradient(180deg, #4a5068 0%, #5a6078 20%, #6a7088 40%, #808898 60%, #9098a0 100%),
    radial-gradient(ellipse at 30% 10%, #e8dcc8 0%, transparent 60%);
}
.scn-quints-death-by-fall .sky-dawn {
  position: absolute; top: 0; left: 0; right: 0; height: 60%;
  background: linear-gradient(180deg, #b0a098 0%, #c8b8a8 20%, #d8c8b8 35%, #a0a8b8 55%, #5a6078 100%);
  animation: qdf-sky 20s ease-in-out infinite alternate;
}
.scn-quints-death-by-fall .cliff-ice {
  position: absolute; top: 10%; left: 20%; width: 60%; height: 45%;
  background: linear-gradient(180deg, #b0b8c0 0%, #808898 40%, #505868 100%);
  border-radius: 20% 80% 40% 60% / 60% 40% 60% 40%;
  box-shadow: inset 0 20px 40px rgba(0,0,0,.2);
  transform: rotate(-4deg);
  animation: qdf-cliff 15s ease-in-out infinite;
}
.scn-quints-death-by-fall .figure-falling {
  position: absolute; top: 12%; left: 42%; width: 20px; height: 44px;
  background: linear-gradient(180deg, #3a3a4a 0%, #1a1a2a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: center center;
  box-shadow: 0 0 8px rgba(0,0,0,.4);
  animation: qdf-fall 6s ease-in-out infinite;
}
.scn-quints-death-by-fall .mist-lower {
  position: absolute; bottom: 20%; left: 0; right: 0; height: 30%;
  background: linear-gradient(0deg, rgba(160,168,176,.3) 0%, rgba(180,188,192,.15) 40%, transparent 100%);
  filter: blur(12px);
  animation: qdf-mist 25s ease-in-out infinite alternate;
}
.scn-quints-death-by-fall .rocks-base {
  position: absolute; bottom: 0; left: 5%; width: 90%; height: 18%;
  background: linear-gradient(180deg, #606870 0%, #404850 100%);
  border-radius: 60% 40% 0 0 / 40% 30% 0 0;
  box-shadow: inset 0 8px 20px rgba(0,0,0,.3);
}
.scn-quints-death-by-fall .blood-stain {
  position: absolute; bottom: 8%; left: 40%; width: 16px; height: 6px;
  background: radial-gradient(ellipse, #86303a 0%, #4a1a20 60%, transparent 100%);
  border-radius: 50%;
  filter: blur(2px);
  box-shadow: 0 0 12px 4px rgba(134,48,58,.2);
  animation: qdf-blood 4s ease-in-out infinite alternate;
}
.scn-quints-death-by-fall .snow-flurry {
  position: absolute; top: 0; left: 0; width: 100%; height: 100%;
  background:
    radial-gradient(2px 2px at 20% 30%, rgba(255,255,255,.3) 0%, transparent 100%),
    radial-gradient(2px 2px at 45% 15%, rgba(255,255,255,.2) 0%, transparent 100%),
    radial-gradient(3px 3px at 70% 40%, rgba(255,255,255,.25) 0%, transparent 100%),
    radial-gradient(2px 2px at 85% 25%, rgba(255,255,255,.2) 0%, transparent 100%),
    radial-gradient(1px 1px at 35% 55%, rgba(255,255,255,.15) 0%, transparent 100%),
    radial-gradient(2px 2px at 60% 70%, rgba(255,255,255,.2) 0%, transparent 100%),
    radial-gradient(1px 1px at 15% 80%, rgba(255,255,255,.15) 0%, transparent 100%);
  animation: qdf-snow 8s linear infinite;
}
@keyframes qdf-sky {
  0% { opacity: .6; }
  50% { opacity: .9; }
  100% { opacity: .7; }
}
@keyframes qdf-cliff {
  0%, 100% { transform: rotate(-4deg) scale(1); }
  50% { transform: rotate(-6deg) scale(1.02); }
}
@keyframes qdf-fall {
  0% { transform: translate(0, 0) rotate(180deg) scaleX(.9); opacity: 1; }
  20% { transform: translate(12px, 60px) rotate(160deg) scaleX(1); opacity: .9; }
  40% { transform: translate(-8px, 120px) rotate(200deg) scaleX(.85); opacity: .7; }
  60% { transform: translate(6px, 180px) rotate(175deg) scaleX(1); opacity: .5; }
  80% { transform: translate(-4px, 220px) rotate(190deg) scaleX(.9); opacity: .3; }
  100% { transform: translate(2px, 260px) rotate(180deg) scaleX(.95); opacity: 0; }
}
@keyframes qdf-mist {
  0% { transform: translateY(0) scaleX(1); opacity: .4; }
  50% { transform: translateY(-10px) scaleX(1.05); opacity: .6; }
  100% { transform: translateY(5px) scaleX(.98); opacity: .5; }
}
@keyframes qdf-blood {
  0% { transform: scale(1); opacity: .6; }
  100% { transform: scale(1.2); opacity: .9; }
}
@keyframes qdf-snow {
  0% { transform: translateY(0) translateX(0); }
  100% { transform: translateY(80vh) translateX(20px); }
}

/* children-kisses */
.scn-children-kisses {
  background:
    linear-gradient(180deg, #3a2a1a 0%, #2a1a0a 100%),
    radial-gradient(ellipse at 30% 70%, #c87a3a 0%, transparent 60%);
}
.scn-children-kisses .wall { position:absolute; inset:0 0 40% 0; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); }
.scn-children-kisses .floor { position:absolute; bottom:0; left:0; right:0; height:40%; background: linear-gradient(180deg, #2a1a0a 0%, #1a0a00 100%); border-radius: 20% 20% 0 0 / 10% 10% 0 0; box-shadow: inset 0 4px 8px rgba(0,0,0,0.6); }
.scn-children-kisses .window { position:absolute; top:10%; left:8%; width:80px; height:60px; background: linear-gradient(180deg, #1a1a3a 0%, #0a0a1a 100%); border: 4px solid #5a3a2a; border-radius: 4px; box-shadow: inset 0 0 12px #2a2a5a, 0 0 8px rgba(200,120,60,0.3); animation: ck-window 6s ease-in-out infinite; }
.scn-children-kisses .fireplace { position:absolute; bottom:20%; left:25%; width:60px; height:50px; background: linear-gradient(180deg, #6a3a1a 0%, #3a1a0a 100%); border-radius: 50% 50% 10% 10% / 30% 30% 10% 10%; box-shadow: inset 0 0 20px #c87a3a; animation: ck-fire 4s ease-in-out infinite alternate; }
.scn-children-kisses .chair { position:absolute; bottom:22%; right:20%; width:40px; height:50px; background: linear-gradient(180deg, #4a2a1a 0%, #2a1a0a 100%); border-radius: 10% 10% 20% 20% / 20% 20% 10% 10%; box-shadow: 0 4px 8px rgba(0,0,0,0.5); }
.scn-children-kisses .child-a { position:absolute; bottom:24%; left:38%; width:20px; height:30px; background: radial-gradient(ellipse at 50% 100%, #2a1a0a 0%, #1a0a00 100%); border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%; transform-origin: bottom center; animation: ck-child-a 3s ease-in-out infinite; }
.scn-children-kisses .child-b { position:absolute; bottom:24%; left:46%; width:20px; height:30px; background: radial-gradient(ellipse at 50% 100%, #2a1a0a 0%, #1a0a00 100%); border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%; transform-origin: bottom center; animation: ck-child-b 3s ease-in-out infinite alternate; }
.scn-children-kisses .glow { position:absolute; inset:0; background: radial-gradient(ellipse at 30% 70%, #c87a3a 0%, transparent 70%); mix-blend-mode: screen; opacity: 0.8; animation: ck-glow 4s ease-in-out infinite alternate; }
@keyframes ck-window { 0% { box-shadow: inset 0 0 12px #2a2a5a, 0 0 8px rgba(200,120,60,0.2); } 50% { box-shadow: inset 0 0 20px #3a3a6a, 0 0 16px rgba(200,120,60,0.5); } 100% { box-shadow: inset 0 0 12px #2a2a5a, 0 0 8px rgba(200,120,60,0.2); } }
@keyframes ck-fire { 0% { box-shadow: inset 0 0 20px #c87a3a; transform: scaleY(1); } 50% { box-shadow: inset 0 0 30px #e8a050; transform: scaleY(1.1); } 100% { box-shadow: inset 0 0 20px #c87a3a; transform: scaleY(1); } }
@keyframes ck-child-a { 0% { transform: translateX(0) rotate(0deg); } 25% { transform: translateX(4px) rotate(3deg); } 50% { transform: translateX(0) rotate(0deg); } 75% { transform: translateX(-4px) rotate(-3deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes ck-child-b { 0% { transform: translateX(0) rotate(0deg); } 25% { transform: translateX(-4px) rotate(-3deg); } 50% { transform: translateX(0) rotate(0deg); } 75% { transform: translateX(4px) rotate(3deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes ck-glow { 0% { opacity: 0.7; } 50% { opacity: 0.9; } 100% { opacity: 0.7; } }

/* uncle-theory */
.scn-uncle-theory {
  background:
    linear-gradient(180deg, #2a241a 0%, #1a1410 100%),
    radial-gradient(ellipse at 50% 80%, #c8a060 0%, transparent 50%);
}
.scn-uncle-theory .bg { position:absolute; inset:0; background: linear-gradient(180deg, #3a2a1a 0%, #1a1410 100%); }
.scn-uncle-theory .desk { position:absolute; bottom:15%; left:20%; right:20%; height:25%; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius: 4px 4px 0 0; box-shadow: 0 -4px 10px rgba(0,0,0,0.6); }
.scn-uncle-theory .lamp { position:absolute; bottom:38%; left:40%; width:12px; height:30px; background: linear-gradient(180deg, #6b4423 0%, #3a2a1a 100%); border-radius: 4px 4px 4px 4px; box-shadow: 0 0 20px rgba(200,160,96,0.6); animation: ut-lamp 5s ease-in-out infinite alternate; }
.scn-uncle-theory .papers { position:absolute; bottom:22%; left:35%; right:25%; height:10%; background: linear-gradient(135deg, #c8a060 0%, #a08040 100%); border-radius: 2px; box-shadow: 0 2px 6px rgba(0,0,0,0.4); transform: rotate(-2deg); animation: ut-papers 8s ease-in-out infinite; }
.scn-uncle-theory .figure { position:absolute; bottom:18%; left:50%; width:24px; height:40px; background: radial-gradient(ellipse at 50% 100%, #1a1410 0%, #0a0806 100%); border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%; transform-origin: bottom center; animation: ut-figure 6s ease-in-out infinite; }
.scn-uncle-theory .window-ut { position:absolute; top:10%; right:10%; width:60px; height:50px; background: linear-gradient(180deg, #0a0a1a 0%, #050510 100%); border: 3px solid #4a3a2a; border-radius: 4px; box-shadow: inset 0 0 15px #2a2a5a, 0 0 8px rgba(200,160,96,0.2); animation: ut-window 10s linear infinite; }
@keyframes ut-lamp { 0% { box-shadow: 0 0 20px rgba(200,160,96,0.6); } 50% { box-shadow: 0 0 30px rgba(200,160,96,0.8); } 100% { box-shadow: 0 0 20px rgba(200,160,96,0.6); } }
@keyframes ut-papers { 0% { transform: rotate(-2deg) translateY(0); } 50% { transform: rotate(1deg) translateY(-2px); } 100% { transform: rotate(-2deg) translateY(0); } }
@keyframes ut-figure { 0% { transform: rotate(0deg); } 25% { transform: rotate(2deg); } 50% { transform: rotate(0deg); } 75% { transform: rotate(-2deg); } 100% { transform: rotate(0deg); } }
@keyframes ut-window { 0% { box-shadow: inset 0 0 15px #2a2a5a, 0 0 8px rgba(200,160,96,0.2); } 50% { box-shadow: inset 0 0 25px #3a3a6a, 0 0 12px rgba(200,160,96,0.3); } 100% { box-shadow: inset 0 0 15px #2a2a5a, 0 0 8px rgba(200,160,96,0.2); } }

/* letters-kept */
.scn-letters-kept {
  background:
    linear-gradient(180deg, #3a2a1a 0%, #1a1008 100%),
    radial-gradient(ellipse at 50% 50%, #b8860b 0%, transparent 60%);
}
.scn-letters-kept .bg-lk { position:absolute; inset:0; background: linear-gradient(180deg, #2a1a0a 0%, #1a0a00 100%); }
.scn-letters-kept .drawer { position:absolute; bottom:20%; left:30%; right:30%; height:30%; background: linear-gradient(180deg, #4a2a1a 0%, #2a1a0a 100%); border-radius: 4px 4px 8px 8px; box-shadow: 0 -4px 12px rgba(0,0,0,0.7); }
.scn-letters-kept .letters-stack { position:absolute; bottom:30%; left:35%; right:35%; height:20%; background: linear-gradient(135deg, #c8a060 0%, #a08040 100%); border-radius: 2px; box-shadow: 0 2px 6px rgba(0,0,0,0.5); transform: rotate(4deg); animation: lk-stack 12s ease-in-out infinite alternate; }
.scn-letters-kept .hand { position:absolute; bottom:25%; left:55%; width:16px; height:28px; background: radial-gradient(ellipse at 50% 100%, #5a3a2a 0%, #3a2a1a 100%); border-radius: 30% 30% 40% 40% / 50% 50% 30% 30%; transform-origin: bottom center; animation: lk-hand 4s ease-in-out infinite; }
.scn-letters-kept .candle-lk { position:absolute; bottom:22%; left:20%; width:8px; height:30px; background: linear-gradient(180deg, #e8d0b0 0%, #b89870 100%); border-radius: 4px 4px 2px 2px; box-shadow: 0 0 12px #ffd060; }
.scn-letters-kept .flame-lk { position:absolute; bottom:50%; left:20%; width:6px; height:10px; background: radial-gradient(circle at 50% 100%, #ffd060 0%, #ffa030 70%); border-radius: 50%; box-shadow: 0 0 20px #ffd060; animation: lk-flame 1.5s ease-in-out infinite alternate; }
@keyframes lk-stack { 0% { transform: rotate(4deg) translateY(0); } 50% { transform: rotate(-2deg) translateY(-3px); } 100% { transform: rotate(4deg) translateY(0); } }
@keyframes lk-hand { 0% { transform: rotate(-10deg) translateX(0); } 50% { transform: rotate(0deg) translateX(5px); } 100% { transform: rotate(-10deg) translateX(0); } }
@keyframes lk-flame { 0% { transform: scaleY(1) translateY(0); opacity: 0.9; } 50% { transform: scaleY(1.4) translateY(-2px); opacity: 1; } 100% { transform: scaleY(1) translateY(0); opacity: 0.9; } }

/* letters-beautiful */
.scn-letters-beautiful {
  background:
    linear-gradient(180deg, #3a2a1a 0%, #1a1008 100%),
    radial-gradient(ellipse at 50% 50%, #d4af37 0%, transparent 60%);
}
.scn-letters-beautiful .bg-lb { position:absolute; inset:0; background: linear-gradient(180deg, #2a1a0a 0%, #1a0a00 100%); }
.scn-letters-beautiful .desk-lb { position:absolute; bottom:15%; left:15%; right:15%; height:20%; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius: 4px 4px 0 0; box-shadow: 0 -4px 10px rgba(0,0,0,0.6); }
.scn-letters-beautiful .letter-main { position:absolute; bottom:25%; left:35%; width:40px; height:30px; background: linear-gradient(135deg, #e8d0b0 0%, #c8a060 100%); border-radius: 2px; box-shadow: 0 4px 12px rgba(0,0,0,0.5), 0 0 12px rgba(212,175,55,0.3); transform: rotate(-5deg); animation: lb-main 10s ease-in-out infinite alternate; }
.scn-letters-beautiful .letter-side { position:absolute; bottom:30%; left:50%; width:30px; height:25px; background: linear-gradient(135deg, #dcc8a0 0%, #b89870 100%); border-radius: 2px; box-shadow: 0 2px 8px rgba(0,0,0,0.4); transform: rotate(8deg); animation: lb-side 12s ease-in-out infinite alternate; }
.scn-letters-beautiful .ribbon { position:absolute; bottom:28%; left:38%; width:20px; height:4px; background: linear-gradient(90deg, #8a5a3a 0%, #c87a3a 50%, #8a5a3a 100%); border-radius: 2px; transform: rotate(10deg); animation: lb-ribbon 6s ease-in-out infinite; }
.scn-letters-beautiful .candle-lb { position:absolute; bottom:20%; left:20%; width:8px; height:28px; background: linear-gradient(180deg, #e8d0b0 0%, #b89870 100%); border-radius: 4px 4px 2px 2px; box-shadow: 0 0 10px #ffd060; }
.scn-letters-beautiful .glow-lb { position:absolute; inset:0; background: radial-gradient(ellipse at 50% 60%, #d4af37 0%, transparent 60%); mix-blend-mode: screen; opacity: 0.6; animation: lb-glow 5s ease-in-out infinite alternate; }
@keyframes lb-main { 0% { transform: rotate(-5deg) translateY(0); } 50% { transform: rotate(2deg) translateY(-4px); box-shadow: 0 4px 12px rgba(0,0,0,0.5), 0 0 20px rgba(212,175,55,0.5); } 100% { transform: rotate(-5deg) translateY(0); } }
@keyframes lb-side { 0% { transform: rotate(8deg) translateY(0); } 50% { transform: rotate(-3deg) translateY(-2px); } 100% { transform: rotate(8deg) translateY(0); } }
@keyframes lb-ribbon { 0% { opacity: 0.8; transform: rotate(10deg) scaleX(1); } 50% { opacity: 1; transform: rotate(15deg) scaleX(1.1); } 100% { opacity: 0.8; transform: rotate(10deg) scaleX(1); } }
@keyframes lb-glow { 0% { opacity: 0.5; } 50% { opacity: 0.7; } 100% { opacity: 0.5; } }

.scn-revolution-question {
  background:
    linear-gradient(180deg, #f5e6c8 0%, #d4a373 50%, #b5835a 100%),
    radial-gradient(circle at 50% 100%, #e6c9a8 0%, transparent 70%);
}
.scn-revolution-question .stage-floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 15%;
  background: linear-gradient(180deg, #8b6f47 0%, #5e4b33 100%);
  border-radius: 20% 20% 0 0;
  animation: rq-floor 8s ease-in-out infinite alternate;
}
.scn-revolution-question .curtain {
  position: absolute; top: 0; bottom: 15%; width: 45%;
  background: linear-gradient(135deg, #a0461a 0%, #5e1a1d 40%, #7a2e1f 80%);
  border-radius: 0 0 30% 30% / 0 0 50% 50%;
}
.scn-revolution-question .curtain-left {
  left: 0;
  transform-origin: left center;
  animation: rq-curtain-l 12s ease-in-out infinite alternate;
}
.scn-revolution-question .curtain-right {
  right: 0;
  transform-origin: right center;
  animation: rq-curtain-r 12s ease-in-out infinite alternate;
}
.scn-revolution-question .figure {
  position: absolute; bottom: 15%; left: 50%; width: 40px; height: 70px;
  background: linear-gradient(180deg, #2c2c2c 0%, #111 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform: translateX(-50%);
  animation: rq-figure 6s ease-in-out infinite;
}
.scn-revolution-question .light-beam {
  position: absolute; top: 10%; left: 30%; width: 40%; height: 60%;
  background: linear-gradient(180deg, rgba(255,230,180,0.4) 0%, transparent 100%);
  clip-path: polygon(50% 0%, 0% 100%, 100% 100%);
  animation: rq-beam 5s ease-in-out infinite alternate;
}
.scn-revolution-question .particle {
  position: absolute; width: 6px; height: 6px;
  background: #f0d68a; border-radius: 50%;
  animation: rq-particle 4s ease-in-out infinite;
}
.scn-revolution-question .particle-1 { top: 30%; left: 35%; animation-delay: 0.5s; }
.scn-revolution-question .particle-2 { top: 40%; left: 55%; animation-delay: 2s; }

@keyframes rq-floor { 0% { opacity: 0.8; transform: scaleY(1); } 50% { opacity: 1; transform: scaleY(1.05); } 100% { opacity: 0.9; transform: scaleY(1); } }
@keyframes rq-curtain-l { 0% { transform: skewX(0deg); } 50% { transform: skewX(8deg); } 100% { transform: skewX(0deg); } }
@keyframes rq-curtain-r { 0% { transform: skewX(0deg); } 50% { transform: skewX(-8deg); } 100% { transform: skewX(0deg); } }
@keyframes rq-figure { 0% { transform: translateX(-50%) translateY(0) rotate(0deg); } 50% { transform: translateX(-45%) translateY(-4px) rotate(2deg); } 100% { transform: translateX(-50%) translateY(0) rotate(0deg); } }
@keyframes rq-beam { 0% { opacity: 0.2; transform: scaleX(1); } 50% { opacity: 0.6; transform: scaleX(1.1); } 100% { opacity: 0.3; transform: scaleX(1); } }
@keyframes rq-particle { 0% { transform: translateY(0) translateX(0); opacity: 0; } 50% { transform: translateY(-30px) translateX(15px); opacity: 1; } 100% { transform: translateY(-60px) translateX(-10px); opacity: 0; } }

.scn-school-question {
  background:
    linear-gradient(180deg, #fdfdf0 0%, #fce4ec 40%, #f8bbd0 100%),
    radial-gradient(ellipse at 50% 100%, #f48fb1 0%, transparent 80%);
}
.scn-school-question .sky {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(180deg, #fff9e6 0%, #f8e8c0 70%);
  animation: sq-sky 15s ease-in-out infinite alternate;
}
.scn-school-question .grass {
  position: absolute; bottom: 0; left: 0; right: 0; height: 40%;
  background: linear-gradient(180deg, #a8d5a2 0%, #6aa84f 100%);
  border-radius: 60% 60% 0 0 / 80% 80% 0 0;
}
.scn-school-question .rose-bush {
  position: absolute; bottom: 20%; left: 15%; width: 100px; height: 60px;
  background: radial-gradient(ellipse at 30% 70%, #c8553d 0%, #3e7a34 80%);
  border-radius: 50% 50% 40% 40%;
  animation: sq-bush 6s ease-in-out infinite;
}
.scn-school-question .child {
  position: absolute; bottom: 18%; left: 38%; width: 28px; height: 50px;
  background: linear-gradient(180deg, #f5e6d3 0%, #d9b38c 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: sq-child 4s ease-in-out infinite;
}
.scn-school-question .governess {
  position: absolute; bottom: 20%; left: 58%; width: 36px; height: 64px;
  background: linear-gradient(180deg, #e6d5c3 0%, #c4a882 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: sq-gov 5s ease-in-out infinite;
}
.scn-school-question .rose-petal {
  position: absolute; width: 12px; height: 10px;
  background: #e57373; border-radius: 50% 0 50% 0;
  opacity: 0.8;
}
.scn-school-question .petal-1 {
  top: 30%; left: 20%;
  animation: sq-petal1 8s linear infinite;
}
.scn-school-question .petal-2 {
  top: 35%; left: 50%;
  animation: sq-petal2 10s linear infinite;
}

@keyframes sq-sky { 0% { opacity: 0.7; } 50% { opacity: 1; } 100% { opacity: 0.8; } }
@keyframes sq-bush { 0% { transform: scale(1); } 50% { transform: scale(1.05); } 100% { transform: scale(1); } }
@keyframes sq-child { 0% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-3px) rotate(2deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes sq-gov { 0% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-2px) rotate(-1deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes sq-petal1 { 0% { transform: translate(0, 0) rotate(0deg); } 30% { transform: translate(-15px, 40px) rotate(30deg); } 60% { transform: translate(10px, 80px) rotate(-20deg); } 100% { transform: translate(-5px, 130px) rotate(10deg); } }
@keyframes sq-petal2 { 0% { transform: translate(0, 0) rotate(0deg); } 40% { transform: translate(20px, 50px) rotate(-40deg); } 70% { transform: translate(-10px, 100px) rotate(20deg); } 100% { transform: translate(5px, 150px) rotate(-10deg); } }

.scn-new-between-us {
  background:
    linear-gradient(180deg, #fff8e7 0%, #f0d9b5 100%),
    radial-gradient(ellipse at 50% 30%, #ffe099 0%, transparent 60%);
}
.scn-new-between-us .window-frame {
  position: absolute; top: 0; left: 50%; width: 60%; height: 60%;
  transform: translateX(-50%);
  border: 8px solid #5e4b33;
  box-shadow: inset 0 0 40px rgba(0,0,0,0.3);
  background: transparent;
  border-radius: 4px;
}
.scn-new-between-us .window-light {
  position: absolute; top: 0; left: 50%; width: 60%; height: 60%;
  transform: translateX(-50%);
  background: radial-gradient(ellipse at 50% 40%, rgba(255,230,150,0.6) 0%, transparent 70%);
  animation: nbu-light 6s ease-in-out infinite alternate;
}
.scn-new-between-us .figure {
  position: absolute; bottom: 15%; width: 30px; height: 60px;
  background: linear-gradient(180deg, #2c2c2c 0%, #111 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
}
.scn-new-between-us .figure-left {
  left: 32%;
  animation: nbu-figure-l 5s ease-in-out infinite;
}
.scn-new-between-us .figure-right {
  left: 58%;
  animation: nbu-figure-r 5s ease-in-out infinite;
}
.scn-new-between-us .shadow {
  position: absolute; bottom: 12%; left: 30%; width: 40%; height: 6px;
  background: rgba(0,0,0,0.15);
  border-radius: 50%;
  filter: blur(3px);
  animation: nbu-shadow 5s ease-in-out infinite;
}
.scn-new-between-us .dust {
  position: absolute; width: 5px; height: 5px;
  background: rgba(255,230,180,0.8); border-radius: 50%;
  animation: nbu-dust 12s linear infinite;
}
.scn-new-between-us .dust-1 { top: 35%; left: 40%; animation-delay: 0s; }
.scn-new-between-us .dust-2 { top: 45%; left: 55%; animation-delay: 4s; }

@keyframes nbu-light { 0% { opacity: 0.4; transform: scale(1); } 50% { opacity: 0.8; transform: scale(1.05); } 100% { opacity: 0.5; transform: scale(1); } }
@keyframes nbu-figure-l { 0% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-2px) rotate(2deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes nbu-figure-r { 0% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-3px) rotate(-2deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes nbu-shadow { 0% { transform: scaleX(1); opacity: 0.15; } 50% { transform: scaleX(1.2); opacity: 0.25; } 100% { transform: scaleX(1); opacity: 0.15; } }
@keyframes nbu-dust { 0% { transform: translate(0, 0) rotate(0deg); opacity: 0; } 20% { opacity: 1; } 80% { opacity: 1; } 100% { transform: translate(40px, -60px) rotate(360deg); opacity: 0; } }

.scn-familiar-my-dear {
  background:
    linear-gradient(180deg, #fde2e4 0%, #f5c6a0 50%, #d9a066 100%),
    radial-gradient(circle at 40% 60%, #f4a460 0%, transparent 60%);
}
.scn-familiar-my-dear .room-wall {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #e8c9a0 0%, #d4a373 100%);
  border-radius: 0 0 20% 20%;
}
.scn-familiar-my-dear .desk {
  position: absolute; bottom: 10%; left: 30%; width: 40%; height: 8%;
  background: linear-gradient(180deg, #8b6f47 0%, #5e4b33 100%);
  border-radius: 4px;
  transform: perspective(400px) rotateX(10deg);
  animation: fmd-desk 10s ease-in-out infinite alternate;
}
.scn-familiar-my-dear .book {
  position: absolute; bottom: 15%; left: 45%; width: 30px; height: 22px;
  background: linear-gradient(135deg, #c8553d 0%, #8b3a2a 100%);
  border-radius: 2px;
  transform: rotate(5deg);
  box-shadow: 2px 2px 4px rgba(0,0,0,0.3);
}
.scn-familiar-my-dear .lamp {
  position: absolute; bottom: 28%; left: 42%; width: 14px; height: 24px;
  background: #b8860b;
  border-radius: 40% 40% 10% 10%;
  transform-origin: bottom center;
  animation: fmd-lamp 4s ease-in-out infinite;
}
.scn-familiar-my-dear .teacher {
  position: absolute; bottom: 15%; left: 24%; width: 34px; height: 60px;
  background: linear-gradient(180deg, #f5e6d3 0%, #d9b38c 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: fmd-teacher 6s ease-in-out infinite;
}
.scn-familiar-my-dear .pupil {
  position: absolute; bottom: 13%; left: 58%; width: 26px; height: 46px;
  background: linear-gradient(180deg, #f0dcc8 0%, #c4a882 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: fmd-pupil 5s ease-in-out infinite;
}
.scn-familiar-my-dear .warm-glow {
  position: absolute; bottom: 25%; left: 38%; width: 80px; height: 80px;
  background: radial-gradient(circle, rgba(255,200,100,0.3) 0%, transparent 70%);
  border-radius: 50%;
  animation: fmd-glow 3s ease-in-out infinite alternate;
}
.scn-familiar-my-dear .ornament {
  position: absolute; width: 8px; height: 8px;
  background: #d2b48c; border-radius: 50%;
  animation: fmd-ornament 8s linear infinite;
}
.scn-familiar-my-dear .ornament-1 { top: 20%; left: 30%; }
.scn-familiar-my-dear .ornament-2 { top: 25%; left: 70%; animation-delay: 4s; }

@keyframes fmd-desk { 0% { transform: perspective(400px) rotateX(10deg); } 50% { transform: perspective(400px) rotateX(12deg); } 100% { transform: perspective(400px) rotateX(10deg); } }
@keyframes fmd-lamp { 0% { transform: rotate(-2deg); } 50% { transform: rotate(2deg); } 100% { transform: rotate(-2deg); } }
@keyframes fmd-teacher { 0% { transform: rotate(0deg); } 50% { transform: rotate(3deg); } 100% { transform: rotate(0deg); } }
@keyframes fmd-pupil { 0% { transform: rotate(0deg); } 50% { transform: rotate(-2deg); } 100% { transform: rotate(0deg); } }
@keyframes fmd-glow { 0% { opacity: 0.6; transform: scale(1); } 50% { opacity: 1; transform: scale(1.1); } 100% { opacity: 0.7; transform: scale(1); } }
@keyframes fmd-ornament { 0% { transform: translateY(0); opacity: 0; } 50% { transform: translateY(-20px); opacity: 1; } 100% { transform: translateY(-40px); opacity: 0; } }

/* Scene 1: obsession-reflections — dim interior, mirror, pacing figure */
.scn-obsession-reflections {
  background:
    linear-gradient(180deg, #1a1a2e 0%, #2a2038 30%, #1e1a2a 70%, #14111e 100%),
    radial-gradient(ellipse at 50% 100%, #2a2038 0%, transparent 70%);
}
.scn-obsession-reflections .wall {
  position: absolute; inset: 0 0 35% 0;
  background: linear-gradient(180deg, #2a2038 0%, #221a30 60%, #1a1428 100%);
  animation: obs-wall 12s ease-in-out infinite alternate;
}
.scn-obsession-reflections .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 35%;
  background: linear-gradient(180deg, #2a1e30 0%, #1a1220 50%, #100e18 100%);
  border-radius: 30% 70% 0 0 / 20% 40% 0 0;
  box-shadow: inset 0 8px 20px rgba(0,0,0,.5);
  animation: obs-floor 20s ease-in-out infinite alternate;
}
.scn-obsession-reflections .window {
  position: absolute; top: 12%; left: 30%; width: 40%; height: 45%;
  background: linear-gradient(135deg, #0a0a1a 0%, #12102a 100%);
  border: 2px solid #3a2a4a;
  border-radius: 2% 2% 4% 4%;
  box-shadow: inset 0 0 30px rgba(0,0,0,.6), 0 0 10px rgba(80,60,120,.3);
  animation: obs-window 15s ease-in-out infinite;
}
.scn-obsession-reflections .mirror {
  position: absolute; top: 20%; right: 15%; width: 25%; height: 40%;
  background: linear-gradient(135deg, #2a2a4a 0%, #3a3a5a 30%, #2a2a4a 100%);
  border: 1px solid #4a3a5a;
  border-radius: 2%;
  box-shadow: inset 0 0 40px rgba(0,0,0,.3), 0 0 20px rgba(80,60,120,.2);
  animation: obs-mirror 8s ease-in-out infinite alternate;
}
.scn-obsession-reflections .figure {
  position: absolute; bottom: 30%; left: 10%; width: 20px; height: 50px;
  background: linear-gradient(180deg, #1a1a2e 0%, #0e0e1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: obs-figure-walk 6s ease-in-out infinite;
}
.scn-obsession-reflections .lamp {
  position: absolute; bottom: 40%; left: 60%; width: 4px; height: 12px;
  background: #3a2a1a;
  border-radius: 20% 20% 10% 10%;
  box-shadow: 0 0 20px 6px rgba(200,150,80,.15);
  animation: obs-lamp-flicker 2s ease-in-out infinite alternate;
}
.scn-obsession-reflections .shadow {
  position: absolute; bottom: 22%; left: 5%; width: 40px; height: 30px;
  background: rgba(0,0,0,.4);
  filter: blur(6px);
  border-radius: 50%;
  animation: obs-shadow-sway 6s ease-in-out infinite;
}
.scn-obsession-reflections .reflection {
  position: absolute; top: 22%; right: 18%; width: 18px; height: 40px;
  background: linear-gradient(180deg, #1a1a2e 0%, #0e0e1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  opacity: .5;
  transform: scaleX(-1);
  animation: obs-reflection-shift 6s ease-in-out infinite;
}
@keyframes obs-wall { 0% { opacity: .7 } 50% { opacity: 1 } 100% { opacity: .8 } }
@keyframes obs-floor { 0% { transform: translateY(0) } 50% { transform: translateY(-2px) } 100% { transform: translateY(0) } }
@keyframes obs-window { 0%,100% { opacity: .6 } 50% { opacity: .9 } }
@keyframes obs-mirror { 0% { opacity: .5; box-shadow: inset 0 0 40px rgba(0,0,0,.3), 0 0 20px rgba(80,60,120,.2) } 50% { opacity: .7; box-shadow: inset 0 0 60px rgba(0,0,0,.4), 0 0 30px rgba(80,60,120,.3) } 100% { opacity: .5; box-shadow: inset 0 0 40px rgba(0,0,0,.3), 0 0 20px rgba(80,60,120,.2) } }
@keyframes obs-figure-walk { 0% { transform: translateX(0) translateY(0) rotate(-2deg) } 25% { transform: translateX(20px) translateY(-1px) rotate(1deg) } 50% { transform: translateX(40px) translateY(0) rotate(-1deg) } 75% { transform: translateX(60px) translateY(-1px) rotate(2deg) } 100% { transform: translateX(80px) translateY(0) rotate(0) } }
@keyframes obs-lamp-flicker { 0% { box-shadow: 0 0 15px 4px rgba(200,150,80,.1); opacity: .6 } 50% { box-shadow: 0 0 30px 10px rgba(200,150,80,.25); opacity: 1 } 100% { box-shadow: 0 0 18px 5px rgba(200,150,80,.12); opacity: .7 } }
@keyframes obs-shadow-sway { 0% { transform: translateX(0) scale(1) } 25% { transform: translateX(8px) scale(1.05) } 50% { transform: translateX(16px) scale(.95) } 75% { transform: translateX(24px) scale(1.02) } 100% { transform: translateX(32px) scale(1) } }
@keyframes obs-reflection-shift { 0% { transform: scaleX(-1) translateX(0) } 50% { transform: scaleX(-1) translateX(-3px) } 100% { transform: scaleX(-1) translateX(0) } }

/* Scene 2: imagined-cries — water surface, half-submerged figures, ripples */
.scn-imagined-cries {
  background:
    linear-gradient(180deg, #1a2a3a 0%, #0e1a2e 40%, #0a1220 70%, #060a14 100%),
    radial-gradient(ellipse at 50% 60%, #1a2a3a 0%, transparent 80%);
}
.scn-imagined-cries .water {
  position: absolute; inset: 40% 0 0 0;
  background: linear-gradient(180deg, #0a1a2e 0%, #060e1a 100%);
  animation: ic-water 15s ease-in-out infinite alternate;
}
.scn-imagined-cries .surface {
  position: absolute; top: 38%; left: 0; right: 0; height: 6%;
  background: linear-gradient(180deg, #1a3a4e 0%, #0e2a3a 100%);
  border-radius: 40% 60% 30% 70% / 100% 100% 0 0;
  filter: blur(2px);
  animation: ic-surface 8s ease-in-out infinite;
}
.scn-imagined-cries .ripple-a {
  position: absolute; top: 45%; left: 20%; width: 30px; height: 6px;
  border: 1px solid rgba(80,140,180,.15);
  border-radius: 50%;
  filter: blur(1px);
  animation: ic-ripple-expand 5s ease-out infinite;
}
.scn-imagined-cries .ripple-b {
  position: absolute; top: 55%; right: 25%; width: 40px; height: 8px;
  border: 1px solid rgba(80,140,180,.12);
  border-radius: 50%;
  filter: blur(1px);
  animation: ic-ripple-expand 6s ease-out infinite 2s;
}
.scn-imagined-cries .figure-left {
  position: absolute; top: 30%; left: 20%; width: 22px; height: 50px;
  background: linear-gradient(180deg, #1a1a2e 0%, #0e0e1a 60%, #0a0a14 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform: rotate(10deg);
  animation: ic-figure-emerge 7s ease-in-out infinite;
}
.scn-imagined-cries .figure-right {
  position: absolute; top: 35%; right: 15%; width: 20px; height: 45px;
  background: linear-gradient(180deg, #1a1a2e 0%, #0e0e1a 50%, #0a0a14 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform: rotate(-8deg) scaleX(-1);
  opacity: .7;
  animation: ic-figure-submerge 9s ease-in-out infinite 1s;
}
.scn-imagined-cries .hands {
  position: absolute; top: 42%; left: 45%; width: 30px; height: 16px;
  background: transparent;
  border-bottom: 3px solid #1a1a2e;
  border-radius: 0 0 50% 50%;
  animation: ic-hands-reach 4s ease-in-out infinite alternate;
}
.scn-imagined-cries .shimmer {
  position: absolute; top: 40%; left: 35%; width: 60px; height: 40px;
  background: radial-gradient(ellipse at 50% 50%, rgba(100,180,220,.08) 0%, transparent 70%);
  filter: blur(8px);
  animation: ic-shimmer-pulse 6s ease-in-out infinite;
}
@keyframes ic-water { 0% { opacity: .8 } 50% { opacity: 1 } 100% { opacity: .85 } }
@keyframes ic-surface { 0% { transform: translateY(0) scaleY(1) } 50% { transform: translateY(-3px) scaleY(1.2) } 100% { transform: translateY(0) scaleY(1) } }
@keyframes ic-ripple-expand { 0% { transform: scale(1); opacity: .4 } 100% { transform: scale(3); opacity: 0 } }
@keyframes ic-figure-emerge { 0% { transform: rotate(10deg) translateY(20px); opacity: .3 } 50% { transform: rotate(5deg) translateY(0); opacity: .8 } 100% { transform: rotate(10deg) translateY(20px); opacity: .3 } }
@keyframes ic-figure-submerge { 0% { transform: rotate(-8deg) scaleX(-1) translateY(0); opacity: .7 } 50% { transform: rotate(-4deg) scaleX(-1) translateY(15px); opacity: .3 } 100% { transform: rotate(-8deg) scaleX(-1) translateY(0); opacity: .7 } }
@keyframes ic-hands-reach { 0% { transform: translateY(0) rotate(0) } 50% { transform: translateY(-5px) rotate(5deg) } 100% { transform: translateY(0) rotate(0) } }
@keyframes ic-shimmer-pulse { 0% { opacity: .2; transform: scale(1) } 50% { opacity: .6; transform: scale(1.3) } 100% { opacity: .2; transform: scale(1) } }

/* Scene 3: quint-remembrance — starlit night, boy asleep, two figures outside window */
.scn-quint-remembrance {
  background:
    linear-gradient(180deg, #0a0a1a 0%, #14102a 40%, #1a142e 70%, #0e0a1e 100%),
    radial-gradient(ellipse at 50% 30%, #14102a 0%, transparent 70%),
    radial-gradient(circle at 80% 20%, #1a1a3e 0%, transparent 50%);
}
.scn-quint-remembrance .night-sky {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(180deg, #0a0a1a 0%, #14102a 60%, #1a142e 100%);
  animation: qr-sky 20s ease-in-out infinite alternate;
}
.scn-quint-remembrance .stars {
  position: absolute; top: 5%; left: 10%; width: 4px; height: 4px;
  background: #c8d0f0;
  border-radius: 50%;
  box-shadow: 
    30px 20px 0 0 rgba(200,208,240,.6),
    70px 50px 0 1px rgba(200,208,240,.3),
    120px 30px 0 0 rgba(200,208,240,.5),
    200px 60px 0 0 rgba(200,208,240,.4),
    250px 15px 0 1px rgba(200,208,240,.3),
    310px 45px 0 0 rgba(200,208,240,.5);
  animation: qr-twinkle 4s ease-in-out infinite alternate;
}
.scn-quint-remembrance .window-frame {
  position: absolute; top: 10%; left: 35%; width: 30%; height: 50%;
  border: 3px solid #2a2030;
  border-radius: 2%;
  background: linear-gradient(180deg, #0a0a1a 0%, #0e0a22 100%);
  box-shadow: inset 0 0 40px rgba(0,0,0,.5), 0 0 20px rgba(40,30,60,.3);
}
.scn-quint-remembrance .boy-asleep {
  position: absolute; bottom: 32%; left: 40%; width: 20px; height: 30px;
  background: linear-gradient(180deg, #1a1a2e 0%, #0e0e1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform: rotate(5deg);
  animation: qr-boy-breathe 4s ease-in-out infinite;
}
.scn-quint-remembrance .figure-outside-a {
  position: absolute; top: 25%; left: 25%; width: 18px; height: 45px;
  background: linear-gradient(180deg, #0e0e1a 0%, #06060e 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform: rotate(3deg);
  animation: qr-figure-drift 12s ease-in-out infinite;
}
.scn-quint-remembrance .figure-outside-b {
  position: absolute; top: 28%; right: 22%; width: 16px; height: 40px;
  background: linear-gradient(180deg, #0e0e1a 0%, #06060e 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform: rotate(-2deg);
  opacity: .7;
  animation: qr-figure-drift 14s ease-in-out infinite 3s;
}
.scn-quint-remembrance .curtain {
  position: absolute; top: 10%; left: 32%; width: 6%; height: 50%;
  background: linear-gradient(180deg, #1a142e 0%, #0e0a1e 100%);
  border-radius: 2%;
  filter: blur(1px);
  animation: qr-curtain-stir 7s ease-in-out infinite;
}
.scn-quint-remembrance .shadow-on-wall {
  position: absolute; bottom: 25%; right: 5%; width: 30px; height: 40px;
  background: rgba(0,0,0,.3);
  filter: blur(8px);
  border-radius: 30% 70% 50% 50% / 60% 60% 40% 40%;
  animation: qr-shadow-move 9s ease-in-out infinite;
}
@keyframes qr-sky { 0% { opacity: .6 } 50% { opacity: 1 } 100% { opacity: .7 } }
@keyframes qr-twinkle { 0% { opacity: .3; transform: scale(1) } 50% { opacity: 1; transform: scale(1.5) } 100% { opacity: .3; transform: scale(1) } }
@keyframes qr-boy-breathe { 0% { transform: rotate(5deg) scale(1) } 50% { transform: rotate(3deg) scale(1.02) } 100% { transform: rotate(5deg) scale(1) } }
@keyframes qr-figure-drift { 0% { transform: rotate(3deg) translateY(0) } 50% { transform: rotate(-2deg) translateY(-8px) } 100% { transform: rotate(3deg) translateY(0) } }
@keyframes qr-curtain-stir { 0% { transform: translateX(0) } 50% { transform: translateX(-4px) } 100% { transform: translateX(0) } }
@keyframes qr-shadow-move { 0% { transform: translateY(0) scale(1) } 50% { transform: translateY(-6px) scale(1.05) } 100% { transform: translateY(0) scale(1) } }

/* Scene 4: induction-nerves — dim interior, figure pacing/rehearsing, lamp swinging, shadows */
.scn-induction-nerves {
  background:
    linear-gradient(180deg, #1a1424 0%, #241a30 40%, #1a1220 70%, #0e0a16 100%),
    radial-gradient(ellipse at 60% 80%, #2a1e3a 0%, transparent 60%);
}
.scn-induction-nerves .room-wall {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(90deg, #1a1424 0%, #221830 50%, #1a1424 100%);
  animation: in-wall 14s ease-in-out infinite alternate;
}
.scn-induction-nerves .desk {
  position: absolute; bottom: 25%; left: 10%; right: 60%; height: 12%;
  background: linear-gradient(180deg, #2a1e30 0%, #1a1220 100%);
  border-radius: 2% 2% 0 0;
  box-shadow: 0 4px 10px rgba(0,0,0,.4);
  animation: in-desk 8s ease-in-out infinite;
}
.scn-induction-nerves .figure-pacing {
  position: absolute; bottom: 28%; left: 15%; width: 22px; height: 55px;
  background: linear-gradient(180deg, #1a1a2e 0%, #0e0e1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: in-figure-pace 5s ease-in-out infinite;
}
.scn-induction-nerves .lamp-swing {
  position: absolute; top: 15%; left: 30%; width: 6px; height: 30px;
  background: linear-gradient(180deg, #3a2a1a 0%, #2a1a0e 100%);
  border-radius: 10% 10% 0 0;
  transform-origin: top center;
  box-shadow: 0 0 20px 4px rgba(200,150,80,.1);
  animation: in-lamp-swing 3s ease-in-out infinite;
}
.scn-induction-nerves .shadow-dance {
  position: absolute; bottom: 22%; left: 10%; width: 50px; height: 40px;
  background: rgba(0,0,0,.35);
  filter: blur(8px);
  border-radius: 40% 60% 30% 70% / 50% 50% 50% 50%;
  animation: in-shadow-dance 5s ease-in-out infinite;
}
.scn-induction-nerves .papers {
  position: absolute; bottom: 28%; left: 12%; width: 20px; height: 8px;
  background: #3a2a3a;
  border-radius: 5% 5% 10% 10%;
  transform: rotate(-5deg);
  box-shadow: 4px -2px 0 #2a1a2a, 8px 0 0 #3a2a3a;
  animation: in-papers-rustle 4s ease-in-out infinite alternate;
}
.scn-induction-nerves .door {
  position: absolute; top: 5%; right: 10%; width: 25%; height: 70%;
  background: linear-gradient(180deg, #1a1424 0%, #120e1e 100%);
  border: 1px solid #2a2030;
  border-radius: 2%;
  box-shadow: inset 0 0 20px rgba(0,0,0,.3);
  animation: in-door 20s ease-in-out infinite;
}
.scn-induction-nerves .book {
  position: absolute; bottom: 26%; left: 18%; width: 8px; height: 14px;
  background: linear-gradient(180deg, #2a1a2a 0%, #1a0e1a 100%);
  border-radius: 5% 5% 10% 10%;
  transform: rotate(15deg);
  animation: in-book 6s ease-in-out infinite;
}
@keyframes in-wall { 0% { opacity: .7 } 50% { opacity: 1 } 100% { opacity: .8 } }
@keyframes in-desk { 0% { transform: translateY(0) } 50% { transform: translateY(-2px) } 100% { transform: translateY(0) } }
@keyframes in-figure-pace { 0% { transform: translateX(0) rotate(-2deg) } 25% { transform: translateX(15px) rotate(1deg) } 50% { transform: translateX(30px) rotate(-1deg) } 75% { transform: translateX(45px) rotate(2deg) } 100% { transform: translateX(60px) rotate(0) } }
@keyframes in-lamp-swing { 0% { transform: rotate(-4deg) } 25% { transform: rotate(6deg) } 50% { transform: rotate(-5deg) } 75% { transform: rotate(7deg) } 100% { transform: rotate(-4deg) } }
@keyframes in-shadow-dance { 0% { transform: translateX(0) scale(1); opacity: .3 } 50% { transform: translateX(15px) scale(1.1); opacity: .5 } 100% { transform: translateX(0) scale(1); opacity: .3 } }
@keyframes in-papers-rustle { 0% { transform: rotate(-5deg) translateY(0) } 50% { transform: rotate(0deg) translateY(-2px) } 100% { transform: rotate(-5deg) translateY(0) } }
@keyframes in-door { 0%,100% { opacity: .8 } 50% { opacity: .6 } }
@keyframes in-book { 0% { transform: rotate(15deg) } 50% { transform: rotate(22deg) } 100% { transform: rotate(15deg) } }

/* floras-hard-glare */
.scn-floras-hard-glare {
  background: linear-gradient(180deg, #564d5e 0%, #3a3340 40%, #2b2632 100%), radial-gradient(ellipse at 50% 30%, #6a5f73 0%, transparent 60%);
}
.scn-floras-hard-glare .sk {
  position: absolute; inset: 0 0 55% 0;
  background: linear-gradient(180deg, #5c5267 0%, #423b4a 60%, transparent 100%);
  animation: fhg-sky 8s ease-in-out infinite alternate;
}
.scn-floras-hard-glare .hll {
  position: absolute; bottom: 40%; left: 10%; right: 10%; height: 25%;
  background: linear-gradient(180deg, #4e4455 0%, #362f3c 100%);
  border-radius: 60% 40% 0 0 / 80% 50% 0 0;
  box-shadow: inset 0 6px 15px rgba(0,0,0,.5);
  animation: fhg-hills 15s ease-in-out infinite alternate;
}
.scn-floras-hard-glare .fig {
  position: absolute; bottom: 30%; left: 30%; width: 120px; height: 200px;
  background: linear-gradient(135deg, #2d242e 0%, #1b141d 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%;
  transform-origin: bottom center;
  animation: fhg-fig 4s ease-in-out infinite;
}
.scn-floras-hard-glare .fce {
  position: absolute; bottom: 50%; left: 30%; width: 70px; height: 80px;
  background: linear-gradient(135deg, #d9c2b8 0%, #b09790 50%, #8a7772 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 30% 30%;
  clip-path: polygon(0% 0%, 100% 0%, 80% 100%, 20% 100%);
  transform: rotate(-5deg);
  animation: fhg-face 6s ease-in-out infinite alternate;
}
.scn-floras-hard-glare .eye {
  position: absolute; bottom: 62%; left: 35%; width: 8px; height: 6px;
  background: #284544;
  border-radius: 50%;
  box-shadow: 0 0 6px 2px rgba(100,160,150,.3);
  animation: fhg-eye 2s ease-in-out infinite;
}
.scn-floras-hard-glare .hr {
  position: absolute; bottom: 34%; left: 32%; width: 10px; height: 30px;
  background: linear-gradient(180deg, #3f3540 0%, #1f1820 100%);
  border-radius: 40% 40% 20% 20% / 60% 60% 30% 30%;
}
@keyframes fhg-sky { 0% { opacity: .7; } 50% { opacity: 1; } 100% { opacity: .8; } }
@keyframes fhg-hills { 0% { transform: translateY(0) scaleY(1); } 50% { transform: translateY(-2px) scaleY(1.02); } 100% { transform: translateY(0) scaleY(1); } }
@keyframes fhg-fig { 0%,100% { transform: rotate(0deg) translateY(0); } 50% { transform: rotate(1deg) translateY(-2px); } }
@keyframes fhg-face { 0% { transform: rotate(-5deg) scaleX(1); } 50% { transform: rotate(-3deg) scaleX(1.03); } 100% { transform: rotate(-5deg) scaleX(1); } }
@keyframes fhg-eye { 0%,100% { transform: scaleY(1) translateY(0); } 50% { transform: scaleY(0.5) translateY(-1px); } }

/* mrs-grose-blind */
.scn-mrs-grose-blind {
  background: linear-gradient(180deg, #494251 0%, #352f3b 50%, #231e28 100%), radial-gradient(ellipse at 70% 50%, #5a4e60 0%, transparent 70%);
}
.scn-mrs-grose-blind .bgd {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, #8a7f8c 0%, transparent 30%, transparent 70%, #1f1820 100%);
  animation: mgb-bg 10s ease-in-out infinite alternate;
}
.scn-mrs-grose-blind .fg1 {
  position: absolute; bottom: 20%; left: 25%; width: 80px; height: 180px;
  background: linear-gradient(180deg, #3d2e3a 0%, #1d1320 100%);
  border-radius: 30% 30% 20% 20% / 50% 50% 30% 30%;
  transform-origin: bottom center;
  animation: mgb-fig1 5s ease-in-out infinite;
}
.scn-mrs-grose-blind .bnd {
  position: absolute; bottom: 52%; left: 24%; width: 70px; height: 12px;
  background: linear-gradient(90deg, #8c7b82 0%, #b0a0a8 50%, #7c6b72 100%);
  border-radius: 20%;
  transform: rotate(-2deg);
  animation: mgb-bnd 3s ease-in-out infinite alternate;
}
.scn-mrs-grose-blind .fg2 {
  position: absolute; bottom: 20%; right: 20%; width: 70px; height: 160px;
  background: linear-gradient(180deg, #4a3e4a 0%, #2e242e 100%);
  border-radius: 30% 30% 20% 20% / 50% 50% 30% 30%;
  transform-origin: bottom center;
  animation: mgb-fig2 6s ease-in-out infinite;
}
.scn-mrs-grose-blind .shd {
  position: absolute; bottom: 10%; left: 20%; width: 120px; height: 30px;
  background: rgba(0,0,0,.4);
  filter: blur(8px);
  border-radius: 50%;
  animation: mgb-shd 4s ease-in-out infinite;
}
.scn-mrs-grose-blind .lmp {
  position: absolute; top: 10%; right: 30%; width: 20px; height: 20px;
  background: radial-gradient(circle, #f0d5a0 0%, #dbbf80 60%, transparent 100%);
  border-radius: 50%;
  box-shadow: 0 0 30px 8px rgba(200,180,120,.3);
  animation: mgb-lmp 8s ease-in-out infinite alternate;
}
@keyframes mgb-bg { 0% { opacity: .5; } 50% { opacity: .8; } 100% { opacity: .6; } }
@keyframes mgb-fig1 { 0%,100% { transform: rotate(0deg) translateY(0); } 50% { transform: rotate(-2deg) translateY(-2px); } }
@keyframes mgb-bnd { 0% { transform: rotate(-2deg) translateX(0); } 50% { transform: rotate(1deg) translateX(5px); } 100% { transform: rotate(-2deg) translateX(0); } }
@keyframes mgb-fig2 { 0%,100% { transform: rotate(0deg) translateY(0); } 50% { transform: rotate(1deg) translateY(-3px); } }
@keyframes mgb-shd { 0% { transform: scaleX(1); } 50% { transform: scaleX(.9); } 100% { transform: scaleX(1); } }
@keyframes mgb-lmp { 0% { opacity: .6; box-shadow: 0 0 20px 5px rgba(200,180,120,.2); } 50% { opacity: .9; box-shadow: 0 0 40px 12px rgba(200,180,120,.4); } 100% { opacity: .7; box-shadow: 0 0 25px 6px rgba(200,180,120,.25); } }

/* floras-denial */
.scn-floras-denial {
  background: linear-gradient(180deg, #5e5a63 0%, #45414b 40%, #2f2c33 100%), radial-gradient(ellipse at 50% 20%, #7b7580 0%, transparent 60%);
}
.scn-floras-denial .bgd {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, #4f4a57 0%, transparent 30%, transparent 60%, #1a1720 100%);
  animation: fdn-bg 12s ease-in-out infinite alternate;
}
.scn-floras-denial .flr {
  position: absolute; bottom: 30%; left: 35%; width: 100px; height: 140px;
  background: linear-gradient(180deg, #4a3f47 0%, #2a222e 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%;
  transform-origin: bottom center;
  animation: fdn-flr 4s ease-in-out infinite;
}
.scn-floras-denial .arm-l {
  position: absolute; bottom: 48%; left: 32%; width: 25px; height: 60px;
  background: linear-gradient(180deg, #4a3f47 0%, #2a222e 100%);
  border-radius: 30% 30% 20% 20% / 50% 50% 30% 30%;
  transform-origin: top center;
  animation: fdn-arm-l 3s ease-in-out infinite;
}
.scn-floras-denial .arm-r {
  position: absolute; bottom: 48%; right: 30%; width: 25px; height: 60px;
  background: linear-gradient(180deg, #4a3f47 0%, #2a222e 100%);
  border-radius: 30% 30% 20% 20% / 50% 50% 30% 30%;
  transform-origin: top center;
  animation: fdn-arm-r 3s ease-in-out infinite 0.5s;
}
.scn-floras-denial .hnd {
  position: absolute; bottom: 52%; left: 30%; width: 30px; height: 20px;
  background: #3a3038;
  border-radius: 50% 50% 30% 30%;
  animation: fdn-hnd 2s ease-in-out infinite;
}
.scn-floras-denial .drss {
  position: absolute; bottom: 15%; left: 32%; width: 70px; height: 80px;
  background: linear-gradient(180deg, #6b6069 0%, #3b323c 100%);
  border-radius: 30% 30% 10% 10%;
  animation: fdn-drss 5s ease-in-out infinite;
}
@keyframes fdn-bg { 0% { opacity: .6; } 50% { opacity: 1; } 100% { opacity: .7; } }
@keyframes fdn-flr { 0%,100% { transform: rotate(0deg) translateY(0); } 50% { transform: rotate(-3deg) translateY(-4px); } }
@keyframes fdn-arm-l { 0% { transform: rotate(0deg); } 50% { transform: rotate(-20deg); } 100% { transform: rotate(0deg); } }
@keyframes fdn-arm-r { 0% { transform: rotate(0deg); } 50% { transform: rotate(20deg); } 100% { transform: rotate(0deg); } }
@keyframes fdn-hnd { 0%,100% { transform: scale(1) translateY(0); } 50% { transform: scale(1.2) translateY(-3px); } }
@keyframes fdn-drss { 0%,100% { transform: translateY(0); } 50% { transform: translateY(-2px); } }

/* from-me */
.scn-from-me {
  background: linear-gradient(180deg, #595b63 0%, #40424a 40%, #2b2d33 100%), radial-gradient(ellipse at 50% 60%, #6a6e78 0%, transparent 70%);
}
.scn-from-me .sky {
  position: absolute; inset: 0 0 50% 0;
  background: linear-gradient(180deg, #4d4f59 0%, #35373f 70%, transparent 100%);
  animation: frm-sky 9s ease-in-out infinite alternate;
}
.scn-from-me .wtr {
  position: absolute; bottom: 0; left: 0; right: 0; height: 55%;
  background: linear-gradient(180deg, #4f505c 0%, #2a2b35 100%);
  animation: frm-wtr 6s ease-in-out infinite alternate;
}
.scn-from-me .bnk-l {
  position: absolute; bottom: 30%; left: 0; width: 35%; height: 40%;
  background: linear-gradient(180deg, #4f4750 0%, #2d262d 100%);
  border-radius: 0 50% 0 0 / 0 40% 0 0;
  box-shadow: inset 0 8px 12px rgba(0,0,0,.4);
}
.scn-from-me .bnk-r {
  position: absolute; bottom: 30%; right: 0; width: 35%; height: 40%;
  background: linear-gradient(180deg, #4f4750 0%, #2d262d 100%);
  border-radius: 50% 0 0 0 / 40% 0 0 0;
  box-shadow: inset 0 8px 12px rgba(0,0,0,.4);
}
.scn-from-me .fig-l {
  position: absolute; bottom: 38%; left: 10%; width: 60px; height: 130px;
  background: linear-gradient(180deg, #2e242c 0%, #150d14 100%);
  border-radius: 30% 30% 20% 20% / 50% 50% 30% 30%;
  transform-origin: bottom center;
  animation: frm-fig-l 4s ease-in-out infinite;
}
.scn-from-me .fig-r {
  position: absolute; bottom: 38%; right: 10%; width: 60px; height: 130px;
  background: linear-gradient(180deg, #2e242c 0%, #150d14 100%);
  border-radius: 30% 30% 20% 20% / 50% 50% 30% 30%;
  transform-origin: bottom center;
  animation: frm-fig-r 6s ease-in-out infinite;
}
@keyframes frm-sky { 0% { opacity: .5; } 50% { opacity: .9; } 100% { opacity: .6; } }
@keyframes frm-wtr { 0% { transform: translateY(0); } 50% { transform: translateY(-3px); } 100% { transform: translateY(0); } }
@keyframes frm-fig-l { 0%,100% { transform: rotate(0deg) translateY(0); } 50% { transform: rotate(-10deg) translateY(-5px); } }
@keyframes frm-fig-r { 0%,100% { transform: rotate(0deg) translateY(0); } 50% { transform: rotate(2deg) translateY(-2px); } }

.scn-late-night-talk {
  background: linear-gradient(135deg, #1a1423 0%, #2c1f2e 30%, #1a1220 70%, #0e0b12 100%),
              radial-gradient(ellipse at 30% 70%, #3a2a3a 0%, transparent 70%);
}
.scn-late-night-talk .bg-room-wide {
  position: absolute; inset: 0; background: linear-gradient(180deg, #2a2230 0%, #1a1423 40%, #0f0c16 100%);
}
.scn-late-night-talk .window-pane {
  position: absolute; top: 15%; left: 60%; width: 80px; height: 120px; background: linear-gradient(180deg, rgba(180, 200, 230, 0.15) 0%, rgba(180, 200, 230, 0.05) 100%); border-radius: 4px; border: 2px solid #3a2a3a; box-shadow: inset 0 0 12px rgba(0,0,0,0.5); animation: ltn-window 12s ease-in-out infinite alternate;
}
.scn-late-night-talk .table {
  position: absolute; bottom: 22%; left: 30%; width: 100px; height: 16px; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a10 100%); border-radius: 4px; box-shadow: 0 4px 8px rgba(0,0,0,0.6);
}
.scn-late-night-talk .candle-flame {
  position: absolute; bottom: 32%; left: 35%; width: 8px; height: 16px; background: radial-gradient(circle at 50% 30%, #ffd080 0%, #ffa040 50%, transparent 100%); border-radius: 50%; box-shadow: 0 0 20px 6px rgba(255, 160, 64, 0.4), 0 0 40px 12px rgba(255, 160, 64, 0.2); animation: ltn-candle 3s ease-in-out infinite alternate;
}
.scn-late-night-talk .figure-sitting {
  position: absolute; bottom: 24%; left: 28%; width: 40px; height: 60px; background: linear-gradient(180deg, #2a1e1a 0%, #1a100e 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: ltn-sit 6s ease-in-out infinite;
}
.scn-late-night-talk .figure-standing {
  position: absolute; bottom: 20%; left: 50%; width: 30px; height: 80px; background: linear-gradient(180deg, #2a2220 0%, #181210 100%); border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%; transform-origin: bottom center; animation: ltn-stand 8s ease-in-out infinite;
}
.scn-late-night-talk .shadow-pool {
  position: absolute; bottom: 18%; left: 25%; width: 140px; height: 30px; background: radial-gradient(ellipse at 50% 100%, rgba(0,0,0,0.6) 0%, transparent 100%); filter: blur(4px); animation: ltn-shadow 10s ease-in-out infinite alternate;
}
@keyframes ltn-window {
  0% { opacity: 0.3; transform: scaleY(1); }
  50% { opacity: 0.6; transform: scaleY(1.02); }
  100% { opacity: 0.4; transform: scaleY(0.98); }
}
@keyframes ltn-candle {
  0% { transform: scale(1) translateY(0); opacity: 0.8; box-shadow: 0 0 15px 4px rgba(255,160,64,0.3), 0 0 30px 10px rgba(255,160,64,0.15); }
  50% { transform: scale(1.1) translateY(-1px); opacity: 1; box-shadow: 0 0 25px 8px rgba(255,160,64,0.5), 0 0 50px 16px rgba(255,160,64,0.25); }
  100% { transform: scale(0.95) translateY(0); opacity: 0.85; box-shadow: 0 0 18px 5px rgba(255,160,64,0.35), 0 0 35px 12px rgba(255,160,64,0.2); }
}
@keyframes ltn-sit {
  0% { transform: translateX(0) rotate(0deg); }
  30% { transform: translateX(-2px) rotate(-2deg); }
  60% { transform: translateX(2px) rotate(1deg); }
  100% { transform: translateX(0) rotate(0deg); }
}
@keyframes ltn-stand {
  0% { transform: translateX(0) rotate(0deg); }
  25% { transform: translateX(1px) rotate(-0.5deg); }
  50% { transform: translateX(-1px) rotate(0.5deg); }
  75% { transform: translateX(1px) rotate(-0.3deg); }
  100% { transform: translateX(0) rotate(0deg); }
}
@keyframes ltn-shadow {
  0% { transform: scaleX(1); opacity: 0.6; }
  50% { transform: scaleX(1.05); opacity: 0.8; }
  100% { transform: scaleX(0.95); opacity: 0.5; }
}

.scn-return-to-pupils {
  background: linear-gradient(180deg, #1e1a28 0%, #2a2438 40%, #1c1628 100%),
              radial-gradient(ellipse at 70% 60%, #3a3050 0%, transparent 60%);
}
.scn-return-to-pupils .bg-room-narrow {
  position: absolute; inset: 0; background: linear-gradient(135deg, #221e2e 0%, #1a1628 50%, #0e0c18 100%);
}
.scn-return-to-pupils .doorway-arch {
  position: absolute; top: 10%; left: 40%; width: 60px; height: 140px; background: linear-gradient(180deg, #3a2a3a 0%, #1a1020 100%); border-radius: 30px 30px 0 0; box-shadow: inset 0 0 20px rgba(0,0,0,0.7); animation: rtp-door 15s ease-in-out infinite alternate;
}
.scn-return-to-pupils .lamp-oil {
  position: absolute; top: 20%; right: 20%; width: 20px; height: 28px; background: radial-gradient(circle at 50% 30%, #ffe0a0 0%, #d09040 60%, transparent 100%); border-radius: 4px; box-shadow: 0 0 30px 10px rgba(208, 144, 64, 0.3), 0 0 60px 20px rgba(208, 144, 64, 0.15); animation: rtp-lamp 5s ease-in-out infinite alternate;
}
.scn-return-to-pupils .child-left {
  position: absolute; bottom: 28%; left: 35%; width: 24px; height: 44px; background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: rtp-childL 4s ease-in-out infinite;
}
.scn-return-to-pupils .child-right {
  position: absolute; bottom: 28%; left: 48%; width: 24px; height: 44px; background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: rtp-childR 4s ease-in-out infinite; animation-delay: -2s;
}
.scn-return-to-pupils .chair-wood {
  position: absolute; bottom: 22%; left: 55%; width: 30px; height: 50px; background: linear-gradient(180deg, #3a2a1a 0%, #1a1008 100%); border-radius: 8% 8% 4% 4%; transform: rotate(-5deg); animation: rtp-chair 7s ease-in-out infinite;
}
.scn-return-to-pupils .rug-fringe {
  position: absolute; bottom: 18%; left: 25%; width: 120px; height: 20px; background: linear-gradient(90deg, #3a2a3a 0%, #4a384a 50%, #3a2a3a 100%); border-radius: 10px; filter: blur(1px); animation: rtp-rug 12s ease-in-out infinite alternate;
}
@keyframes rtp-door {
  0% { transform: scaleX(1); opacity: 0.8; }
  50% { transform: scaleX(1.02); opacity: 0.9; }
  100% { transform: scaleX(0.98); opacity: 0.7; }
}
@keyframes rtp-lamp {
  0% { transform: scale(1) translateY(0); box-shadow: 0 0 20px 6px rgba(208,144,64,0.2), 0 0 40px 12px rgba(208,144,64,0.1); }
  50% { transform: scale(1.05) translateY(-1px); box-shadow: 0 0 35px 12px rgba(208,144,64,0.4), 0 0 70px 20px rgba(208,144,64,0.2); }
  100% { transform: scale(0.96) translateY(0); box-shadow: 0 0 25px 8px rgba(208,144,64,0.25), 0 0 50px 15px rgba(208,144,64,0.15); }
}
@keyframes rtp-childL {
  0% { transform: translateX(0) rotate(0deg); }
  25% { transform: translateX(-3px) rotate(-2deg); }
  50% { transform: translateX(0) rotate(0deg); }
  75% { transform: translateX(2px) rotate(1deg); }
  100% { transform: translateX(0) rotate(0deg); }
}
@keyframes rtp-childR {
  0% { transform: translateX(0) rotate(0deg); }
  25% { transform: translateX(2px) rotate(1deg); }
  50% { transform: translateX(0) rotate(0deg); }
  75% { transform: translateX(-3px) rotate(-2deg); }
  100% { transform: translateX(0) rotate(0deg); }
}
@keyframes rtp-chair {
  0% { transform: rotate(-5deg) translateY(0); }
  50% { transform: rotate(-3deg) translateY(-2px); }
  100% { transform: rotate(-5deg) translateY(0); }
}
@keyframes rtp-rug {
  0% { opacity: 0.7; transform: scaleX(1); }
  50% { opacity: 0.9; transform: scaleX(1.02); }
  100% { opacity: 0.6; transform: scaleX(0.98); }
}

.scn-review-of-lake-incident {
  background: linear-gradient(180deg, #1c1824 0%, #2a2438 40%, #161220 100%),
              radial-gradient(ellipse at 40% 80%, #2a2a40 0%, transparent 60%);
}
.scn-review-of-lake-incident .bg-study {
  position: absolute; inset: 0; background: linear-gradient(135deg, #1e1a2a 0%, #181420 50%, #100c18 100%);
}
.scn-review-of-lake-incident .window-lake {
  position: absolute; top: 8%; right: 10%; width: 90px; height: 130px; background: linear-gradient(180deg, rgba(100, 140, 180, 0.1) 0%, rgba(80, 120, 160, 0.15) 60%, rgba(60, 100, 140, 0.2) 100%); border-radius: 4px; border: 2px solid #3a2a3a; box-shadow: inset 0 0 16px rgba(0,0,0,0.6); animation: rli-window 18s ease-in-out infinite alternate;
}
.scn-review-of-lake-incident .desk-oak {
  position: absolute; bottom: 20%; left: 25%; width: 120px; height: 18px; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a10 100%); border-radius: 4px; box-shadow: 0 4px 12px rgba(0,0,0,0.7);
}
.scn-review-of-lake-incident .candle-drip {
  position: absolute; bottom: 28%; left: 30%; width: 10px; height: 20px; background: radial-gradient(circle at 50% 20%, #ffe0a0 0%, #d09040 50%, transparent 100%); border-radius: 50%; box-shadow: 0 0 24px 8px rgba(208, 144, 64, 0.35), 0 0 50px 16px rgba(208, 144, 64, 0.15); animation: rli-candle 4s ease-in-out infinite alternate;
}
.scn-review-of-lake-incident .papers-stack {
  position: absolute; bottom: 22%; left: 28%; width: 40px; height: 10px; background: linear-gradient(180deg, #d0c0a0 0%, #b0a080 100%); border-radius: 2px; transform: rotate(-2deg); animation: rli-papers 9s ease-in-out infinite;
}
.scn-review-of-lake-incident .hand-trembling {
  position: absolute; bottom: 22%; left: 38%; width: 14px; height: 26px; background: linear-gradient(180deg, #2a2220 0%, #1a1412 100%); border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%; transform-origin: bottom center; animation: rli-hand 2s ease-in-out infinite;
}
.scn-review-of-lake-incident .inkwell {
  position: absolute; bottom: 24%; left: 45%; width: 16px; height: 18px; background: radial-gradient(circle at 50% 30%, #1a1a2a 0%, #0a0a1a 100%); border-radius: 50%; box-shadow: 0 2px 6px rgba(0,0,0,0.5); animation: rli-ink 6s ease-in-out infinite;
}
@keyframes rli-window {
  0% { opacity: 0.2; transform: scaleY(1); }
  50% { opacity: 0.5; transform: scaleY(1.01); }
  100% { opacity: 0.3; transform: scaleY(0.99); }
}
@keyframes rli-candle {
  0% { transform: scale(1) translateY(0); opacity: 0.7; box-shadow: 0 0 18px 5px rgba(208,144,64,0.25), 0 0 40px 12px rgba(208,144,64,0.1); }
  50% { transform: scale(1.08) translateY(-1px); opacity: 1; box-shadow: 0 0 28px 10px rgba(208,144,64,0.4), 0 0 60px 20px rgba(208,144,64,0.2); }
  100% { transform: scale(0.94) translateY(0); opacity: 0.8; box-shadow: 0 0 22px 7px rgba(208,144,64,0.3), 0 0 45px 14px rgba(208,144,64,0.15); }
}
@keyframes rli-papers {
  0% { transform: rotate(-2deg) translateY(0); }
  30% { transform: rotate(-1deg) translateY(-1px); }
  60% { transform: rotate(-3deg) translateY(0.5px); }
  100% { transform: rotate(-2deg) translateY(0); }
}
@keyframes rli-hand {
  0% { transform: translateX(0) rotate(0deg); }
  25% { transform: translateX(1px) rotate(-1deg); }
  50% { transform: translateX(-1px) rotate(1deg); }
  75% { transform: translateX(1px) rotate(-0.5deg); }
  100% { transform: translateX(0) rotate(0deg); }
}
@keyframes rli-ink {
  0% { transform: scale(1); opacity: 0.6; }
  50% { transform: scale(1.05); opacity: 0.8; }
  100% { transform: scale(0.95); opacity: 0.5; }
}

.scn-determination-to-press {
  background: linear-gradient(180deg, #1a1622 0%, #2a2436 40%, #161220 100%),
              radial-gradient(ellipse at 30% 40%, #3a2a4a 0%, transparent 60%);
}
.scn-determination-to-press .bg-hall {
  position: absolute; inset: 0; background: linear-gradient(135deg, #1e1a28 0%, #181420 50%, #0e0c18 100%);
}
.scn-determination-to-press .door-dark {
  position: absolute; bottom: 10%; left: 20%; width: 70px; height: 150px; background: linear-gradient(180deg, #2a1a1a 0%, #1a0a0a 100%); border-radius: 6px 6px 0 0; box-shadow: inset 0 0 30px rgba(0,0,0,0.8); animation: dtp-door 20s ease-in-out infinite alternate;
}
.scn-determination-to-press .figure-steadfast {
  position: absolute; bottom: 20%; left: 50%; width: 36px; height: 90px; background: linear-gradient(180deg, #2a2220 0%, #1a1412 100%); border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%; transform-origin: bottom center; animation: dtp-figure 5s ease-in-out infinite;
}
.scn-determination-to-press .lamplight-sharp {
  position: absolute; top: 15%; right: 25%; width: 24px; height: 30px; background: radial-gradient(circle at 50% 40%, #ffe0a0 0%, #d09040 60%, transparent 100%); border-radius: 4px; box-shadow: 0 0 40px 15px rgba(208, 144, 64, 0.4), 0 0 80px 30px rgba(208, 144, 64, 0.2); animation: dtp-lamplight 3s ease-in-out infinite alternate;
}
.scn-determination-to-press .chair-empty {
  position: absolute; bottom: 24%; left: 60%; width: 30px; height: 50px; background: linear-gradient(180deg, #3a2a1a 0%, #1a1008 100%); border-radius: 8% 8% 4% 4%; transform: rotate(3deg); animation: dtp-chair 8s ease-in-out infinite;
}
.scn-determination-to-press .floor-board {
  position: absolute; bottom: 15%; left: 10%; width: 80%; height: 4px; background: linear-gradient(90deg, #2a1a1a 0%, #3a2a2a 50%, #2a1a1a 100%); filter: blur(1px); animation: dtp-floor 14s ease-in-out infinite alternate;
}
@keyframes dtp-door {
  0% { transform: scaleY(1); opacity: 0.9; }
  50% { transform: scaleY(1.01); opacity: 1; }
  100% { transform: scaleY(0.99); opacity: 0.8; }
}
@keyframes dtp-figure {
  0% { transform: translateX(0) rotate(0deg); }
  25% { transform: translateX(1px) rotate(-0.5deg); }
  50% { transform: translateX(0) rotate(0deg); }
  75% { transform: translateX(-1px) rotate(0.5deg); }
  100% { transform: translateX(0) rotate(0deg); }
}
@keyframes dtp-lamplight {
  0% { transform: scale(1) translateY(0); box-shadow: 0 0 30px 10px rgba(208,144,64,0.3), 0 0 60px 20px rgba(208,144,64,0.15); }
  50% { transform: scale(1.1) translateY(-2px); box-shadow: 0 0 50px 20px rgba(208,144,64,0.5), 0 0 100px 35px rgba(208,144,64,0.25); }
  100% { transform: scale(0.96) translateY(0); box-shadow: 0 0 35px 12px rgba(208,144,64,0.35), 0 0 70px 22px rgba(208,144,64,0.18); }
}
@keyframes dtp-chair {
  0% { transform: rotate(3deg) translateY(0); }
  50% { transform: rotate(1deg) translateY(-2px); }
  100% { transform: rotate(3deg) translateY(0); }
}
@keyframes dtp-floor {
  0% { opacity: 0.6; transform: scaleX(1); }
  50% { opacity: 0.8; transform: scaleX(1.01); }
  100% { opacity: 0.5; transform: scaleX(0.99); }
}

/* after-encounter – dim interior, empty bed, candle, stair */
.scn-after-encounter { background: linear-gradient(135deg, #1a1726 0%, #231f32 30%, #16131e 100%), radial-gradient(ellipse at 80% 80%, #2a223a 0%, transparent 70%); }
.scn-after-encounter { position: relative; overflow: hidden; }
.scn-after-encounter .wall-back { position: absolute; inset: 0 0 30% 0; background: linear-gradient(180deg, #1f1b2c 0%, #181522 100%); border-bottom: 2px solid #2a2538; animation: ae-wall 12s ease-in-out infinite alternate; }
.scn-after-encounter .stairs-outline { position: absolute; bottom: 25%; left: 5%; width: 35%; height: 40%; background: linear-gradient(135deg, #0f0d16 0%, #1c1830 100%); clip-path: polygon(0 0, 80% 0, 80% 20%, 100% 20%, 100% 40%, 80% 40%, 80% 60%, 100% 60%, 100% 80%, 80% 80%, 80% 100%, 0 100%); opacity: 0.6; animation: ae-stairs 8s ease-in-out infinite; }
.scn-after-encounter .floor-plan { position: absolute; bottom: 0; left: 0; right: 0; height: 30%; background: linear-gradient(180deg, #1f1a2a 0%, #161222 100%); box-shadow: inset 0 8px 20px rgba(0,0,0,0.6); }
.scn-after-encounter .bed-empty { position: absolute; bottom: 8%; left: 50%; width: 45%; height: 18%; transform: translateX(-50%); background: linear-gradient(180deg, #2a2440 0%, #1e1a30 100%); border-radius: 4% 4% 8% 8%; box-shadow: 0 4px 16px rgba(0,0,0,0.5), inset 0 2px 6px rgba(50,40,70,0.3); animation: ae-bed 10s ease-in-out infinite alternate; }
.scn-after-encounter .candle-glow { position: absolute; bottom: 22%; right: 28%; width: 24px; height: 30px; background: radial-gradient(circle at 50% 60%, #ffd080 0%, #b06030 50%, transparent 70%); border-radius: 50%; box-shadow: 0 0 40px 20px rgba(255,180,80,0.15), 0 0 80px 30px rgba(180,80,30,0.08); animation: ae-candle 3s ease-in-out infinite alternate; }
.scn-after-encounter .candle-wax { position: absolute; bottom: 22%; right: 30%; width: 6px; height: 14px; background: linear-gradient(180deg, #e8d0b0 0%, #c0a080 100%); border-radius: 20% 20% 10% 10%; }
.scn-after-encounter .figure-shadow { position: absolute; bottom: 18%; left: 15%; width: 22px; height: 48px; background: radial-gradient(ellipse at 50% 30%, rgba(15,10,20,0.8) 0%, transparent 70%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: ae-shadow 5s ease-in-out infinite; }
.scn-after-encounter .curtain-drape { position: absolute; top: 0; right: 0; width: 25%; height: 100%; background: linear-gradient(180deg, #1a1628 0%, #120e1c 60%, #0a0810 100%); border-radius: 0 0 0 40%; box-shadow: inset -8px 0 16px rgba(0,0,0,0.4); animation: ae-curtain 14s ease-in-out infinite alternate; }
@keyframes ae-wall { 0% { opacity: 0.8; } 50% { opacity: 0.95; } 100% { opacity: 0.7; } }
@keyframes ae-stairs { 0% { transform: translateY(0) skewX(-2deg); } 50% { transform: translateY(-4px) skewX(0); } 100% { transform: translateY(0) skewX(2deg); } }
@keyframes ae-bed { 0% { transform: translateX(-50%) scale(1); } 50% { transform: translateX(-50%) translateY(-2px) scale(1.01); } 100% { transform: translateX(-50%) scale(1); } }
@keyframes ae-candle { 0% { box-shadow: 0 0 30px 15px rgba(255,180,80,0.12), 0 0 60px 25px rgba(180,80,30,0.06); } 50% { box-shadow: 0 0 50px 25px rgba(255,180,80,0.2), 0 0 100px 40px rgba(180,80,30,0.1); } 100% { box-shadow: 0 0 35px 18px rgba(255,180,80,0.15), 0 0 70px 30px rgba(180,80,30,0.08); } }
@keyframes ae-shadow { 0% { transform: translateX(0) rotate(-2deg); opacity: 0.6; } 25% { transform: translateX(6px) rotate(1deg); opacity: 0.7; } 50% { transform: translateX(-3px) rotate(-1deg); opacity: 0.65; } 75% { transform: translateX(8px) rotate(2deg); opacity: 0.75; } 100% { transform: translateX(0) rotate(0); opacity: 0.6; } }
@keyframes ae-curtain { 0% { transform: translateX(0) scaleY(1); } 50% { transform: translateX(-4px) scaleY(0.98); } 100% { transform: translateX(2px) scaleY(1); } }

/* eleventh-night – dim interior, seated figure, window, moon, bed */
.scn-eleventh-night { background: linear-gradient(160deg, #12101c 0%, #1a172a 40%, #0e0c16 100%), radial-gradient(ellipse at 70% 20%, #1e1a34 0%, transparent 60%); }
.scn-eleventh-night { position: relative; overflow: hidden; }
.scn-eleventh-night .wall-room { position: absolute; inset: 0 0 25% 0; background: linear-gradient(180deg, #141120 0%, #1a1a2e 50%, #161322 100%); border-bottom: 2px solid #2a2540; }
.scn-eleventh-night .window-arch { position: absolute; top: 8%; right: 12%; width: 28%; height: 35%; background: linear-gradient(135deg, #1e2a3a 0%, #141c28 100%); border-radius: 50% 50% 0 0 / 60% 60% 0 0; border: 3px solid #2a2a3a; box-shadow: inset 0 0 40px rgba(10,15,25,0.8); animation: en-window 8s ease-in-out infinite alternate; }
.scn-eleventh-night .moon-beam { position: absolute; top: 5%; right: 15%; width: 12px; height: 80%; background: linear-gradient(180deg, rgba(180,210,240,0.12) 0%, rgba(180,210,240,0.03) 100%); transform: skewX(-8deg); filter: blur(6px); animation: en-beam 10s ease-in-out infinite alternate; }
.scn-eleventh-night .bed-frame { position: absolute; bottom: 8%; left: 55%; width: 40%; height: 15%; background: linear-gradient(180deg, #2a2440 0%, #1a162a 100%); border-radius: 6% 6% 10% 10%; box-shadow: 0 6px 20px rgba(0,0,0,0.5); animation: en-bed 12s ease-in-out infinite; }
.scn-eleventh-night .figure-seated { position: absolute; bottom: 12%; left: 58%; width: 20px; height: 36px; background: linear-gradient(180deg, #1c192a 0%, #0f0c18 100%); border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%; transform-origin: bottom center; box-shadow: 0 0 16px rgba(0,0,0,0.4); animation: en-figure 4s ease-in-out infinite; }
.scn-eleventh-night .blanket-fold { position: absolute; bottom: 6%; left: 55%; width: 38%; height: 8%; background: linear-gradient(180deg, #2a2a4a 0%, #1e1e34 100%); border-radius: 10% 10% 20% 20%; transform: scaleX(0.95); animation: en-blanket 6s ease-in-out infinite alternate; }
.scn-eleventh-night .clock-tower { position: absolute; top: 3%; left: 5%; width: 12%; height: 30%; background: linear-gradient(180deg, #1a1a2a 0%, #12121c 100%); border-radius: 0 0 10% 10%; box-shadow: 2px 0 8px rgba(0,0,0,0.3); animation: en-clock 20s linear infinite; }
.scn-eleventh-night .shadow-corner { position: absolute; bottom: 0; left: 0; width: 50%; height: 50%; background: radial-gradient(ellipse at 0% 100%, rgba(10,8,15,0.8) 0%, transparent 70%); animation: en-shadow 15s ease-in-out infinite alternate; }
@keyframes en-window { 0% { opacity: 0.85; box-shadow: inset 0 0 40px rgba(10,15,25,0.8); } 50% { opacity: 0.95; box-shadow: inset 0 0 50px rgba(10,15,25,0.6); } 100% { opacity: 0.8; box-shadow: inset 0 0 40px rgba(10,15,25,0.9); } }
@keyframes en-beam { 0% { opacity: 0.3; transform: skewX(-10deg) translateX(0); } 50% { opacity: 0.5; transform: skewX(-6deg) translateX(3px); } 100% { opacity: 0.2; transform: skewX(-12deg) translateX(-2px); } }
@keyframes en-bed { 0% { transform: translateY(0) scale(1); } 50% { transform: translateY(-2px) scale(1.01); } 100% { transform: translateY(1px) scale(0.99); } }
@keyframes en-figure { 0% { transform: translateX(0) rotate(0deg); } 30% { transform: translateX(2px) rotate(-2deg) translateY(-1px); } 60% { transform: translateX(-1px) rotate(1deg) translateY(0); } 100% { transform: translateX(0) rotate(-1deg) translateY(-2px); } }
@keyframes en-blanket { 0% { transform: scaleX(0.95) translateY(0); } 50% { transform: scaleX(0.97) translateY(-1px); } 100% { transform: scaleX(0.93) translateY(1px); } }
@keyframes en-clock { 0% { transform: rotate(0deg); } 33% { transform: rotate(0.5deg); } 66% { transform: rotate(-0.3deg); } 100% { transform: rotate(0deg); } }
@keyframes en-shadow { 0% { opacity: 0.6; } 50% { opacity: 0.8; } 100% { opacity: 0.5; } }

/* lower-room-choice – dim interior, tower corner, empty chair, window */
.scn-lower-room-choice { background: linear-gradient(110deg, #12101a 0%, #1a1628 35%, #0e0c14 100%), radial-gradient(ellipse at 20% 50%, #1e1a30 0%, transparent 70%); }
.scn-lower-room-choice { position: relative; overflow: hidden; }
.scn-lower-room-choice .tower-wall-left { position: absolute; top: 0; left: 0; width: 40%; height: 100%; background: linear-gradient(135deg, #161420 0%, #1c1a2e 100%); border-right: 2px solid #2a2540; box-shadow: inset -8px 0 20px rgba(0,0,0,0.3); animation: lr-wall-left 14s ease-in-out infinite alternate; }
.scn-lower-room-choice .tower-wall-right { position: absolute; top: 0; right: 0; width: 35%; height: 100%; background: linear-gradient(220deg, #14121e 0%, #1a1828 100%); border-left: 2px solid #2a2540; box-shadow: inset 8px 0 20px rgba(0,0,0,0.3); animation: lr-wall-right 14s ease-in-out infinite alternate; }
.scn-lower-room-choice .floor-dark { position: absolute; bottom: 0; left: 0; right: 0; height: 28%; background: linear-gradient(180deg, #1c1a2a 0%, #12101a 100%); box-shadow: inset 0 8px 24px rgba(0,0,0,0.5); }
.scn-lower-room-choice .window-narrow { position: absolute; top: 15%; left: 42%; width: 16%; height: 40%; background: linear-gradient(135deg, #1a2230 0%, #101822 100%); border-radius: 10% 10% 20% 20% / 30% 30% 40% 40%; border: 4px solid #2a2a3e; box-shadow: inset 0 0 60px rgba(5,10,20,0.9); animation: lr-window 8s ease-in-out infinite alternate; }
.scn-lower-room-choice .empty-chair { position: absolute; bottom: 12%; left: 45%; width: 20%; height: 22%; background: linear-gradient(180deg, #2a2440 0%, #1e1a30 100%); border-radius: 20% 20% 10% 10% / 30% 30% 10% 10%; box-shadow: 0 6px 20px rgba(0,0,0,0.4); transform-origin: bottom center; animation: lr-chair 7s ease-in-out infinite; }
.scn-lower-room-choice .door-arch { position: absolute; bottom: 0; left: 38%; width: 24%; height: 70%; background: linear-gradient(135deg, #0f0d18 0%, #161422 100%); border-radius: 30% 30% 0 0 / 40% 40% 0 0; border: 3px solid #2a2540; box-shadow: inset 0 0 30px rgba(0,0,0,0.5); animation: lr-door 20s ease-in-out infinite alternate; }
.scn-lower-room-choice .skirting-shadow { position: absolute; bottom: 0; left: 0; right: 0; height: 10%; background: linear-gradient(180deg, rgba(15,12,22,0.6) 0%, transparent 100%); }
@keyframes lr-wall-left { 0% { transform: translateX(0); } 50% { transform: translateX(-2px); } 100% { transform: translateX(0); } }
@keyframes lr-wall-right { 0% { transform: translateX(0); } 50% { transform: translateX(2px); } 100% { transform: translateX(0); } }
@keyframes lr-window { 0% { opacity: 0.7; box-shadow: inset 0 0 60px rgba(5,10,20,0.9); } 50% { opacity: 0.85; box-shadow: inset 0 0 70px rgba(5,10,20,0.7); } 100% { opacity: 0.65; box-shadow: inset 0 0 60px rgba(5,10,20,1); } }
@keyframes lr-chair { 0% { transform: scaleY(1) rotate(0deg); } 33% { transform: scaleY(0.98) rotate(-1deg); } 66% { transform: scaleY(1.02) rotate(1deg); } 100% { transform: scaleY(1) rotate(0deg); } }
@keyframes lr-door { 0% { transform: scaleX(1); } 50% { transform: scaleX(0.99); } 100% { transform: scaleX(1); } }

/* next-day – dim interior, corridor, two figures, watching */
.scn-next-day { background: linear-gradient(100deg, #16131e 0%, #1c1a2c 40%, #120f18 100%), radial-gradient(ellipse at 30% 20%, #201c32 0%, transparent 70%); }
.scn-next-day { position: relative; overflow: hidden; }
.scn-next-day .corridor-wall { position: absolute; inset: 0 0 30% 0; background: linear-gradient(180deg, #1a172a 0%, #1e1c30 50%, #161422 100%); border-bottom: 3px solid #2a2540; animation: nd-wall 16s ease-in-out infinite alternate; }
.scn-next-day .doorway-arch { position: absolute; bottom: 0; left: 50%; width: 30%; height: 75%; transform: translateX(-55%); background: linear-gradient(135deg, #12101c 0%, #1a182a 100%); border-radius: 40% 40% 0 0 / 50% 50% 0 0; border: 3px solid #2a2a3e; box-shadow: inset 0 0 40px rgba(0,0,0,0.4); animation: nd-door 10s ease-in-out infinite; }
.scn-next-day .floor-tiles { position: absolute; bottom: 0; left: 0; right: 0; height: 30%; background: repeating-linear-gradient(90deg, #1a1828 0px, #1a1828 40px, #161420 40px, #161420 80px); box-shadow: inset 0 8px 20px rgba(0,0,0,0.5); animation: nd-floor 8s ease-in-out infinite alternate; }
.scn-next-day .figure-adult { position: absolute; bottom: 12%; left: 35%; width: 22px; height: 44px; background: linear-gradient(180deg, #1a1a2a 0%, #0f0c18 100%); border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%; transform-origin: bottom center; animation: nd-figure-adult 5s ease-in-out infinite; }
.scn-next-day .figure-child { position: absolute; bottom: 10%; left: 55%; width: 16px; height: 30px; background: linear-gradient(180deg, #1e1a2e 0%, #12101c 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: nd-figure-child 5s ease-in-out infinite 0.6s; }
.scn-next-day .shadow-stretch { position: absolute; bottom: 0; left: 30%; width: 40%; height: 20%; background: linear-gradient(180deg, rgba(10,8,15,0.3) 0%, rgba(10,8,15,0.6) 100%); clip-path: polygon(20% 0, 80% 0, 100% 100%, 0% 100%); animation: nd-shadow 8s ease-in-out infinite alternate; }
.scn-next-day .wainscot { position: absolute; bottom: 28%; left: 0; right: 0; height: 10%; background: linear-gradient(180deg, #20203a 0%, #1a1a2e 100%); border-top: 2px solid #2a2a44; border-bottom: 2px solid #12101c; }
.scn-next-day .picture-frame { position: absolute; top: 15%; left: 20%; width: 12%; height: 20%; background: linear-gradient(135deg, #1a1a2e 0%, #12101c 100%); border: 2px solid #2a2a3e; border-radius: 4%; box-shadow: 0 4px 12px rgba(0,0,0,0.3); animation: nd-picture 18s ease-in-out infinite alternate; }
@keyframes nd-wall { 0% { opacity: 0.85; } 50% { opacity: 0.95; } 100% { opacity: 0.8; } }
@keyframes nd-door { 0% { transform: translateX(-55%) scaleY(1); } 50% { transform: translateX(-55%) scaleY(0.98) } 100% { transform: translateX(-55%) scaleY(1); } }
@keyframes nd-floor { 0% { background-position: 0 0; } 100% { background-position: 40px 0; } }
@keyframes nd-figure-adult { 0% { transform: translateX(0) rotate(0deg); } 25% { transform: translateX(4px) rotate(-1deg) translateY(-1px); } 50% { transform: translateX(-2px) rotate(1deg) translateY(0); } 75% { transform: translateX(6px) rotate(-1deg) translateY(-2px); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes nd-figure-child { 0% { transform: translateX(0) rotate(0deg); } 25% { transform: translateX(-4px) rotate(1deg) translateY(-1px); } 50% { transform: translateX(3px) rotate(-1deg) translateY(0); } 75% { transform: translateX(-5px) rotate(1deg) translateY(-2px); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes nd-shadow { 0% { opacity: 0.4; transform: skewX(-5deg); } 50% { opacity: 0.6; transform: skewX(0deg); } 100% { opacity: 0.3; transform: skewX(5deg); } }
@keyframes nd-picture { 0% { transform: rotate(0deg); } 50% { transform: rotate(-1deg); } 100% { transform: rotate(1deg); } }

.scn-i-couldn-t-have-come-out {
  background: linear-gradient(180deg, #6b4a3a 0%, #3a2a2a 40%, #1a1a1a 100%), radial-gradient(ellipse at 50% 0%, #7a5a4a 0%, transparent 60%);
}
.scn-i-couldn-t-have-come-out .sky {
  position:absolute; inset:0 0 40% 0;
  background: linear-gradient(180deg, #7a5a4a 0%, #3a2a2a 100%);
  animation: ic-sky 12s ease-in-out infinite alternate;
}
.scn-i-couldn-t-have-come-out .ground {
  position:absolute; inset:60% 0 0 0;
  background: linear-gradient(180deg, #3a2a2a 0%, #1a1a1a 100%);
  border-radius: 20% 0 0 0;
}
.scn-i-couldn-t-have-come-out .tree-left {
  position:absolute; bottom:40%; left:10%; width:30px; height:80px;
  background: linear-gradient(180deg, #2a1a1a 0%, #1a0a0a 100%);
  border-radius: 40% 40% 0 0 / 60% 60% 0 0;
  transform-origin: bottom center;
  animation: ic-tree 5s ease-in-out infinite alternate;
}
.scn-i-couldn-t-have-come-out .tree-right {
  position:absolute; bottom:40%; right:15%; width:25px; height:70px;
  background: linear-gradient(180deg, #2a1a1a 0%, #1a0a0a 100%);
  border-radius: 50% 40% 0 0 / 70% 60% 0 0;
  transform-origin: bottom center;
  animation: ic-tree 5s ease-in-out infinite alternate-reverse;
}
.scn-i-couldn-t-have-come-out .figure-man {
  position:absolute; bottom:42%; left:40%; width:20px; height:50px;
  background: linear-gradient(180deg, #1a1a1a 0%, #0a0a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: ic-fig-m 3s ease-in-out infinite;
}
.scn-i-couldn-t-have-come-out .figure-woman {
  position:absolute; bottom:42%; left:55%; width:18px; height:44px;
  background: linear-gradient(180deg, #1a1a1a 0%, #0a0a0a 100%);
  border-radius: 50% 50% 30% 30% / 70% 70% 30% 30%;
  transform-origin: bottom center;
  animation: ic-fig-w 3.5s ease-in-out infinite 0.5s;
}
.scn-i-couldn-t-have-come-out .distant-window {
  position:absolute; bottom:50%; left:70%; width:12px; height:15px;
  background: radial-gradient(circle, #c08040 0%, #8a6020 70%);
  border-radius: 10%;
  box-shadow: 0 0 12px 3px #8a6020, 0 0 20px 6px rgba(138,96,32,0.4);
  animation: ic-window 4s ease-in-out infinite alternate;
}
.scn-i-couldn-t-have-come-out .path {
  position:absolute; bottom:40%; left:40%; width:60%; height:4px;
  background: linear-gradient(90deg, transparent, #4a3a2a, transparent);
  border-radius: 50%;
  filter: blur(1px);
  animation: ic-path 6s ease-in-out infinite;
}
@keyframes ic-sky { 0% { opacity:0.8 } 50% { opacity:1 } 100% { opacity:0.7 } }
@keyframes ic-tree { 0% { transform: rotate(-2deg) } 50% { transform: rotate(2deg) } 100% { transform: rotate(-1deg) } }
@keyframes ic-fig-m { 0% { transform: translateX(0) translateY(0) rotate(-1deg) } 25% { transform: translateX(4px) translateY(-1px) rotate(1deg) } 50% { transform: translateX(8px) translateY(0) rotate(-1deg) } 75% { transform: translateX(12px) translateY(-1px) rotate(1deg) } 100% { transform: translateX(16px) translateY(0) rotate(0deg) } }
@keyframes ic-fig-w { 0% { transform: translateX(0) translateY(0) rotate(1deg) } 25% { transform: translateX(-3px) translateY(-1px) rotate(-1deg) } 50% { transform: translateX(-6px) translateY(0) rotate(1deg) } 75% { transform: translateX(-9px) translateY(-1px) rotate(-1deg) } 100% { transform: translateX(-12px) translateY(0) rotate(0deg) } }
@keyframes ic-window { 0% { opacity:0.6; box-shadow:0 0 8px 2px #8a6020; } 50% { opacity:1; box-shadow:0 0 16px 5px #c08040,0 0 30px 10px rgba(192,128,64,0.5); } 100% { opacity:0.7; box-shadow:0 0 10px 3px #8a6020; } }
@keyframes ic-path { 0% { opacity:0.3; transform:scaleX(1); } 50% { opacity:0.6; transform:scaleX(1.05); } 100% { opacity:0.3; transform:scaleX(1); } }

.scn-description-of-quint {
  background: linear-gradient(180deg, #4a3a3a 0%, #2a1a1a 40%, #1a0a0a 100%), radial-gradient(ellipse at 50% 30%, #3a2a2a 0%, transparent 70%);
}
.scn-description-of-quint .bg {
  position:absolute; inset:0;
  background: linear-gradient(135deg, #2a1a1a 0%, #1a0a0a 100%);
  animation: dq-bg 8s ease-in-out infinite alternate;
}
.scn-description-of-quint .bust {
  position:absolute; bottom:20%; left:50%; width:100px; height:120px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #1a1a1a 0%, #0a0a0a 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 20% 20%;
  box-shadow: inset 0 -20px 30px rgba(0,0,0,0.6);
}
.scn-description-of-quint .eye {
  position:absolute; bottom:50%; width:8px; height:6px;
  background: radial-gradient(circle, #f0e0c0 0%, #b0a080 70%);
  border-radius: 50%;
  box-shadow: 0 0 8px 2px rgba(240,224,192,0.5);
  animation: dq-eye 4s ease-in-out infinite alternate;
}
.scn-description-of-quint .eye-l { left:38%; bottom:55%; }
.scn-description-of-quint .eye-r { right:38%; bottom:55%; }
.scn-description-of-quint .mouth {
  position:absolute; bottom:32%; left:50%; width:24px; height:8px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #0a0a0a 0%, #1a1a1a 100%);
  border-radius: 50% 50% 0 0;
  animation: dq-mouth 3s ease-in-out infinite;
}
.scn-description-of-quint .collar {
  position:absolute; bottom:20%; left:50%; width:80px; height:20px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #3a3a3a 0%, #2a2a2a 100%);
  border-radius: 20% 20% 50% 50%;
  box-shadow: inset 0 2px 4px rgba(255,255,255,0.1);
}
.scn-description-of-quint .brow {
  position:absolute; width:16px; height:2px;
  background: #0a0a0a;
  border-radius: 50%;
  animation: dq-brow 5s ease-in-out infinite alternate;
}
.scn-description-of-quint .brow-l { bottom:62%; left:36%; transform: rotate(-5deg); }
.scn-description-of-quint .brow-r { bottom:62%; right:36%; transform: rotate(5deg); }
@keyframes dq-bg { 0% { opacity:0.8 } 50% { opacity:1 } 100% { opacity:0.7 } }
@keyframes dq-eye { 0% { opacity:0.6; transform:scaleY(1); } 50% { opacity:1; transform:scaleY(1.2); } 100% { opacity:0.7; transform:scaleY(0.9); } }
@keyframes dq-mouth { 0% { transform: translateX(-50%) scaleY(1); } 50% { transform: translateX(-50%) scaleY(0.5); } 100% { transform: translateX(-50%) scaleY(1.2); } }
@keyframes dq-brow { 0% { transform: translateY(0) rotate(-5deg); } 50% { transform: translateY(-2px) rotate(-10deg); } 100% { transform: translateY(0) rotate(-3deg); } }

.scn-tall-active-erect-no-gentleman {
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a2a 50%, #1a1a1a 100%), radial-gradient(ellipse at 50% 0%, #6a5a4a 0%, transparent 60%);
}
.scn-tall-active-erect-no-gentleman .bg {
  position:absolute; inset:0;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a1a 100%);
  animation: ta-bg 10s ease-in-out infinite alternate;
}
.scn-tall-active-erect-no-gentleman .ground {
  position:absolute; bottom:0; left:0; right:0; height:30%;
  background: linear-gradient(180deg, #2a1a1a 0%, #1a0a0a 100%);
}
.scn-tall-active-erect-no-gentleman .figure {
  position:absolute; bottom:30%; left:50%; width:30px; height:110px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #1a1a1a 0%, #0a0a0a 100%);
  border-radius: 30% 30% 20% 20% / 70% 70% 20% 20%;
  box-shadow: 0 -10px 20px rgba(0,0,0,0.4);
  animation: ta-fig 4s ease-in-out infinite;
}
.scn-tall-active-erect-no-gentleman .coat {
  position:absolute; bottom:35%; left:50%; width:40px; height:70px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #3a3a3a 0%, #2a2a2a 100%);
  border-radius: 20% 20% 10% 10% / 80% 80% 10% 10%;
  box-shadow: inset 0 4px 6px rgba(255,255,255,0.1);
  animation: ta-coat 3s ease-in-out infinite alternate-reverse;
}
.scn-tall-active-erect-no-gentleman .legs {
  position:absolute; bottom:5%; left:50%; width:20px; height:40px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #1a1a1a 0%, #0a0a0a 100%);
  border-radius: 30% 30% 0 0;
}
.scn-tall-active-erect-no-gentleman .feet {
  position:absolute; bottom:0; left:45%; width:30px; height:12px;
  background: #1a1a1a;
  border-radius: 50% 50% 0 0;
}
.scn-tall-active-erect-no-gentleman .cane {
  position:absolute; bottom:30%; left:55%; width:4px; height:50px;
  background: #2a2a2a;
  border-radius: 10%;
  transform: rotate(10deg);
  transform-origin: bottom center;
  animation: ta-cane 2s ease-in-out infinite alternate;
}
@keyframes ta-bg { 0% { opacity:0.8 } 50% { opacity:1 } 100% { opacity:0.6 } }
@keyframes ta-fig { 0% { transform: translateX(-50%) translateY(0) rotate(1deg); } 50% { transform: translateX(-50%) translateY(-2px) rotate(-1deg); } 100% { transform: translateX(-50%) translateY(0) rotate(1deg); } }
@keyframes ta-coat { 0% { transform: translateX(-50%) scaleX(1); } 50% { transform: translateX(-50%) scaleX(1.03); } 100% { transform: translateX(-50%) scaleX(0.97); } }
@keyframes ta-cane { 0% { transform: rotate(8deg); } 100% { transform: rotate(12deg); } }

.scn-quint-valet {
  background: linear-gradient(180deg, #4a3a3a 0%, #2a1a1a 50%, #1a0a0a 100%), radial-gradient(ellipse at 50% 60%, #3a2a2a 0%, transparent 60%);
}
.scn-quint-valet .bg {
  position:absolute; inset:0;
  background: linear-gradient(135deg, #3a2a2a 0%, #1a0a0a 100%);
  animation: qv-bg 12s ease-in-out infinite alternate;
}
.scn-quint-valet .door-frame {
  position:absolute; bottom:0; left:50%; width:120px; height:100%;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #2a1a1a 0%, #1a0a0a 100%);
  border: 6px solid #3a2a2a;
  border-radius: 20% 20% 0 0 / 30% 30% 0 0;
  box-shadow: inset 0 0 30px rgba(0,0,0,0.6);
}
.scn-quint-valet .figure {
  position:absolute; bottom:10%; left:50%; width:28px; height:90px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #1a1a1a 0%, #0a0a0a 100%);
  border-radius: 30% 30% 20% 20% / 70% 70% 20% 20%;
  animation: qv-fig 4s ease-in-out infinite;
}
.scn-quint-valet .waistcoat {
  position:absolute; bottom:25%; left:50%; width:36px; height:40px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #3a3a3a 0%, #2a2a2a 100%);
  border-radius: 10% 10% 30% 30%;
  box-shadow: inset 0 2px 4px rgba(255,255,255,0.1);
  animation: qv-waist 3s ease-in-out infinite alternate;
}
.scn-quint-valet .arm {
  position:absolute; bottom:30%; left:40%; width:20px; height:10px;
  background: #2a2a2a;
  border-radius: 0 50% 50% 0;
  transform-origin: left center;
  animation: qv-arm 2.5s ease-in-out infinite alternate;
}
.scn-quint-valet .shoes {
  position:absolute; bottom:0; left:46%; width:30px; height:12px;
  background: #1a1a1a;
  border-radius: 50% 50% 0 0;
  box-shadow: 0 4px 6px rgba(0,0,0,0.5);
}
.scn-quint-valet .shadow {
  position:absolute; bottom:0; left:50%; width:80px; height:10px;
  transform: translateX(-50%);
  background: radial-gradient(ellipse, rgba(0,0,0,0.6) 0%, transparent 70%);
  border-radius: 50%;
  filter: blur(3px);
  animation: qv-shadow 5s ease-in-out infinite;
}
@keyframes qv-bg { 0% { opacity:0.8 } 50% { opacity:1 } 100% { opacity:0.6 } }
@keyframes qv-fig { 0% { transform: translateX(-50%) translateY(0) rotate(0deg); } 25% { transform: translateX(-50%) translateY(-1px) rotate(1deg); } 75% { transform: translateX(-50%) translateY(0) rotate(-1deg); } 100% { transform: translateX(-50%) translateY(0) rotate(0deg); } }
@keyframes qv-waist { 0% { transform: translateX(-50%) scaleX(1); } 50% { transform: translateX(-50%) scaleX(1.02); } 100% { transform: translateX(-50%) scaleX(0.98); } }
@keyframes qv-arm { 0% { transform: rotate(-30deg); } 100% { transform: rotate(10deg); } }
@keyframes qv-shadow { 0% { transform: translateX(-50%) scaleX(1); opacity:0.6; } 50% { transform: translateX(-50%) scaleX(1.1); opacity:0.8; } 100% { transform: translateX(-50%) scaleX(1); opacity:0.6; } }

/* Scene: goodbye-mrs-grose (overcast, dark, retreat) */
.scn-goodbye-mrs-grose {
  background: linear-gradient(180deg, #2f2f3a 0%, #3a3a45 40%, #4a4a55 100%),
              radial-gradient(ellipse at 50% 100%, #5a5a65 0%, transparent 70%);
}
.scn-goodbye-mrs-grose .gmg-sky {
  position:absolute; inset:0 0 40% 0;
  background: linear-gradient(180deg, #5a5a6a 0%, #2f2f3a 100%);
  animation: gmg-sky 20s ease-in-out infinite alternate;
}
.scn-goodbye-mrs-grose .gmg-clouds-bg {
  position:absolute; top:8%; left:0; right:0; height:20%;
  background: linear-gradient(180deg, rgba(180,180,190,0.3) 0%, transparent 100%);
  border-radius: 50%; filter: blur(8px);
  animation: gmg-drift-bg 40s linear infinite;
}
.scn-goodbye-mrs-grose .gmg-clouds-fg {
  position:absolute; top:14%; left:0; right:0; height:15%;
  background: linear-gradient(180deg, rgba(200,200,210,0.2) 0%, transparent 100%);
  border-radius: 50%; filter: blur(6px);
  animation: gmg-drift-fg 30s linear infinite reverse;
}
.scn-goodbye-mrs-grose .gmg-house {
  position:absolute; bottom:25%; left:25%; width:120px; height:100px;
  background: linear-gradient(180deg, #2a2a35 0%, #1a1a25 100%);
  border-radius: 6% 6% 2% 2%; box-shadow: 0 8px 20px rgba(0,0,0,0.5);
  animation: gmg-house 10s ease-in-out infinite;
}
.scn-goodbye-mrs-grose .gmg-door {
  position:absolute; bottom:25%; left:31%; width:30px; height:55px;
  background: linear-gradient(180deg, #3a3a45 0%, #1a1a25 100%);
  border-radius: 4% 4% 0 0; box-shadow: inset 0 0 8px rgba(0,0,0,0.6);
  animation: gmg-door 8s ease-in-out infinite;
}
.scn-goodbye-mrs-grose .gmg-figure-adult {
  position:absolute; bottom:22%; left:25%; width:20px; height:52px;
  background: linear-gradient(180deg, #1e1e28 0%, #0a0a14 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: gmg-adult 12s ease-in-out infinite;
}
.scn-goodbye-mrs-grose .gmg-figure-child {
  position:absolute; bottom:22%; left:30%; width:14px; height:32px;
  background: linear-gradient(180deg, #1e1e28 0%, #0a0a14 100%);
  border-radius: 50% 50% 40% 40% / 55% 55% 35% 35%;
  transform-origin: bottom center;
  animation: gmg-child 12s ease-in-out infinite;
}
@keyframes gmg-sky { 0% { opacity:.9 } 50% { opacity:.7 } 100% { opacity:.85 } }
@keyframes gmg-drift-bg { 0% { transform: translateX(0) } 100% { transform: translateX(80vw) } }
@keyframes gmg-drift-fg { 0% { transform: translateX(0) } 100% { transform: translateX(-60vw) } }
@keyframes gmg-house { 0%,100% { transform: translateY(0) } 50% { transform: translateY(-3px) } }
@keyframes gmg-door { 0% { transform: scaleX(1) } 50% { transform: scaleX(1.05) } 100% { transform: scaleX(1) } }
@keyframes gmg-adult { 0% { transform: translateX(0) translateY(0) scale(1) } 50% { transform: translateX(40px) translateY(-2px) scale(0.98) } 100% { transform: translateX(80px) translateY(0) scale(0.96) } }
@keyframes gmg-child { 0% { transform: translateX(0) translateY(0) scale(1) } 50% { transform: translateX(35px) translateY(-1px) scale(0.99) } 100% { transform: translateX(70px) translateY(0) scale(0.97) } }

/* Scene: return-home (dusk, dark, meeting Miles) */
.scn-return-home {
  background: linear-gradient(180deg, #1a1a2e 0%, #2a2a44 30%, #4a3a4e 60%, #5a4a3e 100%),
              radial-gradient(ellipse at 50% 100%, #5a4a3e 0%, transparent 60%);
}
.scn-return-home .rh-sky {
  position:absolute; inset:0 0 30% 0;
  background: linear-gradient(180deg, #3a3a50 0%, #6a5a4a 70%, #8a7a5a 100%);
  animation: rh-sky 25s ease-in-out infinite alternate;
}
.scn-return-home .rh-horizon {
  position:absolute; bottom:30%; left:0; right:0; height:5%;
  background: linear-gradient(180deg, #8a7a5a 0%, transparent 100%);
  filter: blur(4px);
  animation: rh-horizon 20s ease-in-out infinite;
}
.scn-return-home .rh-house {
  position:absolute; bottom:20%; left:30%; width:140px; height:120px;
  background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%);
  border-radius: 10% 10% 3% 3%; box-shadow: 0 10px 30px rgba(0,0,0,0.5);
  animation: rh-house 12s ease-in-out infinite;
}
.scn-return-home .rh-window {
  position:absolute; bottom:38%; left:40%; width:24px; height:28px;
  background: radial-gradient(circle, #d0b070 0%, #805020 70%);
  border-radius: 10% 10% 5% 5%; box-shadow: 0 0 30px 6px #b08040, 0 0 60px 12px rgba(176,128,64,0.3);
  animation: rh-glow 4s ease-in-out infinite alternate;
}
.scn-return-home .rh-door {
  position:absolute; bottom:20%; left:34%; width:32px; height:60px;
  background: linear-gradient(180deg, #3a3a4a 0%, #1a1a2a 100%);
  border-radius: 4% 4% 0 0; box-shadow: inset 0 0 10px rgba(0,0,0,0.5);
  animation: rh-door 6s ease-in-out infinite;
}
.scn-return-home .rh-figure {
  position:absolute; bottom:18%; left:38%; width:18px; height:48px;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 50% 50% 40% 40% / 55% 55% 35% 35%;
  transform-origin: bottom center;
  animation: rh-figure 8s ease-in-out infinite;
}
.scn-return-home .rh-tree {
  position:absolute; bottom:18%; left:55%; width:40px; height:100px;
  background: linear-gradient(180deg, #1a2a1a 0%, #0a1a0a 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: rh-tree 15s ease-in-out infinite;
}
@keyframes rh-sky { 0% { opacity:.9; transform:scale(1) } 50% { opacity:.7; transform:scale(1.02) } 100% { opacity:.8; transform:scale(1) } }
@keyframes rh-horizon { 0%,100% { opacity:.5 } 50% { opacity:.8 } }
@keyframes rh-house { 0%,100% { transform: translateY(0) } 50% { transform: translateY(-2px) } }
@keyframes rh-glow { 0% { box-shadow: 0 0 20px 4px #b08040, 0 0 40px 8px rgba(176,128,64,0.2); opacity:.85 } 50% { box-shadow: 0 0 40px 12px #e0b060, 0 0 80px 20px rgba(224,176,96,0.4); opacity:1 } 100% { box-shadow: 0 0 25px 6px #b08040, 0 0 50px 12px rgba(176,128,64,0.25); opacity:.9 } }
@keyframes rh-door { 0% { transform: scaleX(1) } 50% { transform: scaleX(1.03) } 100% { transform: scaleX(1) } }
@keyframes rh-figure { 0% { transform: translateY(0) rotate(0deg) } 50% { transform: translateY(-2px) rotate(2deg) } 100% { transform: translateY(0) rotate(0deg) } }
@keyframes rh-tree { 0%,100% { transform: rotate(0deg) scale(1) } 50% { transform: rotate(3deg) scale(1.02) } }

/* Scene: morning-bad-news (dawn, interior, bedside) */
.scn-morning-bad-news {
  background: linear-gradient(180deg, #1e1e2e 0%, #2a2a3a 40%, #3a3a4a 100%),
              radial-gradient(ellipse at 50% 100%, #3a3a4a 0%, transparent 70%);
}
.scn-morning-bad-news .mbn-room {
  position:absolute; inset:0;
  background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%);
  animation: mbn-room 30s ease-in-out infinite alternate;
}
.scn-morning-bad-news .mbn-floor {
  position:absolute; bottom:0; left:0; right:0; height:20%;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  box-shadow: inset 0 6px 12px rgba(0,0,0,0.4);
}
.scn-morning-bad-news .mbn-bed {
  position:absolute; bottom:15%; left:20%; width:100px; height:60px;
  background: linear-gradient(180deg, #3a3a4a 0%, #1a1a2a 100%);
  border-radius: 10% 10% 5% 5%; box-shadow: 0 8px 20px rgba(0,0,0,0.5);
  animation: mbn-bed 10s ease-in-out infinite;
}
.scn-morning-bad-news .mbn-window {
  position:absolute; top:10%; right:10%; width:60px; height:80px;
  background: linear-gradient(180deg, #6a7a8a 0%, #4a5a6a 100%);
  border-radius: 8% 8% 4% 4%; box-shadow: inset 0 0 20px rgba(255,255,255,0.1);
  animation: mbn-window 25s ease-in-out infinite alternate;
}
.scn-morning-bad-news .mbn-figure {
  position:absolute; bottom:18%; left:5%; width:22px; height:56px;
  background: linear-gradient(180deg, #2a2a3a 0%, #0a0a1a 100%);
  border-radius: 50% 50% 40% 40% / 55% 55% 35% 35%;
  transform-origin: bottom center;
  animation: mbn-figure 8s ease-in-out infinite;
}
.scn-morning-bad-news .mbn-dawnlight {
  position:absolute; top:5%; left:0; right:0; height:20%;
  background: linear-gradient(180deg, rgba(200,180,160,0.15) 0%, transparent 100%);
  filter: blur(10px);
  animation: mbn-dawn 30s ease-in-out infinite alternate;
}
@keyframes mbn-room { 0% { opacity:.9 } 50% { opacity:.8 } 100% { opacity:.85 } }
@keyframes mbn-bed { 0%,100% { transform: translateY(0) } 50% { transform: translateY(-2px) } }
@keyframes mbn-window { 0% { background: linear-gradient(180deg, #4a5a6a 0%, #3a4a5a 100%); } 50% { background: linear-gradient(180deg, #8a9aaa 0%, #5a6a7a 100%); } 100% { background: linear-gradient(180deg, #6a7a8a 0%, #4a5a6a 100%); } }
@keyframes mbn-figure { 0% { transform: translateX(0) rotate(0deg); opacity:.8 } 25% { transform: translateX(15px) rotate(2deg); opacity:.9 } 50% { transform: translateX(0px) rotate(-1deg); opacity:.95 } 75% { transform: translateX(-10px) rotate(1deg); opacity:.85 } 100% { transform: translateX(0) rotate(0deg); opacity:.8 } }
@keyframes mbn-dawn { 0% { opacity:.1; transform:scale(1) } 50% { opacity:.4; transform:scale(1.05) } 100% { opacity:.2; transform:scale(1) } }

/* Scene: floras-respectability (dawn, outdoor, defiant figure) */
.scn-floras-respectability {
  background: linear-gradient(180deg, #1a1a2e 0%, #2a2a44 40%, #4a4a5e 100%),
              radial-gradient(ellipse at 50% 100%, #6a6a7e 0%, transparent 70%);
}
.scn-floras-respectability .fr-sky {
  position:absolute; inset:0 0 30% 0;
  background: linear-gradient(180deg, #4a4a6a 0%, #8a7a6a 70%, #b09a7a 100%);
  animation: fr-sky 30s ease-in-out infinite alternate;
}
.scn-floras-respectability .fr-ground {
  position:absolute; bottom:0; left:0; right:0; height:30%;
  background: linear-gradient(180deg, #2a3a2a 0%, #1a2a1a 100%);
  box-shadow: inset 0 10px 20px rgba(0,0,0,0.4);
}
.scn-floras-respectability .fr-horizon {
  position:absolute; bottom:30%; left:0; right:0; height:4%;
  background: linear-gradient(180deg, #b09a7a 0%, transparent 100%);
  filter: blur(3px);
  animation: fr-horizon 20s ease-in-out infinite;
}
.scn-floras-respectability .fr-figure-flora {
  position:absolute; bottom:28%; left:40%; width:16px; height:40px;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 50% 50% 40% 40% / 55% 55% 35% 35%;
  transform-origin: bottom center;
  animation: fr-flora 6s ease-in-out infinite;
}
.scn-floras-respectability .fr-figure-observer {
  position:absolute; bottom:25%; left:55%; width:22px; height:52px;
  background: linear-gradient(180deg, #2a2a3a 0%, #0a0a1a 100%);
  border-radius: 50% 50% 40% 40% / 55% 55% 35% 35%;
  transform-origin: bottom center;
  animation: fr-observer 8s ease-in-out infinite;
}
.scn-floras-respectability .fr-grass {
  position:absolute; bottom:22%; left:0; right:0; height:12%;
  background: repeating-linear-gradient(90deg, transparent 0px, transparent 6px, rgba(40,60,40,0.3) 6px, rgba(40,60,40,0.3) 8px);
  transform-origin: bottom center;
  animation: fr-grass 5s ease-in-out infinite;
}
.scn-floras-respectability .fr-clouds {
  position:absolute; top:12%; left:10%; width:80px; height:16px;
  background: linear-gradient(180deg, rgba(200,200,210,0.2) 0%, transparent 100%);
  border-radius: 50%; filter: blur(5px);
  animation: fr-clouds 45s linear infinite;
}
@keyframes fr-sky { 0% { opacity:.8; transform:scale(1) } 50% { opacity:.6; transform:scale(1.01) } 100% { opacity:.7; transform:scale(1) } }
@keyframes fr-horizon { 0%,100% { opacity:.4 } 50% { opacity:.7 } }
@keyframes fr-flora { 0% { transform: translateY(0) rotate(-2deg) scale(1) } 25% { transform: translateY(-1px) rotate(0deg) scale(1.01) } 50% { transform: translateY(0) rotate(2deg) scale(1) } 75% { transform: translateY(-1px) rotate(0deg) scale(0.99) } 100% { transform: translateY(0) rotate(-2deg) scale(1) } }
@keyframes fr-observer { 0% { transform: translateY(0) rotate(0deg) scale(1) } 50% { transform: translateY(-1px) rotate(1deg) scale(0.98) } 100% { transform: translateY(0) rotate(0deg) scale(1) } }
@keyframes fr-grass { 0%,100% { opacity:.6 } 50% { opacity:.9 } }
@keyframes fr-clouds { 0% { transform: translateX(0) } 100% { transform: translateX(90vw) } }

/* Scene: never-came-back (dark, dim-interior) */
.scn-never-came-back {
  background:
    linear-gradient(180deg, #1a1a2e 0%, #2a1f1f 40%, #1a1212 100%),
    radial-gradient(ellipse at 50% 30%, #3a2a2a 0%, transparent 70%);
  position: relative;
  overflow: hidden;
}
.scn-never-came-back .bg-shadow { position:absolute; inset:0; background: linear-gradient(135deg, #0d0d1a 0%, transparent 50%); animation: ncb-shadow 20s ease-in-out infinite alternate; }
.scn-never-came-back .wall { position:absolute; bottom:40%; left:0; right:0; height:60%; background: linear-gradient(180deg, #3a2a24 0%, #1f1410 100%); }
.scn-never-came-back .floor { position:absolute; bottom:0; left:0; right:0; height:40%; background: linear-gradient(0deg, #1f1812 0%, #2a2018 100%); box-shadow: inset 0 8px 12px rgba(0,0,0,.6); }
.scn-never-came-back .window { position:absolute; top:20%; left:30%; width:80px; height:100px; background: rgba(10,20,30,.4); border:6px solid #2a1a12; border-radius:4px; box-shadow: inset 0 0 30px rgba(0,20,40,.3); animation: ncb-window 12s ease-in-out infinite alternate; }
.scn-never-came-back .door { position:absolute; bottom:0; right:20%; width:70px; height:150px; background: linear-gradient(180deg, #2a1a12 0%, #1f1008 100%); border-radius:4px 4px 0 0; box-shadow: inset -4px 0 8px rgba(0,0,0,.5); transform-origin: bottom right; animation: ncb-door 15s ease-in-out infinite; }
.scn-never-came-back .armchair { position:absolute; bottom:15%; left:25%; width:50px; height:40px; background: linear-gradient(180deg, #3a2a20 0%, #2a1a12 100%); border-radius:30% 30% 10% 10%; box-shadow: 2px 4px 6px rgba(0,0,0,.5); transform: rotate(-2deg); animation: ncb-chair 8s ease-in-out infinite; }
.scn-never-came-back .portrait { position:absolute; top:12%; left:55%; width:40px; height:50px; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0e 100%); border:3px solid #3a2018; border-radius:50% 50% 20% 20%; box-shadow: 0 2px 8px rgba(0,0,0,.7); transform: scale(0.9); animation: ncb-portrait 10s ease-in-out infinite alternate; }
.scn-never-came-back .candle { position:absolute; bottom:38%; left:70%; width:6px; height:20px; background: linear-gradient(180deg, #c8a070 0%, #a07040 60%, #503020 100%); border-radius:2px; box-shadow: 0 0 12px 4px #d09050, 0 0 24px 8px rgba(208,144,80,.3); animation: ncb-candle 3s ease-in-out infinite alternate; }
@keyframes ncb-shadow { 0% { opacity:.6; } 50% { opacity:.8; } 100% { opacity:.5; } }
@keyframes ncb-window { 0% { box-shadow: inset 0 0 30px rgba(0,20,40,.3); } 50% { box-shadow: inset 0 0 50px rgba(0,20,40,.5); } 100% { box-shadow: inset 0 0 20px rgba(0,20,40,.2); } }
@keyframes ncb-door { 0% { transform: rotateY(0deg); } 25% { transform: rotateY(10deg); } 50% { transform: rotateY(0deg); } 75% { transform: rotateY(-5deg); } 100% { transform: rotateY(0deg); } }
@keyframes ncb-chair { 0% { transform: translate(0,0) rotate(-2deg); } 50% { transform: translate(2px,-1px) rotate(-1deg); } 100% { transform: translate(0,0) rotate(-2deg); } }
@keyframes ncb-portrait { 0% { opacity:.7; transform: scale(0.9) rotate(0deg); } 50% { opacity:1; transform: scale(1.0) rotate(2deg); } 100% { opacity:.8; transform: scale(0.95) rotate(-1deg); } }
@keyframes ncb-candle { 0% { opacity:.7; transform: scaleY(1); } 50% { opacity:1; transform: scaleY(1.05); box-shadow: 0 0 18px 6px #d09050; } 100% { opacity:.8; transform: scaleY(0.95); } }

/* Scene: monstrous-to-be-under-interdict (tense, bright-interior) */
.scn-monstrous-to-be-under-interdict {
  background:
    linear-gradient(180deg, #f5e8d0 0%, #e8d4b0 30%, #c8a880 100%),
    radial-gradient(ellipse at 60% 40%, #fff0e0 0%, transparent 60%);
  position: relative;
  overflow: hidden;
}
.scn-monstrous-to-be-under-interdict .bg-bright { position:absolute; inset:0; background: linear-gradient(135deg, #fff5e0 0%, transparent 40%); animation: mtb-bright 8s ease-in-out infinite alternate; }
.scn-monstrous-to-be-under-interdict .floor-tiles { position:absolute; bottom:0; left:0; right:0; height:45%; background: linear-gradient(90deg, #c8a880 0%, #b89870 50%, #c8a880 100%); clip-path: polygon(0% 0%, 20% 0%, 25% 10%, 5% 10%, 12% 25%, 32% 25%, 38% 15%, 60% 15%, 68% 30%, 88% 30%, 95% 20%, 100% 25%, 100% 100%, 0% 100%); animation: mtb-tiles 12s linear infinite; }
.scn-monstrous-to-be-under-interdict .window-light { position:absolute; top:10%; left:8%; width:90px; height:110px; background: linear-gradient(180deg, #fff8ee 0%, #ffe8c0 100%); border: 6px solid #a08060; border-radius: 6px; box-shadow: 0 0 40px 20px rgba(255,240,200,.4); animation: mtb-light 4s ease-in-out infinite alternate; }
.scn-monstrous-to-be-under-interdict .door-ajar { position:absolute; bottom:0; left:60%; width:60px; height:130px; background: linear-gradient(180deg, #a08060 0%, #705040 100%); border-radius: 4px 4px 0 0; transform-origin: left center; animation: mtb-door 5s ease-in-out infinite alternate; }
.scn-monstrous-to-be-under-interdict .figure-miles { position:absolute; bottom:22%; left:35%; width:30px; height:60px; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0e 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform: rotate(-5deg); box-shadow: 2px 4px 6px rgba(0,0,0,.3); animation: mtb-figure 3s ease-in-out infinite alternate; }
.scn-monstrous-to-be-under-interdict .chair-inn { position:absolute; bottom:18%; left:55%; width:35px; height:30px; background: linear-gradient(180deg, #806050 0%, #503830 100%); border-radius: 20% 20% 10% 10%; box-shadow: 2px 2px 4px rgba(0,0,0,.3); animation: mtb-chair 7s ease-in-out infinite; }
.scn-monstrous-to-be-under-interdict .clock { position:absolute; top:18%; left:75%; width:30px; height:40px; background: radial-gradient(circle, #e0d0b0 0%, #c0a880 60%); border-radius: 50% 50% 30% 30%; border: 3px solid #705040; box-shadow: 0 2px 6px rgba(0,0,0,.4); animation: mtb-clock 10s ease-in-out infinite; }
@keyframes mtb-bright { 0% { opacity: .7; } 50% { opacity: 1; } 100% { opacity: .8; } }
@keyframes mtb-tiles { 0% { transform: translateX(0); } 100% { transform: translateX(-20px); } }
@keyframes mtb-light { 0% { box-shadow: 0 0 40px 20px rgba(255,240,200,.4); } 50% { box-shadow: 0 0 80px 30px rgba(255,240,200,.7); } 100% { box-shadow: 0 0 30px 15px rgba(255,240,200,.3); } }
@keyframes mtb-door { 0% { transform: rotateY(0deg); } 50% { transform: rotateY(-25deg); } 100% { transform: rotateY(0deg); } }
@keyframes mtb-figure { 0% { transform: translate(-5px,0) rotate(-5deg) scale(1); } 50% { transform: translate(5px,-2px) rotate(5deg) scale(1.02); } 100% { transform: translate(-5px,0) rotate(-5deg) scale(1); } }
@keyframes mtb-chair { 0% { transform: translate(0,0) rotate(0); } 33% { transform: translate(2px,-1px) rotate(2deg); } 66% { transform: translate(-1px,1px) rotate(-1deg); } 100% { transform: translate(0,0) rotate(0); } }
@keyframes mtb-clock { 0% { transform: scale(1); } 50% { transform: scale(1.1); } 100% { transform: scale(1); } }

/* Scene: fragrance-of-purity-miles (warm, sunlit) */
.scn-fragrance-of-purity-miles {
  background:
    linear-gradient(180deg, #e8f4ff 0%, #c8e0f0 30%, #90c8c8 100%),
    radial-gradient(ellipse at 60% 20%, #fffbe0 0%, transparent 50%);
  position: relative;
  overflow: hidden;
}
.scn-fragrance-of-purity-miles .sky-warm { position:absolute; inset:0 0 40% 0; background: linear-gradient(180deg, #f0f8ff 0%, #d4e8ff 100%); animation: fpm-sky 15s ease-in-out infinite alternate; }
.scn-fragrance-of-purity-miles .grass { position:absolute; bottom:0; left:0; right:0; height:40%; background: linear-gradient(180deg, #7ab87a 0%, #5a9a5a 100%); border-radius: 30% 0 0 0; box-shadow: inset 0 10px 20px rgba(0,60,0,.2); }
.scn-fragrance-of-purity-miles .path { position:absolute; bottom:25%; left:35%; width:30%; height:15%; background: linear-gradient(90deg, #c8a880 0%, #d8b890 50%, #c8a880 100%); border-radius: 40% 40% 10% 10%; transform: rotate(2deg); box-shadow: 0 4px 8px rgba(0,0,0,.1); animation: fpm-path 20s linear infinite; }
.scn-fragrance-of-purity-miles .tree { position:absolute; top:10%; left:15%; width:80px; height:120px; background: radial-gradient(ellipse at 50% 0%, #4a7a3a 0%, #2a5a1a 80%); border-radius: 50% 50% 30% 30%; box-shadow: 0 20px 30px rgba(0,0,0,.1); animation: fpm-tree 12s ease-in-out infinite; }
.scn-fragrance-of-purity-miles .flowers { position:absolute; bottom:30%; left:20%; width:40px; height:25px; background: radial-gradient(circle at 50% 80%, #f0c8a0 0%, transparent 70%); }
.scn-fragrance-of-purity-miles .figure-miles-innocent { position:absolute; bottom:28%; left:45%; width:25px; height:50px; background: linear-gradient(180deg, #f0e0c0 0%, #d0c0a0 100%); border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%; box-shadow: 0 2px 6px rgba(0,0,0,.15); animation: fpm-miles 4s ease-in-out infinite alternate; }
.scn-fragrance-of-purity-miles .bench { position:absolute; bottom:24%; left:30%; width:50px; height:20px; background: linear-gradient(180deg, #a08060 0%, #806050 100%); border-radius: 10% 10% 20% 20%; box-shadow: 0 4px 6px rgba(0,0,0,.2); }
.scn-fragrance-of-purity-miles .butterfly-a { position:absolute; top:30%; left:40%; width:12px; height:8px; background: radial-gradient(circle, #f0a0a0 0%, #d08080 60%); border-radius: 50%; filter: blur(1px); animation: fpm-bfly1 6s ease-in-out infinite; }
.scn-fragrance-of-purity-miles .butterfly-b { position:absolute; top:25%; left:55%; width:10px; height:7px; background: radial-gradient(circle, #a0c0f0 0%, #7080d0 60%); border-radius: 50%; filter: blur(1px); animation: fpm-bfly2 5s ease-in-out infinite; animation-delay: 2s; }
@keyframes fpm-sky { 0% { opacity: .9; } 50% { opacity: 1; } 100% { opacity: .8; } }
@keyframes fpm-path { 0% { transform: translateX(0) rotate(2deg); } 50% { transform: translateX(5px) rotate(1deg); } 100% { transform: translateX(0) rotate(2deg); } }
@keyframes fpm-tree { 0% { transform: scale(1) translate(0,0); } 50% { transform: scale(1.02) translate(-2px,-2px); } 100% { transform: scale(1) translate(0,0); } }
@keyframes fpm-miles { 0% { transform: translate(0,0) rotate(0deg); } 50% { transform: translate(8px,-3px) rotate(3deg); } 100% { transform: translate(0,0) rotate(0deg); } }
@keyframes fpm-bfly1 { 0% { transform: translate(0,0) rotate(0deg); } 25% { transform: translate(20px,-10px) rotate(15deg); } 50% { transform: translate(40px,5px) rotate(-10deg); } 75% { transform: translate(20px,15px) rotate(10deg); } 100% { transform: translate(0,0) rotate(0deg); } }
@keyframes fpm-bfly2 { 0% { transform: translate(0,0) scale(1); } 25% { transform: translate(-15px,8px) scale(1.2); } 50% { transform: translate(-30px,-5px) scale(0.9); } 75% { transform: translate(-15px,-10px) scale(1.1); } 100% { transform: translate(0,0) scale(1); } }

/* Scene: grotesque-cruel-charge (tense, bright-interior) */
.scn-grotesque-cruel-charge {
  background:
    linear-gradient(180deg, #f0e8d0 0%, #d8c8a8 40%, #a08868 100%),
    radial-gradient(ellipse at 40% 30%, #fff8ee 0%, transparent 60%);
  position: relative;
  overflow: hidden;
}
.scn-grotesque-cruel-charge .bg-study { position:absolute; inset:0; background: linear-gradient(135deg, #faf0e0 0%, transparent 50%); animation: gcc-bg 6s ease-in-out infinite alternate; }
.scn-grotesque-cruel-charge .desk { position:absolute; bottom:10%; left:25%; width:120px; height:35px; background: linear-gradient(180deg, #705040 0%, #503020 100%); border-radius: 6px 6px 20px 20px; box-shadow: 0 6px 12px rgba(0,0,0,.4); }
.scn-grotesque-cruel-charge .chair-study { position:absolute; bottom:5%; left:24%; width:40px; height:35px; background: linear-gradient(180deg, #806050 0%, #503830 100%); border-radius: 20% 20% 40% 40%; box-shadow: 2px 4px 6px rgba(0,0,0,.3); animation: gcc-chair 9s ease-in-out infinite; }
.scn-grotesque-cruel-charge .figure-governess { position:absolute; bottom:15%; left:30%; width:28px; height:65px; background: linear-gradient(180deg, #3a2a1a 0%, #1a1008 100%); border-radius: 45% 45% 40% 40% / 60% 60% 35% 35%; transform: rotate(3deg); box-shadow: 2px 4px 8px rgba(0,0,0,.4); animation: gcc-figure 3s ease-in-out infinite alternate; }
.scn-grotesque-cruel-charge .window-study { position:absolute; top:8%; right:8%; width:80px; height:100px; background: linear-gradient(180deg, #fff8ee 0%, #f0e0c0 100%); border: 5px solid #a08060; border-radius: 8px; box-shadow: 0 0 40px 20px rgba(255,240,200,.3); animation: gcc-window 4s ease-in-out infinite alternate; }
.scn-grotesque-cruel-charge .letter { position:absolute; bottom:22%; left:36%; width:30px; height:20px; background: #f0e8d0; border-radius: 2px; box-shadow: 1px 1px 4px rgba(0,0,0,.2); transform: rotate(-15deg); animation: gcc-letter 5s ease-in-out infinite alternate; }
.scn-grotesque-cruel-charge .candle-study { position:absolute; bottom:30%; left:20%; width:8px; height:30px; background: linear-gradient(180deg, #c8a070 0%, #a07040 60%, #503020 100%); border-radius: 3px; box-shadow: 0 0 16px 6px #d09050, 0 0 32px 12px rgba(208,144,80,.3); animation: gcc-candle 2.5s ease-in-out infinite alternate; }
@keyframes gcc-bg { 0% { opacity: .8; } 50% { opacity: 1; } 100% { opacity: .7; } }
@keyframes gcc-chair { 0% { transform: translate(0,0) rotate(0); } 33% { transform: translate(3px,-2px) rotate(2deg); } 66% { transform: translate(-2px,1px) rotate(-1deg); } 100% { transform: translate(0,0) rotate(0); } }
@keyframes gcc-figure { 0% { transform: translate(0,0) rotate(3deg) scale(1); } 50% { transform: translate(-8px,2px) rotate(-2deg) scale(1.05); } 100% { transform: translate(0,0) rotate(3deg) scale(1); } }
@keyframes gcc-window { 0% { box-shadow: 0 0 40px 20px rgba(255,240,200,.3); } 50% { box-shadow: 0 0 60px 30px rgba(255,240,200,.6); } 100% { box-shadow: 0 0 30px 15px rgba(255,240,200,.2); } }
@keyframes gcc-letter { 0% { transform: translate(0,0) rotate(-15deg); } 50% { transform: translate(2px,-2px) rotate(-10deg); } 100% { transform: translate(0,0) rotate(-15deg); } }
@keyframes gcc-candle { 0% { opacity: .7; transform: scaleY(1); } 50% { opacity: 1; transform: scaleY(1.08); box-shadow: 0 0 20px 8px #d09050; } 100% { opacity: .8; transform: scaleY(0.95); } }

/* Scene: strength-before-separation (tense, dim interior) */
.scn-strength-before-separation {
  background: linear-gradient(180deg, #0b0e1a 0%, #141c2a 40%, #1a2535 100%),
              radial-gradient(ellipse at 50% 100%, #1a2535 0%, transparent 70%);
}
.scn-strength-before-separation .wall-back {
  position: absolute; inset: 0 0 35% 0;
  background: linear-gradient(135deg, #1a2535 0%, #162030 50%, #101a28 100%);
  animation: st-wall-haze 14s ease-in-out infinite;
}
.scn-strength-before-separation .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 38%;
  background: linear-gradient(0deg, #0d0f15 0%, #141922 40%, #1a2030 100%);
  border-radius: 60% 50% 0 0 / 30% 20% 0 0;
  box-shadow: inset 0 10px 20px rgba(0,0,0,.6);
}
.scn-strength-before-separation .window {
  position: absolute; top: 12%; left: 50%; width: 30%; height: 38%;
  transform: translateX(-50%);
  background: linear-gradient(135deg, #0f1a2a 0%, #1a2a3e 100%);
  border: 3px solid #2a3a50;
  border-radius: 6% 6% 4% 4%;
  box-shadow: inset 0 0 30px rgba(0,0,0,.8), 0 4px 12px rgba(0,0,0,.5);
}
.scn-strength-before-separation .curtain-left {
  position: absolute; top: 12%; left: 18%; width: 16%; height: 40%;
  background: linear-gradient(135deg, #1a2235 0%, #0f1420 100%);
  border-radius: 20% 60% 50% 30% / 80% 60% 40% 20%;
  transform-origin: top left;
  animation: st-curtain-sway 8s ease-in-out infinite alternate;
}
.scn-strength-before-separation .curtain-right {
  position: absolute; top: 12%; right: 18%; width: 16%; height: 40%;
  background: linear-gradient(225deg, #1a2235 0%, #0f1420 100%);
  border-radius: 60% 20% 30% 50% / 60% 80% 20% 40%;
  transform-origin: top right;
  animation: st-curtain-sway 8s ease-in-out infinite alternate-reverse;
}
.scn-strength-before-separation .figure-a {
  position: absolute; bottom: 34%; left: 35%; width: 14px; height: 40px;
  background: linear-gradient(180deg, #2a2a3a 0%, #151520 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: st-figure-a 5s ease-in-out infinite;
}
.scn-strength-before-separation .figure-b {
  position: absolute; bottom: 34%; right: 35%; width: 12px; height: 36px;
  background: linear-gradient(180deg, #1e1e2e 0%, #0f0f1a 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: st-figure-b 5s ease-in-out infinite 0.3s;
}
.scn-strength-before-separation .candle {
  position: absolute; bottom: 36%; left: 50%; width: 4px; height: 16px;
  margin-left: -2px;
  background: linear-gradient(180deg, #c8704a 0%, #8a3a1a 50%, #4a1a0a 100%);
  border-radius: 30% 30% 10% 10%;
  animation: st-candle-flicker 2s ease-in-out infinite;
}
.scn-strength-before-separation .light-halo {
  position: absolute; bottom: 36%; left: 50%; width: 80px; height: 80px;
  margin-left: -40px; margin-bottom: -30px;
  background: radial-gradient(circle, rgba(200,112,74,.4) 0%, rgba(200,112,74,.1) 50%, transparent 70%);
  border-radius: 50%;
  animation: st-halo-pulse 3s ease-in-out infinite alternate;
}
@keyframes st-wall-haze {
  0% { opacity: .9 }
  50% { opacity: 1 }
  100% { opacity: .85 }
}
@keyframes st-curtain-sway {
  0% { transform: rotate(-2deg) scaleX(.98) }
  50% { transform: rotate(0deg) scaleX(1) }
  100% { transform: rotate(2deg) scaleX(.98) }
}
@keyframes st-figure-a {
  0% { transform: translateX(0) translateY(0) rotate(-1deg) }
  30% { transform: translateX(2px) translateY(-1px) rotate(1deg) }
  60% { transform: translateX(-1px) translateY(0) rotate(0deg) }
  100% { transform: translateX(0) translateY(0) rotate(-1deg) }
}
@keyframes st-figure-b {
  0% { transform: translateX(0) translateY(0) rotate(1deg) }
  30% { transform: translateX(-1px) translateY(-1px) rotate(-1deg) }
  60% { transform: translateX(2px) translateY(0) rotate(0deg) }
  100% { transform: translateX(0) translateY(0) rotate(1deg) }
}
@keyframes st-candle-flicker {
  0% { transform: scaleY(1) scaleX(1); opacity: .9 }
  25% { transform: scaleY(1.08) scaleX(.92); opacity: 1 }
  50% { transform: scaleY(.95) scaleX(1.05); opacity: .85 }
  75% { transform: scaleY(1.04) scaleX(.96); opacity: .95 }
  100% { transform: scaleY(1) scaleX(1); opacity: .9 }
}
@keyframes st-halo-pulse {
  0% { transform: scale(.9); opacity: .6 }
  50% { transform: scale(1.1); opacity: .8 }
  100% { transform: scale(.95); opacity: .65 }
}

/* Scene: he-wants-to-appear-to-them (dark, dim interior) */
.scn-he-wants-to-appear-to-them {
  background: linear-gradient(180deg, #05080f 0%, #0a0f1a 50%, #0f1628 100%),
              radial-gradient(ellipse at 40% 80%, #0f1628 0%, transparent 60%);
}
.scn-he-wants-to-appear-to-them .doorway {
  position: absolute; bottom: 20%; left: 50%; width: 26%; height: 60%;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #0d1420 0%, #080c14 100%);
  border: 2px solid #1a2a3e;
  border-radius: 8% 8% 0 0;
  box-shadow: inset 0 0 40px rgba(0,0,0,.9), 0 0 20px rgba(0,0,0,.8);
}
.scn-he-wants-to-appear-to-them .darkness {
  position: absolute; inset: 0;
  background: radial-gradient(ellipse at 50% 40%, rgba(0,0,0,.7) 0%, transparent 60%);
  pointer-events: none;
  animation: hw-dark-wave 10s ease-in-out infinite alternate;
}
.scn-he-wants-to-appear-to-them .figure {
  position: absolute; bottom: 24%; left: 50%; width: 16px; height: 44px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #1a1a2a 0%, #0c0c18 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  animation: hw-figure-tremble 3s ease-in-out infinite;
}
.scn-he-wants-to-appear-to-them .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 22%;
  background: linear-gradient(0deg, #05080f 0%, #0a0f1a 50%, #101828 100%);
  box-shadow: inset 0 8px 16px rgba(0,0,0,.7);
}
.scn-he-wants-to-appear-to-them .shadow {
  position: absolute; bottom: 22%; left: 50%; width: 40px; height: 20px;
  transform: translateX(-50%);
  background: radial-gradient(ellipse, rgba(0,0,0,.6) 0%, transparent 70%);
  animation: hw-shadow-pulse 5s ease-in-out infinite alternate;
}
.scn-he-wants-to-appear-to-them .light-shaft {
  position: absolute; top: 0; left: 45%; width: 10%; height: 80%;
  background: linear-gradient(180deg, rgba(200,180,160,.06) 0%, rgba(200,180,160,.01) 100%);
  transform-origin: top center;
  animation: hw-shaft-sway 12s ease-in-out infinite alternate;
}
@keyframes hw-dark-wave {
  0% { opacity: .8 }
  50% { opacity: 1 }
  100% { opacity: .7 }
}
@keyframes hw-figure-tremble {
  0% { transform: translateX(-50%) translateY(0) rotate(0deg) }
  20% { transform: translateX(-50%) translateY(-1px) rotate(1deg) }
  40% { transform: translateX(calc(-50% - 1px)) translateY(0) rotate(-1deg) }
  60% { transform: translateX(calc(-50% + 1px)) translateY(-1px) rotate(1deg) }
  80% { transform: translateX(-50%) translateY(0) rotate(-1deg) }
  100% { transform: translateX(-50%) translateY(0) rotate(0deg) }
}
@keyframes hw-shadow-pulse {
  0% { transform: translateX(-50%) scaleX(1) scaleY(1); opacity: .6 }
  50% { transform: translateX(-50%) scaleX(1.1) scaleY(.9); opacity: .8 }
  100% { transform: translateX(-50%) scaleX(.95) scaleY(1.05); opacity: .5 }
}
@keyframes hw-shaft-sway {
  0% { transform: rotate(-2deg) scaleX(.95); opacity: .3 }
  50% { transform: rotate(0deg) scaleX(1); opacity: .4 }
  100% { transform: rotate(2deg) scaleX(.95); opacity: .2 }
}

/* Scene: expiatory-victim (dark, dim interior) */
.scn-expiatory-victim {
  background: linear-gradient(180deg, #0a0c12 0%, #121824 30%, #1a2230 100%),
              radial-gradient(ellipse at 50% 0%, #1a2230 0%, transparent 60%);
}
.scn-expiatory-victim .corridor-back {
  position: absolute; inset: 0 20% 20% 20%;
  background: linear-gradient(180deg, #0f1620 0%, #080c14 100%);
  border-radius: 40% 40% 0 0;
  animation: ev-bg-pulse 15s ease-in-out infinite alternate;
}
.scn-expiatory-victim .corridor-walls {
  position: absolute; inset: 0 0 20% 0;
  background: linear-gradient(90deg, #0a0f18 0%, transparent 30%, transparent 70%, #0a0f18 100%);
  pointer-events: none;
}
.scn-expiatory-victim .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 22%;
  background: linear-gradient(0deg, #080c14 0%, #0f1620 100%);
  box-shadow: inset 0 8px 20px rgba(0,0,0,.8);
}
.scn-expiatory-victim .figure {
  position: absolute; bottom: 22%; left: 50%; width: 18px; height: 48px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #1a1a2a 0%, #0e0e1a 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  animation: ev-figure-brace 4s ease-in-out infinite;
}
.scn-expiatory-victim .light-above {
  position: absolute; top: 2%; left: 50%; width: 12%; height: 20%;
  transform: translateX(-50%);
  background: radial-gradient(ellipse at center bottom, rgba(210,190,160,.2) 0%, transparent 70%);
  animation: ev-light-flicker 6s ease-in-out infinite alternate;
}
.scn-expiatory-victim .shadow-long {
  position: absolute; bottom: 22%; left: 50%; width: 60px; height: 40px;
  transform: translateX(calc(-50% + 10px));
  background: radial-gradient(ellipse, rgba(0,0,0,.7) 0%, transparent 70%);
  animation: ev-shadow-stretch 8s ease-in-out infinite alternate;
}
@keyframes ev-bg-pulse {
  0% { opacity: .85 }
  50% { opacity: 1 }
  100% { opacity: .9 }
}
@keyframes ev-figure-brace {
  0% { transform: translateX(-50%) translateY(0) scaleY(1) rotate(0deg) }
  30% { transform: translateX(-50%) translateY(-2px) scaleY(1.03) rotate(1deg) }
  60% { transform: translateX(-50%) translateY(0) scaleY(.98) rotate(-1deg) }
  100% { transform: translateX(-50%) translateY(0) scaleY(1) rotate(0deg) }
}
@keyframes ev-light-flicker {
  0% { opacity: .3; transform: translateX(-50%) scaleY(1) }
  25% { opacity: .5; transform: translateX(-50%) scaleY(1.1) }
  50% { opacity: .2; transform: translateX(-50%) scaleY(.9) }
  75% { opacity: .4; transform: translateX(-50%) scaleY(1.05) }
  100% { opacity: .3; transform: translateX(-50%) scaleY(1) }
}
@keyframes ev-shadow-stretch {
  0% { transform: translateX(calc(-50% + 10px)) scaleX(1) scaleY(1); opacity: .6 }
  50% { transform: translateX(calc(-50% + 12px)) scaleX(1.2) scaleY(.9); opacity: .8 }
  100% { transform: translateX(calc(-50% + 8px)) scaleX(.9) scaleY(1.1); opacity: .5 }
}

/* Scene: pupils-never-mentioned-him (tense, dim interior) */
.scn-pupils-never-mentioned-him {
  background: linear-gradient(180deg, #10141e 0%, #181e2a 40%, #1c2434 100%),
              radial-gradient(ellipse at 50% 100%, #1c2434 0%, transparent 70%);
}
.scn-pupils-never-mentioned-him .table {
  position: absolute; bottom: 18%; left: 15%; right: 15%; height: 22%;
  background: linear-gradient(180deg, #2a2e3a 0%, #1a1e28 100%);
  border-radius: 60% 60% 0 0 / 40% 40% 0 0;
  box-shadow: inset 0 8px 16px rgba(0,0,0,.5), 0 4px 12px rgba(0,0,0,.6);
}
.scn-pupils-never-mentioned-him .chair-left {
  position: absolute; bottom: 30%; left: 12%; width: 18%; height: 24%;
  background: linear-gradient(180deg, #1a1e2a 0%, #0e121c 100%);
  border-radius: 30% 30% 10% 10%;
  transform-origin: bottom center;
  animation: pn-chair-sway 6s ease-in-out infinite alternate;
}
.scn-pupils-never-mentioned-him .chair-right {
  position: absolute; bottom: 30%; right: 12%; width: 18%; height: 24%;
  background: linear-gradient(180deg, #1a1e2a 0%, #0e121c 100%);
  border-radius: 30% 30% 10% 10%;
  transform-origin: bottom center;
  animation: pn-chair-sway 6s ease-in-out infinite alternate-reverse;
}
.scn-pupils-never-mentioned-him .figure-left {
  position: absolute; bottom: 38%; left: 18%; width: 14px; height: 40px;
  background: linear-gradient(180deg, #2a2e3a 0%, #141820 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: pn-figure-left 4s ease-in-out infinite;
}
.scn-pupils-never-mentioned-him .figure-right {
  position: absolute; bottom: 38%; right: 18%; width: 14px; height: 40px;
  background: linear-gradient(180deg, #2a2e3a 0%, #141820 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: pn-figure-right 4s ease-in-out infinite 0.2s;
}
.scn-pupils-never-mentioned-him .candle {
  position: absolute; bottom: 36%; left: 50%; width: 4px; height: 18px;
  margin-left: -2px;
  background: linear-gradient(180deg, #c87a4a 0%, #8a4a1a 50%, #3a1a0a 100%);
  border-radius: 30% 30% 10% 10%;
  animation: pn-candle-flicker 2.5s ease-in-out infinite;
}
.scn-pupils-never-mentioned-him .candle-glow {
  position: absolute; bottom: 36%; left: 50%; width: 90px; height: 90px;
  margin-left: -45px; margin-bottom: -40px;
  background: radial-gradient(circle, rgba(200,122,74,.25) 0%, rgba(200,122,74,.08) 40%, transparent 70%);
  border-radius: 50%;
  animation: pn-glow-pulse 3s ease-in-out infinite alternate;
}
@keyframes pn-chair-sway {
  0% { transform: rotate(0deg) }
  50% { transform: rotate(1deg) }
  100% { transform: rotate(-1deg) }
}
@keyframes pn-figure-left {
  0% { transform: translateX(0) translateY(0) rotate(-1deg) }
  30% { transform: translateX(2px) translateY(-1px) rotate(0deg) }
  60% { transform: translateX(-1px) translateY(0) rotate(1deg) }
  100% { transform: translateX(0) translateY(0) rotate(-1deg) }
}
@keyframes pn-figure-right {
  0% { transform: translateX(0) translateY(0) rotate(1deg) }
  30% { transform: translateX(-2px) translateY(-1px) rotate(0deg) }
  60% { transform: translateX(1px) translateY(0) rotate(-1deg) }
  100% { transform: translateX(0) translateY(0) rotate(1deg) }
}
@keyframes pn-candle-flicker {
  0% { transform: scaleY(1) scaleX(1); opacity: .9 }
  25% { transform: scaleY(1.05) scaleX(.94); opacity: 1 }
  50% { transform: scaleY(.96) scaleX(1.03); opacity: .85 }
  75% { transform: scaleY(1.02) scaleX(.97); opacity: .95 }
  100% { transform: scaleY(1) scaleX(1); opacity: .9 }
}
@keyframes pn-glow-pulse {
  0% { transform: scale(.9); opacity: .5 }
  50% { transform: scale(1.15); opacity: .7 }
  100% { transform: scale(.95); opacity: .55 }
}

/* 1. walk-around-church – dark overcast graveyard */
.scn-walk-around-church {
  background: 
    linear-gradient(180deg, #2c2c3a 0%, #1f1f2a 40%, #14141c 100%),
    radial-gradient(ellipse at 50% 30%, #3a3a4e 0%, transparent 70%);
}
.scn-walk-around-church .sky-overlay {
  position: absolute; inset: 0 0 55% 0;
  background: linear-gradient(180deg, #34344a 0%, #1e1e2c 80%, transparent 100%);
  animation: wac-sky 20s ease-in-out infinite alternate;
}
.scn-walk-around-church .church-tower {
  position: absolute; bottom: 40%; left: 30%;
  width: 70px; height: 160px;
  background: linear-gradient(180deg, #3a3a4a 0%, #2a2a36 100%);
  border-radius: 4px 4px 0 0;
  box-shadow: 0 8px 20px rgba(0,0,0,.6);
  animation: wac-tower 12s ease-in-out infinite alternate;
}
.scn-walk-around-church .church-body {
  position: absolute; bottom: 20%; left: 25%;
  width: 120px; height: 80px;
  background: linear-gradient(180deg, #4a4a5a 0%, #2e2e3c 100%);
  border-radius: 6px;
  box-shadow: inset 0 -4px 8px rgba(0,0,0,.5);
  animation: wac-body 8s ease-in-out infinite;
}
.scn-walk-around-church .church-door {
  position: absolute; bottom: 20%; left: 32%;
  width: 24px; height: 40px;
  background: #1a1a26;
  border-radius: 4px 4px 0 0;
  border: 2px solid #2c2c3a;
  animation: wac-door 14s ease-in-out infinite alternate;
}
.scn-walk-around-church .gravestone-a {
  position: absolute; bottom: 18%; left: 50%;
  width: 30px; height: 40px;
  background: linear-gradient(180deg, #4e4e5c 0%, #2a2a34 100%);
  border-radius: 40% 40% 10% 10% / 60% 60% 10% 10%;
  transform: rotate(-5deg);
  animation: wac-stone 18s ease-in-out infinite;
}
.scn-walk-around-church .gravestone-b {
  position: absolute; bottom: 16%; left: 58%;
  width: 24px; height: 30px;
  background: linear-gradient(180deg, #3e3e4c 0%, #1e1e28 100%);
  border-radius: 30% 30% 10% 10% / 50% 50% 10% 10%;
  transform: rotate(3deg);
  animation: wac-stone 18s ease-in-out infinite 4s;
}
.scn-walk-around-church .figure-walk {
  position: absolute; bottom: 18%; left: 12%;
  width: 16px; height: 40px;
  background: linear-gradient(180deg, #1a1a24 0%, #0e0e14 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: wac-figure 6s ease-in-out infinite;
}
.scn-walk-around-church .shadow-ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 15%;
  background: linear-gradient(180deg, #0e0e14 0%, #08080c 100%);
  opacity: .7;
  animation: wac-shadow 9s ease-in-out infinite alternate;
}
@keyframes wac-sky { 0% { opacity: .6 } 50% { opacity: .9 } 100% { opacity: .5 } }
@keyframes wac-tower { 0% { transform: translateY(0) scaleY(1) } 50% { transform: translateY(-2px) scaleY(1.01) } 100% { transform: translateY(0) } }
@keyframes wac-body { 0%,100% { transform: translateY(0) } 50% { transform: translateY(-1px) } }
@keyframes wac-door { 0% { transform: rotateY(0) } 50% { transform: rotateY(8deg) } 100% { transform: rotateY(0) } }
@keyframes wac-stone { 0% { transform: rotate(-5deg) translateY(0) } 50% { transform: rotate(-4deg) translateY(-2px) } 100% { transform: rotate(-5deg) translateY(0) } }
@keyframes wac-figure { 0% { transform: translateX(0) translateY(0) rotate(-2deg) } 25% { transform: translateX(6px) translateY(-1px) rotate(0) } 50% { transform: translateX(12px) translateY(0) rotate(2deg) } 75% { transform: translateX(18px) translateY(-1px) rotate(0) } 100% { transform: translateX(24px) translateY(0) rotate(-2deg) } }
@keyframes wac-shadow { 0% { opacity: .5 } 50% { opacity: .8 } 100% { opacity: .6 } }

/* 2. impulse-to-flee – tense overcast interior church */
.scn-impulse-to-flee {
  background: 
    linear-gradient(180deg, #1a1a2a 0%, #2c2a3c 50%, #1e1e2c 100%),
    radial-gradient(ellipse at 30% 20%, #3c3a50 0%, transparent 60%);
}
.scn-impulse-to-flee .wall-bg {
  position: absolute; inset: 0;
  background: linear-gradient(90deg, #2a2a3a 0%, #1c1c2a 50%, #2a2a3a 100%);
  animation: itf-wall 18s ease-in-out infinite alternate;
}
.scn-impulse-to-flee .stained-glass {
  position: absolute; top: 8%; left: 35%;
  width: 120px; height: 180px;
  background: 
    linear-gradient(135deg, #5a3a4e 0%, #7a5a6e 30%, #3a2a4a 60%, #5a4a5e 100%);
  border-radius: 40% 40% 10% 10% / 50% 50% 10% 10%;
  box-shadow: inset 0 0 30px rgba(100,60,80,.6), 0 0 40px rgba(80,50,70,.3);
  animation: itf-window 4s ease-in-out infinite alternate;
}
.scn-impulse-to-flee .window-frame {
  position: absolute; top: 8%; left: 35%;
  width: 120px; height: 180px;
  border: 6px solid #2a2a38;
  border-radius: 42% 42% 12% 12% / 52% 52% 12% 12%;
  box-shadow: 0 0 0 2px #1a1a24;
  pointer-events: none;
}
.scn-impulse-to-flee .pew-silhouette {
  position: absolute; bottom: 20%; left: 10%;
  width: 80px; height: 60px;
  background: linear-gradient(180deg, #1a1a26 0%, #0e0e18 100%);
  border-radius: 6px 6px 0 0;
  box-shadow: 0 4px 12px rgba(0,0,0,.5);
  animation: itf-pew 20s ease-in-out infinite alternate;
}
.scn-impulse-to-flee .figure-flight {
  position: absolute; bottom: 22%; left: 58%;
  width: 18px; height: 42px;
  background: linear-gradient(180deg, #161622 0%, #0a0a12 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: itf-figure 3s ease-in-out infinite;
}
.scn-impulse-to-flee .door-ajar {
  position: absolute; bottom: 18%; left: 72%;
  width: 36px; height: 80px;
  background: linear-gradient(180deg, #2c2c3a 0%, #1a1a26 100%);
  border-radius: 4px;
  box-shadow: 2px 0 8px rgba(0,0,0,.4);
  animation: itf-door 7s ease-in-out infinite alternate;
}
.scn-impulse-to-flee .shadow-pew {
  position: absolute; bottom: 0; left: 5%; right: 5%; height: 18%;
  background: linear-gradient(180deg, #0e0e18 0%, #06060c 100%);
  opacity: .5;
  animation: itf-shadow 10s ease-in-out infinite;
}
@keyframes itf-wall { 0% { opacity: .7 } 50% { opacity: .95 } 100% { opacity: .75 } }
@keyframes itf-window { 0% { box-shadow: inset 0 0 20px #5a3a4e, 0 0 30px rgba(80,40,60,.2); opacity: .7 } 50% { box-shadow: inset 0 0 40px #9a5a7e, 0 0 60px rgba(100,50,70,.5); opacity: 1 } 100% { box-shadow: inset 0 0 25px #6a4a5e, 0 0 35px rgba(90,50,70,.3); opacity: .8 } }
@keyframes itf-pew { 0% { transform: translateX(0) } 50% { transform: translateX(-2px) } 100% { transform: translateX(0) } }
@keyframes itf-figure { 0% { transform: translateY(0) rotate(0) } 25% { transform: translateY(-1px) rotate(1deg) } 50% { transform: translateY(0) rotate(0) } 75% { transform: translateY(-1px) rotate(-1deg) } 100% { transform: translateY(0) rotate(0) } }
@keyframes itf-door { 0% { transform: rotateY(0) scaleX(1) } 50% { transform: rotateY(12deg) scaleX(0.98) } 100% { transform: rotateY(0) } }
@keyframes itf-shadow { 0% { opacity: .4 } 50% { opacity: .6 } 100% { opacity: .45 } }

/* 3. drive-desperately – tense overcast carriage escape */
.scn-drive-desperately {
  background: 
    linear-gradient(180deg, #1e1e30 0%, #2c2c40 40%, #3a3a4e 70%, #1a1a2a 100%),
    radial-gradient(ellipse at 50% 10%, #4a4a60 0%, transparent 80%);
}
.scn-drive-desperately .road {
  position: absolute; bottom: 25%; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #2a2a38 0%, #1e1e2a 100%);
  animation: dds-road 3s linear infinite;
}
.scn-drive-desperately .sky-fast {
  position: absolute; inset: 0 0 55% 0;
  background: linear-gradient(180deg, #2a2a42 0%, #3a3a52 40%, #1e1e32 100%);
  animation: dds-sky 25s linear infinite alternate;
}
.scn-drive-desperately .carriage {
  position: absolute; bottom: 35%; left: 50%;
  width: 120px; height: 60px;
  background: linear-gradient(180deg, #3a3a4a 0%, #1a1a2a 100%);
  border-radius: 30% 30% 10% 10% / 50% 50% 20% 20%;
  transform: translateX(-50%);
  box-shadow: 0 10px 20px rgba(0,0,0,.5);
  animation: dds-carriage .8s ease-in-out infinite;
}
.scn-drive-desperately .wheel-a {
  position: absolute; bottom: 28%; left: 42%;
  width: 30px; height: 30px;
  background: radial-gradient(circle, #2a2a38 30%, #1a1a26 70%, #0e0e18 100%);
  border-radius: 50%;
  border: 4px solid #1a1a26;
  animation: dds-wheel .6s linear infinite;
}
.scn-drive-desperately .wheel-b {
  position: absolute; bottom: 28%; left: 60%;
  width: 30px; height: 30px;
  background: radial-gradient(circle, #2a2a38 30%, #1a1a26 70%, #0e0e18 100%);
  border-radius: 50%;
  border: 4px solid #1a1a26;
  animation: dds-wheel .6s linear infinite reverse;
}
.scn-drive-desperately .tree-pass-a {
  position: absolute; bottom: 30%; left: 10%;
  width: 30px; height: 100px;
  background: linear-gradient(180deg, #2a3a2a 0%, #1a2a1a 100%);
  border-radius: 50% 50% 20% 20% / 70% 70% 20% 20%;
  animation: dds-tree 4s linear infinite;
}
.scn-drive-desperately .tree-pass-b {
  position: absolute; bottom: 30%; left: 75%;
  width: 40px; height: 120px;
  background: linear-gradient(180deg, #2a3a2a 0%, #1a2a1a 100%);
  border-radius: 50% 50% 20% 20% / 70% 70% 20% 20%;
  animation: dds-tree 4s linear infinite 2s;
}
.scn-drive-desperately .dust-trail {
  position: absolute; bottom: 22%; left: 20%; right: 0; height: 10%;
  background: radial-gradient(ellipse at 50% 50%, #4a4a5a 0%, transparent 80%);
  filter: blur(4px);
  opacity: .4;
  animation: dds-dust 2s ease-in-out infinite alternate;
}
@keyframes dds-road { 0% { background-position: 0 0 } 100% { background-position: -100px 0 } }
@keyframes dds-sky { 0% { transform: translateX(0) } 50% { transform: translateX(5px) } 100% { transform: translateX(-5px) } }
@keyframes dds-carriage { 0% { transform: translateX(-50%) translateY(0) rotate(0) } 25% { transform: translateX(-50%) translateY(-2px) rotate(1deg) } 50% { transform: translateX(-50%) translateY(0) rotate(0) } 75% { transform: translateX(-50%) translateY(-2px) rotate(-1deg) } 100% { transform: translateX(-50%) translateY(0) rotate(0) } }
@keyframes dds-wheel { 0% { transform: rotate(0) } 100% { transform: rotate(360deg) } }
@keyframes dds-tree { 0% { transform: translateX(0) } 100% { transform: translateX(-120px) } }
@keyframes dds-dust { 0% { opacity: .2; transform: scale(1) } 100% { opacity: .6; transform: scale(1.5) } }

/* 4. flight-decision – tense dim interior, packed suitcase */
.scn-flight-decision {
  background: 
    linear-gradient(180deg, #1a1a22 0%, #2a2a34 50%, #1e1e28 100%),
    radial-gradient(ellipse at 40% 60%, #3a3a4a 0%, transparent 70%);
}
.scn-flight-decision .room-wall {
  position: absolute; inset: 0 0 20% 0;
  background: linear-gradient(180deg, #2a2a36 0%, #1c1c26 100%);
  animation: fld-wall 15s ease-in-out infinite alternate;
}
.scn-flight-decision .floor-planks {
  position: absolute; bottom: 0; left: 0; right: 0; height: 20%;
  background: linear-gradient(90deg, #1e1e2a 0%, #2a2a36 50%, #1e1e2a 100%);
  border-top: 2px solid #0e0e16;
  animation: fld-floor 10s linear infinite;
}
.scn-flight-decision .door-closed {
  position: absolute; bottom: 22%; left: 15%;
  width: 50px; height: 100px;
  background: linear-gradient(180deg, #3a3a48 0%, #2a2a38 100%);
  border-radius: 4px;
  box-shadow: inset 0 0 10px rgba(0,0,0,.4), 2px 0 6px rgba(0,0,0,.3);
  animation: fld-door 8s ease-in-out infinite alternate;
}
.scn-flight-decision .window-dim {
  position: absolute; top: 16%; left: 60%;
  width: 60px; height: 80px;
  background: linear-gradient(180deg, #2a2a3e 0%, #1a1a2a 100%);
  border: 4px solid #1a1a2a;
  border-radius: 6px;
  box-shadow: 0 0 20px rgba(0,0,0,.5);
  animation: fld-window 6s ease-in-out infinite alternate;
}
.scn-flight-decision .figure-pack {
  position: absolute; bottom: 22%; left: 35%;
  width: 20px; height: 44px;
  background: linear-gradient(180deg, #161626 0%, #0a0a14 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: fld-figure 2s ease-in-out infinite;
}
.scn-flight-decision .suitcase {
  position: absolute; bottom: 18%; left: 42%;
  width: 30px; height: 22px;
  background: linear-gradient(180deg, #2a2a38 0%, #1a1a24 100%);
  border-radius: 6px;
  box-shadow: 0 4px 8px rgba(0,0,0,.3);
  animation: fld-suitcase 5s ease-in-out infinite alternate;
}
.scn-flight-decision .clock-pendulum {
  position: absolute; top: 8%; left: 10%;
  width: 4px; height: 40px;
  background: #2a2a36;
  border-radius: 2px;
  transform-origin: top center;
  animation: fld-pendulum 1.5s ease-in-out infinite;
}
.scn-flight-decision .lamp-glow {
  position: absolute; top: 28%; left: 50%;
  width: 30px; height: 30px;
  background: radial-gradient(circle, #b08850 0%, #7a5a30 50%, transparent 80%);
  border-radius: 50%;
  box-shadow: 0 0 40px 10px rgba(176,136,80,.3);
  animation: fld-lamp 4s ease-in-out infinite alternate;
}
@keyframes fld-wall { 0% { opacity: .8 } 50% { opacity: 1 } 100% { opacity: .85 } }
@keyframes fld-floor { 0% { background-position: 0 0 } 100% { background-position: -50px 0 } }
@keyframes fld-door { 0% { transform: translateX(0) rotateY(0) } 50% { transform: translateX(2px) rotateY(3deg) } 100% { transform: translateX(0) rotateY(0) } }
@keyframes fld-window { 0% { box-shadow: 0 0 10px rgba(0,0,0,.3); opacity: .6 } 50% { box-shadow: 0 0 30px rgba(0,0,0,.5); opacity: .9 } 100% { box-shadow: 0 0 15px rgba(0,0,0,.35); opacity: .7 } }
@keyframes fld-figure { 0% { transform: translateY(0) rotate(0) } 25% { transform: translateY(-2px) rotate(2deg) } 50% { transform: translateY(0) rotate(0) } 75% { transform: translateY(-1px) rotate(-1deg) } 100% { transform: translateY(0) rotate(0) } }
@keyframes fld-suitcase { 0% { transform: translateY(0) rotate(0) } 50% { transform: translateY(-2px) rotate(5deg) } 100% { transform: translateY(0) rotate(0) } }
@keyframes fld-pendulum { 0% { transform: rotate(-20deg) } 50% { transform: rotate(20deg) } 100% { transform: rotate(-20deg) } }
@keyframes fld-lamp { 0% { opacity: .5; transform: scale(.9) } 50% { opacity: .9; transform: scale(1.1) } 100% { opacity: .6; transform: scale(.95) } }

/* Scene: letter-on-table */
.scn-letter-on-table {
  background: linear-gradient(180deg, #1a1410 0%, #2a1e12 50%, #3a2a1e 100%),
    radial-gradient(ellipse at 50% 80%, #4a3a2a 0%, transparent 70%);
}
.scn-letter-on-table .wall {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(180deg, #2a1e12 0%, #1a1410 100%);
  animation: lt-wall 12s ease-in-out infinite alternate;
}
.scn-letter-on-table .table {
  position: absolute; bottom: 5%; left: 15%; right: 15%; height: 35%;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a1410 100%);
  border-radius: 4% 4% 0 0;
  box-shadow: 0 -8px 20px rgba(0,0,0,0.6);
}
.scn-letter-on-table .letter {
  position: absolute; bottom: 28%; left: 45%; width: 30px; height: 22px;
  background: #6a5a3a;
  transform: rotate(-8deg);
  border-radius: 2px;
  box-shadow: 0 2px 6px rgba(0,0,0,0.5);
  animation: lt-letter 6s ease-in-out infinite;
}
.scn-letter-on-table .candle {
  position: absolute; bottom: 32%; left: 38%; width: 4px; height: 24px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1e12 100%);
  border-radius: 2px;
}
.scn-letter-on-table .candleglow {
  position: absolute; bottom: 42%; left: 37%; width: 14px; height: 14px;
  background: radial-gradient(circle, #ffd080 0%, #c08040 40%, transparent 70%);
  border-radius: 50%;
  animation: lt-glow 3s ease-in-out infinite alternate;
}
.scn-letter-on-table .hand {
  position: absolute; bottom: 25%; left: 25%; width: 24px; height: 40px;
  background: linear-gradient(180deg, #2a1e12 0%, #1a1410 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom right;
  animation: lt-hand 8s ease-in-out infinite;
}
@keyframes lt-wall {
  0% { opacity: 0.9; }
  50% { opacity: 1; }
  100% { opacity: 0.85; }
}
@keyframes lt-letter {
  0%, 100% { transform: rotate(-8deg); }
  50% { transform: rotate(-5deg) translateY(-1px); }
}
@keyframes lt-glow {
  0% { box-shadow: 0 0 4px 2px #c08040, 0 0 8px 4px rgba(192,128,64,0.4); opacity: 0.8; }
  50% { box-shadow: 0 0 8px 4px #ffd080, 0 0 16px 8px rgba(255,208,128,0.6); opacity: 1; }
  100% { box-shadow: 0 0 5px 3px #c08040, 0 0 10px 5px rgba(192,128,64,0.5); opacity: 0.85; }
}
@keyframes lt-hand {
  0% { transform: translateX(0) translateY(0) rotate(0deg); }
  30% { transform: translateX(8px) translateY(-2px) rotate(2deg); }
  60% { transform: translateX(14px) translateY(-4px) rotate(4deg); }
  100% { transform: translateX(18px) translateY(-6px) rotate(5deg); }
}

/* Scene: walk-to-lake */
.scn-walk-to-lake {
  background: linear-gradient(180deg, #3a3e4a 0%, #2a2e3a 50%, #3a3e4a 100%),
    radial-gradient(ellipse at 50% 100%, #2a2e3a 0%, transparent 70%);
}
.scn-walk-to-lake .sky {
  position: absolute; inset: 0 0 45% 0;
  background: linear-gradient(180deg, #4a4e5a 0%, #3a3e4a 100%);
  animation: wl-sky 15s ease-in-out infinite alternate;
}
.scn-walk-to-lake .distant-trees {
  position: absolute; bottom: 45%; left: 0; right: 0; height: 12%;
  background: linear-gradient(180deg, #1a2a1a 0%, #0a1a0a 100%);
  border-radius: 40% 60% 0 0 / 80% 70% 0 0;
  box-shadow: inset 0 4px 10px rgba(0,0,0,0.5);
  animation: wl-trees 20s ease-in-out infinite alternate;
}
.scn-walk-to-lake .lake {
  position: absolute; bottom: 15%; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #4a5a4a 0%, #2a3a2a 100%);
  border-radius: 0 0 50% 50% / 0 0 20% 20%;
  box-shadow: inset 0 8px 20px rgba(0,0,0,0.3);
  animation: wl-lake 8s ease-in-out infinite;
}
.scn-walk-to-lake .path {
  position: absolute; bottom: 20%; left: 30%; right: 30%; height: 8%;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  clip-path: polygon(10% 0%, 90% 0%, 100% 100%, 0% 100%);
  animation: wl-path 12s ease-in-out infinite alternate;
}
.scn-walk-to-lake .figure-a {
  position: absolute; bottom: 18%; left: 40%; width: 12px; height: 28px;
  background: #1a1a2a;
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: wl-walk-a 4s ease-in-out infinite;
}
.scn-walk-to-lake .figure-b {
  position: absolute; bottom: 18%; left: 55%; width: 12px; height: 28px;
  background: #1a1a2a;
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: wl-walk-b 4s ease-in-out infinite 2s;
}
.scn-walk-to-lake .reeds {
  position: absolute; bottom: 15%; left: 10%; width: 20px; height: 30px;
  background: linear-gradient(180deg, #2a3a2a 0%, #1a2a1a 100%);
  clip-path: polygon(40% 0%, 60% 0%, 50% 100%);
  animation: wl-reeds 6s ease-in-out infinite;
}
@keyframes wl-sky {
  0% { opacity: 0.8; }
  50% { opacity: 1; }
  100% { opacity: 0.7; }
}
@keyframes wl-trees {
  0% { transform: translateY(0); }
  50% { transform: translateY(-3px); }
  100% { transform: translateY(0); }
}
@keyframes wl-lake {
  0% { background-position: 0% 50%; }
  50% { background-position: 50% 50%; }
  100% { background-position: 100% 50%; }
}
@keyframes wl-path {
  0% { opacity: 0.9; }
  50% { opacity: 1; }
  100% { opacity: 0.8; }
}
@keyframes wl-walk-a {
  0% { transform: translateX(0) rotate(-1deg); }
  25% { transform: translateX(4px) rotate(1deg); }
  50% { transform: translateX(8px) rotate(-1deg); }
  75% { transform: translateX(12px) rotate(1deg); }
  100% { transform: translateX(16px) rotate(0deg); }
}
@keyframes wl-walk-b {
  0% { transform: translateX(0) rotate(-1deg); }
  25% { transform: translateX(3px) rotate(1deg); }
  50% { transform: translateX(6px) rotate(-1deg); }
  75% { transform: translateX(9px) rotate(1deg); }
  100% { transform: translateX(12px) rotate(0deg); }
}
@keyframes wl-reeds {
  0%, 100% { transform: rotate(-2deg); }
  50% { transform: rotate(2deg); }
}

/* Scene: direction-to-water */
.scn-direction-to-water {
  background: linear-gradient(180deg, #3a3e4a 0%, #2a2e3a 50%, #3a3e4a 100%),
    radial-gradient(ellipse at 50% 60%, #4a4e5a 0%, transparent 70%);
}
.scn-direction-to-water .sky {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(180deg, #4a4e5a 0%, #3a3e4a 100%);
  animation: dw-sky 15s ease-in-out infinite alternate;
}
.scn-direction-to-water .lake {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #4a5a4a 0%, #2a3a2a 100%);
  border-radius: 0 0 30% 30% / 0 0 10% 10%;
  box-shadow: inset 0 6px 12px rgba(0,0,0,0.4);
  animation: dw-lake 9s ease-in-out infinite;
}
.scn-direction-to-water .shore {
  position: absolute; bottom: 25%; left: 20%; right: 20%; height: 10%;
  background: linear-gradient(180deg, #3a3a2a 0%, #2a2a1a 100%);
  clip-path: polygon(0% 0%, 100% 0%, 80% 100%, 20% 100%);
  animation: dw-shore 12s ease-in-out infinite alternate;
}
.scn-direction-to-water .figure-standing {
  position: absolute; bottom: 24%; left: 45%; width: 14px; height: 36px;
  background: #1a1a2a;
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: dw-stand 5s ease-in-out infinite;
}
.scn-direction-to-water .arm-point {
  position: absolute; bottom: 38%; left: 50%; width: 20px; height: 4px;
  background: #1a1a2a;
  border-radius: 2px;
  transform-origin: left center;
  animation: dw-point 4s ease-in-out infinite;
}
.scn-direction-to-water .figure-kneeling {
  position: absolute; bottom: 22%; left: 55%; width: 14px; height: 24px;
  background: #1a1a2a;
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform: scaleY(0.7);
  animation: dw-kneel 6s ease-in-out infinite;
}
@keyframes dw-sky {
  0% { opacity: 0.8; }
  50% { opacity: 1; }
  100% { opacity: 0.75; }
}
@keyframes dw-lake {
  0% { background-position: 0% 0%; }
  50% { background-position: 50% 0%; }
  100% { background-position: 100% 0%; }
}
@keyframes dw-shore {
  0% { opacity: 0.9; transform: translateY(0); }
  50% { opacity: 1; transform: translateY(-2px); }
  100% { opacity: 0.85; transform: translateY(0); }
}
@keyframes dw-stand {
  0%, 100% { transform: rotate(-2deg); }
  50% { transform: rotate(2deg); }
}
@keyframes dw-point {
  0% { transform: rotate(-30deg); }
  30% { transform: rotate(-35deg); }
  60% { transform: rotate(-25deg); }
  100% { transform: rotate(-30deg); }
}
@keyframes dw-kneel {
  0%, 100% { transform: scaleY(0.7) translateX(0); }
  50% { transform: scaleY(0.65) translateX(2px); }
}

/* Scene: jessel-present */
.scn-jessel-present {
  background: linear-gradient(180deg, #2a2e3a 0%, #1a1e2a 50%, #2a2e3a 100%),
    radial-gradient(ellipse at 50% 70%, #3a3e4a 0%, transparent 70%);
}
.scn-jessel-present .bg-water {
  position: absolute; bottom: 0; left: 0; right: 0; height: 35%;
  background: linear-gradient(180deg, #3a4a3a 0%, #1a2a1a 100%);
  border-radius: 0 0 40% 40% / 0 0 15% 15%;
  animation: jp-water 8s ease-in-out infinite;
}
.scn-jessel-present .bg-sky {
  position: absolute; inset: 0 0 45% 0;
  background: linear-gradient(180deg, #3a3e4a 0%, #2a2e3a 100%);
  animation: jp-sky 20s ease-in-out infinite alternate;
}
.scn-jessel-present .ghost-figure {
  position: absolute; bottom: 30%; left: 46%; width: 20px; height: 50px;
  background: linear-gradient(180deg, rgba(200,200,220,0.4) 0%, rgba(150,160,180,0.2) 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  filter: blur(3px);
  animation: jp-ghost 10s ease-in-out infinite;
}
.scn-jessel-present .reflection {
  position: absolute; bottom: 5%; left: 46%; width: 20px; height: 30px;
  background: linear-gradient(180deg, rgba(200,200,220,0.2) 0%, transparent 100%);
  border-radius: 40% 40% 50% 50% / 40% 40% 60% 60%;
  transform: scaleY(-1);
  filter: blur(2px);
  animation: jp-reflect 10s ease-in-out infinite 0.5s;
}
.scn-jessel-present .trees {
  position: absolute; bottom: 38%; left: 0; right: 0; height: 15%;
  background: linear-gradient(180deg, #0a1a0a 0%, #1a2a1a 100%);
  border-radius: 60% 40% 0 0 / 80% 70% 0 0;
  box-shadow: inset 0 6px 12px rgba(0,0,0,0.6);
  animation: jp-trees 25s ease-in-out infinite alternate;
}
.scn-jessel-present .mist {
  position: absolute; top: 20%; left: 20%; width: 120px; height: 60px;
  background: radial-gradient(ellipse, rgba(255,255,255,0.06) 0%, transparent 70%);
  filter: blur(10px);
  animation: jp-mist 60s linear infinite;
}
@keyframes jp-water {
  0% { background-position: 0% 0%; }
  50% { background-position: 50% 0%; }
  100% { background-position: 100% 0%; }
}
@keyframes jp-sky {
  0% { opacity: 0.7; }
  50% { opacity: 1; }
  100% { opacity: 0.6; }
}
@keyframes jp-ghost {
  0% { opacity: 0.3; transform: translateY(0) scaleY(1); }
  30% { opacity: 0.7; transform: translateY(-4px) scaleY(1.05); }
  60% { opacity: 0.5; transform: translateY(2px) scaleY(0.98); }
  100% { opacity: 0.3; transform: translateY(0) scaleY(1); }
}
@keyframes jp-reflect {
  0% { opacity: 0.15; }
  30% { opacity: 0.4; }
  60% { opacity: 0.25; }
  100% { opacity: 0.15; }
}
@keyframes jp-trees {
  0% { transform: translateY(0); }
  50% { transform: translateY(-2px); }
  100% { transform: translateY(0); }
}
@keyframes jp-mist {
  0% { transform: translateX(-40px); }
  100% { transform: translateX(100vw); }
}

/* scene: great-friends-with-quint */
.scn-great-friends-with-quint {
  background: linear-gradient(180deg, #2a1f1a 0%, #1a1210 40%, #0d0807 100%),
              radial-gradient(ellipse at 30% 60%, #3a2a1a 0%, transparent 70%);
}
.scn-great-friends-with-quint .wall-left {
  position: absolute; inset: 0 60% 10% 0;
  background: linear-gradient(90deg, #2a2018 0%, #1a1410 100%);
  border-right: 2px solid #3a2a22;
  animation: gfwq-pulse 8s ease-in-out infinite;
}
.scn-great-friends-with-quint .wall-right {
  position: absolute; inset: 0 0 10% 40%;
  background: linear-gradient(270deg, #2a2018 0%, #1a1410 100%);
  animation: gfwq-pulse 8s ease-in-out infinite 2s;
}
.scn-great-friends-with-quint .floor {
  position: absolute; inset: 70% 0 0 0;
  background: linear-gradient(180deg, #3a2a20 0%, #2a1a12 100%);
  box-shadow: inset 0 20px 30px rgba(0,0,0,.7);
}
.scn-great-friends-with-quint .window {
  position: absolute; top: 25%; left: 42%; width: 16%; height: 35%;
  background: linear-gradient(180deg, #0a1a2a 0%, #0a1a2a 100%);
  border: 4px solid #4a3a2a;
  border-radius: 2px;
  box-shadow: inset 0 0 20px rgba(0,0,0,.8), 0 0 0 6px #1a1410;
  animation: gfwq-window 15s ease-in-out infinite alternate;
}
.scn-great-friends-with-quint .figure-governess {
  position: absolute; bottom: 10%; left: 28%; width: 8%; height: 40%;
  background: linear-gradient(180deg, #2a2220 0%, #1a1410 50%, #120e0a 100%);
  border-radius: 30% 30% 20% 20% / 50% 50% 30% 30%;
  transform-origin: bottom center;
  animation: gfwq-figure1 6s ease-in-out infinite;
}
.scn-great-friends-with-quint .figure-mrsgrose {
  position: absolute; bottom: 10%; right: 28%; width: 9%; height: 38%;
  background: linear-gradient(180deg, #3a2a22 0%, #2a1a14 50%, #1a0e0a 100%);
  border-radius: 40% 30% 20% 20% / 55% 45% 30% 30%;
  transform-origin: bottom center;
  animation: gfwq-figure2 7s ease-in-out infinite 1s;
}
.scn-great-friends-with-quint .quint-shadow {
  position: absolute; bottom: 10%; left: 48%; width: 6%; height: 50%;
  background: linear-gradient(180deg, rgba(0,0,0,.8) 0%, transparent 100%);
  border-radius: 50% 50% 20% 20% / 60% 60% 30% 30%;
  filter: blur(4px);
  animation: gfwq-shadow 9s ease-in-out infinite alternate;
}
.scn-great-friends-with-quint .candle {
  position: absolute; bottom: 20%; left: 46%; width: 1.5%; height: 8%;
  background: linear-gradient(180deg, #d4a070 0%, #a07040 100%);
  border-radius: 40% 40% 10% 10% / 60% 60% 20% 20%;
  box-shadow: 0 -4px 8px rgba(200,150,80,.3);
  animation: gfwq-flicker 2s ease-in-out infinite alternate;
}
.scn-great-friends-with-quint .candle-glow {
  position: absolute; bottom: 18%; left: 42%; width: 16%; height: 16%;
  background: radial-gradient(circle, rgba(220,170,100,.15) 0%, transparent 70%);
  border-radius: 50%;
  animation: gfwq-glow 3s ease-in-out infinite alternate;
}
@keyframes gfwq-pulse { 0%,100% { opacity:.9 } 50% { opacity:1 } }
@keyframes gfwq-window { 0% { box-shadow: inset 0 0 20px rgba(0,0,0,.8) } 50% { box-shadow: inset 0 0 30px rgba(0,20,40,.9) } 100% { box-shadow: inset 0 0 20px rgba(0,0,0,.8) } }
@keyframes gfwq-figure1 { 0% { transform: translateY(0) rotate(0) } 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 gfwq-figure2 { 0% { transform: translateY(0) rotate(0) scale(1) } 33% { transform: translateY(-1px) rotate(1deg) scale(1.01) } 66% { transform: translateY(0) rotate(-1deg) scale(.99) } 100% { transform: translateY(0) rotate(0) scale(1) } }
@keyframes gfwq-shadow { 0% { opacity:.3; transform: translateX(0) } 50% { opacity:.6; transform: translateX(3px) } 100% { opacity:.3; transform: translateX(0) } }
@keyframes gfwq-flicker { 0% { transform: scaleY(1) scaleX(1) } 25% { transform: scaleY(1.02) scaleX(.98) } 50% { transform: scaleY(.97) scaleX(1.01) } 75% { transform: scaleY(1.01) scaleX(.99) } 100% { transform: scaleY(1) scaleX(1) } }
@keyframes gfwq-glow { 0% { opacity:.4; transform: scale(1) } 50% { opacity:.7; transform: scale(1.1) } 100% { opacity:.5; transform: scale(.95) } }

/* scene: quints-freedom-disgust */
.scn-quints-freedom-disgust {
  background: linear-gradient(180deg, #0a0a12 0%, #12101a 30%, #1a1825 60%, #0d0b12 100%),
              radial-gradient(ellipse at 50% 80%, #1a1825 0%, transparent 60%);
}
.scn-quints-freedom-disgust .corridor-bg {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, #0a0a12 0%, #12101a 50%, #0d0b12 100%);
  animation: qfd-breathe 12s ease-in-out infinite alternate;
}
.scn-quints-freedom-disgust .corridor-wall-left {
  position: absolute; inset: 5% 60% 5% 0;
  background: linear-gradient(90deg, #1a1825 0%, #12101a 60%, transparent 100%);
  border-right: 3px solid #2a2535;
  border-radius: 0 30% 30% 0 / 0 20% 20% 0;
  animation: qfd-wall 20s ease-in-out infinite;
}
.scn-quints-freedom-disgust .corridor-wall-right {
  position: absolute; inset: 5% 0 5% 60%;
  background: linear-gradient(270deg, #1a1825 0%, #12101a 60%, transparent 100%);
  border-left: 3px solid #2a2535;
  border-radius: 30% 0 0 30% / 20% 0 0 20%;
  animation: qfd-wall 20s ease-in-out infinite 10s;
}
.scn-quints-freedom-disgust .floor-tiles {
  position: absolute; inset: 70% 0 0 0;
  background: repeating-linear-gradient(90deg, #1a1825 0%, #1a1825 8%, #12101a 8%, #12101a 16%);
  transform: perspective(300px) rotateX(30deg);
  transform-origin: bottom center;
  animation: qfd-floor 30s linear infinite;
}
.scn-quints-freedom-disgust .quint-figure {
  position: absolute; bottom: 10%; left: 42%; width: 16%; height: 55%;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 40%, #050510 100%);
  border-radius: 30% 30% 15% 15% / 50% 50% 20% 20%;
  box-shadow: -10px 0 30px rgba(0,0,0,.8);
  animation: qfd-quint 8s ease-in-out infinite alternate;
}
.scn-quints-freedom-disgust .shadow-arch {
  position: absolute; top: 0; left: 35%; width: 30%; height: 60%;
  background: radial-gradient(ellipse at 50% 0%, rgba(0,0,0,.6) 0%, transparent 70%);
  border-radius: 50% 50% 0 0 / 80% 80% 0 0;
  animation: qfd-arch 15s ease-in-out infinite alternate;
}
.scn-quints-freedom-disgust .distant-door {
  position: absolute; top: 15%; left: 44%; width: 12%; height: 50%;
  background: linear-gradient(180deg, #2a2530 0%, #1a1820 100%);
  border: 2px solid #3a3345;
  border-radius: 2% 2% 0 0;
  box-shadow: inset 0 0 20px rgba(0,0,0,.7);
  animation: qfd-door 25s ease-in-out infinite alternate;
}
.scn-quints-freedom-disgust .dust-motes {
  position: absolute; inset: 0;
  background: radial-gradient(circle at 20% 30%, rgba(255,255,255,.03) 0%, transparent 10%),
              radial-gradient(circle at 80% 60%, rgba(255,255,255,.02) 0%, transparent 15%),
              radial-gradient(circle at 50% 20%, rgba(255,255,255,.01) 0%, transparent 20%);
  animation: qfd-dust 40s linear infinite;
}
@keyframes qfd-breathe { 0% { opacity:.8 } 50% { opacity:1 } 100% { opacity:.85 } }
@keyframes qfd-wall { 0% { transform: scaleY(1) } 50% { transform: scaleY(.98) } 100% { transform: scaleY(1) } }
@keyframes qfd-floor { 0% { background-position: 0 0 } 100% { background-position: 100% 0 } }
@keyframes qfd-quint { 0% { transform: translateY(0) scale(1) } 50% { transform: translateY(-3px) scale(1.02) } 100% { transform: translateY(0) scale(1) } }
@keyframes qfd-arch { 0% { opacity:.3 } 50% { opacity:.6 } 100% { opacity:.4 } }
@keyframes qfd-door { 0% { transform: scaleX(1) } 50% { transform: scaleX(.95) } 100% { transform: scaleX(1) } }
@keyframes qfd-dust { 0% { transform: translateY(0) } 50% { transform: translateY(-10px) } 100% { transform: translateY(0) } }

/* scene: testing-mrs-grose-last */
.scn-testing-mrs-grose-last {
  background: linear-gradient(180deg, #0d0d18 0%, #121025 30%, #0a0815 70%, #050510 100%),
              radial-gradient(ellipse at 60% 50%, #1a1a3a 0%, transparent 60%);
}
.scn-testing-mrs-grose-last .schoolroom-door {
  position: absolute; top: 5%; left: 30%; width: 40%; height: 80%;
  background: linear-gradient(180deg, #2a2535 0%, #1a1825 50%, #0d0b15 100%);
  border: 3px solid #3a3345;
  border-radius: 4% 4% 0 0;
  box-shadow: 0 0 40px rgba(0,0,0,.8), inset 0 0 30px rgba(0,0,0,.6);
  animation: tmg-door 10s ease-in-out infinite alternate;
}
.scn-testing-mrs-grose-last .door-frame {
  position: absolute; top: 3%; left: 28%; width: 44%; height: 84%;
  background: transparent;
  border: 6px solid #2a1a1a;
  border-radius: 6% 6% 0 0;
  box-shadow: 0 0 20px rgba(0,0,0,.5);
}
.scn-testing-mrs-grose-last .hand-on-door {
  position: absolute; bottom: 25%; left: 48%; width: 6%; height: 12%;
  background: linear-gradient(180deg, #3a2a22 0%, #2a1a14 100%);
  border-radius: 30% 30% 10% 10% / 50% 50% 20% 20%;
  transform: rotate(-10deg);
  transform-origin: 50% 90%;
  animation: tmg-hand 4s ease-in-out infinite alternate;
}
.scn-testing-mrs-grose-last .figure-grose {
  position: absolute; bottom: 5%; right: 18%; width: 18%; height: 55%;
  background: linear-gradient(180deg, #2a2220 0%, #1a1410 50%, #0a0805 100%);
  border-radius: 35% 30% 20% 20% / 55% 50% 30% 30%;
  animation: tmg-figure1 7s ease-in-out infinite;
}
.scn-testing-mrs-grose-last .figure-governess {
  position: absolute; bottom: 5%; left: 18%; width: 16%; height: 52%;
  background: linear-gradient(180deg, #2a2025 0%, #1a1018 50%, #0a050a 100%);
  border-radius: 30% 35% 20% 20% / 50% 55% 30% 30%;
  animation: tmg-figure2 7s ease-in-out infinite 2s;
}
.scn-testing-mrs-grose-last .midnight-window {
  position: absolute; top: 10%; left: 10%; width: 12%; height: 25%;
  background: linear-gradient(180deg, #0a0a2a 0%, #0a0a1a 100%);
  border: 2px solid #3a3a4a;
  border-radius: 2px;
  box-shadow: inset 0 0 20px rgba(0,0,30,.8), 0 0 0 4px #1a1a2a;
  animation: tmg-window 20s ease-in-out infinite alternate;
}
.scn-testing-mrs-grose-last .moonlight-beam {
  position: absolute; top: 10%; left: 10%; width: 12%; height: 60%;
  background: linear-gradient(180deg, rgba(150,150,255,.04) 0%, rgba(150,150,255,.01) 100%);
  clip-path: polygon(0 0, 100% 0, 200% 100%, -100% 100%);
  animation: tmg-beam 15s ease-in-out infinite alternate;
}
.scn-testing-mrs-grose-last .shadow-pool {
  position: absolute; bottom: 0; left: 25%; width: 50%; height: 30%;
  background: radial-gradient(ellipse at 50% 0%, rgba(0,0,0,.7) 0%, transparent 70%);
  animation: tmg-pool 12s ease-in-out infinite alternate;
}
@keyframes tmg-door { 0% { transform: scaleX(1) } 50% { transform: scaleX(.97) } 100% { transform: scaleX(1) } }
@keyframes tmg-hand { 0% { transform: rotate(-12deg) translateY(0) } 50% { transform: rotate(-8deg) translateY(-2px) } 100% { transform: rotate(-12deg) translateY(0) } }
@keyframes tmg-figure1 { 0% { transform: translateY(0) rotate(0) } 33% { transform: translateY(-2px) rotate(1deg) } 66% { transform: translateY(1px) rotate(-1deg) } 100% { transform: translateY(0) rotate(0) } }
@keyframes tmg-figure2 { 0% { transform: translateY(0) rotate(0) scale(1) } 50% { transform: translateY(-1px) rotate(-1deg) scale(1.01) } 100% { transform: translateY(0) rotate(0) scale(1) } }
@keyframes tmg-window { 0% { box-shadow: inset 0 0 20px rgba(0,0,30,.8) } 50% { box-shadow: inset 0 0 40px rgba(0,0,50,.9) } 100% { box-shadow: inset 0 0 20px rgba(0,0,30,.8) } }
@keyframes tmg-beam { 0% { opacity:.2 } 50% { opacity:.6 } 100% { opacity:.3 } }
@keyframes tmg-pool { 0% { opacity:.5 } 50% { opacity:.8 } 100% { opacity:.6 } }

/* scene: i-would-have-told */
.scn-i-would-have-told {
  background: linear-gradient(180deg, #1a1418 0%, #120e12 30%, #0a080a 70%, #050305 100%),
              radial-gradient(ellipse at 40% 50%, #2a1a22 0%, transparent 60%);
}
.scn-i-would-have-told .table {
  position: absolute; bottom: 10%; left: 20%; width: 60%; height: 8%;
  background: linear-gradient(180deg, #3a2a22 0%, #2a1a14 100%);
  border-radius: 4% 4% 2% 2%;
  box-shadow: 0 10px 30px rgba(0,0,0,.6);
  animation: iwt-table 12s ease-in-out infinite alternate;
}
.scn-i-would-have-told .candle-lamp {
  position: absolute; bottom: 25%; left: 45%; width: 4%; height: 14%;
  background: linear-gradient(180deg, #d4a060 0%, #a07040 50%, #805030 100%);
  border-radius: 30% 30% 10% 10% / 50% 50% 20% 20%;
  box-shadow: 0 0 15px rgba(200,150,80,.4);
  animation: iwt-lamp 3s ease-in-out infinite alternate;
}
.scn-i-would-have-told .lamp-glow {
  position: absolute; bottom: 18%; left: 36%; width: 28%; height: 28%;
  background: radial-gradient(circle, rgba(220,170,100,.12) 0%, rgba(220,170,100,.04) 40%, transparent 70%);
  border-radius: 50%;
  animation: iwt-glow 4s ease-in-out infinite alternate;
}
.scn-i-would-have-told .figure-left {
  position: absolute; bottom: 10%; left: 22%; width: 14%; height: 48%;
  background: linear-gradient(180deg, #2a2220 0%, #1a1410 50%, #0a0805 100%);
  border-radius: 30% 35% 20% 20% / 50% 55% 30% 30%;
  transform-origin: bottom center;
  animation: iwt-figL 6s ease-in-out infinite;
}
.scn-i-would-have-told .figure-right {
  position: absolute; bottom: 10%; right: 22%; width: 15%; height: 50%;
  background: linear-gradient(180deg, #3a2a25 0%, #2a1a15 50%, #1a0e0a 100%);
  border-radius: 35% 30% 20% 20% / 55% 50% 30% 30%;
  transform-origin: bottom center;
  animation: iwt-figR 7s ease-in-out infinite 1s;
}
.scn-i-would-have-told .chair-back {
  position: absolute; bottom: 15%; right: 20%; width: 4%; height: 30%;
  background: linear-gradient(180deg, #2a1a10 0%, #1a0e08 100%);
  border-radius: 10% 10% 5% 5%;
  transform: rotate(5deg);
  animation: iwt-chair 10s ease-in-out infinite;
}
.scn-i-would-have-told .wall-shadow {
  position: absolute; inset: 0;
  background: radial-gradient(ellipse at 45% 30%, rgba(0,0,0,.4) 0%, transparent 60%);
  animation: iwt-shadow 15s ease-in-out infinite alternate;
}
@keyframes iwt-table { 0% { transform: scaleX(1) } 50% { transform: scaleX(.98) } 100% { transform: scaleX(1) } }
@keyframes iwt-lamp { 0% { transform: scaleY(1) scaleX(1) } 30% { transform: scaleY(1.03) scaleX(.97) } 60% { transform: scaleY(.97) scaleX(1.02) } 100% { transform: scaleY(1) scaleX(1) } }
@keyframes iwt-glow { 0% { opacity:.4; transform: scale(1) } 50% { opacity:.8; transform: scale(1.15) } 100% { opacity:.5; transform: scale(.95) } }
@keyframes iwt-figL { 0% { transform: translateY(0) rotate(0) } 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 iwt-figR { 0% { transform: translateY(0) rotate(0) scale(1) } 33% { transform: translateY(-2px) rotate(1deg) scale(1.01) } 66% { transform: translateY(1px) rotate(-1deg) scale(.99) } 100% { transform: translateY(0) rotate(0) scale(1) } }
@keyframes iwt-chair { 0% { transform: rotate(5deg) } 50% { transform: rotate(3deg) } 100% { transform: rotate(5deg) } }
@keyframes iwt-shadow { 0% { opacity:.5 } 50% { opacity:.8 } 100% { opacity:.6 } }

/* terrace-talk – sunlit, dark mood */
.scn-terrace-talk {
  background: 
    linear-gradient(180deg, #87CEEB 0%, #f0d78c 40%, #d4a76a 100%),
    radial-gradient(ellipse at 50% 0%, #ffffff66 0%, transparent 60%);
}
.scn-terrace-talk .tt-sky {
  position:absolute; inset:0 0 45% 0;
  background: linear-gradient(180deg, #b0e0ff 0%, #f5d98e 70%, transparent 100%);
  animation: tt-sky 20s ease-in-out infinite alternate;
}
.scn-terrace-talk .tt-sun {
  position:absolute; top:8%; left:60%; width:40px; height:40px;
  background: radial-gradient(circle, #ffeeb0 0%, #f0c060 60%, transparent 80%);
  border-radius:50%; box-shadow: 0 0 60px 30px #ffd58088;
  animation: tt-sunpulse 6s ease-in-out infinite;
}
.scn-terrace-talk .tt-terrace {
  position:absolute; bottom:0; left:0; right:0; height:50%;
  background: linear-gradient(180deg, #b8956a 0%, #8b6e4a 40%, #5a4530 100%);
  border-radius: 60% 40% 0 0 / 30% 20% 0 0;
  box-shadow: inset 0 10px 20px #00000033;
  animation: tt-ground 12s ease-in-out infinite alternate;
}
.scn-terrace-talk .tt-railing {
  position:absolute; bottom:30%; left:5%; right:5%; height:8px;
  background: #3a2a1a; border-radius: 4px;
  box-shadow: 0 -6px 0 #3a2a1a, 0 -12px 0 #3a2a1a;
  animation: tt-rail 8s ease-in-out infinite;
}
.scn-terrace-talk .tt-tapestry {
  position:absolute; top:15%; left:5%; width:25%; height:40%;
  background: linear-gradient(135deg, #6a4a2a 0%, #4a2a1a 40%, #8a6a4a 100%);
  border-radius: 4px; box-shadow: inset 0 0 20px #00000044, 4px 0 8px #00000033;
  animation: tt-tap 14s ease-in-out infinite alternate;
}
.scn-terrace-talk .tt-figure {
  position:absolute; bottom:24%; left:30%; width:28px; height:60px;
  background: linear-gradient(180deg, #2a1a1a 0%, #1a0a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: tt-walk 5s ease-in-out infinite;
}
.scn-terrace-talk .tt-shadow {
  position:absolute; bottom:20%; left:25%; width:60px; height:20px;
  background: radial-gradient(ellipse, #00000066 0%, transparent 70%);
  animation: tt-shadow 5s ease-in-out infinite;
}
.scn-terrace-talk .tt-pot {
  position:absolute; bottom:22%; left:70%; width:24px; height:36px;
  background: linear-gradient(180deg, #b04020 0%, #802818 100%);
  border-radius: 10% 10% 20% 20%;
  animation: tt-pot 10s ease-in-out infinite;
}
.scn-terrace-talk .tt-vine {
  position:absolute; bottom:35%; left:68%; width:6px; height:30px;
  background: #3a6a2a; border-radius: 50%;
  transform-origin: bottom center;
  animation: tt-vine 4s ease-in-out infinite alternate;
}
@keyframes tt-sky { 0% { opacity:.8; filter:brightness(1) } 50% { opacity:1; filter:brightness(1.1) } 100% { opacity:.85; filter:brightness(.95) } }
@keyframes tt-sunpulse { 0% { transform:scale(1); box-shadow:0 0 40px 20px #ffd58088 } 50% { transform:scale(1.08); box-shadow:0 0 60px 30px #ffe090aa } 100% { transform:scale(1); box-shadow:0 0 40px 20px #ffd58088 } }
@keyframes tt-ground { 0% { transform:translateY(0) } 50% { transform:translateY(-2px) } 100% { transform:translateY(1px) } }
@keyframes tt-rail { 0%,100% { filter:brightness(1) } 50% { filter:brightness(.8) } }
@keyframes tt-tap { 0% { transform:rotate(0deg) } 50% { transform:rotate(1deg) } 100% { transform:rotate(-1deg) } }
@keyframes tt-walk { 0% { transform:translateX(0) translateY(0) rotate(-1deg) } 25% { transform:translateX(6px) translateY(-2px) rotate(1deg) } 50% { transform:translateX(12px) translateY(0) rotate(-1deg) } 75% { transform:translateX(18px) translateY(-1px) rotate(1deg) } 100% { transform:translateX(24px) translateY(0) rotate(0) } }
@keyframes tt-shadow { 0%,100% { transform:scaleX(1); opacity:.6 } 50% { transform:scaleX(1.1); opacity:.8 } }
@keyframes tt-pot { 0%,100% { transform:translateY(0) } 50% { transform:translateY(-3px) } }
@keyframes tt-vine { 0% { transform:rotate(-15deg) } 100% { transform:rotate(15deg) } }

/* interview-with-miles – moonlit, dark mood */
.scn-interview-with-miles {
  background:
    linear-gradient(135deg, #0a0e1a 0%, #1a2240 60%, #2a3a5a 100%),
    radial-gradient(ellipse at 80% 30%, #3a5a8a44 0%, transparent 60%);
}
.scn-interview-with-miles .iw-wall {
  position:absolute; inset:0;
  background: linear-gradient(180deg, #1a1e2a 0%, #0a0e1a 100%);
  animation: iw-wall 20s ease-in-out infinite;
}
.scn-interview-with-miles .iw-window {
  position:absolute; top:10%; left:40%; width:30%; height:50%;
  background: #0a1a2a; border-radius: 8px;
  box-shadow: inset 0 0 60px 20px #4a6a8a44, 0 0 30px 10px #6a8aaa22;
  animation: iw-window 12s ease-in-out infinite alternate;
}
.scn-interview-with-miles .iw-moon {
  position:absolute; top:15%; left:60%; width:30px; height:30px;
  background: radial-gradient(circle, #d0e0f0 0%, #a0b8d0 70%, transparent 100%);
  border-radius:50%;
  box-shadow: 0 0 80px 40px #a0b8d066;
  animation: iw-moon 18s ease-in-out infinite;
}
.scn-interview-with-miles .iw-bed {
  position:absolute; bottom:10%; left:15%; right:15%; height:20%;
  background: linear-gradient(180deg, #3a2a1a 0%, #2a1a0a 100%);
  border-radius: 20% 20% 10% 10%;
  box-shadow: 0 -4px 8px #00000044;
  animation: iw-bed 10s ease-in-out infinite alternate;
}
.scn-interview-with-miles .iw-figure {
  position:absolute; bottom:22%; left:50%; width:22px; height:45px;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform: translateX(-50%);
  animation: iw-figure 6s ease-in-out infinite;
}
.scn-interview-with-miles .iw-sheet {
  position:absolute; bottom:10%; left:20%; width:40%; height:8%;
  background: linear-gradient(180deg, #c0c8d0aa 0%, #a0a8b088 100%);
  border-radius: 4px;
  animation: iw-sheet 8s ease-in-out infinite alternate;
}
.scn-interview-with-miles .iw-shadow {
  position:absolute; bottom:15%; left:40%; width:80px; height:30px;
  background: radial-gradient(ellipse, #00000088 0%, transparent 70%);
  animation: iw-shadow 6s ease-in-out infinite;
}
.scn-interview-with-miles .iw-beam {
  position:absolute; top:15%; left:55%; width:4px; height:40%;
  background: linear-gradient(180deg, #a0b8d066 0%, transparent 100%);
  transform: rotate(-10deg);
  filter: blur(2px);
  animation: iw-beam 15s ease-in-out infinite;
}
.scn-interview-with-miles .iw-wardrobe {
  position:absolute; top:10%; right:10%; width:20%; height:50%;
  background: linear-gradient(180deg, #2a1a0a 0%, #1a0a00 100%);
  border-radius: 4px;
  box-shadow: inset 0 0 10px #00000044;
  animation: iw-wardrobe 20s ease-in-out infinite alternate;
}
@keyframes iw-wall { 0%,100% { opacity:.8 } 50% { opacity:1 } }
@keyframes iw-window { 0% { box-shadow:0 0 40px 15px #4a6a8a44; opacity:.9 } 50% { box-shadow:0 0 60px 25px #6a8aaa66; opacity:1 } 100% { box-shadow:0 0 40px 15px #4a6a8a44; opacity:.9 } }
@keyframes iw-moon { 0% { transform:translateY(0) scale(1) } 50% { transform:translateY(-5px) scale(1.02) } 100% { transform:translateY(2px) scale(1) } }
@keyframes iw-bed { 0% { transform:translateY(0) } 50% { transform:translateY(-2px) } 100% { transform:translateY(0) } }
@keyframes iw-figure { 0% { transform:translate(-50%,0) rotate(-2deg) } 25% { transform:translate(-50%,-2px) rotate(0deg) } 50% { transform:translate(-50%,0) rotate(2deg) } 75% { transform:translate(-50%,-1px) rotate(0deg) } 100% { transform:translate(-50%,0) rotate(-2deg) } }
@keyframes iw-sheet { 0% { opacity:.6 } 50% { opacity:.8 } 100% { opacity:.6 } }
@keyframes iw-shadow { 0%,100% { opacity:.5; transform:scaleX(1) } 50% { opacity:.7; transform:scaleX(1.1) } }
@keyframes iw-beam { 0% { opacity:.3 } 50% { opacity:.6 } 100% { opacity:.3 } }
@keyframes iw-wardrobe { 0% { filter:brightness(1) } 50% { filter:brightness(.7) } 100% { filter:brightness(1) } }

/* terrace-conclusion – sunlit, dark mood (similar to terrace-talk but different composition) */
.scn-terrace-conclusion {
  background:
    linear-gradient(180deg, #7eb8d0 0%, #e8c88a 35%, #c4a06a 70%, #8a6a4a 100%),
    radial-gradient(ellipse at 20% 10%, #ffe8b066 0%, transparent 50%);
}
.scn-terrace-conclusion .tc-sky {
  position:absolute; inset:0 0 40% 0;
  background: linear-gradient(180deg, #a0d8f0 0%, #f0d898 100%);
  animation: tc-sky 25s ease-in-out infinite alternate;
}
.scn-terrace-conclusion .tc-sun {
  position:absolute; top:12%; left:30%; width:35px; height:35px;
  background: radial-gradient(circle, #fff0b0 0%, #e8b040 70%, transparent 90%);
  border-radius:50%;
  box-shadow: 0 0 50px 25px #e8b04088;
  animation: tc-sun 7s ease-in-out infinite;
}
.scn-terrace-conclusion .tc-terrace {
  position:absolute; bottom:0; left:0; right:0; height:45%;
  background: linear-gradient(180deg, #a08060 0%, #705040 100%);
  border-radius: 50% 50% 0 0 / 20% 20% 0 0;
  box-shadow: inset 0 8px 16px #00000044;
  animation: tc-ground 14s ease-in-out infinite;
}
.scn-terrace-conclusion .tc-railing {
  position:absolute; bottom:35%; left:10%; right:10%; height:6px;
  background: #4a3520; border-radius: 3px;
  box-shadow: 0 -10px 0 #4a3520, 0 -20px 0 #4a3520;
}
.scn-terrace-conclusion .tc-figure1 {
  position:absolute; bottom:25%; left:25%; width:26px; height:55px;
  background: linear-gradient(180deg, #1a1510 0%, #0a0a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: tc-figure1 6s ease-in-out infinite;
}
.scn-terrace-conclusion .tc-figure2 {
  position:absolute; bottom:25%; left:55%; width:24px; height:50px;
  background: linear-gradient(180deg, #1a1510 0%, #0a0a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: tc-figure2 6s ease-in-out infinite 1s;
}
.scn-terrace-conclusion .tc-shadow {
  position:absolute; bottom:20%; left:20%; width:70px; height:15px;
  background: radial-gradient(ellipse, #00000044 0%, transparent 70%);
  animation: tc-shadow 6s ease-in-out infinite;
}
.scn-terrace-conclusion .tc-plant {
  position:absolute; bottom:22%; left:70%; width:20px; height:30px;
  background: linear-gradient(180deg, #3a6a2a 0%, #2a4a1a 100%);
  border-radius: 30% 30% 40% 40%;
  transform: rotate(5deg);
  animation: tc-plant 8s ease-in-out infinite alternate;
}
.scn-terrace-conclusion .tc-pillar {
  position:absolute; top:0; left:45%; width:10%; height:100%;
  background: linear-gradient(180deg, #c0b090 0%, #a08870 50%, #806850 100%);
  border-radius: 4px;
  box-shadow: 0 0 10px #00000022;
  animation: tc-pillar 20s ease-in-out infinite alternate;
}
@keyframes tc-sky { 0% { opacity:.8 } 50% { opacity:1 } 100% { opacity:.85 } }
@keyframes tc-sun { 0% { transform:scale(1); box-shadow:0 0 40px 20px #e8b04088 } 50% { transform:scale(1.1); box-shadow:0 0 60px 30px #f0c060aa } 100% { transform:scale(1); box-shadow:0 0 40px 20px #e8b04088 } }
@keyframes tc-ground { 0%,100% { transform:translateY(0) } 50% { transform:translateY(-2px) } }
@keyframes tc-figure1 { 0% { transform:translateX(0) translateY(0) rotate(-2deg) } 25% { transform:translateX(4px) translateY(-2px) rotate(1deg) } 50% { transform:translateX(8px) translateY(0) rotate(-1deg) } 75% { transform:translateX(12px) translateY(-1px) rotate(2deg) } 100% { transform:translateX(0) translateY(0) rotate(-2deg) } }
@keyframes tc-figure2 { 0% { transform:translateX(0) translateY(0) rotate(2deg) } 25% { transform:translateX(-3px) translateY(-2px) rotate(-1deg) } 50% { transform:translateX(-6px) translateY(0) rotate(1deg) } 75% { transform:translateX(-9px) translateY(-1px) rotate(-2deg) } 100% { transform:translateX(0) translateY(0) rotate(2deg) } }
@keyframes tc-shadow { 0%,100% { opacity:.4; transform:scaleX(1) } 50% { opacity:.6; transform:scaleX(1.2) } }
@keyframes tc-plant { 0% { transform:rotate(-5deg) } 100% { transform:rotate(10deg) } }
@keyframes tc-pillar { 0% { filter:brightness(1) } 50% { filter:brightness(.9) } 100% { filter:brightness(1.05) } }

/* subsequent-month – dim-interior, dark mood */
.scn-subsequent-month {
  background:
    linear-gradient(135deg, #1a1512 0%, #2a2218 40%, #3a2a1a 80%, #1a1510 100%),
    radial-gradient(ellipse at 50% 60%, #3a2a1a88 0%, transparent 60%);
}
.scn-subsequent-month .sm-wall {
  position:absolute; inset:0;
  background: linear-gradient(180deg, #1a1512 0%, #0e0c0a 100%);
  animation: sm-wall 30s ease-in-out infinite;
}
.scn-subsequent-month .sm-floor {
  position:absolute; bottom:0; left:0; right:0; height:25%;
  background: linear-gradient(180deg, #2a1a10 0%, #1a0e08 100%);
  border-radius: 20% 20% 0 0;
  box-shadow: inset 0 4px 8px #00000066;
}
.scn-subsequent-month .sm-lamp {
  position:absolute; top:20%; left:20%; width:8px; height:50px;
  background: #4a3a2a; border-radius: 4px;
  transform: rotate(5deg);
}
.scn-subsequent-month .sm-glow {
  position:absolute; top:18%; left:16%; width:40px; height:40px;
  background: radial-gradient(circle, #c08040aa 0%, #a06830aa 40%, transparent 70%);
  border-radius:50%;
  box-shadow: 0 0 30px 15px #b07038aa;
  animation: sm-glow 5s ease-in-out infinite alternate;
}
.scn-subsequent-month .sm-chair {
  position:absolute; bottom:22%; left:30%; width:30px; height:40px;
  background: linear-gradient(180deg, #3a2a1a 0%, #2a1a0a 100%);
  border-radius: 10% 10% 20% 20%;
  box-shadow: inset 0 4px 8px #00000044;
  transform: rotate(-3deg);
  animation: sm-chair 12s ease-in-out infinite alternate;
}
.scn-subsequent-month .sm-figure {
  position:absolute; bottom:20%; left:45%; width:24px; height:48px;
  background: linear-gradient(180deg, #1a1a1a 0%, #0a0a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: sm-figure 6s ease-in-out infinite;
}
.scn-subsequent-month .sm-table {
  position:absolute; bottom:18%; left:55%; width:40px; height:8px;
  background: #3a2a1a; border-radius: 4px;
  box-shadow: 0 8px 0 #2a1a0a;
  animation: sm-table 14s ease-in-out infinite;
}
.scn-subsequent-month .sm-candle {
  position:absolute; bottom:28%; left:60%; width:4px; height:14px;
  background: #5a4a3a; border-radius: 2px;
}
.scn-subsequent-month .sm-shadow {
  position:absolute; bottom:15%; left:35%; width:80px; height:20px;
  background: radial-gradient(ellipse, #00000066 0%, transparent 70%);
  animation: sm-shadow 6s ease-in-out infinite;
}
@keyframes sm-wall { 0%,100% { opacity:.9 } 50% { opacity:1 } }
@keyframes sm-glow { 0% { opacity:.5; transform:scale(.95) } 50% { opacity:.8; transform:scale(1.1) } 100% { opacity:.6; transform:scale(1) } }
@keyframes sm-chair { 0% { transform:rotate(-5deg) translateY(0) } 50% { transform:rotate(0deg) translateY(-2px) } 100% { transform:rotate(-3deg) translateY(0) } }
@keyframes sm-figure { 0% { transform:translateX(0) translateY(0) rotate(-1deg) } 25% { transform:translateX(4px) translateY(-1px) rotate(1deg) } 50% { transform:translateX(8px) translateY(0) rotate(-1deg) } 75% { transform:translateX(12px) translateY(-1px) rotate(1deg) } 100% { transform:translateX(16px) translateY(0) rotate(0) } }
@keyframes sm-table { 0%,100% { transform:translateY(0) } 50% { transform:translateY(-2px) } }
@keyframes sm-shadow { 0%,100% { opacity:.5; transform:scaleX(1) } 50% { opacity:.7; transform:scaleX(1.15) } }

.scn-church-approach {
  background:
    linear-gradient(180deg, #4a8ac7 0%, #f5d48a 60%, #e8b45a 100%),
    radial-gradient(ellipse at 70% 30%, #f5d48a90 0%, transparent 60%);
}
.scn-church-approach .sky {
  position: absolute; inset: 0 0 45% 0;
  background: linear-gradient(180deg, #6aa8e0 0%, transparent 100%);
  animation: ca-sky 10s ease-in-out infinite alternate;
}
.scn-church-approach .sun {
  position: absolute; top: 8%; left: 30%; width: 60px; height: 60px;
  background: radial-gradient(circle, #fff9e0 0%, #f5d48a 60%, transparent 100%);
  border-radius: 50%;
  animation: ca-sun 6s ease-in-out infinite alternate;
}
.scn-church-approach .path {
  position: absolute; bottom: 0; left: 25%; right: 25%; height: 20%;
  background: linear-gradient(180deg, #b8895c 0%, #8b6740 100%);
  border-radius: 20% 20% 0 0 / 40% 40% 0 0;
  transform: perspective(400px) rotateX(6deg);
  animation: ca-path 15s ease-in-out infinite;
}
.scn-church-approach .church {
  position: absolute; bottom: 30%; left: 15%; width: 35%; height: 50%;
  background: linear-gradient(180deg, #e0d5c0 0%, #b8a88a 100%);
  clip-path: polygon(0% 100%, 0% 30%, 50% 0%, 100% 30%, 100% 100%);
  box-shadow: 0 -10px 30px rgba(0,0,0,0.3);
  animation: ca-church 12s ease-in-out infinite alternate;
}
.scn-church-approach .door {
  position: absolute; bottom: 25%; left: 30%; width: 15%; height: 25%;
  background: linear-gradient(180deg, #5c3f2a 0%, #3a2516 100%);
  border-radius: 30% 30% 0 0;
  animation: ca-door 8s ease-in-out infinite;
}
.scn-church-approach .window {
  position: absolute; bottom: 45%; left: 35%; width: 8%; height: 12%;
  background: radial-gradient(circle, #f0d78a 0%, #b89650 70%, transparent 100%);
  border-radius: 0 0 30% 30%;
  animation: ca-window 4s ease-in-out infinite alternate;
}
.scn-church-approach .figure {
  position: absolute; bottom: 5%; left: 48%; width: 10px; height: 30px;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: ca-figure 3s ease-in-out infinite;
}
.scn-church-approach .shadow {
  position: absolute; bottom: 0; left: 44%; width: 20px; height: 8px;
  background: #0003;
  border-radius: 50%;
  filter: blur(3px);
  animation: ca-shadow 3s ease-in-out infinite;
}
@keyframes ca-sky { 0% { opacity:0.9 } 50% { opacity:1 } 100% { opacity:0.85 } }
@keyframes ca-sun { 0% { transform:scale(0.95); opacity:0.8 } 50% { transform:scale(1.05); opacity:1 } 100% { transform:scale(0.98); opacity:0.9 } }
@keyframes ca-path { 0%,100% { transform: perspective(400px) rotateX(6deg) translateY(0); } 50% { transform: perspective(400px) rotateX(6deg) translateY(-1px); } }
@keyframes ca-church { 0% { filter: brightness(0.95); } 50% { filter: brightness(1); } 100% { filter: brightness(0.97); } }
@keyframes ca-door { 0%,100% { transform: scaleX(1); } 50% { transform: scaleX(0.98) scaleY(1.02); } }
@keyframes ca-window { 0% { opacity:0.7; box-shadow: 0 0 10px #b89650; } 50% { opacity:1; box-shadow: 0 0 20px #f0d78a; } 100% { opacity:0.8; box-shadow: 0 0 12px #b89650; } }
@keyframes ca-figure { 0% { transform: translateX(0) translateY(0) rotate(0deg); } 33% { transform: translateX(8px) translateY(-2px) rotate(2deg); } 66% { transform: translateX(18px) translateY(0) rotate(-1deg); } 100% { transform: translateX(28px) translateY(0) rotate(0deg); } }
@keyframes ca-shadow { 0%,100% { transform: scaleX(1); opacity:0.6; } 50% { transform: scaleX(1.3); opacity:0.8; } }

.scn-my-own-sort {
  background:
    linear-gradient(180deg, #78b8e8 0%, #fce38a 60%, #f0c674 100%),
    radial-gradient(ellipse at 60% 20%, #fff6c0 0%, transparent 60%);
}
.scn-my-own-sort .sky {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(180deg, #8ac0f0 0%, transparent 100%);
  animation: ms-sky 12s ease-in-out infinite alternate;
}
.scn-my-own-sort .sun {
  position: absolute; top: 10%; left: 70%; width: 50px; height: 50px;
  background: radial-gradient(circle, #fffbe0 0%, #fce38a 60%, transparent 100%);
  border-radius: 50%;
  animation: ms-sun 5s ease-in-out infinite alternate;
}
.scn-my-own-sort .ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 35%;
  background: linear-gradient(180deg, #b0c878 0%, #7a9a4e 100%);
  border-radius: 30% 30% 0 0 / 60% 60% 0 0;
}
.scn-my-own-sort .tree {
  position: absolute; bottom: 25%; left: 20%; width: 60px; height: 120px;
  background: linear-gradient(180deg, #5a3a1a 0%, #2a1a0a 100%);
  border-radius: 20% 20% 40% 40% / 40% 40% 60% 60%;
  transform-origin: bottom center;
  animation: ms-tree 7s ease-in-out infinite;
}
.scn-my-own-sort .tree::after {
  content: ''; position: absolute; top: -30px; left: -20px; width: 100px; height: 80px;
  background: radial-gradient(ellipse, #6a9a3a 0%, #3a5a1a 100%);
  border-radius: 50%;
  filter: blur(3px);
  animation: ms-tree 7s ease-in-out infinite reverse;
}
.scn-my-own-sort .adult {
  position: absolute; bottom: 5%; left: 35%; width: 16px; height: 48px;
  background: linear-gradient(180deg, #1c1c2e 0%, #0e0e1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: ms-adult 4s ease-in-out infinite;
}
.scn-my-own-sort .child {
  position: absolute; bottom: 5%; left: 50%; width: 10px; height: 28px;
  background: linear-gradient(180deg, #1c1c2e 0%, #0e0e1a 100%);
  border-radius: 50% 50% 40% 40% / 55% 60% 35% 40%;
  transform-origin: bottom center;
  animation: ms-child 3s ease-in-out infinite;
}
.scn-my-own-sort .shadow-adult {
  position: absolute; bottom: 0; left: 33%; width: 24px; height: 8px;
  background: #0002; border-radius: 50%; filter: blur(4px);
  animation: ms-shadow 4s ease-in-out infinite;
}
.scn-my-own-sort .shadow-child {
  position: absolute; bottom: 0; left: 48%; width: 14px; height: 6px;
  background: #0002; border-radius: 50%; filter: blur(3px);
  animation: ms-shadow 3s ease-in-out infinite;
}
@keyframes ms-sky { 0% { opacity:0.85 } 50% { opacity:1 } 100% { opacity:0.9 } }
@keyframes ms-sun { 0% { transform:scale(0.9); opacity:0.7 } 50% { transform:scale(1.1); opacity:1 } 100% { transform:scale(0.95); opacity:0.8 } }
@keyframes ms-tree { 0% { transform:rotate(0deg); } 25% { transform:rotate(2deg); } 75% { transform:rotate(-2deg); } 100% { transform:rotate(0deg); } }
@keyframes ms-adult { 0% { transform:translateX(0) rotate(0deg); } 25% { transform:translateX(5px) rotate(-2deg); } 50% { transform:translateX(10px) rotate(0deg); } 75% { transform:translateX(15px) rotate(2deg); } 100% { transform:translateX(20px) rotate(0deg); } }
@keyframes ms-child { 0% { transform:translateX(0) translateY(0) rotate(0deg); } 30% { transform:translateX(-4px) translateY(-2px) rotate(-3deg); } 70% { transform:translateX(-8px) translateY(2px) rotate(3deg); } 100% { transform:translateX(0) translateY(0) rotate(0deg); } }
@keyframes ms-shadow { 0%,100% { transform:scaleX(1); opacity:0.5; } 50% { transform:scaleX(1.4); opacity:0.8; } }

.scn-tomb-pause {
  background:
    linear-gradient(180deg, #4a4a5a 0%, #3a3a4a 40%, #2a2a3a 80%, #1a1a2a 100%),
    radial-gradient(ellipse at 50% 100%, #2a2a3a 0%, transparent 70%);
}
.scn-tomb-pause .sky-overcast {
  position: absolute; inset: 0 0 35% 0;
  background: linear-gradient(180deg, #5a5a6a 0%, #3a3a4a 100%);
  animation: tp-sky 20s ease-in-out infinite alternate;
}
.scn-tomb-pause .ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #3a4a3a 0%, #1a2a1a 100%);
  border-radius: 20% 20% 0 0 / 50% 50% 0 0;
}
.scn-tomb-pause .tomb {
  position: absolute; bottom: 15%; left: 35%; width: 30%; height: 18%;
  background: linear-gradient(180deg, #6a6a6a 0%, #4a4a4a 100%);
  border-radius: 20% 20% 0 0;
  box-shadow: 0 4px 12px #0005;
  animation: tp-tomb 10s ease-in-out infinite;
}
.scn-tomb-pause .cross {
  position: absolute; bottom: 28%; left: 47%; width: 4%; height: 20%;
  background: linear-gradient(180deg, #8a8a7a 0%, #5a5a4a 100%);
  border-radius: 20%;
  animation: tp-cross 15s ease-in-out infinite alternate;
}
.scn-tomb-pause .cross::after {
  content: ''; position: absolute; top: 0; left: -40%; width: 180%; height: 20%;
  background: inherit; border-radius: 20%;
}
.scn-tomb-pause .figure-miles {
  position: absolute; bottom: 5%; left: 30%; width: 10px; height: 30px;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 50% 50% 40% 40% / 55% 55% 35% 40%;
  transform-origin: bottom center;
  animation: tp-miles 6s ease-in-out infinite alternate;
}
.scn-tomb-pause .figure-narrator {
  position: absolute; bottom: 5%; left: 50%; width: 14px; height: 44px;
  background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 45%;
  transform-origin: bottom center;
  animation: tp-narrator 7s ease-in-out infinite alternate;
}
.scn-tomb-pause .branch {
  position: absolute; top: 5%; left: 10%; width: 40%; height: 20%;
  background: linear-gradient(180deg, #2a1a0a 0%, #1a0a00 100%);
  border-radius: 0 40% 40% 0;
  transform-origin: left center;
  animation: tp-branch 9s ease-in-out infinite;
}
@keyframes tp-sky { 0% { opacity:0.85 } 50% { opacity:0.95 } 100% { opacity:0.8 } }
@keyframes tp-tomb { 0%,100% { transform:translateY(0); box-shadow:0 4px 12px #0005; } 50% { transform:translateY(-2px); box-shadow:0 6px 18px #0008; } }
@keyframes tp-cross { 0% { filter: brightness(0.9); } 50% { filter: brightness(1); } 100% { filter: brightness(0.95); } }
@keyframes tp-miles { 0% { transform:translateX(0) rotate(0deg); } 50% { transform:translateX(3px) rotate(2deg); } 100% { transform:translateX(0) rotate(0deg); } }
@keyframes tp-narrator { 0% { transform:translateX(0) rotate(0deg); } 50% { transform:translateX(-2px) rotate(-1deg); } 100% { transform:translateX(0) rotate(0deg); } }
@keyframes tp-branch { 0%,100% { transform:rotate(0deg); } 50% { transform:rotate(3deg); } }

.scn-uncle-opinion {
  background:
    linear-gradient(180deg, #3a3a4a 0%, #2a2a3a 50%, #1a1a2a 100%),
    radial-gradient(ellipse at 30% 40%, #4a4a5a 0%, transparent 70%);
}
.scn-uncle-opinion .wall {
  position: absolute; inset: 0;
  background: linear-gradient(135deg, #4a4a5a 0%, #2a2a3a 100%);
  animation: uo-wall 20s ease-in-out infinite alternate;
}
.scn-uncle-opinion .window {
  position: absolute; top: 10%; left: 10%; width: 30%; height: 40%;
  background: radial-gradient(ellipse at center, #6a6a7a 0%, #3a3a4a 100%);
  border-radius: 10%;
  box-shadow: inset 0 0 20px #1a1a2a;
  animation: uo-window 8s ease-in-out infinite;
}
.scn-uncle-opinion .desk {
  position: absolute; bottom: 10%; left: 20%; width: 50%; height: 20%;
  background: linear-gradient(180deg, #5a3a2a 0%, #3a2010 100%);
  border-radius: 10% 10% 0 0;
  box-shadow: 0 -6px 12px #0005;
}
.scn-uncle-opinion .letter {
  position: absolute; bottom: 16%; left: 35%; width: 12%; height: 8%;
  background: linear-gradient(135deg, #f0e8d0 0%, #c8b898 100%);
  border-radius: 5%;
  transform: rotate(-8deg);
  animation: uo-letter 3s ease-in-out infinite;
}
.scn-uncle-opinion .figure-uncle {
  position: absolute; bottom: 5%; left: 45%; width: 18px; height: 50px;
  background: linear-gradient(180deg, #1c1c2e 0%, #0e0e1a 100%);
  border-radius: 50% 50% 40% 40% / 55% 60% 40% 45%;
  transform-origin: bottom center;
  animation: uo-figure 5s ease-in-out infinite;
}
.scn-uncle-opinion .shadow {
  position: absolute; bottom: 0; left: 40%; width: 40px; height: 10px;
  background: #0003; border-radius: 50%; filter: blur(5px);
  animation: uo-shadow 5s ease-in-out infinite;
}
@keyframes uo-wall { 0% { filter: brightness(0.95); } 50% { filter: brightness(1.02); } 100% { filter: brightness(0.96); } }
@keyframes uo-window { 0% { opacity:0.7; box-shadow:inset 0 0 20px #1a1a2a; } 50% { opacity:0.9; box-shadow:inset 0 0 40px #2a2a3a; } 100% { opacity:0.75; box-shadow:inset 0 0 20px #1a1a2a; } }
@keyframes uo-letter { 0%,100% { transform:rotate(-8deg) translateY(0); } 50% { transform:rotate(-6deg) translateY(-2px); } }
@keyframes uo-figure { 0% { transform: translateX(0) rotate(0deg); } 25% { transform: translateX(2px) rotate(-2deg); } 75% { transform: translateX(-2px) rotate(1deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes uo-shadow { 0%,100% { opacity:0.5; transform:scaleX(1); } 50% { opacity:0.8; transform:scaleX(1.2); } }

/* Scene: adjured-to-write-first-post */
.scn-adjured-to-write-first-post {
  background: linear-gradient(180deg, #2a1a0a 0%, #1a0a00 100%), radial-gradient(ellipse at 50% 0%, #4a2a0a 0%, transparent 60%);
}
.scn-adjured-to-write-first-post .wall { position:absolute; inset:0 0 55% 0; background: linear-gradient(180deg, #3a2a1a 0%, #1a1008 100%); animation: awf-wall 20s ease-in-out infinite alternate; }
.scn-adjured-to-write-first-post .desk { position:absolute; bottom:20%; left:10%; right:10%; height:25%; background: linear-gradient(180deg, #6a4a2a 0%, #3a2a1a 100%); border-radius: 4px 4px 0 0; box-shadow: 0 8px 16px rgba(0,0,0,0.6); animation: awf-desk 12s ease-in-out infinite; }
.scn-adjured-to-write-first-post .candle { position:absolute; bottom:38%; left:48%; width:14px; height:50px; background: linear-gradient(180deg, #d4a050 0%, #8a5a20 100%); border-radius: 3px 3px 2px 2px; box-shadow: 0 0 20px 8px #ff8030, 0 0 40px 16px rgba(255,128,48,0.4); animation: awf-candle 3s ease-in-out infinite; }
.scn-adjured-to-write-first-post .hand { position:absolute; bottom:30%; left:38%; width:30px; height:40px; background: linear-gradient(180deg, #3a2a1a 0%, #1a1008 100%); border-radius: 40% 60% 50% 50% / 30% 50% 50% 30%; transform-origin: 50% 80%; animation: awf-hand 4s ease-in-out infinite; }
.scn-adjured-to-write-first-post .parchment { position:absolute; bottom:22%; left:30%; width:100px; height:60px; background: linear-gradient(135deg, #f0e0c0 0%, #d0b080 50%, #b09060 100%); border-radius: 2px; box-shadow: 0 4px 8px rgba(0,0,0,0.3); animation: awf-parchment 7s ease-in-out infinite; }
.scn-adjured-to-write-first-post .inkwell { position:absolute; bottom:25%; left:56%; width:24px; height:20px; background: radial-gradient(circle at 30% 30%, #4a3a2a 0%, #2a1a0a 100%); border-radius: 50% 50% 40% 40%; box-shadow: 0 2px 6px rgba(0,0,0,0.5); animation: awf-inkwell 5s ease-in-out infinite; }
@keyframes awf-wall { 0% { opacity:0.9 } 50% { opacity:1 } 100% { opacity:0.85 } }
@keyframes awf-desk { 0%,100% { transform: translateY(0) } 50% { transform: translateY(-2px) } }
@keyframes awf-candle { 0% { box-shadow: 0 0 18px 6px #ff8030, 0 0 36px 12px rgba(255,128,48,0.3); opacity:0.9; transform: scaleY(1) } 50% { box-shadow: 0 0 30px 12px #ffa050, 0 0 60px 20px rgba(255,160,80,0.5); opacity:1; transform: scaleY(1.02) } 100% { box-shadow: 0 0 22px 8px #ff8030, 0 0 44px 15px rgba(255,128,48,0.35); opacity:0.92; transform: scaleY(0.98) } }
@keyframes awf-hand { 0% { transform: translate(0,0) rotate(-5deg) } 30% { transform: translate(3px,-1px) rotate(3deg) } 60% { transform: translate(6px,-2px) rotate(-2deg) } 100% { transform: translate(9px,-3px) rotate(0deg) } }
@keyframes awf-parchment { 0%,100% { transform: translate(0,0) rotate(0deg) } 50% { transform: translate(1px,-1px) rotate(0.5deg) } }
@keyframes awf-inkwell { 0%,100% { transform: rotate(0deg) } 50% { transform: rotate(2deg) } }

/* Scene: woman-s-dead-handwriting */
.scn-woman-s-dead-handwriting {
  background: linear-gradient(180deg, #2a1a0a 0%, #1a0a00 100%), radial-gradient(ellipse at 50% 80%, #4a2a0a 0%, transparent 70%);
}
.scn-woman-s-dead-handwriting .wall { position:absolute; inset:0 0 50% 0; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); animation: wdh-wall 18s ease-in-out infinite alternate; }
.scn-woman-s-dead-handwriting .desk { position:absolute; bottom:15%; left:5%; right:5%; height:30%; background: linear-gradient(180deg, #6a4a2a 0%, #3a2a1a 100%); border-radius: 4px 4px 0 0; box-shadow: 0 8px 16px rgba(0,0,0,0.6); animation: wdh-desk 10s ease-in-out infinite; }
.scn-woman-s-dead-handwriting .candle { position:absolute; bottom:38%; left:28%; width:14px; height:50px; background: linear-gradient(180deg, #d4a050 0%, #8a5a20 100%); border-radius: 3px 3px 2px 2px; box-shadow: 0 0 20px 8px #ff8030, 0 0 40px 16px rgba(255,128,48,0.4); animation: wdh-candle 3.5s ease-in-out infinite; }
.scn-woman-s-dead-handwriting .manuscript { position:absolute; bottom:22%; left:30%; width:120px; height:70px; background: linear-gradient(135deg, #e8d0b0 0%, #c8a880 50%, #a88860 100%); border-radius: 2px; box-shadow: 0 0 30px 10px #ffa050; animation: wdh-manu 8s ease-in-out infinite; }
.scn-woman-s-dead-handwriting .hand { position:absolute; bottom:25%; left:52%; width:28px; height:36px; background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%); border-radius: 40% 60% 50% 50% / 30% 50% 50% 30%; transform-origin: 50% 80%; animation: wdh-hand 6s ease-in-out infinite; }
.scn-woman-s-dead-handwriting .portrait { position:absolute; top:12%; right:10%; width:60px; height:80px; background: radial-gradient(ellipse at 50% 30%, #4a3a2a 0%, #1a1008 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; box-shadow: 0 0 20px 6px rgba(255,160,80,0.4); animation: wdh-port 15s ease-in-out infinite; }
@keyframes wdh-wall { 0% { opacity:0.85 } 50% { opacity:1 } 100% { opacity:0.9 } }
@keyframes wdh-desk { 0%,100% { transform: translateY(0) } 50% { transform: translateY(-3px) } }
@keyframes wdh-candle { 0% { box-shadow: 0 0 18px 6px #ff8030, 0 0 36px 12px rgba(255,128,48,0.3); opacity:0.9; transform: scaleY(1) } 50% { box-shadow: 0 0 30px 12px #ffa050, 0 0 60px 20px rgba(255,160,80,0.5); opacity:1; transform: scaleY(1.03) } 100% { box-shadow: 0 0 22px 8px #ff8030, 0 0 44px 15px rgba(255,128,48,0.35); opacity:0.92; transform: scaleY(0.98) } }
@keyframes wdh-manu { 0%,100% { transform: scale(1) } 50% { transform: scale(1.01) } }
@keyframes wdh-hand { 0% { transform: translate(0,0) rotate(-3deg) } 40% { transform: translate(2px,-1px) rotate(2deg) } 80% { transform: translate(4px,-2px) rotate(-1deg) } 100% { transform: translate(5px,-2px) rotate(0deg) } }
@keyframes wdh-port { 0%,100% { transform: translate(0,0) scale(1) } 50% { transform: translate(2px,-1px) scale(1.02) } }

/* Scene: governess-s-story-introduced */
.scn-governess-s-story-introduced {
  background: linear-gradient(180deg, #3a2010 0%, #1a0a00 100%), radial-gradient(ellipse at 50% 0%, #5a3010 0%, transparent 80%);
}
.scn-governess-s-story-introduced .wall { position:absolute; inset:0; background: linear-gradient(180deg, #4a2a1a 0%, #2a1a0a 100%); animation: gsi-wall 22s ease-in-out infinite alternate; }
.scn-governess-s-story-introduced .window { position:absolute; top:12%; left:28%; width:120px; height:160px; background: linear-gradient(180deg, #806040 0%, #5a3a2a 100%); border-radius: 8px 8px 4px 4px; box-shadow: inset 0 0 20px 4px #1a0a00; animation: gsi-window 14s ease-in-out infinite; }
.scn-governess-s-story-introduced .curtains { position:absolute; top:10%; left:25%; width:160px; height:170px; background: linear-gradient(180deg, #6a4a3a 0%, #4a2a1a 100%); border-radius: 30% 70% 30% 70% / 60% 40% 60% 40%; box-shadow: 0 0 30px 10px #ff8030; animation: gsi-curtains 9s ease-in-out infinite; }
.scn-governess-s-story-introduced .firelight { position:absolute; bottom:10%; left:20%; width:200px; height:120px; background: radial-gradient(ellipse at 50% 100%, #ff9050 0%, transparent 70%); animation: gsi-fire 4s ease-in-out infinite; }
.scn-governess-s-story-introduced .woman { position:absolute; bottom:20%; left:45%; width:40px; height:100px; background: linear-gradient(180deg, #2a1a0a 0%, #1a0a00 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: gsi-woman 6s ease-in-out infinite; }
.scn-governess-s-story-introduced .chair { position:absolute; bottom:15%; left:55%; width:50px; height:60px; background: linear-gradient(180deg, #5a3a2a 0%, #3a2a1a 100%); border-radius: 10% 10% 20% 20%; box-shadow: 0 4px 8px rgba(0,0,0,0.5); animation: gsi-chair 12s ease-in-out infinite; }
@keyframes gsi-wall { 0% { opacity:0.85 } 50% { opacity:1 } 100% { opacity:0.9 } }
@keyframes gsi-window { 0%,100% { transform: scale(1) } 50% { transform: scale(0.95) } }
@keyframes gsi-curtains { 0% { transform: translateX(0) rotate(0deg) } 30% { transform: translateX(-2px) rotate(1deg) } 60% { transform: translateX(2px) rotate(-1deg) } 100% { transform: translateX(0) rotate(0deg) } }
@keyframes gsi-fire { 0% { opacity:0.8; transform: scale(1) } 50% { opacity:1; transform: scale(1.05) } 100% { opacity:0.85; transform: scale(0.98) } }
@keyframes gsi-woman { 0% { transform: translate(0,0) rotate(-2deg) } 40% { transform: translate(3px,-1px) rotate(1deg) } 80% { transform: translate(6px,-2px) rotate(0deg) } 100% { transform: translate(8px,-2px) rotate(1deg) } }
@keyframes gsi-chair { 0%,100% { transform: translateY(0) } 50% { transform: translateY(-3px) } }

/* Scene: summer-garden-talks */
.scn-summer-garden-talks {
  background: linear-gradient(180deg, #0a0a1a 0%, #1a0a0a 100%), radial-gradient(ellipse at 50% 100%, #2a1a0a 0%, transparent 70%);
}
.scn-summer-garden-talks .sky { position:absolute; inset:0 0 40% 0; background: linear-gradient(180deg, #1a1a3a 0%, #0a0a1a 100%); animation: sgt-sky 30s ease-in-out infinite alternate; }
.scn-summer-garden-talks .ground { position:absolute; bottom:0; left:0; right:0; height:40%; background: linear-gradient(180deg, #1a2a1a 0%, #0a1a0a 100%); border-radius: 30% 70% 0 0 / 50% 60% 0 0; animation: sgt-ground 20s ease-in-out infinite; }
.scn-summer-garden-talks .lantern { position:absolute; bottom:52%; left:30%; width:20px; height:30px; background: radial-gradient(circle at 50% 100%, #ffa050 0%, #8a5a20 100%); border-radius: 5px 5px 3px 3px; box-shadow: 0 0 40px 16px #ff8030, 0 0 80px 32px rgba(255,128,48,0.3); animation: sgt-lantern 4s ease-in-out infinite; }
.scn-summer-garden-talks .figure1 { position:absolute; bottom:36%; left:42%; width:30px; height:70px; background: linear-gradient(180deg, #2a1a0a 0%, #1a0a00 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: sgt-fig1 8s ease-in-out infinite; }
.scn-summer-garden-talks .figure2 { position:absolute; bottom:36%; left:56%; width:26px; height:65px; background: linear-gradient(180deg, #3a2a1a 0%, #1a0a00 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: sgt-fig2 8s ease-in-out infinite reverse; }
.scn-summer-garden-talks .flowers { position:absolute; bottom:16%; left:20%; right:20%; height:30px; background: radial-gradient(ellipse at 30% 50%, #b87878 0%, transparent 50%), radial-gradient(ellipse at 70% 50%, #a0461a 0%, transparent 50%); filter: blur(1px); animation: sgt-flowers 12s ease-in-out infinite; }
@keyframes sgt-sky { 0% { opacity:0.85 } 50% { opacity:1 } 100% { opacity:0.75 } }
@keyframes sgt-ground { 0%,100% { transform: translateY(0) } 50% { transform: translateY(-2px) } }
@keyframes sgt-lantern { 0% { box-shadow: 0 0 30px 12px #ff8030, 0 0 60px 20px rgba(255,128,48,0.3); opacity:0.9; transform: rotate(-2deg) } 50% { box-shadow: 0 0 50px 20px #ffa050, 0 0 100px 40px rgba(255,160,80,0.5); opacity:1; transform: rotate(2deg) } 100% { box-shadow: 0 0 35px 14px #ff8030, 0 0 70px 25px rgba(255,128,48,0.35); opacity:0.92; transform: rotate(-1deg) } }
@keyframes sgt-fig1 { 0% { transform: translate(0,0) rotate(-2deg) } 30% { transform: translate(3px,-1px) rotate(1deg) } 60% { transform: translate(6px,-2px) rotate(0deg) } 100% { transform: translate(9px,-2px) rotate(2deg) } }
@keyframes sgt-fig2 { 0% { transform: translate(0,0) rotate(2deg) } 30% { transform: translate(-3px,-1px) rotate(-1deg) } 60% { transform: translate(-6px,-2px) rotate(0deg) } 100% { transform: translate(-9px,-2px) rotate(-2deg) } }
@keyframes sgt-flowers { 0%,100% { opacity:0.8; transform: scale(1) } 50% { opacity:1; transform: scale(1.03) } }

/* Scene: remarkable-young-woman (calm, dusk) */
.scn-remarkable-young-woman {
  background:
    linear-gradient(180deg, #f7c9a0 0%, #e8a87c 30%, #b56b45 60%, #3a2a1e 100%),
    radial-gradient(ellipse at 40% 20%, rgba(255,200,150,0.3) 0%, transparent 60%);
}
.scn-remarkable-young-woman .sc1-sky {
  position: absolute; inset: 0 0 45% 0;
  background: linear-gradient(180deg, #f5d4b8 0%, #d97c56 40%, #8a4a34 70%, transparent 100%);
  animation: sc1-sky 15s ease-in-out infinite alternate;
}
.scn-remarkable-young-woman .sc1-ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 55%;
  background: linear-gradient(180deg, #5a3e2a 0%, #2e1f12 40%, #1a110a 100%);
  border-radius: 30% 40% 0 0 / 20% 25% 0 0;
  animation: sc1-ground 12s ease-in-out infinite;
}
.scn-remarkable-young-woman .sc1-window {
  position: absolute; bottom: 40%; left: 40%; width: 50px; height: 70px;
  background: linear-gradient(135deg, #fff5e0 0%, #f0c8a0 50%, #c08050 100%);
  border-radius: 4px; border: 3px solid #4a2a1a;
  box-shadow: inset 0 0 20px rgba(255,200,100,0.5), 0 0 30px rgba(255,180,80,0.3);
  animation: sc1-window 5s ease-in-out infinite alternate;
}
.scn-remarkable-young-woman .sc1-woman {
  position: absolute; bottom: 20%; left: 30%; width: 30px; height: 80px;
  background: linear-gradient(180deg, #2a1a12 0%, #1a0e08 60%, #0d0705 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: sc1-woman 8s ease-in-out infinite;
}
.scn-remarkable-young-woman .sc1-lantern {
  position: absolute; bottom: 25%; left: 22%; width: 8px; height: 8px;
  background: radial-gradient(circle, #ffeaa0 0%, #f0c040 50%, transparent 100%);
  border-radius: 50%;
  box-shadow: 0 0 25px 8px rgba(255,200,80,0.8), 0 0 50px 15px rgba(255,180,60,0.4);
  animation: sc1-lantern 4s ease-in-out infinite alternate;
}
.scn-remarkable-young-woman .sc1-flowers {
  position: absolute; bottom: 10%; left: 15%; width: 40px; height: 15px;
  background: radial-gradient(circle, #d08050 0%, #a06030 50%, #402010 100%);
  border-radius: 50%; filter: blur(2px);
  animation: sc1-flowers 6s ease-in-out infinite;
}
.scn-remarkable-young-woman .sc1-cloud-a {
  position: absolute; top: 15%; left: 10%; width: 80px; height: 20px;
  background: linear-gradient(180deg, rgba(255,220,180,0.5) 0%, rgba(255,200,150,0.1) 100%);
  border-radius: 50%; filter: blur(6px);
  animation: sc1-drift-a 40s linear infinite;
}
.scn-remarkable-young-woman .sc1-cloud-b {
  position: absolute; top: 25%; right: 15%; width: 60px; height: 15px;
  background: linear-gradient(180deg, rgba(255,210,170,0.4) 0%, rgba(255,190,140,0.05) 100%);
  border-radius: 50%; filter: blur(5px);
  animation: sc1-drift-b 50s linear infinite reverse;
}
@keyframes sc1-sky { 0% { opacity: 0.9; } 50% { opacity: 1; } 100% { opacity: 0.85; } }
@keyframes sc1-ground { 0%,100% { transform: scale(1); } 50% { transform: scale(1.01) translateY(2px); } }
@keyframes sc1-window { 0% { box-shadow: inset 0 0 15px rgba(255,200,100,0.3), 0 0 20px rgba(255,180,80,0.2); } 50% { box-shadow: inset 0 0 30px rgba(255,200,100,0.7), 0 0 40px rgba(255,180,80,0.5); } 100% { box-shadow: inset 0 0 20px rgba(255,200,100,0.5), 0 0 30px rgba(255,180,80,0.3); } }
@keyframes sc1-woman { 0% { transform: translateX(0) rotate(0deg); } 25% { transform: translateX(2px) rotate(-2deg); } 50% { transform: translateX(0) rotate(1deg); } 75% { transform: translateX(-2px) rotate(-1deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes sc1-lantern { 0% { opacity: 0.8; transform: scale(1); } 50% { opacity: 1; transform: scale(1.1); } 100% { opacity: 0.9; transform: scale(0.95); } }
@keyframes sc1-flowers { 0%,100% { transform: scale(1) translateY(0); } 50% { transform: scale(1.05) translateY(-2px); } }
@keyframes sc1-drift-a { 0% { transform: translateX(-40px); } 100% { transform: translateX(120vw); } }
@keyframes sc1-drift-b { 0% { transform: translateX(0); } 100% { transform: translateX(-90vw); } }

/* Scene: dream-of-meeting-him (warm, dusk) */
.scn-dream-of-meeting-him {
  background:
    linear-gradient(180deg, #ffb580 0%, #e08550 30%, #b06040 60%, #402820 100%),
    radial-gradient(ellipse at 60% 30%, rgba(255,180,100,0.3) 0%, transparent 70%);
}
.scn-dream-of-meeting-him .sc2-sky {
  position: absolute; inset: 0 0 50% 0;
  background: linear-gradient(180deg, #fcd8b0 0%, #f0a070 40%, #c06838 70%, transparent 100%);
  animation: sc2-sky 18s ease-in-out infinite alternate;
}
.scn-dream-of-meeting-him .sc2-path {
  position: absolute; bottom: 20%; left: 30%; width: 40%; height: 30%;
  background: linear-gradient(135deg, #8a6040 0%, #5a3820 50%, #3a2210 100%);
  border-radius: 30% 30% 0 0 / 50% 50% 0 0;
  transform: perspective(800px) rotateX(35deg);
  animation: sc2-path 10s ease-in-out infinite;
}
.scn-dream-of-meeting-him .sc2-tree-left {
  position: absolute; bottom: 30%; left: 10%; width: 20px; height: 80px;
  background: linear-gradient(180deg, #2a1a0e 0%, #1a0e06 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 20% 20%;
  animation: sc2-tree-sway 7s ease-in-out infinite;
}
.scn-dream-of-meeting-him .sc2-tree-right {
  position: absolute; bottom: 30%; right: 15%; width: 18px; height: 70px;
  background: linear-gradient(180deg, #2a1a0e 0%, #1a0e06 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 20% 20%;
  animation: sc2-tree-sway 7s ease-in-out infinite alternate;
  animation-delay: -2s;
}
.scn-dream-of-meeting-him .sc2-figure-woman {
  position: absolute; bottom: 22%; left: 40%; width: 28px; height: 70px;
  background: linear-gradient(180deg, #4a3020 0%, #2a1a10 60%, #150a05 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: sc2-woman 6s ease-in-out infinite;
}
.scn-dream-of-meeting-him .sc2-figure-man {
  position: absolute; bottom: 22%; left: 50%; width: 32px; height: 75px;
  background: linear-gradient(180deg, #3a2820 0%, #1c100a 60%, #0e0805 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: sc2-man 6s ease-in-out infinite;
  transform: scaleX(-1);
}
.scn-dream-of-meeting-him .sc2-glow {
  position: absolute; bottom: 30%; left: 45%; width: 40px; height: 60px;
  background: radial-gradient(ellipse, rgba(255,200,120,0.6) 0%, transparent 70%);
  border-radius: 50%;
  animation: sc2-glow 5s ease-in-out infinite alternate;
}
.scn-dream-of-meeting-him .sc2-cloud {
  position: absolute; top: 15%; left: 20%; width: 100px; height: 25px;
  background: linear-gradient(180deg, rgba(255,200,160,0.4) 0%, rgba(255,170,130,0.1) 100%);
  border-radius: 50%; filter: blur(8px);
  animation: sc2-cloud 35s linear infinite;
}
@keyframes sc2-sky { 0% { opacity: 0.85; } 50% { opacity: 1; } 100% { opacity: 0.9; } }
@keyframes sc2-path { 0%,100% { transform: perspective(800px) rotateX(35deg) translateY(0); } 50% { transform: perspective(800px) rotateX(35deg) translateY(-2px); } }
@keyframes sc2-tree-sway { 0% { transform: rotate(0deg); } 25% { transform: rotate(2deg); } 50% { transform: rotate(0deg); } 75% { transform: rotate(-2deg); } 100% { transform: rotate(0deg); } }
@keyframes sc2-woman { 0% { transform: translateX(0) rotate(0deg); } 25% { transform: translateX(1px) rotate(1deg); } 50% { transform: translateX(0) rotate(-1deg); } 75% { transform: translateX(-1px) rotate(1deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes sc2-man { 0% { transform: scaleX(-1) translateX(0) rotate(0); } 25% { transform: scaleX(-1) translateX(-1px) rotate(-1deg); } 50% { transform: scaleX(-1) translateX(0) rotate(1deg); } 75% { transform: scaleX(-1) translateX(1px) rotate(-1deg); } 100% { transform: scaleX(-1) translateX(0) rotate(0); } }
@keyframes sc2-glow { 0% { opacity: 0.5; transform: scale(1); } 50% { opacity: 0.8; transform: scale(1.2); } 100% { opacity: 0.6; transform: scale(1.05); } }
@keyframes sc2-cloud { 0% { transform: translateX(-50px); } 100% { transform: translateX(130vw); } }

/* Scene: imagination-turned-real (tense, dusk) */
.scn-imagination-turned-real {
  background:
    linear-gradient(180deg, #3a2a4a 0%, #281c38 30%, #1a1028 60%, #0e0818 100%),
    radial-gradient(ellipse at 30% 20%, rgba(100,60,140,0.4) 0%, transparent 60%);
  filter: contrast(1.2);
}
.scn-imagination-turned-real .sc3-sky {
  position: absolute; inset: 0 0 55% 0;
  background: linear-gradient(180deg, #4a3860 0%, #2a1a40 40%, #1a0e2e 70%, transparent 100%);
  animation: sc3-sky 10s ease-in-out infinite alternate;
}
.scn-imagination-turned-real .sc3-lawn {
  position: absolute; bottom: 0; left: 0; right: 0; height: 55%;
  background: linear-gradient(180deg, #1a2a1e 0%, #0e1a12 40%, #060e08 100%);
  border-radius: 20% 30% 0 0 / 15% 20% 0 0;
  animation: sc3-lawn 8s ease-in-out infinite;
}
.scn-imagination-turned-real .sc3-tower {
  position: absolute; bottom: 30%; left: 30%; width: 40px; height: 120px;
  background: linear-gradient(90deg, #2a1a18 0%, #4a3030 30%, #2a1a18 100%);
  border-radius: 4px;
  box-shadow: 3px 0 10px rgba(0,0,0,0.5);
  animation: sc3-tower 15s ease-in-out infinite;
}
.scn-imagination-turned-real .sc3-tower-top {
  position: absolute; bottom: 80%; left: 25%; width: 50px; height: 20px;
  background: linear-gradient(180deg, #5a3a3a 0%, #3a2222 100%);
  border-radius: 20% 20% 4px 4px;
  box-shadow: 0 -4px 8px rgba(0,0,0,0.4);
  animation: sc3-tower-top 6s ease-in-out infinite alternate;
}
.scn-imagination-turned-real .sc3-figure {
  position: absolute; bottom: 79%; left: 35%; width: 14px; height: 25px;
  background: linear-gradient(180deg, #1a0e0a 0%, #0a0604 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 20% 20%;
  animation: sc3-figure 4s ease-in-out infinite;
}
.scn-imagination-turned-real .sc3-cloud-a {
  position: absolute; top: 12%; left: 5%; width: 70px; height: 18px;
  background: linear-gradient(180deg, rgba(200,180,220,0.3) 0%, rgba(150,130,180,0.05) 100%);
  border-radius: 50%; filter: blur(5px);
  animation: sc3-drift-a 30s linear infinite;
}
.scn-imagination-turned-real .sc3-cloud-b {
  position: absolute; top: 25%; right: 10%; width: 50px; height: 12px;
  background: linear-gradient(180deg, rgba(180,160,210,0.25) 0%, rgba(130,110,160,0.04) 100%);
  border-radius: 50%; filter: blur(4px);
  animation: sc3-drift-b 40s linear infinite reverse;
}
@keyframes sc3-sky { 0% { opacity: 0.8; } 50% { opacity: 0.95; } 100% { opacity: 0.75; } }
@keyframes sc3-lawn { 0%,100% { transform: scale(1) translateY(0); } 50% { transform: scale(1.005) translateY(1px); } }
@keyframes sc3-tower { 0% { transform: translateY(0) scale(1); } 50% { transform: translateY(2px) scale(1.01); } 100% { transform: translateY(-1px) scale(0.99); } }
@keyframes sc3-tower-top { 0% { box-shadow: 0 -4px 8px rgba(0,0,0,0.4); } 50% { box-shadow: 0 -8px 16px rgba(0,0,0,0.6); } 100% { box-shadow: 0 -2px 4px rgba(0,0,0,0.3); } }
@keyframes sc3-figure { 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 sc3-drift-a { 0% { transform: translateX(-30px); } 100% { transform: translateX(110vw); } }
@keyframes sc3-drift-b { 0% { transform: translateX(0); } 100% { transform: translateX(-80vw); } }

/* Scene: tower-architectural-absurdity (tense, dusk) */
.scn-tower-architectural-absurdity {
  background:
    linear-gradient(180deg, #2a1e3e 0%, #1a122e 40%, #0e0a1e 70%, #060410 100%),
    radial-gradient(ellipse at 70% 50%, rgba(80,40,100,0.3) 0%, transparent 60%);
}
.scn-tower-architectural-absurdity .sc4-sky {
  position: absolute; inset: 0 0 60% 0;
  background: linear-gradient(180deg, #3a2e50 0%, #22183a 40%, #100a20 70%, transparent 100%);
  animation: sc4-sky 12s ease-in-out infinite alternate;
}
.scn-tower-architectural-absurdity .sc4-tower-left {
  position: absolute; bottom: 25%; left: 15%; width: 35px; height: 140px;
  background: linear-gradient(90deg, #2a1a1a 0%, #4a3030 30%, #2a1a1a 100%);
  border-radius: 3px;
  box-shadow: 2px 0 8px rgba(0,0,0,0.6);
  animation: sc4-tower-sway 10s ease-in-out infinite;
}
.scn-tower-architectural-absurdity .sc4-tower-right {
  position: absolute; bottom: 25%; right: 20%; width: 30px; height: 110px;
  background: linear-gradient(90deg, #2a1a1a 0%, #4a3030 30%, #2a1a1a 100%);
  border-radius: 3px;
  box-shadow: 2px 0 8px rgba(0,0,0,0.6);
  animation: sc4-tower-sway 10s ease-in-out infinite alternate;
  animation-delay: -4s;
}
.scn-tower-architectural-absurdity .sc4-battlement {
  position: absolute; bottom: 72%; left: 12%; width: 55px; height: 12px;
  background: repeating-linear-gradient(90deg, #5a3a3a 0px, #5a3a3a 8px, #3a2222 8px, #3a2222 16px);
  border-radius: 2px;
  box-shadow: 0 -4px 6px rgba(0,0,0,0.5);
  animation: sc4-battlement 8s ease-in-out infinite;
}
.scn-tower-architectural-absurdity .sc4-figure {
  position: absolute; bottom: 30%; left: 55%; width: 16px; height: 30px;
  background: linear-gradient(180deg, #1a0e0a 0%, #0a0604 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 20% 20%;
  animation: sc4-figure 5s ease-in-out infinite;
  transform-origin: bottom center;
}
.scn-tower-architectural-absurdity .sc4-moon {
  position: absolute; top: 10%; right: 25%; width: 30px; height: 30px;
  background: radial-gradient(circle, #e0d0b0 0%, #c0a880 60%, transparent 100%);
  border-radius: 50%;
  box-shadow: 0 0 40px rgba(200,180,140,0.3);
  animation: sc4-moon 20s ease-in-out infinite;
}
.scn-tower-architectural-absurdity .sc4-cloud {
  position: absolute; top: 20%; left: 5%; width: 90px; height: 20px;
  background: linear-gradient(180deg, rgba(200,180,210,0.2) 0%, rgba(150,130,170,0.05) 100%);
  border-radius: 50%; filter: blur(6px);
  animation: sc4-cloud 45s linear infinite;
}
@keyframes sc4-sky { 0% { opacity: 0.85; } 50% { opacity: 0.95; } 100% { opacity: 0.8; } }
@keyframes sc4-tower-sway { 0% { transform: rotate(0deg); } 25% { transform: rotate(0.5deg); } 50% { transform: rotate(0deg); } 75% { transform: rotate(-0.5deg); } 100% { transform: rotate(0deg); } }
@keyframes sc4-battlement { 0%,100% { transform: translateY(0); } 50% { transform: translateY(2px); } }
@keyframes sc4-figure { 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 sc4-moon { 0% { transform: translateY(0) scale(1); } 50% { transform: translateY(4px) scale(1.02); } 100% { transform: translateY(0) scale(1); } }
@keyframes sc4-cloud { 0% { transform: translateX(-40px); } 100% { transform: translateX(120vw); } }

.scn-miles-return-dinner { background: linear-gradient(180deg, #1a1a1a 0%, #2a2a2a 30%, #3a3a2e 70%, #4a4030 100%), radial-gradient(ellipse at 20% 80%, #4a3a2a 0%, transparent 70%); position: relative; overflow: hidden; min-height: 100vh; }
.scn-miles-return-dinner .floor   { position: absolute; bottom: 0; left: 0; right: 0; height: 30%; background: linear-gradient(180deg, #3a3024 0%, #1e1810 100%); border-radius: 20% 20% 0 0 / 60% 60% 0 0; box-shadow: inset 0 4px 12px rgba(0,0,0,0.5); transform-origin: bottom; animation: mrd-floor 12s ease-in-out infinite; }
.scn-miles-return-dinner .wall    { position: absolute; inset: 0 0 30% 0; background: linear-gradient(180deg, #3a3428 0%, #2a2418 100%); box-shadow: inset 0 0 80px rgba(0,0,0,0.4); }
.scn-miles-return-dinner .door    { position: absolute; bottom: 25%; left: 40%; width: 20%; height: 55%; background: linear-gradient(180deg, #2a2218 0%, #1e180e 100%); border-radius: 0 0 30% 30% / 0 0 20% 20%; box-shadow: 2px 0 8px rgba(0,0,0,0.6); animation: mrd-door 8s ease-in-out infinite; }
.scn-miles-return-dinner .figure-miles { position: absolute; bottom: 22%; left: 28%; width: 12%; height: 45%; background: linear-gradient(90deg, #0a0a08 0%, #1a1812 50%, #0a0a08 100%); border-radius: 50% 50% 30% 30% / 70% 70% 30% 30%; transform-origin: bottom center; animation: mrd-miles 5s ease-in-out infinite; }
.scn-miles-return-dinner .figure-gov   { position: absolute; bottom: 20%; left: 48%; width: 10%; height: 38%; background: linear-gradient(90deg, #1a1816 0%, #2a2620 50%, #1a1816 100%); border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%; transform-origin: bottom center; animation: mrd-gov 6s ease-in-out infinite; }
.scn-miles-return-dinner .glow-lamp    { position: absolute; bottom: 45%; left: 55%; width: 3%; height: 3%; background: radial-gradient(circle, #6a5a3a 0%, #b89a60 40%, transparent 100%); border-radius: 50%; box-shadow: 0 0 20px 8px rgba(184,154,96,0.5), 0 0 40px 16px rgba(184,154,96,0.2); animation: mrd-glow 3s ease-in-out infinite alternate; }
.scn-miles-return-dinner .shadow       { position: absolute; bottom: 5%; left: 25%; width: 30%; height: 10%; background: radial-gradient(ellipse, rgba(0,0,0,0.4) 0%, transparent 100%); border-radius: 50%; filter: blur(4px); animation: mrd-shadow 8s ease-in-out infinite; }
.scn-miles-return-dinner .dust-motes   { position: absolute; inset: 0; background: radial-gradient(circle at 30% 60%, rgba(200,180,140,0.08) 0%, transparent 40%); filter: blur(3px); animation: mrd-dust 20s linear infinite; }
@keyframes mrd-floor { 0% { transform: scaleY(1); opacity: 0.9; } 50% { transform: scaleY(1.02); opacity: 1; } 100% { transform: scaleY(1); opacity: 0.9; } }
@keyframes mrd-door { 0%, 100% { transform: translateY(0) scaleX(1); } 50% { transform: translateY(-2px) scaleX(0.98); } }
@keyframes mrd-miles { 0% { transform: translateX(0) rotate(0deg); } 25% { transform: translateX(1px) rotate(-1deg); } 50% { transform: translateX(-1px) rotate(1deg); } 75% { transform: translateX(2px) rotate(-0.5deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes mrd-gov { 0% { transform: translateX(0) scaleY(1); } 50% { transform: translateX(-2px) scaleY(1.02); opacity: 0.95; } 100% { transform: translateX(0) scaleY(1); } }
@keyframes mrd-glow { 0% { box-shadow: 0 0 15px 5px rgba(184,154,96,0.4), 0 0 30px 10px rgba(184,154,96,0.15); opacity: 0.8; } 100% { box-shadow: 0 0 30px 12px rgba(184,154,96,0.6), 0 0 60px 20px rgba(184,154,96,0.3); opacity: 1; } }
@keyframes mrd-shadow { 0%, 100% { transform: scaleX(1) translateX(0); opacity: 0.5; } 50% { transform: scaleX(1.1) translateX(2px); opacity: 0.7; } }
@keyframes mrd-dust { 0% { transform: translateY(0); opacity: 0.2; } 50% { transform: translateY(-10px); opacity: 0.4; } 100% { transform: translateY(0); opacity: 0.2; } }

.scn-dinner-conversation-flora { background: linear-gradient(180deg, #2a1a0a 0%, #4a3020 40%, #6a4a30 70%, #8a6040 100%), radial-gradient(ellipse at 30% 60%, #b07040 0%, transparent 60%); position: relative; overflow: hidden; min-height: 100vh; }
.scn-dinner-conversation-flora .fireplace { position: absolute; bottom: 25%; left: 5%; width: 25%; height: 50%; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius: 20% 20% 0 0 / 40% 40% 0 0; box-shadow: inset 0 4px 20px rgba(0,0,0,0.6); }
.scn-dinner-conversation-flora .fire      { position: absolute; bottom: 20%; left: 8%; width: 18%; height: 25%; background: linear-gradient(180deg, #f0a040 0%, #d07020 40%, #a04010 80%, #602010 100%); border-radius: 50% 50% 30% 30% / 80% 80% 20% 20%; box-shadow: 0 0 40px 15px rgba(240,160,64,0.6), 0 0 80px 30px rgba(240,160,64,0.3); animation: dcf-fire 2s ease-in-out infinite alternate; }
.scn-dinner-conversation-flora .table     { position: absolute; bottom: 20%; left: 30%; width: 45%; height: 15%; background: linear-gradient(180deg, #4a3a2a 0%, #3a2a1a 100%); border-radius: 40% 40% 10% 10% / 60% 60% 20% 20%; box-shadow: 0 -4px 12px rgba(0,0,0,0.5); }
.scn-dinner-conversation-flora .chair-left { position: absolute; bottom: 15%; left: 32%; width: 10%; height: 25%; background: linear-gradient(90deg, #2a1a0a 0%, #4a3020 100%); border-radius: 50% 50% 20% 20% / 80% 80% 20% 20%; transform-origin: bottom; animation: dcf-chair 7s ease-in-out infinite; }
.scn-dinner-conversation-flora .figure-miles { position: absolute; bottom: 22%; left: 38%; width: 12%; height: 40%; background: linear-gradient(180deg, #1a1812 0%, #0a0806 100%); border-radius: 50% 50% 40% 40% / 70% 70% 30% 30%; transform-origin: bottom center; animation: dcf-miles 4s ease-in-out infinite; }
.scn-dinner-conversation-flora .figure-flora { position: absolute; bottom: 20%; left: 55%; width: 10%; height: 35%; background: linear-gradient(180deg, #2a2218 0%, #1a120a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 30% 30%; transform-origin: bottom center; animation: dcf-flora 5s ease-in-out infinite; }
.scn-dinner-conversation-flora .candle     { position: absolute; bottom: 30%; left: 42%; width: 2%; height: 10%; background: linear-gradient(180deg, #f0e8c0 0%, #d0c8a0 100%); border-radius: 20% 20% 10% 10% / 80% 80% 20% 20%; box-shadow: 0 0 20px 6px rgba(240,232,192,0.5); animation: dcf-candle 3s ease-in-out infinite alternate; }
.scn-dinner-conversation-flora .plate      { position: absolute; bottom: 18%; left: 43%; width: 15%; height: 6%; background: radial-gradient(ellipse at 50% 50%, #c0b8a0 0%, #a09078 100%); border-radius: 50%; box-shadow: 0 2px 6px rgba(0,0,0,0.3); animation: dcf-plate 8s ease-in-out infinite; }
@keyframes dcf-fire { 0% { transform: scale(1) translateY(0); opacity: 0.9; } 100% { transform: scale(1.08) translateY(-3px); opacity: 1; } }
@keyframes dcf-chair { 0%, 100% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-2px) rotate(1deg); } }
@keyframes dcf-miles { 0% { transform: translateX(0) rotate(0deg); } 30% { transform: translateX(2px) rotate(-1deg); } 70% { transform: translateX(-1px) rotate(1deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes dcf-flora { 0% { transform: translateX(0) scaleY(1); } 50% { transform: translateX(-2px) scaleY(1.03); opacity: 0.95; } 100% { transform: translateX(0) scaleY(1); } }
@keyframes dcf-candle { 0% { box-shadow: 0 0 10px 3px rgba(240,232,192,0.4); opacity: 0.7; } 100% { box-shadow: 0 0 30px 10px rgba(240,232,192,0.7); opacity: 1; } }
@keyframes dcf-plate { 0%, 100% { transform: scale(1) rotate(0deg); } 50% { transform: scale(1.02) rotate(2deg); } }

.scn-after-dinner-confrontation { background: linear-gradient(180deg, #1a1a1a 0%, #2a2a2a 30%, #3a3a30 70%, #4a4038 100%), radial-gradient(ellipse at 50% 20%, #5a4a3a 0%, transparent 80%); position: relative; overflow: hidden; min-height: 100vh; }
.scn-after-dinner-confrontation .wall   { position: absolute; inset: 0 0 30% 0; background: linear-gradient(180deg, #2a241e 0%, #1e1812 100%); box-shadow: inset 0 0 60px rgba(0,0,0,0.5); }
.scn-after-dinner-confrontation .window { position: absolute; bottom: 25%; left: 35%; width: 30%; height: 45%; background: linear-gradient(180deg, #4a4a4a 0%, #3a3a3a 100%); border: 8px solid #2a1a0a; border-radius: 4% 4% 0 0 / 8% 8% 0 0; box-shadow: inset 0 0 40px rgba(0,0,0,0.3); }
.scn-after-dinner-confrontation .figure-miles-back { position: absolute; bottom: 22%; left: 42%; width: 14%; height: 48%; background: linear-gradient(90deg, #0a0806 0%, #1a1612 50%, #0a0806 100%); border-radius: 50% 50% 40% 40% / 70% 70% 30% 30%; transform-origin: bottom center; animation: adc-miles 6s ease-in-out infinite; }
.scn-after-dinner-confrontation .figure-gov { position: absolute; bottom: 20%; left: 58%; width: 11%; height: 40%; background: linear-gradient(90deg, #1a1814 0%, #2a2420 50%, #1a1814 100%); border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%; transform-origin: bottom center; animation: adc-gov 7s ease-in-out infinite; }
.scn-after-dinner-confrontation .curtain { position: absolute; bottom: 20%; left: 33%; width: 4%; height: 50%; background: linear-gradient(180deg, #3a2a1a 0%, #1e120a 100%); border-radius: 10% 10% 0 0 / 20% 20% 0 0; box-shadow: 2px 0 8px rgba(0,0,0,0.6); transform-origin: top; animation: adc-curtain 10s ease-in-out infinite; }
.scn-after-dinner-confrontation .shadow  { position: absolute; bottom: 5%; left: 35%; width: 30%; height: 12%; background: radial-gradient(ellipse, rgba(0,0,0,0.5) 0%, transparent 100%); border-radius: 50%; filter: blur(6px); animation: adc-shadow 9s ease-in-out infinite; }
.scn-after-dinner-confrontation .floor   { position: absolute; bottom: 0; left: 0; right: 0; height: 30%; background: linear-gradient(180deg, #2a221a 0%, #1a120a 100%); border-radius: 30% 30% 0 0 / 60% 60% 0 0; box-shadow: inset 0 4px 12px rgba(0,0,0,0.4); animation: adc-floor 15s ease-in-out infinite; }
.scn-after-dinner-confrontation .sill    { position: absolute; bottom: 28%; left: 35%; width: 32%; height: 4%; background: linear-gradient(180deg, #3a2a1a 0%, #2a1a0a 100%); border-radius: 10% 10% 0 0; box-shadow: 0 2px 6px rgba(0,0,0,0.5); }
@keyframes adc-miles { 0% { transform: translateX(0) rotate(0deg); } 25% { transform: translateX(-1px) rotate(-0.5deg); } 50% { transform: translateX(2px) rotate(0.5deg); } 75% { transform: translateX(-2px) rotate(-0.8deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes adc-gov { 0%, 100% { transform: translateX(0) scaleY(1); opacity: 0.9; } 50% { transform: translateX(-2px) scaleY(1.02); opacity: 1; } }
@keyframes adc-curtain { 0%, 100% { transform: scaleY(1) translateX(0); } 50% { transform: scaleY(1.05) translateX(4px); } }
@keyframes adc-shadow { 0% { transform: scaleX(1) translateX(0); opacity: 0.4; } 50% { transform: scaleX(1.1) translateX(3px); opacity: 0.7; } 100% { transform: scaleX(1) translateX(0); opacity: 0.4; } }
@keyframes adc-floor { 0% { transform: scaleY(1); opacity: 0.85; } 50% { transform: scaleY(1.02); opacity: 1; } 100% { transform: scaleY(1); opacity: 0.85; } }

.scn-window-perception-change { background: linear-gradient(180deg, #f0e8d0 0%, #e0d0b0 30%, #c8b898 70%, #a89878 100%), radial-gradient(ellipse at 60% 40%, #f0e0c0 0%, transparent 60%); position: relative; overflow: hidden; min-height: 100vh; }
.scn-window-perception-change .wall-warm    { position: absolute; inset: 0 0 25% 0; background: linear-gradient(180deg, #e8dcc8 0%, #d0c0a0 100%); box-shadow: inset 0 0 80px rgba(255,200,150,0.3); }
.scn-window-perception-change .window-frame { position: absolute; bottom: 20%; left: 30%; width: 40%; height: 55%; background: #c8b088; border: 12px solid #a08868; border-radius: 4% 4% 0 0 / 8% 8% 0 0; box-shadow: 0 0 30px rgba(255,220,180,0.5); }
.scn-window-perception-change .window-panes { position: absolute; bottom: 22%; left: 33%; width: 34%; height: 48%; background: linear-gradient(180deg, #f0e8d0 0%, #d8c8a0 100%); border: 2px solid #a08868; border-radius: 2%; opacity: 0.8; animation: wpc-panes 15s ease-in-out infinite alternate; }
.scn-window-perception-change .light-beam   { position: absolute; top: 0; left: 40%; width: 25%; height: 100%; background: linear-gradient(135deg, rgba(255,240,200,0.3) 0%, rgba(255,240,200,0.05) 100%); clip-path: polygon(0% 0%, 100% 0%, 80% 100%, 20% 100%); filter: blur(8px); animation: wpc-beam 12s ease-in-out infinite; }
.scn-window-perception-change .figure-boy   { position: absolute; bottom: 18%; left: 45%; width: 12%; height: 45%; background: linear-gradient(90deg, #4a3a2a 0%, #5a4a38 50%, #4a3a2a 100%); border-radius: 50% 50% 40% 40% / 70% 70% 30% 30%; transform-origin: bottom center; animation: wpc-boy 5s ease-in-out infinite; }
.scn-window-perception-change .figure-gov   { position: absolute; bottom: 16%; left: 58%; width: 10%; height: 38%; background: linear-gradient(90deg, #5a4a38 0%, #6a5a48 50%, #5a4a38 100%); border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%; transform-origin: bottom center; animation: wpc-gov 6s ease-in-out infinite; }
.scn-window-perception-change .glow-pool    { position: absolute; bottom: 5%; left: 30%; width: 40%; height: 15%; background: radial-gradient(ellipse, rgba(255,240,200,0.4) 0%, transparent 100%); border-radius: 50%; filter: blur(10px); animation: wpc-pool 8s ease-in-out infinite alternate; }
.scn-window-perception-change .dust         { position: absolute; inset: 0; background: radial-gradient(circle at 45% 30%, rgba(255,240,200,0.06) 0%, transparent 40%); filter: blur(2px); animation: wpc-dust 25s linear infinite; }
@keyframes wpc-panes { 0%, 100% { opacity: 0.7; transform: scaleX(1); } 50% { opacity: 0.9; transform: scaleX(1.02); } }
@keyframes wpc-beam { 0% { transform: translateX(-5px) skewX(0deg); opacity: 0.3; } 50% { transform: translateX(5px) skewX(2deg); opacity: 0.5; } 100% { transform: translateX(-5px) skewX(0deg); opacity: 0.3; } }
@keyframes wpc-boy { 0% { transform: translateX(0) rotate(0deg); } 30% { transform: translateX(2px) rotate(-1deg); } 70% { transform: translateX(-2px) rotate(1deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes wpc-gov { 0%, 100% { transform: translateX(0) scaleY(1); opacity: 0.9; } 50% { transform: translateX(3px) scaleY(1.03); opacity: 1; } }
@keyframes wpc-pool { 0% { transform: scale(1); opacity: 0.3; } 100% { transform: scale(1.1); opacity: 0.6; } }
@keyframes wpc-dust { 0% { transform: translateY(0); opacity: 0.15; } 50% { transform: translateY(-8px); opacity: 0.3; } 100% { transform: translateY(0); opacity: 0.15; } }

.scn-piano-distraction {
  background:
    linear-gradient(180deg, #f5efe0 0%, #e3d6c0 40%, #cab89a 60%, #a08860 100%),
    radial-gradient(ellipse at 80% 20%, #fff8f0 0%, transparent 60%);
}
.scn-piano-distraction .window {
  position:absolute; top:6%; left:15%; width:30%; height:35%;
  background: linear-gradient(135deg, #e6f0ff 0%, #b0c8e0 100%);
  border-radius: 4px 4px 0 0;
  box-shadow: inset 0 0 40px rgba(255,255,240,0.6), 0 0 60px rgba(180,200,230,0.3);
  animation: pd-window 12s ease-in-out infinite alternate;
}
.scn-piano-distraction .curtain-left {
  position:absolute; top:5%; left:12%; width:8%; height:40%;
  background: linear-gradient(90deg, #c8b892 0%, #e6d4b6 100%);
  border-radius: 0 60% 60% 0;
  transform-origin: right center;
  animation: pd-curtain 14s ease-in-out infinite alternate;
}
.scn-piano-distraction .curtain-right {
  position:absolute; top:5%; right:12%; width:8%; height:40%;
  background: linear-gradient(90deg, #e6d4b6 0%, #c8b892 100%);
  border-radius: 60% 0 0 60%;
  transform-origin: left center;
  animation: pd-curtain-rev 14s ease-in-out infinite alternate;
}
.scn-piano-distraction .piano-body {
  position:absolute; bottom:20%; left:38%; width:24%; height:22%;
  background: linear-gradient(180deg, #1a1410 0%, #2a221a 100%);
  border-radius: 6% 6% 4% 4%;
  box-shadow: 0 8px 16px rgba(0,0,0,0.4);
  animation: pd-piano 20s ease-in-out infinite;
}
.scn-piano-distraction .piano-keys {
  position:absolute; bottom:20%; left:39.5%; width:21%; height:6%;
  background: repeating-linear-gradient(90deg, #ffffff 0%, #ffffff 6%, #1a1a1a 6%, #1a1a1a 8%, #ffffff 8%, #ffffff 12%, #1a1a1a 12%, #1a1a1a 14%, #ffffff 14%, #ffffff 100%);
  background-size: 18% 100%;
  border-radius: 2px 2px 0 0;
  animation: pd-keys 8s ease-in-out infinite;
}
.scn-piano-distraction .stool {
  position:absolute; bottom:17%; left:35%; width:8%; height:8%;
  background: linear-gradient(180deg, #5a3a22 0%, #3a2212 100%);
  border-radius: 50% 50% 20% 20%;
  animation: pd-stool 18s ease-in-out infinite;
}
.scn-piano-distraction .figure-pd {
  position:absolute; bottom:17%; left:48%; width:7%; height:20%;
  background: linear-gradient(180deg, #3a3028 0%, #1a1410 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  transform-origin: bottom center;
  animation: pd-figure 6s ease-in-out infinite alternate;
}
.scn-piano-distraction .music-stand {
  position:absolute; bottom:25%; left:55%; width:6%; height:10%;
  background: linear-gradient(180deg, #e8dcc8 0%, #c8b89a 100%);
  border-radius: 4px;
  clip-path: polygon(0% 0%, 100% 0%, 90% 100%, 10% 100%);
  animation: pd-stand 15s ease-in-out infinite;
}

@keyframes pd-window {
  0% { opacity:0.85; transform: scaleY(1); }
  50% { opacity:1; transform: scaleY(1.02); }
  100% { opacity:0.9; transform: scaleY(1); }
}
@keyframes pd-curtain {
  0% { transform: scaleX(0.9); }
  50% { transform: scaleX(1.1); }
  100% { transform: scaleX(0.95); }
}
@keyframes pd-curtain-rev {
  0% { transform: scaleX(0.95); }
  50% { transform: scaleX(1.1); }
  100% { transform: scaleX(0.9); }
}
@keyframes pd-piano {
  0% { transform: translateY(0); }
  50% { transform: translateY(-2px); }
  100% { transform: translateY(0); }
}
@keyframes pd-keys {
  0% { background-position: 0% 0%; }
  50% { background-position: 2% 0%; }
  100% { background-position: 0% 0%; }
}
@keyframes pd-stool {
  0% { transform: rotate(0deg); }
  50% { transform: rotate(1deg); }
  100% { transform: rotate(0deg); }
}
@keyframes pd-figure {
  0% { transform: translateY(0) rotate(-1deg); }
  50% { transform: translateY(-2px) rotate(2deg); }
  100% { transform: translateY(0) rotate(0deg); }
}
@keyframes pd-stand {
  0%,100% { opacity:0.7; transform: rotate(-1deg); }
  50% { opacity:1; transform: rotate(2deg); }
}

.scn-flora-missing {
  background:
    linear-gradient(180deg, #e8e4d8 0%, #cdc4b0 30%, #a89a80 60%, #7a6a5a 100%),
    radial-gradient(ellipse at 70% 30%, #ffffff 0%, transparent 50%);
}
.scn-flora-missing .window-fm {
  position:absolute; top:2%; right:5%; width:40%; height:40%;
  background: linear-gradient(135deg, #fffef0 0%, #b8cce0 100%);
  border-radius: 2px;
  box-shadow: inset 0 0 60px rgba(255,255,240,0.5);
  animation: fm-window 8s ease-in-out infinite alternate;
}
.scn-flora-missing .bed {
  position:absolute; bottom:12%; left:20%; width:50%; height:25%;
  background: linear-gradient(180deg, #d8c8b0 0%, #b0a090 100%);
  border-radius: 8% 8% 4% 4%;
  box-shadow: inset 0 8px 20px rgba(0,0,0,0.3);
  animation: fm-bed 14s ease-in-out infinite;
}
.scn-flora-missing .door {
  position:absolute; top:10%; left:8%; width:14%; height:80%;
  background: linear-gradient(180deg, #8a7a6a 0%, #6a5a4a 100%);
  border-radius: 2px;
  transform-origin: left center;
  animation: fm-door 10s ease-in-out infinite alternate;
}
.scn-flora-missing .shadow-wall {
  position:absolute; bottom:0; left:20%; width:60%; height:15%;
  background: linear-gradient(180deg, rgba(40,30,20,0.4) 0%, rgba(40,30,20,0.1) 100%);
  border-radius: 30% 30% 0 0;
  animation: fm-shadow 12s ease-in-out infinite;
}
.scn-flora-missing .doll {
  position:absolute; bottom:10%; left:55%; width:8%; height:14%;
  background: linear-gradient(180deg, #c8a888 0%, #a88868 100%);
  border-radius: 30% 30% 20% 20% / 40% 40% 20% 20%;
  animation: fm-doll 5s ease-in-out infinite;
}

@keyframes fm-window {
  0% { opacity:0.8; transform: scaleX(1); }
  50% { opacity:1; transform: scaleX(1.05); }
  100% { opacity:0.85; transform: scaleX(1); }
}
@keyframes fm-bed {
  0% { transform: translateY(0); }
  50% { transform: translateY(-1px); }
  100% { transform: translateY(0); }
}
@keyframes fm-door {
  0% { transform: rotate(0deg); }
  50% { transform: rotate(5deg); }
  100% { transform: rotate(0deg); }
}
@keyframes fm-shadow {
  0% { opacity:0.6; }
  50% { opacity:1; }
  100% { opacity:0.7; }
}
@keyframes fm-doll {
  0% { transform: rotate(-2deg) translateY(0); }
  50% { transform: rotate(3deg) translateY(-2px); }
  100% { transform: rotate(-1deg) translateY(0); }
}

.scn-she-has-gone-out {
  background:
    linear-gradient(180deg, #1c1a22 0%, #2c2840 30%, #3c3850 60%, #4a4058 100%),
    radial-gradient(ellipse at 30% 70%, #5a4a60 0%, transparent 60%);
}
.scn-she-has-gone-out .candle {
  position:absolute; top:40%; left:45%; width:6%; height:14%;
  background: linear-gradient(180deg, #f0d080 0%, #c8a050 30%, #6a4020 100%);
  border-radius: 30% 30% 10% 10%;
  box-shadow: 0 0 40px 20px rgba(200,120,40,0.4), 0 0 80px 30px rgba(200,120,40,0.2);
  animation: sh-candle 4s ease-in-out infinite alternate;
}
.scn-she-has-gone-out .figure-sh-a {
  position:absolute; bottom:8%; left:20%; width:12%; height:40%;
  background: linear-gradient(180deg, #1a1820 0%, #0e0c14 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  animation: sh-figA 8s ease-in-out infinite;
}
.scn-she-has-gone-out .figure-sh-b {
  position:absolute; bottom:8%; right:20%; width:12%; height:38%;
  background: linear-gradient(180deg, #2a2830 0%, #1a1820 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  animation: sh-figB 9s ease-in-out infinite reverse;
}
.scn-she-has-gone-out .door-sh {
  position:absolute; top:5%; left:12%; width:10%; height:90%;
  background: linear-gradient(180deg, #3a3440 0%, #282430 100%);
  border-radius: 2px;
  transform-origin: left center;
  animation: sh-door 12s ease-in-out infinite alternate;
}
.scn-she-has-gone-out .hat-stand {
  position:absolute; bottom:12%; left:42%; width:4%; height:30%;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 4px;
  box-shadow: 0 0 8px 2px rgba(0,0,0,0.5);
  animation: sh-stand 20s ease-in-out infinite;
}

@keyframes sh-candle {
  0% { opacity:0.7; box-shadow: 0 0 30px 15px rgba(200,120,40,0.3); }
  50% { opacity:1; box-shadow: 0 0 60px 30px rgba(200,120,40,0.5); }
  100% { opacity:0.8; box-shadow: 0 0 40px 20px rgba(200,120,40,0.35); }
}
@keyframes sh-figA {
  0% { transform: translateY(0) rotate(0deg); }
  50% { transform: translateY(-3px) rotate(-1deg); }
  100% { transform: translateY(0) rotate(1deg); }
}
@keyframes sh-figB {
  0% { transform: translateY(0) rotate(1deg); }
  50% { transform: translateY(-2px) rotate(0deg); }
  100% { transform: translateY(0) rotate(-1deg); }
}
@keyframes sh-door {
  0% { transform: rotate(0deg); }
  50% { transform: rotate(4deg); }
  100% { transform: rotate(0deg); }
}
@keyframes sh-stand {
  0% { transform: scaleY(1); }
  50% { transform: scaleY(1.02); }
  100% { transform: scaleY(1); }
}

.scn-tricks-played {
  background:
    linear-gradient(180deg, #181622 0%, #24203a 30%, #342e4a 60%, #4a4058 100%),
    radial-gradient(ellipse at 50% 20%, #6a6080 0%, transparent 60%);
}
.scn-tricks-played .figure-child {
  position:absolute; bottom:8%; left:35%; width:10%; height:30%;
  background: linear-gradient(180deg, #2a2834 0%, #141220 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  transform-origin: bottom center;
  animation: tp-fig 6s ease-in-out infinite;
}
.scn-tricks-played .lamp {
  position:absolute; top:20%; left:50%; width:8%; height:20%;
  background: linear-gradient(180deg, #f0d080 0%, #c8a050 30%, #7a5020 100%);
  border-radius: 30% 30% 10% 10%;
  box-shadow: 0 0 60px 30px rgba(200,120,40,0.3), 0 0 120px 50px rgba(200,120,40,0.15);
  animation: tp-lamp 3s ease-in-out infinite alternate;
}
.scn-tricks-played .top {
  position:absolute; bottom:10%; left:52%; width:6%; height:6%;
  background: repeating-conic-gradient(#d0a070 0% 25%, #a07850 25% 50%, #d0a070 50% 75%, #a07850 75% 100%);
  border-radius: 50%;
  animation: tp-top 2s linear infinite;
}
.scn-tricks-played .chair-tipped {
  position:absolute; bottom:8%; left:45%; width:12%; height:20%;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 4px;
  transform: rotate(-20deg);
  transform-origin: 50% 100%;
  animation: tp-chair 10s ease-in-out infinite alternate;
}
.scn-tricks-played .window-tp {
  position:absolute; top:2%; left:10%; width:30%; height:35%;
  background: linear-gradient(135deg, #384060 0%, #1a2040 100%);
  border-radius: 4px;
  box-shadow: inset 0 0 40px rgba(80,100,160,0.4);
  animation: tp-win 15s ease-in-out infinite alternate;
}
.scn-tricks-played .moonbeam {
  position:absolute; top:0; left:12%; width:20%; height:100%;
  background: linear-gradient(180deg, rgba(200,220,255,0.15) 0%, transparent 80%);
  clip-path: polygon(0% 0%, 100% 0%, 70% 100%, 30% 100%);
  animation: tp-beam 20s ease-in-out infinite;
}

@keyframes tp-fig {
  0% { transform: translateY(0) rotate(-2deg); }
  50% { transform: translateY(-4px) rotate(3deg); }
  100% { transform: translateY(0) rotate(-1deg); }
}
@keyframes tp-lamp {
  0% { opacity:0.7; box-shadow: 0 0 40px 20px rgba(200,120,40,0.2); }
  50% { opacity:1; box-shadow: 0 0 80px 40px rgba(200,120,40,0.4); }
  100% { opacity:0.8; box-shadow: 0 0 50px 25px rgba(200,120,40,0.3); }
}
@keyframes tp-top {
  0% { transform: rotate(0deg) translateY(0); }
  25% { transform: rotate(90deg) translateY(-2px); }
  50% { transform: rotate(180deg) translateY(0); }
  75% { transform: rotate(270deg) translateY(-1px); }
  100% { transform: rotate(360deg) translateY(0); }
}
@keyframes tp-chair {
  0% { transform: rotate(-20deg); }
  50% { transform: rotate(-15deg); }
  100% { transform: rotate(-20deg); }
}
@keyframes tp-win {
  0% { opacity:0.7; }
  50% { opacity:0.9; }
  100% { opacity:0.75; }
}
@keyframes tp-beam {
  0% { opacity:0.3; transform: translateX(0); }
  50% { opacity:0.6; transform: translateX(2%); }
  100% { opacity:0.4; transform: translateX(0); }
}

.scn-lake-scene-awareness {
  background:
    linear-gradient(180deg, #f9e7b0 0%, #c4d8e8 30%, #9bb8d8 60%, #6a9ac0 100%),
    radial-gradient(ellipse at 70% 20%, #fce49b 0%, transparent 60%);
}
.scn-lake-scene-awareness .sky {
  position: absolute; inset: 0 0 50% 0;
  background: linear-gradient(180deg, #f0d48a 0%, #b4cee0 100%);
  animation: lsa-sky 8s ease-in-out infinite alternate;
}
.scn-lake-scene-awareness .lake {
  position: absolute; top: 50%; left: 0; right: 0; bottom: 0;
  background: linear-gradient(180deg, #5a7e9a 0%, #3a5a6a 100%);
  animation: lsa-lake 12s ease-in-out infinite;
}
.scn-lake-scene-awareness .hills {
  position: absolute; bottom: 30%; left: 0; right: 0; height: 22%;
  background: linear-gradient(180deg, #7a8a5a 0%, #4a5a3a 100%);
  border-radius: 60% 40% 0 0 / 70% 50% 0 0;
  box-shadow: inset 0 4px 12px rgba(0,0,0,0.4);
  animation: lsa-hills 15s ease-in-out infinite alternate;
}
.scn-lake-scene-awareness .trees {
  position: absolute; bottom: 30%; left: 10%; width: 50px; height: 80px;
  background: linear-gradient(180deg, #3a4a2a 0%, #1a2a1a 100%);
  clip-path: polygon(50% 0%, 0% 100%, 100% 100%);
  border-radius: 20% 20% 0 0;
  box-shadow: 0 6px 10px rgba(0,0,0,0.5);
  animation: lsa-trees 6s ease-in-out infinite;
}
.scn-lake-scene-awareness .figure {
  position: absolute; bottom: 32%; left: 60%; width: 14px; height: 30px;
  background: #1a1a2a;
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: lsa-figure 4s ease-in-out infinite;
}
.scn-lake-scene-awareness .reeds {
  position: absolute; bottom: 10%; left: 5%; width: 120px; height: 60px;
  background: linear-gradient(90deg, transparent 0%, #5a6a3a 10%, transparent 20%, #5a6a3a 30%, transparent 40%, #5a6a3a 50%, transparent 60%, #5a6a3a 70%, transparent 80%, #5a6a3a 90%, transparent 100%);
  background-size: 20px 100%;
  filter: blur(1px);
  animation: lsa-reeds 3s ease-in-out infinite alternate;
}
.scn-lake-scene-awareness .rays {
  position: absolute; top: 0; left: 20%; width: 120%; height: 100%;
  background: repeating-linear-gradient(45deg, transparent, transparent 40px, rgba(255,240,180,0.15) 40px, rgba(255,240,180,0.15) 50px);
  animation: lsa-rays 20s linear infinite;
  pointer-events: none;
}
@keyframes lsa-sky { 0% { opacity: 0.8; } 50% { opacity: 1; } 100% { opacity: 0.85; } }
@keyframes lsa-lake { 0% { transform: translateY(0); } 25% { transform: translateY(-2px); } 50% { transform: translateY(1px); } 75% { transform: translateY(-1px); } 100% { transform: translateY(0); } }
@keyframes lsa-hills { 0% { transform: scaleY(1); } 50% { transform: scaleY(0.97); } 100% { transform: scaleY(1); } }
@keyframes lsa-trees { 0%,100% { transform: rotate(0deg); } 50% { transform: rotate(2deg) scale(1.02); } }
@keyframes lsa-figure { 0% { transform: translateX(0) translateY(0) rotate(-2deg); } 30% { transform: translateX(3px) translateY(-2px) rotate(0deg); } 60% { transform: translateX(6px) translateY(0) rotate(2deg); } 100% { transform: translateX(10px) translateY(0) rotate(-1deg); } }
@keyframes lsa-reeds { 0% { transform: skewX(2deg); } 100% { transform: skewX(-2deg); } }
@keyframes lsa-rays { 0% { transform: translateX(-20%); } 100% { transform: translateX(20%); } }

.scn-lake-scene-questioning {
  background:
    linear-gradient(180deg, #ead8b0 0%, #b8cee0 30%, #7aa8c8 60%, #4a7a9a 100%),
    radial-gradient(ellipse at 30% 80%, #fce49b 0%, transparent 60%);
}
.scn-lake-scene-questioning .sky {
  position: absolute; inset: 0 0 45% 0;
  background: linear-gradient(180deg, #d8c890 0%, #a8c0d0 100%);
  animation: lsq-sky 10s ease-in-out infinite alternate;
}
.scn-lake-scene-questioning .lake {
  position: absolute; top: 55%; left: 0; right: 0; bottom: 0;
  background: linear-gradient(180deg, #5a7e9a 0%, #2a4a5a 100%);
  animation: lsq-lake 15s ease-in-out infinite;
}
.scn-lake-scene-questioning .boat {
  position: absolute; bottom: 35%; left: 35%; width: 80px; height: 30px;
  background: linear-gradient(180deg, #6a4a3a 0%, #3a2a1a 100%);
  border-radius: 30% 30% 20% 20% / 50% 50% 30% 30%;
  box-shadow: 0 6px 10px rgba(0,0,0,0.4);
  animation: lsq-boat 5s ease-in-out infinite alternate;
}
.scn-lake-scene-questioning .figure-back {
  position: absolute; bottom: 38%; left: 40%; width: 30px; height: 60px;
  background: linear-gradient(180deg, #2a2a3a 0%, #0a0a1a 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  transform-origin: bottom center;
  animation: lsq-figure-back 6s ease-in-out infinite;
}
.scn-lake-scene-questioning .hat {
  position: absolute; bottom: 68%; left: 38%; width: 40px; height: 12px;
  background: #3a2a1a;
  border-radius: 50% 50% 10% 10%;
  box-shadow: 0 2px 4px rgba(0,0,0,0.5);
  animation: lsq-hat 6s ease-in-out infinite;
}
.scn-lake-scene-questioning .reeds {
  position: absolute; bottom: 10%; left: 5%; width: 140px; height: 50px;
  background: linear-gradient(90deg, transparent 0%, #5a6a3a 8%, transparent 16%, #5a6a3a 24%, transparent 32%, #5a6a3a 40%, transparent 50%, #5a6a3a 58%, transparent 66%, #5a6a3a 74%, transparent 82%, #5a6a3a 90%, transparent 100%);
  background-size: 25px 100%;
  filter: blur(1px);
  animation: lsq-reeds 4s ease-in-out infinite alternate;
}
.scn-lake-scene-questioning .shadow-water {
  position: absolute; bottom: 30%; left: 35%; width: 100px; height: 30px;
  background: radial-gradient(ellipse at 50% 50%, rgba(0,0,0,0.3) 0%, transparent 70%);
  filter: blur(6px);
  animation: lsq-shadow 5s ease-in-out infinite alternate;
}
@keyframes lsq-sky { 0% { opacity: 0.75; } 50% { opacity: 1; } 100% { opacity: 0.8; } }
@keyframes lsq-lake { 0% { transform: translateY(0); } 20% { transform: translateY(2px); } 40% { transform: translateY(-2px); } 60% { transform: translateY(1px); } 80% { transform: translateY(-1px); } 100% { transform: translateY(0); } }
@keyframes lsq-boat { 0% { transform: translateX(0) rotate(0deg); } 50% { transform: translateX(5px) rotate(2deg) translateY(2px); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes lsq-figure-back { 0% { transform: translateX(0) rotate(-1deg); } 30% { transform: translateX(2px) rotate(0deg); } 60% { transform: translateX(4px) rotate(1deg); } 100% { transform: translateX(0) rotate(-1deg); } }
@keyframes lsq-hat { 0% { transform: translateX(0) rotate(-3deg); } 50% { transform: translateX(3px) rotate(3deg); } 100% { transform: translateX(0) rotate(-3deg); } }
@keyframes lsq-reeds { 0% { transform: skewX(-3deg); } 100% { transform: skewX(3deg); } }
@keyframes lsq-shadow { 0% { opacity: 0.4; transform: scaleX(1); } 100% { opacity: 0.7; transform: scaleX(1.1); } }

.scn-lake-scene-certainty {
  background:
    linear-gradient(180deg, #e8d0a0 0%, #b0c8d8 30%, #7aa0c0 60%, #4a7090 100%),
    radial-gradient(ellipse at 50% 10%, #fce89b 0%, transparent 50%);
}
.scn-lake-scene-certainty .sky {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(180deg, #d0b880 0%, #98b8c8 100%);
  animation: lsc-sky 9s ease-in-out infinite alternate;
}
.scn-lake-scene-certainty .lake {
  position: absolute; top: 60%; left: 0; right: 0; bottom: 0;
  background: linear-gradient(180deg, #4a6a7a 0%, #2a4a5a 100%);
  animation: lsc-lake 14s ease-in-out infinite;
}
.scn-lake-scene-certainty .hills {
  position: absolute; bottom: 30%; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #6a7a4a 0%, #3a4a2a 100%);
  border-radius: 50% 50% 0 0 / 60% 60% 0 0;
  box-shadow: inset 0 6px 15px rgba(0,0,0,0.5);
  animation: lsc-hills 18s ease-in-out infinite alternate;
}
.scn-lake-scene-certainty .figure {
  position: absolute; bottom: 35%; left: 50%; width: 12px; height: 28px;
  background: #1a1a2a;
  border-radius: 50% 50% 40% 40% / 50% 50% 30% 30%;
  transform: translateX(-50%);
  animation: lsc-figure 8s ease-in-out infinite;
}
.scn-lake-scene-certainty .reed-left {
  position: absolute; bottom: 0; left: 5%; width: 10px; height: 120px;
  background: linear-gradient(180deg, #4a5a3a 0%, #2a3a1a 100%);
  border-radius: 30% 30% 0 0;
  transform-origin: bottom center;
  animation: lsc-reed-left 4s ease-in-out infinite alternate;
}
.scn-lake-scene-certainty .reed-right {
  position: absolute; bottom: 0; right: 8%; width: 12px; height: 140px;
  background: linear-gradient(180deg, #5a6a4a 0%, #2a3a1a 100%);
  border-radius: 30% 30% 0 0;
  transform-origin: bottom center;
  animation: lsc-reed-right 5s ease-in-out infinite alternate;
}
.scn-lake-scene-certainty .lightbeam {
  position: absolute; top: 0; left: 30%; width: 200px; height: 160px;
  background: linear-gradient(135deg, transparent, rgba(255,240,180,0.2) 40%, transparent 80%);
  clip-path: polygon(0 0, 100% 0, 70% 100%, 30% 100%);
  animation: lsc-beam 10s ease-in-out infinite;
  pointer-events: none;
}
@keyframes lsc-sky { 0% { opacity: 0.8; } 50% { opacity: 1; } 100% { opacity: 0.85; } }
@keyframes lsc-lake { 0% { transform: translateY(0); } 30% { transform: translateY(-1px); } 60% { transform: translateY(2px); } 100% { transform: translateY(0); } }
@keyframes lsc-hills { 0% { transform: scaleY(1); } 50% { transform: scaleY(0.96); } 100% { transform: scaleY(1); } }
@keyframes lsc-figure { 0%,100% { transform: translateX(-50%) translateY(0); } 50% { transform: translateX(-50%) translateY(-3px); } }
@keyframes lsc-reed-left { 0% { transform: rotate(-5deg); } 100% { transform: rotate(5deg); } }
@keyframes lsc-reed-right { 0% { transform: rotate(4deg); } 100% { transform: rotate(-4deg); } }
@keyframes lsc-beam { 0% { opacity: 0.3; transform: scaleY(0.95); } 50% { opacity: 0.6; transform: scaleY(1.05); } 100% { opacity: 0.3; transform: scaleY(0.95); } }

.scn-lake-scene-flora-reaction {
  background:
    linear-gradient(180deg, #e5d0a0 0%, #b0c8d8 30%, #7aa0c0 60%, #4a7090 100%),
    radial-gradient(ellipse at 40% 60%, #fce89b 0%, transparent 40%);
}
.scn-lake-scene-flora-reaction .sky {
  position: absolute; inset: 0 0 45% 0;
  background: linear-gradient(180deg, #c8b880 0%, #98b8c8 100%);
  animation: lsf-sky 11s ease-in-out infinite alternate;
}
.scn-lake-scene-flora-reaction .lake {
  position: absolute; top: 55%; left: 0; right: 0; bottom: 0;
  background: linear-gradient(180deg, #4a6a7a 0%, #2a4a5a 100%);
  animation: lsf-lake 13s ease-in-out infinite;
}
.scn-lake-scene-flora-reaction .hills {
  position: absolute; bottom: 30%; left: 0; right: 0; height: 25%;
  background: linear-gradient(180deg, #6a7a4a 0%, #3a4a2a 100%);
  border-radius: 40% 60% 0 0 / 70% 50% 0 0;
  box-shadow: inset 0 5px 12px rgba(0,0,0,0.4);
  animation: lsf-hills 16s ease-in-out infinite alternate;
}
.scn-lake-scene-flora-reaction .tree {
  position: absolute; bottom: 28%; left: 5%; width: 60px; height: 100px;
  background: linear-gradient(180deg, #3a4a2a 0%, #1a2a1a 100%);
  clip-path: polygon(50% 0%, 0% 100%, 100% 100%);
  border-radius: 20% 20% 0 0;
  box-shadow: 0 8px 12px rgba(0,0,0,0.5);
  animation: lsf-tree 7s ease-in-out infinite;
}
.scn-lake-scene-flora-reaction .figure-narrator {
  position: absolute; bottom: 32%; left: 35%; width: 22px; height: 50px;
  background: linear-gradient(180deg, #2a2a3a 0%, #0a0a1a 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  transform-origin: bottom center;
  animation: lsf-narrator 6s ease-in-out infinite;
}
.scn-lake-scene-flora-reaction .figure-flora {
  position: absolute; bottom: 35%; left: 70%; width: 10px; height: 22px;
  background: #1a1a2a;
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  animation: lsf-flora 4s ease-in-out infinite alternate;
}
.scn-lake-scene-flora-reaction .heartbeat {
  position: absolute; top: 40%; left: 30%; width: 12px; height: 12px;
  background: radial-gradient(circle, #b87878 0%, transparent 70%);
  border-radius: 50%;
  box-shadow: 0 0 20px 6px rgba(184,120,120,0.4);
  animation: lsf-heartbeat 1.5s ease-in-out infinite;
}
@keyframes lsf-sky { 0% { opacity: 0.8; } 50% { opacity: 1; } 100% { opacity: 0.85; } }
@keyframes lsf-lake { 0% { transform: translateY(0); } 25% { transform: translateY(2px); } 50% { transform: translateY(-2px); } 75% { transform: translateY(1px); } 100% { transform: translateY(0); } }
@keyframes lsf-hills { 0% { transform: scaleY(1); } 50% { transform: scaleY(0.97); } 100% { transform: scaleY(1); } }
@keyframes lsf-tree { 0%,100% { transform: rotate(0deg); } 50% { transform: rotate(3deg) scale(1.02); } }
@keyframes lsf-narrator { 0% { transform: translateX(0) translateY(0) rotate(-2deg); } 30% { transform: translateX(-2px) translateY(-1px) rotate(0deg); } 60% { transform: translateX(-4px) translateY(0) rotate(2deg); } 100% { transform: translateX(0) translateY(0) rotate(-2deg); } }
@keyframes lsf-flora { 0% { transform: translateY(0); } 100% { transform: translateY(-2px); } }
@keyframes lsf-heartbeat { 0% { transform: scale(1); opacity: 0.6; } 25% { transform: scale(1.3); opacity: 1; } 50% { transform: scale(1); opacity: 0.6; } 75% { transform: scale(1.2); opacity: 0.9; } 100% { transform: scale(1); opacity: 0.6; } }

.scn-item-wood-boat {
  background: linear-gradient(180deg, #7a9cc6 0%, #2a4a6a 40%, #1a3a4a 100%), radial-gradient(ellipse at 50% 100%, #1a3a4a 0%, transparent 70%);
}
.scn-item-wood-boat .sky-wb {
  position: absolute; inset: 0 0 50% 0;
  background: linear-gradient(180deg, #b0c8e0 0%, #5a7a9a 100%);
  animation: wb-sky 15s ease-in-out infinite alternate;
}
.scn-item-wood-boat .water-wb {
  position: absolute; bottom: 0; left: 0; right: 0; height: 50%;
  background: linear-gradient(180deg, #2a5a7a 0%, #0a2a4a 100%);
  border-radius: 50% 50% 0 0 / 20% 20% 0 0;
  animation: wb-water 4s ease-in-out infinite alternate;
}
.scn-item-wood-boat .hull-wb {
  position: absolute; bottom: 40%; left: 50%; width: 70px; height: 20px;
  transform: translateX(-50%);
  background: linear-gradient(90deg, #6a4a2a 0%, #8a6a4a 50%, #5a3a1a 100%);
  border-radius: 30% 30% 50% 50% / 60% 60% 40% 40%;
  box-shadow: 0 4px 8px rgba(0,0,0,0.5);
  animation: wb-hull 3s ease-in-out infinite;
}
.scn-item-wood-boat .mast-wb {
  position: absolute; bottom: 50%; left: 50%; width: 4px; height: 40px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #5a3a1a 0%, #3a2a0a 100%);
  border-radius: 2px;
}
.scn-item-wood-boat .sail-wb {
  position: absolute; bottom: 55%; left: 48%; width: 30px; height: 35px;
  background: linear-gradient(180deg, #c8b090 0%, #a08870 100%);
  border-radius: 0 60% 60% 0 / 0 80% 80% 0;
  transform-origin: left bottom;
  animation: wb-sail 5s ease-in-out infinite;
}
.scn-item-wood-boat .hole-wb {
  position: absolute; bottom: 42%; left: 55%; width: 8px; height: 8px;
  background: radial-gradient(circle, #1a1a0a 0%, #0a0a00 100%);
  border-radius: 50%;
  box-shadow: inset 0 0 4px #000, 0 0 6px rgba(0,0,0,0.6);
  animation: wb-hole 2s ease-in-out infinite alternate;
}
.scn-item-wood-boat .shadow-wb {
  position: absolute; bottom: 36%; left: 48%; width: 80px; height: 12px;
  background: radial-gradient(ellipse, rgba(0,0,0,0.4) 0%, transparent 70%);
  border-radius: 50%;
  animation: wb-shadow 3s ease-in-out infinite alternate;
}
.scn-item-wood-boat .cloud-wb {
  position: absolute; top: 15%; left: 20%; width: 60px; height: 15px;
  background: linear-gradient(90deg, rgba(255,255,255,0.3) 0%, rgba(255,255,255,0.1) 100%);
  border-radius: 50%;
  filter: blur(5px);
  animation: wb-cloud 30s linear infinite;
}
@keyframes wb-sky {
  0% { opacity: 0.8; }
  50% { opacity: 1; }
  100% { opacity: 0.7; }
}
@keyframes wb-water {
  0% { transform: scaleY(1); }
  50% { transform: scaleY(0.97); }
  100% { transform: scaleY(1.03); }
}
@keyframes wb-hull {
  0% { transform: translateX(-50%) rotate(0deg); }
  50% { transform: translateX(-50%) rotate(3deg); }
  100% { transform: translateX(-50%) rotate(-3deg); }
}
@keyframes wb-sail {
  0% { transform: rotate(0deg); }
  50% { transform: rotate(10deg); }
  100% { transform: rotate(-5deg); }
}
@keyframes wb-hole {
  0% { box-shadow: inset 0 0 4px #000, 0 0 4px rgba(0,0,0,0.4); }
  50% { box-shadow: inset 0 0 6px #000, 0 0 10px rgba(0,0,0,0.7); }
  100% { box-shadow: inset 0 0 2px #000, 0 0 2px rgba(0,0,0,0.3); }
}
@keyframes wb-shadow {
  0% { transform: scaleX(1) scaleY(1); opacity: 0.6; }
  50% { transform: scaleX(0.9) scaleY(1.2); opacity: 0.4; }
  100% { transform: scaleX(1.1) scaleY(0.8); opacity: 0.5; }
}
@keyframes wb-cloud {
  0% { transform: translateX(-60px); }
  100% { transform: translateX(calc(100vw + 60px)); }
}

.scn-governess-confronts-mrs-grose {
  background: linear-gradient(180deg, #2a1a1a 0%, #1a0a0a 50%, #0a0a0a 100%), radial-gradient(ellipse at 50% 0%, #3a2a2a 0%, transparent 70%);
}
.scn-governess-confronts-mrs-grose .wall-gm {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(90deg, #3a2a2a 0%, #4a3a2a 50%, #2a1a1a 100%);
  animation: gm-wall 10s ease-in-out infinite alternate;
}
.scn-governess-confronts-mrs-grose .floor-gm {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #2a1a1a 0%, #1a0a0a 100%);
  border-radius: 20% 20% 0 0 / 10% 10% 0 0;
}
.scn-governess-confronts-mrs-grose .window-gm {
  position: absolute; top: 15%; left: 10%; width: 60px; height: 80px;
  background: radial-gradient(ellipse at center, #4a5a6a 0%, #2a3a4a 70%, transparent 100%);
  border: 3px solid #1a1a1a;
  border-radius: 10%;
  box-shadow: inset 0 0 20px rgba(100,150,200,0.2);
  animation: gm-window 6s ease-in-out infinite alternate;
}
.scn-governess-confronts-mrs-grose .figure1-gm {
  position: absolute; bottom: 25%; left: 20%; width: 30px; height: 60px;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: gm-fig1 3s ease-in-out infinite;
}
.scn-governess-confronts-mrs-grose .figure2-gm {
  position: absolute; bottom: 25%; right: 20%; width: 32px; height: 62px;
  background: linear-gradient(180deg, #2a1a1a 0%, #1a0a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: gm-fig2 4s ease-in-out infinite alternate;
}
.scn-governess-confronts-mrs-grose .door-gm {
  position: absolute; bottom: 20%; right: 5%; width: 50px; height: 80px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 5% 5% 0 0;
  border: 2px solid #1a0a0a;
  animation: gm-door 8s ease-in-out infinite;
}
.scn-governess-confronts-mrs-grose .lamp-gm {
  position: absolute; top: 20%; left: 40%; width: 10px; height: 15px;
  background: radial-gradient(circle, #c8a060 0%, #a88040 100%);
  border-radius: 50% 50% 30% 30%;
  box-shadow: 0 0 20px 5px rgba(200,160,96,0.5);
  animation: gm-lamp 2s ease-in-out infinite alternate;
}
@keyframes gm-wall {
  0% { opacity: 0.8; }
  50% { opacity: 1; }
  100% { opacity: 0.6; }
}
@keyframes gm-window {
  0% { box-shadow: inset 0 0 20px rgba(100,150,200,0.2); }
  50% { box-shadow: inset 0 0 30px rgba(100,150,200,0.3); }
  100% { box-shadow: inset 0 0 15px rgba(100,150,200,0.1); }
}
@keyframes gm-fig1 {
  0% { transform: translate(0, 0) rotate(0deg); }
  50% { transform: translate(3px, -2px) rotate(2deg); }
  100% { transform: translate(-2px, 0) rotate(-1deg); }
}
@keyframes gm-fig2 {
  0% { transform: translate(0, 0) scale(1); }
  50% { transform: translate(-3px, 2px) scale(0.95); }
  100% { transform: translate(2px, -1px) scale(1.02); }
}
@keyframes gm-door {
  0% { transform: rotate(0deg); }
  50% { transform: rotate(-5deg); }
  100% { transform: rotate(3deg); }
}
@keyframes gm-lamp {
  0% { transform: scale(1); opacity: 0.8; }
  50% { transform: scale(1.1); opacity: 1; }
  100% { transform: scale(0.9); opacity: 0.7; }
}

.scn-governess-revelation {
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 50%, #05050f 100%), radial-gradient(ellipse at 50% 30%, #2a2a3a 0%, transparent 70%);
}
.scn-governess-revelation .bg-gr {
  position: absolute; inset: 0 0 35% 0;
  background: linear-gradient(90deg, #1a1a2a 0%, #2a2a3a 50%, #1a1a2a 100%);
  animation: gr-bg 12s ease-in-out infinite alternate;
}
.scn-governess-revelation .floor-gr {
  position: absolute; bottom: 0; left: 0; right: 0; height: 35%;
  background: linear-gradient(180deg, #2a1a1a 0%, #0a0a0a 100%);
  border-radius: 15% 15% 0 0 / 5% 5% 0 0;
}
.scn-governess-revelation .window-gr {
  position: absolute; top: 10%; left: 5%; width: 80px; height: 100px;
  background: radial-gradient(ellipse at 50% 60%, #4a6a5a 0%, #2a4a3a 50%, transparent 100%);
  border: 2px solid #1a1a1a;
  border-radius: 20% 20% 10% 10%;
  box-shadow: inset 0 0 30px rgba(50,100,70,0.3);
  animation: gr-window 8s ease-in-out infinite alternate;
}
.scn-governess-revelation .figure-gr {
  position: absolute; bottom: 30%; left: 50%; width: 40px; height: 70px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: gr-fig 5s ease-in-out infinite;
}
.scn-governess-revelation .arm-gr {
  position: absolute; bottom: 50%; left: 48%; width: 20px; height: 8px;
  background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%);
  border-radius: 40% 40% 20% 20%;
  transform-origin: right center;
  animation: gr-arm 3s ease-in-out infinite alternate;
}
.scn-governess-revelation .candle-gr {
  position: absolute; bottom: 35%; left: 35%; width: 6px; height: 14px;
  background: linear-gradient(180deg, #c8a060 0%, #a08040 100%);
  border-radius: 30% 30% 10% 10%;
  box-shadow: 0 0 12px 3px rgba(200,160,96,0.4);
  animation: gr-candle 2s ease-in-out infinite alternate;
}
.scn-governess-revelation .shadow-gr {
  position: absolute; bottom: 28%; left: 50%; width: 50px; height: 20px;
  transform: translateX(-50%);
  background: radial-gradient(ellipse, rgba(0,0,0,0.6) 0%, transparent 70%);
  border-radius: 50%;
  animation: gr-shadow 6s ease-in-out infinite alternate;
}
@keyframes gr-bg {
  0% { opacity: 0.7; }
  50% { opacity: 1; }
  100% { opacity: 0.5; }
}
@keyframes gr-window {
  0% { box-shadow: inset 0 0 30px rgba(50,100,70,0.3); }
  50% { box-shadow: inset 0 0 40px rgba(50,100,70,0.5); }
  100% { box-shadow: inset 0 0 20px rgba(50,100,70,0.2); }
}
@keyframes gr-fig {
  0% { transform: translateX(-50%) rotate(0deg); }
  50% { transform: translateX(-50%) rotate(2deg); }
  100% { transform: translateX(-50%) rotate(-2deg); }
}
@keyframes gr-arm {
  0% { transform: rotate(-20deg); }
  50% { transform: rotate(10deg); }
  100% { transform: rotate(-15deg); }
}
@keyframes gr-candle {
  0% { transform: scale(1) translateY(0); opacity: 0.9; }
  50% { transform: scale(1.05) translateY(-1px); opacity: 1; }
  100% { transform: scale(0.95) translateY(1px); opacity: 0.8; }
}
@keyframes gr-shadow {
  0% { transform: translateX(-50%) scaleX(1) scaleY(1); opacity: 0.5; }
  50% { transform: translateX(-50%) scaleX(0.8) scaleY(1.3); opacity: 0.3; }
  100% { transform: translateX(-50%) scaleX(1.1) scaleY(0.7); opacity: 0.4; }
}

.scn-governess-description {
  background: linear-gradient(180deg, #0a0a0a 0%, #1a1a1a 40%, #2a2a2a 100%), radial-gradient(ellipse at 50% 70%, #2a2a2a 0%, transparent 60%);
}
.scn-governess-description .bg-gd {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(90deg, #0a0a0a 0%, #1a1a1a 50%, #0a0a0a 100%);
  animation: gd-bg 15s ease-in-out infinite alternate;
}
.scn-governess-description .floor-gd {
  position: absolute; bottom: 0; left: 0; right: 0; height: 40%;
  background: linear-gradient(180deg, #1a1a1a 0%, #0a0a0a 100%);
  border-radius: 10% 10% 0 0 / 5% 5% 0 0;
}
.scn-governess-description .figure-gd {
  position: absolute; bottom: 35%; left: 50%; width: 50px; height: 90px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #0a0a0a 0%, #1a1a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: gd-fig 7s ease-in-out infinite;
}
.scn-governess-description .face-gd {
  position: absolute; bottom: 60%; left: 50%; width: 18px; height: 22px;
  transform: translateX(-50%);
  background: radial-gradient(circle, #c8c8c8 0%, #a0a0a0 60%, transparent 100%);
  border-radius: 50%;
  opacity: 0.3;
  animation: gd-face 4s ease-in-out infinite alternate;
}
.scn-governess-description .hands-gd {
  position: absolute; bottom: 40%; left: 45%; width: 12px; height: 10px;
  background: radial-gradient(circle, #b0b0b0 0%, #808080 100%);
  border-radius: 40% 40% 20% 20%;
  animation: gd-hands 3s ease-in-out infinite alternate;
}
.scn-governess-description .veil-gd {
  position: absolute; top: 25%; left: 48%; width: 20px; height: 40px;
  background: linear-gradient(180deg, rgba(200,200,200,0.1) 0%, rgba(100,100,100,0.2) 100%);
  border-radius: 50%;
  filter: blur(3px);
  animation: gd-veil 6s ease-in-out infinite;
}
.scn-governess-description .shadow-gd {
  position: absolute; bottom: 30%; left: 50%; width: 60px; height: 30px;
  transform: translateX(-50%);
  background: radial-gradient(ellipse, rgba(0,0,0,0.7) 0%, transparent 70%);
  border-radius: 50%;
  animation: gd-shadow 5s ease-in-out infinite alternate;
}
@keyframes gd-bg {
  0% { opacity: 0.6; }
  50% { opacity: 0.9; }
  100% { opacity: 0.5; }
}
@keyframes gd-fig {
  0% { transform: translateX(-50%) translateY(0) rotate(0deg); }
  50% { transform: translateX(-50%) translateY(-2px) rotate(2deg); }
  100% { transform: translateX(-50%) translateY(1px) rotate(-1deg); }
}
@keyframes gd-face {
  0% { opacity: 0.2; transform: translateX(-50%) scale(1); }
  50% { opacity: 0.4; transform: translateX(-50%) scale(1.05); }
  100% { opacity: 0.1; transform: translateX(-50%) scale(0.95); }
}
@keyframes gd-hands {
  0% { transform: translate(0, 0) scale(1); }
  50% { transform: translate(3px, -2px) scale(0.9); }
  100% { transform: translate(-2px, 1px) scale(1.1); }
}
@keyframes gd-veil {
  0% { transform: rotate(0deg) scale(1); opacity: 0.3; }
  50% { transform: rotate(8deg) scale(1.1); opacity: 0.5; }
  100% { transform: rotate(-5deg) scale(0.9); opacity: 0.2; }
}
@keyframes gd-shadow {
  0% { transform: translateX(-50%) scaleX(1) scaleY(1); opacity: 0.6; }
  50% { transform: translateX(-50%) scaleX(0.85) scaleY(1.3); opacity: 0.4; }
  100% { transform: translateX(-50%) scaleX(1.1) scaleY(0.8); opacity: 0.5; }
}

.scn-patience-amazement {
  background: linear-gradient(180deg, #3b2e22 0%, #2a1f16 50%, #1c1410 100%), radial-gradient(ellipse at 50% 30%, #5a4535 0%, transparent 60%);
}
.scn-patience-amazement .bg-wall {
  position: absolute; inset: 0 0 35% 0;
  background: linear-gradient(135deg, #4a3a2a 0%, #3a2a1a 60%, #2a1a10 100%);
  animation: pa-wall 20s ease-in-out infinite alternate;
}
.scn-patience-amazement .bg-floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 35%;
  background: linear-gradient(180deg, #3a2a1a 0%, #1f1208 100%);
  border-radius: 30% 70% 0 0 / 50% 50% 0 0;
}
.scn-patience-amazement .window-glow {
  position: absolute; top: 20%; left: 55%; width: 80px; height: 90px;
  background: radial-gradient(ellipse at 50% 50%, #ffe4b5 0%, #c8a872 40%, transparent 70%);
  border-radius: 10% / 15%;
  box-shadow: 0 0 60px 20px rgba(200,168,114,0.3), 0 0 120px 40px rgba(200,168,114,0.1);
  animation: pa-glow 6s ease-in-out infinite alternate;
}
.scn-patience-amazement .light-beam {
  position: absolute; top: 20%; left: 55%; width: 120px; height: 200px;
  background: linear-gradient(180deg, rgba(255,228,181,0.2) 0%, rgba(200,168,114,0.05) 100%);
  transform-origin: top left; transform: skewX(-15deg);
  animation: pa-beam 12s ease-in-out infinite alternate;
}
.scn-patience-amazement .figure-child-a {
  position: absolute; bottom: 25%; left: 30%; width: 22px; height: 40px;
  background: linear-gradient(180deg, #1f1a15 0%, #0d0b09 100%);
  border-radius: 50% 50% 45% 45% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: pa-figure-a 5s ease-in-out infinite;
}
.scn-patience-amazement .figure-child-b {
  position: absolute; bottom: 22%; left: 42%; width: 20px; height: 36px;
  background: linear-gradient(180deg, #1f1a15 0%, #0d0b09 100%);
  border-radius: 50% 50% 45% 45% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: pa-figure-b 5.3s ease-in-out infinite 1s;
}
.scn-patience-amazement .rug {
  position: absolute; bottom: 10%; left: 25%; width: 50%; height: 18%;
  background: linear-gradient(135deg, #6a5438 0%, #5a4430 30%, #4a3422 70%, #3a2418 100%);
  border-radius: 20% 80% 30% 70% / 50% 50% 50% 50%;
  opacity: 0.7;
  animation: pa-rug 15s ease-in-out infinite alternate;
}
@keyframes pa-wall {
  0% { opacity: 0.9; }
  50% { opacity: 1; }
  100% { opacity: 0.85; }
}
@keyframes pa-glow {
  0% { opacity: 0.7; transform: scale(0.95); }
  50% { opacity: 1; transform: scale(1.05) rotate(2deg); }
  100% { opacity: 0.8; transform: scale(0.98); }
}
@keyframes pa-beam {
  0% { opacity: 0.3; transform: skewX(-15deg) translateX(-5px); }
  50% { opacity: 0.6; transform: skewX(-10deg) translateX(3px); }
  100% { opacity: 0.4; transform: skewX(-12deg) translateX(-2px); }
}
@keyframes pa-figure-a {
  0%,100% { transform: translateY(0) rotate(-2deg); }
  25% { transform: translateY(-2px) rotate(2deg); }
  50% { transform: translateY(-1px) rotate(-1deg); }
  75% { transform: translateY(-3px) rotate(3deg); }
}
@keyframes pa-figure-b {
  0%,100% { transform: translateY(0) rotate(2deg); }
  25% { transform: translateY(-3px) rotate(-2deg); }
  50% { transform: translateY(-2px) rotate(1deg); }
  75% { transform: translateY(-1px) rotate(-3deg); }
}
@keyframes pa-rug {
  0% { transform: scaleY(1) translateY(0); }
  50% { transform: scaleY(1.02) translateY(-1px); }
  100% { transform: scaleY(0.98) translateY(1px); }
}

.scn-relief-storm {
  background: linear-gradient(180deg, #11131f 0%, #1a1c2e 40%, #2a2d44 100%), radial-gradient(ellipse at 50% 80%, #2a2d44 0%, transparent 60%);
}
.scn-relief-storm .bg-interior {
  position: absolute; inset: 0 0 20% 0;
  background: linear-gradient(180deg, #1a1c2e 0%, #0f111a 100%);
  animation: rs-interior 8s ease-in-out infinite alternate;
}
.scn-relief-storm .window-frame {
  position: absolute; top: 15%; left: 50%; width: 160px; height: 180px;
  transform: translateX(-50%);
  background: linear-gradient(135deg, #2a2d3a 0%, #1a1d2a 100%);
  border-radius: 8% / 10%;
  box-shadow: inset 0 0 20px 10px rgba(0,0,0,0.6);
  animation: rs-frame 4s ease-in-out infinite;
}
.scn-relief-storm .storm-sky {
  position: absolute; top: 15%; left: 50%; width: 140px; height: 160px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #0b0d1a 0%, #1a1c3a 50%, #2a2d4a 100%);
  border-radius: 6% / 8%;
  animation: rs-sky 6s ease-in-out infinite alternate;
}
.scn-relief-storm .lightning-flash {
  position: absolute; top: 20%; left: 52%; width: 6px; height: 80px;
  background: linear-gradient(180deg, #ffffff 0%, #aaccff 60%, transparent 100%);
  box-shadow: 0 0 40px 15px rgba(170,204,255,0.5);
  transform-origin: top center;
  animation: rs-lightning 3s ease-in-out infinite;
}
.scn-relief-storm .rain-streak {
  position: absolute; top: 18%; left: 40%; width: 2px; height: 120px;
  background: linear-gradient(180deg, rgba(170,204,255,0.3) 0%, transparent 100%);
  animation: rs-rain 0.8s linear infinite;
}
.scn-relief-storm .table {
  position: absolute; bottom: 15%; left: 30%; width: 120px; height: 20px;
  background: linear-gradient(180deg, #3a2d1a 0%, #2a1a0a 100%);
  border-radius: 4px;
  box-shadow: 0 6px 12px rgba(0,0,0,0.5);
  animation: rs-table 10s ease-in-out infinite alternate;
}
.scn-relief-storm .candle {
  position: absolute; bottom: 20%; left: 35%; width: 8px; height: 24px;
  background: linear-gradient(180deg, #ffe4b5 0%, #c8a872 50%, #8a6a42 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 20% 20%;
  box-shadow: 0 0 20px 8px rgba(200,168,114,0.6);
  animation: rs-candle 2s ease-in-out infinite alternate;
}
.scn-relief-storm .figure-watching {
  position: absolute; bottom: 18%; left: 48%; width: 24px; height: 44px;
  background: linear-gradient(180deg, #1a1c24 0%, #0a0c14 100%);
  border-radius: 50% 50% 45% 45% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: rs-figure 4s ease-in-out infinite;
}
@keyframes rs-interior { 0% { opacity: 0.8; } 50% { opacity: 1; } 100% { opacity: 0.7; } }
@keyframes rs-frame { 0%,100% { transform: translateX(-50%) scale(1); } 50% { transform: translateX(-50%) scale(1.01); } }
@keyframes rs-sky { 0% { opacity: 0.6; } 50% { opacity: 1; } 100% { opacity: 0.5; } }
@keyframes rs-lightning {
  0%, 95%, 100% { opacity: 0; transform: scaleY(0.3); }
  5% { opacity: 1; transform: scaleY(1); }
  15% { opacity: 0.2; transform: scaleY(0.8); }
  25% { opacity: 1; transform: scaleY(1.2); }
  35% { opacity: 0; transform: scaleY(0.5); }
}
@keyframes rs-rain {
  0% { transform: translateY(-60px); opacity: 0; }
  20% { opacity: 0.8; }
  80% { opacity: 0.8; }
  100% { transform: translateY(100px); opacity: 0; }
}
@keyframes rs-table { 0% { transform: translateY(0); } 50% { transform: translateY(-2px); } 100% { transform: translateY(0); } }
@keyframes rs-candle { 0% { transform: scaleY(0.95) translateY(0); box-shadow: 0 0 15px 5px rgba(200,168,114,0.4); } 50% { transform: scaleY(1.05) translateY(-2px); box-shadow: 0 0 30px 10px rgba(200,168,114,0.7); } 100% { transform: scaleY(0.98) translateY(0); box-shadow: 0 0 20px 6px rgba(200,168,114,0.5); } }
@keyframes rs-figure {
  0%,100% { transform: translateY(0) rotate(0); }
  25% { transform: translateY(-3px) rotate(2deg); }
  50% { transform: translateY(-1px) rotate(-1deg); }
  75% { transform: translateY(-4px) rotate(3deg); }
}

.scn-church-morning {
  background: linear-gradient(180deg, #6da3cf 0%, #b2d4e8 30%, #eef6fb 70%, #fafcf8 100%), radial-gradient(ellipse at 50% 0%, #fefef0 0%, transparent 50%);
}
.scn-church-morning .bg-sky {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #8cbae0 0%, #cde1f0 100%);
  animation: cm-sky 20s ease-in-out infinite alternate;
}
.scn-church-morning .sun {
  position: absolute; top: 12%; left: 68%; width: 50px; height: 50px;
  background: radial-gradient(circle, #ffeedd 0%, #ffcc88 40%, transparent 70%);
  border-radius: 50%;
  box-shadow: 0 0 80px 30px rgba(255,204,136,0.4), 0 0 160px 60px rgba(255,204,136,0.15);
  animation: cm-sun 15s ease-in-out infinite alternate;
}
.scn-church-morning .path {
  position: absolute; bottom: 20%; left: 0; right: 0; height: 20%;
  background: linear-gradient(180deg, #b8a88a 0%, #9c8a6e 50%, #7a6a50 100%);
  border-radius: 30% 70% 0 0 / 60% 40% 0 0;
  transform: perspective(400px) rotateX(10deg);
  animation: cm-path 18s ease-in-out infinite alternate;
}
.scn-church-morning .church-silhouette {
  position: absolute; bottom: 30%; left: 40%; width: 120px; height: 160px;
  background: linear-gradient(180deg, #4a4a3a 0%, #2a2a1a 100%);
  clip-path: polygon(50% 10%, 60% 30%, 60% 100%, 40% 100%, 40% 30%);
  border-radius: 0 0 10% 10%;
  box-shadow: 0 8px 20px rgba(0,0,0,0.3);
  animation: cm-church 10s ease-in-out infinite alternate;
}
.scn-church-morning .tree-left {
  position: absolute; bottom: 28%; left: 15%; width: 40px; height: 80px;
  background: linear-gradient(180deg, #3a5a3a 0%, #1a3a1a 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: cm-tree-l 8s ease-in-out infinite alternate;
}
.scn-church-morning .tree-right {
  position: absolute; bottom: 28%; right: 18%; width: 35px; height: 70px;
  background: linear-gradient(180deg, #3a5a3a 0%, #1a3a1a 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: cm-tree-r 9s ease-in-out infinite alternate 2s;
}
.scn-church-morning .figure-child-c {
  position: absolute; bottom: 22%; left: 35%; width: 18px; height: 36px;
  background: linear-gradient(180deg, #1f1a15 0%, #0d0b09 100%);
  border-radius: 50% 50% 45% 45% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: cm-walk-c 4s ease-in-out infinite;
}
.scn-church-morning .figure-child-d {
  position: absolute; bottom: 22%; left: 42%; width: 18px; height: 34px;
  background: linear-gradient(180deg, #1f1a15 0%, #0d0b09 100%);
  border-radius: 50% 50% 45% 45% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: cm-walk-d 4.2s ease-in-out infinite 0.5s;
}
@keyframes cm-sky { 0% { opacity: 0.9; } 50% { opacity: 1; } 100% { opacity: 0.85; } }
@keyframes cm-sun {
  0% { transform: translateY(0) scale(0.95); box-shadow: 0 0 60px 20px rgba(255,204,136,0.3); }
  50% { transform: translateY(-4px) scale(1.05); box-shadow: 0 0 100px 30px rgba(255,204,136,0.5); }
  100% { transform: translateY(2px) scale(1); box-shadow: 0 0 80px 25px rgba(255,204,136,0.4); }
}
@keyframes cm-path { 0% { transform: perspective(400px) rotateX(10deg) translateY(0); } 50% { transform: perspective(400px) rotateX(12deg) translateY(-3px); } 100% { transform: perspective(400px) rotateX(9deg) translateY(0); } }
@keyframes cm-church { 0% { transform: scaleY(1); } 50% { transform: scaleY(1.02) translateY(-2px); } 100% { transform: scaleY(0.98) translateY(0); } }
@keyframes cm-tree-l { 0% { transform: rotate(-2deg); } 50% { transform: rotate(2deg); } 100% { transform: rotate(-1deg); } }
@keyframes cm-tree-r { 0% { transform: rotate(2deg); } 50% { transform: rotate(-2deg); } 100% { transform: rotate(1deg); } }
@keyframes cm-walk-c {
  0%,100% { transform: translateX(0) translateY(0) rotate(0); }
  25% { transform: translateX(4px) translateY(-2px) rotate(2deg); }
  50% { transform: translateX(8px) translateY(0) rotate(-1deg); }
  75% { transform: translateX(12px) translateY(-2px) rotate(2deg); }
}
@keyframes cm-walk-d {
  0%,100% { transform: translateX(0) translateY(0) rotate(1deg); }
  25% { transform: translateX(4px) translateY(-1px) rotate(-2deg); }
  50% { transform: translateX(8px) translateY(0) rotate(1deg); }
  75% { transform: translateX(12px) translateY(-1px) rotate(-2deg); }
}

.scn-gaoler-comparison {
  background: linear-gradient(180deg, #f0d8b0 0%, #d4b88a 30%, #b89a6a 60%, #8a7050 100%), radial-gradient(ellipse at 50% 0%, #fff8e0 0%, transparent 50%);
}
.scn-gaoler-comparison .bg-cell-wall {
  position: absolute; inset: 0 0 25% 0;
  background: linear-gradient(90deg, #a09070 0%, #c0b090 20%, #b8a888 50%, #9a8a6a 80%, #8a7a5a 100%);
  animation: gc-wall 15s ease-in-out infinite alternate;
}
.scn-gaoler-comparison .floor-stone {
  position: absolute; bottom: 0; left: 0; right: 0; height: 25%;
  background: linear-gradient(180deg, #6a5a4a 0%, #4a3a2a 100%);
  border-radius: 20% 80% 0 0 / 40% 60% 0 0;
}
.scn-gaoler-comparison .window-bars {
  position: absolute; top: 18%; left: 50%; width: 100px; height: 120px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #2a2a2a 0%, #3a3a3a 50%, #2a2a2a 100%);
  box-shadow: inset 0 0 20px 10px rgba(0,0,0,0.4);
  clip-path: polygon(20% 0%, 30% 0%, 30% 100%, 20% 100%, 20% 0%, 50% 0%, 60% 0%, 60% 100%, 50% 100%, 50% 0%, 80% 0%, 90% 0%, 90% 100%, 80% 100%, 80% 0%);
  animation: gc-bars 4s ease-in-out infinite alternate;
}
.scn-gaoler-comparison .sunbeam {
  position: absolute; top: 18%; left: 50%; width: 80px; height: 200px;
  transform: translateX(-50%) skewX(-10deg);
  background: linear-gradient(180deg, rgba(255,248,224,0.25) 0%, rgba(255,248,224,0.05) 100%);
  animation: gc-beam 8s ease-in-out infinite alternate;
}
.scn-gaoler-comparison .gaoler-silhouette {
  position: absolute; bottom: 20%; left: 20%; width: 30px; height: 60px;
  background: linear-gradient(180deg, #1a1a1a 0%, #0a0a0a 100%);
  border-radius: 45% 45% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: gc-gaoler 5s ease-in-out infinite;
}
.scn-gaoler-comparison .child-silhouette-a {
  position: absolute; bottom: 18%; left: 55%; width: 18px; height: 32px;
  background: linear-gradient(180deg, #1f1a15 0%, #0d0b09 100%);
  border-radius: 50% 50% 45% 45% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: gc-child-a 6s ease-in-out infinite;
}
.scn-gaoler-comparison .child-silhouette-b {
  position: absolute; bottom: 16%; left: 62%; width: 16px; height: 28px;
  background: linear-gradient(180deg, #1f1a15 0%, #0d0b09 100%);
  border-radius: 50% 50% 45% 45% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: gc-child-b 5.5s ease-in-out infinite 0.5s;
}
.scn-gaoler-comparison .door {
  position: absolute; bottom: 10%; right: 12%; width: 60px; height: 100px;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 4% 4% 2% 2%;
  box-shadow: -4px 0 10px rgba(0,0,0,0.3);
  animation: gc-door 12s ease-in-out infinite alternate;
}
@keyframes gc-wall { 0% { opacity: 0.9; } 50% { opacity: 1; } 100% { opacity: 0.85; } }
@keyframes gc-bars { 0% { transform: translateX(-50%) scaleY(1); } 50% { transform: translateX(-50%) scaleY(1.02); } 100% { transform: translateX(-50%) scaleY(0.98); } }
@keyframes gc-beam { 0% { opacity: 0.2; transform: translateX(-50%) skewX(-10deg) translateY(0); } 50% { opacity: 0.6; transform: translateX(-45%) skewX(-8deg) translateY(-3px); } 100% { opacity: 0.3; transform: translateX(-55%) skewX(-12deg) translateY(2px); } }
@keyframes gc-gaoler {
  0%,100% { transform: translateY(0) rotate(0); }
  25% { transform: translateY(-2px) rotate(3deg); }
  50% { transform: translateY(0) rotate(-2deg); }
  75% { transform: translateY(-3px) rotate(4deg); }
}
@keyframes gc-child-a {
  0%,100% { transform: translateY(0) rotate(-2deg) scale(1); }
  25% { transform: translateY(-2px) rotate(2deg) scale(0.95); }
  50% { transform: translateY(-1px) rotate(-1deg) scale(1); }
  75% { transform: translateY(-3px) rotate(3deg) scale(0.98); }
}
@keyframes gc-child-b {
  0%,100% { transform: translateY(0) rotate(2deg) scale(1); }
  25% { transform: translateY(-3px) rotate(-2deg) scale(0.95); }
  50% { transform: translateY(-1px) rotate(1deg) scale(1); }
  75% { transform: translateY(-2px) rotate(-3deg) scale(0.98); }
}
@keyframes gc-door { 0% { transform: translateX(0); } 50% { transform: translateX(3px); } 100% { transform: translateX(-2px); } }

/* miles-said-nothing */
.scn-miles-said-nothing {
  background: linear-gradient(135deg, #2a0f0a 0%, #4a1f12 60%, #6b2f1a 100%), radial-gradient(ellipse at 60% 80%, #8b4f2a 0%, transparent 60%);
}
.scn-miles-said-nothing .wall {
  position: absolute; inset: 0; background: linear-gradient(180deg, #3b1a0a 0%, #2a0f0a 100%); opacity: 0.8;
  animation: msn-wall 20s ease-in-out infinite alternate;
}
.scn-miles-said-nothing .window {
  position: absolute; top: 10%; left: 10%; width: 30%; height: 45%;
  background: linear-gradient(180deg, #0a1a2a 0%, #152a3a 100%); border: 4px solid #3a1f10; border-radius: 4px;
  box-shadow: inset 0 0 30px rgba(0,0,0,0.6); animation: msn-window 12s ease-in-out infinite alternate;
}
.scn-miles-said-nothing .fireplace {
  position: absolute; bottom: 5%; left: 50%; width: 40%; height: 50%; transform: translateX(-50%);
  background: linear-gradient(180deg, #3a1f10 0%, #1f0a05 100%); border-radius: 10% 10% 40% 40% / 20% 20% 60% 60%;
  box-shadow: 0 0 40px rgba(200,100,40,0.3); animation: msn-fireplace 8s ease-in-out infinite;
}
.scn-miles-said-nothing .fire-glow {
  position: absolute; bottom: 35%; left: 50%; width: 20%; height: 20%; transform: translateX(-50%);
  background: radial-gradient(circle, #ffa050 0%, #d06020 40%, #602010 70%, transparent 100%);
  border-radius: 50%; filter: blur(8px); box-shadow: 0 0 80px #d06020;
  animation: msn-fireglow 2s ease-in-out infinite alternate;
}
.scn-miles-said-nothing .figure-adult {
  position: absolute; bottom: 8%; left: 30%; width: 12%; height: 40%;
  background: linear-gradient(180deg, #1a0f0a 0%, #0a0503 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center; animation: msn-figure-adult 6s ease-in-out infinite;
}
.scn-miles-said-nothing .figure-child {
  position: absolute; bottom: 8%; left: 45%; width: 10%; height: 28%;
  background: linear-gradient(180deg, #1a0f0a 0%, #0a0503 100%);
  border-radius: 50% 50% 45% 45% / 60% 60% 40% 40%;
  transform-origin: bottom center; animation: msn-figure-child 7s ease-in-out infinite;
}
.scn-miles-said-nothing .star {
  position: absolute; top: 15%; left: 20%; width: 4px; height: 4px;
  background: #c0c8d0; border-radius: 50%; box-shadow: 0 0 6px #c0c8d0;
  animation: msn-star 4s ease-in-out infinite alternate;
}
@keyframes msn-wall { 0% { opacity: 0.75; } 50% { opacity: 0.85; } 100% { opacity: 0.75; } }
@keyframes msn-window { 0% { opacity: 0.6; box-shadow: inset 0 0 20px rgba(0,0,0,0.8); } 50% { opacity: 0.8; box-shadow: inset 0 0 40px rgba(0,0,0,0.5); } 100% { opacity: 0.6; box-shadow: inset 0 0 20px rgba(0,0,0,0.8); } }
@keyframes msn-fireplace { 0%, 100% { transform: translateX(-50%) scaleY(1); } 25% { transform: translateX(-50%) scaleY(1.02); } 50% { transform: translateX(-50%) scaleY(0.98); } 75% { transform: translateX(-50%) scaleY(1.01); } }
@keyframes msn-fireglow { 0% { opacity: 0.7; transform: translateX(-50%) scale(0.95); } 100% { opacity: 1; transform: translateX(-50%) scale(1.05); } }
@keyframes msn-figure-adult { 0% { transform: translateX(0) rotate(-1deg); } 25% { transform: translateX(0.5%) rotate(1deg); } 50% { transform: translateX(-0.3%) rotate(-0.5deg); } 75% { transform: translateX(0.2%) rotate(0.5deg); } 100% { transform: translateX(0) rotate(-1deg); } }
@keyframes msn-figure-child { 0% { transform: translateX(0) rotate(1deg); } 25% { transform: translateX(-0.3%) rotate(-1deg); } 50% { transform: translateX(0.2%) rotate(0.5deg); } 75% { transform: translateX(-0.1%) rotate(-0.5deg); } 100% { transform: translateX(0) rotate(1deg); } }
@keyframes msn-star { 0% { opacity: 0.2; transform: scale(0.8); } 50% { opacity: 0.9; transform: scale(1.2); } 100% { opacity: 0.3; transform: scale(0.9); } }

/* all-out */
.scn-all-out {
  background: linear-gradient(180deg, #1a0a06 0%, #2a1208 40%, #3a1a0c 100%), radial-gradient(ellipse at 80% 50%, #5a2a14 0%, transparent 70%);
}
.scn-all-out .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 20%;
  background: linear-gradient(180deg, #2a1208 0%, #1a0a06 100%); border-radius: 20% 20% 0 0;
  animation: ao-floor 15s ease-in-out infinite alternate;
}
.scn-all-out .wall-left {
  position: absolute; top: 0; left: 0; width: 30%; height: 80%;
  background: linear-gradient(135deg, #2a0f0a 0%, #1a0502 100%);
  box-shadow: inset -6px 0 12px rgba(0,0,0,0.5); animation: ao-wall 10s ease-in-out infinite;
}
.scn-all-out .wall-right {
  position: absolute; top: 0; right: 0; width: 30%; height: 80%;
  background: linear-gradient(225deg, #2a0f0a 0%, #1a0502 100%);
  box-shadow: inset 6px 0 12px rgba(0,0,0,0.5); animation: ao-wall 10s ease-in-out infinite reverse;
}
.scn-all-out .figure-governess {
  position: absolute; bottom: 18%; left: 35%; width: 14%; height: 45%;
  background: linear-gradient(180deg, #1a0a06 0%, #0a0502 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center; animation: ao-figure-governess 3s ease-in-out infinite;
}
.scn-all-out .figure-jessel {
  position: absolute; bottom: 18%; right: 35%; width: 14%; height: 45%;
  background: linear-gradient(180deg, #3a1a0c 0%, #2a0f0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center; animation: ao-figure-jessel 4s ease-in-out infinite;
  opacity: 0.7;
}
.scn-all-out .candle {
  position: absolute; bottom: 28%; left: 48%; width: 2%; height: 12%;
  background: linear-gradient(180deg, #d08040 0%, #8a4020 100%);
  border-radius: 10% 10% 30% 30%; box-shadow: 0 0 20px #d08040;
  animation: ao-candle 1.5s ease-in-out infinite alternate;
}
.scn-all-out .shadow-1 {
  position: absolute; bottom: 0; left: 10%; width: 40%; height: 60%;
  background: radial-gradient(ellipse at 50% 100%, #0a0502 0%, transparent 70%);
  animation: ao-shadow 5s ease-in-out infinite alternate;
}
.scn-all-out .shadow-2 {
  position: absolute; bottom: 0; right: 10%; width: 40%; height: 60%;
  background: radial-gradient(ellipse at 50% 100%, #0a0502 0%, transparent 70%);
  animation: ao-shadow 5s ease-in-out infinite alternate-reverse;
}
@keyframes ao-floor { 0% { opacity: 0.8; } 50% { opacity: 0.9; } 100% { opacity: 0.8; } }
@keyframes ao-wall { 0% { opacity: 0.8; } 50% { opacity: 1; } 100% { opacity: 0.8; } }
@keyframes ao-figure-governess { 0% { transform: translateX(0) rotate(-1deg); } 20% { transform: translateX(1%) rotate(2deg); } 40% { transform: translateX(-1%) rotate(-2deg); } 60% { transform: translateX(0.5%) rotate(1deg); } 80% { transform: translateX(-0.5%) rotate(-1deg); } 100% { transform: translateX(0) rotate(-1deg); } }
@keyframes ao-figure-jessel { 0% { transform: translateX(0) rotate(1deg); opacity: 0.7; } 25% { transform: translateX(-1%) rotate(-2deg); opacity: 0.5; } 50% { transform: translateX(0.5%) rotate(2deg); opacity: 0.8; } 75% { transform: translateX(-0.3%) rotate(-1deg); opacity: 0.6; } 100% { transform: translateX(0) rotate(1deg); opacity: 0.7; } }
@keyframes ao-candle { 0% { transform: scaleY(1) translateY(0); box-shadow: 0 0 15px #d08040; } 50% { transform: scaleY(1.05) translateY(-1px); box-shadow: 0 0 25px #e09050; } 100% { transform: scaleY(1) translateY(0); box-shadow: 0 0 15px #d08040; } }
@keyframes ao-shadow { 0% { opacity: 0.6; transform: scaleX(1); } 50% { opacity: 0.8; transform: scaleX(1.1); } 100% { opacity: 0.6; transform: scaleX(1); } }

/* jessel-spoke */
.scn-jessel-spoke {
  background: linear-gradient(135deg, #0f0505 0%, #1f0a08 40%, #2f100a 100%), radial-gradient(ellipse at 30% 70%, #2f100a 0%, transparent 80%);
}
.scn-jessel-spoke .bg-void {
  position: absolute; inset: 0; background: linear-gradient(180deg, #0a0303 0%, #1a0705 100%);
  animation: js-bg 20s ease-in-out infinite alternate;
}
.scn-jessel-spoke .desk {
  position: absolute; bottom: 0; left: 20%; width: 60%; height: 25%;
  background: linear-gradient(180deg, #2a1208 0%, #1a0a06 100%); border-radius: 10% 10% 0 0;
  box-shadow: 0 -4px 20px rgba(0,0,0,0.5); animation: js-desk 12s ease-in-out infinite;
}
.scn-jessel-spoke .candle {
  position: absolute; bottom: 30%; left: 30%; width: 2%; height: 15%;
  background: linear-gradient(180deg, #c07030 0%, #7a3a20 100%);
  border-radius: 10% 10% 30% 30%; box-shadow: 0 0 30px #c07030;
  animation: js-candle 2s ease-in-out infinite alternate;
}
.scn-jessel-spoke .book {
  position: absolute; bottom: 5%; left: 35%; width: 8%; height: 12%;
  background: linear-gradient(180deg, #5a2a1a 0%, #3a1a0a 100%);
  border-radius: 4% 4% 2% 2%; transform: rotate(-5deg);
  box-shadow: 2px 4px 8px rgba(0,0,0,0.6); animation: js-book 8s ease-in-out infinite alternate;
}
.scn-jessel-spoke .figure-governess {
  position: absolute; bottom: 18%; left: 20%; width: 15%; height: 50%;
  background: linear-gradient(180deg, #0f0505 0%, #050202 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center; animation: js-figure-governess 5s ease-in-out infinite;
}
.scn-jessel-spoke .figure-ghost {
  position: absolute; bottom: 18%; right: 15%; width: 15%; height: 55%;
  background: linear-gradient(180deg, #2a0f0a 0%, #1a0705 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  opacity: 0.5; transform-origin: bottom center; animation: js-figure-ghost 7s ease-in-out infinite;
}
.scn-jessel-spoke .clock {
  position: absolute; top: 10%; right: 10%; width: 12%; height: 18%;
  background: radial-gradient(circle at 50% 50%, #2a1208 0%, #1a0a06 100%);
  border-radius: 50%; border: 3px solid #3a1a0c; box-shadow: 0 0 20px rgba(0,0,0,0.6);
  animation: js-clock 15s linear infinite;
}
.scn-jessel-spoke .pendulum {
  position: absolute; top: 25%; right: 14%; width: 1%; height: 20%;
  background: linear-gradient(180deg, #c07030 0%, #7a3a20 100%);
  border-radius: 0% 0% 50% 50%; transform-origin: top center;
  animation: js-pendulum 2s ease-in-out infinite alternate;
}
@keyframes js-bg { 0% { opacity: 0.8; } 50% { opacity: 0.9; } 100% { opacity: 0.8; } }
@keyframes js-desk { 0% { transform: scaleY(1); } 50% { transform: scaleY(1.02); } 100% { transform: scaleY(1); } }
@keyframes js-candle { 0% { transform: scaleY(1) translateY(0); box-shadow: 0 0 20px #c07030; } 50% { transform: scaleY(1.1) translateY(-2px); box-shadow: 0 0 40px #d08040; } 100% { transform: scaleY(1) translateY(0); box-shadow: 0 0 20px #c07030; } }
@keyframes js-book { 0% { transform: rotate(-5deg) translateY(0); } 50% { transform: rotate(-3deg) translateY(-1px); } 100% { transform: rotate(-5deg) translateY(0); } }
@keyframes js-figure-governess { 0% { transform: translateX(0) rotate(-1deg); } 33% { transform: translateX(0.5%) rotate(1deg); } 66% { transform: translateX(-0.5%) rotate(-0.5deg); } 100% { transform: translateX(0) rotate(-1deg); } }
@keyframes js-figure-ghost { 0% { transform: translateY(0) rotate(0deg); opacity: 0.4; } 25% { transform: translateY(-2%) rotate(2deg); opacity: 0.6; } 50% { transform: translateY(-5%) rotate(-1deg); opacity: 0.3; } 75% { transform: translateY(-3%) rotate(1deg); opacity: 0.5; } 100% { transform: translateY(0) rotate(0deg); opacity: 0.4; } }
@keyframes js-clock { 0% { transform: rotate(0deg); } 100% { transform: rotate(360deg); } }
@keyframes js-pendulum { 0% { transform: rotate(-15deg); } 50% { transform: rotate(15deg); } 100% { transform: rotate(-15deg); } }

/* she-wants-flora */
.scn-she-wants-flora {
  background: linear-gradient(180deg, #1a0a06 0%, #2a1208 40%, #3a1a0c 100%), radial-gradient(ellipse at 50% 80%, #4a2010 0%, transparent 70%);
}
.scn-she-wants-flora .rug {
  position: absolute; bottom: 0; left: 10%; width: 80%; height: 20%;
  background: linear-gradient(135deg, #2a1208 0%, #3a1a0c 30%, #2a1208 60%, #1f0a05 100%);
  border-radius: 20% 20% 0 0; animation: swf-rug 10s ease-in-out infinite alternate;
}
.scn-she-wants-flora .fireplace {
  position: absolute; bottom: 5%; left: 50%; width: 30%; height: 45%; transform: translateX(-50%);
  background: linear-gradient(180deg, #2f100a 0%, #1a0502 100%);
  border-radius: 20% 20% 40% 40% / 30% 30% 70% 70%;
  box-shadow: 0 0 30px rgba(200,100,40,0.2); animation: swf-fireplace 6s ease-in-out infinite;
}
.scn-she-wants-flora .flames {
  position: absolute; bottom: 30%; left: 50%; width: 15%; height: 20%; transform: translateX(-50%);
  background: radial-gradient(ellipse at 50% 80%, #ffa050 0%, #d06020 40%, #602010 70%, transparent 100%);
  filter: blur(6px); box-shadow: 0 0 60px #d06020;
  animation: swf-flames 2s ease-in-out infinite alternate;
}
.scn-she-wants-flora .figure-a {
  position: absolute; bottom: 18%; left: 25%; width: 14%; height: 45%;
  background: linear-gradient(180deg, #1a0a06 0%, #0a0502 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center; animation: swf-figure-a 4s ease-in-out infinite;
}
.scn-she-wants-flora .figure-b {
  position: absolute; bottom: 18%; right: 25%; width: 14%; height: 45%;
  background: linear-gradient(180deg, #1a0a06 0%, #0a0502 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center; animation: swf-figure-b 4s ease-in-out infinite reverse;
}
.scn-she-wants-flora .door {
  position: absolute; top: 5%; right: 0%; width: 20%; height: 80%;
  background: linear-gradient(180deg, #2f100a 0%, #1a0502 100%);
  border-left: 4px solid #3a1a0c; border-radius: 10% 0 0 10%;
  box-shadow: -10px 0 20px rgba(0,0,0,0.5); animation: swf-door 8s ease-in-out infinite;
}
.scn-she-wants-flora .shadow-door {
  position: absolute; top: 10%; right: 15%; width: 10%; height: 70%;
  background: linear-gradient(180deg, #0a0303 0%, #0f0505 100%);
  opacity: 0.5; filter: blur(4px); animation: swf-shadow-door 10s ease-in-out infinite;
}
@keyframes swf-rug { 0% { opacity: 0.8; } 50% { opacity: 0.9; } 100% { opacity: 0.8; } }
@keyframes swf-fireplace { 0% { transform: translateX(-50%) scaleY(1); } 25% { transform: translateX(-50%) scaleY(1.01); } 50% { transform: translateX(-50%) scaleY(0.99); } 75% { transform: translateX(-50%) scaleY(1.02); } 100% { transform: translateX(-50%) scaleY(1); } }
@keyframes swf-flames { 0% { opacity: 0.6; transform: translateX(-50%) scaleY(0.95); } 100% { opacity: 1; transform: translateX(-50%) scaleY(1.05); } }
@keyframes swf-figure-a { 0% { transform: translateX(0) rotate(-1deg); } 25% { transform: translateX(0.5%) rotate(1deg); } 50% { transform: translateX(-0.3%) rotate(-0.5deg); } 75% { transform: translateX(0.2%) rotate(0.5deg); } 100% { transform: translateX(0) rotate(-1deg); } }
@keyframes swf-figure-b { 0% { transform: translateX(0) rotate(1deg); } 25% { transform: translateX(-0.5%) rotate(-1deg); } 50% { transform: translateX(0.3%) rotate(0.5deg); } 75% { transform: translateX(-0.2%) rotate(-0.5deg); } 100% { transform: translateX(0) rotate(1deg); } }
@keyframes swf-door { 0% { transform: rotateY(0deg); } 30% { transform: rotateY(-5deg); } 60% { transform: rotateY(3deg); } 100% { transform: rotateY(0deg); } }
@keyframes swf-shadow-door { 0% { opacity: 0.3; transform: translateX(0); } 50% { opacity: 0.6; transform: translateX(-5px); } 100% { opacity: 0.3; transform: translateX(0); } }

/* All scene blocks appended to style.css */

/* heartbreaking-idea – sunlit garden with two figures, hand on shoulder */
.scn-heartbreaking-idea {
  background:
    linear-gradient(180deg, #afc4d8 0%, #d8d8b0 40%, #e8d8a0 70%, #c8b880 100%),
    radial-gradient(ellipse at 40% 20%, #f2e8c0 0%, transparent 60%);
}
.scn-heartbreaking-idea .sky {
  position: absolute;
  inset: 0 0 55% 0;
  background: linear-gradient(180deg, #8ab0c8 0%, #c0d0e0 40%, transparent 100%);
  animation: hbi-sky 18s ease-in-out infinite alternate;
}
.scn-heartbreaking-idea .ground {
  position: absolute;
  bottom: 0;
  left: 0;
  right: 0;
  height: 55%;
  background: linear-gradient(180deg, #a0b070 0%, #6a8040 60%, #4a6030 100%);
}
.scn-heartbreaking-idea .path {
  position: absolute;
  bottom: 25%;
  left: 20%;
  right: 20%;
  height: 8%;
  background: linear-gradient(90deg, transparent, #b8a880 20%, #a89870 80%, transparent);
  border-radius: 20% / 100%;
  animation: hbi-path 12s ease-in-out infinite alternate;
}
.scn-heartbreaking-idea .figure-adult {
  position: absolute;
  bottom: 28%;
  left: 45%;
  width: 30px;
  height: 65px;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 60%, #2a1a0a 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: hbi-adult 8s ease-in-out infinite;
}
.scn-heartbreaking-idea .figure-child {
  position: absolute;
  bottom: 28%;
  left: 35%;
  width: 22px;
  height: 45px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 60%, #1a0a00 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: hbi-child 8s ease-in-out infinite;
}
.scn-heartbreaking-idea .hand {
  position: absolute;
  bottom: 45%;
  left: 38%;
  width: 12px;
  height: 20px;
  background: radial-gradient(circle, #d4b08a 0%, #b08a6a 70%);
  border-radius: 30% 30% 50% 50%;
  transform: rotate(-20deg) scale(0.8);
  animation: hbi-hand 4s ease-in-out infinite alternate;
  filter: drop-shadow(0 2px 4px rgba(0,0,0,0.3));
}
.scn-heartbreaking-idea .shadow-tree {
  position: absolute;
  bottom: 20%;
  left: 15%;
  width: 80px;
  height: 30%;
  background: linear-gradient(0deg, #3a4010 0%, #2a3010 60%, transparent 100%);
  border-radius: 40% 60% 0 0 / 100% 100% 0 0;
  filter: blur(8px);
  opacity: 0.5;
  animation: hbi-shade 20s ease-in-out infinite alternate;
}
.scn-heartbreaking-idea .light-dapple {
  position: absolute;
  bottom: 35%;
  left: 25%;
  width: 100px;
  height: 100px;
  background: radial-gradient(circle at 30% 20%, rgba(255,240,180,0.3) 0%, transparent 60%);
  border-radius: 50%;
  filter: blur(15px);
  animation: hbi-dapple 14s ease-in-out infinite alternate;
}

@keyframes hbi-sky {
  0% { opacity: 0.7; background-position: 0% 0%; }
  50% { opacity: 0.9; background-position: 50% 10%; }
  100% { opacity: 0.8; background-position: 100% 5%; }
}
@keyframes hbi-path {
  0% { transform: translateX(-5px) scaleY(1); }
  50% { transform: translateX(5px) scaleY(1.02); }
  100% { transform: translateX(0) scaleY(0.98); }
}
@keyframes hbi-adult {
  0% { transform: scaleY(1) rotate(-1deg); }
  25% { transform: scaleY(1.01) rotate(0.5deg); }
  50% { transform: scaleY(0.99) rotate(1deg); }
  75% { transform: scaleY(1.01) rotate(-0.5deg); }
  100% { transform: scaleY(1) rotate(0); }
}
@keyframes hbi-child {
  0% { transform: translateX(0) scaleY(1); }
  25% { transform: translateX(3px) scaleY(1.02); }
  50% { transform: translateX(6px) scaleY(0.98); }
  75% { transform: translateX(9px) scaleY(1.01); }
  100% { transform: translateX(12px) scaleY(1); }
}
@keyframes hbi-hand {
  0% { transform: rotate(-25deg) scale(0.75); }
  50% { transform: rotate(-15deg) scale(0.85); }
  100% { transform: rotate(-20deg) scale(0.8); }
}
@keyframes hbi-shade {
  0% { transform: translateX(0) scaleX(1); opacity: 0.4; }
  50% { transform: translateX(10px) scaleX(1.05); opacity: 0.6; }
  100% { transform: translateX(-5px) scaleX(0.95); opacity: 0.5; }
}
@keyframes hbi-dapple {
  0% { transform: translate(0,0) scale(1); opacity: 0.3; }
  50% { transform: translate(15px,-10px) scale(1.2); opacity: 0.6; }
  100% { transform: translate(-10px,5px) scale(0.9); opacity: 0.4; }
}

/* that-one-night – house exit at night, moonlit with warm glow from door */
.scn-that-one-night {
  background:
    linear-gradient(180deg, #0f1520 0%, #1a2235 30%, #2a3a50 60%, #1a2030 100%),
    radial-gradient(ellipse at 70% 30%, #b0c0e0 0%, transparent 60%);
}
.scn-that-one-night .sky-night {
  position: absolute;
  inset: 0 0 40% 0;
  background: linear-gradient(180deg, #1a2540 0%, #283050 40%, transparent 100%);
  animation: ton-sky 25s ease-in-out infinite alternate;
}
.scn-that-one-night .house {
  position: absolute;
  bottom: 20%;
  left: 50%;
  transform: translateX(-50%);
  width: 140px;
  height: 110px;
  background: linear-gradient(180deg, #3a3020 0%, #2a2010 60%, #1a1000 100%);
  border-radius: 5% 5% 3% 3%;
  box-shadow: 0 8px 20px rgba(0,0,0,0.7), inset 0 0 40px rgba(0,0,0,0.5);
  animation: ton-house 15s ease-in-out infinite;
}
.scn-that-one-night .door {
  position: absolute;
  bottom: 20%;
  left: 50%;
  transform: translateX(-50%);
  width: 30px;
  height: 50px;
  background: linear-gradient(180deg, #4a3a20 0%, #2a1a00 100%);
  border-radius: 20% 20% 0 0;
  box-shadow: inset 0 4px 8px rgba(0,0,0,0.6);
  animation: ton-door 10s ease-in-out infinite;
}
.scn-that-one-night .figure-leaving {
  position: absolute;
  bottom: 20%;
  left: 58%;
  transform: translateX(-50%);
  width: 24px;
  height: 50px;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 60%, #05050a 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  animation: ton-figure 6s ease-in-out infinite;
}
.scn-that-one-night .light-spill {
  position: absolute;
  bottom: 20%;
  left: 50%;
  transform: translateX(-50%);
  width: 80px;
  height: 100px;
  background: linear-gradient(0deg, rgba(200,160,80,0.7) 0%, transparent 100%);
  border-radius: 50%;
  filter: blur(20px);
  animation: ton-light 4s ease-in-out infinite alternate;
}
.scn-that-one-night .moon {
  position: absolute;
  top: 8%;
  right: 18%;
  width: 30px;
  height: 30px;
  background: radial-gradient(circle, #e8e0c0 0%, #c0b080 80%);
  border-radius: 50%;
  box-shadow: 0 0 40px 10px rgba(200,180,140,0.5);
  animation: ton-moon 30s linear infinite;
}
.scn-that-one-night .cloud-mist {
  position: absolute;
  top: 15%;
  left: 10%;
  width: 120px;
  height: 20px;
  background: linear-gradient(90deg, transparent, rgba(200,210,230,0.3) 30%, rgba(180,190,210,0.2) 70%, transparent);
  border-radius: 50%;
  filter: blur(12px);
  animation: ton-cloud 50s linear infinite;
}
.scn-that-one-night .window-glow {
  position: absolute;
  bottom: 55%;
  left: 38%;
  width: 16px;
  height: 20px;
  background: radial-gradient(circle, #ffd080 0%, #b08040 80%);
  border-radius: 20%;
  box-shadow: 0 0 20px 5px rgba(200,150,80,0.6), 0 0 40px 10px rgba(200,150,80,0.3);
  animation: ton-window 5s ease-in-out infinite alternate;
}

@keyframes ton-sky {
  0% { opacity: 0.8; }
  50% { opacity: 0.95; }
  100% { opacity: 0.85; }
}
@keyframes ton-house {
  0% { transform: translateX(-50%) scale(1); }
  50% { transform: translateX(-50%) scale(1.01) translateY(-1px); }
  100% { transform: translateX(-50%) scale(0.99) translateY(1px); }
}
@keyframes ton-door {
  0% { transform: translateX(-50%) rotateY(0deg); }
  25% { transform: translateX(-50%) rotateY(5deg); }
  50% { transform: translateX(-50%) rotateY(0deg); }
  75% { transform: translateX(-50%) rotateY(-5deg); }
  100% { transform: translateX(-50%) rotateY(0deg); }
}
@keyframes ton-figure {
  0% { transform: translateX(-50%) translateY(0); }
  25% { transform: translateX(-45%) translateY(-2px); }
  50% { transform: translateX(-40%) translateY(0); }
  75% { transform: translateX(-35%) translateY(-1px); }
  100% { transform: translateX(-30%) translateY(0); }
}
@keyframes ton-light {
  0% { opacity: 0.6; transform: scale(0.9); }
  50% { opacity: 0.9; transform: scale(1.1); }
  100% { opacity: 0.7; transform: scale(1); }
}
@keyframes ton-moon {
  0% { transform: translate(0,0); }
  50% { transform: translate(-10px,5px); }
  100% { transform: translate(0,0); }
}
@keyframes ton-cloud {
  0% { transform: translateX(0); }
  100% { transform: translateX(150vw); }
}
@keyframes ton-window {
  0% { box-shadow: 0 0 15px 3px rgba(200,150,80,0.5), 0 0 30px 6px rgba(200,150,80,0.2); opacity: 0.8; }
  50% { box-shadow: 0 0 25px 8px rgba(255,200,100,0.7), 0 0 50px 15px rgba(255,200,100,0.4); opacity: 1; }
  100% { box-shadow: 0 0 18px 5px rgba(200,150,80,0.5), 0 0 35px 8px rgba(200,150,80,0.3); opacity: 0.9; }
}

/* going-back-school – path to school, two figures arm in arm */
.scn-going-back-school {
  background:
    linear-gradient(180deg, #b0c8d8 0%, #d0d8c0 40%, #b8b898 70%, #a0a080 100%),
    radial-gradient(ellipse at 40% 20%, #f0e8d0 0%, transparent 60%);
}
.scn-going-back-school .sky-morning {
  position: absolute;
  inset: 0 0 50% 0;
  background: linear-gradient(180deg, #8ab8d0 0%, #c8d8e0 40%, transparent 100%);
  animation: gbs-sky 20s ease-in-out infinite alternate;
}
.scn-going-back-school .ground-path {
  position: absolute;
  bottom: 0;
  left: 0;
  right: 0;
  height: 50%;
  background: linear-gradient(180deg, #a0b070 0%, #6a8040 60%, #4a6030 100%);
}
.scn-going-back-school .gate {
  position: absolute;
  bottom: 25%;
  left: 60%;
  width: 60px;
  height: 70px;
  background: linear-gradient(90deg, #4a3a20 0%, #5a4a30 20%, #4a3a20 40%, #5a4a30 60%, #4a3a20 80%, #5a4a30 100%);
  border-radius: 5px;
  box-shadow: 0 4px 8px rgba(0,0,0,0.4);
  animation: gbs-gate 15s ease-in-out infinite;
}
.scn-going-back-school .figure-left {
  position: absolute;
  bottom: 28%;
  left: 32%;
  width: 28px;
  height: 60px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 60%, #1a0a00 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: gbs-left 8s ease-in-out infinite;
}
.scn-going-back-school .figure-right {
  position: absolute;
  bottom: 28%;
  left: 40%;
  width: 28px;
  height: 60px;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 60%, #2a1a0a 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: gbs-right 8s ease-in-out infinite;
}
.scn-going-back-school .arms-linked {
  position: absolute;
  bottom: 48%;
  left: 36%;
  width: 16px;
  height: 12px;
  background: linear-gradient(135deg, #3a2a1a 0%, #5a4a3a 50%, #3a2a1a 100%);
  border-radius: 40%;
  transform: rotate(10deg);
  animation: gbs-arms 4s ease-in-out infinite alternate;
  filter: drop-shadow(0 1px 2px rgba(0,0,0,0.3));
}
.scn-going-back-school .sack {
  position: absolute;
  bottom: 32%;
  left: 48%;
  width: 18px;
  height: 24px;
  background: linear-gradient(180deg, #6a5a40 0%, #4a3a20 100%);
  border-radius: 20% 20% 30% 30%;
  transform: rotate(-5deg);
  animation: gbs-sack 6s ease-in-out infinite;
}
.scn-going-back-school .flower-hedge {
  position: absolute;
  bottom: 20%;
  left: 10%;
  width: 80px;
  height: 30px;
  background: linear-gradient(90deg, #4a6040, #3a5030, #4a6040);
  border-radius: 30% 50% 20% 40%;
  filter: blur(2px);
  opacity: 0.7;
  animation: gbs-hedge 25s ease-in-out infinite alternate;
}

@keyframes gbs-sky {
  0% { opacity: 0.75; background-position: 0% 0%; }
  50% { opacity: 0.95; background-position: 50% 5%; }
  100% { opacity: 0.85; background-position: 100% 10%; }
}
@keyframes gbs-gate {
  0% { transform: translateY(0) scaleX(1); }
  50% { transform: translateY(-3px) scaleX(1.02); }
  100% { transform: translateY(0) scaleX(0.98); }
}
@keyframes gbs-left {
  0% { transform: translateX(0) rotate(-1deg); }
  25% { transform: translateX(4px) rotate(0.5deg); }
  50% { transform: translateX(8px) rotate(-0.5deg); }
  75% { transform: translateX(12px) rotate(1deg); }
  100% { transform: translateX(16px) rotate(0); }
}
@keyframes gbs-right {
  0% { transform: translateX(0) rotate(1deg); }
  25% { transform: translateX(4px) rotate(-0.5deg); }
  50% { transform: translateX(8px) rotate(0.5deg); }
  75% { transform: translateX(12px) rotate(-1deg); }
  100% { transform: translateX(16px) rotate(0); }
}
@keyframes gbs-arms {
  0% { transform: rotate(5deg) scale(1); }
  50% { transform: rotate(15deg) scale(1.05); }
  100% { transform: rotate(10deg) scale(0.95); }
}
@keyframes gbs-sack {
  0% { transform: rotate(-8deg) translate(0); }
  50% { transform: rotate(-2deg) translateY(-2px); }
  100% { transform: rotate(-5deg) translate(0); }
}
@keyframes gbs-hedge {
  0% { transform: translateX(0) scaleY(1); }
  50% { transform: translateX(10px) scaleY(1.1); }
  100% { transform: translateX(-5px) scaleY(0.9); }
}

/* want-more-life – garden bench with two figures, open book, butterfly */
.scn-want-more-life {
  background:
    linear-gradient(180deg, #b8d0c0 0%, #d0e0c8 30%, #c8d8a0 60%, #a8b880 100%),
    radial-gradient(ellipse at 60% 30%, #f0e8d0 0%, transparent 60%);
}
.scn-want-more-life .sky-garden {
  position: absolute;
  inset: 0 0 45% 0;
  background: linear-gradient(180deg, #7ab0c0 0%, #b0d0d0 40%, transparent 100%);
  animation: wml-sky 22s ease-in-out infinite alternate;
}
.scn-want-more-life .grass {
  position: absolute;
  bottom: 0;
  left: 0;
  right: 0;
  height: 55%;
  background: linear-gradient(180deg, #7a9a50 0%, #5a7a30 60%, #3a5a20 100%);
}
.scn-want-more-life .bench {
  position: absolute;
  bottom: 30%;
  left: 50%;
  transform: translateX(-50%);
  width: 100px;
  height: 40px;
  background: linear-gradient(180deg, #5a4a30 0%, #3a2a10 100%);
  border-radius: 8% 8% 4% 4%;
  box-shadow: 0 6px 12px rgba(0,0,0,0.4);
  animation: wml-bench 14s ease-in-out infinite;
}
.scn-want-more-life .figure-miles {
  position: absolute;
  bottom: 38%;
  left: 44%;
  width: 24px;
  height: 55px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0a00 60%, #0a0500 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: wml-miles 7s ease-in-out infinite;
}
.scn-want-more-life .figure-narrator {
  position: absolute;
  bottom: 38%;
  left: 56%;
  width: 26px;
  height: 58px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 60%, #1a0a00 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: wml-narrator 7s ease-in-out infinite;
}
.scn-want-more-life .book-open {
  position: absolute;
  bottom: 35%;
  left: 50%;
  transform: translateX(-50%);
  width: 40px;
  height: 30px;
  background: linear-gradient(135deg, #e0d0b0 0%, #c0a880 50%, #d8c8a8 100%);
  border-radius: 10% 10% 30% 30%;
  box-shadow: 0 2px 6px rgba(0,0,0,0.3);
  animation: wml-book 5s ease-in-out infinite alternate;
}
.scn-want-more-life .butterfly {
  position: absolute;
  top: 35%;
  left: 30%;
  width: 14px;
  height: 10px;
  background: linear-gradient(135deg, #b08050 0%, #d0a060 50%, #b08050 100%);
  border-radius: 50% 50% 20% 20%;
  transform: rotate(30deg);
  animation: wml-butterfly 12s ease-in-out infinite;
  filter: drop-shadow(0 2px 3px rgba(0,0,0,0.2));
}
.scn-want-more-life .sunburst {
  position: absolute;
  top: 12%;
  left: 25%;
  width: 80px;
  height: 80px;
  background: radial-gradient(circle, rgba(255,230,180,0.4) 0%, transparent 60%);
  border-radius: 50%;
  filter: blur(20px);
  animation: wml-sun 10s ease-in-out infinite alternate;
}

@keyframes wml-sky {
  0% { opacity: 0.8; background-position: 0% 0%; }
  50% { opacity: 0.95; background-position: 50% 10%; }
  100% { opacity: 0.85; background-position: 100% 5%; }
}
@keyframes wml-bench {
  0% { transform: translateX(-50%) scale(1); }
  50% { transform: translateX(-50%) scale(1.01) translateY(-2px); }
  100% { transform: translateX(-50%) scale(0.99) translateY(1px); }
}
@keyframes wml-miles {
  0% { transform: rotate(-2deg) translateY(0); }
  25% { transform: rotate(0) translateY(-3px); }
  50% { transform: rotate(2deg) translateY(0); }
  75% { transform: rotate(0) translateY(-2px); }
  100% { transform: rotate(-1deg) translateY(0); }
}
@keyframes wml-narrator {
  0% { transform: rotate(2deg) translateY(0); }
  25% { transform: rotate(0) translateY(-2px); }
  50% { transform: rotate(-2deg) translateY(0); }
  75% { transform: rotate(0) translateY(-3px); }
  100% { transform: rotate(1deg) translateY(0); }
}
@keyframes wml-book {
  0% { transform: translateX(-50%) rotate(-2deg) scale(1); }
  50% { transform: translateX(-50%) rotate(2deg) scale(1.02); }
  100% { transform: translateX(-50%) rotate(0) scale(0.98); }
}
@keyframes wml-butterfly {
  0% { transform: translate(0,0) rotate(20deg) scale(1); }
  25% { transform: translate(20px,-10px) rotate(40deg) scale(1.1); }
  50% { transform: translate(40px,-5px) rotate(10deg) scale(0.9); }
  75% { transform: translate(60px,-15px) rotate(30deg) scale(1.05); }
  100% { transform: translate(80px,-8px) rotate(25deg) scale(1); }
}
@keyframes wml-sun {
  0% { opacity: 0.3; transform: scale(1); }
  50% { opacity: 0.6; transform: scale(1.3); }
  100% { opacity: 0.4; transform: scale(0.9); }
}

/* Scene: preparation-for-miles (calm, bright interior) */
.scn-preparation-for-miles {
  background: linear-gradient(180deg, #f5e6c8 0%, #dcc8a0 50%, #c4a880 100%),
              radial-gradient(ellipse at 50% 100%, #e8d4b0 0%, transparent 60%);
}
.scn-preparation-for-miles .window-frame {
  position: absolute; left: 60%; top: 15%; width: 28%; height: 45%;
  background: #8b6f4e; border-radius: 4px; box-shadow: inset 0 0 0 6px #6b4f2e;
}
.scn-preparation-for-miles .window-glass {
  position: absolute; left: 62%; top: 17%; width: 24%; height: 41%;
  background: radial-gradient(circle at 30% 30%, #fffbe6 0%, #cce0ff 70%);
  animation: pfm-glass 8s ease-in-out infinite alternate;
}
.scn-preparation-for-miles .figure {
  position: absolute; bottom: 8%; left: 48%; width: 20px; height: 60px;
  background: #4a3a2a; border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center; animation: pfm-figure 10s ease-in-out infinite alternate;
}
.scn-preparation-for-miles .curtain {
  position: absolute; left: 58%; top: 12%; width: 6%; height: 50%;
  background: linear-gradient(180deg, #b03020 0%, #802010 100%);
  border-radius: 0 0 40% 40%; animation: pfm-curtain 12s ease-in-out infinite alternate;
}
.scn-preparation-for-miles .lamp {
  position: absolute; bottom: 10%; left: 30%; width: 12px; height: 18px;
  background: #c0a060; border-radius: 50% 50% 0 0; box-shadow: 0 0 20px 8px #ffd080;
  animation: pfm-lamp 4s ease-in-out infinite alternate;
}
.scn-preparation-for-miles .table {
  position: absolute; bottom: 6%; left: 25%; width: 22%; height: 4%;
  background: #6b4f2e; border-radius: 2px; box-shadow: 0 4px 8px rgba(0,0,0,0.3);
}
.scn-preparation-for-miles .door {
  position: absolute; right: 5%; bottom: 0; width: 15%; height: 60%;
  background: #7a5c3a; border-radius: 4px 4px 0 0; box-shadow: inset -4px 0 0 #5a3c1a, 0 4px 8px rgba(0,0,0,0.2);
}
@keyframes pfm-glass {
  0% { opacity: 0.85; transform: scaleX(1); }
  50% { opacity: 1; transform: scaleX(1.02); }
  100% { opacity: 0.9; transform: scaleX(1); }
}
@keyframes pfm-figure {
  0% { transform: rotate(-1deg) translateY(0); }
  50% { transform: rotate(1deg) translateY(-2px); }
  100% { transform: rotate(-1deg) translateY(0); }
}
@keyframes pfm-curtain {
  0% { transform: translateX(0) scaleY(1); }
  50% { transform: translateX(3px) scaleY(1.02); }
  100% { transform: translateX(0) scaleY(1); }
}
@keyframes pfm-lamp {
  0% { box-shadow: 0 0 15px 6px #ffd080; opacity: 0.9; }
  50% { box-shadow: 0 0 25px 12px #ffe0a0; opacity: 1; }
  100% { box-shadow: 0 0 15px 6px #ffd080; opacity: 0.9; }
}

/* Scene: second-evening-incident (tense, dusk) */
.scn-second-evening-incident {
  background: linear-gradient(180deg, #2b1a3a 0%, #5a3a5a 30%, #8a5a5a 60%, #c08060 100%),
              radial-gradient(ellipse at 30% 70%, #b07050 0%, transparent 60%);
}
.scn-second-evening-incident .sky-dusk {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(180deg, #2b1a3a 0%, #7a4a5a 50%, #c08060 100%);
  animation: sei-sky 10s ease-in-out infinite alternate;
}
.scn-second-evening-incident .ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 40%;
  background: linear-gradient(180deg, #3a2a2a 0%, #1a1a1a 100%);
}
.scn-second-evening-incident .figure-gov {
  position: absolute; bottom: 30%; left: 30%; width: 18px; height: 50px;
  background: #1a1a1a; border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center; animation: sei-gov 4s ease-in-out infinite alternate;
}
.scn-second-evening-incident .figure-flora {
  position: absolute; bottom: 30%; left: 40%; width: 12px; height: 30px;
  background: #1a1a1a; border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center; animation: sei-flora 4.5s ease-in-out infinite alternate;
}
.scn-second-evening-incident .tree {
  position: absolute; right: 15%; bottom: 25%; width: 20px; height: 70px;
  background: #1a1a1a; border-radius: 50% 50% 10% 10% / 80% 80% 20% 20%;
  animation: sei-tree 8s ease-in-out infinite alternate;
}
.scn-second-evening-incident .gate {
  position: absolute; left: 20%; bottom: 25%; width: 8px; height: 40px;
  background: #2a2a2a; border-radius: 2px;
}
.scn-second-evening-incident .shadow-figure {
  position: absolute; right: 30%; bottom: 30%; width: 16px; height: 48px;
  background: #0a0a0a; border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  opacity: 0.6; animation: sei-shadow 3s ease-in-out infinite alternate;
}
@keyframes sei-sky {
  0% { opacity: 0.7; transform: scaleY(1); }
  50% { opacity: 1; transform: scaleY(1.05); }
  100% { opacity: 0.8; transform: scaleY(1); }
}
@keyframes sei-gov {
  0% { transform: rotate(2deg) translateX(0); }
  50% { transform: rotate(-2deg) translateX(3px); }
  100% { transform: rotate(2deg) translateX(0); }
}
@keyframes sei-flora {
  0% { transform: rotate(-3deg) translateY(0); }
  50% { transform: rotate(1deg) translateY(-2px); }
  100% { transform: rotate(-3deg) translateY(0); }
}
@keyframes sei-tree {
  0% { transform: rotate(0deg) scaleY(1); }
  50% { transform: rotate(3deg) scaleY(1.02); }
  100% { transform: rotate(0deg) scaleY(1); }
}
@keyframes sei-shadow {
  0% { opacity: 0.4; transform: translateX(0) scale(1); }
  50% { opacity: 0.7; transform: translateX(5px) scale(1.05); }
  100% { opacity: 0.4; transform: translateX(0) scale(1); }
}

/* Scene: employers-letter-enclosure (tense, dusk) */
.scn-employers-letter-enclosure {
  background: linear-gradient(180deg, #3a2a2a 0%, #5a3a3a 40%, #8a5a5a 70%, #c08060 100%),
              radial-gradient(ellipse at 50% 80%, #a06040 0%, transparent 50%);
}
.scn-employers-letter-enclosure .envelope {
  position: absolute; left: 30%; top: 20%; width: 40%; height: 50%;
  background: #b8a88a; border-radius: 4px; box-shadow: 0 8px 16px rgba(0,0,0,0.5);
  animation: ele-env 6s ease-in-out infinite alternate;
}
.scn-employers-letter-enclosure .hand-left {
  position: absolute; left: 25%; top: 35%; width: 10%; height: 30%;
  background: #1a1a1a; border-radius: 50% 50% 0 0 / 60% 60% 0 0;
  transform-origin: top center; animation: ele-hand 3s ease-in-out infinite alternate;
}
.scn-employers-letter-enclosure .hand-right {
  position: absolute; right: 25%; top: 35%; width: 10%; height: 30%;
  background: #1a1a1a; border-radius: 50% 50% 0 0 / 60% 60% 0 0;
  transform-origin: top center; animation: ele-hand 3s ease-in-out infinite alternate-reverse;
}
.scn-employers-letter-enclosure .desk-edge {
  position: absolute; bottom: 0; left: 0; right: 0; height: 25%;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a1a 100%);
  border-radius: 0 0 8px 8px;
}
.scn-employers-letter-enclosure .candle {
  position: absolute; left: 50%; top: 12%; width: 8px; height: 20px;
  background: #e0d0a0; border-radius: 2px 2px 0 0; box-shadow: 0 0 12px 4px #ffc080;
  animation: ele-candle 2s ease-in-out infinite alternate;
}
.scn-employers-letter-enclosure .window-dusk {
  position: absolute; right: 5%; top: 10%; width: 20%; height: 40%;
  background: linear-gradient(180deg, #4a2a2a 0%, #8a5a5a 100%);
  border-radius: 4px; border: 6px solid #3a2a1a;
}
@keyframes ele-env {
  0% { transform: rotate(-1deg) translateY(0); }
  50% { transform: rotate(2deg) translateY(-3px); }
  100% { transform: rotate(-1deg) translateY(0); }
}
@keyframes ele-hand {
  0% { transform: rotate(3deg) translateY(0); }
  50% { transform: rotate(-2deg) translateY(2px); }
  100% { transform: rotate(3deg) translateY(0); }
}
@keyframes ele-candle {
  0% { box-shadow: 0 0 10px 3px #ffc080; opacity: 0.9; transform: scaleY(1); }
  50% { box-shadow: 0 0 16px 8px #ffd0a0; opacity: 1; transform: scaleY(1.03); }
  100% { box-shadow: 0 0 10px 3px #ffc080; opacity: 0.9; transform: scaleY(1); }
}

/* Scene: letter-from-headmaster (dark, dim interior) */
.scn-letter-from-headmaster {
  background: linear-gradient(180deg, #0a0a12 0%, #1a1a2a 40%, #2a2a3a 100%),
              radial-gradient(ellipse at 50% 70%, #2a2a3a 0%, transparent 60%);
}
.scn-letter-from-headmaster .figure-a {
  position: absolute; left: 25%; bottom: 10%; width: 22px; height: 58px;
  background: #0a0a12; border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center; animation: lfh-fig 8s ease-in-out infinite alternate;
}
.scn-letter-from-headmaster .figure-b {
  position: absolute; right: 25%; bottom: 10%; width: 20px; height: 50px;
  background: #0a0a12; border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center; animation: lfh-fig 8s ease-in-out infinite alternate-reverse;
}
.scn-letter-from-headmaster .table {
  position: absolute; left: 35%; bottom: 8%; width: 30%; height: 4%;
  background: #2a1a1a; border-radius: 2px; box-shadow: 0 2px 4px rgba(0,0,0,0.5);
}
.scn-letter-from-headmaster .lamp {
  position: absolute; left: 48%; bottom: 16%; width: 8px; height: 14px;
  background: #a08060; border-radius: 50% 50% 0 0; box-shadow: 0 0 18px 6px #c08040;
  animation: lfh-lamp 8s ease-in-out infinite alternate;
}
.scn-letter-from-headmaster .window-night {
  position: absolute; right: 5%; top: 10%; width: 18%; height: 35%;
  background: linear-gradient(180deg, #0a0a1a 0%, #1a1a2a 100%);
  border-radius: 4px; border: 4px solid #1a1a1a;
}
.scn-letter-from-headmaster .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 8%;
  background: linear-gradient(180deg, #1a1a1a 0%, #0a0a0a 100%);
}
@keyframes lfh-fig {
  0% { transform: rotate(0deg) translateY(0); }
  50% { transform: rotate(1deg) translateY(-2px); }
  100% { transform: rotate(0deg) translateY(0); }
}
@keyframes lfh-lamp {
  0% { box-shadow: 0 0 12px 4px #c08040; opacity: 0.7; }
  50% { box-shadow: 0 0 22px 8px #d09050; opacity: 1; }
  100% { box-shadow: 0 0 12px 4px #c08040; opacity: 0.7; }
}

.scn-superiority-pays-price { background: linear-gradient(180deg, #d4c9a8 0%, #c4b08a 40%, #8a7a5a 100%), radial-gradient(ellipse at 50% 0%, #e8dec0 0%, transparent 70%); }
.scn-superiority-pays-price .sup-wall { position:absolute; inset:0 0 30% 0; background: linear-gradient(180deg, #d9ceb2 0%, #b8a88a 100%); box-shadow: inset 0 8px 30px rgba(0,0,0,.15); }
.scn-superiority-pays-price .sup-floor { position:absolute; bottom:0; left:0; right:0; height:30%; background: linear-gradient(180deg, #6b4c30 0%, #4a3220 100%); border-radius: 20% 20% 0 0 / 40% 40% 0 0; box-shadow: inset 0 12px 20px rgba(0,0,0,.4); }
.scn-superiority-pays-price .sup-window { position:absolute; top:12%; left:50%; width:34%; height:44%; transform:translateX(-50%); background: linear-gradient(180deg, #fdf8f0 0%, #e8ddc8 100%); border: 6px solid #8a7a5a; border-radius:4% 4% 2% 2%; box-shadow: inset 0 0 40px #fff8e0, 0 12px 24px rgba(0,0,0,.3); animation: sup-window-glow 6s ease-in-out infinite alternate; }
.scn-superiority-pays-price .sup-child-a { position:absolute; bottom:28%; left:32%; width:22px; height:38px; background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: sup-child-breathe 4s ease-in-out infinite; }
.scn-superiority-pays-price .sup-child-b { position:absolute; bottom:28%; left:44%; width:20px; height:36px; background: linear-gradient(180deg, #6a5a4a 0%, #4a3a2a 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: sup-child-breathe 5s ease-in-out infinite 0.5s; }
.scn-superiority-pays-price .sup-shadow { position:absolute; bottom:26%; right:16%; width:60px; height:80px; background: linear-gradient(180deg, #2a241a 0%, #0a0a06 100%); border-radius:40% 40% 30% 30% / 60% 60% 40% 40%; transform-origin: bottom center; opacity:.7; box-shadow: 0 0 30px rgba(0,0,0,.5); animation: sup-shadow-linger 10s ease-in-out infinite; }
.scn-superiority-pays-price .sup-desk { position:absolute; bottom:24%; left:25%; width:50%; height:6%; background: linear-gradient(180deg, #7a5a3a 0%, #5a3a1a 100%); border-radius:4% 4% 0 0; box-shadow: 0 4px 8px rgba(0,0,0,.3); transform: perspective(400px) rotateX(6deg); }
.scn-superiority-pays-price .sup-book { position:absolute; bottom:24%; left:42%; width:8%; height:5%; background: linear-gradient(135deg, #c8b08a 0%, #a08060 100%); border-radius:2%; box-shadow: 0 2px 4px rgba(0,0,0,.2); transform: rotate(-4deg); animation: sup-book-turn 8s ease-in-out infinite; }
@keyframes sup-window-glow { 0% { box-shadow: inset 0 0 30px #fff8e0, 0 8px 16px rgba(0,0,0,.3); } 50% { box-shadow: inset 0 0 60px #fffce8, 0 12px 24px rgba(0,0,0,.2); } 100% { box-shadow: inset 0 0 40px #fff8e0, 0 8px 16px rgba(0,0,0,.3); } }
@keyframes sup-child-breathe { 0% { transform: translateY(0); } 50% { transform: translateY(-2px) rotate(1deg); } 100% { transform: translateY(0); } }
@keyframes sup-shadow-linger { 0% { opacity:.6; transform: scale(1) translateX(0); } 50% { opacity:.8; transform: scale(1.02) translateX(-4px); } 100% { opacity:.6; transform: scale(1) translateX(0); } }
@keyframes sup-book-turn { 0% { transform: rotate(-4deg) translateY(0); } 50% { transform: rotate(2deg) translateY(-1px); } 100% { transform: rotate(-4deg) translateY(0); } }

.scn-miles-had-no-history { background: linear-gradient(135deg, #fdf6e3 0%, #e8ddc8 40%, #c4b8a0 100%), radial-gradient(ellipse at 50% 30%, #fff8e8 0%, transparent 60%); }
.scn-miles-had-no-history .mil-bg { position:absolute; inset:0; background: radial-gradient(ellipse at 50% 30%, #fdf6e3 0%, #d4c9b0 100%); animation: mil-bg-pulse 12s ease-in-out infinite; }
.scn-miles-had-no-history .mil-frame { position:absolute; inset:6%; background: transparent; border: 2px solid rgba(180,160,120,.3); border-radius:4%; box-shadow: inset 0 0 60px rgba(200,180,140,.2); }
.scn-miles-had-no-history .mil-boy { position:absolute; bottom:30%; left:50%; width:70px; height:90px; transform:translateX(-50%); background: linear-gradient(180deg, #b8a080 0%, #8a7050 100%); border-radius:50% 50% 40% 40% / 70% 70% 40% 40%; box-shadow: 0 20px 40px rgba(0,0,0,.15); animation: mil-boy-turn 10s ease-in-out infinite; }
.scn-miles-had-no-history .mil-boy::after { content:''; position:absolute; top:20%; right:10%; width:8px; height:12px; background: #5a4a3a; border-radius:50%; box-shadow: -2px 0 4px rgba(0,0,0,.2); }
.scn-miles-had-no-history .mil-mote-a { position:absolute; top:20%; left:20%; width:10px; height:10px; background: radial-gradient(circle, #fff8e8 0%, #e8ddc8 60%, transparent 100%); border-radius:50%; animation: mil-mote-float 9s ease-in-out infinite; }
.scn-miles-had-no-history .mil-mote-b { position:absolute; top:40%; right:25%; width:8px; height:8px; background: radial-gradient(circle, #fff8e8 0%, #e8ddc8 60%, transparent 100%); border-radius:50%; animation: mil-mote-float 11s ease-in-out infinite -2s; }
.scn-miles-had-no-history .mil-mote-c { position:absolute; top:60%; left:40%; width:14px; height:14px; background: radial-gradient(circle, #fff8e8 0%, #e8ddc8 60%, transparent 100%); border-radius:50%; animation: mil-mote-float 13s ease-in-out infinite -5s; }
.scn-miles-had-no-history .mil-light { position:absolute; top:10%; left:50%; width:40%; height:40%; transform:translateX(-50%); background: radial-gradient(ellipse, #fff8e8 0%, transparent 80%); animation: mil-bg-pulse 8s ease-in-out infinite alternate; }
@keyframes mil-bg-pulse { 0% { opacity:.8; } 50% { opacity:1; } 100% { opacity:.85; } }
@keyframes mil-boy-turn { 0% { transform:translateX(-50%) rotate(-2deg) scale(1); } 50% { transform:translateX(-48%) rotate(2deg) scale(1.02); } 100% { transform:translateX(-50%) rotate(-2deg) scale(1); } }
@keyframes mil-mote-float { 0% { transform: translateY(0) scale(1); opacity:.6; } 50% { transform: translateY(-30px) scale(1.5); opacity:1; } 100% { transform: translateY(0) scale(1); opacity:.6; } }

.scn-angel-boy-under-spell { background: linear-gradient(180deg, #4a2a5a 0%, #8a4a6a 30%, #da8a4a 70%, #fce8b0 100%), radial-gradient(ellipse at 50% 0%, #fce8b0 0%, transparent 60%); }
.scn-angel-boy-under-spell .ang-radiance { position:absolute; inset:0; background: radial-gradient(ellipse at 50% 30%, #fce8b0 0%, #da8a4a 40%, #4a2a5a 100%); animation: ang-radiance-pulse 8s ease-in-out infinite; }
.scn-angel-boy-under-spell .ang-halo { position:absolute; top:12%; left:50%; width:60px; height:20px; transform:translateX(-50%); background: radial-gradient(ellipse, #fff8e0 0%, #da8a4a 60%, transparent 100%); border-radius:50%; box-shadow: 0 0 60px #fce8b0; animation: ang-halo-glow 4s ease-in-out infinite alternate; }
.scn-angel-boy-under-spell .ang-figure { position:absolute; bottom:30%; left:50%; width:60px; height:80px; transform:translateX(-50%); background: linear-gradient(180deg, #8a7050 0%, #5a4a3a 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; box-shadow: 0 20px 40px rgba(0,0,0,.3); }
.scn-angel-boy-under-spell .ang-wing-l { position:absolute; bottom:50%; left:30%; width:50px; height:60px; background: linear-gradient(135deg, #fce8b0 0%, #da8a4a 60%, transparent 100%); border-radius:50% 50% 50% 0 / 60% 60% 40% 0; transform-origin: bottom right; animation: ang-wing-l-beat 3s ease-in-out infinite; opacity:.85; }
.scn-angel-boy-under-spell .ang-wing-r { position:absolute; bottom:50%; right:30%; width:50px; height:60px; background: linear-gradient(225deg, #fce8b0 0%, #da8a4a 60%, transparent 100%); border-radius:50% 50% 0 50% / 60% 60% 0 40%; transform-origin: bottom left; animation: ang-wing-r-beat 3s ease-in-out infinite; opacity:.85; }
.scn-angel-boy-under-spell .ang-shimmer-a { position:absolute; top:25%; left:20%; width:6px; height:6px; background: #fff8e0; border-radius:50%; box-shadow: 0 0 12px #fce8b0; animation: ang-shimmer-drift 15s linear infinite; }
.scn-angel-boy-under-spell .ang-shimmer-b { position:absolute; top:40%; right:15%; width:8px; height:8px; background: #fff8e0; border-radius:50%; box-shadow: 0 0 16px #fce8b0; animation: ang-shimmer-drift 20s linear infinite reverse; }
.scn-angel-boy-under-spell .ang-frame { position:absolute; inset:5%; background: transparent; border: 1px solid rgba(255,248,224,.2); border-radius:6%; box-shadow: inset 0 0 80px rgba(218,138,74,.2); }
@keyframes ang-radiance-pulse { 0% { opacity:.9; } 50% { opacity:1; } 100% { opacity:.85; } }
@keyframes ang-halo-glow { 0% { box-shadow: 0 0 40px #fce8b0; opacity:.8; } 50% { box-shadow: 0 0 80px #fff8e0; opacity:1; } 100% { box-shadow: 0 0 40px #fce8b0; opacity:.8; } }
@keyframes ang-wing-l-beat { 0% { transform: rotate(-5deg) scaleY(1); } 50% { transform: rotate(10deg) scaleY(1.1); } 100% { transform: rotate(-5deg) scaleY(1); } }
@keyframes ang-wing-r-beat { 0% { transform: rotate(5deg) scaleY(1); } 50% { transform: rotate(-10deg) scaleY(1.1); } 100% { transform: rotate(5deg) scaleY(1); } }
@keyframes ang-shimmer-drift { 0% { transform: translateY(0) translateX(0) scale(1); opacity:0; } 10% { opacity:1; } 90% { opacity:1; } 100% { transform: translateY(-60px) translateX(40px) scale(0.5); opacity:0; } }

.scn-dazzled-by-loveliness { background: linear-gradient(180deg, #6a7a8a 0%, #8a9aa0 30%, #c4b08a 70%, #e8d4a8 100%), radial-gradient(ellipse at 50% 100%, #e8d4a8 0%, transparent 70%); }
.scn-dazzled-by-loveliness .daz-frame { position:absolute; inset:8%; background: transparent; border: 8px solid #5a4a3a; border-radius:4%; box-shadow: inset 0 0 40px rgba(0,0,0,.2), 0 8px 24px rgba(0,0,0,.4); }
.scn-dazzled-by-loveliness .daz-glass { position:absolute; inset:10%; background: linear-gradient(180deg, rgba(180,200,210,.4) 0%, rgba(200,180,160,.2) 100%); border-radius:2%; backdrop-filter: blur(2px); animation: daz-glass-shimmer 8s ease-in-out infinite; }
.scn-dazzled-by-loveliness .daz-rain-a { position:absolute; top:-10%; left:20%; width:2px; height:40px; background: linear-gradient(180deg, transparent 0%, rgba(255,255,255,.6) 50%, transparent 100%); animation: daz-rain-fall 1.5s linear infinite; }
.scn-dazzled-by-loveliness .daz-rain-b { position:absolute; top:-20%; right:35%; width:2px; height:30px; background: linear-gradient(180deg, transparent 0%, rgba(255,255,255,.5) 50%, transparent 100%); animation: daz-rain-fall 2s linear infinite 0.5s; }
.scn-dazzled-by-loveliness .daz-landscape { position:absolute; bottom:20%; left:15%; right:15%; top:30%; background: linear-gradient(180deg, #8aa0a8 0%, #6a7a7a 60%, #5a6a5a 100%); border-radius: 40% 40% 0 0 / 60% 60% 0 0; animation: daz-landscape-shimmer 12s ease-in-out infinite; }
.scn-dazzled-by-loveliness .daz-hills { position:absolute; bottom:18%; left:0; right:0; height:25%; background: linear-gradient(180deg, #4a5a3a 0%, #2a3a1a 100%); border-radius: 60% 40% 0 0 / 80% 60% 0 0; box-shadow: inset 0 8px 20px rgba(0,0,0,.3); }
.scn-dazzled-by-loveliness .daz-figure { position:absolute; bottom:22%; left:50%; width:24px; height:44px; transform:translateX(-50%); background: linear-gradient(180deg, #2a1a0a 0%, #0a0a00 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: daz-figure-contemplate 7s ease-in-out infinite; }
.scn-dazzled-by-loveliness .daz-warm-glow { position:absolute; bottom:15%; left:10%; width:30%; height:30%; background: radial-gradient(ellipse, #e8d4a8 0%, transparent 70%); animation: daz-warm-glow-breathe 5s ease-in-out infinite alternate; }
@keyframes daz-glass-shimmer { 0% { opacity:.6; } 50% { opacity:.9; } 100% { opacity:.6; } }
@keyframes daz-rain-fall { 0% { transform: translateY(0) rotate(10deg); opacity:0; } 10% { opacity:1; } 90% { opacity:1; } 100% { transform: translateY(110vh) rotate(10deg); opacity:0; } }
@keyframes daz-landscape-shimmer { 0% { opacity:.8; } 50% { opacity:1; } 100% { opacity:.75; } }
@keyframes daz-figure-contemplate { 0% { transform:translateX(-50%) translateY(0) rotate(-2deg); } 50% { transform:translateX(-50%) translateY(-4px) rotate(2deg); } 100% { transform:translateX(-50%) translateY(0) rotate(-2deg); } }
@keyframes daz-warm-glow-breathe { 0% { opacity:.7; transform: scale(1); } 100% { opacity:1; transform: scale(1.05); } }

/* Scene: more-time-needed */
.scn-more-time-needed {
  background: linear-gradient(180deg, #1e2440 0%, #3a2e4a 35%, #6a4a3e 65%, #a07050 100%), radial-gradient(ellipse at 50% 100%, #c08860 0%, transparent 60%);
}
.scn-more-time-needed .sky {
  position: absolute; inset: 0 0 45% 0;
  background: linear-gradient(180deg, #2a3050 0%, transparent 100%);
  animation: mtn-sky 12s ease-in-out infinite alternate;
}
.scn-more-time-needed .ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 45%;
  background: linear-gradient(180deg, #2a2a2a 0%, #1a1a1a 100%);
  border-radius: 30% 70% 0 0 / 20% 40% 0 0;
  animation: mtn-ground 15s ease-in-out infinite alternate;
}
.scn-more-time-needed .figure-left {
  position: absolute; bottom: 25%; left: 30%; width: 20px; height: 50px;
  background: linear-gradient(180deg, #101018 0%, #08080c 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: mtn-fig1 4s ease-in-out infinite;
}
.scn-more-time-needed .figure-right {
  position: absolute; bottom: 26%; left: 55%; width: 18px; height: 48px;
  background: linear-gradient(180deg, #14141e 0%, #0a0a10 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: mtn-fig2 3.5s ease-in-out infinite;
}
.scn-more-time-needed .sun {
  position: absolute; bottom: 45%; left: 50%; width: 30px; height: 30px;
  background: radial-gradient(circle, #ffd088 0%, #e09850 50%, transparent 70%);
  border-radius: 50%;
  transform: translateX(-50%);
  box-shadow: 0 0 40px 10px #e09850;
  animation: mtn-sun 6s ease-in-out infinite alternate;
}
.scn-more-time-needed .shadow-hand {
  position: absolute; bottom: 38%; left: 50%; width: 4px; height: 25px;
  background: linear-gradient(180deg, #1a1a1a 0%, #0d0d0d 100%);
  border-radius: 2px 2px 4px 4px;
  transform-origin: bottom center;
  animation: mtn-hand 10s linear infinite;
}
.scn-more-time-needed .clock-face {
  position: absolute; bottom: 42%; left: 50%; width: 32px; height: 32px;
  border: 2px solid #4a3a2a;
  border-radius: 50%;
  background: transparent;
  transform: translateX(-50%) translateY(10px);
  animation: mtn-clock 8s ease-in-out infinite;
}

@keyframes mtn-sky {
  0% { opacity: 0.7; }
  50% { opacity: 1; }
  100% { opacity: 0.8; }
}
@keyframes mtn-ground {
  0% { transform: translateY(0); }
  50% { transform: translateY(-2px); }
  100% { transform: translateY(0); }
}
@keyframes mtn-fig1 {
  0% { transform: translateX(0) rotate(-1deg); }
  50% { transform: translateX(2px) rotate(1deg); }
  100% { transform: translateX(0) rotate(-1deg); }
}
@keyframes mtn-fig2 {
  0% { transform: translateX(0) rotate(1deg) scale(1); }
  50% { transform: translateX(-2px) rotate(-1deg) scale(1.03); }
  100% { transform: translateX(0) rotate(1deg) scale(1); }
}
@keyframes mtn-sun {
  0% { box-shadow: 0 0 30px 8px #e09850; opacity: 0.8; }
  50% { box-shadow: 0 0 60px 15px #ffb070; opacity: 1; }
  100% { box-shadow: 0 0 35px 10px #e09850; opacity: 0.85; }
}
@keyframes mtn-hand {
  0% { transform: rotate(-60deg); }
  50% { transform: rotate(30deg); }
  100% { transform: rotate(-60deg); }
}
@keyframes mtn-clock {
  0% { transform: translateX(-50%) translateY(10px) scale(1); }
  50% { transform: translateX(-50%) translateY(10px) scale(1.05); }
  100% { transform: translateX(-50%) translateY(10px) scale(1); }
}

/* Scene: heard-horrors */
.scn-heard-horrors {
  background: linear-gradient(180deg, #10101a 0%, #1a1a2a 40%, #2a2a3a 70%, #3a3a4a 100%), radial-gradient(ellipse at 50% 80%, #4a3a3a 0%, transparent 70%);
}
.scn-heard-horrors .wall {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #1a1a2a 0%, #2a2a3a 100%);
  animation: hh-wall 20s ease-in-out infinite alternate;
}
.scn-heard-horrors .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #2a2a2a 0%, #1a1a1a 100%);
  border-radius: 20% 40% 0 0 / 10% 20% 0 0;
}
.scn-heard-horrors .window {
  position: absolute; top: 15%; left: 15%; width: 70px; height: 90px;
  background: linear-gradient(135deg, #504030 0%, #705040 100%);
  border: 3px solid #1a1a2a;
  border-radius: 4px;
  box-shadow: inset 0 0 20px 5px rgba(180,140,80,0.3);
  animation: hh-window 4s ease-in-out infinite alternate;
}
.scn-heard-horrors .figure1 {
  position: absolute; bottom: 20%; left: 30%; width: 24px; height: 64px;
  background: linear-gradient(180deg, #0a0a12 0%, #06060a 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: hh-fig1 6s ease-in-out infinite;
}
.scn-heard-horrors .figure2 {
  position: absolute; bottom: 18%; left: 55%; width: 22px; height: 60px;
  background: linear-gradient(180deg, #0e0e16 0%, #08080c 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: hh-fig2 5s ease-in-out infinite;
}
.scn-heard-horrors .door {
  position: absolute; bottom: 20%; left: 70%; width: 40px; height: 80px;
  background: linear-gradient(180deg, #2a1a1a 0%, #1a0a0a 100%);
  border-radius: 4px 4px 0 0;
  transform-origin: left center;
  animation: hh-door 8s ease-in-out infinite;
}
.scn-heard-horrors .child-shadow {
  position: absolute; bottom: 0; left: 0; width: 30px; height: 20px;
  background: rgba(10,10,20,0.5);
  border-radius: 50% 50% 0 0;
  filter: blur(2px);
  animation: hh-child 12s ease-in-out infinite;
}

@keyframes hh-wall {
  0% { opacity: 0.9; }
  50% { opacity: 1; }
  100% { opacity: 0.85; }
}
@keyframes hh-window {
  0% { box-shadow: inset 0 0 15px 3px rgba(180,140,80,0.2); }
  50% { box-shadow: inset 0 0 30px 8px rgba(180,140,80,0.4); }
  100% { box-shadow: inset 0 0 18px 5px rgba(180,140,80,0.25); }
}
@keyframes hh-fig1 {
  0% { transform: translateY(0) rotate(0deg); }
  50% { transform: translateY(-3px) rotate(2deg); }
  100% { transform: translateY(0) rotate(0deg); }
}
@keyframes hh-fig2 {
  0% { transform: translateY(0) scale(1); }
  50% { transform: translateY(-2px) scale(1.02); }
  100% { transform: translateY(0) scale(1); }
}
@keyframes hh-door {
  0% { transform: rotate(0deg); }
  50% { transform: rotate(3deg); }
  100% { transform: rotate(0deg); }
}
@keyframes hh-child {
  0% { transform: translateX(0) scale(1); opacity: 0.3; }
  50% { transform: translateX(20px) scale(1.1); opacity: 0.6; }
  100% { transform: translateX(0) scale(1); opacity: 0.3; }
}

/* Scene: i-cant-bear-it */
.scn-i-cant-bear-it {
  background: linear-gradient(180deg, #14141e 0%, #1e1e2a 40%, #2a2a3a 70%, #3a3a4a 100%), radial-gradient(ellipse at 50% 90%, #4a3a3a 0%, transparent 60%);
}
.scn-i-cant-bear-it .wall {
  position: absolute; inset: 0 0 25% 0;
  background: linear-gradient(180deg, #1a1a28 0%, #282838 100%);
  animation: icb-wall 18s ease-in-out infinite alternate;
}
.scn-i-cant-bear-it .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 25%;
  background: linear-gradient(180deg, #2a2a2a 0%, #1a1a1a 100%);
  border-radius: 30% 40% 0 0 / 15% 20% 0 0;
}
.scn-i-cant-bear-it .dressing-table {
  position: absolute; bottom: 20%; left: 35%; width: 80px; height: 20px;
  background: linear-gradient(180deg, #3a2a1a 0%, #2a1a0a 100%);
  border-radius: 10% 10% 0 0;
  box-shadow: 0 4px 8px rgba(0,0,0,0.5);
  animation: icb-table 7s ease-in-out infinite;
}
.scn-i-cant-bear-it .watch {
  position: absolute; bottom: 30%; left: 43%; width: 16px; height: 16px;
  border-radius: 50%;
  background: radial-gradient(circle, #5a4a3a 0%, #3a2a1a 100%);
  border: 2px solid #4a3a2a;
  transform-origin: center;
  animation: icb-watch 2s linear infinite;
}
.scn-i-cant-bear-it .figure1 {
  position: absolute; bottom: 20%; left: 25%; width: 22px; height: 60px;
  background: linear-gradient(180deg, #0e0e18 0%, #08080c 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: icb-fig1 3s ease-in-out infinite;
}
.scn-i-cant-bear-it .figure2 {
  position: absolute; bottom: 18%; left: 60%; width: 20px; height: 56px;
  background: linear-gradient(180deg, #12121e 0%, #0a0a10 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: icb-fig2 8s ease-in-out infinite;
}
.scn-i-cant-bear-it .window {
  position: absolute; top: 10%; left: 10%; width: 60px; height: 80px;
  background: linear-gradient(135deg, #3a3028 0%, #504038 100%);
  border: 3px solid #1a1a28;
  border-radius: 4px;
  box-shadow: inset 0 0 15px 4px rgba(160,120,80,0.2);
  animation: icb-window 5s ease-in-out infinite alternate;
}

@keyframes icb-wall {
  0% { opacity: 0.85; }
  50% { opacity: 1; }
  100% { opacity: 0.8; }
}
@keyframes icb-table {
  0% { transform: translateY(0); }
  50% { transform: translateY(-1px); }
  100% { transform: translateY(0); }
}
@keyframes icb-watch {
  0% { transform: rotate(0deg); }
  50% { transform: rotate(180deg); }
  100% { transform: rotate(360deg); }
}
@keyframes icb-fig1 {
  0% { transform: translateX(0) rotate(0deg); }
  50% { transform: translateX(3px) rotate(2deg); }
  100% { transform: translateX(0) rotate(0deg); }
}
@keyframes icb-fig2 {
  0% { transform: translateY(0) scale(1); }
  50% { transform: translateY(-2px) scale(0.98); }
  100% { transform: translateY(0) scale(1); }
}
@keyframes icb-window {
  0% { box-shadow: inset 0 0 10px 2px rgba(160,120,80,0.15); }
  50% { box-shadow: inset 0 0 25px 6px rgba(160,120,80,0.35); }
  100% { box-shadow: inset 0 0 12px 3px rgba(160,120,80,0.2); }
}

/* Scene: letter-not-sent */
.scn-letter-not-sent {
  background: linear-gradient(180deg, #1e2234 0%, #3a2e44 35%, #5a4238 65%, #7a5a48 100%), radial-gradient(ellipse at 50% 100%, #b08060 0%, transparent 60%);
}
.scn-letter-not-sent .sky {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(180deg, #252a40 0%, transparent 100%);
  animation: lns-sky 14s ease-in-out infinite alternate;
}
.scn-letter-not-sent .ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 40%;
  background: linear-gradient(180deg, #2a2a2a 0%, #1a1a1a 100%);
  border-radius: 40% 30% 0 0 / 30% 20% 0 0;
  animation: lns-ground 18s ease-in-out infinite alternate;
}
.scn-letter-not-sent .door-arch {
  position: absolute; bottom: 30%; left: 50%; width: 60px; height: 100px;
  background: linear-gradient(180deg, #3a2a1a 0%, #2a1a0a 100%);
  border-radius: 30% 30% 0 0;
  transform: translateX(-50%);
  box-shadow: inset 0 0 10px 2px rgba(0,0,0,0.4);
  animation: lns-arch 12s ease-in-out infinite;
}
.scn-letter-not-sent .figure1 {
  position: absolute; bottom: 22%; left: 38%; width: 20px; height: 52px;
  background: linear-gradient(180deg, #12121e 0%, #0a0a10 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: lns-fig1 5s ease-in-out infinite;
}
.scn-letter-not-sent .figure2 {
  position: absolute; bottom: 21%; left: 55%; width: 18px; height: 50px;
  background: linear-gradient(180deg, #141422 0%, #0c0c14 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: lns-fig2 6s ease-in-out infinite;
}
.scn-letter-not-sent .sun {
  position: absolute; bottom: 40%; left: 80%; width: 24px; height: 24px;
  background: radial-gradient(circle, #ffc070 0%, #e09850 50%, transparent 70%);
  border-radius: 50%;
  box-shadow: 0 0 30px 8px #e09850;
  animation: lns-sun 8s ease-in-out infinite alternate;
}
.scn-letter-not-sent .letter {
  position: absolute; bottom: 25%; left: 42%; width: 12px; height: 16px;
  background: linear-gradient(180deg, #fff8e8 0%, #d8c8b0 100%);
  border-radius: 2px;
  box-shadow: 0 2px 4px rgba(0,0,0,0.3);
  animation: lns-letter 3.5s ease-in-out infinite;
}

@keyframes lns-sky {
  0% { opacity: 0.75; }
  50% { opacity: 1; }
  100% { opacity: 0.8; }
}
@keyframes lns-ground {
  0% { transform: translateY(0); }
  50% { transform: translateY(-2px); }
  100% { transform: translateY(0); }
}
@keyframes lns-arch {
  0% { transform: translateX(-50%) scale(1); }
  50% { transform: translateX(-50%) scale(1.02); }
  100% { transform: translateX(-50%) scale(1); }
}
@keyframes lns-fig1 {
  0% { transform: translateX(0) rotate(-1deg); }
  50% { transform: translateX(2px) rotate(1deg); }
  100% { transform: translateX(0) rotate(-1deg); }
}
@keyframes lns-fig2 {
  0% { transform: translateX(0) rotate(1deg) scale(1); }
  50% { transform: translateX(-3px) rotate(-2deg) scale(1.02); }
  100% { transform: translateX(0) rotate(1deg) scale(1); }
}
@keyframes lns-sun {
  0% { box-shadow: 0 0 20px 5px #e09850; opacity: 0.7; }
  50% { box-shadow: 0 0 50px 12px #ffb070; opacity: 1; }
  100% { box-shadow: 0 0 25px 7px #e09850; opacity: 0.75; }
}
@keyframes lns-letter {
  0% { transform: translateY(0) rotate(0deg); }
  50% { transform: translateY(-4px) rotate(8deg); }
  100% { transform: translateY(0) rotate(0deg); }
}

.scn-quints-death { background: linear-gradient(180deg, #2a1a0a 0%, #1a0a00 50%, #0a0500 100%), radial-gradient(ellipse at 50% 30%, #3a2a1a 0%, transparent 60%); }
.scn-quints-death .bg-wall   { position:absolute; inset:0; background: linear-gradient(180deg, #2a1a0a, #1a0a00); animation: qd-wall 14s ease-in-out infinite alternate; }
.scn-quints-death .bg-floor  { position:absolute; bottom:0; left:0; right:0; height:30%; background: linear-gradient(180deg, #1f1a10, #0f0a05); }
.scn-quints-death .window    { position:absolute; top:10%; right:15%; width:60px; height:80px; background: radial-gradient(ellipse at center, #3a4a5a 0%, #1a2a3a 70%); border:4px solid #0f0a05; box-shadow: inset 0 0 20px #2a3a4a; animation: qd-window 8s ease-in-out infinite alternate; }
.scn-quints-death .candle    { position:absolute; bottom:25%; left:20%; width:8px; height:30px; background: linear-gradient(180deg, #e0c090 0%, #b09070 100%); border-radius:2px; }
.scn-quints-death .candle-glow { position:absolute; bottom:25%; left:20%; width:30px; height:30px; transform:translate(-50%,50%); background: radial-gradient(circle, #ffd080 0%, transparent 70%); animation: qd-glow 3s ease-in-out infinite alternate; }
.scn-quints-death .body      { position:absolute; bottom:10%; left:30%; width:40px; height:80px; background: linear-gradient(180deg, #1a1a1a 0%, #0a0a0a 100%); border-radius: 30% 30% 20% 20% / 50% 50% 20% 20%; transform: rotate(-15deg); animation: qd-body 20s ease-in-out infinite; }
.scn-quints-death .chair     { position:absolute; bottom:10%; right:20%; width:30px; height:50px; background: linear-gradient(180deg, #3a2a1a, #1a1008); border-radius:10%; transform: rotate(10deg); }
.scn-quints-death .dust      { position:absolute; bottom:30%; left:40%; width:4px; height:4px; background: rgba(200,180,150,0.3); border-radius:50%; filter: blur(1px); animation: qd-dust 12s linear infinite; }
@keyframes qd-wall   { 0% { opacity:.7 } 50% { opacity:1 } 100% { opacity:.6 } }
@keyframes qd-window { 0% { opacity:0.5 } 50% { opacity:0.8 } 100% { opacity:0.4 } }
@keyframes qd-glow   { 0% { transform:scale(1) translate(-50%,50%); opacity:0.6 } 50% { transform:scale(1.1) translate(-50%,50%); opacity:1 } 100% { transform:scale(0.9) translate(-50%,50%); opacity:0.5 } }
@keyframes qd-body   { 0% { transform:translateY(0) rotate(-15deg) } 50% { transform:translateY(1px) rotate(-14deg) } 100% { transform:translateY(0) rotate(-15deg) } }
@keyframes qd-dust   { 0% { transform:translateY(0); opacity:0 } 50% { opacity:0.2 } 100% { transform:translateY(-30px); opacity:0 } }

.scn-tears-vows-prayers { background: linear-gradient(180deg, #1a1a2a 0%, #0f0f1a 100%), radial-gradient(ellipse at 50% 60%, #2a2a3a 0%, transparent 70%); }
.scn-tears-vows-prayers .bg          { position:absolute; inset:0; background: linear-gradient(180deg, #1a1a2a, #0f0f1a); }
.scn-tears-vows-prayers .figure      { position:absolute; bottom:20%; left:50%; width:40px; height:70px; background: linear-gradient(180deg, #1a1a1a, #0a0a0a); border-radius: 30% 30% 40% 40%; transform:translateX(-50%) scaleY(0.9); animation: tvp-figure 6s ease-in-out infinite; }
.scn-tears-vows-prayers .head        { position:absolute; top:15%; left:50%; width:20px; height:20px; background:#1a1a1a; border-radius:50%; transform:translateX(-50%) rotate(10deg); animation: tvp-head 4s ease-in-out infinite; }
.scn-tears-vows-prayers .hands       { position:absolute; bottom:30%; left:50%; width:12px; height:16px; background:#2a2a2a; border-radius:40% 40% 30% 30%; transform:translateX(-50%); animation: tvp-hands 3s ease-in-out infinite; }
.scn-tears-vows-prayers .candle      { position:absolute; bottom:20%; left:60%; width:8px; height:40px; background: linear-gradient(180deg, #e0c090, #b09070); border-radius:2px; }
.scn-tears-vows-prayers .candle-glow { position:absolute; bottom:20%; left:60%; width:40px; height:40px; transform:translate(-50%,50%); background: radial-gradient(circle, #ffd080 0%, transparent 70%); animation: tvp-glow 3s ease-in-out infinite alternate; }
.scn-tears-vows-prayers .tear1       { position:absolute; bottom:55%; left:45%; width:4px; height:6px; background:rgba(180,200,255,0.6); border-radius:50%; animation: tvp-tear 5s ease-in-out infinite; }
.scn-tears-vows-prayers .tear2       { position:absolute; bottom:55%; left:48%; width:4px; height:6px; background:rgba(180,200,255,0.6); border-radius:50%; animation: tvp-tear 5s ease-in-out infinite 2.5s; }
.scn-tears-vows-prayers .shadow      { position:absolute; bottom:20%; left:50%; width:80px; height:20px; background:rgba(0,0,0,0.5); border-radius:50%; filter:blur(4px); transform:translateX(-50%); }
@keyframes tvp-figure { 0% { transform:translateX(-50%) translateY(0) scaleY(0.9) } 50% { transform:translateX(-50%) translateY(-2px) scaleY(0.9) } 100% { transform:translateX(-50%) translateY(0) scaleY(0.9) } }
@keyframes tvp-head   { 0% { transform:translateX(-50%) rotate(10deg) } 50% { transform:translateX(-50%) rotate(5deg) } 100% { transform:translateX(-50%) rotate(10deg) } }
@keyframes tvp-hands  { 0% { transform:translateX(-50%) scale(1) } 50% { transform:translateX(-50%) scale(0.95) } 100% { transform:translateX(-50%) scale(1) } }
@keyframes tvp-glow   { 0% { transform:scale(1) translate(-50%,50%); opacity:0.7 } 50% { transform:scale(1.2) translate(-50%,50%); opacity:1 } 100% { transform:scale(0.9) translate(-50%,50%); opacity:0.6 } }
@keyframes tvp-tear   { 0% { transform:translateY(0); opacity:0.7 } 50% { transform:translateY(10px); opacity:0.4 } 100% { transform:translateY(20px); opacity:0 } }

.scn-mrs-grose-accepts-truth { background: linear-gradient(180deg, #1a1a1a 0%, #0f0f0f 100%), radial-gradient(ellipse at 50% 60%, #2a2a2a 0%, transparent 60%); }
.scn-mrs-grose-accepts-truth .bg          { position:absolute; inset:0; background: linear-gradient(180deg, #1a1a1a, #0f0f0f); }
.scn-mrs-grose-accepts-truth .figure-left { position:absolute; bottom:30%; left:30%; width:35px; height:80px; background: linear-gradient(180deg, #1a1a1a, #0a0a0a); border-radius:20% 20% 30% 30%; animation: mg-figure 8s ease-in-out infinite; }
.scn-mrs-grose-accepts-truth .figure-right{ position:absolute; bottom:30%; right:30%; width:35px; height:80px; background: linear-gradient(180deg, #2a1a1a, #0a0a0a); border-radius:20% 20% 30% 30%; animation: mg-figure 8s ease-in-out infinite reverse; }
.scn-mrs-grose-accepts-truth .lantern     { position:absolute; bottom:40%; left:50%; width:10px; height:20px; background:#c0a080; border-radius:4px; transform:translateX(-50%); animation: mg-lantern 4s ease-in-out infinite; }
.scn-mrs-grose-accepts-truth .lantern-glow{ position:absolute; bottom:40%; left:50%; width:60px; height:60px; transform:translate(-50%,-50%); background: radial-gradient(circle, #d0b080 0%, transparent 70%); animation: mg-glow 3s ease-in-out infinite alternate; }
.scn-mrs-grose-accepts-truth .shadow-floor{ position:absolute; bottom:28%; left:20%; width:60%; height:10px; background:rgba(0,0,0,0.6); border-radius:50%; filter:blur(6px); animation: mg-shadow 8s ease-in-out infinite; }
.scn-mrs-grose-accepts-truth .breath1     { position:absolute; bottom:50%; left:35%; width:10px; height:10px; background:rgba(200,200,220,0.1); border-radius:50%; filter:blur(4px); animation: mg-breath 6s ease-in-out infinite; }
.scn-mrs-grose-accepts-truth .breath2     { position:absolute; bottom:50%; right:35%; width:10px; height:10px; background:rgba(200,200,220,0.1); border-radius:50%; filter:blur(4px); animation: mg-breath 6s ease-in-out infinite 3s; }
@keyframes mg-figure  { 0% { transform:translateY(0) rotate(-2deg) } 50% { transform:translateY(-3px) rotate(0deg) } 100% { transform:translateY(0) rotate(2deg) } }
@keyframes mg-lantern { 0% { transform:translateX(-50%) rotate(-5deg) } 50% { transform:translateX(-50%) rotate(5deg) } 100% { transform:translateX(-50%) rotate(-5deg) } }
@keyframes mg-glow    { 0% { transform:scale(1) translate(-50%,-50%); opacity:0.5 } 50% { transform:scale(1.2) translate(-50%,-50%); opacity:1 } 100% { transform:scale(0.9) translate(-50%,-50%); opacity:0.4 } }
@keyframes mg-shadow  { 0% { opacity:0.5 } 50% { opacity:0.8 } 100% { opacity:0.5 } }
@keyframes mg-breath  { 0% { transform:translateY(0); opacity:0 } 50% { transform:translateY(-5px); opacity:0.2 } 100% { transform:translateY(0); opacity:0 } }

.scn-measuring-the-burden { background: linear-gradient(180deg, #1a1a1a 0%, #0f0f0f 100%), radial-gradient(ellipse at 50% 70%, #2a2a2a 0%, transparent 60%); }
.scn-measuring-the-burden .bg          { position:absolute; inset:0; background: linear-gradient(180deg, #1a1a1a, #0f0f0f); }
.scn-measuring-the-burden .figure      { position:absolute; bottom:20%; left:50%; width:40px; height:70px; background: linear-gradient(180deg, #1a1a1a, #0a0a0a); border-radius:30% 30% 20% 20%; transform:translateX(-50%) rotate(15deg) skewX(-10deg); animation: mb-figure 5s ease-in-out infinite; }
.scn-measuring-the-burden .burden      { position:absolute; top:30%; left:50%; width:30px; height:40px; background: linear-gradient(180deg, #2a1a0a, #1a0a00); border-radius:20% 20% 10% 10%; transform:translateX(-50%) rotate(-5deg); animation: mb-burden 5s ease-in-out infinite reverse; }
.scn-measuring-the-burden .staff       { position:absolute; bottom:20%; left:48%; width:4px; height:60px; background: linear-gradient(180deg, #3a2a1a, #1a1008); border-radius:2px; transform:rotate(10deg); animation: mb-staff 3s ease-in-out infinite; }
.scn-measuring-the-burden .candle      { position:absolute; bottom:15%; left:30%; width:8px; height:30px; background: linear-gradient(180deg, #e0c090, #b09070); border-radius:2px; }
.scn-measuring-the-burden .candle-glow { position:absolute; bottom:15%; left:30%; width:40px; height:40px; transform:translate(-50%,50%); background: radial-gradient(circle, #ffd080 0%, transparent 70%); animation: mb-glow 3s ease-in-out infinite alternate; }
.scn-measuring-the-burden .shadow      { position:absolute; bottom:18%; left:45%; width:60px; height:15px; background:rgba(0,0,0,0.5); border-radius:50%; filter:blur(5px); animation: mb-shadow 5s ease-in-out infinite; }
.scn-measuring-the-burden .ground      { position:absolute; bottom:0; left:0; right:0; height:20%; background: linear-gradient(180deg, #1f1a10, #0f0a05); }
@keyframes mb-figure { 0% { transform:translateX(-50%) rotate(15deg) skewX(-10deg) translateY(0) } 50% { transform:translateX(-50%) rotate(14deg) skewX(-10deg) translateY(2px) } 100% { transform:translateX(-50%) rotate(15deg) skewX(-10deg) translateY(0) } }
@keyframes mb-burden { 0% { transform:translateX(-50%) rotate(-5deg) translateY(0) } 50% { transform:translateX(-50%) rotate(-4deg) translateY(-2px) } 100% { transform:translateX(-50%) rotate(-5deg) translateY(0) } }
@keyframes mb-staff  { 0% { transform:rotate(10deg) translateY(0) } 50% { transform:rotate(9deg) translateY(1px) } 100% { transform:rotate(10deg) translateY(0) } }
@keyframes mb-glow   { 0% { transform:scale(1) translate(-50%,50%); opacity:0.6 } 50% { transform:scale(1.15) translate(-50%,50%); opacity:1 } 100% { transform:scale(0.9) translate(-50%,50%); opacity:0.5 } }
@keyframes mb-shadow { 0% { opacity:0.4 } 50% { opacity:0.7 } 100% { opacity:0.4 } }

.scn-need-to-respect-bloom {
  background: linear-gradient(180deg, #1a1a3e 0%, #3a2a2a 40%, #5a3a2a 70%, #2a1a1a 100%), radial-gradient(ellipse at 50% 0%, #5a3a2a 0%, transparent 60%);
}
.scn-need-to-respect-bloom .sky { position:absolute; inset:0 0 50% 0; background: linear-gradient(180deg, #2a2a4e 0%, #6a4a3a 100%); animation: rb-sky 10s ease-in-out infinite alternate; }
.scn-need-to-respect-bloom .ground { position:absolute; bottom:0; left:0; right:0; height:50%; background: linear-gradient(180deg, #1a1a1a 0%, #0a0a1a 100%); border-radius: 60% 40% 0 0 / 40% 30% 0 0; }
.scn-need-to-respect-bloom .figure-left { position:absolute; bottom:30%; left:30%; width:40px; height:80px; background: linear-gradient(180deg, #2a2a2a 0%, #1a1a1a 100%); border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%; animation: rb-figure-left 4s ease-in-out infinite; }
.scn-need-to-respect-bloom .figure-right { position:absolute; bottom:30%; right:30%; width:35px; height:75px; background: linear-gradient(180deg, #3a2a2a 0%, #2a1a1a 100%); border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%; animation: rb-figure-right 4s ease-in-out infinite 1s; }
.scn-need-to-respect-bloom .arm { position:absolute; bottom:45%; left:42%; width:30px; height:6px; background: #2a2a2a; border-radius: 3px; transform-origin: left center; animation: rb-arm 4s ease-in-out infinite; }
.scn-need-to-respect-bloom .glow { position:absolute; bottom:40%; left:50%; width:10px; height:10px; background: radial-gradient(circle, #ffa060 0%, #806040 70%); border-radius:50%; box-shadow: 0 0 30px 10px #806040; animation: rb-glow 3s ease-in-out infinite alternate; }
@keyframes rb-sky { 0% { opacity:0.8 } 50% { opacity:1 } 100% { opacity:0.7 } }
@keyframes rb-figure-left { 0% { transform: translateY(0) rotate(-2deg) } 50% { transform: translateY(-4px) rotate(0deg) } 100% { transform: translateY(0) rotate(2deg) } }
@keyframes rb-figure-right { 0% { transform: translateY(0) rotate(2deg) } 50% { transform: translateY(-4px) rotate(0deg) } 100% { transform: translateY(0) rotate(-2deg) } }
@keyframes rb-arm { 0% { transform: scaleX(0.8) rotate(-10deg) } 50% { transform: scaleX(1.2) rotate(5deg) } 100% { transform: scaleX(0.8) rotate(-10deg) } }
@keyframes rb-glow { 0% { box-shadow: 0 0 20px 5px #806040; opacity:0.7 } 50% { box-shadow: 0 0 40px 15px #ffa060; opacity:1 } 100% { box-shadow: 0 0 20px 5px #806040; opacity:0.8 } }

.scn-i-ve-been-frightened {
  background: linear-gradient(180deg, #2a1a1f 0%, #4a2a2a 50%, #1a1a1a 100%), radial-gradient(ellipse at 30% 50%, #4a2a2a 0%, transparent 60%);
}
.scn-i-ve-been-frightened .wall { position:absolute; inset:0; background: linear-gradient(135deg, #3a2a2a 0%, #1a1a1a 100%); }
.scn-i-ve-been-frightened .window { position:absolute; top:30%; left:50%; width:120px; height:160px; transform:translateX(-50%); background: #0a0a1a; border: 4px solid #2a1a1a; border-radius: 4px; overflow:hidden; }
.scn-i-ve-been-frightened .outside { position:absolute; top:30%; left:50%; width:120px; height:160px; transform:translateX(-50%); background: linear-gradient(180deg, #3a2a2a 0%, #5a3a2a 40%, #2a1a1a 100%); animation: if-outside 8s ease-in-out infinite alternate; }
.scn-i-ve-been-frightened .woman { position:absolute; bottom:32%; left:50%; width:50px; height:120px; transform:translateX(-50%); background: linear-gradient(180deg, #1a1a1a 0%, #0a0a1a 100%); border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%; animation: if-woman 5s ease-in-out infinite; }
.scn-i-ve-been-frightened .curtain { position:absolute; top:30%; left:50%; width:60px; height:160px; transform:translateX(-100%); background: linear-gradient(180deg, rgba(60,40,40,0.6) 0%, rgba(60,40,40,0.2) 100%); filter: blur(1px); animation: if-curtain 7s ease-in-out infinite alternate; }
.scn-i-ve-been-frightened .clock { position:absolute; top:10%; right:20%; width:30px; height:30px; background: radial-gradient(circle, #a08060 0%, #604030 100%); border-radius:50%; box-shadow: inset 0 2px 4px #2a1a1a; animation: if-clock 2s steps(2) infinite; }
@keyframes if-outside { 0% { opacity:0.9 } 50% { opacity:0.7 } 100% { opacity:1 } }
@keyframes if-woman { 0% { transform: translateX(-50%) translateY(0) rotate(0deg) } 50% { transform: translateX(-50%) translateY(-3px) rotate(1deg) } 100% { transform: translateX(-50%) translateY(0) rotate(0deg) } }
@keyframes if-curtain { 0% { transform: translateX(-100%) scaleX(1) } 50% { transform: translateX(-95%) scaleX(1.05) } 100% { transform: translateX(-100%) scaleX(1) } }
@keyframes if-clock { 0% { box-shadow: 0 0 0px #604030 } 50% { box-shadow: 0 0 10px #a08060 } 100% { box-shadow: 0 0 0px #604030 } }

.scn-where-is-he-gone {
  background: linear-gradient(180deg, #1a1a3e 0%, #2a2a4e 30%, #4a3a2a 70%, #2a1a1a 100%), radial-gradient(ellipse at 70% 100%, #4a3a2a 0%, transparent 50%);
}
.scn-where-is-he-gone .sky { position:absolute; inset:0 0 40% 0; background: linear-gradient(180deg, #2a2a4e 0%, #5a4a3a 100%); animation: wg-sky 12s ease-in-out infinite alternate; }
.scn-where-is-he-gone .ground { position:absolute; bottom:0; left:0; right:0; height:40%; background: linear-gradient(180deg, #1a1a1a 0%, #0a0a1a 100%); border-radius: 30% 70% 0 0 / 50% 40% 0 0; }
.scn-where-is-he-gone .tower { position:absolute; bottom:30%; left:25%; width:40px; height:100px; background: linear-gradient(180deg, #3a2a2a 0%, #1a1a1a 100%); border-radius: 4px 4px 0 0; animation: wg-tower 6s ease-in-out infinite; }
.scn-where-is-he-gone .tower::before { content:''; position:absolute; top:-10px; left:-5px; width:50px; height:15px; background:#2a1a1a; border-radius: 10px 10px 0 0; }
.scn-where-is-he-gone .woman { position:absolute; bottom:20%; right:30%; width:30px; height:60px; background: linear-gradient(180deg, #2a2a2a 0%, #1a1a1a 100%); border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%; animation: wg-woman 4s ease-in-out infinite; }
.scn-where-is-he-gone .tree { position:absolute; bottom:25%; right:10%; width:20px; height:70px; background: linear-gradient(180deg, #1a2a1a 0%, #0a1a0a 100%); border-radius: 0 0 20% 20%; animation: wg-tree 15s ease-in-out infinite; }
.scn-where-is-he-gone .shadow { position:absolute; bottom:18%; left:35%; width:80px; height:10px; background: rgba(0,0,0,0.5); border-radius: 50%; filter: blur(3px); animation: wg-shadow 4s ease-in-out infinite; }
@keyframes wg-sky { 0% { opacity:0.8 } 50% { opacity:1 } 100% { opacity:0.6 } }
@keyframes wg-tower { 0% { transform: scaleY(1) } 50% { transform: scaleY(1.02) translateY(-2px) } 100% { transform: scaleY(1) } }
@keyframes wg-woman { 0% { transform: rotate(0deg) } 25% { transform: rotate(-5deg) } 50% { transform: rotate(0deg) } 75% { transform: rotate(5deg) } 100% { transform: rotate(0deg) } }
@keyframes wg-tree { 0% { transform: rotate(0deg) } 50% { transform: rotate(2deg) } 100% { transform: rotate(0deg) } }
@keyframes wg-shadow { 0% { transform: scaleX(1) } 50% { transform: scaleX(1.1) } 100% { transform: scaleX(1) } }

.scn-nowhere-but-tower {
  background: linear-gradient(180deg, #1a1a3e 0%, #2a2a4e 50%, #4a3a2a 100%), radial-gradient(ellipse at 50% 30%, #4a3a2a 0%, transparent 70%);
}
.scn-nowhere-but-tower .sky { position:absolute; inset:0 0 50% 0; background: linear-gradient(180deg, #3a2a4e 0%, #6a4a3a 100%); animation: nt-sky 10s ease-in-out infinite alternate; }
.scn-nowhere-but-tower .ground { position:absolute; bottom:0; left:0; right:0; height:50%; background: linear-gradient(180deg, #1a1a1a 0%, #0a0a1a 100%); border-radius: 30% 70% 0 0 / 50% 40% 0 0; }
.scn-nowhere-but-tower .tower { position:absolute; bottom:30%; left:50%; width:60px; height:180px; transform:translateX(-50%); background: linear-gradient(180deg, #3a2a2a 0%, #1a1a1a 100%); border-radius: 6px 6px 0 0; animation: nt-tower 8s ease-in-out infinite; }
.scn-nowhere-but-tower .tower::before { content:''; position:absolute; top:-15px; left:-10px; width:80px; height:25px; background:#2a1a1a; border-radius: 15px 15px 0 0; }
.scn-nowhere-but-tower .figure-top { position:absolute; bottom:66%; left:50%; width:20px; height:40px; transform:translateX(-50%); background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: nt-figure 6s ease-in-out infinite; }
.scn-nowhere-but-tower .window-glow { position:absolute; bottom:50%; left:50%; width:14px; height:20px; transform:translateX(-50%); background: radial-gradient(circle, #ffa060 0%, #806040 70%); border-radius: 2px; box-shadow: 0 0 25px 8px #806040; animation: nt-glow 4s ease-in-out infinite alternate; }
@keyframes nt-sky { 0% { opacity:0.7 } 50% { opacity:1 } 100% { opacity:0.8 } }
@keyframes nt-tower { 0% { transform: translateX(-50%) scaleY(1); } 50% { transform: translateX(-50%) scaleY(1.01) translateY(-3px); } 100% { transform: translateX(-50%) scaleY(1); } }
@keyframes nt-figure { 0% { transform: translateX(-50%) rotate(0deg); } 50% { transform: translateX(-50%) rotate(3deg) translateY(-2px); } 100% { transform: translateX(-50%) rotate(0deg); } }
@keyframes nt-glow { 0% { box-shadow: 0 0 15px 3px #806040; opacity:0.8 } 50% { box-shadow: 0 0 35px 10px #ffa060; opacity:1 } 100% { box-shadow: 0 0 15px 3px #806040; opacity:0.9 } }

.scn-governess-insistence { background: linear-gradient(180deg, #0d0b0c 0%, #1f181a 40%, #2d2225 100%), radial-gradient(ellipse at 50% 60%, #3d2a28 0%, transparent 70%); }
.scn-governess-insistence .gi-bg-deep { position:absolute; inset:0; background:#120e10; animation:gi-breathe 8s ease-in-out infinite alternate; }
.scn-governess-insistence .gi-floor { position:absolute; bottom:0; left:0; right:0; height:30%; background:linear-gradient(0deg, #1a1416, #2a2023); transform:perspective(400px) rotateX(10deg); transform-origin:bottom center; }
.scn-governess-insistence .gi-wall-left { position:absolute; top:0; left:0; width:40%; height:100%; background:linear-gradient(90deg, #231c1e 0%, transparent 100%); }
.scn-governess-insistence .gi-wall-right { position:absolute; top:0; right:0; width:40%; height:100%; background:linear-gradient(-90deg, #231c1e 0%, transparent 100%); }
.scn-governess-insistence .gi-figure-left { position:absolute; bottom:20%; left:30%; width:40px; height:120px; background:#0c090a; border-radius:30% 30% 20% 20% / 50% 50% 30% 30%; animation:gi-figure-l 6s ease-in-out infinite; }
.scn-governess-insistence .gi-figure-right { position:absolute; bottom:20%; right:30%; width:35px; height:110px; background:#140f10; border-radius:40% 40% 20% 20% / 60% 60% 30% 30%; animation:gi-figure-r 6s ease-in-out infinite; }
.scn-governess-insistence .gi-light { position:absolute; bottom:50%; left:50%; width:4px; height:8px; transform:translateX(-50%); background:#f5d4a0; border-radius:50%; box-shadow:0 0 30px 15px rgba(245,212,160,.3), 0 0 60px 30px rgba(245,212,160,.1); animation:gi-flicker 2s ease-in-out infinite alternate; }
.scn-governess-insistence .gi-shadow-window { position:absolute; top:10%; right:15%; width:80px; height:100px; border:2px solid rgba(255,255,255,.03); box-shadow:inset 0 0 20px rgba(0,0,0,.8); animation:gi-shadow-fade 12s linear infinite; }
@keyframes gi-breathe { 0% { opacity:.6; transform:scale(1); } 50% { opacity:.8; transform:scale(1.01); } 100% { opacity:.7; transform:scale(1); } }
@keyframes gi-figure-l { 0% { transform:translateX(0) translateY(0) rotate(-1deg); } 50% { transform:translateX(-2px) translateY(-3px) rotate(1deg); } 100% { transform:translateX(1px) translateY(0) rotate(0); } }
@keyframes gi-figure-r { 0% { transform:translateX(0) translateY(0) rotate(1deg); } 50% { transform:translateX(2px) translateY(-2px) rotate(-1deg); } 100% { transform:translateX(-1px) translateY(0) rotate(0); } }
@keyframes gi-flicker { 0% { opacity:.6; box-shadow:0 0 20px 10px rgba(245,212,160,.2), 0 0 40px 20px rgba(245,212,160,.05); } 50% { opacity:1; box-shadow:0 0 40px 20px rgba(245,212,160,.4), 0 0 80px 40px rgba(245,212,160,.1); } 100% { opacity:.7; box-shadow:0 0 25px 12px rgba(245,212,160,.25), 0 0 50px 25px rgba(245,212,160,.06); } }
@keyframes gi-shadow-fade { 0% { opacity:.3; } 50% { opacity:.7; } 100% { opacity:.2; } }

.scn-governess-confession { background: linear-gradient(135deg, #1a1416 0%, #110d0e 50%, #1f181a 100%), radial-gradient(circle at 40% 50%, #2a2124 0%, transparent 70%); }
.scn-governess-confession .gc-bg { position:absolute; inset:0; background:#131011; animation:gc-breathe 9s ease-in-out infinite alternate; }
.scn-governess-confession .gc-table { position:absolute; bottom:40%; left:50%; width:120px; height:10px; transform:translateX(-50%); background:linear-gradient(0deg, #2a201e, #1a1412); border-radius:4px; }
.scn-governess-confession .gc-lamp { position:absolute; bottom:55%; left:50%; width:20px; height:30px; transform:translateX(-50%); background:radial-gradient(ellipse at 50% 30%, #f5d4a0 10%, #b08050 70%); border-radius:50% 50% 30% 30%; }
.scn-governess-confession .gc-glow { position:absolute; inset:0; background:radial-gradient(circle at 50% 60%, rgba(245,212,160,.15) 0%, transparent 60%); animation:gc-glow-pulse 4s ease-in-out infinite alternate; }
.scn-governess-confession .gc-figure-arm-l { position:absolute; left:25%; bottom:35%; width:30px; height:60px; background:#181314; border-radius:40% 10% 30% 20%; transform:rotate(15deg); transform-origin:bottom center; animation:gc-arm-l 7s ease-in-out infinite; }
.scn-governess-confession .gc-figure-arm-r { position:absolute; right:25%; bottom:35%; width:25px; height:70px; background:#1a1516; border-radius:10% 40% 20% 30%; transform:rotate(-10deg); transform-origin:bottom center; animation:gc-arm-r 7s ease-in-out infinite; }
.scn-governess-confession .gc-head-l { position:absolute; bottom:70%; left:30%; width:30px; height:35px; background:#141011; border-radius:50% 50% 40% 40%; animation:gc-head-l 8s ease-in-out infinite; }
.scn-governess-confession .gc-head-r { position:absolute; bottom:70%; right:30%; width:28px; height:32px; background:#130e0f; border-radius:50% 50% 45% 45%; animation:gc-head-r 8s ease-in-out infinite; }
@keyframes gc-breathe { 0% { opacity:.7; } 50% { opacity:.9; } 100% { opacity:.8; } }
@keyframes gc-glow-pulse { 0% { opacity:.3; } 50% { opacity:.7; } 100% { opacity:.4; } }
@keyframes gc-arm-l { 0% { transform:rotate(12deg) translateY(0); } 50% { transform:rotate(18deg) translateY(-2px); } 100% { transform:rotate(14deg) translateY(0); } }
@keyframes gc-arm-r { 0% { transform:rotate(-8deg) translateY(0); } 50% { transform:rotate(-14deg) translateY(-2px); } 100% { transform:rotate(-10deg) translateY(0); } }
@keyframes gc-head-l { 0% { transform:translateY(0) rotate(-2deg); } 50% { transform:translateY(-3px) rotate(1deg); } 100% { transform:translateY(-1px) rotate(0); } }
@keyframes gc-head-r { 0% { transform:translateY(0) rotate(2deg); } 50% { transform:translateY(-3px) rotate(-1deg); } 100% { transform:translateY(-1px) rotate(0); } }

.scn-mrs-grose-revelation { background: linear-gradient(180deg, #0f1518 0%, #181e24 40%, #222a30 100%), radial-gradient(ellipse at 50% 40%, #2a3a44 0%, transparent 70%); }
.scn-mrs-grose-revelation .mgr-bg-night { position:absolute; top:0; left:0; right:0; height:70%; background:linear-gradient(180deg, #0a0f12, #1a2228); animation:mgr-night 15s linear infinite alternate; }
.scn-mrs-grose-revelation .mgr-window { position:absolute; top:10%; left:50%; width:240px; height:300px; transform:translateX(-50%); border:6px solid #1a1416; border-radius:4px; box-shadow:inset 0 0 30px rgba(0,0,0,.9); overflow:hidden; background:transparent; }
.scn-mrs-grose-revelation .mgr-curtain-l { position:absolute; top:5%; left:15%; width:60px; height:70%; background:linear-gradient(90deg, #1a1416, #0d090a); border-radius:0 60% 60% 0; animation:mgr-curtain-sway 12s ease-in-out infinite alternate; }
.scn-mrs-grose-revelation .mgr-curtain-r { position:absolute; top:5%; right:15%; width:60px; height:70%; background:linear-gradient(-90deg, #1a1416, #0d090a); border-radius:60% 0 0 60%; animation:mgr-curtain-sway 12s ease-in-out infinite alternate-reverse; }
.scn-mrs-grose-revelation .mgr-figure-main { position:absolute; bottom:15%; left:50%; width:50px; height:140px; transform:translateX(-60%); background:#0d090a; border-radius:40% 40% 20% 20% / 60% 60% 30% 30%; animation:mgr-figure-main 8s ease-in-out infinite; }
.scn-mrs-grose-revelation .mgr-figure-second { position:absolute; bottom:15%; left:50%; width:45px; height:130px; transform:translateX(10%); background:#120c0d; border-radius:30% 30% 20% 20% / 50% 50% 30% 30%; animation:mgr-figure-second 10s ease-in-out infinite; }
.scn-mrs-grose-revelation .mgr-candle { position:absolute; bottom:10%; left:20%; width:30px; height:60px; background:linear-gradient(0deg, #e3c394, #a07d56); border-radius:4px; box-shadow:0 0 40px 20px rgba(227,195,148,.2); animation:mgr-candle-flicker 3s ease-in-out infinite alternate; }
@keyframes mgr-night { 0% { opacity:.5; } 50% { opacity:.8; } 100% { opacity:.6; } }
@keyframes mgr-curtain-sway { 0% { transform:translateX(-10px) rotate(-2deg); } 50% { transform:translateX(5px) rotate(1deg); } 100% { transform:translateX(-8px) rotate(-1deg); } }
@keyframes mgr-figure-main { 0% { transform:translateX(-60%) translateY(0); } 50% { transform:translateX(-60%) translateY(-4px); } 100% { transform:translateX(-60%) translateY(-1px); } }
@keyframes mgr-figure-second { 0% { transform:translateX(10%) translateY(0) rotate(-1deg); } 50% { transform:translateX(10%) translateY(-3px) rotate(1deg); } 100% { transform:translateX(10%) translateY(0) rotate(0); } }
@keyframes mgr-candle-flicker { 0% { opacity:.7; transform:scaleY(.95); box-shadow:0 0 30px 15px rgba(227,195,148,.15); } 50% { opacity:1; transform:scaleY(1.05); box-shadow:0 0 50px 25px rgba(227,195,148,.25); } 100% { opacity:.8; transform:scaleY(.98); box-shadow:0 0 35px 18px rgba(227,195,148,.18); } }

.scn-governess-despair { background: linear-gradient(180deg, #080607 0%, #140e10 40%, #1f1618 100%), radial-gradient(ellipse at 50% 20%, #2d1c1e 0%, transparent 60%); }
.scn-governess-despair .gd-bg { position:absolute; inset:0; background:radial-gradient(ellipse at 50% 80%, #1a1112, #0a0808); animation:gd-breathe 10s ease-in-out infinite alternate; }
.scn-governess-despair .gd-floor { position:absolute; bottom:0; left:0; right:0; height:25%; background:linear-gradient(0deg, #0d090a, #1a1416); }
.scn-governess-despair .gd-figure-kneeling { position:absolute; bottom:20%; left:38%; width:50px; height:100px; background:#0a0708; border-radius:40% 40% 30% 30% / 60% 60% 40% 40%; transform-origin:bottom center; animation:gd-kneel 6s ease-in-out infinite; }
.scn-governess-despair .gd-figure-comforting { position:absolute; bottom:20%; right:32%; width:60px; height:130px; background:#100a0b; border-radius:30% 30% 20% 20% / 50% 50% 30% 30%; transform-origin:bottom center; animation:gd-comfort 8s ease-in-out infinite; }
.scn-governess-despair .gd-fireplace { position:absolute; bottom:20%; right:8%; width:80px; height:100px; background:linear-gradient(0deg, #1a1416, #0d090a); border-radius:10px 10px 0 0; box-shadow:inset 0 0 20px rgba(0,0,0,.8); }
.scn-governess-despair .gd-embers { position:absolute; bottom:30%; right:12%; width:60px; height:20px; background:radial-gradient(ellipse, #5c2a1a 0%, #3a1510 50%, transparent 70%); animation:gd-ember 4s ease-in-out infinite alternate; }
.scn-governess-despair .gd-shawl { position:absolute; bottom:10%; left:15%; width:80px; height:20px; background:linear-gradient(135deg, #2a1e20, #1a1112); border-radius:50% 20% 50% 20%; transform:rotate(-20deg); animation:gd-shawl 15s ease-in-out infinite alternate; }
@keyframes gd-breathe { 0% { opacity:.7; } 50% { opacity:.9; } 100% { opacity:.8; } }
@keyframes gd-kneel { 0% { transform:translateY(0) rotate(0); } 50% { transform:translateY(-4px) rotate(2deg); } 100% { transform:translateY(-1px) rotate(-1deg); } }
@keyframes gd-comfort { 0% { transform:translateY(0) rotate(0); } 50% { transform:translateY(-3px) rotate(-2deg) scale(1.01); } 100% { transform:translateY(0) rotate(1deg); } }
@keyframes gd-ember { 0% { opacity:.3; transform:scale(.9); } 50% { opacity:.7; transform:scale(1.1); } 100% { opacity:.4; transform:scale(.95); } }
@keyframes gd-shawl { 0% { transform:rotate(-20deg) translateX(0) translateY(0); } 50% { transform:rotate(-15deg) translateX(5px) translateY(-2px); } 100% { transform:rotate(-22deg) translateX(-3px) translateY(1px); } }

/* scene: miles-will-write */
.scn-miles-will-write {
  background: linear-gradient(180deg, #6a7a8a 0%, #4a5a6a 50%, #2a3a4a 100%),
              radial-gradient(ellipse at 30% 20%, #8a9aaa 0%, transparent 70%);
}
.scn-miles-will-write .sky {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(180deg, #7a8a9a 0%, transparent 100%);
  animation: mww-sky 12s ease-in-out infinite alternate;
}
.scn-miles-will-write .cloud-a {
  position: absolute; top: 15%; left: 10%;
  width: 80px; height: 20px;
  background: linear-gradient(180deg, rgba(255,255,255,0.4) 0%, rgba(255,255,255,0.05) 100%);
  border-radius: 50%; filter: blur(6px);
  animation: mww-drift-a 40s linear infinite;
}
.scn-miles-will-write .cloud-b {
  position: absolute; top: 22%; right: 10%;
  width: 60px; height: 15px;
  background: linear-gradient(180deg, rgba(255,255,255,0.3) 0%, rgba(255,255,255,0.02) 100%);
  border-radius: 50%; filter: blur(5px);
  animation: mww-drift-b 55s linear infinite reverse;
}
.scn-miles-will-write .ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(0deg, #1a2a3a 0%, #2a3a4a 100%);
  border-radius: 20% 20% 0 0 / 10% 10% 0 0;
  box-shadow: inset 0 8px 20px rgba(0,0,0,0.5);
}
.scn-miles-will-write .figure-body {
  position: absolute; bottom: 22%; left: 20%;
  width: 20px; height: 40px;
  background: linear-gradient(180deg, #2a3a4a 0%, #1a1a2a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: mww-body-sway 4s ease-in-out infinite;
}
.scn-miles-will-write .figure-head {
  position: absolute; bottom: 58%; left: calc(20% + 2px);
  width: 16px; height: 16px;
  background: #2a3a4a;
  border-radius: 50%;
  animation: mww-head-tilt 4s ease-in-out infinite;
}
.scn-miles-will-write .eye-glow {
  position: absolute; bottom: 63%; left: calc(20% + 10px);
  width: 4px; height: 4px;
  background: radial-gradient(circle, #ffd060 0%, #c08040 70%);
  border-radius: 50%;
  box-shadow: 0 0 8px 2px #ffd060, 0 0 16px 4px rgba(255,208,96,0.3);
  animation: mww-eye-pulse 1s ease-in-out infinite alternate;
}
.scn-miles-will-write .shadow {
  position: absolute; bottom: 18%; left: 15%;
  width: 40px; height: 8px;
  background: rgba(0,0,0,0.4);
  border-radius: 50%;
  filter: blur(3px);
}
@keyframes mww-sky { 0% { opacity: 0.7 } 50% { opacity: 1 } 100% { opacity: 0.8 } }
@keyframes mww-drift-a { 0% { transform: translateX(-30px) } 100% { transform: translateX(120vw) } }
@keyframes mww-drift-b { 0% { transform: translateX(0) } 100% { transform: translateX(-120vw) } }
@keyframes mww-body-sway { 0% { transform: translateX(0) translateY(0) rotate(-1deg) } 25% { transform: translateX(4px) translateY(-2px) rotate(1deg) } 50% { transform: translateX(0) translateY(0) rotate(-1deg) } 75% { transform: translateX(-4px) translateY(-2px) rotate(1deg) } 100% { transform: translateX(0) translateY(0) rotate(0) } }
@keyframes mww-head-tilt { 0%,100% { transform: rotate(-2deg) translateX(0) } 50% { transform: rotate(2deg) translateX(1px) } }
@keyframes mww-eye-pulse { 0% { box-shadow: 0 0 6px 1px #ffd060, 0 0 12px 2px rgba(255,208,96,0.2); opacity: 0.8 } 50% { box-shadow: 0 0 14px 4px #ffe080, 0 0 28px 8px rgba(255,224,128,0.5); opacity: 1 } 100% { box-shadow: 0 0 8px 2px #ffd060, 0 0 16px 4px rgba(255,208,96,0.3); opacity: 0.9 } }

/* scene: tomb-reflections */
.scn-tomb-reflections {
  background: linear-gradient(180deg, #0a0a1a 0%, #1a1a2e 40%, #0e0e18 100%),
              radial-gradient(ellipse at 50% 100%, #1a1a2e 0%, transparent 70%);
}
.scn-tomb-reflections .far-mist {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, rgba(200,210,220,0.02) 0%, transparent 60%);
  filter: blur(15px);
  animation: tr-mist-far 30s ease-in-out infinite alternate;
}
.scn-tomb-reflections .near-mist {
  position: absolute; bottom: 0; left: -10%; right: -10%; height: 50%;
  background: rgba(180,190,200,0.04);
  filter: blur(10px);
  animation: tr-mist-near 20s ease-in-out infinite alternate;
}
.scn-tomb-reflections .tombstone {
  position: absolute; bottom: 25%; left: 50%;
  width: 60px; height: 50px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #3a4a5a 0%, #1a2a3a 100%);
  border-radius: 30% 30% 5% 5% / 40% 40% 5% 5%;
  box-shadow: 0 4px 12px rgba(0,0,0,0.6);
}
.scn-tomb-reflections .figure-body {
  position: absolute; bottom: 25%; left: 45%;
  width: 22px; height: 35px;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: tr-figure-sway 8s ease-in-out infinite;
  transform-origin: bottom center;
}
.scn-tomb-reflections .figure-head {
  position: absolute; bottom: 56%; left: calc(45% + 3px);
  width: 14px; height: 14px;
  background: #1a1a2a;
  border-radius: 50%;
  animation: tr-head-bob 8s ease-in-out infinite;
}
.scn-tomb-reflections .lantern-glow {
  position: absolute; bottom: 38%; left: 38%;
  width: 8px; height: 8px;
  background: radial-gradient(circle, #b08040 0%, transparent 70%);
  border-radius: 50%;
  box-shadow: 0 0 12px 3px #b08040, 0 0 24px 6px rgba(176,128,64,0.3);
  animation: tr-lantern-pulse 4s ease-in-out infinite alternate;
}
@keyframes tr-mist-far { 0% { opacity: 0.3; transform: scale(1) } 50% { opacity: 0.6; transform: scale(1.02) } 100% { opacity: 0.4; transform: scale(0.98) } }
@keyframes tr-mist-near { 0% { transform: translateY(0) } 50% { transform: translateY(-5px) } 100% { transform: translateY(0) } }
@keyframes tr-figure-sway { 0% { transform: rotate(-2deg) } 50% { transform: rotate(2deg) } 100% { transform: rotate(-1deg) } }
@keyframes tr-head-bob { 0% { transform: translateY(0) rotate(-1deg) } 50% { transform: translateY(-2px) rotate(1deg) } 100% { transform: translateY(0) rotate(0) } }
@keyframes tr-lantern-pulse { 0% { opacity: 0.5; box-shadow: 0 0 8px 2px #b08040, 0 0 16px 4px rgba(176,128,64,0.2) } 50% { opacity: 0.8; box-shadow: 0 0 18px 5px #c89860, 0 0 36px 10px rgba(200,152,96,0.4) } 100% { opacity: 0.6; box-shadow: 0 0 12px 3px #b08040, 0 0 20px 5px rgba(176,128,64,0.25) } }

/* scene: fear-revealed */
.scn-fear-revealed {
  background: linear-gradient(90deg, #1a1a2a 0%, #2a3a4a 50%, #1a1a2a 100%),
              radial-gradient(ellipse at 70% 30%, #3a4a5a 0%, transparent 60%);
}
.scn-fear-revealed .window {
  position: absolute; top: 15%; right: 10%;
  width: 50px; height: 70px;
  background: linear-gradient(180deg, #6a7a8a 0%, #4a5a6a 100%);
  border-radius: 5px;
  box-shadow: inset 0 0 10px rgba(200,210,220,0.1);
  animation: fr-window-pulse 6s ease-in-out infinite alternate;
}
.scn-fear-revealed .window-sill {
  position: absolute; top: calc(15% + 70px); right: 10%;
  width: 60px; height: 6px;
  background: #2a3a4a;
  border-radius: 2px;
}
.scn-fear-revealed .figure-teacher {
  position: absolute; bottom: 30%; left: 20%;
  width: 18px; height: 50px;
  background: linear-gradient(180deg, #2a3a4a 0%, #1a1a2a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: fr-teacher-shake 0.8s ease-in-out infinite;
  transform-origin: bottom center;
}
.scn-fear-revealed .figure-boy {
  position: absolute; bottom: 30%; right: 25%;
  width: 16px; height: 40px;
  background: linear-gradient(180deg, #2a3a4a 0%, #1a1a2a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: fr-boy-lean 4s ease-in-out infinite alternate;
  transform-origin: bottom center;
}
.scn-fear-revealed .shadow-teacher {
  position: absolute; bottom: 26%; left: 18%;
  width: 30px; height: 5px;
  background: rgba(0,0,0,0.4);
  border-radius: 50%;
  filter: blur(2px);
  animation: fr-shadow-tremble 0.8s ease-in-out infinite;
}
.scn-fear-revealed .shadow-boy {
  position: absolute; bottom: 26%; right: 23%;
  width: 26px; height: 5px;
  background: rgba(0,0,0,0.4);
  border-radius: 50%;
  filter: blur(2px);
  animation: fr-shadow-lean 4s ease-in-out infinite alternate;
}
.scn-fear-revealed .dust {
  position: absolute; top: 35%; left: 50%;
  width: 4px; height: 4px;
  background: rgba(200,210,220,0.3);
  border-radius: 50%;
  box-shadow: 0 0 6px 1px rgba(200,210,220,0.1);
  animation: fr-dust-drift 15s linear infinite;
}
@keyframes fr-window-pulse { 0% { opacity: 0.7 } 50% { opacity: 1 } 100% { opacity: 0.8 } }
@keyframes fr-teacher-shake { 0% { transform: translateX(0) rotate(0) } 25% { transform: translateX(2px) rotate(1deg) } 50% { transform: translateX(-2px) rotate(-1deg) } 75% { transform: translateX(1px) rotate(0) } 100% { transform: translateX(0) rotate(0) } }
@keyframes fr-boy-lean { 0% { transform: rotate(-3deg) translateY(0) } 50% { transform: rotate(0) translateY(-2px) } 100% { transform: rotate(3deg) translateY(0) } }
@keyframes fr-shadow-tremble { 0% { transform: translateX(0) } 25% { transform: translateX(2px) } 50% { transform: translateX(-2px) } 75% { transform: translateX(1px) } 100% { transform: translateX(0) } }
@keyframes fr-shadow-lean { 0% { transform: scaleX(1) } 50% { transform: scaleX(1.1) } 100% { transform: scaleX(0.9) } }
@keyframes fr-dust-drift { 0% { transform: translate(0, 0); opacity: 0 } 20% { opacity: 0.6 } 80% { opacity: 0.6 } 100% { transform: translate(40px, -20px); opacity: 0 } }

/* scene: unnatural-boy */
.scn-unnatural-boy {
  background: linear-gradient(180deg, #1a1a2a 0%, #2a2a3a 50%, #0a0a1a 100%),
              radial-gradient(ellipse at 50% 20%, #3a3a4a 0%, transparent 70%);
}
.scn-unnatural-boy .archway {
  position: absolute; top: 0; left: 50%;
  width: 100px; height: 100%;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #2a3a4a 0%, #1a1a2a 100%);
  border-radius: 30% 30% 0 0 / 40% 40% 0 0;
  box-shadow: inset 0 0 20px rgba(0,0,0,0.6);
  animation: ub-arch-pulse 12s ease-in-out infinite alternate;
}
.scn-unnatural-boy .figure-boy {
  position: absolute; bottom: 20%; left: 42%;
  width: 30px; height: 70px;
  background: linear-gradient(180deg, #2a3a4a 0%, #1a1a2a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: ub-boy-sway 6s ease-in-out infinite;
  transform-origin: bottom center;
}
.scn-unnatural-boy .figure-teacher {
  position: absolute; bottom: 20%; left: 55%;
  width: 18px; height: 45px;
  background: linear-gradient(180deg, #2a3a4a 0%, #1a1a2a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: ub-teacher-shake 1.2s ease-in-out infinite;
  transform-origin: bottom center;
}
.scn-unnatural-boy .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 12%;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 10% 10% 0 0 / 5% 5% 0 0;
}
.scn-unnatural-boy .shadow-boy {
  position: absolute; bottom: 14%; left: 40%;
  width: 50px; height: 8px;
  background: rgba(0,0,0,0.5);
  border-radius: 50%;
  filter: blur(3px);
  animation: ub-shadow-boy 6s ease-in-out infinite;
}
.scn-unnatural-boy .shadow-teacher {
  position: absolute; bottom: 14%; left: 53%;
  width: 30px; height: 6px;
  background: rgba(0,0,0,0.5);
  border-radius: 50%;
  filter: blur(2px);
  animation: ub-shadow-teacher 1.2s ease-in-out infinite;
}
.scn-unnatural-boy .clock {
  position: absolute; top: 12%; left: 50%;
  width: 20px; height: 20px;
  transform: translateX(-50%);
  background: radial-gradient(circle, #4a5a6a 0%, #2a3a4a 100%);
  border-radius: 50%;
  box-shadow: inset 0 0 4px rgba(0,0,0,0.5);
  animation: ub-clock-tick 4s ease-in-out infinite;
}
@keyframes ub-arch-pulse { 0% { opacity: 0.8 } 50% { opacity: 1 } 100% { opacity: 0.85 } }
@keyframes ub-boy-sway { 0% { transform: rotate(-4deg) translateY(0) } 25% { transform: rotate(2deg) translateY(-3px) } 50% { transform: rotate(-1deg) translateY(0) } 75% { transform: rotate(3deg) translateY(-2px) } 100% { transform: rotate(-4deg) translateY(0) } }
@keyframes ub-teacher-shake { 0% { transform: translateX(0) rotate(0) } 25% { transform: translateX(3px) rotate(2deg) } 50% { transform: translateX(-3px) rotate(-2deg) } 75% { transform: translateX(2px) rotate(1deg) } 100% { transform: translateX(0) rotate(0) } }
@keyframes ub-shadow-boy { 0% { transform: scaleX(1) } 25% { transform: scaleX(1.2) } 50% { transform: scaleX(0.9) } 75% { transform: scaleX(1.1) } 100% { transform: scaleX(1) } }
@keyframes ub-shadow-teacher { 0% { transform: translateX(0) } 25% { transform: translateX(3px) } 50% { transform: translateX(-3px) } 75% { transform: translateX(2px) } 100% { transform: translateX(0) } }
@keyframes ub-clock-tick { 0% { transform: scale(1) } 50% { transform: scale(1.05) } 100% { transform: scale(1) } }

.scn-whole-care-of-flora { background: linear-gradient(180deg, #fcf3e8 0%, #f4dec2 50%, #ecd7b4 100%), radial-gradient(ellipse at 30% 20%, rgba(255,250,240,1) 0%, rgba(255,245,220,0.6) 40%, transparent 70%); }
.scn-whole-care-of-flora .floor { position:absolute; bottom:0; left:0; right:0; height:35%; background: linear-gradient(180deg, #c89c6b 0%, #b0845a 100%); border-radius: 60% 60% 0 0 / 40% 40% 0 0; box-shadow: inset 0 10px 30px rgba(0,0,0,0.15); animation: wcf-floor 12s ease-in-out infinite alternate; }
.scn-whole-care-of-flora .window { position:absolute; top:10%; left:10%; width:80px; height:120px; background: radial-gradient(circle at 50% 30%, #fff, #fceec8); border: 6px solid #e0cba0; box-shadow: 0 0 40px rgba(255,240,200,0.6); border-radius: 4px; animation: wcf-glow 6s ease-in-out infinite alternate; }
.scn-whole-care-of-flora .sunbeam { position:absolute; top:5%; left:20%; width:200px; height:60px; background: linear-gradient(160deg, rgba(255,248,220,0.8) 0%, rgba(255,248,220,0) 100%); transform: rotate(-25deg); filter: blur(15px); border-radius: 50%; animation: wcf-beam 10s ease-in-out infinite alternate; }
.scn-whole-care-of-flora .figure-body { position:absolute; bottom:12%; left:55%; width:40px; height:50px; background: linear-gradient(180deg, #d4a373 0%, #b87b4a 100%); border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%; transform: rotate(-5deg); box-shadow: 0 4px 8px rgba(0,0,0,0.2); animation: wcf-body 7s ease-in-out infinite alternate; }
.scn-whole-care-of-flora .figure-head { position:absolute; bottom:30%; left:59%; width:28px; height:30px; background: radial-gradient(circle at 40% 40%, #f5d6c6, #dba282); border-radius: 50% 50% 45% 45% / 50% 50% 40% 40%; box-shadow: 0 2px 4px rgba(0,0,0,0.15); transform: rotate(3deg); animation: wcf-head 5s ease-in-out infinite; }
.scn-whole-care-of-flora .rug { position:absolute; bottom:8%; left:45%; width:100px; height:30px; background: radial-gradient(ellipse at center, #a88b6a 0%, #8b7355 100%); border-radius: 50%; opacity:0.7; box-shadow: 0 2px 10px rgba(0,0,0,0.2); animation: wcf-rug 8s ease-in-out infinite alternate; }
@keyframes wcf-glow { 0% { box-shadow: 0 0 30px rgba(255,240,200,0.5); } 50% { box-shadow: 0 0 50px rgba(255,240,200,0.9); } 100% { box-shadow: 0 0 35px rgba(255,240,200,0.6); } }
@keyframes wcf-beam { 0% { transform: rotate(-25deg) translateY(0); opacity:0.7; } 50% { transform: rotate(-23deg) translateY(-5px); opacity:1; } 100% { transform: rotate(-27deg) translateY(2px); opacity:0.6; } }
@keyframes wcf-head { 0% { transform: rotate(3deg) translateY(0); } 50% { transform: rotate(5deg) translateY(-2px); } 100% { transform: rotate(2deg) translateY(0); } }
@keyframes wcf-body { 0% { transform: rotate(-5deg) translateY(0); } 50% { transform: rotate(-6deg) translateY(-2px); } 100% { transform: rotate(-4deg) translateY(0); } }
@keyframes wcf-rug { 0% { transform: scale(1); } 50% { transform: scale(1.05); } 100% { transform: scale(1); } }
@keyframes wcf-floor { 0% { box-shadow: inset 0 10px 30px rgba(0,0,0,0.15); } 50% { box-shadow: inset 0 15px 35px rgba(0,0,0,0.25); } 100% { box-shadow: inset 0 10px 30px rgba(0,0,0,0.15); } }

.scn-supper-with-four-candles { background: linear-gradient(180deg, #2a1e17 0%, #4a3020 60%, #6e4a32 100%), radial-gradient(ellipse at center, rgba(255,140,0,0.2) 0%, transparent 70%); }
.scn-supper-with-four-candles .table { position:absolute; bottom:25%; left:20%; right:20%; height:30px; background: linear-gradient(90deg, #3a2a1a, #5a3a2a); border-radius: 8px; box-shadow: 0 4px 10px rgba(0,0,0,0.5); animation: swfc-table 6s ease-in-out infinite alternate; }
.scn-supper-with-four-candles .candle { position:absolute; bottom:28%; width:10px; height:45px; background: radial-gradient(circle at 50% 8%, rgba(255,230,120,1) 0%, rgba(255,150,20,0.8) 30%, transparent 55%), linear-gradient(to right, #e6c284 0%, #a86a2a 100%); border-radius: 2px 2px 0 0; box-shadow: 0 0 20px rgba(255,180,30,0.6); transform-origin: bottom center; }
.scn-supper-with-four-candles .candle-a { left: 25%; animation: swfc-flicker 2s infinite alternate; }
.scn-supper-with-four-candles .candle-b { left: 35%; animation: swfc-flicker 1.8s infinite alternate 0.5s; }
.scn-supper-with-four-candles .candle-c { left: 55%; animation: swfc-flicker 2.2s infinite alternate 0.3s; }
.scn-supper-with-four-candles .candle-d { left: 65%; animation: swfc-flicker 1.6s infinite alternate 0.7s; }
.scn-supper-with-four-candles .child-body { position:absolute; bottom:32%; right:22%; width:35px; height:40px; background: linear-gradient(180deg, #f5d6c6 0%, #dba282 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform: rotate(5deg); animation: swfc-body 5s ease-in-out infinite alternate; }
.scn-supper-with-four-candles .child-head { position:absolute; bottom:43%; right:25%; width:26px; height:28px; background: radial-gradient(circle at 40% 40%, #fce4d6, #dba282); border-radius: 50%; transform: rotate(0deg); animation: swfc-head 4s ease-in-out infinite; }
.scn-supper-with-four-candles .bib { position:absolute; bottom:38%; right:23%; width:22px; height:16px; background: #f8e6ca; border-radius: 50% 50% 50% 50% / 100% 100% 0% 0%; transform: rotate(-3deg); animation: swfc-bib 3s ease-in-out infinite alternate; }
@keyframes swfc-flicker { 0% { box-shadow: 0 0 18px rgba(255,180,30,0.5); transform: scaleY(1); } 50% { box-shadow: 0 0 28px rgba(255,210,40,0.9), 0 0 10px rgba(255,140,0,0.6); transform: scaleY(1.05); } 100% { box-shadow: 0 0 20px rgba(255,180,30,0.6); transform: scaleY(0.98); } }
@keyframes swfc-head { 0% { transform: rotate(0deg) translateY(0); } 50% { transform: rotate(-4deg) translateY(-2px); } 100% { transform: rotate(2deg) translateY(0); } }
@keyframes swfc-body { 0% { transform: rotate(5deg) translateY(0); } 50% { transform: rotate(7deg) translateY(-2px); } 100% { transform: rotate(4deg) translateY(0); } }
@keyframes swfc-bib { 0% { transform: rotate(-3deg) translateY(0); } 50% { transform: rotate(-1deg) translateY(-1px); } 100% { transform: rotate(-3deg) translateY(0); } }
@keyframes swfc-table { 0% { box-shadow: 0 4px 10px rgba(0,0,0,0.5); } 50% { box-shadow: 0 6px 14px rgba(0,0,0,0.6); } 100% { box-shadow: 0 4px 10px rgba(0,0,0,0.5); } }

.scn-remarkable-little-boy { background: linear-gradient(180deg, #2a1a15 0%, #402a20 60%, #5e3d2a 100%), radial-gradient(ellipse at 70% 80%, rgba(255,130,20,0.3) 0%, transparent 60%); }
.scn-remarkable-little-boy .fireplace { position:absolute; bottom:15%; left:15%; width:120px; height:80px; background: radial-gradient(ellipse at 50% 100%, rgba(255,120,20,0.6) 0%, rgba(200,80,0,0.2) 60%, transparent 100%), linear-gradient(180deg, #3a2a1a, #2a1a10); border-radius: 20px 20px 0 0; box-shadow: 0 0 40px rgba(255,100,0,0.3); animation: rlb-fire 4s ease-in-out infinite alternate; }
.scn-remarkable-little-boy .floor { position:absolute; bottom:0; left:0; right:0; height:30%; background: linear-gradient(180deg, #4a3520, #2a1a10); border-radius: 30% 30% 0 0 / 20% 20% 0 0; animation: rlb-floor 10s ease-in-out infinite alternate; }
.scn-remarkable-little-boy .figure-stand { position:absolute; bottom:18%; left:35%; width:25px; height:70px; background: linear-gradient(180deg, #6a4a3a 0%, #3a2a1a 100%); border-radius: 30% 30% 20% 20% / 60% 60% 30% 30%; transform: rotate(-2deg); animation: rlb-stand 5s ease-in-out infinite alternate; }
.scn-remarkable-little-boy .plate { position:absolute; bottom:45%; left:37%; width:20px; height:6px; background: #f8f0e0; border-radius: 50%; animation: rlb-plate 3s ease-in-out infinite alternate; }
.scn-remarkable-little-boy .chair { position:absolute; bottom:12%; right:20%; width:50px; height:60px; background: linear-gradient(180deg, #5a3a2a, #3a2a1a); border-radius: 10% 10% 20% 20% / 50% 50% 30% 30%; box-shadow: 0 4px 8px rgba(0,0,0,0.4); animation: rlb-chair 8s ease-in-out infinite alternate; }
.scn-remarkable-little-boy .figure-seated { position:absolute; bottom:25%; right:22%; width:30px; height:25px; background: linear-gradient(180deg, #d4a373, #b87b4a); border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%; animation: rlb-sit 4s ease-in-out infinite; }
.scn-remarkable-little-boy .boy-head { position:absolute; bottom:38%; right:26%; width:22px; height:24px; background: radial-gradient(circle at 40% 40%, #fce4d6, #dba282); border-radius: 50%; animation: rlb-head 3.5s ease-in-out infinite alternate; }
@keyframes rlb-fire { 0% { box-shadow: 0 0 30px rgba(255,100,0,0.3); opacity:0.9; } 50% { box-shadow: 0 0 50px rgba(255,140,0,0.5); opacity:1; } 100% { box-shadow: 0 0 35px rgba(255,100,0,0.35); opacity:0.9; } }
@keyframes rlb-floor { 0% { box-shadow: inset 0 8px 20px rgba(0,0,0,0.3); } 50% { box-shadow: inset 0 12px 28px rgba(0,0,0,0.4); } 100% { box-shadow: inset 0 8px 20px rgba(0,0,0,0.3); } }
@keyframes rlb-stand { 0% { transform: rotate(-2deg) translateY(0); } 50% { transform: rotate(-4deg) translateY(-2px); } 100% { transform: rotate(-1deg) translateY(0); } }
@keyframes rlb-plate { 0% { transform: translateY(0); } 50% { transform: translateY(-2px); } 100% { transform: translateY(0); } }
@keyframes rlb-chair { 0% { transform: scale(1); } 50% { transform: scale(1.02); } 100% { transform: scale(1); } }
@keyframes rlb-sit { 0% { transform: translateY(0); } 50% { transform: translateY(-1px); } 100% { transform: translateY(0); } }
@keyframes rlb-head { 0% { transform: rotate(0deg); } 50% { transform: rotate(4deg); } 100% { transform: rotate(-2deg); } }

.scn-carried-away-in-london { background: linear-gradient(180deg, #1a1410 0%, #302018 60%, #4a3020 100%), radial-gradient(ellipse at 50% 90%, rgba(255,100,20,0.25) 0%, transparent 70%); }
.scn-carried-away-in-london .window-city { position:absolute; top:8%; right:10%; width:100px; height:80px; background: radial-gradient(circle at 30% 40%, rgba(255,200,50,0.3) 0%, transparent 20%), linear-gradient(180deg, #201a20, #0a0a10); border: 4px solid #4a3a2a; border-radius: 4px; box-shadow: 0 0 10px rgba(0,0,0,0.5); animation: cail-city 20s ease-in-out infinite alternate; }
.scn-carried-away-in-london .fireplace { position:absolute; bottom:15%; left:10%; width:100px; height:70px; background: radial-gradient(ellipse at 50% 100%, rgba(255,120,20,0.5) 0%, rgba(200,80,0,0.2) 60%, transparent 100%), linear-gradient(180deg, #3a2a1a, #2a1a10); border-radius: 18px 18px 0 0; box-shadow: 0 0 35px rgba(255,100,0,0.3); animation: cail-fire 4s ease-in-out infinite alternate; }
.scn-carried-away-in-london .floor { position:absolute; bottom:0; left:0; right:0; height:25%; background: linear-gradient(180deg, #4a3520, #2a1a10); border-radius: 40% 40% 0 0 / 25% 25% 0 0; }
.scn-carried-away-in-london .armchair { position:absolute; bottom:10%; right:15%; width:50px; height:65px; background: linear-gradient(180deg, #5a3a2a, #3a2a1a); border-radius: 30% 30% 10% 10% / 60% 60% 30% 30%; box-shadow: 0 4px 10px rgba(0,0,0,0.5); animation: cail-chair 7s ease-in-out infinite alternate; }
.scn-carried-away-in-london .figure-sitting { position:absolute; bottom:20%; right:20%; width:28px; height:30px; background: linear-gradient(180deg, #d4a373, #b87b4a); border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%; animation: cail-sit 5s ease-in-out infinite; }
.scn-carried-away-in-london .figure-standing { position:absolute; bottom:12%; left:30%; width:22px; height:65px; background: linear-gradient(180deg, #6a4a3a, #3a2a1a); border-radius: 30% 30% 20% 20% / 60% 60% 30% 30%; transform: rotate(3deg); animation: cail-stand 4s ease-in-out infinite alternate; }
.scn-carried-away-in-london .table { position:absolute; bottom:20%; left:45%; width:40px; height:10px; background: linear-gradient(90deg, #3a2a1a, #5a3a2a); border-radius: 4px; box-shadow: 0 2px 6px rgba(0,0,0,0.4); }
.scn-carried-away-in-london .teacup { position:absolute; bottom:24%; left:52%; width:12px; height:8px; background: #f8f0e0; border-radius: 50% 50% 40% 40% / 60% 60% 30% 30%; box-shadow: 0 1px 3px rgba(0,0,0,0.3); animation: cail-teacup 3.5s ease-in-out infinite alternate; }
@keyframes cail-city { 0% { box-shadow: 0 0 10px rgba(0,0,0,0.5); opacity:0.9; } 50% { box-shadow: 0 0 18px rgba(50,40,30,0.8); opacity:1; } 100% { box-shadow: 0 0 12px rgba(0,0,0,0.6); opacity:0.9; } }
@keyframes cail-fire { 0% { box-shadow: 0 0 30px rgba(255,100,0,0.3); opacity:0.85; } 50% { box-shadow: 0 0 50px rgba(255,130,20,0.55); opacity:1; } 100% { box-shadow: 0 0 35px rgba(255,100,0,0.35); opacity:0.85; } }
@keyframes cail-chair { 0% { transform: scale(1); } 50% { transform: scale(1.03); } 100% { transform: scale(1); } }
@keyframes cail-sit { 0% { transform: translateY(0); } 50% { transform: translateY(-2px); } 100% { transform: translateY(0); } }
@keyframes cail-stand { 0% { transform: rotate(3deg) translateY(0); } 50% { transform: rotate(5deg) translateY(-2px); } 100% { transform: rotate(2deg) translateY(0); } }
@keyframes cail-teacup { 0% { transform: translateY(0); } 50% { transform: translateY(-1.5px); } 100% { transform: translateY(0); } }

.scn-bly-healthy-secure {
  background: 
    linear-gradient(180deg, #c8e0ff 0%, #e8f4ff 50%, #f0f8e8 100%),
    radial-gradient(ellipse at 70% 20%, #fffde0 0%, transparent 30%);
  position: relative;
  overflow: hidden;
}
.scn-bly-healthy-secure .window-frame {
  position: absolute;
  inset: 10% 10% 20% 10%;
  border: 8px solid #d4c4a0;
  border-radius: 4px;
  background: transparent;
  z-index: 2;
  animation: bh-frame-glow 6s ease-in-out infinite alternate;
}
.scn-bly-healthy-secure .window-pane {
  position: absolute;
  inset: 11.5% 11.5% 21.5% 11.5%;
  background: linear-gradient(180deg, #b0d4f0 0%, #d8e8c0 100%);
  border-radius: 2px;
  z-index: 1;
}
.scn-bly-healthy-secure .sky {
  position: absolute;
  top: 11.5%;
  left: 11.5%;
  right: 11.5%;
  height: 30%;
  background: linear-gradient(180deg, #a0c8f0 0%, #c8e0ff 100%);
  border-radius: 2px 2px 0 0;
  z-index: 0;
  animation: bh-sky-drift 20s ease-in-out infinite alternate;
}
.scn-bly-healthy-secure .hills {
  position: absolute;
  bottom: 21.5%;
  left: 11.5%;
  right: 11.5%;
  height: 25%;
  background: linear-gradient(180deg, #8aaa7a 0%, #5a7a4a 100%);
  border-radius: 40% 60% 0 0 / 80% 70% 0 0;
  z-index: 0;
  animation: bh-hills-sway 12s ease-in-out infinite alternate;
}
.scn-bly-healthy-secure .tree {
  position: absolute;
  bottom: 40%;
  left: 30%;
  width: 12px;
  height: 40px;
  background: radial-gradient(ellipse at 50% 20%, #3a5a2a 0%, #2a4a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  z-index: 0;
  animation: bh-tree-sway 8s ease-in-out infinite alternate;
}
.scn-bly-healthy-secure .sill {
  position: absolute;
  bottom: 21.5%;
  left: 10%;
  right: 10%;
  height: 3%;
  background: linear-gradient(180deg, #c4a888 0%, #a08868 100%);
  border-radius: 0 0 2px 2px;
  z-index: 3;
}
.scn-bly-healthy-secure .figure {
  position: absolute;
  bottom: 35%;
  left: 30%;
  width: 14px;
  height: 28px;
  background: linear-gradient(180deg, #3a2a2a 0%, #1a1a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  z-index: 4;
  animation: bh-figure-move 10s ease-in-out infinite alternate;
}

@keyframes bh-frame-glow {
  0% { box-shadow: 0 0 4px rgba(200,180,160,0.4); }
  50% { box-shadow: 0 0 8px rgba(200,180,160,0.8); }
  100% { box-shadow: 0 0 4px rgba(200,180,160,0.4); }
}
@keyframes bh-sky-drift {
  0% { transform: translateY(0); opacity: 0.8; }
  50% { transform: translateY(-2px); opacity: 1; }
  100% { transform: translateY(0); opacity: 0.8; }
}
@keyframes bh-hills-sway {
  0% { transform: translateY(0) rotate(-0.5deg); }
  50% { transform: translateY(2px) rotate(0.5deg); }
  100% { transform: translateY(0) rotate(-0.5deg); }
}
@keyframes bh-tree-sway {
  0% { transform: rotate(-1deg) scale(1); }
  50% { transform: rotate(2deg) scale(1.02); }
  100% { transform: rotate(-1deg) scale(1); }
}
@keyframes bh-figure-move {
  0% { transform: translateX(0); }
  50% { transform: translateX(5px); }
  100% { transform: translateX(0); }
}

.scn-supreme-authority-governess {
  background: 
    linear-gradient(180deg, #e8dcc8 0%, #c4b098 100%),
    radial-gradient(ellipse at 30% 50%, #fff0d0 0%, transparent 40%);
  position: relative;
  overflow: hidden;
}
.scn-supreme-authority-governess .room-bg {
  position: absolute;
  inset: 0;
  background: linear-gradient(180deg, #d4c4a8 0%, #b8a486 100%);
  z-index: 0;
}
.scn-supreme-authority-governess .window {
  position: absolute;
  top: 10%;
  left: 5%;
  width: 30%;
  height: 45%;
  background: linear-gradient(135deg, #c8e0ff 0%, #e8f4ff 100%);
  border: 6px solid #c4b098;
  border-radius: 3px;
  z-index: 1;
  animation: sg-window-glow 8s ease-in-out infinite alternate;
}
.scn-supreme-authority-governess .desk {
  position: absolute;
  bottom: 12%;
  left: 15%;
  width: 70%;
  height: 18%;
  background: linear-gradient(180deg, #8b7355 0%, #6b5a3e 100%);
  border-radius: 2px;
  z-index: 2;
  box-shadow: 0 -4px 6px rgba(0,0,0,0.2);
}
.scn-supreme-authority-governess .chair {
  position: absolute;
  bottom: 22%;
  left: 25%;
  width: 20%;
  height: 30%;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 30% 30% 10% 10% / 40% 40% 10% 10%;
  z-index: 1;
}
.scn-supreme-authority-governess .gov-figure {
  position: absolute;
  bottom: 30%;
  left: 30%;
  width: 16px;
  height: 32px;
  background: linear-gradient(180deg, #3a2a2a 0%, #1a1a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  z-index: 3;
  animation: sg-figure-rock 6s ease-in-out infinite alternate;
}
.scn-supreme-authority-governess .book {
  position: absolute;
  bottom: 24%;
  left: 45%;
  width: 20px;
  height: 14px;
  background: linear-gradient(180deg, #c4a868 0%, #a08050 100%);
  border-radius: 2px;
  transform: rotate(-5deg);
  z-index: 4;
  animation: sg-book-spin 10s ease-in-out infinite alternate;
}
.scn-supreme-authority-governess .lamp {
  position: absolute;
  bottom: 28%;
  left: 55%;
  width: 8px;
  height: 20px;
  background: linear-gradient(180deg, #a08060 0%, #806040 100%);
  border-radius: 40% 40% 10% 10% / 60% 60% 10% 10%;
  z-index: 4;
}
.scn-supreme-authority-governess .lamp::after {
  content: '';
  position: absolute;
  top: -4px;
  left: -4px;
  width: 16px;
  height: 16px;
  background: radial-gradient(circle, #ffe080 0%, rgba(255,224,128,0.2) 100%);
  border-radius: 50%;
  animation: sg-lamp-glow 4s ease-in-out infinite alternate;
}

@keyframes sg-window-glow {
  0% { box-shadow: 0 0 6px rgba(200,224,255,0.3); }
  50% { box-shadow: 0 0 12px rgba(200,224,255,0.7); }
  100% { box-shadow: 0 0 6px rgba(200,224,255,0.3); }
}
@keyframes sg-figure-rock {
  0% { transform: translateY(0) rotate(-1deg); }
  50% { transform: translateY(-1px) rotate(1deg); }
  100% { transform: translateY(0) rotate(-1deg); }
}
@keyframes sg-book-spin {
  0% { transform: rotate(-8deg); }
  50% { transform: rotate(-2deg); }
  100% { transform: rotate(-8deg); }
}
@keyframes sg-lamp-glow {
  0% { transform: scale(1); opacity: 0.7; }
  50% { transform: scale(1.1); opacity: 1; }
  100% { transform: scale(1); opacity: 0.7; }
}

/* big-house-spoils-travel */
.scn-big-house-spoils-travel {
  background:
    linear-gradient(180deg, #d4a373 0%, #b5835a 30%, #8c5a3e 70%, #4a2e1a 100%),
    radial-gradient(ellipse at 30% 20%, #f0d060 0%, transparent 60%);
}
.scn-big-house-spoils-travel .room-bg {
  position: absolute; inset: 0 0 40% 0;
  background: radial-gradient(ellipse at 50% 30%, #f5e6c8 0%, #c8a882 50%, #8b5e3c 100%);
  border-radius: 0 0 40% 40% / 0 0 20% 20%;
  box-shadow: inset 0 20px 40px rgba(0,0,0,0.3);
}
.scn-big-house-spoils-travel .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 40%;
  background: linear-gradient(180deg, #6a4a2e 0%, #3a2a1a 100%);
  border-radius: 0 0 20% 20%;
  box-shadow: inset 0 10px 30px rgba(0,0,0,0.5);
}
.scn-big-house-spoils-travel .window {
  position: absolute; top: 10%; left: 20%; width: 30%; height: 50%;
  background: linear-gradient(180deg, #ffe8b0 0%, #ffd080 50%, #e0a050 100%);
  border-radius: 10%;
  box-shadow: 0 0 60px 20px rgba(255,220,150,0.3);
  animation: bi1-glow 4s ease-in-out infinite alternate;
}
.scn-big-house-spoils-travel .trophy-left {
  position: absolute; top: 12%; left: 5%; width: 18%; height: 30%;
  background: radial-gradient(ellipse at 50% 30%, #c8a882 0%, #8b5e3c 70%, #4a2e1a 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%;
  box-shadow: 0 4px 12px rgba(0,0,0,0.4);
  animation: bi1-trophy 6s ease-in-out infinite;
}
.scn-big-house-spoils-travel .trophy-right {
  position: absolute; top: 14%; right: 8%; width: 16%; height: 28%;
  background: radial-gradient(ellipse at 50% 30%, #b89a6e 0%, #7a5030 70%, #3a2010 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%;
  box-shadow: 0 4px 12px rgba(0,0,0,0.4);
  animation: bi1-trophy 7s ease-in-out infinite reverse;
}
.scn-big-house-spoils-travel .cabinet {
  position: absolute; bottom: 42%; left: 50%; width: 40%; height: 20%;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #6a4a2e 0%, #4a3018 50%, #2a1a0a 100%);
  border-radius: 4% 4% 0 0;
  box-shadow: 0 8px 20px rgba(0,0,0,0.6);
  animation: bi1-cabinet 10s ease-in-out infinite;
}
.scn-big-house-spoils-travel .light-beam {
  position: absolute; top: 0; left: 18%; width: 35%; height: 70%;
  background: linear-gradient(135deg, rgba(255,230,180,0.4) 0%, rgba(255,200,100,0.2) 50%, transparent 100%);
  filter: blur(10px);
  animation: bi1-beam 5s ease-in-out infinite alternate;
}
@keyframes bi1-glow {
  0% { box-shadow: 0 0 40px 10px rgba(255,220,150,0.3); opacity: 0.9; }
  50% { box-shadow: 0 0 80px 30px rgba(255,240,200,0.6); opacity: 1; }
  100% { box-shadow: 0 0 50px 15px rgba(255,220,150,0.4); opacity: 0.95; }
}
@keyframes bi1-trophy {
  0% { transform: rotate(-2deg) scale(1); }
  25% { transform: rotate(1deg) scale(1.02); }
  50% { transform: rotate(0deg) scale(0.98); }
  75% { transform: rotate(3deg) scale(1.01); }
  100% { transform: rotate(-2deg) scale(1); }
}
@keyframes bi1-cabinet {
  0% { transform: translateX(-50%) scale(1); }
  50% { transform: translateX(-50%) scale(0.97); }
  100% { transform: translateX(-50%) scale(1); }
}
@keyframes bi1-beam {
  0% { opacity: 0.5; transform: scaleX(1) translateX(0); }
  50% { opacity: 0.8; transform: scaleX(1.05) translateX(5px); }
  100% { opacity: 0.6; transform: scaleX(0.95) translateX(-3px); }
}

/* children-heavy-on-hands */
.scn-children-heavy-on-hands {
  background:
    linear-gradient(180deg, #e0e8f0 0%, #c0d0e0 50%, #a0b8c8 100%),
    radial-gradient(ellipse at 70% 20%, #ffffff 0%, transparent 70%);
}
.scn-children-heavy-on-hands .bg {
  position: absolute; inset: 0;
  background: linear-gradient(135deg, #f0f4f8 0%, #d0dce8 50%, #b0c4d4 100%);
  box-shadow: inset 0 0 100px rgba(0,0,0,0.1);
}
.scn-children-heavy-on-hands .figure {
  position: absolute; bottom: 20%; left: 45%; width: 24%; height: 55%;
  background: radial-gradient(ellipse at 50% 40%, #2a2a3a 0%, #1a1a2a 70%, #0a0a1a 100%);
  border-radius: 40% 40% 20% 20% / 60% 60% 40% 40%;
  box-shadow: 0 20px 40px rgba(0,0,0,0.5);
  animation: ch1-tremble 2s ease-in-out infinite;
}
.scn-children-heavy-on-hands .child1 {
  position: absolute; bottom: 10%; left: 30%; width: 15%; height: 35%;
  background: radial-gradient(ellipse at 50% 40%, #3a3a4a 0%, #1a1a2a 70%);
  border-radius: 50% 50% 30% 30% / 70% 70% 30% 30%;
  animation: ch1-fidget 3s ease-in-out infinite;
}
.scn-children-heavy-on-hands .child2 {
  position: absolute; bottom: 12%; right: 30%; width: 16%; height: 33%;
  background: radial-gradient(ellipse at 50% 40%, #3a3a4a 0%, #1a1a2a 70%);
  border-radius: 50% 50% 30% 30% / 70% 70% 30% 30%;
  animation: ch1-fidget 3.5s ease-in-out infinite reverse;
}
.scn-children-heavy-on-hands .shadow {
  position: absolute; bottom: 0; left: 10%; right: 10%; height: 20%;
  background: linear-gradient(180deg, rgba(0,0,0,0.2) 0%, rgba(0,0,0,0.5) 100%);
  filter: blur(8px);
  animation: ch1-shadow-slide 6s ease-in-out infinite alternate;
}
.scn-children-heavy-on-hands .window {
  position: absolute; top: 5%; right: 8%; width: 30%; height: 40%;
  background: linear-gradient(135deg, #ffffff 0%, #e8f0f8 50%, #c0d0e0 100%);
  border-radius: 10%;
  box-shadow: 0 0 80px 30px rgba(255,255,255,0.4);
  animation: ch1-flicker 3s ease-in-out infinite alternate;
}
.scn-children-heavy-on-hands .edge-vignette {
  position: absolute; inset: 0;
  background: radial-gradient(ellipse at 50% 50%, transparent 50%, rgba(0,0,0,0.6) 100%);
  pointer-events: none;
  animation: ch1-pulse 5s ease-in-out infinite alternate;
}
@keyframes ch1-tremble {
  0% { transform: translate(0, 0) rotate(0deg); }
  25% { transform: translate(-2px, 1px) rotate(0.5deg); }
  50% { transform: translate(2px, -1px) rotate(-0.5deg); }
  75% { transform: translate(-1px, 2px) rotate(0.8deg); }
  100% { transform: translate(0, 0) rotate(0deg); }
}
@keyframes ch1-fidget {
  0% { transform: translate(0, 0) rotate(0deg) scale(1); }
  30% { transform: translate(3px, -2px) rotate(3deg) scale(0.95); }
  60% { transform: translate(-2px, 1px) rotate(-2deg) scale(1.02); }
  100% { transform: translate(0, 0) rotate(0deg) scale(1); }
}
@keyframes ch1-shadow-slide {
  0% { transform: translateX(-10px); opacity: 0.7; }
  50% { transform: translateX(10px); opacity: 1; }
  100% { transform: translateX(-5px); opacity: 0.8; }
}
@keyframes ch1-flicker {
  0% { opacity: 0.85; box-shadow: 0 0 60px 20px rgba(255,255,255,0.3); }
  50% { opacity: 1; box-shadow: 0 0 100px 40px rgba(255,255,255,0.6); }
  100% { opacity: 0.9; box-shadow: 0 0 70px 25px rgba(255,255,255,0.4); }
}
@keyframes ch1-pulse {
  0% { opacity: 0.6; }
  50% { opacity: 1; }
  100% { opacity: 0.7; }
}

.scn-supreme-authority-governess { background: linear-gradient(180deg, #e8e0d0 0%, #c8b8a0 35%, #a09080 100%), radial-gradient(ellipse at 50% 20%, #fef8e0 0%, transparent 70%); }
.scn-supreme-authority-governess .wall { position:absolute; inset:0 0 20% 0; background: linear-gradient(180deg, #d4c8b4 0%, #b8a894 100%); }
.scn-supreme-authority-governess .window-frame { position:absolute; top:2%; left:30%; width:40%; height:60%; background: linear-gradient(135deg, #bfa58a 0%, #8c735a 100%); border-radius:4px; box-shadow: inset 0 0 10px rgba(0,0,0,.2); animation: sag-frame 12s ease-in-out infinite alternate; }
.scn-supreme-authority-governess .window-pane { position:absolute; top:4%; left:33%; width:34%; height:54%; background: linear-gradient(180deg, #ddeeff 0%, #aac0e0 50%, #8899bb 100%); opacity:0.6; border-radius:2px; animation: sag-pane 8s ease-in-out infinite alternate; }
.scn-supreme-authority-governess .light-ray { position:absolute; top:10%; left:35%; width:30%; height:70%; background: radial-gradient(ellipse at 50% 0%, rgba(255,248,230,0.6) 0%, transparent 70%); transform-origin: top center; animation: sag-ray 6s ease-in-out infinite alternate; }
.scn-supreme-authority-governess .desk { position:absolute; bottom:20%; left:20%; right:20%; height:15%; background: linear-gradient(180deg, #8b6f4a 0%, #5c472e 100%); border-radius:6px 6px 0 0; box-shadow: 0 4px 8px rgba(0,0,0,.3); animation: sag-desk 10s ease-in-out infinite; }
.scn-supreme-authority-governess .figure { position:absolute; bottom:22%; left:45%; width:20px; height:50px; background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: sag-figure 4s ease-in-out infinite; }
.scn-supreme-authority-governess .book { position:absolute; bottom:22%; left:50%; width:24px; height:16px; background: linear-gradient(135deg, #4a3a1a 0%, #2a1a0a 100%); border-radius:2px; transform: rotate(-10deg); box-shadow: 1px 1px 3px rgba(0,0,0,.5); animation: sag-book 6s ease-in-out infinite; }
@keyframes sag-frame { 0% { transform: scaleX(1) } 50% { transform: scaleX(1.02) scaleY(1.01) } 100% { transform: scaleX(1) } }
@keyframes sag-pane { 0% { opacity:0.5; filter: brightness(1) } 50% { opacity:0.7; filter: brightness(1.05) } 100% { opacity:0.55; filter: brightness(1) } }
@keyframes sag-ray { 0% { transform: rotate(-2deg); opacity:0.5 } 50% { transform: rotate(1deg); opacity:0.8 } 100% { transform: rotate(0deg); opacity:0.6 } }
@keyframes sag-desk { 0% { transform: translateY(0) } 50% { transform: translateY(-1px) } 100% { transform: translateY(0) } }
@keyframes sag-figure { 0% { transform: translateX(0) rotate(-1deg) } 25% { transform: translateX(4px) rotate(0deg) } 50% { transform: translateX(8px) rotate(1deg) } 75% { transform: translateX(4px) rotate(0deg) } 100% { transform: translateX(0) rotate(0) } }
@keyframes sag-book { 0% { transform: rotate(-10deg) translateY(0) } 50% { transform: rotate(-8deg) translateY(-1px) } 100% { transform: rotate(-10deg) translateY(0) } }

.scn-bly-healthy-secure {
  background: 
    linear-gradient(180deg, #faf4e8 0%, #e3d5c8 60%, #c3b5a8 100%),
    radial-gradient(ellipse at 20% 30%, #fff8e7 0%, transparent 60%);
}
.scn-bly-healthy-secure .window-frame {
  position: absolute; left: 12%; top: 5%; width: 34%; height: 55%;
  background: linear-gradient(180deg, #8b7b6b 0%, #6b5b4b 100%);
  border-radius: 4% 4% 2% 2%;
  box-shadow: inset 0 0 20px rgba(0,0,0,.15), 0 4px 12px rgba(0,0,0,.2);
}
.scn-bly-healthy-secure .window-glass {
  position: absolute; left: 14%; top: 7%; width: 30%; height: 51%;
  background: linear-gradient(135deg, rgba(255,248,231,.6) 0%, rgba(163,193,214,.4) 80%);
  border-radius: 2%;
  animation: bhs-glow 5s ease-in-out infinite alternate;
}
.scn-bly-healthy-secure .sill {
  position: absolute; left: 10%; top: 58%; width: 38%; height: 3%;
  background: linear-gradient(180deg, #a09080 0%, #7a6a5a 100%);
  border-radius: 2px;
  box-shadow: 0 2px 6px rgba(0,0,0,.25);
}
.scn-bly-healthy-secure .plant {
  position: absolute; left: 20%; top: 52%; width: 16%; height: 30%;
  transform-origin: bottom center;
  animation: bhs-sway 8s ease-in-out infinite;
}
.scn-bly-healthy-secure .plant::before {
  content: ""; display: block; position: absolute; bottom: 0; left: 25%;
  width: 50%; height: 20%;
  background: linear-gradient(180deg, #7a6a5a 0%, #5a4a3a 100%);
  border-radius: 0 0 20% 20% / 0 0 40% 40%;
}
.scn-bly-healthy-secure .plant::after {
  content: ""; display: block; position: absolute; top: 0; left: 15%;
  width: 70%; height: 80%;
  background: radial-gradient(ellipse at 50% 80%, #6a8a5a 0%, #4a6a3a 70%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  filter: blur(2px);
}
.scn-bly-healthy-secure .chair {
  position: absolute; right: 18%; bottom: 12%; width: 22%; height: 40%;
  background: linear-gradient(180deg, #8b7b6b 0%, #5a4a3a 100%);
  border-radius: 30% 30% 10% 10% / 50% 50% 20% 20%;
  box-shadow: 0 6px 16px rgba(0,0,0,.3);
  transform-origin: bottom center;
  animation: bhs-bob 12s ease-in-out infinite;
}
.scn-bly-healthy-secure .figure {
  position: absolute; right: 28%; bottom: 18%; width: 8%; height: 22%;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0a00 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: bhs-breathe 6s ease-in-out infinite;
}
.scn-bly-healthy-secure .sunbeam {
  position: absolute; left: 15%; top: 8%; width: 40%; height: 90%;
  background: linear-gradient(135deg, rgba(255,248,231,.25) 0%, transparent 70%);
  clip-path: polygon(0 0, 60% 0, 100% 100%, 20% 100%);
  animation: bhs-beam 18s ease-in-out infinite alternate;
}
.scn-bly-healthy-secure .dust {
  position: absolute; width: 4px; height: 4px;
  background: rgba(255,248,231,.5);
  border-radius: 50%;
  filter: blur(1px);
}
.scn-bly-healthy-secure .dust-1 {
  left: 30%; top: 30%;
  animation: bhs-drift 40s linear infinite;
}
.scn-bly-healthy-secure .dust-2 {
  left: 60%; top: 50%;
  animation: bhs-drift 35s linear infinite 10s;
}

@keyframes bhs-glow {
  0%   { opacity: .6; }
  50%  { opacity: .85; box-shadow: 0 0 18px 4px rgba(255,248,231,.3); }
  100% { opacity: .7; }
}
@keyframes bhs-sway {
  0%,100% { transform: rotate(-1deg); }
  50%     { transform: rotate(1.5deg); }
}
@keyframes bhs-bob {
  0%,100% { transform: translateY(0); }
  50%     { transform: translateY(-4px); }
}
@keyframes bhs-breathe {
  0%,100% { transform: scaleY(1) translateY(0); }
  50%     { transform: scaleY(1.02) translateY(-1px); }
}
@keyframes bhs-beam {
  0%   { opacity: .4; transform: skewX(2deg); }
  50%  { opacity: .8; transform: skewX(-1deg); }
  100% { opacity: .5; transform: skewX(0deg); }
}
@keyframes bhs-drift {
  0%   { transform: translate(0, 0) scale(1); opacity: .5; }
  25%  { transform: translate(20px, -10px) scale(1.2); opacity: .7; }
  50%  { transform: translate(40px, -5px) scale(.9); opacity: .4; }
  75%  { transform: translate(60px, -15px) scale(1.1); opacity: .6; }
  100% { transform: translate(80px, -8px) scale(1); opacity: .5; }
}

.scn-children-heavy-on-hands {
  background: linear-gradient(180deg, #f5e6d0 0%, #e8d5b8 50%, #c4a882 100%),
              radial-gradient(ellipse at 60% 50%, #fff8f0 0%, transparent 60%);
  position: relative;
  overflow: hidden;
}

.scn-children-heavy-on-hands .wall {
  position: absolute;
  inset: 0 0 35% 0;
  background: linear-gradient(180deg, #e3d0b0 0%, #c8b090 100%);
  border-bottom: 4px solid #a08a70;
  animation: chh-wall 12s ease-in-out infinite alternate;
}

.scn-children-heavy-on-hands .window {
  position: absolute;
  top: 12%;
  left: 15%;
  width: 28%;
  height: 45%;
  background: radial-gradient(ellipse at 50% 50%, #fffde8 0%, #ffe8b0 70%, #c8a878 100%);
  border-radius: 4% / 6%;
  box-shadow: 0 0 40px 20px rgba(255, 230, 150, 0.6), inset 0 0 30px 10px #fff;
  animation: chh-window-glare 2s ease-in-out infinite alternate;
}

.scn-children-heavy-on-hands .light-ray {
  position: absolute;
  top: 30%;
  left: 18%;
  width: 60%;
  height: 70%;
  background: linear-gradient(135deg, rgba(255, 248, 200, 0.35) 0%, transparent 50%);
  clip-path: polygon(0% 0%, 100% 0%, 80% 100%, 0% 100%);
  animation: chh-light-sweep 3s ease-in-out infinite alternate;
}

.scn-children-heavy-on-hands .man {
  position: absolute;
  bottom: 35%;
  right: 18%;
  width: 14%;
  height: 55%;
  background: linear-gradient(180deg, #2a2218 0%, #1a1410 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%;
  transform-origin: bottom center;
  box-shadow: -8px 0 20px rgba(0,0,0,0.3);
  animation: chh-man-tremble 1s ease-in-out infinite;
}

.scn-children-heavy-on-hands .child {
  position: absolute;
  bottom: 35%;
  width: 10%;
  height: 18%;
  background: linear-gradient(180deg, #3a2a1a 0%, #1e140e 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
}

.scn-children-heavy-on-hands .child1 {
  left: 32%;
  animation: chh-child-shift 1.8s ease-in-out infinite;
}

.scn-children-heavy-on-hands .child2 {
  left: 48%;
  animation: chh-child-shift 1.8s ease-in-out infinite 0.3s;
}

.scn-children-heavy-on-hands .shadow {
  position: absolute;
  bottom: 35%;
  right: 18%;
  width: 20%;
  height: 8%;
  background: rgba(60, 40, 20, 0.3);
  border-radius: 50%;
  filter: blur(4px);
  animation: chh-shadow-shiver 1s ease-in-out infinite;
}

@keyframes chh-wall {
  0% { opacity: 0.9; }
  50% { opacity: 1; }
  100% { opacity: 0.85; }
}

@keyframes chh-window-glare {
  0% { box-shadow: 0 0 30px 15px rgba(255,230,150,0.5), inset 0 0 20px 8px #fff; }
  50% { box-shadow: 0 0 50px 30px rgba(255,240,180,0.8), inset 0 0 40px 15px #fff; }
  100% { box-shadow: 0 0 35px 18px rgba(255,230,150,0.6), inset 0 0 25px 10px #fff; }
}

@keyframes chh-light-sweep {
  0% { transform: rotate(-2deg) translateX(0); opacity: 0.7; }
  50% { transform: rotate(1deg) translateX(10px); opacity: 1; }
  100% { transform: rotate(-3deg) translateX(5px); opacity: 0.8; }
}

@keyframes chh-man-tremble {
  0% { transform: translateY(0) rotate(-0.5deg); }
  50% { transform: translateY(-2px) rotate(0.5deg); }
  100% { transform: translateY(1px) rotate(-0.3deg); }
}

@keyframes chh-child-shift {
  0% { transform: translateY(0) rotate(-2deg); }
  50% { transform: translateY(-3px) rotate(1deg); }
  100% { transform: translateY(1px) rotate(-1deg); }
}

@keyframes chh-shadow-shiver {
  0% { transform: scaleX(1) translateX(0); opacity: 0.3; }
  50% { transform: scaleX(1.05) translateX(3px); opacity: 0.5; }
  100% { transform: scaleX(0.98) translateX(-1px); opacity: 0.35; }
}

.scn-big-house-spoils-travel {
  background:
    linear-gradient(180deg, #d4b98a 0%, #b8956a 40%, #8a6a4a 100%),
    radial-gradient(ellipse at 50% 30%, #e8d0a0 0%, transparent 70%);
}
.scn-big-house-spoils-travel .bg-wall {
  position: absolute;
  inset: 0 0 18% 0;
  background: linear-gradient(135deg, #e0c8a0 0%, #b8956a 50%, #8a6a4a 100%);
  box-shadow: inset 0 0 60px rgba(0,0,0,0.15);
}
.scn-big-house-spoils-travel .bg-floor {
  position: absolute;
  bottom: 0; left: 0; right: 0; height: 18%;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 40% 60% 0 0 / 20% 30% 0 0;
}
.scn-big-house-spoils-travel .window {
  position: absolute;
  top: 16%; right: 12%;
  width: 90px; height: 110px;
  background: linear-gradient(135deg, #ffeeb0 0%, #ffd680 50%, #e8b050 100%);
  border-radius: 4px;
  box-shadow: inset 0 0 20px rgba(255,230,128,0.6), 0 0 40px rgba(255,230,128,0.3);
  animation: bh-glow 6s ease-in-out infinite alternate;
}
.scn-big-house-spoils-travel .curtain-left,
.scn-big-house-spoils-travel .curtain-right {
  position: absolute;
  top: 12%; width: 28px; height: 130px;
  background: linear-gradient(180deg, #8a6050 0%, #6a4030 50%, #4a2818 100%);
  border-radius: 20% 30% 0 0 / 40% 60% 0 0;
  box-shadow: 0 4px 8px rgba(0,0,0,0.3);
  animation: bh-curtain 10s ease-in-out infinite alternate;
}
.scn-big-house-spoils-travel .curtain-left { left: calc(100% - 12% - 90px - 28px); transform-origin: top left; }
.scn-big-house-spoils-travel .curtain-right { right: 12%; transform-origin: top right; }
.scn-big-house-spoils-travel .curtain-left { animation: bh-curtain 9s ease-in-out infinite alternate; }
.scn-big-house-spoils-travel .curtain-right { animation: bh-curtain 9s ease-in-out infinite alternate-reverse; }
.scn-big-house-spoils-travel .trophy {
  position: absolute;
  top: 8%; left: 55%;
  width: 50px; height: 60px;
  background: #2a1a0a;
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  box-shadow: 0 4px 8px rgba(0,0,0,0.5);
  animation: bh-trophy 12s ease-in-out infinite alternate;
}
.scn-big-house-spoils-travel .trophy::before,
.scn-big-house-spoils-travel .trophy::after {
  content: '';
  position: absolute;
  top: -15px;
  width: 8px; height: 28px;
  background: #2a1a0a;
  border-radius: 50% 50% 0 0 / 60% 60% 0 0;
  transform-origin: bottom center;
}
.scn-big-house-spoils-travel .trophy::before { left: 8px; transform: rotate(-25deg); }
.scn-big-house-spoils-travel .trophy::after { right: 8px; transform: rotate(25deg); }
.scn-big-house-spoils-travel .lamp {
  position: absolute;
  top: 6%; left: 50%;
  width: 16px; height: 12px;
  margin-left: -8px;
  background: radial-gradient(circle at 50% 50%, #ffd680 0%, #e8a830 50%, #a06020 100%);
  border-radius: 50%;
  box-shadow: 0 0 30px 8px rgba(255,214,128,0.5), 0 0 60px 16px rgba(255,214,128,0.2);
  animation: bh-lamp 4s ease-in-out infinite alternate;
}
.scn-big-house-spoils-travel .lamp::after {
  content: '';
  position: absolute;
  top: -20px; left: 50%;
  width: 2px; height: 20px;
  background: #2a1a0a;
  transform: translateX(-50%);
}
.scn-big-house-spoils-travel .hearth {
  position: absolute;
  bottom: 18%; left: 10%;
  width: 80px; height: 50px;
  background: linear-gradient(180deg, #c04020 0%, #a03018 40%, #6a2010 100%);
  border-radius: 30% 30% 0 0 / 50% 50% 0 0;
  box-shadow: inset 0 -10px 20px rgba(0,0,0,0.4), 0 0 40px 10px rgba(192,64,32,0.4);
  animation: bh-fire 2s ease-in-out infinite alternate;
}
.scn-big-house-spoils-travel .figure {
  position: absolute;
  bottom: 18%; left: 70%;
  width: 20px; height: 50px;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: bh-figure 8s ease-in-out infinite;
}
@keyframes bh-glow {
  0% { box-shadow: inset 0 0 20px rgba(255,230,128,0.6), 0 0 30px rgba(255,230,128,0.2); opacity: 0.9; }
  50% { box-shadow: inset 0 0 40px rgba(255,230,128,0.9), 0 0 60px rgba(255,230,128,0.4); opacity: 1; }
  100% { box-shadow: inset 0 0 25px rgba(255,230,128,0.7), 0 0 40px rgba(255,230,128,0.3); opacity: 0.95; }
}
@keyframes bh-curtain {
  0% { transform: scaleX(1) scaleY(1); }
  50% { transform: scaleX(0.95) scaleY(1.02); }
  100% { transform: scaleX(1) scaleY(1); }
}
@keyframes bh-trophy {
  0% { transform: rotate(-2deg) translateY(0); }
  50% { transform: rotate(0deg) translateY(-2px); }
  100% { transform: rotate(2deg) translateY(0); }
}
@keyframes bh-lamp {
  0% { transform: rotate(-5deg) translateY(0); }
  50% { transform: rotate(5deg) translateY(-2px); }
  100% { transform: rotate(-5deg) translateY(0); }
}
@keyframes bh-fire {
  0% { opacity: 0.8; transform: scaleY(1) scaleX(1); }
  50% { opacity: 1; transform: scaleY(1.05) scaleX(0.95); }
  100% { opacity: 0.9; transform: scaleY(0.98) scaleX(1.02); }
}
@keyframes bh-figure {
  0% { transform: translateX(0) rotate(0deg); }
  25% { transform: translateX(4px) rotate(-1deg); }
  50% { transform: translateX(8px) rotate(0deg); }
  75% { transform: translateX(4px) rotate(1deg); }
  100% { transform: translateX(0) rotate(0deg); }
}
/* end per-scene blocks */

/* ============ tier A ============ */
/* per-scene blocks (EXP step_scenes) */
/* ========== planning-departure (pld) ========== */
.scn-planning-departure {
  background:
    radial-gradient(ellipse at 40% 60%, #2a2220 0%, #1a1615 50%, #0d0a09 100%),
    linear-gradient(180deg, #2e2520 0%, #1a1615 60%, #0f0c0b 100%);
}
.scn-planning-departure .wall-bg {
  position: absolute;
  inset: 0 0 25% 0;
  background: linear-gradient(180deg, #2e2520 0%, #1e1815 60%, #15100e 100%);
  animation: pld-wall 12s ease-in-out infinite alternate;
}
.scn-planning-departure .window-pane {
  position: absolute;
  top: 12%;
  left: 65%;
  width: 60px;
  height: 80px;
  background: linear-gradient(180deg, #1a2a35 0%, #0d1520 100%);
  border: 4px solid #2a1f1a;
  border-radius: 2px;
  box-shadow: inset 0 0 15px rgba(80, 120, 160, 0.15), 0 0 8px rgba(60, 90, 120, 0.08);
  animation: pld-window 8s ease-in-out infinite alternate;
}
.scn-planning-departure .lamp-glow {
  position: absolute;
  top: 40%;
  left: 38%;
  width: 60px;
  height: 70px;
  background: radial-gradient(ellipse at 50% 30%, #d4a060 0%, #b07838 30%, #5a3020 70%, transparent 100%);
  border-radius: 50%;
  filter: blur(8px);
  box-shadow: 0 0 60px 30px rgba(180, 110, 40, 0.3), 0 0 100px 50px rgba(120, 70, 30, 0.15);
  animation: pld-lamp 4s ease-in-out infinite alternate;
}
.scn-planning-departure .table {
  position: absolute;
  bottom: 22%;
  left: 25%;
  width: 50%;
  height: 12%;
  background: linear-gradient(180deg, #3a2a20 0%, #2a1a12 100%);
  border-radius: 4px 4px 0 0;
  box-shadow: 0 -6px 20px rgba(0,0,0,0.6);
  animation: pld-table 6s ease-in-out infinite alternate;
}
.scn-planning-departure .figure-left {
  position: absolute;
  bottom: 28%;
  left: 28%;
  width: 24px;
  height: 52px;
  background: linear-gradient(180deg, #1a1615 0%, #0d0a09 100%);
  border-radius: 45% 55% 40% 40% / 50% 50% 45% 45%;
  transform-origin: bottom center;
  box-shadow: 0 4px 12px rgba(0,0,0,0.5);
  animation: pld-figure-l 3s ease-in-out infinite alternate;
}
.scn-planning-departure .figure-right {
  position: absolute;
  bottom: 28%;
  left: 52%;
  width: 22px;
  height: 48px;
  background: linear-gradient(180deg, #1a1615 0%, #0d0a09 100%);
  border-radius: 55% 45% 40% 40% / 50% 50% 45% 45%;
  transform-origin: bottom center;
  box-shadow: 0 4px 12px rgba(0,0,0,0.5);
  animation: pld-figure-r 3.5s ease-in-out infinite alternate;
}
.scn-planning-departure .shadow-pool {
  position: absolute;
  bottom: 15%;
  left: 20%;
  width: 60%;
  height: 20%;
  background: radial-gradient(ellipse at 50% 0%, rgba(0,0,0,0.6) 0%, transparent 100%);
  filter: blur(12px);
  animation: pld-shadow 7s ease-in-out infinite alternate;
}
.scn-planning-departure .dust-motes {
  position: absolute;
  top: 25%;
  left: 35%;
  width: 80px;
  height: 80px;
  background: radial-gradient(circle at 40% 30%, rgba(200, 170, 120, 0.08) 0%, transparent 60%);
  filter: blur(4px);
  animation: pld-dust 8s ease-in-out infinite alternate;
}
@keyframes pld-wall {
  0% { opacity: 0.85; }
  50% { opacity: 1; }
  100% { opacity: 0.9; }
}
@keyframes pld-window {
  0% { transform: scaleY(1); opacity: 0.7; }
  50% { transform: scaleY(1.02); opacity: 0.85; }
  100% { transform: scaleY(0.98); opacity: 0.75; }
}
@keyframes pld-lamp {
  0% { transform: scale(0.95); filter: blur(8px) brightness(0.9); }
  50% { transform: scale(1.05); filter: blur(7px) brightness(1.1); }
  100% { transform: scale(0.98); filter: blur(9px) brightness(0.95); }
}
@keyframes pld-table {
  0% { transform: translateY(0); }
  50% { transform: translateY(-1px); }
  100% { transform: translateY(0); }
}
@keyframes pld-figure-l {
  0% { transform: rotate(-2deg) translateX(0); }
  50% { transform: rotate(1deg) translateX(2px); }
  100% { transform: rotate(-1deg) translateX(0); }
}
@keyframes pld-figure-r {
  0% { transform: rotate(1deg) translateX(0); }
  50% { transform: rotate(-2deg) translateX(-2px); }
  100% { transform: rotate(0deg) translateX(0); }
}
@keyframes pld-shadow {
  0% { opacity: 0.7; transform: scaleY(1); }
  50% { opacity: 0.9; transform: scaleY(1.05); }
  100% { opacity: 0.75; transform: scaleY(0.98); }
}
@keyframes pld-dust {
  0% { transform: translate(0, 0) scale(1); opacity: 0.5; }
  33% { transform: translate(5px, -8px) scale(1.1); opacity: 0.7; }
  66% { transform: translate(-3px, -4px) scale(0.95); opacity: 0.6; }
  100% { transform: translate(2px, -6px) scale(1.05); opacity: 0.5; }
}

/* ========== alone-with-miles (awm) ========== */
.scn-alone-with-miles {
  background:
    radial-gradient(ellipse at 50% 30%, #1a1a28 0%, #0e0e18 50%, #080810 100%),
    linear-gradient(180deg, #1e1e30 0%, #121220 60%, #0a0a14 100%);
}
.scn-alone-with-miles .corridor-bg {
  position: absolute;
  inset: 0 0 20% 0;
  background: linear-gradient(90deg, #18182a 0%, #202038 40%, #18182a 100%);
  animation: awm-corridor 14s ease-in-out infinite alternate;
}
.scn-alone-with-miles .archway {
  position: absolute;
  bottom: 18%;
  left: 30%;
  width: 40%;
  height: 50%;
  border: 3px solid #2a2a40;
  border-radius: 50% 50% 0 0 / 30% 30% 0 0;
  background: linear-gradient(180deg, transparent 0%, #0a0a14 100%);
  box-shadow: inset 0 0 30px rgba(0,0,0,0.6);
  animation: awm-arch 10s ease-in-out infinite alternate;
}
.scn-alone-with-miles .window-door {
  position: absolute;
  top: 10%;
  left: 60%;
  width: 50px;
  height: 90px;
  background: linear-gradient(180deg, #1e2a38 0%, #0d1520 100%);
  border: 3px solid #2a2030;
  border-radius: 2px;
  box-shadow: inset 0 0 20px rgba(40, 60, 90, 0.2), 0 0 10px rgba(40, 60, 90, 0.1);
  animation: awm-door 8s ease-in-out infinite alternate;
}
.scn-alone-with-miles .carriage-shadow {
  position: absolute;
  top: 15%;
  left: 62%;
  width: 30px;
  height: 35px;
  background: linear-gradient(180deg, #0a0a12 0%, #12121a 100%);
  border-radius: 30% 30% 20% 20% / 40% 40% 20% 20%;
  box-shadow: 0 0 20px rgba(0,0,0,0.5);
  animation: awm-carriage 12s ease-in-out infinite alternate;
}
.scn-alone-with-miles .woman-figure {
  position: absolute;
  bottom: 20%;
  left: 32%;
  width: 22px;
  height: 55px;
  background: linear-gradient(180deg, #1a1a2a 0%, #0e0e1a 100%);
  border-radius: 45% 55% 40% 40% / 50% 50% 45% 45%;
  transform-origin: bottom center;
  box-shadow: 0 4px 15px rgba(0,0,0,0.6);
  animation: awm-woman 4s ease-in-out infinite alternate;
}
.scn-alone-with-miles .boy-figure {
  position: absolute;
  bottom: 20%;
  left: 40%;
  width: 16px;
  height: 35px;
  background: linear-gradient(180deg, #1a1a2a 0%, #0e0e1a 100%);
  border-radius: 50% 50% 40% 40% / 55% 55% 40% 40%;
  transform-origin: bottom center;
  box-shadow: 0 4px 12px rgba(0,0,0,0.5);
  animation: awm-boy 4.5s ease-in-out infinite alternate;
}
.scn-alone-with-miles .floor-light {
  position: absolute;
  bottom: 12%;
  left: 28%;
  width: 44%;
  height: 18%;
  background: radial-gradient(ellipse at 50% 0%, rgba(60, 70, 100, 0.08) 0%, transparent 100%);
  filter: blur(10px);
  animation: awm-floor 9s ease-in-out infinite alternate;
}
.scn-alone-with-miles .curtain-drape {
  position: absolute;
  top: 8%;
  left: 58%;
  width: 8px;
  height: 50px;
  background: linear-gradient(180deg, #2a2030 0%, #1a1420 100%);
  border-radius: 4px;
  box-shadow: 2px 0 8px rgba(0,0,0,0.4);
  animation: awm-curtain 6s ease-in-out infinite alternate;
}
@keyframes awm-corridor {
  0% { opacity: 0.8; }
  50% { opacity: 1; }
  100% { opacity: 0.85; }
}
@keyframes awm-arch {
  0% { transform: scaleX(1) translateY(0); }
  50% { transform: scaleX(1.02) translateY(-2px); }
  100% { transform: scaleX(0.98) translateY(0); }
}
@keyframes awm-door {
  0% { transform: scaleY(1); opacity: 0.7; }
  50% { transform: scaleY(1.03); opacity: 0.85; }
  100% { transform: scaleY(0.97); opacity: 0.75; }
}
@keyframes awm-carriage {
  0% { transform: translateX(0) scale(1); opacity: 0.4; }
  50% { transform: translateX(-8px) scale(0.95); opacity: 0.6; }
  100% { transform: translateX(5px) scale(1.02); opacity: 0.35; }
}
@keyframes awm-woman {
  0% { transform: rotate(-1deg) translateY(0); }
  33% { transform: rotate(0deg) translateY(-1px); }
  66% { transform: rotate(2deg) translateY(-2px); }
  100% { transform: rotate(-1deg) translateY(0); }
}
@keyframes awm-boy {
  0% { transform: rotate(1deg) translateY(0); }
  33% { transform: rotate(-1deg) translateY(-1px); }
  66% { transform: rotate(0deg) translateY(-2px); }
  100% { transform: rotate(1deg) translateY(0); }
}
@keyframes awm-floor {
  0% { opacity: 0.4; transform: scaleX(1); }
  50% { opacity: 0.6; transform: scaleX(1.05); }
  100% { opacity: 0.45; transform: scaleX(0.98); }
}
@keyframes awm-curtain {
  0% { transform: translateX(0) rotate(0deg); }
  50% { transform: translateX(2px) rotate(2deg); }
  100% { transform: translateX(-1px) rotate(-1deg); }
}

/* ========== final-confrontation (fcn) ========== */
.scn-final-confrontation {
  background:
    radial-gradient(ellipse at 40% 50%, #4a4038 0%, #2e2822 50%, #1a1614 100%),
    linear-gradient(180deg, #5a4e44 0%, #3a322c 60%, #221e1a 100%);
}
.scn-final-confrontation .hall-bg {
  position: absolute;
  inset: 0 0 18% 0;
  background: linear-gradient(180deg, #4a4038 0%, #2e2822 40%, #1a1614 100%);
  animation: fcn-hall 15s ease-in-out infinite alternate;
}
.scn-final-confrontation .bright-window {
  position: absolute;
  top: 8%;
  left: 45%;
  width: 70px;
  height: 100px;
  background: linear-gradient(180deg, #e8e0d0 0%, #c8c0b0 100%);
  border: 5px solid #3a3028;
  border-radius: 3px;
  box-shadow: inset 0 0 40px rgba(220, 210, 190, 0.5), 0 0 60px 20px rgba(220, 210, 190, 0.2);
  animation: fcn-window 6s ease-in-out infinite alternate;
}
.scn-final-confrontation .table-top {
  position: absolute;
  bottom: 18%;
  left: 30%;
  width: 40%;
  height: 10%;
  background: linear-gradient(180deg, #4a3a30 0%, #2e221a 100%);
  border-radius: 4px 4px 0 0;
  box-shadow: 0 -4px 20px rgba(0,0,0,0.5);
  transform: perspective(200px) rotateX(2deg);
  animation: fcn-table 7s ease-in-out infinite alternate;
}
.scn-final-confrontation .letter-paper {
  position: absolute;
  bottom: 22%;
  left: 46%;
  width: 22px;
  height: 28px;
  background: linear-gradient(135deg, #d8d0c0 0%, #c0b8a8 50%, #b0a898 100%);
  border-radius: 1px;
  box-shadow: 0 2px 8px rgba(0,0,0,0.3);
  transform: rotate(8deg);
  animation: fcn-letter 4s ease-in-out infinite alternate;
}
.scn-final-confrontation .figure-accuser {
  position: absolute;
  bottom: 20%;
  left: 30%;
  width: 24px;
  height: 58px;
  background: linear-gradient(180deg, #1a1a1a 0%, #0e0e0e 100%);
  border-radius: 45% 55% 40% 40% / 50% 50% 45% 45%;
  transform-origin: bottom center;
  box-shadow: 0 4px 15px rgba(0,0,0,0.5);
  animation: fcn-accuse 3.5s ease-in-out infinite alternate;
}
.scn-final-confrontation .figure-defiant {
  position: absolute;
  bottom: 20%;
  left: 52%;
  width: 22px;
  height: 54px;
  background: linear-gradient(180deg, #1a1a1a 0%, #0e0e0e 100%);
  border-radius: 55% 45% 40% 40% / 50% 50% 45% 45%;
  transform-origin: bottom center;
  box-shadow: 0 4px 15px rgba(0,0,0,0.5);
  animation: fcn-defiant 4s ease-in-out infinite alternate;
}
.scn-final-confrontation .shadow-stripe {
  position: absolute;
  top: 0;
  left: 20%;
  width: 3px;
  height: 100%;
  background: linear-gradient(180deg, rgba(0,0,0,0.4) 0%, rgba(0,0,0,0.1) 40%, rgba(0,0,0,0.3) 100%);
  filter: blur(2px);
  animation: fcn-stripe 8s ease-in-out infinite alternate;
}
.scn-final-confrontation .chandelier-glint {
  position: absolute;
  top: 2%;
  left: 48%;
  width: 40px;
  height: 30px;
  background: radial-gradient(ellipse at 50% 60%, #e8d8b0 0%, #c8b890 30%, #a89870 60%, transparent 100%);
  border-radius: 50%;
  filter: blur(6px);
  box-shadow: 0 0 60px 30px rgba(200, 180, 140, 0.2);
  animation: fcn-glint 5s ease-in-out infinite alternate;
}
@keyframes fcn-hall {
  0% { opacity: 0.9; }
  50% { opacity: 1; }
  100% { opacity: 0.92; }
}
@keyframes fcn-window {
  0% { transform: scaleX(1); filter: brightness(0.95); }
  50% { transform: scaleX(1.02); filter: brightness(1.05); }
  100% { transform: scaleX(0.98); filter: brightness(0.98); }
}
@keyframes fcn-table {
  0% { transform: perspective(200px) rotateX(2deg) translateY(0); }
  50% { transform: perspective(200px) rotateX(2.5deg) translateY(-1px); }
  100% { transform: perspective(200px) rotateX(1.8deg) translateY(0); }
}
@keyframes fcn-letter {
  0% { transform: rotate(8deg) scale(1); }
  50% { transform: rotate(10deg) scale(1.03); }
  100% { transform: rotate(6deg) scale(0.97); }
}
@keyframes fcn-accuse {
  0% { transform: rotate(-3deg) translateX(0); box-shadow: 0 4px 15px rgba(0,0,0,0.5); }
  50% { transform: rotate(0deg) translateX(3px); box-shadow: 0 4px 20px rgba(0,0,0,0.6); }
  100% { transform: rotate(-2deg) translateX(0); box-shadow: 0 4px 15px rgba(0,0,0,0.5); }
}
@keyframes fcn-defiant {
  0% { transform: rotate(2deg) translateX(0); }
  50% { transform: rotate(-1deg) translateX(-2px); }
  100% { transform: rotate(1deg) translateX(0); }
}
@keyframes fcn-stripe {
  0% { opacity: 0.4; transform: scaleX(1); }
  50% { opacity: 0.6; transform: scaleX(1.2); }
  100% { opacity: 0.45; transform: scaleX(0.9); }
}
@keyframes fcn-glint {
  0% { transform: scale(0.95); filter: blur(6px) brightness(0.9); }
  50% { transform: scale(1.08); filter: blur(5px) brightness(1.1); }
  100% { transform: scale(0.98); filter: blur(7px) brightness(0.95); }
}

.scn-idyllic-days {
  background:
    linear-gradient(180deg, #87CEEB 0%, #B0E0E6 40%, #F0E68C 70%, #DEB887 100%),
    radial-gradient(ellipse at 50% 0%, #FFF8DC 0%, transparent 70%);
}

.scn-idyllic-days .sky {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(180deg, #B0E0E6 0%, #87CEEB 60%, transparent 100%);
  animation: idy-sky 15s ease-in-out infinite alternate;
}
.scn-idyllic-days .sun {
  position: absolute; top: 8%; left: 70%;
  width: 80px; height: 80px;
  background: radial-gradient(circle, #FFF8DC 0%, #FFD700 60%, transparent 100%);
  border-radius: 50%;
  box-shadow: 0 0 80px 40px rgba(255, 215, 0, 0.3);
  animation: idy-sun-pulse 20s ease-in-out infinite;
}
.scn-idyllic-days .hills {
  position: absolute; bottom: 30%; left: 0; right: 0; height: 20%;
  background: linear-gradient(180deg, #6B8E23 0%, #556B2F 100%);
  border-radius: 60% 40% 0 0 / 90% 70% 0 0;
  box-shadow: inset 0 8px 20px rgba(0,0,0,0.3);
  animation: idy-hills 18s ease-in-out infinite alternate;
}
.scn-idyllic-days .meadow {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #7CFC00 0%, #228B22 60%, #006400 100%);
  border-radius: 0 0 20% 20%;
}
.scn-idyllic-days .tree {
  position: absolute; bottom: 20%; left: 25%;
  width: 120px; height: 160px;
  background: linear-gradient(135deg, #228B22 0%, #006400 100%);
  border-radius: 80% 20% 50% 50% / 60% 40% 60% 40%;
  box-shadow: -10px 0 20px rgba(0,0,0,0.2);
  transform: rotate(-3deg);
  animation: idy-sway 10s ease-in-out infinite;
}
.scn-idyllic-days .fence {
  position: absolute; bottom: 10%; left: 0; right: 0; height: 2px;
  background: repeating-linear-gradient(90deg, #8B4513 0px, #8B4513 4px, transparent 4px, transparent 12px);
  box-shadow: 0 4px 0 #A0522D;
  animation: idy-fence 4s ease-in-out infinite;
}
.scn-idyllic-days .figure {
  position: absolute; bottom: 16%; left: 60%;
  width: 20px; height: 40px;
  background: linear-gradient(180deg, #D2B48C 0%, #A0522D 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: idy-walk 6s ease-in-out infinite;
}

@keyframes idy-sky { 0% { opacity:0.9 } 50% { opacity:1 } 100% { opacity:0.85 } }
@keyframes idy-sun-pulse { 0% { transform: scale(1); box-shadow: 0 0 60px 30px rgba(255,215,0,0.2); } 50% { transform: scale(1.05); box-shadow: 0 0 100px 50px rgba(255,215,0,0.4); } 100% { transform: scale(1); box-shadow: 0 0 60px 30px rgba(255,215,0,0.2); } }
@keyframes idy-hills { 0% { transform: translateY(0) scaleY(1); } 50% { transform: translateY(-4px) scaleY(1.02); } 100% { transform: translateY(0) scaleY(1); } }
@keyframes idy-sway { 0% { transform: rotate(-3deg); } 50% { transform: rotate(2deg); } 100% { transform: rotate(-3deg); } }
@keyframes idy-fence { 0% { opacity:0.9; } 50% { opacity:1; } 100% { opacity:0.9; } }
@keyframes idy-walk { 0% { transform: translateX(0) translateY(0) rotate(-2deg); } 25% { transform: translateX(8px) translateY(-2px) rotate(2deg); } 50% { transform: translateX(16px) translateY(0) rotate(-1deg); } 75% { transform: translateX(24px) translateY(-2px) rotate(1deg); } 100% { transform: translateX(32px) translateY(0) rotate(0); } }

/* ----- scene 2 ----- */
.scn-second-apparition-window {
  background:
    linear-gradient(135deg, #2c2c3a 0%, #1a1a2e 50%, #0f0f1a 100%),
    radial-gradient(ellipse at 50% 80%, #2a2a3a 0%, transparent 80%);
}

.scn-second-apparition-window .wall {
  position: absolute; inset: 10% 10% 10% 10%;
  background: linear-gradient(180deg, #3a3a4a 0%, #2a2a38 100%);
  border-radius: 2%;
  box-shadow: inset 0 0 40px rgba(0,0,0,0.5);
  animation: sa-dim 12s ease-in-out infinite alternate;
}
.scn-second-apparition-window .window-frame {
  position: absolute; top: 15%; left: 30%; width: 40%; height: 50%;
  background: #1a1a2a;
  border: 8px solid #4a4a5a;
  border-radius: 4px;
  box-shadow: 0 0 20px rgba(0,0,0,0.7);
}
.scn-second-apparition-window .window-glass {
  position: absolute; top: 17%; left: 32%; width: 36%; height: 46%;
  background: radial-gradient(ellipse, rgba(200,210,220,0.3) 0%, rgba(100,120,140,0.5) 70%);
  border-radius: 2px;
  box-shadow: inset 0 0 30px rgba(255,255,255,0.1);
  animation: sa-glass-flicker 6s ease-in-out infinite;
}
.scn-second-apparition-window .outside-figure {
  position: absolute; top: 30%; left: 45%; width: 30px; height: 50px;
  background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform: translateX(-50%);
  box-shadow: 0 0 10px rgba(0,0,0,0.5);
  animation: sa-figure-appear 8s ease-in-out infinite alternate, sa-figure-twitch 2s steps(2) infinite;
}
.scn-second-apparition-window .curtain.left {
  position: absolute; top: 14%; left: 28%; width: 10%; height: 52%;
  background: linear-gradient(180deg, #5a3a2a 0%, #3a1a0a 100%);
  border-radius: 0 30% 30% 0;
  animation: sa-curtain-left 10s ease-in-out infinite alternate;
}
.scn-second-apparition-window .curtain.right {
  position: absolute; top: 14%; right: 28%; width: 10%; height: 52%;
  background: linear-gradient(180deg, #5a3a2a 0%, #3a1a0a 100%);
  border-radius: 30% 0 0 30%;
  animation: sa-curtain-right 10s ease-in-out infinite alternate;
}

@keyframes sa-dim { 0% { opacity:0.8; } 50% { opacity:0.9; } 100% { opacity:0.75; } }
@keyframes sa-glass-flicker { 0% { opacity:0.6; box-shadow: 0 0 20px rgba(255,255,255,0.05); } 50% { opacity:0.9; box-shadow: 0 0 40px rgba(255,255,255,0.15); } 100% { opacity:0.6; box-shadow: 0 0 20px rgba(255,255,255,0.05); } }
@keyframes sa-figure-appear { 0% { opacity:0.2; transform: translateX(-50%) scale(0.9); } 50% { opacity:1; transform: translateX(-50%) scale(1.05); } 100% { opacity:0.3; transform: translateX(-50%) scale(0.95); } }
@keyframes sa-figure-twitch { 0% { left:45%; } 50% { left:46%; } 100% { left:45%; } }
@keyframes sa-curtain-left { 0% { transform: translateX(0); } 50% { transform: translateX(-5%); } 100% { transform: translateX(0); } }
@keyframes sa-curtain-right { 0% { transform: translateX(0); } 50% { transform: translateX(5%); } 100% { transform: translateX(0); } }

/* ----- scene 3 ----- */
.scn-quint-revelation {
  background:
    linear-gradient(180deg, #1a0f0a 0%, #2a1a0f 40%, #3a2a1a 100%),
    radial-gradient(ellipse at 50% 30%, #3a2a1a 0%, transparent 70%);
}

.scn-quint-revelation .room-depth {
  position: absolute; inset: 0;
  background: linear-gradient(135deg, #2a1a0f 0%, #1a0f0a 100%);
  animation: qr-pulse 20s ease-in-out infinite alternate;
}
.scn-quint-revelation .wall-back {
  position: absolute; bottom: 20%; left: 20%; right: 20%; top: 15%;
  background: linear-gradient(180deg, #3a2a1a 0%, #2a1a0f 100%);
  border-radius: 4px;
  box-shadow: inset 0 0 50px rgba(0,0,0,0.6);
}
.scn-quint-revelation .figure-speaker {
  position: absolute; bottom: 15%; left: 35%;
  width: 24px; height: 60px;
  background: linear-gradient(180deg, #2a1a0f 0%, #1a0a05 100%);
  border-radius: 50% 50% 30% 30% / 70% 70% 30% 30%;
  transform: rotate(5deg);
  animation: qr-speak 5s ease-in-out infinite;
}
.scn-quint-revelation .figure-listener {
  position: absolute; bottom: 15%; right: 35%;
  width: 22px; height: 58px;
  background: linear-gradient(180deg, #1a0f0a 0%, #0f0a05 100%);
  border-radius: 50% 50% 30% 30% / 70% 70% 30% 30%;
  transform: rotate(-3deg);
  animation: qr-listen 7s ease-in-out infinite;
}
.scn-quint-revelation .lantern-glow {
  position: absolute; bottom: 30%; left: 50%;
  width: 10px; height: 10px;
  background: radial-gradient(circle, #b08040 0%, #7a5a2a 60%, transparent 100%);
  border-radius: 50%;
  box-shadow: 0 0 30px 15px rgba(176,128,64,0.6), 0 0 60px 30px rgba(176,128,64,0.3);
  animation: qr-lantern 4s ease-in-out infinite alternate;
}
.scn-quint-revelation .shadow {
  position: absolute; bottom: 0; left: 0; right: 0; height: 20%;
  background: linear-gradient(180deg, rgba(0,0,0,0) 0%, rgba(0,0,0,0.4) 100%);
  animation: qr-shadow-move 8s ease-in-out infinite alternate;
}

@keyframes qr-pulse { 0% { opacity:0.7; } 50% { opacity:0.9; } 100% { opacity:0.7; } }
@keyframes qr-speak { 0% { transform: rotate(5deg) translateY(0); } 50% { transform: rotate(10deg) translateY(-3px); } 100% { transform: rotate(5deg) translateY(0); } }
@keyframes qr-listen { 0% { transform: rotate(-3deg) translateY(0); } 50% { transform: rotate(0deg) translateY(-1px); } 100% { transform: rotate(-3deg) translateY(0); } }
@keyframes qr-lantern { 0% { box-shadow: 0 0 20px 10px rgba(176,128,64,0.5), 0 0 40px 20px rgba(176,128,64,0.2); opacity:0.8; } 50% { box-shadow: 0 0 40px 20px rgba(176,128,64,0.7), 0 0 80px 40px rgba(176,128,64,0.4); opacity:1; } 100% { box-shadow: 0 0 20px 10px rgba(176,128,64,0.5), 0 0 40px 20px rgba(176,128,64,0.2); opacity:0.8; } }
@keyframes qr-shadow-move { 0% { opacity:0.5; } 50% { opacity:0.8; } 100% { opacity:0.5; } }

/* ----- scene 4 ----- */
.scn-lake-apparition {
  background:
    linear-gradient(135deg, #87CEEB 0%, #4682B4 40%, #2E8B57 70%, #006400 100%),
    radial-gradient(ellipse at 50% 80%, #87CEEB 0%, transparent 70%);
}

.scn-lake-apparition .sky {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(180deg, #87CEEB 0%, #B0C4DE 100%);
  animation: la-sky 15s ease-in-out infinite alternate;
}
.scn-lake-apparition .sun {
  position: absolute; top: 12%; left: 20%;
  width: 60px; height: 60px;
  background: radial-gradient(circle, #FFD700 0%, #FFA500 60%, transparent 100%);
  border-radius: 50%;
  box-shadow: 0 0 60px 30px rgba(255,215,0,0.3);
  animation: la-sun-pulse 10s ease-in-out infinite;
}
.scn-lake-apparition .lake {
  position: absolute; bottom: 20%; left: 0; right: 0; height: 40%;
  background: linear-gradient(180deg, #4682B4 0%, #2E8B57 100%);
  border-radius: 0 0 30% 30%;
  box-shadow: inset 0 10px 30px rgba(0,0,0,0.2);
  animation: la-water-ripple 12s ease-in-out infinite alternate;
}
.scn-lake-apparition .shore-opposite {
  position: absolute; bottom: 45%; left: 0; right: 0; height: 10%;
  background: linear-gradient(180deg, #8FBC8F 0%, #6B8E23 100%);
  border-radius: 50% 50% 0 0;
  animation: la-shore 20s ease-in-out infinite alternate;
}
.scn-lake-apparition .figure-distant {
  position: absolute; bottom: 48%; left: 60%;
  width: 16px; height: 30px;
  background: linear-gradient(180deg, #2F4F4F 0%, #1a1a1a 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%;
  box-shadow: -2px -2px 4px rgba(0,0,0,0.4);
  animation: la-figure-appear 8s ease-in-out infinite alternate;
}
.scn-lake-apparition .reeds {
  position: absolute; bottom: 20%; left: 30%; width: 80px; height: 100px;
  background: 
    linear-gradient(90deg, transparent 20%, #556B2F 20%, #556B2F 25%, transparent 25%, transparent 45%, #6B8E23 45%, #6B8E23 50%, transparent 50%),
    linear-gradient(180deg, #556B2F 0%, #2E8B57 100%);
  background-size: 20% 100%, 100% 100%;
  transform: rotate(-5deg);
  animation: la-reeds-sway 6s ease-in-out infinite;
}

@keyframes la-sky { 0% { opacity:0.85; } 50% { opacity:1; } 100% { opacity:0.8; } }
@keyframes la-sun-pulse { 0% { transform: scale(1); box-shadow: 0 0 40px 20px rgba(255,215,0,0.2); } 50% { transform: scale(1.1); box-shadow: 0 0 80px 40px rgba(255,215,0,0.5); } 100% { transform: scale(1); box-shadow: 0 0 40px 20px rgba(255,215,0,0.2); } }
@keyframes la-water-ripple { 0% { background-position: 0 0; } 50% { background-position: 10px 5px; } 100% { background-position: 0 0; } }
@keyframes la-shore { 0% { transform: translateY(0); } 50% { transform: translateY(-2px); } 100% { transform: translateY(0); } }
@keyframes la-figure-appear { 0% { opacity:0.2; transform: translateY(10px) scale(0.9); } 50% { opacity:1; transform: translateY(0) scale(1.05); } 100% { opacity:0.3; transform: translateY(5px) scale(0.95); } }
@keyframes la-reeds-sway { 0% { transform: rotate(-5deg); } 50% { transform: rotate(3deg); } 100% { transform: rotate(-5deg); } }

/* headmaster-letter – tense, dim interior */
.scn-headmaster-letter {
  background: linear-gradient(180deg, #1a1410 0%, #2b221c 40%, #1f1814 100%),
              radial-gradient(ellipse at 60% 20%, #4a3528 0%, transparent 60%);
}
.scn-headmaster-letter .bg-shadow { position:absolute; inset:0; background: radial-gradient(ellipse at 50% 30%, transparent 40%, rgba(0,0,0,0.6) 100%); }
.scn-headmaster-letter .desk { position:absolute; bottom:18%; left:10%; right:10%; height:8%; background: linear-gradient(180deg, #3d2b1f 0%, #1f1510 100%); border-radius: 2px; box-shadow: 0 4px 8px rgba(0,0,0,0.5); }
.scn-headmaster-letter .letter { position:absolute; bottom:24%; left:35%; width:14%; height:10%; background: linear-gradient(135deg, #e8d4b0 0%, #c8a87a 100%); border-radius: 2px; box-shadow: 0 2px 4px rgba(0,0,0,0.4); animation: hl-letter 10s ease-in-out infinite; }
.scn-headmaster-letter .candle { position:absolute; bottom:28%; left:30%; width:3%; height:8%; background: linear-gradient(180deg, #e8c870 0%, #8a6a30 100%); border-radius: 50% 50% 10% 10% / 80% 80% 10% 10%; box-shadow: 0 0 24px 8px #c09040, 0 0 48px 16px rgba(192,144,64,0.3); animation: hl-candle 2s ease-in-out infinite alternate; }
.scn-headmaster-letter .figure { position:absolute; bottom:18%; left:45%; width:14%; height:30%; background: linear-gradient(180deg, #2a201a 0%, #110c08 100%); border-radius: 50% 50% 40% 40% / 70% 70% 40% 40%; transform-origin: bottom center; animation: hl-figure 4s ease-in-out infinite; }
.scn-headmaster-letter .curtain-left { position:absolute; top:0; left:0; width:20%; height:100%; background: linear-gradient(90deg, #2a1a12 0%, #1a0e08 100%); border-radius: 0 40% 40% 0 / 0 100% 100% 0; animation: hl-curtain 8s ease-in-out infinite alternate; }
.scn-headmaster-letter .curtain-right { position:absolute; top:0; right:0; width:20%; height:100%; background: linear-gradient(270deg, #2a1a12 0%, #1a0e08 100%); border-radius: 40% 0 0 40% / 100% 0 0 100%; animation: hl-curtain 8s ease-in-out infinite alternate-reverse; }
@keyframes hl-letter { 0%,100% { transform: translateY(0); } 50% { transform: translateY(-2px); } }
@keyframes hl-candle { 0% { transform: scaleY(1) scaleX(1); opacity:0.9; } 50% { transform: scaleY(1.02) scaleX(0.98); opacity:1; } 100% { transform: scaleY(0.98) scaleX(1.01); opacity:0.95; } }
@keyframes hl-figure { 0%,100% { transform: translateX(0) rotate(0); } 25% { transform: translateX(3%) rotate(-2deg); } 75% { transform: translateX(-2%) rotate(1deg); } }
@keyframes hl-curtain { 0% { transform: scaleX(1); } 100% { transform: scaleX(0.95); } }

/* previous-governess – calm, dim interior */
.scn-previous-governess {
  background: linear-gradient(180deg, #3a2e25 0%, #4d3d32 40%, #3a2e25 100%),
              radial-gradient(ellipse at 50% 60%, #6a5548 0%, transparent 70%);
}
.scn-previous-governess .bg-warm { position:absolute; inset:0; background: radial-gradient(ellipse at 50% 0, #5a4538 0%, transparent 50%); }
.scn-previous-governess .table { position:absolute; bottom:20%; left:30%; right:30%; height:12%; background: radial-gradient(ellipse, #5a4030 0%, #3a2a1e 100%); border-radius: 50%; box-shadow: 0 4px 12px rgba(0,0,0,0.4); }
.scn-previous-governess .teacup { position:absolute; bottom:28%; left:38%; width:5%; height:6%; background: linear-gradient(180deg, #d2b898 0%, #a88a6a 100%); border-radius: 50% 50% 30% 30% / 80% 80% 20% 20%; box-shadow: 0 -2px 6px rgba(0,0,0,0.2); animation: pg-steam 4s ease-in-out infinite; }
.scn-previous-governess .figure-left { position:absolute; bottom:18%; left:15%; width:15%; height:40%; background: linear-gradient(180deg, #4a3a2e 0%, #2a1e14 100%); border-radius: 50% 50% 40% 40% / 70% 70% 40% 40%; transform-origin: bottom center; animation: pg-figure-left 6s ease-in-out infinite; }
.scn-previous-governess .figure-right { position:absolute; bottom:20%; right:15%; width:14%; height:38%; background: linear-gradient(180deg, #5a4a3e 0%, #3a2a1e 100%); border-radius: 50% 50% 40% 40% / 70% 70% 40% 40%; transform-origin: bottom center; animation: pg-figure-right 6s ease-in-out infinite alternate; }
.scn-previous-governess .window-light { position:absolute; top:8%; right:12%; width:25%; height:40%; background: linear-gradient(180deg, rgba(200,180,160,0.3) 0%, rgba(200,180,160,0.1) 100%); border-radius: 2%; filter: blur(4px); animation: pg-window 12s ease-in-out infinite alternate; }
@keyframes pg-steam { 0%,100% { transform: translateY(0) scaleY(1); opacity:0.7; } 50% { transform: translateY(-8%) scaleY(1.1); opacity:0.9; } }
@keyframes pg-figure-left { 0%,100% { transform: translateX(0) rotate(0); } 50% { transform: translateX(-2%) rotate(-1deg); } }
@keyframes pg-figure-right { 0%,100% { transform: translateX(0) rotate(0); } 50% { transform: translateX(2%) rotate(1deg); } }
@keyframes pg-window { 0% { opacity:0.3; } 100% { opacity:0.6; } }

/* miles-arrives – warm, sunlit */
.scn-miles-arrives {
  background: linear-gradient(180deg, #87ceeb 0%, #b0e0e6 30%, #f0e68c 70%, #90ee90 100%),
              radial-gradient(ellipse at 70% 30%, #fff9c4 0%, transparent 50%);
}
.scn-miles-arrives .bg-sun { position:absolute; inset:0; background: radial-gradient(ellipse at 70% 30%, rgba(255,255,200,0.4) 0%, transparent 60%); }
.scn-miles-arrives .sun { position:absolute; top:5%; right:25%; width:12%; height:12%; background: radial-gradient(circle, #fff7d0 0%, #ffd700 60%, transparent 100%); border-radius: 50%; box-shadow: 0 0 60px 30px rgba(255,215,0,0.3); animation: ma-sun 15s ease-in-out infinite alternate; }
.scn-miles-arrives .ground { position:absolute; bottom:0; left:0; right:0; height:35%; background: linear-gradient(180deg, #7cb342 0%, #558b2f 100%); border-radius: 40% 60% 0 0 / 30% 40% 0 0; box-shadow: inset 0 -10px 20px rgba(0,0,0,0.2); }
.scn-miles-arrives .figure-miles { position:absolute; bottom:35%; left:45%; width:10%; height:30%; background: linear-gradient(180deg, #f5deb3 0%, #d2b48c 100%); border-radius: 50% 50% 40% 40% / 70% 70% 40% 40%; transform-origin: bottom center; box-shadow: 0 4px 8px rgba(0,0,0,0.2); animation: ma-miles 4s ease-in-out infinite; }
.scn-miles-arrives .figure-grose { position:absolute; bottom:35%; left:55%; width:11%; height:32%; background: linear-gradient(180deg, #a0522d 0%, #7b3f1a 100%); border-radius: 50% 50% 40% 40% / 70% 70% 40% 40%; transform-origin: bottom center; animation: ma-grose 5s ease-in-out infinite alternate; }
.scn-miles-arrives .tree-left { position:absolute; bottom:35%; left:10%; width:8%; height:40%; background: linear-gradient(180deg, #3e2723 0%, #1b0e07 100%); border-radius: 50% 50% 0 0 / 100% 100% 0 0; animation: ma-tree 20s linear infinite alternate; }
.scn-miles-arrives .tree-right { position:absolute; bottom:35%; right:10%; width:6%; height:35%; background: linear-gradient(180deg, #4e342e 0%, #2d1a12 100%); border-radius: 50% 50% 0 0 / 100% 100% 0 0; animation: ma-tree 25s linear infinite alternate-reverse; }
.scn-miles-arrives .butterfly { position:absolute; top:20%; left:40%; width:4%; height:3%; background: linear-gradient(135deg, #ffab00 0%, #ff6d00 100%); border-radius: 50% 50% 0 50%; animation: ma-butterfly 6s ease-in-out infinite; }
@keyframes ma-sun { 0%,100% { transform: scale(1); opacity:1; } 50% { transform: scale(1.05); opacity:0.9; } }
@keyframes ma-miles { 0%,100% { transform: translateY(0) rotate(0); } 25% { transform: translateY(-3%) rotate(2deg); } 75% { transform: translateY(-1%) rotate(-1deg); } }
@keyframes ma-grose { 0%,100% { transform: translateY(0) rotate(0); } 50% { transform: translateY(-2%) rotate(1deg); } }
@keyframes ma-tree { 0% { transform: rotate(0); } 100% { transform: rotate(3deg); } }
@keyframes ma-butterfly { 0%,100% { transform: translate(0,0) rotate(0); } 25% { transform: translate(20%, -10%) rotate(30deg); } 50% { transform: translate(40%, 5%) rotate(-10deg); } 75% { transform: translate(60%, -5%) rotate(20deg); } }

/* first-apparition-tower – dark, dusk */
.scn-first-apparition-tower {
  background: linear-gradient(180deg, #1a1a3e 0%, #2c2255 40%, #1a1a3e 100%),
              radial-gradient(ellipse at 50% 100%, #4a3a6e 0%, transparent 70%);
}
.scn-first-apparition-tower .bg-dusk { position:absolute; inset:0; background: radial-gradient(ellipse at 50% 0, #3a2a5e 0%, transparent 60%); }
.scn-first-apparition-tower .tower { position:absolute; bottom:10%; left:40%; width:20%; height:70%; background: linear-gradient(180deg, #3a2a3e 0%, #1a0e1e 100%); border-radius: 10% 10% 4% 4%; box-shadow: inset 0 0 20px rgba(0,0,0,0.8); animation: fa-tower 20s ease-in-out infinite; }
.scn-first-apparition-tower .figure-apparition { position:absolute; bottom:72%; left:47%; width:6%; height:14%; background: linear-gradient(180deg, #2a1a2e 0%, #0a050c 100%); border-radius: 50% 50% 40% 40% / 70% 70% 40% 40%; transform-origin: bottom center; animation: fa-figure 3s ease-in-out infinite alternate; }
.scn-first-apparition-tower .trees { position:absolute; bottom:10%; left:0; right:0; height:20%; background: linear-gradient(180deg, #1a2a1a 0%, #0a1a0a 100%); border-radius: 80% 20% 0 0 / 100% 50% 0 0; filter: blur(2px); }
.scn-first-apparition-tower .moon { position:absolute; top:8%; right:20%; width:8%; height:8%; background: radial-gradient(circle, #c8c8e0 0%, #a0a0c0 60%, transparent 100%); border-radius: 50%; box-shadow: 0 0 30px 10px rgba(160,160,200,0.3); animation: fa-moon 8s ease-in-out infinite alternate; }
.scn-first-apparition-tower .cloud { position:absolute; top:12%; left:10%; width:30%; height:5%; background: linear-gradient(180deg, rgba(200,200,220,0.4) 0%, rgba(200,200,220,0.1) 100%); border-radius: 50%; filter: blur(6px); animation: fa-cloud 40s linear infinite; }
@keyframes fa-tower { 0%,100% { transform: translateY(0) scaleY(1); } 50% { transform: translateY(-1%) scaleY(1.005); } }
@keyframes fa-figure { 0% { transform: translateX(0) rotate(0); } 50% { transform: translateX(10%) rotate(-10deg); } 100% { transform: translateX(-5%) rotate(5deg); } }
@keyframes fa-moon { 0% { transform: scale(1); opacity:0.8; } 100% { transform: scale(1.05); opacity:1; } }
@keyframes fa-cloud { 0% { transform: translateX(-40vw); } 100% { transform: translateX(110vw); } }

/* Scene: resolution-to-fight (dim interior, two figures, candle) */
.scn-resolution-to-fight {
  background: radial-gradient(ellipse at 30% 40%, #2a1a0e 0%, #0d0804 70%),
              linear-gradient(180deg, #1a1109 0%, #2a1a0e 50%, #0d0804 100%);
}
.scn-resolution-to-fight .wall { position:absolute; inset:10% 5% 40% 5%; background: linear-gradient(180deg, #3d2b1a 0%, #1a1109 100%); border-radius: 2%; box-shadow: inset 0 0 20px rgba(0,0,0,.6); }
.scn-resolution-to-fight .floor { position:absolute; bottom:0; left:0; right:0; height:42%; background: linear-gradient(180deg, #2a1a0e 0%, #1a1109 100%); border-radius: 10% 10% 0 0; }
.scn-resolution-to-fight .table { position:absolute; bottom:38%; left:36%; width:28%; height:10%; background: linear-gradient(90deg, #4a3520 0%, #3d2b1a 100%); border-radius: 4px; box-shadow: 0 -4px 10px rgba(0,0,0,.5); }
.scn-resolution-to-fight .candle { position:absolute; bottom:48%; left:50%; width:6px; height:20px; transform:translateX(-50%); background: linear-gradient(180deg, #e0c080 0%, #c09060 100%); border-radius: 3px; box-shadow: 0 0 20px 6px #f0b070, 0 0 40px 12px rgba(240,176,112,.4); animation: rtf-flicker 2s ease-in-out infinite alternate; }
.scn-resolution-to-fight .figure-a { position:absolute; bottom:42%; left:25%; width:22px; height:55px; background: radial-gradient(ellipse 50% 60% at 50% 40%, #0a0602 0%, #000 100%); border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%; transform-origin: bottom center; animation: rtf-sway 4s ease-in-out infinite; }
.scn-resolution-to-fight .figure-b { position:absolute; bottom:42%; right:25%; width:22px; height:55px; background: radial-gradient(ellipse 50% 60% at 50% 40%, #0a0602 0%, #000 100%); border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%; transform-origin: bottom center; animation: rtf-sway 4s ease-in-out infinite reverse; }
.scn-resolution-to-fight .shadow-a { position:absolute; bottom:38%; left:25%; width:35px; height:20px; background: rgba(0,0,0,.6); border-radius: 50%; transform: skewX(-15deg); filter: blur(4px); animation: rtf-shadow 3s ease-in-out infinite; }
.scn-resolution-to-fight .shadow-b { position:absolute; bottom:38%; right:25%; width:35px; height:20px; background: rgba(0,0,0,.6); border-radius: 50%; transform: skewX(15deg); filter: blur(4px); animation: rtf-shadow 3s ease-in-out infinite reverse; }
@keyframes rtf-flicker { 0% { opacity:.8; box-shadow: 0 0 15px 4px #f0b070, 0 0 30px 8px rgba(240,176,112,.3); } 50% { opacity:1; box-shadow: 0 0 25px 8px #f0d090, 0 0 50px 16px rgba(240,208,144,.5); } 100% { opacity:.85; box-shadow: 0 0 18px 5px #f0b070, 0 0 35px 10px rgba(240,176,112,.35); } }
@keyframes rtf-sway { 0% { transform: rotate(-2deg) translateX(-1px); } 50% { transform: rotate(2deg) translateX(1px); } 100% { transform: rotate(-2deg) translateX(-1px); } }
@keyframes rtf-shadow { 0% { transform: skewX(-18deg) scaleX(1); } 50% { transform: skewX(-10deg) scaleX(1.1); } 100% { transform: skewX(-18deg) scaleX(1); } }

/* Scene: pressing-mrs-grose (two profiles, lamp, window glow) */
.scn-pressing-mrs-grose {
  background: radial-gradient(ellipse at 60% 50%, #2e1f14 0%, #0f0a06 80%),
              linear-gradient(180deg, #1a1109 0%, #2a1a0e 50%, #0d0804 100%);
}
.scn-pressing-mrs-grose .wall-back { position:absolute; inset:8% 5% 35% 5%; background: linear-gradient(135deg, #2e1f14 0%, #1a1109 100%); border-radius: 2%; box-shadow: inset 0 0 15px rgba(0,0,0,.5); }
.scn-pressing-mrs-grose .floor { position:absolute; bottom:0; left:0; right:0; height:38%; background: linear-gradient(180deg, #1a1109 0%, #0d0804 100%); border-radius: 8% 8% 0 0; }
.scn-pressing-mrs-grose .window-glow { position:absolute; top:15%; right:10%; width:25%; height:30%; background: radial-gradient(ellipse at 50% 50%, rgba(200,180,160,.15) 0%, transparent 70%); filter: blur(8px); animation: pmg-glow 5s ease-in-out infinite alternate; }
.scn-pressing-mrs-grose .profile-a { position:absolute; bottom:36%; left:20%; width:24px; height:45px; background: radial-gradient(ellipse 55% 70% at 50% 50%, #0a0602 0%, #000 100%); border-radius: 50% 40% 30% 50% / 40% 40% 50% 50%; transform: rotate(15deg); animation: pmg-turn 6s ease-in-out infinite; }
.scn-pressing-mrs-grose .profile-b { position:absolute; bottom:36%; right:20%; width:24px; height:45px; background: radial-gradient(ellipse 55% 70% at 50% 50%, #0a0602 0%, #000 100%); border-radius: 40% 50% 50% 30% / 40% 40% 50% 50%; transform: rotate(-15deg); animation: pmg-turn 6s ease-in-out infinite reverse; }
.scn-pressing-mrs-grose .lamp { position:absolute; bottom:50%; left:48%; width:10px; height:20px; background: linear-gradient(180deg, #d0a060 0%, #b08040 100%); border-radius: 4px; box-shadow: 0 0 20px 5px #c09050, 0 0 40px 10px rgba(192,144,80,.3); animation: pmg-flicker 3s ease-in-out infinite alternate; }
.scn-pressing-mrs-grose .flicker { position:absolute; bottom:52%; left:48%; width:20px; height:20px; background: radial-gradient(circle, rgba(255,200,100,.15) 0%, transparent 70%); filter: blur(6px); animation: pmg-flicker 3s ease-in-out infinite alternate; }
@keyframes pmg-glow { 0% { opacity:.6; transform: scale(.95); } 50% { opacity:1; transform: scale(1.05); } 100% { opacity:.7; transform: scale(1); } }
@keyframes pmg-turn { 0% { transform: rotate(12deg) translateX(-2px); } 50% { transform: rotate(-12deg) translateX(2px); } 100% { transform: rotate(12deg) translateX(-2px); } }
@keyframes pmg-flicker { 0% { opacity:.7; box-shadow: 0 0 15px 3px #c09050, 0 0 30px 6px rgba(192,144,80,.2); } 50% { opacity:1; box-shadow: 0 0 25px 8px #e0b070, 0 0 50px 15px rgba(224,176,112,.4); } 100% { opacity:.75; box-shadow: 0 0 18px 4px #c09050, 0 0 35px 8px rgba(192,144,80,.25); } }

/* Scene: watching-waiting (sunlit window, figure, long shadows) */
.scn-watching-waiting {
  background: linear-gradient(180deg, #d4e8f0 0%, #b8d0dc 30%, #a0b8c4 60%, #7a8c98 100%);
}
.scn-watching-waiting .sky { position:absolute; top:0; left:0; right:0; height:30%; background: linear-gradient(180deg, #b0d0e0 0%, #d4e8f0 100%); animation: ww-sky 10s ease-in-out infinite alternate; }
.scn-watching-waiting .wall-sunlit { position:absolute; top:20%; left:5%; right:5%; bottom:25%; background: linear-gradient(135deg, #f0e8d0 0%, #d8c8b0 100%); border-radius: 2%; box-shadow: inset 0 0 30px rgba(0,0,0,.1); }
.scn-watching-waiting .floor { position:absolute; bottom:0; left:0; right:0; height:28%; background: linear-gradient(180deg, #c8b8a0 0%, #b0a090 100%); border-radius: 6% 6% 0 0; }
.scn-watching-waiting .window-frame { position:absolute; top:22%; left:35%; width:30%; height:50%; background: linear-gradient(135deg, #e8dcc8 0%, #d0c0a8 100%); border-radius: 4px; box-shadow: inset 0 0 12px rgba(0,0,0,.2), 0 4px 12px rgba(0,0,0,.15); }
.scn-watching-waiting .curtain-left { position:absolute; top:22%; left:35%; width:16%; height:50%; background: linear-gradient(90deg, #c8a878 0%, #e8d0a8 60%, transparent 100%); border-radius: 4px 0 0 4px; animation: ww-curtain 14s ease-in-out infinite alternate; }
.scn-watching-waiting .curtain-right { position:absolute; top:22%; right:35%; width:16%; height:50%; background: linear-gradient(90deg, transparent 0%, #e8d0a8 40%, #c8a878 100%); border-radius: 0 4px 4px 0; animation: ww-curtain 14s ease-in-out infinite alternate-reverse; }
.scn-watching-waiting .figure-watch { position:absolute; bottom:24%; left:48%; width:20px; height:55px; background: radial-gradient(ellipse 50% 55% at 50% 45%, #2a2218 0%, #1a120a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: ww-watch 8s ease-in-out infinite; }
.scn-watching-waiting .shadow-long { position:absolute; bottom:20%; left:38%; width:60px; height:8px; background: rgba(40,30,20,.3); border-radius: 50%; transform: skewX(-20deg); filter: blur(3px); animation: ww-shadow 12s ease-in-out infinite; }
.scn-watching-waiting .puddle-light { position:absolute; bottom:18%; left:42%; width:30%; height:15%; background: radial-gradient(ellipse at 50% 50%, rgba(255,240,200,.25) 0%, transparent 80%); filter: blur(10px); animation: ww-puddle 5s ease-in-out infinite alternate; }
@keyframes ww-sky { 0% { opacity:.8; } 50% { opacity:1; } 100% { opacity:.85; } }
@keyframes ww-curtain { 0% { transform: translateX(0); } 50% { transform: translateX(-6px); } 100% { transform: translateX(0); } }
@keyframes ww-watch { 0% { transform: translateX(-2px) rotate(-1deg); } 50% { transform: translateX(2px) rotate(1deg); } 100% { transform: translateX(-2px) rotate(-1deg); } }
@keyframes ww-shadow { 0% { transform: skewX(-25deg) scaleX(1); } 50% { transform: skewX(-15deg) scaleX(1.1); } 100% { transform: skewX(-25deg) scaleX(1); } }
@keyframes ww-puddle { 0% { opacity:.5; transform: scaleY(.9); } 50% { opacity:1; transform: scaleY(1.1); } 100% { opacity:.6; transform: scaleY(1); } }

/* Scene: staircase-apparition (dark stairs, figure, ghost, light from above) */
.scn-staircase-apparition {
  background: radial-gradient(ellipse at 50% 30%, #2a2a3e 0%, #0a0a14 80%),
              linear-gradient(180deg, #1a1a2e 0%, #0a0a14 100%);
}
.scn-staircase-apparition .wall-dark { position:absolute; inset:0; background: linear-gradient(135deg, #1a1a2e 0%, #0a0a14 100%); }
.scn-staircase-apparition .stairs { position:absolute; bottom:5%; left:20%; right:20%; height:65%; background: repeating-linear-gradient(0deg, #3a2a1a 0px, #3a2a1a 12px, #2a1a0a 12px, #2a1a0a 24px); border-radius: 4px; transform: perspective(400px) rotateX(8deg); box-shadow: inset 0 -8px 20px rgba(0,0,0,.5); animation: sa-stairs 20s linear infinite; }
.scn-staircase-apparition .banister { position:absolute; bottom:60%; left:22%; width:4px; height:40%; background: linear-gradient(180deg, #1a1a2e 0%, #2a1a0a 100%); transform: skewX(-10deg); box-shadow: 2px 0 4px rgba(0,0,0,.4); }
.scn-staircase-apparition .figure-on-stairs { position:absolute; bottom:37%; left:38%; width:20px; height:45px; background: radial-gradient(ellipse 50% 60% at 50% 40%, #0a0a14 0%, #000 100%); border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%; transform-origin: bottom center; animation: sa-climb 12s ease-in-out infinite; }
.scn-staircase-apparition .apparition { position:absolute; top:15%; left:45%; width:18px; height:40px; background: radial-gradient(ellipse 50% 60% at 50% 50%, rgba(200,200,255,.4) 0%, transparent 100%); filter: blur(4px); opacity:.6; animation: sa-appear 8s ease-in-out infinite alternate; }
.scn-staircase-apparition .light-from-above { position:absolute; top:0; left:30%; right:30%; height:20%; background: radial-gradient(ellipse at 50% 100%, rgba(180,180,240,.15) 0%, transparent 80%); animation: sa-light 5s ease-in-out infinite alternate; }
.scn-staircase-apparition .mist { position:absolute; bottom:0; left:10%; right:10%; height:40%; background: radial-gradient(ellipse at 50% 50%, rgba(100,120,140,.15) 0%, transparent 80%); filter: blur(15px); animation: sa-mist 30s linear infinite; }
@keyframes sa-stairs { 0% { background-position: 0 0; } 100% { background-position: 0 24px; } }
@keyframes sa-climb { 0% { transform: translateY(0) rotate(-1deg); } 25% { transform: translateY(-10px) rotate(1deg); } 50% { transform: translateY(-20px) rotate(-1deg); } 75% { transform: translateY(-10px) rotate(1deg); } 100% { transform: translateY(0) rotate(0); } }
@keyframes sa-appear { 0% { opacity:.3; transform: scale(.9) translateY(10px); } 50% { opacity:.7; transform: scale(1.1) translateY(-5px); } 100% { opacity:.4; transform: scale(1) translateY(5px); } }
@keyframes sa-light { 0% { opacity:.6; } 50% { opacity:1; } 100% { opacity:.7; } }
@keyframes sa-mist { 0% { transform: translateX(-10%) scaleY(1); } 50% { transform: translateX(5%) scaleY(1.05); } 100% { transform: translateX(-10%) scaleY(1); } }

/* window-night-vigil */
.scn-window-night-vigil { background: linear-gradient(180deg, #0b0d1e 0%, #181c3a 50%, #24284e 100%), radial-gradient(ellipse at 50% 0%, #4a5a8a 0%, transparent 60%); }
.scn-window-night-vigil .room-back { position:absolute; inset:0; background: linear-gradient(135deg, #101428 0%, #1e2244 100%); }
.scn-window-night-vigil .window-frame { position:absolute; bottom:30%; left:35%; width:30%; height:45%; border:8px solid #2a1e14; border-radius:4px; background: radial-gradient(ellipse at 50% 50%, #1a2a4a 0%, #0a0e1e 100%); box-shadow:inset 0 0 40px rgba(80,120,200,.15); }
.scn-window-night-vigil .blind { position:absolute; bottom:30%; left:35%; width:30%; height:45%; background: repeating-linear-gradient(0deg, #1e1a16 0px, #1e1a16 6px, transparent 6px, transparent 12px); opacity:.35; animation: wnv-blind 8s ease-in-out infinite alternate; }
.scn-window-night-vigil .moonlight-beam { position:absolute; top:10%; left:38%; width:24%; height:70%; background: linear-gradient(180deg, rgba(200,220,255,.15) 0%, rgba(200,220,255,.4) 30%, rgba(200,220,255,.05) 100%); clip-path: polygon(0% 0%, 100% 0%, 80% 100%, 20% 100%); filter: blur(2px); animation: wnv-beam 6s ease-in-out infinite alternate; }
.scn-window-night-vigil .curtain-left { position:absolute; bottom:30%; left:33%; width:10%; height:48%; background: linear-gradient(90deg, #1a1410 0%, #2a201a 100%); border-radius:0 40% 40% 0 / 0 30% 30% 0; animation: wnv-curtain 10s ease-in-out infinite alternate; }
.scn-window-night-vigil .curtain-right { position:absolute; bottom:30%; right:33%; width:10%; height:48%; background: linear-gradient(270deg, #1a1410 0%, #2a201a 100%); border-radius:40% 0 0 40% / 30% 0 0 30%; animation: wnv-curtain 10s ease-in-out infinite alternate-reverse; }
.scn-window-night-vigil .child-silhouette { position:absolute; bottom:33%; left:43%; width:6%; height:14%; background: radial-gradient(ellipse 50% 60% at 50% 40%, #0a0a12 0%, #14141e 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: wnv-child 4s ease-in-out infinite alternate; }
@keyframes wnv-blind { 0% { transform: translateY(0) scaleY(1); } 50% { transform: translateY(-2px) scaleY(1.02); } 100% { transform: translateY(0) scaleY(1); } }
@keyframes wnv-beam { 0% { opacity:.5; transform: rotate(-1deg) translateX(0); } 50% { opacity:.9; transform: rotate(0deg) translateX(3px); } 100% { opacity:.6; transform: rotate(1deg) translateX(0); } }
@keyframes wnv-curtain { 0% { transform: translateX(0) scaleX(1); } 50% { transform: translateX(-4px) scaleX(0.98); } 100% { transform: translateX(0) scaleX(1); } }
@keyframes wnv-child { 0% { transform: translateY(0) rotate(-2deg); opacity:.7; } 50% { transform: translateY(-3px) rotate(0deg); opacity:.9; } 100% { transform: translateY(0) rotate(2deg); opacity:.8; } }

/* strained-silence */
.scn-strained-silence { background: linear-gradient(180deg, #7a7a80 0%, #5a5a62 40%, #3a3a40 100%), radial-gradient(ellipse at 50% 100%, #4a4a50 0%, transparent 70%); }
.scn-strained-silence .sky-overcast { position:absolute; inset:0 0 40% 0; background: linear-gradient(180deg, #8a8a92 0%, #6a6a72 60%, #5a5a62 100%); }
.scn-strained-silence .ground { position:absolute; bottom:0; left:0; right:0; height:45%; background: linear-gradient(180deg, #4a4638 0%, #2a2618 100%); border-radius: 30% 50% 0 0 / 60% 80% 0 0; }
.scn-strained-silence .path { position:absolute; bottom:20%; left:40%; width:20%; height:30%; background: linear-gradient(180deg, #8a7a5a 0%, #6a5a3a 100%); clip-path: polygon(20% 0%, 80% 0%, 70% 100%, 30% 100%); filter: blur(1px); animation: sts-path 12s ease-in-out infinite alternate; }
.scn-strained-silence .mist { position:absolute; bottom:25%; width:120%; height:20%; background: radial-gradient(ellipse at 50% 50%, rgba(160,170,180,.2) 0%, transparent 80%); filter: blur(8px); }
.scn-strained-silence .mist.layer-a { left:-10%; animation: sts-mist-a 30s linear infinite; }
.scn-strained-silence .mist.layer-b { right:-10%; top:30%; animation: sts-mist-b 35s linear infinite reverse; }
.scn-strained-silence .figure-shadow { position:absolute; bottom:22%; left:48%; width:8%; height:20%; background: radial-gradient(ellipse 50% 70% at 50% 30%, #1a1a1e 0%, #0a0a0e 100%); border-radius: 50% 50% 40% 40% / 70% 70% 30% 30%; transform-origin: bottom center; animation: sts-figure 5s ease-in-out infinite; }
.scn-strained-silence .gate { position:absolute; bottom:18%; left:35%; width:5%; height:25%; background: linear-gradient(0deg, #3a2a1a 0%, #5a4a2a 100%); border-radius: 10% 10% 0 0; box-shadow: 2px 0 8px rgba(0,0,0,.5); animation: sts-gate 15s ease-in-out infinite alternate; }
@keyframes sts-path { 0% { transform: skewX(-2deg); opacity:.6; } 50% { transform: skewX(0deg); opacity:.8; } 100% { transform: skewX(2deg); opacity:.7; } }
@keyframes sts-mist-a { 0% { transform: translateX(0) scaleX(1); } 50% { transform: translateX(40vw) scaleX(1.2); } 100% { transform: translateX(80vw) scaleX(1); } }
@keyframes sts-mist-b { 0% { transform: translateX(0) scaleY(1); } 50% { transform: translateX(-30vw) scaleY(1.1); } 100% { transform: translateX(-60vw) scaleY(1); } }
@keyframes sts-figure { 0% { transform: translateY(0) rotate(-3deg) scaleY(1); } 50% { transform: translateY(-4px) rotate(0deg) scaleY(1.02); } 100% { transform: translateY(0) rotate(3deg) scaleY(1); } }
@keyframes sts-gate { 0% { transform: rotate(-2deg) translateX(0); } 50% { transform: rotate(0deg) translateX(-2px); } 100% { transform: rotate(2deg) translateX(0); } }

/* church-conversation */
.scn-church-conversation { background: linear-gradient(180deg, #9ab0c4 0%, #b8c8d8 50%, #d0dae4 100%), radial-gradient(ellipse at 50% 100%, #c8d4de 0%, transparent 70%); }
.scn-church-conversation .church-bg { position:absolute; inset:0; background: linear-gradient(135deg, #a8b8c8 0%, #8898a8 100%); }
.scn-church-conversation .church-arches { position:absolute; bottom:10%; left:20%; width:60%; height:50%; border:4px solid #6a7a8a; border-radius: 50% 50% 0 0; background: radial-gradient(ellipse at 50% 0%, #c0cedc 0%, #a0b0c0 100%); box-shadow: inset 0 10px 30px rgba(0,0,0,.15); }
.scn-church-conversation .sunbeam { position:absolute; top:0; width:12%; height:80%; background: linear-gradient(180deg, rgba(255,240,200,.25) 0%, rgba(255,240,200,.05) 100%); clip-path: polygon(0% 0%, 100% 0%, 80% 100%, 20% 100%); filter: blur(3px); }
.scn-church-conversation .sunbeam.beam-a { left:30%; animation: chc-beam-a 15s ease-in-out infinite alternate; }
.scn-church-conversation .sunbeam.beam-b { left:55%; animation: chc-beam-b 20s ease-in-out infinite alternate; }
.scn-church-conversation .figure-left { position:absolute; bottom:40%; left:38%; width:8%; height:22%; background: radial-gradient(ellipse 50% 70% at 50% 30%, #2a2824 0%, #1a1814 100%); border-radius: 50% 50% 30% 30% / 70% 70% 30% 30%; transform-origin: bottom center; animation: chc-fig-l 5s ease-in-out infinite; }
.scn-church-conversation .figure-right { position:absolute; bottom:40%; right:38%; width:7%; height:20%; background: radial-gradient(ellipse 50% 70% at 50% 30%, #1e1c1a 0%, #0e0c0a 100%); border-radius: 50% 50% 30% 30% / 70% 70% 30% 30%; transform-origin: bottom center; animation: chc-fig-r 5s ease-in-out infinite; }
.scn-church-conversation .shadow-sharp { position:absolute; bottom:10%; left:25%; width:50%; height:8%; background: linear-gradient(90deg, transparent 0%, rgba(0,0,0,.25) 40%, rgba(0,0,0,.25) 60%, transparent 100%); filter: blur(2px); animation: chc-shadow 8s ease-in-out infinite alternate; }
@keyframes chc-beam-a { 0% { transform: rotate(-3deg) translateY(0); opacity:.4; } 50% { transform: rotate(0deg) translateY(-10px); opacity:.7; } 100% { transform: rotate(3deg) translateY(0); opacity:.5; } }
@keyframes chc-beam-b { 0% { transform: rotate(2deg) translateY(0); opacity:.3; } 50% { transform: rotate(0deg) translateY(-8px); opacity:.6; } 100% { transform: rotate(-2deg) translateY(0); opacity:.4; } }
@keyframes chc-fig-l { 0% { transform: translateY(0) rotate(-4deg) scaleY(1); } 50% { transform: translateY(-3px) rotate(2deg) scaleY(1.03); } 100% { transform: translateY(0) rotate(-4deg) scaleY(1); } }
@keyframes chc-fig-r { 0% { transform: translateY(0) rotate(3deg) scaleY(1); } 50% { transform: translateY(-2px) rotate(-1deg) scaleY(1.02); } 100% { transform: translateY(0) rotate(3deg) scaleY(1); } }
@keyframes chc-shadow { 0% { transform: scaleX(1) skewX(-5deg); opacity:.6; } 50% { transform: scaleX(1.1) skewX(0deg); opacity:.8; } 100% { transform: scaleX(1) skewX(5deg); opacity:.7; } }

/* schoolroom-apparition */
.scn-schoolroom-apparition { background: linear-gradient(180deg, #e8edf0 0%, #d0d8e0 50%, #b0bcc8 100%), radial-gradient(ellipse at 50% 50%, #f0f4f8 0%, transparent 60%); }
.scn-schoolroom-apparition .schoolroom-bg { position:absolute; inset:0; background: linear-gradient(135deg, #dce2e8 0%, #c0c8d0 100%); }
.scn-schoolroom-apparition .window-bright { position:absolute; top:5%; left:40%; width:20%; height:35%; background: radial-gradient(ellipse at 50% 50%, #fff8e0 0%, #d8dce0 100%); border:6px solid #8a929a; border-radius:4px; box-shadow: inset 0 0 60px rgba(255,248,220,.4); animation: scr-window 6s ease-in-out infinite alternate; }
.scn-schoolroom-apparition .table { position:absolute; bottom:20%; left:30%; width:40%; height:12%; background: linear-gradient(180deg, #8a7a5a 0%, #6a5a3a 100%); border-radius:4px; box-shadow: 0 4px 12px rgba(0,0,0,.3); }
.scn-schoolroom-apparition .chair { position:absolute; bottom:30%; left:52%; width:6%; height:18%; background: linear-gradient(0deg, #4a3a2a 0%, #6a5a4a 100%); border-radius: 20% 20% 5% 5%; animation: scr-chair 10s ease-in-out infinite alternate; }
.scn-schoolroom-apparition .woman-in-black { position:absolute; bottom:30%; left:44%; width:10%; height:28%; background: radial-gradient(ellipse 50% 70% at 50% 40%, #1a1a1e 0%, #0e0e12 100%); border-radius: 50% 50% 30% 30% / 70% 70% 30% 30%; box-shadow: 0 0 30px rgba(0,0,0,.4); animation: scr-woman 7s ease-in-out infinite; }
.scn-schoolroom-apparition .shadow-on-floor { position:absolute; bottom:5%; left:38%; width:24%; height:4%; background: radial-gradient(ellipse at 50% 50%, rgba(0,0,0,.25) 0%, transparent 80%); filter: blur(3px); animation: scr-shadow 8s ease-in-out infinite alternate; }
@keyframes scr-window { 0% { opacity:.8; transform: scaleY(1); } 50% { opacity:1; transform: scaleY(1.02) translateY(-2px); } 100% { opacity:.9; transform: scaleY(1); } }
@keyframes scr-chair { 0% { transform: rotate(-2deg) translateX(0); } 50% { transform: rotate(1deg) translateX(-2px); } 100% { transform: rotate(-2deg) translateX(0); } }
@keyframes scr-woman { 0% { transform: translateY(0) rotate(-3deg); opacity:.85; } 50% { transform: translateY(-5px) rotate(0deg); opacity:1; } 100% { transform: translateY(0) rotate(3deg); opacity:.9; } }
@keyframes scr-shadow { 0% { transform: scaleX(1) translateX(0); opacity:.5; } 50% { transform: scaleX(1.1) translateX(-3px); opacity:.8; } 100% { transform: scaleX(1) translateX(0); opacity:.6; } }

/* scene: writing-letter – tense dim interior, lamp-lit */
.scn-writing-letter {
  background:
    linear-gradient(135deg, #1b1a2e 0%, #2a2640 40%, #3e3850 100%),
    radial-gradient(circle at 60% 70%, #4a3e2e 0%, transparent 60%);
}
.scn-writing-letter .wl-wall {
  position: absolute; inset: 0 0 30% 0; background: linear-gradient(180deg, #2f2838 0%, #1e1a28 100%); border-radius: 0 0 10% 10%; box-shadow: inset 0 0 40px rgba(0,0,0,.7);
}
.scn-writing-letter .wl-window {
  position: absolute; top: 12%; left: 18%; width: 30%; height: 38%; background: linear-gradient(180deg, #1f2a3e 0%, #2c3850 50%, #1a2030 100%); border: 4px solid #3c3044; border-radius: 4px; box-shadow: inset 0 0 30px rgba(0,0,0,.5), 0 8px 20px rgba(0,0,0,.4);
}
.scn-writing-letter .wl-curtains {
  position: absolute; top: 10%; left: 16%; width: 34%; height: 44%; background: linear-gradient(90deg, #403048 0%, #2c2034 50%, #403048 100%); border-radius: 0 0 20% 20%; filter: blur(3px); animation: wl-curtain 14s ease-in-out infinite alternate;
}
.scn-writing-letter .wl-desk {
  position: absolute; bottom: 14%; left: 50%; width: 240px; height: 80px; transform: translateX(-50%); background: linear-gradient(180deg, #5a4a3a 0%, #3a2e20 100%); border-radius: 8px 8px 4px 4px; box-shadow: 0 6px 20px rgba(0,0,0,.6);
}
.scn-writing-letter .wl-lamp {
  position: absolute; bottom: 30%; left: 48%; width: 30px; height: 50px; transform: translateX(-50%); background: radial-gradient(circle at 50% 30%, #e8c070 0%, #a08040 50%, #2a1a10 80%); border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%; box-shadow: 0 0 40px 15px rgba(200,160,80,.5), 0 0 80px 30px rgba(200,160,80,.2); animation: wl-lamp-pulse 3s ease-in-out infinite alternate;
}
.scn-writing-letter .wl-figure {
  position: absolute; bottom: 16%; left: 44%; width: 20px; height: 70px; background: linear-gradient(180deg, #1e1a28 0%, #0e0c18 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: wl-figure-breathe 7s ease-in-out infinite alternate;
}
.scn-writing-letter .wl-blank-sheet {
  position: absolute; bottom: 20%; left: 52%; width: 80px; height: 10px; background: linear-gradient(180deg, #f0e8d8 0%, #d8d0b8 100%); border-radius: 2px; box-shadow: 0 2px 6px rgba(0,0,0,.3); animation: wl-sheet 5s ease-in-out infinite;
}
.scn-writing-letter .wl-flora {
  position: absolute; bottom: 12%; left: 28%; width: 30px; height: 20px; background: radial-gradient(ellipse, #8a7a6a 0%, #4a3a2e 100%); border-radius: 50%; filter: blur(2px); animation: wl-flora 12s ease-in-out infinite alternate;
}
@keyframes wl-curtain {
  0% { transform: translateX(0) scaleX(1); opacity: .7; }
  50% { transform: translateX(8px) scaleX(1.02); opacity: .85; }
  100% { transform: translateX(-4px) scaleX(0.98); opacity: .75; }
}
@keyframes wl-lamp-pulse {
  0% { box-shadow: 0 0 30px 10px rgba(200,160,80,.4), 0 0 60px 20px rgba(200,160,80,.15); }
  50% { box-shadow: 0 0 50px 20px rgba(220,180,90,.7), 0 0 100px 35px rgba(220,180,90,.3); }
  100% { box-shadow: 0 0 35px 12px rgba(200,160,80,.5), 0 0 70px 25px rgba(200,160,80,.2); }
}
@keyframes wl-figure-breathe {
  0% { transform: translateY(0) rotate(0deg); }
  50% { transform: translateY(-1px) rotate(0.5deg); }
  100% { transform: translateY(0) rotate(-0.5deg); }
}
@keyframes wl-sheet {
  0%, 100% { opacity: .8; transform: scaleY(1); }
  50% { opacity: 1; transform: scaleY(1.05); }
}
@keyframes wl-flora {
  0% { transform: translateY(0) scale(1); opacity: .5; }
  100% { transform: translateY(-2px) scale(0.95); opacity: .7; }
}

/* scene: search-for-flora – tense sunlit interior, sharp shadows */
.scn-search-for-flora {
  background:
    linear-gradient(180deg, #f0e8d8 0%, #d0c8b0 60%, #b0a890 100%),
    radial-gradient(ellipse at 30% 20%, #fff8e0 0%, transparent 70%);
}
.scn-search-for-flora .sf-floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 45%; background: linear-gradient(180deg, #c0b098 0%, #8a7a6a 100%); border-radius: 30% 0 0 0; box-shadow: inset 0 20px 40px rgba(0,0,0,.15);
}
.scn-search-for-flora .sf-wall {
  position: absolute; inset: 0 0 45% 0; background: linear-gradient(180deg, #f5eed8 0%, #e0d4c0 80%); box-shadow: inset 0 0 60px rgba(0,0,0,.08);
}
.scn-search-for-flora .sf-window {
  position: absolute; top: 10%; left: 50%; width: 100px; height: 140px; transform: translateX(-50%); background: linear-gradient(180deg, #b0c8d8 0%, #8898a8 100%); border: 6px solid #b0a090; border-radius: 4px; box-shadow: inset 0 0 20px rgba(255,255,200,.3), 0 8px 20px rgba(0,0,0,.2);
}
.scn-search-for-flora .sf-door {
  position: absolute; bottom: 35%; right: 12%; width: 60px; height: 120px; background: linear-gradient(180deg, #7a6a5a 0%, #5a4a3a 100%); border: 4px solid #4a3a2a; border-radius: 4px; box-shadow: 0 4px 12px rgba(0,0,0,.3);
}
.scn-search-for-flora .sf-figure-g {
  position: absolute; bottom: 30%; left: 35%; width: 22px; height: 80px; background: linear-gradient(180deg, #2a2a3a 0%, #101018 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: sf-figure-g 8s ease-in-out infinite alternate;
}
.scn-search-for-flora .sf-figure-mg {
  position: absolute; bottom: 30%; right: 30%; width: 24px; height: 76px; background: linear-gradient(180deg, #3a2a2a 0%, #1a1010 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: sf-figure-mg 9s ease-in-out infinite alternate;
}
.scn-search-for-flora .sf-shadow {
  position: absolute; bottom: 28%; left: 30%; width: 90px; height: 30px; background: rgba(0,0,0,.15); filter: blur(12px); border-radius: 50%; animation: sf-shadow 10s ease-in-out infinite alternate;
}
.scn-search-for-flora .sf-dust {
  position: absolute; top: 20%; left: 20%; width: 4px; height: 4px; background: rgba(255,240,220,.6); border-radius: 50%; box-shadow: 40px 60px 10px rgba(255,240,220,.3), 80px 140px 6px rgba(255,240,220,.2); animation: sf-dust 30s linear infinite;
}
@keyframes sf-figure-g {
  0% { transform: translateX(0) translateY(0) rotate(-2deg); }
  50% { transform: translateX(6px) translateY(-2px) rotate(1deg); }
  100% { transform: translateX(0) translateY(0) rotate(2deg); }
}
@keyframes sf-figure-mg {
  0% { transform: translateX(0) rotate(1deg); }
  50% { transform: translateX(-4px) rotate(-1deg); }
  100% { transform: translateX(2px) rotate(0deg); }
}
@keyframes sf-shadow {
  0% { transform: translateX(-10px) scaleX(1.2); opacity: .3; }
  100% { transform: translateX(10px) scaleX(0.8); opacity: .5; }
}
@keyframes sf-dust {
  0% { transform: translate(0,0) scale(1); opacity: .3; }
  50% { transform: translate(30px, -20px) scale(1.5); opacity: .6; }
  100% { transform: translate(60px, -40px) scale(0.5); opacity: .1; }
}

/* scene: confrontation-at-lake – tense sunlit outdoors */
.scn-confrontation-at-lake {
  background:
    linear-gradient(180deg, #b0d0e0 0%, #80a8c0 50%, #6090a8 100%),
    radial-gradient(ellipse at 50% 0%, #d8e8f0 0%, transparent 60%);
}
.scn-confrontation-at-lake .cl-sky {
  position: absolute; inset: 0 0 55% 0; background: linear-gradient(180deg, #c0d8e8 0%, #a0b8c8 100%); box-shadow: inset 0 0 80px rgba(255,255,240,0.1);
}
.scn-confrontation-at-lake .cl-lake {
  position: absolute; bottom: 0; left: 0; right: 0; height: 55%; background: linear-gradient(180deg, #5090a0 0%, #306070 50%, #1a3a4a 100%); border-radius: 20% 20% 0 0; box-shadow: inset 0 20px 40px rgba(0,0,0,.3);
  animation: cl-water 12s ease-in-out infinite alternate;
}
.scn-confrontation-at-lake .cl-shore {
  position: absolute; bottom: 32%; left: 0; right: 0; height: 12%; background: linear-gradient(180deg, #8a7a5a 0%, #6a5a3a 100%); border-radius: 30% 70% 10% 10%; box-shadow: 0 -6px 20px rgba(0,0,0,.2);
}
.scn-confrontation-at-lake .cl-fern {
  position: absolute; bottom: 40%; left: 25%; width: 50px; height: 60px; background: linear-gradient(180deg, #4a6a3a 0%, #2a4a1a 100%); border-radius: 50% 50% 0 0 / 80% 80% 0 0; transform-origin: bottom center; animation: cl-fern 5s ease-in-out infinite alternate;
}
.scn-confrontation-at-lake .cl-flora {
  position: absolute; bottom: 38%; left: 40%; width: 20px; height: 50px; background: linear-gradient(180deg, #7a6a5a 0%, #3a2a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: cl-figure 6s ease-in-out infinite;
}
.scn-confrontation-at-lake .cl-mrs-grose {
  position: absolute; bottom: 38%; left: 55%; width: 24px; height: 54px; background: linear-gradient(180deg, #5a4a3a 0%, #2a1a10 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: cl-figure 6.5s ease-in-out infinite;
}
.scn-confrontation-at-lake .cl-governess {
  position: absolute; bottom: 38%; left: 65%; width: 22px; height: 56px; background: linear-gradient(180deg, #2a2a3a 0%, #101018 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: cl-figure 7s ease-in-out infinite;
}
.scn-confrontation-at-lake .cl-reeds {
  position: absolute; bottom: 28%; left: 10%; width: 30px; height: 80px; background: repeating-linear-gradient(0deg, #4a5a2a 0px, #4a5a2a 4px, transparent 4px, transparent 8px); border-radius: 4px; filter: blur(1px); animation: cl-reeds 4s ease-in-out infinite alternate;
}
@keyframes cl-water {
  0% { transform: translateY(0); background-position: 0 0; }
  50% { transform: translateY(-2px); background-position: 20px 5px; }
  100% { transform: translateY(0); background-position: -10px 0; }
}
@keyframes cl-fern {
  0% { transform: rotate(-5deg) scaleY(1); }
  50% { transform: rotate(3deg) scaleY(1.03); }
  100% { transform: rotate(-2deg) scaleY(0.98); }
}
@keyframes cl-figure {
  0%, 100% { transform: rotate(0deg); }
  50% { transform: rotate(2deg); }
}
@keyframes cl-reeds {
  0% { transform: rotate(-8deg); opacity: .6; }
  100% { transform: rotate(8deg); opacity: .9; }
}

/* scene: aftermath-of-confrontation – dark dusk interior, warm fire */
.scn-aftermath-of-confrontation {
  background:
    linear-gradient(180deg, #1a1a2e 0%, #2a2038 50%, #1e1428 100%),
    radial-gradient(ellipse at 40% 70%, #3a2a1a 0%, transparent 70%);
}
.scn-aftermath-of-confrontation .ac-room {
  position: absolute; inset: 0 0 20% 0; background: linear-gradient(180deg, #2a2040 0%, #1a1028 100%); border-radius: 0 0 40% 40%; box-shadow: inset 0 0 80px rgba(0,0,0,.6);
}
.scn-aftermath-of-confrontation .ac-window {
  position: absolute; top: 12%; left: 65%; width: 80px; height: 100px; background: linear-gradient(180deg, #2a3a4a 0%, #1a2a3a 100%); border: 4px solid #3a2a3a; border-radius: 4px; box-shadow: inset 0 0 30px rgba(0,0,0,.4), 0 4px 16px rgba(0,0,0,.3);
  animation: ac-window 15s ease-in-out infinite alternate;
}
.scn-aftermath-of-confrontation .ac-fireplace {
  position: absolute; bottom: 18%; left: 20%; width: 120px; height: 100px; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius: 20% 20% 10% 10%; box-shadow: inset 0 0 30px rgba(0,0,0,.5);
}
.scn-aftermath-of-confrontation .ac-hearth {
  position: absolute; bottom: 16%; left: 22%; width: 100px; height: 20px; background: linear-gradient(180deg, #6a4a2a 0%, #3a2a10 100%); border-radius: 2px; box-shadow: 0 0 40px 15px rgba(200,100,40,.3);
  animation: ac-fire 4s ease-in-out infinite alternate;
}
.scn-aftermath-of-confrontation .ac-chair {
  position: absolute; bottom: 16%; left: 55%; width: 50px; height: 70px; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius: 10% 10% 40% 40%; box-shadow: 0 4px 20px rgba(0,0,0,.4);
}
.scn-aftermath-of-confrontation .ac-figure-gov {
  position: absolute; bottom: 14%; left: 50%; width: 22px; height: 70px; background: linear-gradient(180deg, #2a2038 0%, #0e0c18 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: ac-figure-gov 9s ease-in-out infinite alternate;
}
.scn-aftermath-of-confrontation .ac-figure-miles {
  position: absolute; bottom: 14%; left: 42%; width: 18px; height: 60px; background: linear-gradient(180deg, #1a1a2a 0%, #080810 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: ac-figure-miles 10s ease-in-out infinite alternate;
}
.scn-aftermath-of-confrontation .ac-shadow {
  position: absolute; bottom: 10%; left: 30%; width: 120px; height: 40px; background: rgba(0,0,0,.4); filter: blur(20px); border-radius: 50%;
}
@keyframes ac-window {
  0% { opacity: .3; box-shadow: inset 0 0 20px rgba(0,0,0,.3); }
  100% { opacity: .6; box-shadow: inset 0 0 40px rgba(0,0,0,.5); }
}
@keyframes ac-fire {
  0% { box-shadow: 0 0 30px 10px rgba(200,100,40,.3); }
  50% { box-shadow: 0 0 60px 20px rgba(220,120,50,.5); }
  100% { box-shadow: 0 0 40px 15px rgba(200,100,40,.4); }
}
@keyframes ac-figure-gov {
  0% { transform: translateY(0) rotate(0deg); }
  50% { transform: translateY(-1px) rotate(1deg); }
  100% { transform: translateY(0) rotate(-1deg); }
}
@keyframes ac-figure-miles {
  0% { transform: translateX(0) rotate(-2deg); }
  50% { transform: translateX(4px) rotate(0deg); }
  100% { transform: translateX(0) rotate(2deg); }
}

.scn-first-night-at-bly {
  background: linear-gradient(180deg, #1b1b3a 0%, #2a2244 50%, #3a2a4a 100%),
              radial-gradient(ellipse at 40% 60%, #4a3a5a 0%, transparent 60%);
}
.scn-first-night-at-bly .room-walls { position:absolute; inset:0; background: linear-gradient(180deg, #1a1a30 0%, #2c2440 50%, #1e1e2e 100%); animation: nb-wall 8s ease-in-out infinite alternate; }
.scn-first-night-at-bly .window { position:absolute; top:15%; left:30%; width:30%; height:40%; background: linear-gradient(180deg, #2a2a4e 0%, #3e3a5a 100%); border-radius: 10% 10% 5% 5%; box-shadow: inset 0 0 20px rgba(0,0,0,.4); animation: nb-window 12s ease-in-out infinite; }
.scn-first-night-at-bly .moon { position:absolute; top:8%; left:40%; width:12%; height:20%; background: radial-gradient(circle, #d0d8e0 0%, #a0aac0 70%); border-radius:50%; box-shadow: 0 0 40px 10px rgba(160,170,192,.3); animation: nb-moon 20s linear infinite alternate; }
.scn-first-night-at-bly .bed { position:absolute; bottom:10%; left:20%; width:60%; height:30%; background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%); border-radius: 8% 8% 4% 4%; box-shadow: 0 -4px 8px rgba(0,0,0,.3), inset 0 4px 8px rgba(255,255,240,.1); }
.scn-first-night-at-bly .figure-bed { position:absolute; bottom:20%; left:30%; width:16%; height:20%; background: linear-gradient(180deg, #3a2a4a 0%, #1a1a2a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: nb-fig 4s ease-in-out infinite; }
.scn-first-night-at-bly .candle { position:absolute; bottom:25%; left:60%; width:4%; height:12%; background: linear-gradient(180deg, #c0a060 0%, #a07030 100%); border-radius: 20% 20% 10% 10%; box-shadow: 0 0 6px 2px #a07030; animation: nb-candle 2s ease-in-out infinite alternate; }
.scn-first-night-at-bly .candle-glow { position:absolute; bottom:22%; left:58%; width:10%; height:18%; background: radial-gradient(circle, rgba(192,160,96,.6) 0%, rgba(192,160,96,0) 100%); border-radius:50%; animation: nb-glow 3s ease-in-out infinite alternate; }
.scn-first-night-at-bly .rug { position:absolute; bottom:2%; left:10%; width:80%; height:8%; background: linear-gradient(90deg, #4a3a4a 0%, #5e4a5e 50%, #4a3a4a 100%); border-radius: 50% 50% 30% 30% / 100% 100% 60% 60%; opacity:.6; }
@keyframes nb-wall { 0% { opacity:.9 } 50% { opacity:1 } 100% { opacity:.85 } }
@keyframes nb-window { 0%,100% { transform: scaleY(1) } 50% { transform: scaleY(1.02) } }
@keyframes nb-moon { 0% { transform: translateX(0) scale(1); opacity:.8 } 50% { transform: translateX(10px) scale(1.05); opacity:1 } 100% { transform: translateX(0) scale(1); opacity:.85 } }
@keyframes nb-fig { 0% { transform: translateY(0) rotate(-1deg) scaleX(1) } 25% { transform: translateY(-2px) rotate(1deg) scaleX(1.02) } 50% { transform: translateY(0) rotate(-1deg) scaleX(1) } 75% { transform: translateY(-1px) rotate(2deg) scaleX(1.01) } 100% { transform: translateY(0) rotate(0) scaleX(1) } }
@keyframes nb-candle { 0% { transform: scaleY(1); opacity:.9 } 50% { transform: scaleY(1.1) scaleX(.95); opacity:1 } 100% { transform: scaleY(1); opacity:.85 } }
@keyframes nb-glow { 0% { transform: scale(1); opacity:.4 } 50% { transform: scale(1.3); opacity:.7 } 100% { transform: scale(1); opacity:.5 } }

.scn-establishing-routine {
  background: linear-gradient(180deg, #f5e6d0 0%, #e8d5b8 50%, #d4c0a0 100%),
              radial-gradient(ellipse at 70% 30%, #fff5e6 0%, transparent 60%);
}
.scn-establishing-routine .window-er { position:absolute; top:10%; left:15%; width:40%; height:50%; background: linear-gradient(180deg, #87ceeb 0%, #b0e0f0 100%); border-radius: 5% 5% 3% 3%; box-shadow: inset 0 0 30px rgba(255,255,240,.2); animation: er-window 10s ease-in-out infinite alternate; }
.scn-establishing-routine .desk { position:absolute; bottom:20%; left:10%; width:50%; height:20%; background: linear-gradient(180deg, #b89a6a 0%, #a08050 100%); border-radius: 4% 4% 2% 2%; box-shadow: 0 4px 8px rgba(0,0,0,.2); animation: er-desk 6s ease-in-out infinite; }
.scn-establishing-routine .chair { position:absolute; bottom:10%; left:15%; width:20%; height:30%; background: linear-gradient(180deg, #8c6a44 0%, #6a4a2a 100%); border-radius: 40% 40% 10% 10% / 70% 70% 20% 20%; transform-origin: bottom center; animation: er-chair 8s ease-in-out infinite alternate; }
.scn-establishing-routine .bed-er { position:absolute; bottom:5%; right:10%; width:35%; height:40%; background: linear-gradient(180deg, #c8b090 0%, #a08060 100%); border-radius: 8% 8% 4% 4%; box-shadow: 0 4px 12px rgba(0,0,0,.2); }
.scn-establishing-routine .figure-stand { position:absolute; bottom:15%; left:40%; width:12%; height:28%; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: er-fig 5s ease-in-out infinite; }
.scn-establishing-routine .sunbeam { position:absolute; top:10%; left:20%; width:8%; height:60%; background: linear-gradient(180deg, rgba(255,255,240,.5) 0%, rgba(255,255,240,0) 100%); transform: rotate(15deg); transform-origin: top left; border-radius: 30%; animation: er-beam 12s ease-in-out infinite alternate; }
.scn-establishing-routine .curtain-left { position:absolute; top:0; left:0; width:15%; height:100%; background: linear-gradient(180deg, #c8b8a0 0%, #a89478 100%); filter: blur(4px); animation: er-curtain 7s ease-in-out infinite alternate; }
.scn-establishing-routine .curtain-right { position:absolute; top:0; right:0; width:15%; height:100%; background: linear-gradient(180deg, #c8b8a0 0%, #a89478 100%); filter: blur(4px); animation: er-curtain 7s ease-in-out infinite alternate-reverse; }
@keyframes er-window { 0% { filter: brightness(.95) } 50% { filter: brightness(1.05) } 100% { filter: brightness(1) } }
@keyframes er-desk { 0%,100% { transform: translateY(0) } 50% { transform: translateY(-2px) } }
@keyframes er-chair { 0% { transform: rotate(0) scaleY(1) } 50% { transform: rotate(2deg) scaleY(1.02) } 100% { transform: rotate(0) scaleY(1) } }
@keyframes er-fig { 0% { transform: translateY(0) rotate(-1deg) } 25% { transform: translateY(-3px) rotate(1deg) } 50% { transform: translateY(0) rotate(-1deg) } 75% { transform: translateY(-2px) rotate(2deg) } 100% { transform: translateY(0) rotate(0) } }
@keyframes er-beam { 0% { opacity:.2; transform: rotate(10deg) } 50% { opacity:.5; transform: rotate(20deg) } 100% { opacity:.3; transform: rotate(15deg) } }
@keyframes er-curtain { 0% { transform: scaleX(1) } 50% { transform: scaleX(1.05) } 100% { transform: scaleX(1) } }

.scn-anticipating-miles {
  background: linear-gradient(180deg, #3a2a1a 0%, #4a3a2a 50%, #2a1a0a 100%),
              radial-gradient(ellipse at 50% 40%, #5a4a3a 0%, transparent 70%);
}
.scn-anticipating-miles .window-frame { position:absolute; top:10%; left:20%; width:60%; height:50%; background: linear-gradient(180deg, #6a5a4a 0%, #4a3a2a 100%); border-radius: 8% 8% 4% 4%; box-shadow: inset 0 0 30px rgba(0,0,0,.6); }
.scn-anticipating-miles .window-glass { position:absolute; top:12%; left:22%; width:56%; height:46%; background: linear-gradient(180deg, #1a1a3e 0%, #2a2a4e 100%); border-radius: 6% 6% 3% 3%; box-shadow: inset 0 0 20px rgba(255,255,240,.1); }
.scn-anticipating-miles .figure-window { position:absolute; bottom:45%; left:40%; width:14%; height:22%; background: linear-gradient(180deg, #2a1a0a 0%, #0a0a00 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: am-fig 6s ease-in-out infinite; }
.scn-anticipating-miles .clock { position:absolute; bottom:15%; right:15%; width:12%; height:12%; background: radial-gradient(circle, #c0a060 0%, #8a6a30 100%); border-radius:50%; box-shadow: 0 0 10px 2px rgba(192,160,96,.3); }
.scn-anticipating-miles .clock-hand { position:absolute; bottom:20%; right:19.5%; width:1.5%; height:8%; background: #3a2a1a; border-radius: 20%; transform-origin: bottom center; animation: am-hand 60s linear infinite; }
.scn-anticipating-miles .candle-am { position:absolute; bottom:20%; left:15%; width:4%; height:12%; background: linear-gradient(180deg, #c0a060 0%, #a07030 100%); border-radius: 20% 20% 10% 10%; box-shadow: 0 0 6px 2px #a07030; animation: am-candle 2.5s ease-in-out infinite alternate; }
.scn-anticipating-miles .candle-glow-am { position:absolute; bottom:18%; left:13%; width:10%; height:16%; background: radial-gradient(circle, rgba(192,160,96,.5) 0%, rgba(192,160,96,0) 100%); border-radius:50%; animation: am-glow 3s ease-in-out infinite alternate; }
.scn-anticipating-miles .stars { position:absolute; inset:0; box-shadow: 20px 15px 0 0 rgba(255,255,240,.3), 60px 40px 0 0 rgba(255,255,240,.2), 100px 25px 0 0 rgba(255,255,240,.4), 150px 60px 0 0 rgba(255,255,240,.25), 200px 30px 0 0 rgba(255,255,240,.35), 250px 70px 0 0 rgba(255,255,240,.2); width:0; height:0; border-radius:50%; animation: am-stars 8s ease-in-out infinite alternate; }
@keyframes am-fig { 0% { transform: translateY(0) rotate(-1deg) } 30% { transform: translateY(-2px) rotate(1deg) } 60% { transform: translateY(0) rotate(-2deg) } 100% { transform: translateY(-1px) rotate(0) } }
@keyframes am-hand { 0% { transform: rotate(0) } 100% { transform: rotate(360deg) } }
@keyframes am-candle { 0% { transform: scaleY(1); opacity:.9 } 50% { transform: scaleY(1.1); opacity:1 } 100% { transform: scaleY(1); opacity:.85 } }
@keyframes am-glow { 0% { transform: scale(1); opacity:.4 } 50% { transform: scale(1.25); opacity:.7 } 100% { transform: scale(1); opacity:.5 } }
@keyframes am-stars { 0% { opacity:.3 } 50% { opacity:.7 } 100% { opacity:.4 } }

.scn-exploring-bly {
  background: linear-gradient(180deg, #87ceeb 0%, #b0e0f0 40%, #90d0a0 60%, #6ab080 100%),
              radial-gradient(ellipse at 70% 20%, #fffbe6 0%, transparent 50%);
}
.scn-exploring-bly .sky-eb { position:absolute; inset:0 0 50% 0; background: linear-gradient(180deg, #87ceeb 0%, #b0e0f0 100%); animation: eb-sky 15s ease-in-out infinite alternate; }
.scn-exploring-bly .sun-eb { position:absolute; top:10%; right:20%; width:10%; height:10%; background: radial-gradient(circle, #fff8d0 0%, #f0d060 60%); border-radius:50%; box-shadow: 0 0 40px 15px rgba(240,208,96,.4); animation: eb-sun 20s ease-in-out infinite alternate; }
.scn-exploring-bly .trees { position:absolute; bottom:30%; left:5%; right:5%; height:35%; background: linear-gradient(180deg, #3a7a3a 0%, #2a5a2a 100%); border-radius: 40% 40% 0 0 / 80% 80% 0 0; animation: eb-trees 10s ease-in-out infinite alternate; }
.scn-exploring-bly .path { position:absolute; bottom:0; left:20%; width:60%; height:30%; background: linear-gradient(180deg, #c8b090 0%, #a08060 100%); border-radius: 50% 50% 30% 30% / 100% 100% 60% 60%; opacity:.7; animation: eb-path 12s ease-in-out infinite alternate; }
.scn-exploring-bly .building { position:absolute; bottom:25%; left:35%; width:30%; height:30%; background: linear-gradient(180deg, #d4c0a0 0%, #b89a6a 100%); border-radius: 10% 10% 4% 4%; box-shadow: 0 4px 12px rgba(0,0,0,.3); }
.scn-exploring-bly .flowers { position:absolute; bottom:20%; left:10%; width:6%; height:8%; background: radial-gradient(circle, #e0a0c0 0%, #b07090 100%); border-radius:50%; box-shadow: 30px -10px 0 0 #d090b0, -20px 15px 0 0 #c080a0, 50px 0 0 0 #e0a0c0; animation: eb-flowers 6s ease-in-out infinite; }
.scn-exploring-bly .figure-walk { position:absolute; bottom:10%; left:15%; width:8%; height:18%; background: linear-gradient(180deg, #1a1a0a 0%, #0a0a00 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: eb-walk 4s ease-in-out infinite; }
.scn-exploring-bly .sunrays { position:absolute; top:0; left:60%; width:20%; height:80%; background: linear-gradient(180deg, rgba(255,255,240,.15) 0%, rgba(255,255,240,0) 100%); transform: rotate(-20deg); transform-origin: top left; border-radius: 40%; animation: eb-rays 18s linear infinite; }
.scn-exploring-bly .cloud-eb { position:absolute; top:5%; left:0; width:20%; height:8%; background: linear-gradient(180deg, rgba(255,255,255,.6) 0%, rgba(255,255,255,.1) 100%); border-radius: 50%; filter: blur(6px); animation: eb-cloud 40s linear infinite; }
@keyframes eb-sky { 0% { opacity:.8 } 50% { opacity:1 } 100% { opacity:.9 } }
@keyframes eb-sun { 0% { transform: translate(0,0) scale(1); opacity:.9 } 50% { transform: translate(5px,-5px) scale(1.05); opacity:1 } 100% { transform: translate(0,0) scale(1); opacity:.95 } }
@keyframes eb-trees { 0% { transform: scaleY(1) } 50% { transform: scaleY(1.02) } 100% { transform: scaleY(1) } }
@keyframes eb-path { 0%,100% { transform: scaleY(1) translateY(0) } 50% { transform: scaleY(1.02) translateY(-2px) } }
@keyframes eb-flowers { 0% { transform: rotate(-5deg) } 50% { transform: rotate(5deg) } 100% { transform: rotate(-5deg) } }
@keyframes eb-walk { 0% { transform: translateX(0) translateY(0) rotate(-2deg) } 25% { transform: translateX(10px) translateY(-2px) rotate(1deg) } 50% { transform: translateX(20px) translateY(0) rotate(-1deg) } 75% { transform: translateX(30px) translateY(-1px) rotate(2deg) } 100% { transform: translateX(40px) translateY(0) rotate(0) } }
@keyframes eb-rays { 0% { transform: rotate(-20deg); opacity:0 } 20% { opacity:.8 } 50% { transform: rotate(0deg); opacity:1 } 80% { opacity:.6 } 100% { transform: rotate(20deg); opacity:0 } }
@keyframes eb-cloud { 0% { transform: translateX(-30px) } 100% { transform: translateX(120vw) } }

/* christmas-eve-fire */
.scn-christmas-eve-fire { background:
  linear-gradient(180deg, #2a1a0a 0%, #4a2a1a 50%, #3a2010 100%),
  radial-gradient(ellipse at 50% 80%, #c8553d 0%, transparent 60%);
}
.scn-christmas-eve-fire .room { position:absolute; inset:0; background:linear-gradient(180deg, #1a0e05 0%, transparent 40%, #2a1a0a 100%); }
.scn-christmas-eve-fire .fireplace { position:absolute; bottom:20%; left:50%; width:160px; height:140px; transform:translateX(-50%); background:linear-gradient(180deg, #2a2a1e 0%, #1a1a10 100%); border-radius:20% 20% 8% 8%; box-shadow: inset 0 -10px 20px rgba(0,0,0,.6); }
.scn-christmas-eve-fire .hearth { position:absolute; bottom:16%; left:50%; width:180px; height:30px; transform:translateX(-50%); background:linear-gradient(180deg, #3a2a1a 0%, #2a1a0a 100%); border-radius:10%; }
.scn-christmas-eve-fire .fire { position:absolute; bottom:28%; left:50%; width:80px; height:90px; transform:translateX(-50%); background:radial-gradient(ellipse at 50% 100%, #e08040 0%, #a04a20 60%, transparent 90%); border-radius:50%/20% 20% 50% 50%; animation: cef-fire 1.5s ease-in-out infinite alternate; }
.scn-christmas-eve-fire .log-a { position:absolute; bottom:32%; left:50%; width:80px; height:14px; transform:translateX(-50%) rotate(-8deg); background:linear-gradient(180deg, #3a1a0a 0%, #1a0e05 100%); border-radius:6px; box-shadow: 0 0 6px #a04a20; animation: cef-log 2s ease-in-out infinite; }
.scn-christmas-eve-fire .log-b { position:absolute; bottom:32%; left:50%; width:80px; height:14px; transform:translateX(-50%) rotate(8deg); background:linear-gradient(180deg, #3a1a0a 0%, #1a0e05 100%); border-radius:6px; animation: cef-log 2.5s ease-in-out infinite reverse; }
.scn-christmas-eve-fire .mantel { position:absolute; bottom:57%; left:50%; width:180px; height:12px; transform:translateX(-50%); background:linear-gradient(180deg, #5a3a2a 0%, #4a2a1a 100%); border-radius:4px; box-shadow: 0 4px 8px rgba(0,0,0,.4); }
.scn-christmas-eve-fire .silhouette-group { position:absolute; bottom:22%; left:30%; width:100px; height:60px; background:linear-gradient(180deg, #1a0e05 0%, #0a0502 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; animation: cef-sway 4s ease-in-out infinite; }
.scn-christmas-eve-fire .glow { position:absolute; bottom:10%; left:30%; width:40%; height:40%; background:radial-gradient(ellipse at 50% 50%, #e08040 0%, transparent 70%); filter:blur(20px); animation: cef-glow 3s ease-in-out infinite alternate; }
@keyframes cef-fire { 0% { transform:translateX(-50%) scaleY(1) opacity: .9; } 50% { transform:translateX(-50%) scaleY(1.15) scaleX(.95) opacity:1; } 100% { transform:translateX(-50%) scaleY(1) scaleX(1.05) opacity:.85; } }
@keyframes cef-log { 0% { transform:translateX(-50%) rotate(-8deg) scaleX(1); } 50% { transform:translateX(-50%) rotate(-6deg) scaleX(.98); } 100% { transform:translateX(-50%) rotate(-8deg) scaleX(1); } }
@keyframes cef-sway { 0% { transform:translateX(0) rotate(-1deg); } 50% { transform:translateX(3px) rotate(1deg); } 100% { transform:translateX(0) rotate(-1deg); } }
@keyframes cef-glow { 0% { opacity:.6; } 50% { opacity:1; transform:scaleX(1.1); } 100% { opacity:.7; transform:scaleX(1); } }

/* discussion-of-horror */
.scn-discussion-of-horror { background:
  linear-gradient(180deg, #1a0e05 0%, #2a1a0a 50%, #1a1208 100%),
  radial-gradient(ellipse at 50% 80%, #c8553d 0%, transparent 70%);
}
.scn-discussion-of-horror .room { position:absolute; inset:0; background:linear-gradient(180deg, #0a0502 0%, transparent 50%, #1a0e05 100%); }
.scn-discussion-of-horror .fireplace { position:absolute; bottom:10%; left:60%; width:120px; height:150px; background:linear-gradient(180deg, #2a2a1e 0%, #1a1a10 100%); border-radius:15% 15% 5% 5%; box-shadow: inset 0 -8px 16px rgba(0,0,0,.5); }
.scn-discussion-of-horror .fire { position:absolute; bottom:18%; left:60%; width:60px; height:80px; transform:translateX(-50%); background:radial-gradient(ellipse at 50% 100%, #e08040 0%, #a04a20 70%, transparent); animation: doh-fire 2s ease-in-out infinite alternate; }
.scn-discussion-of-horror .chair { position:absolute; bottom:8%; left:25%; width:70px; height:90px; background:linear-gradient(180deg, #3a2a1a 0%, #2a1a0a 100%); border-radius:30% 30% 10% 10%; }
.scn-discussion-of-horror .figure { position:absolute; bottom:18%; left:28%; width:40px; height:70px; background:linear-gradient(180deg, #0a0502 0%, #1a0e05 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: doh-breathe 5s ease-in-out infinite; }
.scn-discussion-of-horror .arm { position:absolute; bottom:22%; left:35%; width:30px; height:12px; background:linear-gradient(180deg, #1a0e05 0%, #0a0502 100%); border-radius:40% 40% 20% 20%; transform-origin: right center; animation: doh-arm 4s ease-in-out infinite; }
.scn-discussion-of-horror .shadow { position:absolute; bottom:5%; left:50%; width:140px; height:80px; background:radial-gradient(ellipse, rgba(0,0,0,.6) 0%, transparent 70%); filter:blur(10px); animation: doh-shadow 6s ease-in-out infinite; }
@keyframes doh-fire { 0% { transform: translateX(-50%) scaleY(1); } 50% { transform: translateX(-50%) scaleY(1.1) scaleX(.95); } 100% { transform: translateX(-50%) scaleY(1) scaleX(1.05); } }
@keyframes doh-breathe { 0% { transform: scaleY(1) translateY(0); } 50% { transform: scaleY(1.02) translateY(-2px); } 100% { transform: scaleY(1) translateY(0); } }
@keyframes doh-arm { 0% { transform: rotate(0deg); } 30% { transform: rotate(15deg); } 70% { transform: rotate(-10deg); } 100% { transform: rotate(0deg); } }
@keyframes doh-shadow { 0% { opacity:.6; } 50% { opacity:1; transform:scaleX(1.1) translateX(5px); } 100% { opacity:.6; transform:scaleX(1) translateX(0); } }

/* douglas-lets-out-secret */
.scn-douglas-lets-out-secret { background:
  linear-gradient(180deg, #1a0e05 0%, #2a1a0a 40%, #1a1208 100%),
  radial-gradient(ellipse at 50% 80%, #c8553d 0%, transparent 60%);
}
.scn-douglas-lets-out-secret .room { position:absolute; inset:0; background:linear-gradient(180deg, #0a0502 0%, transparent 40%, #1a0e05 100%); }
.scn-douglas-lets-out-secret .fireplace { position:absolute; bottom:10%; right:10%; width:100px; height:130px; background:linear-gradient(180deg, #2a2a1e 0%, #1a1a10 100%); border-radius:12% 12% 5% 5%; }
.scn-douglas-lets-out-secret .fire { position:absolute; bottom:18%; right:10%; width:50px; height:70px; transform:translateX(-50%); background:radial-gradient(ellipse at 50% 100%, #e08040 0%, #a04a20 70%, transparent); animation: dls-fire 1.8s ease-in-out infinite alternate; }
.scn-douglas-lets-out-secret .desk { position:absolute; bottom:5%; left:5%; width:50%; height:50%; background:linear-gradient(180deg, #3a2a1a 0%, #2a1a0a 100%); border-radius:4px; box-shadow: 0 -4px 12px rgba(0,0,0,.5); }
.scn-douglas-lets-out-secret .hand { position:absolute; bottom:30%; left:30%; width:24px; height:18px; background:linear-gradient(180deg, #1a0e05 0%, #0a0502 100%); border-radius:50% 50% 40% 40%; transform-origin: bottom right; animation: dls-hand 4s ease-in-out infinite; }
.scn-douglas-lets-out-secret .object { position:absolute; bottom:22%; left:35%; width:20px; height:14px; background:linear-gradient(180deg, #b08040 0%, #8a6020 100%); border-radius:4px; transform:rotate(-15deg); animation: dls-object 5s ease-in-out infinite; }
.scn-douglas-lets-out-secret .candle { position:absolute; bottom:15%; left:10%; width:8px; height:40px; background:linear-gradient(180deg, #f0e0c0 0%, #d0b080 100%); border-radius:2px; animation: dls-candle 3s ease-in-out infinite; }
.scn-douglas-lets-out-secret .wax { position:absolute; bottom:20%; left:10%; width:12px; height:6px; background:radial-gradient(circle, #f0e0c0 0%, transparent 70%); filter:blur(2px); animation: dls-wax 3s ease-in-out infinite; }
@keyframes dls-fire { 0% { transform: translateX(-50%) scaleY(1); } 50% { transform: translateX(-50%) scaleY(1.12) scaleX(.95); } 100% { transform: translateX(-50%) scaleY(1) scaleX(1.05); } }
@keyframes dls-hand { 0% { transform: rotate(-10deg) translate(0,0); } 30% { transform: rotate(0deg) translate(5px,-3px); } 60% { transform: rotate(-15deg) translate(3px,0); } 100% { transform: rotate(-10deg) translate(0,0); } }
@keyframes dls-object { 0% { transform: rotate(-15deg) scale(1); opacity:.8; } 50% { transform: rotate(-5deg) scale(1.1); opacity:1; } 100% { transform: rotate(-15deg) scale(1); opacity:.8; } }
@keyframes dls-candle { 0% { transform: scaleY(1); } 25% { transform: scaleY(1.02); } 75% { transform: scaleY(0.98); } 100% { transform: scaleY(1); } }
@keyframes dls-wax { 0% { opacity:.5; transform: scale(1); } 50% { opacity:1; transform: scale(1.2); } 100% { opacity:.5; transform: scale(1); } }

/* governess-backstory */
.scn-governess-backstory { background:
  linear-gradient(180deg, #1a0e05 0%, #2a1a0a 40%, #1a1208 100%),
  radial-gradient(ellipse at 50% 70%, #c8553d 0%, transparent 65%);
}
.scn-governess-backstory .room { position:absolute; inset:0; background:linear-gradient(180deg, #0a0502 0%, transparent 50%, #1a0e05 100%); }
.scn-governess-backstory .fireplace { position:absolute; bottom:15%; left:5%; width:80px; height:110px; background:linear-gradient(180deg, #2a2a1e 0%, #1a1a10 100%); border-radius:10% 10% 4% 4%; }
.scn-governess-backstory .fire { position:absolute; bottom:22%; left:5%; width:40px; height:60px; transform:translateX(-50%); background:radial-gradient(ellipse at 50% 100%, #e08040 0%, #a04a20 70%, transparent); animation: gbs-fire 2s ease-in-out infinite alternate; }
.scn-governess-backstory .chair { position:absolute; bottom:8%; right:30%; width:60px; height:80px; background:linear-gradient(180deg, #3a2a1a 0%, #2a1a0a 100%); border-radius:25% 25% 10% 10%; }
.scn-governess-backstory .figure { position:absolute; bottom:15%; right:32%; width:30px; height:55px; background:linear-gradient(180deg, #0a0502 0%, #1a0e05 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: gbs-breathe 6s ease-in-out infinite; }
.scn-governess-backstory .book { position:absolute; bottom:22%; right:28%; width:20px; height:14px; background:linear-gradient(180deg, #5a3a2a 0%, #4a2a1a 100%); border-radius:2px; transform:rotate(-10deg); animation: gbs-book 8s ease-in-out infinite; }
.scn-governess-backstory .page-glow { position:absolute; bottom:20%; right:28%; width:24px; height:20px; background:radial-gradient(ellipse, #e08040 0%, transparent 70%); filter:blur(6px); opacity:.3; animation: gbs-page 4s ease-in-out infinite alternate; }
@keyframes gbs-fire { 0% { transform: translateX(-50%) scaleY(1); } 50% { transform: translateX(-50%) scaleY(1.1) scaleX(.95); } 100% { transform: translateX(-50%) scaleY(1) scaleX(1.05); } }
@keyframes gbs-breathe { 0% { transform: scaleY(1) translateY(0); } 50% { transform: scaleY(1.01) translateY(-1px); } 100% { transform: scaleY(1) translateY(0); } }
@keyframes gbs-book { 0% { transform: rotate(-10deg) scale(1); } 30% { transform: rotate(-5deg) scale(1.02); } 70% { transform: rotate(-15deg) scale(0.98); } 100% { transform: rotate(-10deg) scale(1); } }
@keyframes gbs-page { 0% { opacity:.2; } 50% { opacity:.4; transform:scale(1.1); } 100% { opacity:.2; } }

.scn-douglas-prepares-reading {
  background: linear-gradient(180deg, #2c1a0e 0%, #4a2c1a 30%, #3a2312 70%, #1a0e05 100%), radial-gradient(ellipse at 50% 80%, #ffb347 0%, transparent 50%);
}
.scn-douglas-prepares-reading .bg { position:absolute; inset:0; background: linear-gradient(135deg, #2a1a0a 0%, #1a0e05 100%); }
.scn-douglas-prepares-reading .fireplace { position:absolute; bottom:10%; left:20%; width:40%; height:50%; background: linear-gradient(180deg, #5a3a22 0%, #2a1a0a 100%); border-radius: 10% 10% 20% 20%; box-shadow: inset 0 0 30px #1a0e05; animation: dpr-fire 2s ease-in-out infinite alternate; }
.scn-douglas-prepares-reading .armchair { position:absolute; bottom:12%; right:25%; width:30%; height:35%; background: linear-gradient(150deg, #6b4226 0%, #3a2212 100%); border-radius: 40% 40% 20% 20%; transform: scaleX(0.8); }
.scn-douglas-prepares-reading .window { position:absolute; top:15%; right:20%; width:20%; height:30%; background: linear-gradient(180deg, #ffcc99 0%, #cc9966 100%); border: 4px solid #4a2a1a; border-radius: 10%; opacity:0.5; animation: dpr-window 10s ease-in-out infinite alternate; }
.scn-douglas-prepares-reading .figure { position:absolute; bottom:20%; left:30%; width:15%; height:40%; background: linear-gradient(180deg, #1a1a1a 0%, #0d0d0d 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: dpr-fig 6s ease-in-out infinite; }
.scn-douglas-prepares-reading .glow { position:absolute; bottom:5%; left:30%; width:50%; height:20%; background: radial-gradient(ellipse, rgba(255,179,71,0.8) 0%, transparent 70%); animation: dpr-glow 3s ease-in-out infinite alternate; }
.scn-douglas-prepares-reading .mantel { position:absolute; bottom:50%; left:20%; width:40%; height:5%; background: linear-gradient(90deg, #4a2a1a 0%, #6a3a22 50%, #4a2a1a 100%); border-radius: 10%; transform: translateY(-5px); }
@keyframes dpr-fire { 0% { box-shadow: inset 0 0 20px #ff6600, 0 0 10px #ff6600; } 50% { box-shadow: inset 0 0 30px #ff3300, 0 0 20px #ff3300; } 100% { box-shadow: inset 0 0 20px #ff6600, 0 0 10px #ff6600; } }
@keyframes dpr-window { 0% { opacity:0.3; box-shadow: 0 0 10px #ffcc99; } 50% { opacity:0.7; box-shadow: 0 0 30px #ffb347; } 100% { opacity:0.4; box-shadow: 0 0 15px #cc9966; } }
@keyframes dpr-fig { 0% { transform: translateX(0) rotate(0deg); } 25% { transform: translateX(5px) rotate(2deg); } 50% { transform: translateX(-5px) rotate(-2deg); } 75% { transform: translateX(3px) rotate(1deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes dpr-glow { 0% { opacity:0.5; transform: scale(1); } 50% { opacity:1; transform: scale(1.1); } 100% { opacity:0.6; transform: scale(0.9); } }

.scn-anticipation-thursday-night {
  background: linear-gradient(180deg, #1c1a12 0%, #2a241a 30%, #3a3022 70%, #1c1810 100%), radial-gradient(ellipse at 50% 60%, #c8a050 0%, transparent 60%);
}
.scn-anticipation-thursday-night .bg-wall { position:absolute; inset:0; background: linear-gradient(135deg, #1a1410 0%, #0d0a07 100%); }
.scn-anticipation-thursday-night .table { position:absolute; bottom:15%; left:25%; width:50%; height:20%; background: linear-gradient(180deg, #6b4a2a 0%, #3a2a1a 100%); border-radius: 10% 10% 30% 30%; transform: scaleY(0.5); }
.scn-anticipation-thursday-night .lamp { position:absolute; bottom:30%; left:35%; width:10%; height:25%; background: radial-gradient(circle at 50% 0, #ffe680 0%, #cc9933 100%); border-radius: 50% 50% 30% 30%; box-shadow: 0 0 40px #ffcc66; animation: atn-lamp 5s ease-in-out infinite alternate; }
.scn-anticipation-thursday-night .clock { position:absolute; top:15%; right:20%; width:15%; height:20%; background: linear-gradient(180deg, #8b6b3a 0%, #4a3a1a 100%); border-radius: 50%; border: 3px solid #6a4a2a; animation: atn-clock 3s linear infinite; }
.scn-anticipation-thursday-night .chair-l { position:absolute; bottom:12%; left:18%; width:15%; height:30%; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius: 40% 40% 20% 20%; transform: rotate(5deg); animation: atn-chair 8s ease-in-out infinite; }
.scn-anticipation-thursday-night .chair-r { position:absolute; bottom:12%; right:18%; width:15%; height:30%; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius: 40% 40% 20% 20%; transform: rotate(-5deg); animation: atn-chair 8s ease-in-out infinite reverse; }
.scn-anticipation-thursday-night .candle { position:absolute; bottom:35%; left:50%; width:4%; height:15%; background: linear-gradient(180deg, #ffebcc 0%, #ccaa66 100%); border-radius: 10%; box-shadow: 0 0 15px #ffcc66; animation: atn-candle 4s ease-in-out infinite alternate; }
@keyframes atn-lamp { 0% { opacity:0.7; box-shadow: 0 0 20px #ffcc66; } 50% { opacity:1; box-shadow: 0 0 50px #ffe680; } 100% { opacity:0.8; box-shadow: 0 0 30px #ffcc66; } }
@keyframes atn-clock { 0% { transform: rotate(0deg); } 50% { transform: rotate(5deg); } 100% { transform: rotate(0deg); } }
@keyframes atn-chair { 0% { transform: rotate(5deg) translateY(0); } 50% { transform: rotate(8deg) translateY(-3px); } 100% { transform: rotate(5deg) translateY(0); } }
@keyframes atn-candle { 0% { height:15%; opacity:0.9; } 50% { height:18%; opacity:1; } 100% { height:14%; opacity:0.8; } }

.scn-douglas-reads-manuscript {
  background: linear-gradient(180deg, #2a1a10 0%, #3a2a1a 30%, #2a1a10 70%, #1a0e05 100%), radial-gradient(ellipse at 50% 60%, #b08040 0%, transparent 60%);
}
.scn-douglas-reads-manuscript .bg { position:absolute; inset:0; background: linear-gradient(135deg, #1a1410 0%, #0d0a07 100%); }
.scn-douglas-reads-manuscript .desk { position:absolute; bottom:10%; left:30%; width:40%; height:30%; background: linear-gradient(180deg, #5a3a22 0%, #2a1a0a 100%); border-radius: 10% 10% 20% 20%; transform: perspective(500px) rotateX(30deg); }
.scn-douglas-reads-manuscript .book { position:absolute; bottom:20%; left:35%; width:30%; height:20%; background: linear-gradient(180deg, #8b6b3a 0%, #4a3a1a 100%); border-radius: 5% 5% 10% 10%; border: 2px solid #6a4a2a; pointer-events: none; animation: drm-book 12s ease-in-out infinite alternate; }
.scn-douglas-reads-manuscript .candle { position:absolute; bottom:22%; left:50%; width:4%; height:18%; background: linear-gradient(180deg, #ffebcc 0%, #ccaa66 100%); border-radius: 10%; box-shadow: 0 0 20px #ffcc66; animation: drm-candle 3s ease-in-out infinite alternate; }
.scn-douglas-reads-manuscript .glow { position:absolute; bottom:15%; left:40%; width:20%; height:20%; background: radial-gradient(ellipse, rgba(255,200,100,0.6) 0%, transparent 80%); animation: drm-glow 4s ease-in-out infinite alternate; }
.scn-douglas-reads-manuscript .hand { position:absolute; bottom:22%; left:38%; width:8%; height:12%; background: linear-gradient(180deg, #cfa882 0%, #b08a62 100%); border-radius: 30% 30% 20% 20%; transform: rotate(-20deg); animation: drm-hand 6s ease-in-out infinite; }
.scn-douglas-reads-manuscript .figure { position:absolute; bottom:15%; left:20%; width:20%; height:50%; background: linear-gradient(180deg, #1a1a1a 0%, #0d0d0d 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform: scaleX(0.6); animation: drm-fig 7s ease-in-out infinite; }
@keyframes drm-book { 0% { transform: scaleY(1) translateY(0); } 25% { transform: scaleY(1.02) translateY(-2px); } 75% { transform: scaleY(0.98) translateY(1px); } 100% { transform: scaleY(1) translateY(0); } }
@keyframes drm-candle { 0% { height:18%; opacity:0.9; transform: scaleX(1); } 50% { height:20%; opacity:1; transform: scaleX(1.1); } 100% { height:17%; opacity:0.8; transform: scaleX(0.9); } }
@keyframes drm-glow { 0% { opacity:0.5; transform: scale(1); } 50% { opacity:0.8; transform: scale(1.2); } 100% { opacity:0.6; transform: scale(0.9); } }
@keyframes drm-hand { 0% { transform: rotate(-20deg) translateX(0); } 25% { transform: rotate(-15deg) translateX(3px); } 50% { transform: rotate(-25deg) translateX(-3px); } 75% { transform: rotate(-18deg) translateX(2px); } 100% { transform: rotate(-20deg) translateX(0); } }
@keyframes drm-fig { 0% { transform: scaleX(0.6) translateY(0); } 50% { transform: scaleX(0.65) translateY(-5px); } 100% { transform: scaleX(0.6) translateY(0); } }

.scn-prologue-context {
  background: linear-gradient(180deg, #2c1a0e 0%, #4a2c1a 30%, #3a2312 70%, #1a0e05 100%), radial-gradient(ellipse at 50% 70%, #ffa64d 0%, transparent 50%);
}
.scn-prologue-context .bg { position:absolute; inset:0; background: linear-gradient(135deg, #1a1410 0%, #0d0a07 100%); }
.scn-prologue-context .fireplace { position:absolute; bottom:5%; left:15%; width:70%; height:60%; background: linear-gradient(180deg, #5a3a22 0%, #2a1a0a 100%); border-radius: 20% 20% 30% 30%; box-shadow: inset 0 0 30px #1a0e05; animation: pcx-fireplace 4s ease-in-out infinite alternate; }
.scn-prologue-context .fire-glow { position:absolute; bottom:10%; left:25%; width:50%; height:30%; background: radial-gradient(ellipse, rgba(255,153,51,0.8) 0%, transparent 80%); animation: pcx-fire 3s ease-in-out infinite alternate; }
.scn-prologue-context .fig1 { position:absolute; bottom:15%; left:20%; width:18%; height:35%; background: linear-gradient(180deg, #2a1a1a 0%, #1a0e0e 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: pcx-fig 10s ease-in-out infinite; }
.scn-prologue-context .fig2 { position:absolute; bottom:15%; right:20%; width:18%; height:35%; background: linear-gradient(180deg, #2a1a1a 0%, #1a0e0e 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: pcx-fig 12s ease-in-out infinite reverse; }
.scn-prologue-context .fig3 { position:absolute; bottom:18%; left:45%; width:20%; height:30%; background: linear-gradient(180deg, #3a2a1a 0%, #1a0e0a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: pcx-fig 8s ease-in-out infinite; }
.scn-prologue-context .shadow { position:absolute; bottom:0; left:0; right:0; height:20%; background: linear-gradient(180deg, transparent 0%, rgba(0,0,0,0.7) 100%); animation: pcx-shadow 6s ease-in-out infinite; }
@keyframes pcx-fireplace { 0% { box-shadow: inset 0 0 20px #1a0e05; } 50% { box-shadow: inset 0 0 40px #cc6633; } 100% { box-shadow: inset 0 0 20px #1a0e05; } }
@keyframes pcx-fire { 0% { opacity:0.6; transform: scale(1); } 50% { opacity:1; transform: scale(1.1) translateY(-5px); } 100% { opacity:0.7; transform: scale(0.9) translateY(0); } }
@keyframes pcx-fig { 0% { transform: rotate(0deg) translateX(0); } 25% { transform: rotate(2deg) translateX(3px); } 50% { transform: rotate(-2deg) translateX(-3px); } 75% { transform: rotate(1deg) translateX(2px); } 100% { transform: rotate(0deg) translateX(0); } }
@keyframes pcx-shadow { 0% { opacity:0.6; } 50% { opacity:0.8; } 100% { opacity:0.6; } }

.scn-harley-street-interview {
  position: relative; width: 100%; height: 100%; overflow: hidden;
  background: linear-gradient(180deg, #f5f0e8 0%, #d4cbb8 50%, #b8a98c 100%), radial-gradient(circle at 70% 60%, #fff 0%, transparent 50%);
}
.scn-harley-street-interview .wall {
  position: absolute; inset: 0; background: linear-gradient(180deg, #e8ddd0 0%, #cbb7a3 100%);
}
.scn-harley-street-interview .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%; background: linear-gradient(180deg, #8b7a66 0%, #6b5947 100%);
}
.scn-harley-street-interview .window {
  position: absolute; top: 20%; left: 60%; width: 120px; height: 180px; background: linear-gradient(180deg, #d4e8f0 0%, #a8c8d8 100%); border: 8px solid #6b5947; animation: hi-window 8s ease-in-out infinite alternate;
}
.scn-harley-street-interview .curtain {
  position: absolute; top: 20%; left: 60%; width: 40px; height: 180px; background: linear-gradient(180deg, #b8a98c 0%, #8b7a66 100%); border-radius: 0 50% 50% 0; animation: hi-curtain 12s ease-in-out infinite alternate;
}
.scn-harley-street-interview .gentleman {
  position: absolute; bottom: 30%; left: 30%; width: 50px; height: 120px; background: linear-gradient(180deg, #2c2a28 0%, #1a1816 100%); border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%; transform-origin: bottom center; animation: hi-gentleman 6s ease-in-out infinite;
}
.scn-harley-street-interview .lamp {
  position: absolute; bottom: 35%; left: 35%; width: 12px; height: 12px; background: #ffd080; border-radius: 50%; box-shadow: 0 0 20px 6px rgba(255,208,128,0.6); animation: hi-glow 4s ease-in-out infinite alternate;
}
@keyframes hi-window { 0%,100% { opacity:0.9 } 50% { opacity:1 } }
@keyframes hi-curtain { 0% { transform: translateX(-5px) } 50% { transform: translateX(3px) } 100% { transform: translateX(-5px) } }
@keyframes hi-gentleman { 0%,100% { transform: translateY(0) rotate(-2deg) } 50% { transform: translateY(-2px) rotate(2deg) } }
@keyframes hi-glow { 0% { box-shadow: 0 0 15px 4px rgba(255,208,128,0.4); opacity:0.8 } 50% { box-shadow: 0 0 30px 10px rgba(255,208,128,0.8); opacity:1 } 100% { box-shadow: 0 0 20px 6px rgba(255,208,128,0.5); opacity:0.85 } }

.scn-douglas-begins-reading {
  position: relative; width: 100%; height: 100%; overflow: hidden;
  background: linear-gradient(180deg, #2b1f1a 0%, #1a1210 100%), radial-gradient(ellipse at 50% 80%, #d4722a 0%, transparent 60%);
}
.scn-douglas-begins-reading .fireplace {
  position: absolute; bottom: 0; left: 10%; width: 150px; height: 200px; background: linear-gradient(180deg, #3a2a20 0%, #1c1210 100%); border-radius: 20% 20% 5% 5%; box-shadow: inset 0 -20px 30px #000;
}
.scn-douglas-begins-reading .fire-glow {
  position: absolute; bottom: 10%; left: 20%; width: 60px; height: 80px; background: radial-gradient(circle, #ff8c30 0%, #ff5500 50%, transparent 70%); animation: dr-fire 1.5s ease-in-out infinite alternate;
}
.scn-douglas-begins-reading .armchair {
  position: absolute; bottom: 10%; right: 20%; width: 100px; height: 130px; background: linear-gradient(180deg, #5a3e2e 0%, #3c281c 100%); border-radius: 40% 40% 20% 20%; box-shadow: 0 10px 20px rgba(0,0,0,0.5);
}
.scn-douglas-begins-reading .figure {
  position: absolute; bottom: 20%; right: 25%; width: 40px; height: 90px; background: linear-gradient(180deg, #2a2a2a 0%, #1a1a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: dr-figure 6s ease-in-out infinite;
}
.scn-douglas-begins-reading .book {
  position: absolute; bottom: 30%; right: 30%; width: 30px; height: 40px; background: #4a3a2a; border-radius: 10% 10% 5% 5%; transform: rotate(10deg); animation: dr-book 4s ease-in-out infinite;
}
.scn-douglas-begins-reading .candle {
  position: absolute; bottom: 25%; right: 10%; width: 8px; height: 30px; background: linear-gradient(180deg, #e0c080 0%, #b09040 100%); border-radius: 5px; box-shadow: 0 0 10px 3px #ffd080; animation: dr-candle 2s ease-in-out infinite;
}
@keyframes dr-fire { 0% { transform: scaleX(0.9) scaleY(1); opacity:0.8 } 50% { transform: scaleX(1.1) scaleY(1.1); opacity:1 } 100% { transform: scaleX(0.95) scaleY(0.95); opacity:0.85 } }
@keyframes dr-figure { 0%,100% { transform: translateY(0) rotate(-1deg) } 50% { transform: translateY(-3px) rotate(1deg) } }
@keyframes dr-book { 0%,100% { transform: rotate(8deg) translateX(0) } 50% { transform: rotate(12deg) translateX(2px) } }
@keyframes dr-candle { 0% { box-shadow: 0 0 10px 3px #ffd080, 0 0 20px 6px rgba(255,208,128,0.3); opacity:0.9 } 50% { box-shadow: 0 0 15px 5px #ffc060, 0 0 30px 10px rgba(255,192,96,0.5); opacity:1 } 100% { box-shadow: 0 0 12px 4px #ffd080, 0 0 25px 8px rgba(255,208,128,0.4); opacity:0.95 } }

.scn-journey-to-bly {
  position: relative; width: 100%; height: 100%; overflow: hidden;
  background: linear-gradient(180deg, #707880 0%, #909aa0 40%, #b0b8bd 100%), radial-gradient(circle at 20% 50%, #a0aab0 0%, transparent 70%);
}
.scn-journey-to-bly .sky-overcast {
  position: absolute; top: 0; left: 0; right: 0; height: 60%; background: linear-gradient(180deg, #606870 0%, #808890 50%, #a0a8b0 100%);
}
.scn-journey-to-bly .road {
  position: absolute; bottom: 0; left: 0; right: 0; height: 40%; background: linear-gradient(180deg, #4a4a40 0%, #3a3a32 100%);
}
.scn-journey-to-bly .carriage {
  position: absolute; bottom: 25%; left: 30%; width: 120px; height: 80px; background: #2c2c26; border-radius: 10% 10% 30% 30%; box-shadow: 0 10px 20px rgba(0,0,0,0.5); animation: jb-carriage 0.8s ease-in-out infinite;
}
.scn-journey-to-bly .wheel-left,
.scn-journey-to-bly .wheel-right {
  position: absolute; bottom: 15%; width: 40px; height: 40px; background: #1a1a14; border: 4px solid #3a3a32; border-radius: 50%; animation: jb-wheel 2s linear infinite;
}
.scn-journey-to-bly .wheel-left { left: 32%; }
.scn-journey-to-bly .wheel-right { left: 55%; }
.scn-journey-to-bly .driver {
  position: absolute; bottom: 50%; left: 35%; width: 30px; height: 50px; background: #1a1a14; border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%; animation: jb-driver 0.8s ease-in-out infinite;
}
.scn-journey-to-bly .tree {
  position: absolute; bottom: 10%; right: 10%; width: 30px; height: 100px; background: #3a4a3a; border-radius: 30% 30% 10% 10%; animation: jb-tree 3s ease-in-out infinite;
}
@keyframes jb-carriage { 0% { transform: translateY(0) rotate(-1deg) } 25% { transform: translateY(-2px) rotate(0deg) } 50% { transform: translateY(0) rotate(1deg) } 75% { transform: translateY(2px) rotate(0deg) } 100% { transform: translateY(0) rotate(-1deg) } }
@keyframes jb-wheel { 0% { transform: rotate(0deg) } 50% { transform: rotate(180deg) } 100% { transform: rotate(360deg) } }
@keyframes jb-driver { 0%,100% { transform: translateY(0) } 50% { transform: translateY(-2px) } }
@keyframes jb-tree { 0% { transform: rotate(-3deg) } 50% { transform: rotate(3deg) } 100% { transform: rotate(-3deg) } }

.scn-arrival-bly {
  position: relative; width: 100%; height: 100%; overflow: hidden;
  background: linear-gradient(180deg, #87CEEB 0%, #b0e0e6 40%, #e0f0f8 100%), radial-gradient(circle at 30% 80%, #fff 0%, transparent 60%);
}
.scn-arrival-bly .sky-bright {
  position: absolute; top: 0; left: 0; right: 0; height: 55%; background: linear-gradient(180deg, #87CEEB 0%, #b0dae0 100%); animation: ab-sky 10s ease-in-out infinite alternate;
}
.scn-arrival-bly .lawn {
  position: absolute; bottom: 0; left: 0; right: 0; height: 45%; background: linear-gradient(180deg, #6aa84f 0%, #4d8a3a 100%); animation: ab-lawn 8s ease-in-out infinite alternate;
}
.scn-arrival-bly .house-front {
  position: absolute; bottom: 25%; left: 20%; width: 60%; height: 40%; background: linear-gradient(180deg, #f0e6d0 0%, #d4c8b0 100%); border-radius: 5% 5% 0 0; box-shadow: 0 10px 20px rgba(0,0,0,0.1);
}
.scn-arrival-bly .window-left,
.scn-arrival-bly .window-right {
  position: absolute; bottom: 30%; width: 60px; height: 80px; background: linear-gradient(180deg, #a0d8ef 0%, #80c0d8 100%); border: 4px solid #8b7a66; animation: ab-window 12s ease-in-out infinite;
}
.scn-arrival-bly .window-left { left: 30%; }
.scn-arrival-bly .window-right { left: 55%; }
.scn-arrival-bly .maid-left,
.scn-arrival-bly .maid-right {
  position: absolute; bottom: 35%; width: 20px; height: 40px; background: #3a3a3a; border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: ab-maid 6s ease-in-out infinite;
}
.scn-arrival-bly .maid-left { left: 32%; }
.scn-arrival-bly .maid-right { left: 57%; animation-delay: -3s; }
.scn-arrival-bly .tree-shadow {
  position: absolute; bottom: 10%; right: 10%; width: 60px; height: 80px; background: radial-gradient(circle, #2a5a2a 0%, transparent 70%); filter: blur(8px); animation: ab-tree 15s ease-in-out infinite;
}
@keyframes ab-sky { 0% { opacity:0.9 } 50% { opacity:1 } 100% { opacity:0.85 } }
@keyframes ab-lawn { 0% { transform: translateY(0) } 50% { transform: translateY(-2px) } 100% { transform: translateY(0) } }
@keyframes ab-window { 0% { box-shadow: inset 0 0 0 rgba(255,255,240,0) } 50% { box-shadow: inset 0 0 20px 10px rgba(255,255,240,0.3) } 100% { box-shadow: inset 0 0 0 rgba(255,255,240,0) } }
@keyframes ab-maid { 0%,100% { transform: translateY(0) } 50% { transform: translateY(-3px) } }
@keyframes ab-tree { 0% { transform: rotate(-5deg) } 50% { transform: rotate(5deg) } 100% { transform: rotate(-5deg) } }
/* end per-scene blocks */

/* ============ tier S ============ */
/* per-scene blocks (EXP step_scenes) */
.scn-final-confrontation-quint {
  background: 
    linear-gradient(180deg, #1b1a2e 0%, #2a2540 30%, #1f1a30 60%, #0e0c1a 100%),
    radial-gradient(ellipse at 50% 30%, #3a3050 0%, transparent 70%);
}

.scn-final-confrontation-quint .sky {
  position: absolute;
  inset: 0 0 40% 0;
  background: linear-gradient(180deg, #232040 0%, #15122e 60%);
  animation: fcq-sky 14s ease-in-out infinite alternate;
}

.scn-final-confrontation-quint .ground {
  position: absolute;
  bottom: 0;
  left: 0;
  right: 0;
  height: 40%;
  background: linear-gradient(0deg, #0f0d1a 0%, #1a1730 100%);
  border-radius: 20% 80% 0 0 / 30% 120% 0 0;
  box-shadow: inset 0 8px 20px rgba(0,0,0,0.6);
  animation: fcq-ground 18s ease-in-out infinite alternate;
}

.scn-final-confrontation-quint .hill {
  position: absolute;
  bottom: 25%;
  left: -10%;
  right: -10%;
  height: 20%;
  background: linear-gradient(180deg, #1f1c35 0%, #0e0b1a 100%);
  border-radius: 50% 50% 0 0 / 100% 100% 0 0;
  box-shadow: inset 0 4px 10px rgba(0,0,0,0.5);
  animation: fcq-hill 22s ease-in-out infinite alternate;
}

.scn-final-confrontation-quint .figure-jessel {
  position: absolute;
  bottom: 28%;
  left: 30%;
  width: 22px;
  height: 70px;
  background: linear-gradient(180deg, #2e2a40 0%, #1a1730 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  box-shadow: -2px 0 6px rgba(0,0,0,0.5);
  animation: fcq-jessel 5s ease-in-out infinite alternate;
}

.scn-final-confrontation-quint .figure-miles {
  position: absolute;
  bottom: 28%;
  left: 55%;
  width: 18px;
  height: 50px;
  background: linear-gradient(180deg, #222040 0%, #0f0d1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  box-shadow: 2px 0 6px rgba(0,0,0,0.4);
  animation: fcq-miles 4s ease-in-out infinite alternate;
}

.scn-final-confrontation-quint .shadow-quint {
  position: absolute;
  bottom: 30%;
  left: 20%;
  width: 30px;
  height: 60px;
  background: radial-gradient(ellipse at 50% 100%, rgba(0,0,0,0.6) 0%, transparent 70%);
  border-radius: 50%;
  filter: blur(4px);
  animation: fcq-shadow 6s ease-in-out infinite;
}

.scn-final-confrontation-quint .wind-marks {
  position: absolute;
  top: 20%;
  left: -10%;
  right: -10%;
  height: 40%;
  background: repeating-linear-gradient(90deg, transparent 0%, rgba(255,255,255,0.03) 2px, transparent 4px);
  background-size: 40px 100%;
  animation: fcq-wind 8s linear infinite;
}

@keyframes fcq-sky {
  0% { opacity: 0.7; background-position: 0% 0%; }
  50% { opacity: 1; background-position: 50% 10%; }
  100% { opacity: 0.8; background-position: 0% 20%; }
}

@keyframes fcq-ground {
  0% { transform: translateY(0) scaleY(1); }
  50% { transform: translateY(-2px) scaleY(1.01); }
  100% { transform: translateY(0) scaleY(1); }
}

@keyframes fcq-hill {
  0% { transform: translateX(0) scaleX(1); }
  50% { transform: translateX(3px) scaleX(1.005); }
  100% { transform: translateX(-2px) scaleX(0.995); }
}

@keyframes fcq-jessel {
  0% { transform: translateX(0) translateY(0) rotate(0deg); }
  30% { transform: translateX(-2px) translateY(-1px) rotate(-3deg); }
  60% { transform: translateX(3px) translateY(1px) rotate(4deg); }
  100% { transform: translateX(0) translateY(0) rotate(0deg); }
}

@keyframes fcq-miles {
  0% { transform: translateX(0) rotate(0deg) scaleX(1); }
  40% { transform: translateX(5px) rotate(15deg) scaleX(0.8); }
  70% { transform: translateX(-3px) rotate(-5deg) scaleX(0.9); }
  100% { transform: translateX(0) rotate(0deg) scaleX(1); }
}

@keyframes fcq-shadow {
  0%, 100% { opacity: 0.6; transform: translateY(0) scale(1); }
  30% { opacity: 0.2; transform: translateY(-10px) scale(0.7); }
  70% { opacity: 0.8; transform: translateY(5px) scale(1.1); }
}

@keyframes fcq-wind {
  0% { background-position: 0% 0%; }
  100% { background-position: 100% 0%; }
}

.scn-not-of-him-of-her {
  background:
    linear-gradient(180deg, #b8d8f0 0%, #7bb3d9 40%, #4a7a9e 70%, #2a4a5e 100%);
}
.scn-not-of-him-of-her .sky {
  position: absolute; inset: 0 0 50% 0;
  background: linear-gradient(180deg, #d4e8f5 0%, #b0d0e8 60%, #8ab8d5 100%);
  animation: nh-sky 20s ease-in-out infinite alternate;
}
.scn-not-of-him-of-her .mountains {
  position: absolute; bottom: 38%; left: 0; right: 0; height: 18%;
  background: linear-gradient(180deg, #3a4f5e 0%, #1a2a38 100%);
  border-radius: 30% 50% 0 0 / 60% 80% 0 0;
  box-shadow: inset 0 6px 12px rgba(0,0,0,0.3);
  animation: nh-mountains 30s ease-in-out infinite alternate;
}
.scn-not-of-him-of-her .lake {
  position: absolute; bottom: 18%; left: 0; right: 0; height: 22%;
  background: linear-gradient(180deg, #5a8ca5 0%, #3a6a84 40%, #2a4a5e 100%);
  box-shadow: inset 0 4px 10px rgba(0,0,0,0.4);
  animation: nh-lake 15s ease-in-out infinite alternate;
}
.scn-not-of-him-of-her .figure {
  position: absolute; bottom: 40%; left: 60%; width: 14px; height: 40px;
  background: linear-gradient(180deg, #1a1a1a 0%, #0a0a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: nh-figure 4s ease-in-out infinite;
}
.scn-not-of-him-of-her .reflection {
  position: absolute; bottom: 18%; left: 60%; width: 14px; height: 30px;
  background: linear-gradient(180deg, rgba(26,26,26,0.3) 0%, transparent 100%);
  border-radius: 50% 50% 40% 40% / 40% 40% 60% 60%;
  transform: scaleY(-1);
  animation: nh-reflection 4s ease-in-out infinite;
}
.scn-not-of-him-of-her .reed {
  position: absolute; bottom: 28%; left: 20%; width: 4px; height: 60px;
  background: linear-gradient(180deg, #3a5a3a 0%, #1a2a1a 100%);
  border-radius: 20%;
  transform-origin: bottom center;
  animation: nh-reed 6s ease-in-out infinite;
}
@keyframes nh-sky { 0% { opacity:0.9; filter:brightness(1); } 50% { opacity:1; filter:brightness(1.1); } 100% { opacity:0.85; filter:brightness(0.9); } }
@keyframes nh-mountains { 0% { transform: translateY(0) scaleX(1); } 50% { transform: translateY(-2px) scaleX(1.02); } 100% { transform: translateY(1px) scaleX(0.98); } }
@keyframes nh-lake { 0% { background-position: 0 0; } 50% { background-position: 10px 0; } 100% { background-position: -5px 0; } }
@keyframes nh-figure { 0% { transform: translateX(0) rotate(0deg); } 30% { transform: translateX(3px) rotate(2deg); } 70% { transform: translateX(-2px) rotate(-1deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes nh-reflection { 0% { opacity:0.5; } 50% { opacity:0.3; } 100% { opacity:0.6; } }
@keyframes nh-reed { 0% { transform: rotate(-3deg); } 50% { transform: rotate(3deg); } 100% { transform: rotate(-2deg); } }

.scn-miss-jessel-full-truth {
  background:
    linear-gradient(135deg, #1a1620 0%, #2a2230 40%, #3a2a3e 70%, #1a1218 100%);
}
.scn-miss-jessel-full-truth .wall {
  position: absolute; inset: 0;
  background: repeating-linear-gradient(45deg, rgba(255,255,255,0.02) 0px, rgba(255,255,255,0.02) 2px, transparent 2px, transparent 6px);
}
.scn-miss-jessel-full-truth .window {
  position: absolute; top: 15%; left: 25%; width: 40%; height: 50%;
  background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%);
  border: 4px solid #4a3a4a;
  border-radius: 4px;
  box-shadow: inset 0 0 20px #0a0a0a;
  animation: mj-window 12s ease-in-out infinite alternate;
}
.scn-miss-jessel-full-truth .table {
  position: absolute; bottom: 20%; left: 30%; width: 40%; height: 8%;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 2px;
  box-shadow: 0 4px 8px rgba(0,0,0,0.6);
}
.scn-miss-jessel-full-truth .candle {
  position: absolute; bottom: 28%; left: 45%; width: 6px; height: 20px;
  background: linear-gradient(180deg, #c8a060 0%, #a08030 100%);
  border-radius: 2px 2px 40% 40%;
  box-shadow: 0 -8px 20px 6px #c8a060, 0 -16px 40px 12px rgba(200,160,96,0.4);
  animation: mj-candle 3s ease-in-out infinite alternate;
}
.scn-miss-jessel-full-truth .silhouette-woman {
  position: absolute; bottom: 20%; left: 30%; width: 22px; height: 70px;
  background: linear-gradient(180deg, #0a0a0a 0%, #1a1a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: mj-woman 5s ease-in-out infinite;
}
.scn-miss-jessel-full-truth .silhouette-man {
  position: absolute; bottom: 20%; right: 32%; width: 26px; height: 72px;
  background: linear-gradient(180deg, #0a0a0a 0%, #1a1a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: mj-man 5s ease-in-out infinite 1s;
}
@keyframes mj-window { 0% { opacity:0.8; filter:brightness(0.9); } 50% { opacity:1; filter:brightness(1); } 100% { opacity:0.7; filter:brightness(0.8); } }
@keyframes mj-candle { 0% { transform: scaleY(1); box-shadow: 0 -8px 20px 6px #c8a060; } 30% { transform: scaleY(1.05); box-shadow: 0 -8px 25px 8px #d4b070; } 70% { transform: scaleY(0.95); box-shadow: 0 -8px 18px 4px #b89850; } 100% { transform: scaleY(1.02); box-shadow: 0 -8px 22px 7px #c8a060; } }
@keyframes mj-woman { 0% { transform: translateX(0) rotate(0deg); } 25% { transform: translateX(-4px) rotate(-2deg); } 50% { transform: translateX(2px) rotate(1deg); } 75% { transform: translateX(-1px) rotate(-1deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes mj-man { 0% { transform: translateX(0) rotate(0deg); } 25% { transform: translateX(3px) rotate(2deg); } 50% { transform: translateX(-3px) rotate(-1deg); } 75% { transform: translateX(2px) rotate(1deg); } 100% { transform: translateX(0) rotate(0deg); } }

.scn-miles-denies-prevaricates {
  background:
    linear-gradient(180deg, #1a1a2a 0%, #2a2a3e 50%, #1e1e2e 100%);
}
.scn-miles-denies-prevaricates .room {
  position: absolute; inset: 0;
  background: linear-gradient(135deg, #1a1820 0%, #2a2630 50%, #1a1820 100%);
  box-shadow: inset 0 0 30px #0a0a0a;
}
.scn-miles-denies-prevaricates .lamp {
  position: absolute; top: 25%; left: 10%; width: 10px; height: 30px;
  background: linear-gradient(180deg, #c8a060 0%, #a08030 100%);
  border-radius: 2px;
  box-shadow: 0 0 40px 15px rgba(200,160,96,0.5);
  animation: mp-lamp 4s ease-in-out infinite alternate;
}
.scn-miles-denies-prevaricates .boy {
  position: absolute; bottom: 25%; left: 50%; width: 20px; height: 50px;
  background: linear-gradient(180deg, #0a0a0a 0%, #1a1a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: mp-boy 2s ease-in-out infinite;
}
.scn-miles-denies-prevaricates .governess {
  position: absolute; bottom: 25%; left: 30%; width: 22px; height: 55px;
  background: linear-gradient(180deg, #1a1a1a 0%, #2a2a2a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: mp-governess 3s ease-in-out infinite;
}
.scn-miles-denies-prevaricates .shadow {
  position: absolute; bottom: 25%; left: 40%; width: 60px; height: 80px;
  background: radial-gradient(ellipse at 50% 100%, rgba(0,0,0,0.6) 0%, transparent 70%);
  filter: blur(4px);
  animation: mp-shadow 4s ease-in-out infinite alternate;
}
@keyframes mp-lamp { 0% { transform: rotate(-3deg); box-shadow: 0 0 40px 15px rgba(200,160,96,0.5); } 30% { transform: rotate(2deg); box-shadow: 0 0 50px 20px rgba(200,160,96,0.6); } 70% { transform: rotate(-1deg); box-shadow: 0 0 35px 12px rgba(200,160,96,0.4); } 100% { transform: rotate(3deg); box-shadow: 0 0 45px 18px rgba(200,160,96,0.5); } }
@keyframes mp-boy { 0% { transform: translateX(0) rotate(0deg) scaleX(1); } 25% { transform: translateX(5px) rotate(5deg) scaleX(0.95); } 50% { transform: translateX(-3px) rotate(-4deg) scaleX(1.05); } 75% { transform: translateX(2px) rotate(2deg) scaleX(0.98); } 100% { transform: translateX(0) rotate(0deg) scaleX(1); } }
@keyframes mp-governess { 0% { transform: translateX(0) rotate(0deg); } 30% { transform: translateX(-2px) rotate(-2deg); } 60% { transform: translateX(1px) rotate(1deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes mp-shadow { 0% { opacity:0.4; transform: scaleY(1); } 50% { opacity:0.7; transform: scaleY(1.1); } 100% { opacity:0.3; transform: scaleY(0.9); } }

.scn-days-pass-quint-on-stairs {
  background:
    linear-gradient(180deg, #0a0a12 0%, #1a1a2a 40%, #0e0e1a 70%, #050508 100%);
}
.scn-days-pass-quint-on-stairs .stairs {
  position: absolute; bottom: 0; left: 20%; right: 20%; height: 80%;
  background: linear-gradient(135deg, #1a1a2a 0%, #2a2a3e 30%, #1a1a2a 60%, #0a0a1a 100%);
  transform: skewX(5deg);
  box-shadow: inset 0 0 20px #000;
  animation: dq-stairs 20s ease-in-out infinite alternate;
}
.scn-days-pass-quint-on-stairs .wall {
  position: absolute; inset: 0;
  background: repeating-linear-gradient(0deg, transparent, transparent 30px, rgba(255,255,255,0.02) 30px, rgba(255,255,255,0.02) 31px);
}
.scn-days-pass-quint-on-stairs .light-below {
  position: absolute; bottom: 5%; left: 45%; width: 20px; height: 40px;
  background: radial-gradient(ellipse at 50% 0, #ffd080 0%, #b08040 30%, transparent 60%);
  filter: blur(4px);
  animation: dq-light 6s ease-in-out infinite alternate;
}
.scn-days-pass-quint-on-stairs .quint {
  position: absolute; bottom: 50%; left: 35%; width: 22px; height: 65px;
  background: linear-gradient(180deg, #0a0a0a 0%, #1a1a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: dq-quint 8s ease-in-out infinite;
}
.scn-days-pass-quint-on-stairs .door {
  position: absolute; top: 10%; left: 40%; width: 20%; height: 30%;
  background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%);
  border: 3px solid #3a3a4a;
  border-radius: 4px;
  box-shadow: inset 0 0 10px #000;
  animation: dq-door 12s ease-in-out infinite alternate;
}
.scn-days-pass-quint-on-stairs .railing {
  position: absolute; bottom: 30%; left: 18%; right: 18%; height: 4px;
  background: linear-gradient(90deg, transparent, #3a3a4a 20%, #4a4a5e 50%, #3a3a4a 80%, transparent);
  transform: skewX(5deg);
  animation: dq-railing 15s ease-in-out infinite alternate;
}
@keyframes dq-stairs { 0% { filter: brightness(0.9); } 50% { filter: brightness(1); } 100% { filter: brightness(0.8); } }
@keyframes dq-light { 0% { opacity:0.6; transform: scaleY(1); } 50% { opacity:0.9; transform: scaleY(1.1); } 100% { opacity:0.5; transform: scaleY(0.95); } }
@keyframes dq-quint { 0% { transform: translateY(0) rotate(0deg); } 25% { transform: translateY(2px) rotate(2deg) scaleY(1.02); } 50% { transform: translateY(-1px) rotate(-1deg) scaleY(0.98); } 75% { transform: translateY(1px) rotate(1deg) scaleY(1.01); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes dq-door { 0% { transform: scaleX(1); } 50% { transform: scaleX(1.02); } 100% { transform: scaleX(0.98); } }
@keyframes dq-railing { 0% { transform: skewX(5deg) translateX(0); } 50% { transform: skewX(5deg) translateX(10px); } 100% { transform: skewX(5deg) translateX(-5px); } }

.scn-flora-lied-miles-outside {
  background: linear-gradient(180deg, #0d0d1a 0%, #1a1a2e 40%, #141428 100%),
              radial-gradient(ellipse at 50% 80%, #1a1a30 0%, transparent 60%);
}
.scn-flora-lied-miles-outside .room-bg {
  position: absolute; inset: 0; background: linear-gradient(180deg, #0f0f1e 0%, #0a0a18 100%);
  animation: flm-room-flicker 8s ease-in-out infinite alternate;
}
.scn-flora-lied-miles-outside .window-frame {
  position: absolute; top: 10%; left: 20%; width: 60%; height: 60%;
  background: linear-gradient(135deg, #3a2a1a, #1e140e); border-radius: 4%;
  box-shadow: inset 0 0 30px #00000066, 0 10px 20px #00000080;
}
.scn-flora-lied-miles-outside .window-glass {
  position: absolute; top: 12%; left: 23%; width: 54%; height: 56%;
  background: radial-gradient(ellipse at 40% 30%, #2a4a6a, #0e1a2a 70%);
  animation: flm-glass 6s ease-in-out infinite alternate;
}
.scn-flora-lied-miles-outside .moonlight {
  position: absolute; top: 8%; left: 15%; width: 70%; height: 65%;
  background: linear-gradient(135deg, rgba(160,200,255,0.08), transparent 60%);
  animation: flm-moon 12s ease-in-out infinite alternate;
}
.scn-flora-lied-miles-outside .child-silhouette {
  position: absolute; bottom: 25%; left: 48%; width: 30px; height: 60px;
  background: linear-gradient(180deg, #0a0a0a, #1a1a1a);
  border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%;
  transform: translateX(-50%);
  animation: flm-child 4s ease-in-out infinite;
}
.scn-flora-lied-miles-outside .curtain-left {
  position: absolute; top: 12%; left: 0; width: 22%; height: 60%;
  background: linear-gradient(135deg, #1a0e0a, #2a1a0e);
  border-radius: 0 30% 30% 0;
  animation: flm-curtain-l 7s ease-in-out infinite alternate;
}
.scn-flora-lied-miles-outside .curtain-right {
  position: absolute; top: 12%; right: 0; width: 22%; height: 60%;
  background: linear-gradient(225deg, #1a0e0a, #2a1a0e);
  border-radius: 30% 0 0 30%;
  animation: flm-curtain-r 7s ease-in-out infinite alternate 0.5s;
}
.scn-flora-lied-miles-outside .shadow-shape {
  position: absolute; bottom: 10%; left: 30%; width: 40%; height: 20%;
  background: radial-gradient(ellipse at 50% 0%, #00000060, transparent);
  animation: flm-shadow 9s ease-in-out infinite;
}
@keyframes flm-room-flicker { 0% { opacity: 0.9; } 50% { opacity: 1; } 100% { opacity: 0.85; } }
@keyframes flm-glass { 0% { background: radial-gradient(ellipse at 40% 30%, #2a4a6a, #0e1a2a 70%); } 50% { background: radial-gradient(ellipse at 50% 20%, #3a5a7a, #0e1a2a 75%); } 100% { background: radial-gradient(ellipse at 40% 30%, #2a4a6a, #0e1a2a 70%); } }
@keyframes flm-moon { 0% { opacity: 0.7; transform: translateY(0); } 50% { opacity: 1; transform: translateY(-2px); } 100% { opacity: 0.8; transform: translateY(1px); } }
@keyframes flm-child { 0% { transform: translateX(-50%) translateY(0) rotate(-2deg); } 25% { transform: translateX(-50%) translateY(-2px) rotate(1deg); } 50% { transform: translateX(-50%) translateY(0) rotate(0deg); } 75% { transform: translateX(-50%) translateY(-1px) rotate(-1deg); } 100% { transform: translateX(-50%) translateY(0) rotate(-2deg); } }
@keyframes flm-curtain-l { 0% { transform: scaleX(1); } 50% { transform: scaleX(0.95) translateX(5px); } 100% { transform: scaleX(1); } }
@keyframes flm-curtain-r { 0% { transform: scaleX(1); } 50% { transform: scaleX(0.95) translateX(-5px); } 100% { transform: scaleX(1); } }
@keyframes flm-shadow { 0% { opacity: 0.5; transform: scaleY(1); } 50% { opacity: 0.7; transform: scaleY(1.1); } 100% { opacity: 0.5; transform: scaleY(1); } }

.scn-bad-when-bad-declaration {
  background: linear-gradient(180deg, #1a1110 0%, #2a1a15 40%, #1a0e0a 100%),
              radial-gradient(ellipse at 50% 60%, #2a2015 0%, transparent 70%);
}
.scn-bad-when-bad-declaration .wall-bg {
  position: absolute; inset: 0; background: linear-gradient(180deg, #1c1512, #100c0a);
  animation: bwd-wall 10s ease-in-out infinite alternate;
}
.scn-bad-when-bad-declaration .stair-rail {
  position: absolute; bottom: 20%; left: 20%; height: 60%; width: 4px;
  background: linear-gradient(180deg, #3a2a1a, #1e140e);
  border-radius: 2px; transform: rotate(5deg);
  animation: bwd-rail 8s ease-in-out infinite alternate;
}
.scn-bad-when-bad-declaration .lamp-glow {
  position: absolute; top: 30%; left: 60%; width: 60px; height: 60px;
  background: radial-gradient(circle, #e8c080 0%, #c08040 40%, transparent 70%);
  border-radius: 50%; filter: blur(2px);
  animation: bwd-lamp 4s ease-in-out infinite alternate;
}
.scn-bad-when-bad-declaration .figure-miles {
  position: absolute; bottom: 25%; left: 50%; width: 40px; height: 80px;
  background: linear-gradient(180deg, #0e0e0e, #1a1a1a);
  border-radius: 30% 30% 20% 20% / 40% 40% 30% 30%;
  transform: translateX(-50%);
  animation: bwd-miles 3s ease-in-out infinite;
}
.scn-bad-when-bad-declaration .book-open {
  position: absolute; bottom: 28%; left: 40%; width: 30px; height: 20px;
  background: linear-gradient(135deg, #4a3a2a, #2a1a0a);
  border-radius: 0 0 4px 4px; transform: skewX(10deg);
  animation: bwd-book 6s ease-in-out infinite;
}
.scn-bad-when-bad-declaration .floor-line {
  position: absolute; bottom: 22%; left: 0; right: 0; height: 2px;
  background: linear-gradient(90deg, transparent, #3a2a1a, transparent);
}
.scn-bad-when-bad-declaration .door-arch {
  position: absolute; bottom: 15%; right: 10%; width: 15%; height: 70%;
  background: linear-gradient(180deg, #2a1a10, #1a0e08);
  border-radius: 50% 50% 0 0 / 30% 30% 0 0;
  box-shadow: inset 0 0 20px #0006;
}
@keyframes bwd-wall { 0% { opacity: 0.8; } 50% { opacity: 1; } 100% { opacity: 0.9; } }
@keyframes bwd-rail { 0% { transform: rotate(5deg) translateX(0); } 50% { transform: rotate(7deg) translateX(2px); } 100% { transform: rotate(5deg) translateX(0); } }
@keyframes bwd-lamp { 0% { box-shadow: 0 0 20px 10px #c08040; opacity: 0.9; } 50% { box-shadow: 0 0 30px 15px #e0a060; opacity: 1; } 100% { box-shadow: 0 0 20px 10px #c08040; opacity: 0.9; } }
@keyframes bwd-miles { 0% { transform: translateX(-50%) translateY(0) rotate(0deg); } 33% { transform: translateX(-50%) translateY(-3px) rotate(2deg); } 66% { transform: translateX(-50%) translateY(0) rotate(-1deg); } 100% { transform: translateX(-50%) translateY(0) rotate(0deg); } }
@keyframes bwd-book { 0% { transform: skewX(10deg) translateY(0); } 50% { transform: skewX(10deg) translateY(-2px); } 100% { transform: skewX(10deg) translateY(0); } }

.scn-ghosts-can-destroy-them {
  background: linear-gradient(180deg, #1a0a05 0%, #2a1508 40%, #0e0500 100%),
              radial-gradient(ellipse at 40% 60%, #3a1a0a 0%, transparent 60%);
}
.scn-ghosts-can-destroy-them .hearth-bg {
  position: absolute; inset: 0; background: linear-gradient(180deg, #1a0e05, #0e0500);
  animation: gct-hearth 9s ease-in-out infinite alternate;
}
.scn-ghosts-can-destroy-them .fire-glow {
  position: absolute; bottom: 20%; left: 15%; width: 50%; height: 50%;
  background: radial-gradient(ellipse at 50% 100%, #ff8030 0%, #c05020 40%, transparent 70%);
  opacity: 0.8; filter: blur(4px);
  animation: gct-glow 4s ease-in-out infinite alternate;
}
.scn-ghosts-can-destroy-them .fire-core {
  position: absolute; bottom: 20%; left: 30%; width: 30px; height: 40px;
  background: linear-gradient(180deg, #ffcc00, #ff6010, #802000);
  border-radius: 50% 50% 20% 20%;
  animation: gct-fire 3s ease-in-out infinite;
}
.scn-ghosts-can-destroy-them .figure-left {
  position: absolute; bottom: 25%; left: 20%; width: 45px; height: 90px;
  background: linear-gradient(180deg, #0a0a0a, #151515);
  border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%;
  animation: gct-left 5s ease-in-out infinite alternate;
}
.scn-ghosts-can-destroy-them .figure-right {
  position: absolute; bottom: 25%; right: 20%; width: 40px; height: 80px;
  background: linear-gradient(180deg, #0a0a0a, #151515);
  border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%;
  animation: gct-right 5s ease-in-out infinite alternate 0.5s;
}
.scn-ghosts-can-destroy-them .table-low {
  position: absolute; bottom: 20%; left: 40%; width: 20%; height: 8%;
  background: linear-gradient(180deg, #3a2a1a, #1a0e06);
  border-radius: 4px;
  animation: gct-table 12s ease-in-out infinite;
}
.scn-ghosts-can-destroy-them .candle-wax {
  position: absolute; bottom: 28%; left: 48%; width: 6px; height: 14px;
  background: #d4b48c;
  border-radius: 2px 2px 50% 50%;
  animation: gct-candle 6s ease-in-out infinite;
}
.scn-ghosts-can-destroy-them .shadow-pool {
  position: absolute; bottom: 0; left: 10%; width: 80%; height: 25%;
  background: radial-gradient(ellipse at 50% 100%, #00000050, transparent);
  animation: gct-shadow 7s ease-in-out infinite alternate;
}
@keyframes gct-hearth { 0% { opacity: 0.9; } 50% { opacity: 1; } 100% { opacity: 0.85; } }
@keyframes gct-glow { 0% { opacity: 0.7; transform: scale(1); } 50% { opacity: 1; transform: scale(1.05); } 100% { opacity: 0.8; transform: scale(0.95); } }
@keyframes gct-fire { 0% { transform: scaleY(1) rotate(-2deg); } 50% { transform: scaleY(1.2) rotate(2deg); } 100% { transform: scaleY(1) rotate(-2deg); } }
@keyframes gct-left { 0% { transform: translateX(0) rotate(0deg); } 50% { transform: translateX(5px) rotate(3deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes gct-right { 0% { transform: translateX(0) rotate(0deg); } 50% { transform: translateX(-5px) rotate(-3deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes gct-table { 0% { opacity: 0.8; } 50% { opacity: 1; } 100% { opacity: 0.9; } }
@keyframes gct-candle { 0% { transform: translateY(0) rotate(-2deg); } 25% { transform: translateY(-1px) rotate(0deg); } 50% { transform: translateY(0) rotate(2deg); } 75% { transform: translateY(-1px) rotate(0deg); } 100% { transform: translateY(0) rotate(-2deg); } }
@keyframes gct-shadow { 0% { opacity: 0.4; transform: scaleY(1); } 50% { opacity: 0.6; transform: scaleY(1.1); } 100% { opacity: 0.4; transform: scaleY(1); } }

.scn-ugly-and-queer-feeling {
  background: linear-gradient(180deg, #181212 0%, #2a1e1a 40%, #1a100e 100%),
              radial-gradient(ellipse at 50% 70%, #2a1a15 0%, transparent 70%);
}
.scn-ugly-and-queer-feeling .interior-wall {
  position: absolute; inset: 0; background: linear-gradient(180deg, #1c1412, #100a08);
  animation: uqf-wall 8s ease-in-out infinite alternate;
}
.scn-ugly-and-queer-feeling .doorway-dark {
  position: absolute; top: 10%; right: 10%; width: 18%; height: 80%;
  background: #080404; border-radius: 0 0 10% 10%;
  box-shadow: inset 0 0 30px #000000a0;
  animation: uqf-door 12s ease-in-out infinite;
}
.scn-ugly-and-queer-feeling .figure-her {
  position: absolute; bottom: 20%; left: 45%; width: 40px; height: 85px;
  background: linear-gradient(180deg, #0a0a0e, #14141a);
  border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%;
  transform: translateX(-50%);
  animation: uqf-her 4s ease-in-out infinite;
}
.scn-ugly-and-queer-feeling .figure-him {
  position: absolute; bottom: 20%; right: 40%; width: 45px; height: 90px;
  background: linear-gradient(180deg, #0e0e12, #1a1a20);
  border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%;
  transform: translateX(50%);
  animation: uqf-him 5s ease-in-out infinite alternate;
}
.scn-ugly-and-queer-feeling .hand-on-shoulder {
  position: absolute; bottom: 40%; left: 48%; width: 12px; height: 20px;
  background: #1a1a1e; border-radius: 40% 40% 20% 20%;
  transform: rotate(30deg);
  animation: uqf-hand 3s ease-in-out infinite;
}
.scn-ugly-and-queer-feeling .floor-shadow {
  position: absolute; bottom: 0; left: 20%; width: 60%; height: 20%;
  background: radial-gradient(ellipse at 50% 100%, #00000060, transparent);
}
.scn-ugly-and-queer-feeling .lamp-dim {
  position: absolute; top: 20%; left: 30%; width: 40px; height: 40px;
  background: radial-gradient(circle, #c0a070 0%, #806030 40%, transparent 70%);
  border-radius: 50%; filter: blur(3px);
  animation: uqf-lamp 6s ease-in-out infinite alternate;
}
.scn-ugly-and-queer-feeling .clock-shape {
  position: absolute; top: 15%; left: 60%; width: 30px; height: 30px;
  background: radial-gradient(circle, #3a2a1a 40%, #1a1008 60%, transparent);
  border-radius: 50%; border: 2px solid #2a1a0e;
  animation: uqf-clock 10s ease-in-out infinite;
}
@keyframes uqf-wall { 0% { opacity: 0.9; } 50% { opacity: 1; } 100% { opacity: 0.85; } }
@keyframes uqf-door { 0% { opacity: 0.8; } 50% { opacity: 1; } 100% { opacity: 0.9; } }
@keyframes uqf-her { 0% { transform: translateX(-50%) translateY(0) rotate(-1deg); } 33% { transform: translateX(-50%) translateY(-2px) rotate(2deg); } 66% { transform: translateX(-50%) translateY(0) rotate(-1deg); } 100% { transform: translateX(-50%) translateY(0) rotate(-1deg); } }
@keyframes uqf-him { 0% { transform: translateX(50%) rotate(0deg); } 50% { transform: translateX(50%) rotate(3deg) translateY(-1px); } 100% { transform: translateX(50%) rotate(0deg); } }
@keyframes uqf-hand { 0% { transform: rotate(30deg) translateY(0); } 50% { transform: rotate(35deg) translateY(-2px); } 100% { transform: rotate(30deg) translateY(0); } }
@keyframes uqf-lamp { 0% { opacity: 0.7; filter: blur(3px); } 50% { opacity: 1; filter: blur(2px); } 100% { opacity: 0.7; filter: blur(3px); } }
@keyframes uqf-clock { 0% { opacity: 0.5; } 50% { opacity: 0.8; } 100% { opacity: 0.5; } }

/* floras-feverish-denial – dark, dim interior */
.scn-floras-feverish-denial {
  background: linear-gradient(135deg, #1a1a2e 0%, #2c1e3a 40%, #0d0d1a 100%),
              radial-gradient(ellipse at 30% 60%, #3a2a4e 0%, transparent 70%);
}
.scn-floras-feverish-denial .bg { position:absolute; inset:0; background:linear-gradient(180deg, #0d0d1a 0%, #1a1a2e 50%, #0d0d1a 100%); }
.scn-floras-feverish-denial .wall { position:absolute; inset:10% 15% 25% 15%; background:linear-gradient(180deg, #2a2a3e 0%, #1a1a2e 100%); border-radius:4px; box-shadow:inset 0 0 30px #000; }
.scn-floras-feverish-denial .window { position:absolute; top:15%; left:65%; width:60px; height:80px; background:radial-gradient(circle at 50% 50%, #4a6a8a 0%, #2a3a4a 70%, transparent 100%); border:2px solid #3a3a4e; border-radius:4px; animation:ffd-window 4s ease-in-out infinite alternate; }
.scn-floras-feverish-denial .figure-flora { position:absolute; bottom:28%; left:40%; width:30px; height:50px; background:linear-gradient(180deg, #2a1a2a 0%, #0d0d1a 100%); border-radius:50% 50% 40% 40% / 40% 40% 30% 30%; transform-origin:bottom center; animation:ffd-sway 3s ease-in-out infinite; }
.scn-floras-feverish-denial .figure-gov { position:absolute; bottom:25%; left:60%; width:28px; height:55px; background:linear-gradient(180deg, #3a2a3a 0%, #1a1a2a 100%); border-radius:50% 50% 40% 40% / 50% 50% 35% 35%; animation:ffd-figure 5s ease-in-out infinite; }
.scn-floras-feverish-denial .shadow-floor { position:absolute; bottom:22%; left:35%; width:120px; height:8px; background:radial-gradient(ellipse, #000 0%, transparent 80%); opacity:0.6; animation:ffd-shadow 6s ease-in-out infinite; }
.scn-floras-feverish-denial .shadow-wall { position:absolute; bottom:50%; left:55%; width:80px; height:40px; background:linear-gradient(180deg, #000 0%, transparent 100%); opacity:0.3; animation:ffd-shadow 8s ease-in-out infinite reverse; }
@keyframes ffd-window { 0% { opacity:0.6; box-shadow:0 0 20px 5px rgba(74,106,138,0.3); } 50% { opacity:1; box-shadow:0 0 40px 10px rgba(74,106,138,0.5); } 100% { opacity:0.7; box-shadow:0 0 30px 8px rgba(74,106,138,0.2); } }
@keyframes ffd-sway { 0% { transform:translateX(0) rotate(0deg); } 25% { transform:translateX(4px) rotate(2deg); } 50% { transform:translateX(0) rotate(0deg); } 75% { transform:translateX(-3px) rotate(-2deg); } 100% { transform:translateX(0) rotate(0deg); } }
@keyframes ffd-figure { 0%,100% { transform:translateY(0); } 50% { transform:translateY(-3px); } }
@keyframes ffd-shadow { 0%,100% { opacity:0.6; transform:scaleX(1); } 50% { opacity:0.3; transform:scaleX(0.8); } }

/* plan-to-send-flora – tense, firelit */
.scn-plan-to-send-flora {
  background: linear-gradient(180deg, #2a1a0e 0%, #4a2a1a 40%, #1a0a05 100%),
              radial-gradient(ellipse at 50% 80%, #7a4a2a 0%, transparent 60%);
}
.scn-plan-to-send-flora .hearth { position:absolute; bottom:15%; left:20%; width:70px; height:30px; background:linear-gradient(180deg, #3a2a1a 0%, #1a100a 100%); border-radius:30% 30% 10% 10%; }
.scn-plan-to-send-flora .fire { position:absolute; bottom:18%; left:23%; width:20px; height:30px; background:radial-gradient(ellipse at 50% 100%, #ffa040 0%, #e06020 40%, #8a3010 70%, transparent 100%); border-radius:50%; animation:psf-fire 0.8s ease-in-out infinite alternate; }
.scn-plan-to-send-flora .mantel { position:absolute; bottom:46%; left:18%; width:80px; height:6px; background:linear-gradient(90deg, #1a0a05 0%, #3a2a1a 50%, #1a0a05 100%); border-radius:2px; box-shadow:0 2px 4px #000; }
.scn-plan-to-send-flora .armchair { position:absolute; bottom:22%; right:20%; width:50px; height:45px; background:linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius:30% 30% 20% 20%; box-shadow:inset 0 -4px 8px #1a0a05; }
.scn-plan-to-send-flora .figure-gov { position:absolute; bottom:28%; right:25%; width:26px; height:48px; background:linear-gradient(180deg, #3a2a1a 0%, #1a0a05 100%); border-radius:50% 50% 40% 40% / 45% 45% 35% 35%; transform-origin:bottom center; animation:psf-rock 4s ease-in-out infinite; }
.scn-plan-to-send-flora .figure-miles { position:absolute; bottom:24%; left:32%; width:20px; height:32px; background:linear-gradient(180deg, #2a1a0a 0%, #0a0502 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; animation:psf-miles 6s ease-in-out infinite; }
.scn-plan-to-send-flora .shadow { position:absolute; bottom:20%; left:15%; width:130px; height:15px; background:radial-gradient(ellipse, #000 0%, transparent 80%); opacity:0.5; animation:psf-shadow 3s ease-in-out infinite alternate; }
@keyframes psf-fire { 0% { transform:scaleY(1) scaleX(1); opacity:0.8; } 50% { transform:scaleY(1.2) scaleX(0.9); opacity:1; } 100% { transform:scaleY(0.9) scaleX(1.1); opacity:0.9; } }
@keyframes psf-rock { 0%,100% { transform:translateX(0) rotate(0deg); } 50% { transform:translateX(2px) rotate(2deg); } }
@keyframes psf-miles { 0%,100% { transform:translateY(0); } 50% { transform:translateY(-2px); } }
@keyframes psf-shadow { 0% { transform:scaleX(1) translateX(0); } 100% { transform:scaleX(1.2) translateX(5px); } }

/* letter-never-went – tense, bright interior */
.scn-letter-never-went {
  background: linear-gradient(180deg, #f0e8d8 0%, #d8c8b0 40%, #c0b098 100%),
              radial-gradient(ellipse at 70% 20%, #fff8e8 0%, transparent 70%);
}
.scn-letter-never-went .desk { position:absolute; bottom:25%; left:30%; width:100px; height:40px; background:linear-gradient(180deg, #8a7050 0%, #6a5030 100%); border-radius:4px; box-shadow:0 4px 8px rgba(0,0,0,0.3); }
.scn-letter-never-went .letter { position:absolute; bottom:40%; left:42%; width:28px; height:20px; background:linear-gradient(180deg, #f0e8d8 0%, #d8c8b0 100%); border:1px solid #b0a090; border-radius:2px; transform:rotate(-5deg); animation:lnw-letter 5s ease-in-out infinite; }
.scn-letter-never-went .chair { position:absolute; bottom:22%; left:38%; width:35px; height:45px; background:linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%); border-radius:30% 30% 10% 10%; box-shadow:inset 0 -4px 6px #2a1a0a; }
.scn-letter-never-went .figure-gov { position:absolute; bottom:32%; left:44%; width:26px; height:50px; background:linear-gradient(180deg, #5a4a3a 0%, #2a1a0a 100%); border-radius:50% 50% 40% 40% / 45% 45% 35% 35%; transform-origin:bottom center; animation:lnw-figure 4s ease-in-out infinite; }
.scn-letter-never-went .window { position:absolute; top:10%; right:15%; width:70px; height:90px; background:radial-gradient(circle at 50% 50%, #fff8e8 0%, #e8dcc0 60%, transparent 100%); border:3px solid #8a7a6a; border-radius:4px; box-shadow:inset 0 0 30px #fff; animation:lnw-window 6s ease-in-out infinite alternate; }
.scn-letter-never-went .curtain { position:absolute; top:10%; right:14%; width:16px; height:95px; background:linear-gradient(180deg, #b0a090 0%, #8a7a6a 100%); border-radius:2px; animation:lnw-curtain 8s ease-in-out infinite; }
.scn-letter-never-went .shadow { position:absolute; bottom:20%; left:20%; width:120px; height:12px; background:radial-gradient(ellipse, #4a3a2a 0%, transparent 80%); opacity:0.4; animation:lnw-shadow 7s ease-in-out infinite; }
@keyframes lnw-letter { 0%,100% { transform:rotate(-5deg) translateY(0); } 50% { transform:rotate(3deg) translateY(-2px); } }
@keyframes lnw-figure { 0%,100% { transform:translateX(0); } 50% { transform:translateX(2px); } }
@keyframes lnw-window { 0% { box-shadow:inset 0 0 20px #fff; opacity:0.9; } 50% { box-shadow:inset 0 0 50px #fff; opacity:1; } 100% { box-shadow:inset 0 0 30px #fff; opacity:0.95; } }
@keyframes lnw-curtain { 0%,100% { transform:translateX(0); } 50% { transform:translateX(3px); } }
@keyframes lnw-shadow { 0%,100% { transform:scaleX(1); opacity:0.4; } 50% { transform:scaleX(1.1); opacity:0.6; } }

/* left-alone-with-miles – tense, dim interior */
.scn-left-alone-with-miles {
  background: linear-gradient(180deg, #1a1a1a 0%, #2a2a2a 50%, #1a1a1a 100%),
              radial-gradient(ellipse at 50% 30%, #3a3a3a 0%, transparent 60%);
}
.scn-left-alone-with-miles .wall { position:absolute; inset:10% 10% 20% 10%; background:linear-gradient(180deg, #2a2a2a 0%, #1a1a1a 100%); border-radius:6px; box-shadow:inset 0 0 50px #000; }
.scn-left-alone-with-miles .floor { position:absolute; bottom:15%; left:5%; right:5%; height:12%; background:linear-gradient(180deg, #3a3a3a 0%, #1a1a1a 100%); border-radius:4px; }
.scn-left-alone-with-miles .lamp { position:absolute; bottom:45%; left:25%; width:10px; height:30px; background:linear-gradient(180deg, #4a4a4a 0%, #2a2a2a 100%); border-radius:2px; }
.scn-left-alone-with-miles .lamp::after { content:''; position:absolute; top:-8px; left:-4px; width:18px; height:18px; background:radial-gradient(circle, #ffc060 0%, #a07030 60%, transparent 100%); border-radius:50%; animation:lwm-glow 3s ease-in-out infinite alternate; }
.scn-left-alone-with-miles .figure-gov { position:absolute; bottom:22%; left:48%; width:28px; height:55px; background:linear-gradient(180deg, #2a2a2a 0%, #0a0a0a 100%); border-radius:50% 50% 40% 40% / 50% 50% 35% 35%; transform-origin:bottom center; animation:lwm-breathe 5s ease-in-out infinite; }
.scn-left-alone-with-miles .figure-miles { position:absolute; bottom:20%; right:30%; width:22px; height:38px; background:linear-gradient(180deg, #2a2a2a 0%, #0a0a0a 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; animation:lwm-breathe 6s ease-in-out infinite 1s; }
.scn-left-alone-with-miles .shadow { position:absolute; bottom:14%; left:35%; width:100px; height:10px; background:radial-gradient(ellipse, #000 0%, transparent 80%); opacity:0.6; animation:lwm-shadow 8s ease-in-out infinite; }
.scn-left-alone-with-miles .door { position:absolute; top:15%; left:15%; width:40px; height:80px; background:linear-gradient(180deg, #3a3a3a 0%, #1a1a1a 100%); border-radius:4px; box-shadow:inset 0 0 10px #000; }
@keyframes lwm-glow { 0% { box-shadow:0 0 10px 2px #ffc060; opacity:0.7; } 50% { box-shadow:0 0 25px 8px #ffc060, 0 0 50px 15px rgba(255,192,96,0.3); opacity:1; } 100% { box-shadow:0 0 15px 4px #ffc060; opacity:0.8; } }
@keyframes lwm-breathe { 0%,100% { transform:translateY(0) scaleY(1); } 50% { transform:translateY(-2px) scaleY(1.02); } }
@keyframes lwm-shadow { 0%,100% { opacity:0.6; transform:scaleX(1); } 50% { opacity:0.4; transform:scaleX(0.9); } }

.scn-dismissed-stranger-thought {
  background: 
    linear-gradient(180deg, #6b7b7b 0%, #4a5a5a 50%, #3a3a3a 100%),
    radial-gradient(ellipse at 50% 0%, #7a8a8a 0%, transparent 70%);
}
.scn-dismissed-stranger-thought .window {
  position: absolute;
  inset: 10% 20% 40% 20%;
  background: linear-gradient(135deg, #8a9a9a 0%, #5a6a6a 100%);
  border: 4px solid #3a3a2a;
  border-radius: 4px;
  box-shadow: inset 0 0 20px rgba(0,0,0,0.3);
  animation: ds-window 12s ease-in-out infinite alternate;
}
.scn-dismissed-stranger-thought .rain {
  position: absolute;
  inset: 12% 22% 42% 22%;
  background: repeating-linear-gradient(
      0deg,
      transparent 0px,
      rgba(255,255,255,0.2) 1px,
      transparent 2px,
      transparent 5px
    );
  filter: blur(0.5px);
  animation: ds-rain 1s linear infinite;
}
.scn-dismissed-stranger-thought .desk {
  position: absolute;
  bottom: 25%;
  left: 25%;
  right: 35%;
  height: 8%;
  background: linear-gradient(180deg, #6a5a4a 0%, #4a3a2a 100%);
  border-radius: 2px;
  box-shadow: 0 2px 6px rgba(0,0,0,0.5);
}
.scn-dismissed-stranger-thought .chair {
  position: absolute;
  bottom: 20%;
  left: 30%;
  width: 30px;
  height: 40px;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 30% 30% 10% 10% / 50% 50% 20% 20%;
  transform-origin: bottom center;
  animation: ds-chair 5s ease-in-out infinite;
}
.scn-dismissed-stranger-thought .figure-ds {
  position: absolute;
  bottom: 22%;
  left: 32%;
  width: 24px;
  height: 50px;
  background: linear-gradient(180deg, #3a3a4a 0%, #1a1a2a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: ds-figure 10s ease-in-out infinite alternate;
}
.scn-dismissed-stranger-thought .child-toy {
  position: absolute;
  bottom: 30%;
  left: 10%;
  width: 16px;
  height: 16px;
  background: radial-gradient(circle at 30% 30%, #b08060 0%, #6a4a3a 100%);
  border-radius: 50%;
  box-shadow: 0 2px 4px rgba(0,0,0,0.4);
  animation: ds-toy 8s ease-in-out infinite;
}
.scn-dismissed-stranger-thought .lamp-ds {
  position: absolute;
  bottom: 35%;
  left: 60%;
  width: 12px;
  height: 20px;
  background: radial-gradient(circle at 50% 0%, #e0d0b0 0%, #b0a080 100%);
  border-radius: 50% 50% 30% 30% / 80% 80% 30% 30%;
  box-shadow: 0 0 20px 6px rgba(200,180,140,0.4);
  animation: ds-lamp 3s ease-in-out infinite alternate;
}
@keyframes ds-window {
  0% { opacity: 0.9; transform: scale(1); }
  50% { opacity: 1; transform: scale(1.02); }
  100% { opacity: 0.85; transform: scale(0.98); }
}
@keyframes ds-rain {
  0% { background-position: 0 0; }
  100% { background-position: 0 20px; }
}
@keyframes ds-chair {
  0%, 100% { transform: rotate(0deg); }
  50% { transform: rotate(2deg); }
}
@keyframes ds-figure {
  0% { transform: translateX(0) rotate(-1deg); }
  50% { transform: translateX(2px) rotate(1deg) scale(1.01); }
  100% { transform: translateX(-2px) rotate(-1deg); }
}
@keyframes ds-toy {
  0%, 100% { transform: translateY(0) rotate(0deg); }
  50% { transform: translateY(-2px) rotate(10deg); }
}
@keyframes ds-lamp {
  0% { box-shadow: 0 0 15px 4px rgba(200,180,140,0.3); opacity: 0.8; }
  50% { box-shadow: 0 0 30px 10px rgba(200,180,140,0.5); opacity: 1; }
  100% { box-shadow: 0 0 20px 6px rgba(200,180,140,0.35); opacity: 0.9; }
}

.scn-governess-recoils-mrs-grose {
  background: 
    linear-gradient(180deg, #2a2a2a 0%, #1a1a1a 40%, #3a2a1a 100%),
    radial-gradient(ellipse at 50% 60%, #4a3a2a 0%, transparent 70%);
}
.scn-governess-recoils-mrs-grose .doorway {
  position: absolute;
  inset: 5% 30% 5% 30%;
  background: linear-gradient(90deg, #2a1a0a 0%, #1a0a0a 50%, #2a1a0a 100%);
  border-radius: 2px;
  box-shadow: inset 0 0 30px rgba(0,0,0,0.6);
  animation: gr-door 15s ease-in-out infinite alternate;
}
.scn-governess-recoils-mrs-grose .wall {
  position: absolute;
  inset: 5% 0% 5% 0%;
  background: linear-gradient(180deg, #3a2a1a 0%, #2a1a0a 100%);
  clip-path: polygon(0 0, 100% 0, 100% 100%, 0 100%, 30% 100%, 30% 0, 70% 0, 70% 100%);
}
.scn-governess-recoils-mrs-grose .figure-gr1 {
  position: absolute;
  bottom: 20%;
  left: 20%;
  width: 22px;
  height: 55px;
  background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: gr-fig1 4s ease-in-out infinite;
}
.scn-governess-recoils-mrs-grose .figure-gr2 {
  position: absolute;
  bottom: 20%;
  right: 20%;
  width: 24px;
  height: 50px;
  background: linear-gradient(180deg, #3a2a3a 0%, #2a1a2a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: gr-fig2 3s ease-in-out infinite alternate;
}
.scn-governess-recoils-mrs-grose .lamp-gr {
  position: absolute;
  bottom: 40%;
  left: 50%;
  width: 8px;
  height: 15px;
  background: radial-gradient(circle at 50% 0%, #c0a060 0%, #806040 100%);
  border-radius: 50% 50% 30% 30%;
  box-shadow: 0 0 25px 8px rgba(192,160,96,0.5);
  animation: gr-lamp 2s ease-in-out infinite alternate;
}
.scn-governess-recoils-mrs-grose .shadow-gr {
  position: absolute;
  bottom: 0;
  left: 15%;
  right: 15%;
  height: 30%;
  background: linear-gradient(180deg, rgba(0,0,0,0.6) 0%, transparent 100%);
  filter: blur(4px);
  animation: gr-shadow 6s ease-in-out infinite;
}
@keyframes gr-door {
  0% { opacity: 0.9; transform: scaleY(1); }
  50% { opacity: 1; transform: scaleY(1.03); }
  100% { opacity: 0.85; transform: scaleY(0.97); }
}
@keyframes gr-fig1 {
  0% { transform: translateX(0) rotate(0deg); }
  25% { transform: translateX(-3px) rotate(-2deg); }
  50% { transform: translateX(0) rotate(0deg); }
  75% { transform: translateX(2px) rotate(2deg); }
  100% { transform: translateX(0) rotate(0deg); }
}
@keyframes gr-fig2 {
  0% { transform: translateX(0) scale(1); }
  50% { transform: translateX(-5px) scale(1.05); opacity: 0.9; }
  100% { transform: translateX(0) scale(1); }
}
@keyframes gr-lamp {
  0% { box-shadow: 0 0 20px 5px rgba(192,160,96,0.4); opacity: 0.7; }
  50% { box-shadow: 0 0 35px 12px rgba(192,160,96,0.7); opacity: 1; }
  100% { box-shadow: 0 0 25px 8px rgba(192,160,96,0.5); opacity: 0.8; }
}
@keyframes gr-shadow {
  0% { opacity: 0.6; transform: translateY(0); }
  50% { opacity: 0.8; transform: translateY(-5px); }
  100% { opacity: 0.6; transform: translateY(0); }
}

.scn-description-of-stranger {
  background: 
    linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 50%, #2a1a1a 100%),
    radial-gradient(ellipse at 50% 80%, #3a2a2a 0%, transparent 80%);
}
.scn-description-of-stranger .hall {
  position: absolute;
  inset: 0 0 30% 0;
  background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%);
  border-radius: 0 0 20% 20%;
  box-shadow: inset 0 0 40px rgba(0,0,0,0.5);
  animation: dos-hall 20s ease-in-out infinite alternate;
}
.scn-description-of-stranger .window-dos {
  position: absolute;
  top: 10%;
  left: 10%;
  right: 60%;
  height: 50%;
  background: linear-gradient(135deg, #3a4a5a 0%, #1a2a3a 100%);
  border: 3px solid #2a1a0a;
  border-radius: 4px;
  box-shadow: inset 0 0 15px rgba(0,0,0,0.4);
  animation: dos-window 8s ease-in-out infinite alternate;
}
.scn-description-of-stranger .stranger {
  position: absolute;
  bottom: 15%;
  right: 25%;
  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;
  box-shadow: 0 0 10px rgba(0,0,0,0.8);
  animation: dos-stranger 5s ease-in-out infinite;
}
.scn-description-of-stranger .governess-dos {
  position: absolute;
  bottom: 25%;
  left: 20%;
  width: 22px;
  height: 50px;
  background: linear-gradient(180deg, #3a3a4a 0%, #2a2a3a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: dos-gov 6s ease-in-out infinite alternate;
}
.scn-description-of-stranger .children-dos {
  position: absolute;
  bottom: 20%;
  left: 10%;
  width: 14px;
  height: 30px;
  background: linear-gradient(180deg, #4a4a5a 0%, #2a2a3a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: dos-kid 4s ease-in-out infinite;
}
.scn-description-of-stranger .candle-dos {
  position: absolute;
  bottom: 30%;
  left: 50%;
  width: 6px;
  height: 20px;
  background: radial-gradient(circle at 50% 0%, #ffd080 0%, #b08040 100%);
  border-radius: 2px;
  box-shadow: 0 0 30px 12px rgba(255,208,128,0.5);
  animation: dos-candle 2s ease-in-out infinite alternate;
}
@keyframes dos-hall {
  0% { opacity: 0.9; transform: scaleY(1); }
  50% { opacity: 1; transform: scaleY(1.02); }
  100% { opacity: 0.85; transform: scaleY(0.98); }
}
@keyframes dos-window {
  0% { opacity: 0.8; transform: translateX(0); }
  50% { opacity: 1; transform: translateX(-2px); }
  100% { opacity: 0.9; transform: translateX(2px); }
}
@keyframes dos-stranger {
  0% { transform: translateX(0) rotate(0deg); }
  25% { transform: translateX(3px) rotate(2deg); }
  50% { transform: translateX(0) rotate(0deg); }
  75% { transform: translateX(-3px) rotate(-2deg); }
  100% { transform: translateX(0) rotate(0deg); }
}
@keyframes dos-gov {
  0% { transform: translateX(0) scale(1); }
  50% { transform: translateX(-2px) scale(1.02); }
  100% { transform: translateX(2px) scale(0.98); }
}
@keyframes dos-kid {
  0%, 100% { transform: translateY(0) rotate(0deg); }
  50% { transform: translateY(-3px) rotate(5deg); }
}
@keyframes dos-candle {
  0% { box-shadow: 0 0 25px 8px rgba(255,208,128,0.4); opacity: 0.8; }
  50% { box-shadow: 0 0 40px 16px rgba(255,208,128,0.7); opacity: 1; }
  100% { box-shadow: 0 0 30px 10px rgba(255,208,128,0.5); opacity: 0.9; }
}

.scn-quint-revealed-by-mrs-grose {
  background: 
    linear-gradient(180deg, #1a1a1a 0%, #0a0a0a 40%, #2a1a1a 100%),
    radial-gradient(ellipse at 50% 30%, #3a2a2a 0%, transparent 80%);
}
.scn-quint-revealed-by-mrs-grose .room-qr {
  position: absolute;
  inset: 0;
  background: linear-gradient(180deg, #1a1a1a 0%, #0a0a0a 100%);
  border-radius: 0;
  box-shadow: inset 0 0 60px rgba(0,0,0,0.7);
  animation: qr-room 18s ease-in-out infinite alternate;
}
.scn-quint-revealed-by-mrs-grose .window-qr {
  position: absolute;
  top: 10%;
  right: 10%;
  width: 30%;
  height: 40%;
  background: linear-gradient(135deg, #2a3a4a 0%, #1a2a3a 100%);
  border: 3px solid #3a2a1a;
  border-radius: 4px;
  box-shadow: inset 0 0 20px rgba(0,0,0,0.5);
  animation: qr-window 10s ease-in-out infinite alternate;
}
.scn-quint-revealed-by-mrs-grose .governess-qr {
  position: absolute;
  bottom: 20%;
  left: 20%;
  width: 22px;
  height: 50px;
  background: linear-gradient(180deg, #3a3a4a 0%, #2a2a3a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: qr-gov 5s ease-in-out infinite alternate;
}
.scn-quint-revealed-by-mrs-grose .mrs-grose {
  position: absolute;
  bottom: 20%;
  left: 45%;
  width: 24px;
  height: 50px;
  background: linear-gradient(180deg, #4a3a3a 0%, #3a2a2a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: qr-mrs 4s ease-in-out infinite;
}
.scn-quint-revealed-by-mrs-grose .quint {
  position: absolute;
  bottom: 15%;
  right: 20%;
  width: 30px;
  height: 65px;
  background: linear-gradient(180deg, #1a1a1a 0%, #0a0a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  box-shadow: 0 0 20px rgba(0,0,0,0.9);
  animation: qr-quint 6s ease-in-out infinite;
}
.scn-quint-revealed-by-mrs-grose .candle-qr {
  position: absolute;
  bottom: 35%;
  left: 50%;
  width: 6px;
  height: 18px;
  background: radial-gradient(circle at 50% 0%, #d0b080 0%, #a08050 100%);
  border-radius: 2px;
  box-shadow: 0 0 25px 10px rgba(208,176,128,0.5);
  animation: qr-candle 2s ease-in-out infinite alternate;
}
.scn-quint-revealed-by-mrs-grose .red-hair {
  position: absolute;
  bottom: 60%;
  right: 25%;
  width: 20px;
  height: 10px;
  background: radial-gradient(circle at 50% 50%, #a0461a 0%, #5a2a0a 100%);
  border-radius: 50% 50% 0 0;
  transform: rotate(15deg);
  filter: blur(1px);
  animation: qr-hair 3s ease-in-out infinite alternate;
}
@keyframes qr-room {
  0% { opacity: 0.9; transform: scale(1); }
  50% { opacity: 1; transform: scale(1.01); }
  100% { opacity: 0.85; transform: scale(0.99); }
}
@keyframes qr-window {
  0% { opacity: 0.8; transform: translateX(0); }
  50% { opacity: 1; transform: translateX(-1px); }
  100% { opacity: 0.9; transform: translateX(1px); }
}
@keyframes qr-gov {
  0% { transform: translateX(0) rotate(0deg); }
  50% { transform: translateX(-2px) rotate(-2deg); }
  100% { transform: translateX(2px) rotate(2deg); }
}
@keyframes qr-mrs {
  0%, 100% { transform: translateY(0) scale(1); }
  50% { transform: translateY(-2px) scale(1.03); }
}
@keyframes qr-quint {
  0% { transform: translateX(0) rotate(0deg); }
  25% { transform: translateX(2px) rotate(1deg); }
  50% { transform: translateX(0) rotate(0deg); }
  75% { transform: translateX(-2px) rotate(-1deg); }
  100% { transform: translateX(0) rotate(0deg); }
}
@keyframes qr-candle {
  0% { box-shadow: 0 0 20px 6px rgba(208,176,128,0.4); opacity: 0.8; }
  50% { box-shadow: 0 0 35px 14px rgba(208,176,128,0.7); opacity: 1; }
  100% { box-shadow: 0 0 25px 8px rgba(208,176,128,0.5); opacity: 0.9; }
}
@keyframes qr-hair {
  0% { opacity: 0.7; transform: rotate(10deg) scale(1); }
  50% { opacity: 1; transform: rotate(20deg) scale(1.1); }
  100% { opacity: 0.8; transform: rotate(15deg) scale(0.95); }
}

/* Scene 1: miles-expelled-letter */
.scn-miles-expelled-letter {
  background: linear-gradient(180deg, #f5e6c8 0%, #d9c3a0 40%, #b8a082 100%),
              radial-gradient(ellipse at 70% 30%, #fff5e0 0%, transparent 60%);
}
.scn-miles-expelled-letter .background-wall {
  position: absolute; inset: 0; background: linear-gradient(90deg, #c9b89a 0%, #ddd0b8 50%, #c9b89a 100%);
  animation: mel-wallpulse 6s ease-in-out infinite alternate;
}
.scn-miles-expelled-letter .window-light {
  position: absolute; top: 5%; left: 15%; width: 35%; height: 45%; background: linear-gradient(135deg, #fff9e6 0%, #fcecc8 100%);
  border-radius: 2% 2% 50% 50% / 5% 5% 40% 40%; filter: blur(4px); opacity: 0.7; box-shadow: inset 0 0 30px #ffecc0;
  animation: mel-windowshimmer 8s ease-in-out infinite;
}
.scn-miles-expelled-letter .desk {
  position: absolute; bottom: 12%; left: 25%; right: 25%; height: 18%; background: linear-gradient(180deg, #7a5a3a 0%, #5a3a1a 100%);
  border-radius: 4px 4px 8px 8px; box-shadow: 0 4px 10px rgba(0,0,0,0.3);
}
.scn-miles-expelled-letter .letter {
  position: absolute; bottom: 22%; left: 40%; width: 20%; height: 14%; background: #f0e0c8;
  border-radius: 2px; box-shadow: 2px 2px 6px rgba(0,0,0,0.2); transform: rotate(-3deg);
  animation: mel-lettertremble 2s ease-in-out infinite;
}
.scn-miles-expelled-letter .governess-figure {
  position: absolute; bottom: 30%; left: 33%; width: 12%; height: 28%; background: linear-gradient(180deg, #3a2a1a 0%, #2a1a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center;
  animation: mel-governesssink 5s ease-in-out infinite;
}
.scn-miles-expelled-letter .mrs-grose-figure {
  position: absolute; bottom: 30%; right: 30%; width: 14%; height: 30%; background: linear-gradient(180deg, #4a3a2a 0%, #3a2a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center;
  animation: mel-groseshift 6s ease-in-out infinite;
}
.scn-miles-expelled-letter .flora-silhouette {
  position: absolute; bottom: 20%; right: 8%; width: 8%; height: 22%; background: linear-gradient(180deg, #3a2a1a 0%, #1a0a00 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%; opacity: 0.6;
  animation: mel-floraappear 10s ease-in-out infinite;
}
.scn-miles-expelled-letter .door-frame {
  position: absolute; bottom: 0; right: 5%; width: 15%; height: 70%; background: linear-gradient(180deg, #6a5a4a 0%, #4a3a2a 100%);
  border-radius: 4px 4px 0 0; box-shadow: inset 0 0 20px rgba(0,0,0,0.3);
}
@keyframes mel-wallpulse { 0% { filter: brightness(0.95); } 50% { filter: brightness(1.05); } 100% { filter: brightness(0.95); } }
@keyframes mel-windowshimmer { 0% { opacity: 0.6; filter: blur(6px); } 50% { opacity: 0.8; filter: blur(3px); } 100% { opacity: 0.7; filter: blur(5px); } }
@keyframes mel-lettertremble { 0% { transform: rotate(-3deg) translateY(0); } 25% { transform: rotate(-2deg) translateY(-1px); } 50% { transform: rotate(-4deg) translateY(0); } 75% { transform: rotate(-1deg) translateY(1px); } 100% { transform: rotate(-3deg) translateY(0); } }
@keyframes mel-governesssink { 0% { transform: translateY(0) scale(1); } 50% { transform: translateY(4px) scale(0.98); } 100% { transform: translateY(0) scale(1); } }
@keyframes mel-groseshift { 0% { transform: translateX(0) rotate(0); } 33% { transform: translateX(-5px) rotate(-1deg); } 66% { transform: translateX(3px) rotate(1deg); } 100% { transform: translateX(0) rotate(0); } }
@keyframes mel-floraappear { 0% { opacity: 0; transform: scale(0.8); } 30% { opacity: 0.6; transform: scale(1); } 70% { opacity: 0.5; } 100% { opacity: 0.6; transform: scale(1); } }

/* Scene 2: previous-governess-questions */
.scn-previous-governess-questions {
  background: linear-gradient(180deg, #f0e2c0 0%, #d4c0a0 40%, #b8a080 100%),
              radial-gradient(ellipse at 50% 30%, #ffeec8 0%, transparent 70%);
}
.scn-previous-governess-questions .room-bg {
  position: absolute; inset: 0; background: linear-gradient(135deg, #e0ceb0 0%, #c8b898 50%, #e0ceb0 100%);
}
.scn-previous-governess-questions .sunbeam {
  position: absolute; top: 0; left: 30%; width: 40%; height: 60%; background: linear-gradient(180deg, rgba(255,240,200,0.5) 0%, transparent 100%);
  filter: blur(8px); transform: skewX(-10deg); animation: pgq-sunmove 12s ease-in-out infinite alternate;
}
.scn-previous-governess-questions .table {
  position: absolute; bottom: 8%; left: 20%; right: 20%; height: 20%; background: linear-gradient(180deg, #8a6a4a 0%, #6a4a2a 100%);
  border-radius: 10px; box-shadow: 0 6px 12px rgba(0,0,0,0.3);
}
.scn-previous-governess-questions .governess-seated {
  position: absolute; bottom: 28%; left: 28%; width: 12%; height: 30%; background: linear-gradient(180deg, #3a2a1a 0%, #2a1a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center;
  animation: pgq-seatbob 4s ease-in-out infinite;
}
.scn-previous-governess-questions .mrs-grose-standing {
  position: absolute; bottom: 30%; right: 30%; width: 14%; height: 35%; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center;
  animation: pgq-standshift 6s ease-in-out infinite;
}
.scn-previous-governess-questions .teacup {
  position: absolute; bottom: 18%; left: 42%; width: 5%; height: 8%; background: linear-gradient(180deg, #f0e0c8 0%, #d0c0a8 100%);
  border-radius: 50% 50% 20% 20% / 40% 40% 20% 20%; box-shadow: 0 2px 4px rgba(0,0,0,0.2);
  animation: pgq-teasteam 3s ease-in-out infinite;
}
.scn-previous-governess-questions .shadow-on-wall {
  position: absolute; top: 20%; left: 25%; width: 50%; height: 40%; background: rgba(0,0,0,0.08);
  filter: blur(15px); border-radius: 30%; transform: rotate(5deg);
  animation: pgq-shadowfade 8s ease-in-out infinite;
}
@keyframes pgq-sunmove { 0% { transform: skewX(-10deg) translateX(0); } 100% { transform: skewX(-10deg) translateX(15px); } }
@keyframes pgq-seatbob { 0% { transform: translateY(0) rotate(0); } 25% { transform: translateY(-2px) rotate(1deg); } 50% { transform: translateY(0) rotate(0); } 75% { transform: translateY(-1px) rotate(-1deg); } 100% { transform: translateY(0) rotate(0); } }
@keyframes pgq-standshift { 0% { transform: translateX(0) scale(1); } 33% { transform: translateX(-4px) scale(1.02); } 66% { transform: translateX(2px) scale(0.98); } 100% { transform: translateX(0) scale(1); } }
@keyframes pgq-teasteam { 0% { transform: translateY(0) scale(1); opacity: 0.8; } 50% { transform: translateY(-6px) scale(1.1); opacity: 0.2; } 100% { transform: translateY(0) scale(1); opacity: 0.8; } }
@keyframes pgq-shadowfade { 0% { opacity: 0.5; filter: blur(12px); } 50% { opacity: 0.8; filter: blur(18px); } 100% { opacity: 0.5; filter: blur(12px); } }

/* Scene 3: previous-governess-died */
.scn-previous-governess-died {
  background: linear-gradient(180deg, #1a1a2e 0%, #0e0e1a 50%, #2a1a0a 100%),
              radial-gradient(ellipse at 40% 60%, #3a1a0a 0%, transparent 70%);
}
.scn-previous-governess-died .dark-wall {
  position: absolute; inset: 0; background: linear-gradient(180deg, #1e1e2e 0%, #14141f 100%);
  animation: pgd-wallflicker 8s ease-in-out infinite;
}
.scn-previous-governess-died .candle-glow {
  position: absolute; bottom: 40%; left: 25%; width: 30%; height: 40%; background: radial-gradient(circle, #ffb040 0%, rgba(255,176,64,0.3) 30%, transparent 70%);
  filter: blur(20px); animation: pgd-glowpulse 3s ease-in-out infinite alternate;
}
.scn-previous-governess-died .candle {
  position: absolute; bottom: 44%; left: 35%; width: 3%; height: 12%; background: linear-gradient(180deg, #f0e0c0 0%, #c08040 100%);
  border-radius: 2px; box-shadow: 0 0 10px #ffb040; transform-origin: bottom center;
  animation: pgd-candleflicker 1.5s ease-in-out infinite;
}
.scn-previous-governess-died .governess-silhouette {
  position: absolute; bottom: 30%; left: 32%; width: 12%; height: 32%; background: linear-gradient(180deg, #0a0a14 0%, #000 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center;
  animation: pgd-governessstill 5s ease-in-out infinite;
}
.scn-previous-governess-died .mrs-grose-whisper {
  position: absolute; bottom: 32%; right: 28%; width: 14%; height: 34%; background: linear-gradient(180deg, #1a1a24 0%, #0a0a10 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center;
  animation: pgd-groseshake 4s ease-in-out infinite;
}
.scn-previous-governess-died .miles-figure-door {
  position: absolute; bottom: 20%; right: 8%; width: 10%; height: 28%; background: linear-gradient(180deg, #1a1420 0%, #0a0a10 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%; opacity: 0.5;
  animation: pgd-milesappear 10s ease-in-out infinite;
}
.scn-previous-governess-died .doorway-dark {
  position: absolute; bottom: 0; right: 5%; width: 16%; height: 75%; background: #0a0a10;
  border-radius: 4px 4px 0 0; box-shadow: inset 0 0 20px rgba(0,0,0,0.8);
}
@keyframes pgd-wallflicker { 0% { filter: brightness(0.9); } 25% { filter: brightness(1.0); } 50% { filter: brightness(0.85); } 75% { filter: brightness(1.0); } 100% { filter: brightness(0.9); } }
@keyframes pgd-glowpulse { 0% { transform: scale(0.95); opacity: 0.6; } 50% { transform: scale(1.05); opacity: 0.9; } 100% { transform: scale(1); opacity: 0.7; } }
@keyframes pgd-candleflicker { 0% { transform: rotate(-1deg) scaleY(1); } 25% { transform: rotate(1deg) scaleY(1.02); } 50% { transform: rotate(-0.5deg) scaleY(0.98); } 75% { transform: rotate(0.5deg) scaleY(1.01); } 100% { transform: rotate(-1deg) scaleY(1); } }
@keyframes pgd-governessstill { 0% { transform: translateY(0); } 50% { transform: translateY(2px); } 100% { transform: translateY(0); } }
@keyframes pgd-groseshake { 0% { transform: translateX(0) rotate(0); } 33% { transform: translateX(3px) rotate(1deg); } 66% { transform: translateX(-2px) rotate(-1deg); } 100% { transform: translateX(0) rotate(0); } }
@keyframes pgd-milesappear { 0% { opacity: 0; transform: scale(0.8); } 20% { opacity: 0.5; transform: scale(1); } 80% { opacity: 0.5; } 100% { opacity: 0.5; transform: scale(1); } }

/* Scene 4: man-on-tower-sighting */
.scn-man-on-tower-sighting {
  background: linear-gradient(180deg, #2a2040 0%, #4a3050 30%, #7a4a50 60%, #c08060 100%),
              radial-gradient(ellipse at 50% 0%, #6a4a5a 0%, transparent 70%);
}
.scn-man-on-tower-sighting .dusk-sky {
  position: absolute; inset: 0; background: linear-gradient(180deg, #3a2a4a 0%, #6a4a5a 40%, #a07050 70%, #d0a080 100%);
  animation: mts-skydarken 20s ease-in-out infinite alternate;
}
.scn-man-on-tower-sighting .plantation-trees {
  position: absolute; bottom: 20%; left: 0; right: 0; height: 25%; background: linear-gradient(180deg, #2a2a1a 0%, #1a1a0a 100%);
  border-radius: 60% 40% 0 0 / 80% 70% 0 0; filter: blur(2px); box-shadow: inset 0 10px 20px rgba(0,0,0,0.5);
  animation: mts-treesway 15s ease-in-out infinite;
}
.scn-man-on-tower-sighting .tower {
  position: absolute; bottom: 22%; left: 35%; width: 12%; height: 50%; background: linear-gradient(180deg, #4a3a3a 0%, #2a1a1a 100%);
  border-radius: 4px 4px 0 0; box-shadow: 0 0 10px rgba(0,0,0,0.4);
  animation: mts-towerrise 10s ease-in-out infinite;
}
.scn-man-on-tower-sighting .man-on-tower {
  position: absolute; bottom: 68%; left: 35%; width: 8%; height: 12%; background: #0a0a0a;
  border-radius: 30% 30% 0 0 / 40% 40% 0 0; box-shadow: 0 0 8px rgba(0,0,0,0.6);
  transform-origin: bottom center;
  animation: mts-manturn 8s ease-in-out infinite;
}
.scn-man-on-tower-sighting .governess-foreground {
  position: absolute; bottom: 10%; left: 15%; width: 10%; height: 25%; background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center;
  animation: mts-governessback 6s ease-in-out infinite;
}
.scn-man-on-tower-sighting .distant-clouds {
  position: absolute; top: 10%; left: 10%; width: 80%; height: 20%; background: linear-gradient(90deg, rgba(255,200,150,0.2) 0%, rgba(255,180,140,0.1) 50%, rgba(200,150,120,0.2) 100%);
  filter: blur(12px); border-radius: 50%;
  animation: mts-clouddrift 40s linear infinite;
}
@keyframes mts-skydarken { 0% { filter: brightness(0.8); } 50% { filter: brightness(1.0); } 100% { filter: brightness(0.7); } }
@keyframes mts-treesway { 0% { transform: scaleX(1) translateY(0); } 50% { transform: scaleX(1.02) translateY(-2px); } 100% { transform: scaleX(1) translateY(0); } }
@keyframes mts-towerrise { 0% { transform: scaleY(1); } 50% { transform: scaleY(1.02); } 100% { transform: scaleY(1); } }
@keyframes mts-manturn { 0% { transform: rotate(0) scaleX(1); } 33% { transform: rotate(3deg) scaleX(0.95); } 66% { transform: rotate(-2deg) scaleX(1.05); } 100% { transform: rotate(0) scaleX(1); } }
@keyframes mts-governessback { 0% { transform: translateY(0) rotate(0); } 50% { transform: translateY(3px) rotate(2deg); } 100% { transform: translateY(0) rotate(0); } }
@keyframes mts-clouddrift { 0% { transform: translateX(0); } 100% { transform: translateX(100%); } }

.scn-quint-was-bad-and-dead {
  background: linear-gradient(180deg, #1a1020 0%, #2a1a2a 60%, #3a2a20 100%), radial-gradient(ellipse at 50% 0%, #5a3a20 0%, transparent 70%);
}
.scn-quint-was-bad-and-dead .bg-wall {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(90deg, #1a1a22 0%, #2a2a30 50%, #1a1a22 100%);
  animation: qbd-wall 18s ease-in-out infinite alternate;
}
.scn-quint-was-bad-and-dead .bg-floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a1a0a 100%);
  border-radius: 20% 20% 0 0;
  box-shadow: inset 0 10px 30px rgba(0,0,0,0.6);
}
.scn-quint-was-bad-and-dead .window {
  position: absolute; top: 15%; left: 35%; width: 30%; height: 40%;
  background: linear-gradient(135deg, #4a3a2a 0%, #6a5a4a 100%);
  border-radius: 4% 4% 2% 2%;
  box-shadow: inset 0 0 40px rgba(200,180,100,0.2);
  animation: qbd-window 9s ease-in-out infinite alternate;
}
.scn-quint-was-bad-and-dead .shadow-figure {
  position: absolute; bottom: 22%; left: 45%; width: 12%; height: 35%;
  background: linear-gradient(180deg, #0a0a12 0%, #1a1a22 100%);
  border-radius: 50% 50% 40% 40% / 70% 70% 40% 40%;
  transform-origin: bottom center;
  animation: qbd-figure 5s ease-in-out infinite;
}
.scn-quint-was-bad-and-dead .chair {
  position: absolute; bottom: 18%; left: 30%; width: 14%; height: 25%;
  background: linear-gradient(180deg, #2a2a1a 0%, #1a1a0a 100%);
  border-radius: 10% 10% 5% 5%;
  box-shadow: 0 5px 10px rgba(0,0,0,0.5);
  animation: qbd-chair 7s ease-in-out infinite alternate;
}
.scn-quint-was-bad-and-dead .candle {
  position: absolute; bottom: 28%; left: 55%; width: 1.5%; height: 6%;
  background: #3a2a1a;
  border-radius: 20% 20% 10% 10%;
  transform: rotate(2deg);
  animation: qbd-candle 3s ease-in-out infinite alternate;
}
.scn-quint-was-bad-and-dead .candle-glow {
  position: absolute; bottom: 30%; left: 53%; width: 8%; height: 10%;
  background: radial-gradient(circle, #c07040 0%, #804020 50%, transparent 100%);
  border-radius: 50%;
  filter: blur(8px);
  animation: qbd-glow 3s ease-in-out infinite alternate;
}
@keyframes qbd-wall {
  0% { opacity: 0.7; } 50% { opacity: 0.9; } 100% { opacity: 0.7; }
}
@keyframes qbd-window {
  0% { transform: scaleX(1); box-shadow: inset 0 0 30px rgba(200,180,100,0.1); }
  50% { transform: scaleX(1.02); box-shadow: inset 0 0 50px rgba(200,180,100,0.3); }
  100% { transform: scaleX(1); box-shadow: inset 0 0 30px rgba(200,180,100,0.1); }
}
@keyframes qbd-figure {
  0% { transform: translateX(0) translateY(0) rotate(-2deg); }
  30% { transform: translateX(3%) translateY(-2%) rotate(1deg); }
  60% { transform: translateX(0) translateY(0) rotate(-1deg); }
  100% { transform: translateX(-2%) translateY(0) rotate(2deg); }
}
@keyframes qbd-chair {
  0% { transform: scaleY(1); } 50% { transform: scaleY(0.98); } 100% { transform: scaleY(1); }
}
@keyframes qbd-candle {
  0% { transform: rotate(1deg) scaleY(1); }
  50% { transform: rotate(3deg) scaleY(1.02); }
  100% { transform: rotate(2deg) scaleY(0.98); }
}
@keyframes qbd-glow {
  0% { opacity: 0.6; transform: scale(1); }
  50% { opacity: 1; transform: scale(1.1); }
  100% { opacity: 0.7; transform: scale(0.9); }
}

.scn-agreement-to-bear-together {
  background: linear-gradient(180deg, #1a1a24 0%, #2a2a36 50%, #3a3a2a 100%), radial-gradient(ellipse at 50% 100%, #3a3a2a 0%, transparent 60%);
}
.scn-agreement-to-bear-together .bg-interior {
  position: absolute; inset: 0 0 20% 0;
  background: linear-gradient(135deg, #242430 0%, #30303c 50%, #242430 100%);
  border-radius: 0 0 30% 30% / 0 0 20% 20%;
  animation: abt-bg 20s ease-in-out infinite alternate;
}
.scn-agreement-to-bear-together .table {
  position: absolute; bottom: 20%; left: 25%; width: 50%; height: 8%;
  background: linear-gradient(180deg, #3a2a1a 0%, #2a1a0a 100%);
  border-radius: 5% 5% 2% 2%;
  box-shadow: 0 8px 20px rgba(0,0,0,0.7);
  transform: perspective(300px) rotateX(2deg);
}
.scn-agreement-to-bear-together .figure-left {
  position: absolute; bottom: 22%; left: 15%; width: 12%; height: 38%;
  background: linear-gradient(180deg, #0a0a12 0%, #1a1a22 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: abt-figure-left 4s ease-in-out infinite alternate;
}
.scn-agreement-to-bear-together .figure-right {
  position: absolute; bottom: 22%; right: 15%; width: 12%; height: 38%;
  background: linear-gradient(180deg, #0a0a12 0%, #1a1a22 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: abt-figure-right 4s ease-in-out infinite alternate 0.5s;
}
.scn-agreement-to-bear-together .candle {
  position: absolute; bottom: 28%; left: 48%; width: 1.5%; height: 8%;
  background: #3a2a1a;
  border-radius: 20% 20% 10% 10%;
  transform: rotate(0deg);
  animation: abt-candle 3s ease-in-out infinite alternate;
}
.scn-agreement-to-bear-together .candle-glow {
  position: absolute; bottom: 30%; left: 45%; width: 14%; height: 16%;
  background: radial-gradient(circle at 50% 40%, #c08040 0%, #804020 50%, transparent 80%);
  border-radius: 50%;
  filter: blur(12px);
  animation: abt-glow 3s ease-in-out infinite alternate;
}
.scn-agreement-to-bear-together .dust-specks {
  position: absolute; inset: 0;
  background: radial-gradient(circle at 30% 40%, rgba(200,180,140,0.08) 0%, transparent 80%);
  background-size: 30px 30px;
  animation: abt-dust 60s linear infinite;
}
@keyframes abt-bg {
  0% { opacity: 0.8; } 50% { opacity: 1; } 100% { opacity: 0.85; }
}
@keyframes abt-figure-left {
  0% { transform: translateX(0) translateY(0) rotate(-3deg); }
  50% { transform: translateX(5%) translateY(-2%) rotate(0deg); }
  100% { transform: translateX(0) translateY(0) rotate(3deg); }
}
@keyframes abt-figure-right {
  0% { transform: translateX(0) translateY(0) rotate(3deg); }
  50% { transform: translateX(-5%) translateY(-2%) rotate(0deg); }
  100% { transform: translateX(0) translateY(0) rotate(-3deg); }
}
@keyframes abt-candle {
  0% { transform: rotate(-2deg) scaleY(1); }
  50% { transform: rotate(2deg) scaleY(1.03); }
  100% { transform: rotate(-1deg) scaleY(0.97); }
}
@keyframes abt-glow {
  0% { opacity: 0.5; transform: scale(1); }
  50% { opacity: 1; transform: scale(1.15); }
  100% { opacity: 0.6; transform: scale(0.9); }
}
@keyframes abt-dust {
  0% { background-position: 0% 0%; }
  100% { background-position: 100% 100%; }
}

.scn-quint-too-free-and-died {
  background: linear-gradient(180deg, #0e0e1a 0%, #1a1a2e 60%, #2a1a1a 100%), radial-gradient(ellipse at 50% 0%, #3a2a20 0%, transparent 70%);
}
.scn-quint-too-free-and-died .stair-well {
  position: absolute; top: 0; left: 10%; width: 80%; height: 90%;
  background: linear-gradient(180deg, #1a1a22 0%, #2a2a32 50%, #1a1a22 100%);
  border-radius: 0 0 40% 40% / 0 0 20% 20%;
  transform: perspective(500px) rotateX(10deg);
  animation: qtf-stair 24s ease-in-out infinite alternate;
}
.scn-quint-too-free-and-died .stair-rails {
  position: absolute; top: 0; left: 15%; width: 70%; height: 85%;
  border-left: 4px solid #3a3a2a;
  border-right: 4px solid #3a3a2a;
  border-bottom: 4px solid #3a3a2a;
  border-radius: 0 0 30% 30% / 0 0 10% 10%;
  background: transparent;
  box-shadow: inset 0 0 30px rgba(0,0,0,0.8);
  animation: qtf-rails 12s ease-in-out infinite alternate;
}
.scn-quint-too-free-and-died .window-high {
  position: absolute; top: 10%; left: 35%; width: 30%; height: 25%;
  background: linear-gradient(135deg, #4a3a2a 0%, #5a4a3a 100%);
  border-radius: 10% 10% 5% 5%;
  box-shadow: inset 0 0 40px rgba(200,180,100,0.15);
  animation: qtf-window 9s ease-in-out infinite alternate;
}
.scn-quint-too-free-and-died .figure-fallen {
  position: absolute; bottom: 10%; left: 42%; width: 16%; height: 25%;
  background: linear-gradient(180deg, #1a1a22 0%, #0a0a12 100%);
  border-radius: 50% 50% 20% 20% / 40% 40% 20% 20%;
  transform: rotate(15deg) scaleX(0.9);
  box-shadow: 0 5px 15px rgba(0,0,0,0.8);
  animation: qtf-fallen 8s ease-in-out infinite alternate;
}
.scn-quint-too-free-and-died .shadow-overlay {
  position: absolute; inset: 0;
  background: radial-gradient(ellipse at 50% 30%, transparent 0%, rgba(0,0,0,0.6) 80%);
  animation: qtf-shadow 20s ease-in-out infinite alternate;
}
.scn-quint-too-free-and-died .dust-specks {
  position: absolute; inset: 0;
  background: radial-gradient(circle at 40% 20%, rgba(200,180,140,0.05) 0%, transparent 70%);
  background-size: 40px 40px;
  animation: qtf-dust 80s linear infinite;
}
@keyframes qtf-stair {
  0% { transform: perspective(500px) rotateX(8deg) translateY(0); }
  50% { transform: perspective(500px) rotateX(12deg) translateY(-2%); }
  100% { transform: perspective(500px) rotateX(10deg) translateY(0); }
}
@keyframes qtf-rails {
  0% { opacity: 0.6; } 50% { opacity: 1; } 100% { opacity: 0.7; }
}
@keyframes qtf-window {
  0% { transform: scaleY(1); box-shadow: inset 0 0 30px rgba(200,180,100,0.1); }
  50% { transform: scaleY(1.02); box-shadow: inset 0 0 50px rgba(200,180,100,0.25); }
  100% { transform: scaleY(1); box-shadow: inset 0 0 30px rgba(200,180,100,0.1); }
}
@keyframes qtf-fallen {
  0% { transform: rotate(12deg) scaleX(0.9) translateY(0); }
  50% { transform: rotate(18deg) scaleX(0.85) translateY(2%); }
  100% { transform: rotate(15deg) scaleX(0.9) translateY(0); }
}
@keyframes qtf-shadow {
  0% { opacity: 0.7; } 50% { opacity: 1; } 100% { opacity: 0.8; }
}
@keyframes qtf-dust {
  0% { background-position: 0% 0%; }
  100% { background-position: 100% 100%; }
}

.scn-lake-visitant-sensed {
  background: linear-gradient(180deg, #6a8a9a 0%, #8aaa9a 40%, #9aba8a 100%), radial-gradient(ellipse at 50% 20%, #c8d8b8 0%, transparent 70%);
}
.scn-lake-visitant-sensed .sky {
  position: absolute; top: 0; left: 0; right: 0; height: 50%;
  background: linear-gradient(180deg, #a8c8d8 0%, #b8d8d8 60%, #c8d8b8 100%);
  animation: lvs-sky 12s ease-in-out infinite alternate;
}
.scn-lake-visitant-sensed .lake-water {
  position: absolute; bottom: 0; left: 0; right: 0; height: 55%;
  background: linear-gradient(180deg, #7a9a8a 0%, #5a7a6a 100%);
  border-radius: 30% 70% 0 0 / 20% 60% 0 0;
  box-shadow: inset 0 10px 30px rgba(0,0,0,0.3);
  animation: lvs-water 18s ease-in-out infinite alternate;
}
.scn-lake-visitant-sensed .reeds {
  position: absolute; bottom: 5%; left: 10%; width: 20%; height: 40%;
  background: linear-gradient(180deg, #4a6a3a 0%, #3a5a2a 100%);
  border-radius: 50% 50% 30% 30% / 80% 80% 20% 20%;
  transform-origin: bottom center;
  animation: lvs-reeds 6s ease-in-out infinite alternate;
}
.scn-lake-visitant-sensed .figure-child {
  position: absolute; bottom: 20%; left: 35%; width: 10%; height: 35%;
  background: linear-gradient(180deg, #4a3a2a 0%, #3a2a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: lvs-child 8s ease-in-out infinite alternate;
}
.scn-lake-visitant-sensed .visitant-shape {
  position: absolute; bottom: 30%; right: 20%; width: 8%; height: 40%;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 50% 50% 40% 40% / 70% 70% 30% 30%;
  transform-origin: bottom center;
  animation: lvs-visitant 10s ease-in-out infinite alternate;
}
.scn-lake-visitant-sensed .sun-glare {
  position: absolute; top: 10%; left: 45%; width: 20%; height: 20%;
  background: radial-gradient(circle at 50% 0%, #fff8e0 0%, #f0e8b0 30%, transparent 70%);
  border-radius: 50%;
  filter: blur(6px);
  animation: lvs-glare 4s ease-in-out infinite alternate;
}
.scn-lake-visitant-sensed .reflection-ripple {
  position: absolute; bottom: 15%; left: 30%; width: 40%; height: 10%;
  background: repeating-linear-gradient(90deg, transparent 0%, transparent 4%, rgba(255,255,255,0.1) 4%, rgba(255,255,255,0.1) 6%);
  background-size: 6% 100%;
  animation: lvs-ripple 3s ease-in-out infinite;
}
@keyframes lvs-sky {
  0% { opacity: 0.8; } 50% { opacity: 1; } 100% { opacity: 0.9; }
}
@keyframes lvs-water {
  0% { transform: translateY(0) scaleY(1); }
  50% { transform: translateY(-1%) scaleY(1.01); }
  100% { transform: translateY(0) scaleY(1); }
}
@keyframes lvs-reeds {
  0% { transform: rotate(-3deg) translateY(0); }
  50% { transform: rotate(3deg) translateY(-2%); }
  100% { transform: rotate(-2deg) translateY(0); }
}
@keyframes lvs-child {
  0% { transform: translateX(0) translateY(0) rotate(-2deg); }
  50% { transform: translateX(2%) translateY(-1%) rotate(1deg); }
  100% { transform: translateX(0) translateY(0) rotate(-2deg); }
}
@keyframes lvs-visitant {
  0% { transform: translateY(0) scaleY(1); }
  50% { transform: translateY(-5%) scaleY(1.05); }
  100% { transform: translateY(0) scaleY(1); }
}
@keyframes lvs-glare {
  0% { opacity: 0.6; transform: scale(1); }
  50% { opacity: 1; transform: scale(1.1); }
  100% { opacity: 0.7; transform: scale(0.95); }
}
@keyframes lvs-ripple {
  0% { background-position: 0% 0%; }
  100% { background-position: 100% 0%; }
}

/* Scene: well-so-were-alone */
.scn-well-so-were-alone {
  background: linear-gradient(180deg, #1a1a2e 0%, #2c2244 40%, #4a3a5e 100%),
              radial-gradient(ellipse at 50% 20%, #6a5a7e 0%, transparent 60%);
}
.scn-well-so-were-alone .room-back {
  position: absolute; inset: 0; 
  background: linear-gradient(135deg, #2a1f3a 0%, #1a1028 50%, #0e0820 100%);
  animation: sc1-breathe 12s ease-in-out infinite alternate;
}
.scn-well-so-were-alone .window-frame {
  position: absolute; top: 10%; left: 60%; width: 120px; height: 180px; 
  background: #2a1a10; border-radius: 4px; box-shadow: inset 0 0 20px #000;
  transform: perspective(600px) rotateY(-5deg);
}
.scn-well-so-were-alone .glass-light {
  position: absolute; top: 12%; left: 62%; width: 80px; height: 140px;
  background: radial-gradient(ellipse at 50% 40%, #5a6a8a 0%, #2a3a5a 60%, #0a1a2a 100%);
  border-radius: 2px; opacity: 0.7;
  animation: sc1-glassglow 6s ease-in-out infinite alternate;
}
.scn-well-so-were-alone .figure-at-window {
  position: absolute; top: 22%; left: 62%; width: 30px; height: 70px;
  background: linear-gradient(180deg, #0e0e1e 0%, #1a1a2a 60%, #0a0a12 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: sc1-figrestless 4s ease-in-out infinite;
}
.scn-well-so-were-alone .lamp-glow {
  position: absolute; bottom: 20%; left: 20%; width: 40px; height: 60px;
  background: radial-gradient(ellipse at 50% 30%, #c8703a 0%, #8a4a1a 50%, transparent 100%);
  border-radius: 50%; filter: blur(6px);
  animation: sc1-lampflicker 3s ease-in-out infinite alternate;
}
.scn-well-so-were-alone .shadow-on-floor {
  position: absolute; bottom: 0; left: 20%; width: 200px; height: 30px;
  background: linear-gradient(90deg, transparent 0%, #0a0a1a 30%, #0a0a1a 70%, transparent 100%);
  border-radius: 50%; filter: blur(8px);
  animation: sc1-shadowsink 8s ease-in-out infinite;
}
.scn-well-so-were-alone .dust-mote {
  position: absolute; width: 4px; height: 4px;
  background: rgba(200,180,160,0.6); border-radius: 50%;
  filter: blur(2px);
}
.scn-well-so-were-alone .mote-a {
  top: 30%; left: 40%;
  animation: sc1-driftmote 15s linear infinite;
}
.scn-well-so-were-alone .mote-b {
  top: 50%; left: 60%;
  animation: sc1-driftmote 20s linear infinite reverse;
}
@keyframes sc1-breathe {
  0% { opacity: 0.85; transform: scale(1); }
  50% { opacity: 1; transform: scale(1.01); }
  100% { opacity: 0.9; transform: scale(0.99); }
}
@keyframes sc1-glassglow {
  0% { opacity: 0.5; box-shadow: inset 0 0 10px #4a5a7a; }
  50% { opacity: 0.8; box-shadow: inset 0 0 20px #5a6a8a; }
  100% { opacity: 0.6; box-shadow: inset 0 0 8px #3a4a6a; }
}
@keyframes sc1-figrestless {
  0% { transform: translateX(0) translateY(0) rotate(0deg); }
  25% { transform: translateX(4px) translateY(-2px) rotate(-1deg); }
  50% { transform: translateX(0) translateY(1px) rotate(1deg); }
  75% { transform: translateX(-3px) translateY(-1px) rotate(0deg); }
  100% { transform: translateX(0) translateY(0) rotate(0deg); }
}
@keyframes sc1-lampflicker {
  0% { opacity: 0.7; transform: scale(1) rotate(-2deg); }
  50% { opacity: 1; transform: scale(1.05) rotate(2deg); }
  100% { opacity: 0.8; transform: scale(0.95) rotate(0deg); }
}
@keyframes sc1-shadowsink {
  0% { transform: translateY(0) scaleX(1); }
  50% { transform: translateY(4px) scaleX(1.1); }
  100% { transform: translateY(0) scaleX(1); }
}
@keyframes sc1-driftmote {
  0% { transform: translate(0, 0) scale(1); opacity: 0.3; }
  25% { transform: translate(10px, -15px) scale(1.2); opacity: 0.7; }
  50% { transform: translate(20px, 5px) scale(0.8); opacity: 0.4; }
  75% { transform: translate(30px, -10px) scale(1.1); opacity: 0.6; }
  100% { transform: translate(40px, 0) scale(1); opacity: 0.3; }
}

/* Scene: quint-appears-at-window */
.scn-quint-appears-at-window {
  background: linear-gradient(180deg, #0a0a0a 0%, #1a1a2a 30%, #0e0e1e 70%, #000 100%),
              radial-gradient(ellipse at 50% 30%, #2a2a3a 0%, transparent 70%);
}
.scn-quint-appears-at-window .dark-room {
  position: absolute; inset: 0;
  background: linear-gradient(135deg, #000000, #0a0a12, #000000);
  animation: sc2-pulse 10s ease-in-out infinite alternate;
}
.scn-quint-appears-at-window .window-pane {
  position: absolute; top: 8%; left: 30%; width: 140px; height: 200px;
  background: radial-gradient(ellipse at 50% 40%, #1a2a3a 0%, #0a0a1a 80%);
  border: 6px solid #1a1a1a; border-radius: 4px;
  box-shadow: 0 0 30px #000;
  transform: perspective(500px) rotateY(8deg);
  animation: sc2-pane 8s ease-in-out infinite;
}
.scn-quint-appears-at-window .quint-face {
  position: absolute; top: 12%; left: 36%; width: 50px; height: 60px;
  background: linear-gradient(180deg, #b0b0c0 0%, #8a8a9a 40%, #4a4a5a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  box-shadow: 0 0 20px 5px rgba(180,180,200,0.3);
  opacity: 0.8;
  animation: sc2-ghostface 4s ease-in-out infinite alternate;
}
.scn-quint-appears-at-window .quint-hand {
  position: absolute; top: 55%; left: 38%; width: 12px; height: 40px;
  background: linear-gradient(180deg, #9a9a9a 0%, #6a6a6a 100%);
  border-radius: 30% 30% 40% 40% / 40% 40% 60% 60%;
  transform: rotate(15deg);
  animation: sc2-handtap 5s ease-in-out infinite;
}
.scn-quint-appears-at-window .boy-figure {
  position: absolute; bottom: 20%; left: 50%; width: 28px; height: 60px;
  background: linear-gradient(180deg, #1a1a1a 0%, #0a0a0a 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: sc2-boyflinch 5s ease-in-out infinite;
}
.scn-quint-appears-at-window .shutter {
  position: absolute; top: 8%; left: 28%; width: 20px; height: 200px;
  background: linear-gradient(180deg, #2a1a0a 0%, #1a0a00 100%);
  border-radius: 2px;
  transform-origin: left center;
  animation: sc2-shuttercreak 7s ease-in-out infinite alternate;
}
.scn-quint-appears-at-window .rain-streak {
  position: absolute; width: 2px; height: 60px;
  background: rgba(180,200,220,0.3);
  transform: rotate(15deg);
}
.scn-quint-appears-at-window .streak-a {
  top: 0%; left: 40%;
  animation: sc2-rain 1.5s linear infinite;
}
.scn-quint-appears-at-window .streak-b {
  top: 10%; left: 55%;
  animation: sc2-rain 2s linear infinite 0.5s;
}
@keyframes sc2-pulse {
  0% { opacity: 0.9; transform: scale(1); }
  50% { opacity: 1; transform: scale(1.01); }
  100% { opacity: 0.85; transform: scale(0.99); }
}
@keyframes sc2-pane {
  0% { transform: perspective(500px) rotateY(8deg) translateX(0); }
  50% { transform: perspective(500px) rotateY(6deg) translateX(-2px); }
  100% { transform: perspective(500px) rotateY(8deg) translateX(0); }
}
@keyframes sc2-ghostface {
  0% { transform: scale(1) translateY(0); opacity: 0.6; }
  50% { transform: scale(1.05) translateY(-3px); opacity: 1; }
  100% { transform: scale(1) translateY(0); opacity: 0.7; }
}
@keyframes sc2-handtap {
  0% { transform: rotate(15deg) translateY(0); }
  30% { transform: rotate(12deg) translateY(2px); }
  60% { transform: rotate(18deg) translateY(-1px); }
  100% { transform: rotate(15deg) translateY(0); }
}
@keyframes sc2-boyflinch {
  0% { transform: translateX(0) translateY(0) rotate(0deg); }
  20% { transform: translateX(-5px) translateY(-2px) rotate(-2deg); }
  50% { transform: translateX(0) translateY(0) rotate(0deg); }
  80% { transform: translateX(3px) translateY(-1px) rotate(1deg); }
  100% { transform: translateX(0) translateY(0) rotate(0deg); }
}
@keyframes sc2-shuttercreak {
  0% { transform: scaleX(1); }
  50% { transform: scaleX(0.95); }
  100% { transform: scaleX(1); }
}
@keyframes sc2-rain {
  0% { transform: translate(0, -60px) rotate(15deg); opacity: 0; }
  10% { opacity: 0.3; }
  90% { opacity: 0.3; }
  100% { transform: translate(15px, 120px) rotate(15deg); opacity: 0; }
}

/* Scene: burned-letter-interrogation */
.scn-burned-letter-interrogation {
  background: linear-gradient(180deg, #1a1010 0%, #2a1a0a 30%, #3a2a1a 70%, #1a0a00 100%),
              radial-gradient(ellipse at 50% 50%, #4a3a2a 0%, transparent 80%);
}
.scn-burned-letter-interrogation .desk-surface {
  position: absolute; bottom: 0; left: 0; right: 0; height: 40%;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a1008 100%);
  border-radius: 30% 10% 0 0 / 100% 40% 0 0;
  box-shadow: inset 0 10px 20px #000;
  animation: sc3-desk 15s ease-in-out infinite;
}
.scn-burned-letter-interrogation .letter-ash {
  position: absolute; bottom: 20%; left: 35%; width: 80px; height: 100px;
  background: radial-gradient(ellipse at 50% 30%, #2a1a0a 0%, #1a0a00 70%);
  border-radius: 20% 80% 40% 60% / 40% 30% 70% 60%;
  transform: rotate(-10deg);
  box-shadow: 0 0 15px rgba(200,150,50,0.2);
  animation: sc3-ashcrack 6s ease-in-out infinite alternate;
}
.scn-burned-letter-interrogation .candle {
  position: absolute; bottom: 30%; left: 20%; width: 18px; height: 70px;
  background: linear-gradient(180deg, #e8d8c0 0%, #c8b8a0 40%, #8a7a60 100%);
  border-radius: 10% 10% 20% 20% / 30% 30% 20% 20%;
  box-shadow: 0 0 10px #000;
}
.scn-burned-letter-interrogation .candle-flame {
  position: absolute; bottom: calc(30% + 70px); left: 20.5%; width: 10px; height: 20px;
  background: radial-gradient(ellipse at 50% 30%, #ffe8a0 0%, #ffb060 40%, #c04020 70%, transparent 100%);
  border-radius: 50%;
  filter: blur(2px);
  animation: sc3-flameflicker 1.5s ease-in-out infinite alternate;
}
.scn-burned-letter-interrogation .governess-hand {
  position: absolute; bottom: 15%; left: 30%; width: 16px; height: 50px;
  background: linear-gradient(180deg, #d0b8a8 0%, #a08878 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform: rotate(-20deg);
  transform-origin: bottom center;
  animation: sc3-govhand 7s ease-in-out infinite;
}
.scn-burned-letter-interrogation .boy-shadow {
  position: absolute; bottom: 20%; left: 55%; width: 60px; height: 80px;
  background: linear-gradient(180deg, #1a1a1a 0%, #0a0a0a 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%;
  filter: blur(4px);
  animation: sc3-boysway 5s ease-in-out infinite alternate;
}
.scn-burned-letter-interrogation .inkwell {
  position: absolute; bottom: 22%; left: 60%; width: 20px; height: 30px;
  background: linear-gradient(180deg, #2a2a2a 0%, #1a1a1a 100%);
  border-radius: 40% 40% 20% 20% / 50% 50% 30% 30%;
  box-shadow: 0 0 8px #000;
}
@keyframes sc3-desk {
  0% { transform: translateY(0); }
  50% { transform: translateY(2px); }
  100% { transform: translateY(0); }
}
@keyframes sc3-ashcrack {
  0% { transform: rotate(-10deg) scale(1); opacity: 0.8; }
  50% { transform: rotate(-8deg) scale(1.02); opacity: 1; }
  100% { transform: rotate(-10deg) scale(0.98); opacity: 0.9; }
}
@keyframes sc3-flameflicker {
  0% { transform: scaleY(1) translateX(0); opacity: 0.9; }
  25% { transform: scaleY(1.15) translateX(1px); opacity: 1; }
  50% { transform: scaleY(0.85) translateX(-1px); opacity: 0.85; }
  75% { transform: scaleY(1.05) translateX(0.5px); opacity: 0.95; }
  100% { transform: scaleY(1) translateX(0); opacity: 0.9; }
}
@keyframes sc3-govhand {
  0% { transform: rotate(-20deg) translateY(0); }
  30% { transform: rotate(-22deg) translateY(-3px); }
  60% { transform: rotate(-18deg) translateY(2px); }
  100% { transform: rotate(-20deg) translateY(0); }
}
@keyframes sc3-boysway {
  0% { transform: translateX(0) scale(1); opacity: 0.6; }
  50% { transform: translateX(5px) scale(1.05); opacity: 0.8; }
  100% { transform: translateX(0) scale(1); opacity: 0.6; }
}

/* Scene: said-things-to-masters */
.scn-said-things-to-masters {
  background: linear-gradient(180deg, #0a0a14 0%, #1a1020 30%, #2a1a30 70%, #0a0a0a 100%),
              radial-gradient(ellipse at 50% 30%, #3a2a4a 0%, transparent 70%);
}
.scn-said-things-to-masters .room-corner {
  position: absolute; inset: 0;
  background: linear-gradient(135deg, #14101a, #0a0a10, #1a1020);
  animation: sc4-pulses 12s ease-in-out infinite alternate;
}
.scn-said-things-to-masters .window-reprise {
  position: absolute; top: 5%; left: 25%; width: 130px; height: 190px;
  background: radial-gradient(ellipse at 50% 30%, #1a1a2a 0%, #0a0a1a 80%);
  border: 4px solid #1a1a1a; border-radius: 4px;
  box-shadow: 0 0 40px #000;
  animation: sc4-windowshii 9s ease-in-out infinite;
}
.scn-said-things-to-masters .quint-reappear {
  position: absolute; top: 10%; left: 30%; width: 45px; height: 55px;
  background: linear-gradient(180deg, #9a9aaa 0%, #6a6a7a 40%, #3a3a4a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  box-shadow: 0 0 20px 5px rgba(150,150,170,0.3);
  opacity: 0.7;
  animation: sc4-quintfade 5s ease-in-out infinite alternate;
}
.scn-said-things-to-masters .governess-figure {
  position: absolute; bottom: 10%; left: 40%; width: 30px; height: 70px;
  background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: sc4-govreact 4s ease-in-out infinite;
}
.scn-said-things-to-masters .boy-silhouette {
  position: absolute; bottom: 12%; left: 52%; width: 25px; height: 55px;
  background: linear-gradient(180deg, #0e0e1e 0%, #000000 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%;
  animation: sc4-boyshiver 3s ease-in-out infinite;
}
.scn-said-things-to-masters .candle-quiver {
  position: absolute; bottom: 18%; left: 20%; width: 12px; height: 50px;
  background: linear-gradient(180deg, #e0d0b8 0%, #c0b0a0 40%, #8a7a6a 100%);
  border-radius: 10% 10% 20% 20% / 30% 30% 20% 20%;
  box-shadow: 0 0 10px #000;
  animation: sc4-candleshake 6s ease-in-out infinite;
}
.scn-said-things-to-masters .door-crack {
  position: absolute; top: 20%; left: 70%; width: 4px; height: 120px;
  background: linear-gradient(180deg, #2a1a0a 0%, #4a3a2a 50%, #1a0a00 100%);
  border-radius: 2px;
  box-shadow: 0 0 10px rgba(100,80,60,0.2);
  animation: sc4-doorcrack 11s ease-in-out infinite alternate;
}
.scn-said-things-to-masters .floor-wood {
  position: absolute; bottom: 0; left: 0; right: 0; height: 12%;
  background: linear-gradient(90deg, #1a1010 0%, #2a1a1a 20%, #1a1010 40%, #0a0a0a 60%, #1a1010 80%, #0a0a0a 100%);
  background-size: 60px 100%;
  animation: sc4-floorcreak 15s linear infinite;
}
@keyframes sc4-pulses {
  0% { opacity: 0.9; }
  50% { opacity: 1; }
  100% { opacity: 0.85; }
}
@keyframes sc4-windowshii {
  0% { transform: perspective(500px) rotateY(5deg); }
  50% { transform: perspective(500px) rotateY(3deg) translateX(2px); }
  100% { transform: perspective(500px) rotateY(5deg); }
}
@keyframes sc4-quintfade {
  0% { opacity: 0.4; transform: scale(1); }
  50% { opacity: 0.9; transform: scale(1.06); }
  100% { opacity: 0.5; transform: scale(0.98); }
}
@keyframes sc4-govreact {
  0% { transform: translateX(0) translateY(0) rotate(0deg); }
  25% { transform: translateX(-3px) translateY(-2px) rotate(-3deg); }
  50% { transform: translateX(0) translateY(0) rotate(0deg); }
  75% { transform: translateX(4px) translateY(-1px) rotate(2deg); }
  100% { transform: translateX(0) translateY(0) rotate(0deg); }
}
@keyframes sc4-boyshiver {
  0% { transform: translateX(0) scale(1); }
  30% { transform: translateX(2px) scale(1.02); }
  60% { transform: translateX(-2px) scale(0.98); }
  100% { transform: translateX(0) scale(1); }
}
@keyframes sc4-candleshake {
  0% { transform: rotate(-1deg) translateY(0); }
  30% { transform: rotate(1.5deg) translateY(-2px); }
  70% { transform: rotate(-1deg) translateY(1px); }
  100% { transform: rotate(-1deg) translateY(0); }
}
@keyframes sc4-doorcrack {
  0% { transform: scaleX(1); opacity: 0.3; }
  50% { transform: scaleX(1.2); opacity: 0.6; }
  100% { transform: scaleX(1); opacity: 0.3; }
}
@keyframes sc4-floorcreak {
  0% { background-position: 0 0; }
  100% { background-position: 60px 0; }
}

/* === Scene: round-fire-christmas-eve (tense, firelit) === */
.scn-round-fire-christmas-eve {
  background: 
    linear-gradient(180deg, #2e1a0e 0%, #4a2e1a 30%, #6b3e22 60%, #1f0e06 100%),
    radial-gradient(ellipse 60% 80% at 50% 60%, #d97a2a 0%, transparent 70%);
}
.scn-round-fire-christmas-eve .room-bg { position:absolute; inset:0; background:linear-gradient(180deg, #1a0c06 0%, #3a1e0e 50%, #2a140a 100%); }
.scn-round-fire-christmas-eve .fireplace { position:absolute; bottom:10%; left:50%; transform:translateX(-50%); width:140px; height:100px; background:linear-gradient(180deg, #2a140a 0%, #150a04 100%); border-radius:10% 10% 4% 4%; box-shadow: inset 0 -20px 30px rgba(0,0,0,.7); }
.scn-round-fire-christmas-eve .mantel { position:absolute; bottom:38%; left:50%; transform:translateX(-50%); width:160px; height:12px; background:linear-gradient(180deg, #4a2a16 0%, #2e1a0c 100%); border-radius:2px; box-shadow: 0 4px 10px rgba(0,0,0,.5); }
.scn-round-fire-christmas-eve .flames { position:absolute; bottom:20%; left:50%; transform:translateX(-50%); width:80px; height:70px; background: radial-gradient(ellipse 60% 80% at 50% 100%, #ff8c2a 0%, #e65c00 40%, transparent 70%); filter:blur(4px); animation: chr-flames 0.8s ease-in-out infinite alternate; }
.scn-round-fire-christmas-eve .log-glow { position:absolute; bottom:15%; left:50%; transform:translateX(-50%); width:100px; height:20px; background: radial-gradient(ellipse 70% 100% at 50% 100%, #ff6633 0%, transparent 60%); animation: chr-logg 2s ease-in-out infinite alternate; }
.scn-round-fire-christmas-eve .silhouette-left { position:absolute; bottom:15%; left:28%; width:30px; height:70px; background: #0a0604; border-radius:50% 50% 30% 30% / 70% 70% 30% 30%; transform-origin: bottom center; animation: chr-figure 4s ease-in-out infinite; }
.scn-round-fire-christmas-eve .silhouette-right { position:absolute; bottom:15%; right:28%; width:28px; height:68px; background: #0a0604; border-radius:50% 50% 30% 30% / 70% 70% 30% 30%; transform-origin: bottom center; animation: chr-figure 5s ease-in-out infinite reverse; }
.scn-round-fire-christmas-eve .ghost-wisp { position:absolute; top:25%; left:45%; width:40px; height:40px; background: radial-gradient(circle, rgba(255,255,230,.5) 0%, transparent 70%); filter:blur(8px); animation: chr-ghost 6s ease-in-out infinite; }
.scn-round-fire-christmas-eve .hearth { position:absolute; bottom:8%; left:50%; transform:translateX(-50%); width:140px; height:20px; background: linear-gradient(180deg, #2a180e 0%, #150c06 100%); border-radius:50%; }
@keyframes chr-flames { 0% { transform:translateX(-50%) scaleY(1) scaleX(1) } 33% { transform:translateX(-48%) scaleY(1.15) scaleX(1.1) } 66% { transform:translateX(-52%) scaleY(0.9) scaleX(0.95) } 100% { transform:translateX(-50%) scaleY(1.05) scaleX(1.02) } }
@keyframes chr-logg { 0% { opacity:.8; transform:scale(1) } 50% { opacity:1; transform:scale(1.1) } 100% { opacity:.7; transform:scale(0.95) } }
@keyframes chr-figure { 0% { transform:translateY(0) rotate(-2deg) } 25% { transform:translateY(-3px) rotate(1deg) } 50% { transform:translateY(0) rotate(2deg) } 75% { transform:translateY(-2px) rotate(-1deg) } 100% { transform:translateY(0) rotate(0) } }
@keyframes chr-ghost { 0% { transform:translate(0,0) scale(0.8); opacity:.3; } 25% { transform:translate(10px,-15px) scale(1.2); opacity:.6; } 50% { transform:translate(-5px,-30px) scale(1); opacity:.2; } 75% { transform:translate(15px,-10px) scale(1.1); opacity:.5; } 100% { transform:translate(0,0) scale(0.9); opacity:.4; } }

/* === Scene: story-written-locked-away (calm, firelit) === */
.scn-story-written-locked-away {
  background: 
    linear-gradient(180deg, #2e1f12 0%, #4a3422 40%, #3a2618 80%, #1f120a 100%),
    radial-gradient(ellipse 50% 60% at 30% 70%, #d97a30 0%, transparent 60%);
}
.scn-story-written-locked-away .room-wall { position:absolute; inset:0; background:linear-gradient(180deg, #1f120a 0%, #3a2618 50%, #1f120a 100%); }
.scn-story-written-locked-away .desk { position:absolute; bottom:12%; left:20%; width:120px; height:50px; background:linear-gradient(180deg, #5e3e24 0%, #3a2618 100%); border-radius:4% 4% 2% 2%; box-shadow: 0 6px 12px rgba(0,0,0,.6); transform: skewX(-5deg); animation: lck-desk 20s ease-in-out infinite; }
.scn-story-written-locked-away .chair { position:absolute; bottom:10%; left:35%; width:40px; height:60px; background:linear-gradient(180deg, #2e1a0c 0%, #1a0c04 100%); border-radius:50% 50% 30% 30% / 60% 60% 30% 30%; transform-origin: bottom center; animation: lck-chair 8s ease-in-out infinite alternate; }
.scn-story-written-locked-away .fireplace-slow { position:absolute; bottom:15%; right:15%; width:100px; height:80px; background:linear-gradient(180deg, #3a1a0a 0%, #1a0c04 100%); border-radius:10% 10% 4% 4%; box-shadow: inset 0 -15px 25px rgba(0,0,0,.5); }
.scn-story-written-locked-away .paper-envelope { position:absolute; bottom:20%; left:25%; width:40px; height:30px; background:linear-gradient(135deg, #f0e6d0 0%, #d0c0a0 100%); border-radius:2px; transform: rotate(-10deg); box-shadow: 0 2px 6px rgba(0,0,0,.3); animation: lck-paper 12s ease-in-out infinite; }
.scn-story-written-locked-away .bookshelf { position:absolute; top:20%; right:8%; width:60px; height:140px; background:linear-gradient(180deg, #2e1a0c 0%, #1a0c04 100%); border-radius:2% 2% 0 0; box-shadow: inset 0 0 10px rgba(0,0,0,.5); }
.scn-story-written-locked-away .window-night { position:absolute; top:10%; left:10%; width:80px; height:100px; background:linear-gradient(180deg, #0a0e1a 0%, #141a2e 100%); border-radius:4px; border:4px solid #2e1a0c; filter:blur(1px); }
.scn-story-written-locked-away .candle { position:absolute; bottom:22%; left:45%; width:8px; height:24px; background:linear-gradient(180deg, #f0e0c0 0%, #c0a080 100%); border-radius:2px; transform-origin: bottom center; animation: lck-candle 3s ease-in-out infinite alternate; }
@keyframes lck-desk { 0%,100% { transform: skewX(-5deg) translateY(0) } 50% { transform: skewX(-5deg) translateY(-2px) } }
@keyframes lck-chair { 0% { transform: rotate(0) translateY(0) } 25% { transform: rotate(-2deg) translateY(-1px) } 50% { transform: rotate(0) translateY(0) } 75% { transform: rotate(2deg) translateY(-1px) } 100% { transform: rotate(0) translateY(0) } }
@keyframes lck-paper { 0% { transform: rotate(-10deg) translateX(0) } 25% { transform: rotate(-8deg) translateX(2px) } 50% { transform: rotate(-12deg) translateX(0) } 75% { transform: rotate(-9deg) translateX(-2px) } 100% { transform: rotate(-10deg) translateX(0) } }
@keyframes lck-candle { 0% { transform: scaleY(1); background:#f0e0c0; } 50% { transform: scaleY(1.05); background:#ffddb0; } 100% { transform: scaleY(0.95); background:#e0c8a0; } }

/* === Scene: governess-arrives-at-bly (warm, bright-interior) === */
.scn-governess-arrives-at-bly {
  background: 
    linear-gradient(180deg, #f8eed8 0%, #e8d8b0 40%, #d4ba8a 80%, #b89a6e 100%),
    radial-gradient(ellipse 70% 60% at 50% 50%, #fff2d8 0%, transparent 70%);
}
.scn-governess-arrives-at-bly .foyer-bg { position:absolute; inset:0; background:linear-gradient(180deg, #f0e4cc 0%, #d8c8a8 60%, #c0aa86 100%); }
.scn-governess-arrives-at-bly .front-door { position:absolute; left:10%; top:20%; width:120px; height:180px; background:linear-gradient(180deg, #8a6e4e 0%, #6a4e2e 100%); border-radius:8% 8% 0 0; border:6px solid #5e3e24; box-shadow: 0 8px 20px rgba(0,0,0,.3); animation: bly-door 6s ease-in-out infinite; }
.scn-governess-arrives-at-bly .staircase { position:absolute; right:12%; bottom:0; width:100px; height:200px; background:linear-gradient(135deg, #c0a880 0%, #a0805e 50%, #806046 100%); transform: skewY(-10deg); border-radius:10% 10% 0 0; }
.scn-governess-arrives-at-bly .governess-figure { position:absolute; bottom:15%; left:30%; width:32px; height:78px; background:linear-gradient(180deg, #4a3a2a 0%, #2e1e12 100%); border-radius:50% 50% 30% 30% / 70% 70% 30% 30%; transform-origin: bottom center; animation: bly-governess 5s ease-in-out infinite; }
.scn-governess-arrives-at-bly .housekeeper-figure { position:absolute; bottom:18%; left:45%; width:34px; height:76px; background:linear-gradient(180deg, #3a2e1e 0%, #1a1208 100%); border-radius:50% 50% 30% 30% / 70% 70% 30% 30%; transform-origin: bottom center; animation: bly-housekeeper 7s ease-in-out infinite; }
.scn-governess-arrives-at-bly .sunlight-beam { position:absolute; top:20%; left:35%; width:60px; height:220px; background: linear-gradient(180deg, rgba(255,245,200,0.5) 0%, rgba(255,245,200,0) 100%); transform: rotate(-15deg); filter:blur(6px); animation: bly-sun 12s ease-in-out infinite alternate; }
.scn-governess-arrives-at-bly .chandelier { position:absolute; top:8%; left:50%; transform:translateX(-50%); width:60px; height:30px; background: radial-gradient(ellipse 50% 100% at 50% 0%, #d0c080 0%, #806040 100%); border-radius:50%; box-shadow: 0 0 40px 10px rgba(255,200,100,.3); animation: bly-chandelier 4s ease-in-out infinite alternate; }
.scn-governess-arrives-at-bly .flower-vase { position:absolute; bottom:30%; left:60%; width:20px; height:30px; background: linear-gradient(180deg, #b08060 0%, #604030 100%); border-radius:30% 30% 10% 10%; transform: rotate(5deg); animation: bly-vase 10s ease-in-out infinite; }
@keyframes bly-door { 0%,100% { transform: rotateY(0) } 25% { transform: rotateY(-5deg) } 50% { transform: rotateY(0) } 75% { transform: rotateY(5deg) } }
@keyframes bly-governess { 0% { transform: translateY(0) rotate(0) } 25% { transform: translateY(-2px) rotate(2deg) } 50% { transform: translateY(0) rotate(0) } 75% { transform: translateY(-2px) rotate(-2deg) } 100% { transform: translateY(0) rotate(0) } }
@keyframes bly-housekeeper { 0% { transform: translateY(0) rotate(0) } 33% { transform: translateY(-1px) rotate(1deg) } 66% { transform: translateY(-3px) rotate(-1deg) } 100% { transform: translateY(0) rotate(0) } }
@keyframes bly-sun { 0% { opacity:.3; transform:rotate(-15deg) scaleX(1); } 50% { opacity:.7; transform:rotate(-10deg) scaleX(1.2); } 100% { opacity:.4; transform:rotate(-15deg) scaleX(1); } }
@keyframes bly-chandelier { 0% { box-shadow: 0 0 30px 8px rgba(255,200,100,.2); } 50% { box-shadow: 0 0 60px 15px rgba(255,220,140,.5); } 100% { box-shadow: 0 0 40px 10px rgba(255,200,100,.3); } }
@keyframes bly-vase { 0%,100% { transform: rotate(5deg) } 50% { transform: rotate(8deg) } }

/* === Scene: excited-restless-night (tense, dark) === */
.scn-excited-restless-night {
  background: 
    linear-gradient(180deg, #03050f 0%, #0a1122 30%, #121832 60%, #060a18 100%),
    radial-gradient(ellipse 40% 60% at 70% 30%, #1a2a4a 0%, transparent 70%);
}
.scn-excited-restless-night .dark-room { position:absolute; inset:0; background:linear-gradient(180deg, #01030a 0%, #060a18 50%, #02060e 100%); }
.scn-excited-restless-night .bed-frame { position:absolute; bottom:10%; left:20%; width:140px; height:80px; background:linear-gradient(180deg, #1a1a2a 0%, #0e0e1a 100%); border-radius:8% 8% 4% 4%; box-shadow: 0 10px 30px rgba(0,0,0,.6); }
.scn-excited-restless-night .window-night { position:absolute; top:18%; right:10%; width:90px; height:120px; background:linear-gradient(180deg, #0a122a 0%, #14204a 100%); border:4px solid #1a1a2e; border-radius:4px; filter:blur(1px); animation: rst-window 8s ease-in-out infinite alternate; }
.scn-excited-restless-night .moonlight-shaft { position:absolute; top:18%; right:15%; width:40px; height:200px; background: linear-gradient(180deg, rgba(180,200,255,0.12) 0%, rgba(180,200,255,0) 100%); transform: rotate(-20deg); filter:blur(6px); animation: rst-moonlight 10s ease-in-out infinite alternate; }
.scn-excited-restless-night .shadow-on-wall { position:absolute; top:25%; left:30%; width:50px; height:90px; background: rgba(0,0,0,.5); border-radius:60% 60% 30% 30% / 70% 70% 30% 30%; filter:blur(6px); animation: rst-shadow 4s ease-in-out infinite; }
.scn-excited-restless-night .curtain { position:absolute; top:15%; right:10%; width:30px; height:130px; background: linear-gradient(180deg, #2a1a1a 0%, #1a0e0e 100%); border-radius:2% 2% 0 0; transform-origin: top right; animation: rst-curtain 5s ease-in-out infinite; }
.scn-excited-restless-night .clock { position:absolute; top:12%; left:15%; width:20px; height:30px; background: linear-gradient(180deg, #3a2a1a 0%, #1a100a 100%); border-radius:50%; box-shadow: 0 2px 6px rgba(0,0,0,.4); animation: rst-clock 60s linear infinite; }
.scn-excited-restless-night .figure-toss { position:absolute; bottom:12%; left:25%; width:28px; height:60px; background: #0a060e; border-radius:50% 50% 30% 30% / 70% 70% 30% 30%; transform-origin: bottom center; animation: rst-figure 3s ease-in-out infinite; }
@keyframes rst-window { 0% { background: #0a122a; } 25% { background: #101c3a; } 50% { background: #0a122a; } 75% { background: #141e40; } 100% { background: #0a122a; } }
@keyframes rst-moonlight { 0% { opacity:.1; transform: rotate(-20deg) scaleX(1); } 50% { opacity:.25; transform: rotate(-15deg) scaleX(1.1); } 100% { opacity:.15; transform: rotate(-20deg) scaleX(1); } }
@keyframes rst-shadow { 0% { transform: translateX(0) scaleY(1); opacity:.3; } 25% { transform: translateX(8px) scaleY(1.1); opacity:.5; } 50% { transform: translateX(-4px) scaleY(0.95); opacity:.4; } 75% { transform: translateX(6px) scaleY(1.05); opacity:.6; } 100% { transform: translateX(0) scaleY(1); opacity:.3; } }
@keyframes rst-curtain { 0% { transform: rotate(0) scaleX(1); } 25% { transform: rotate(3deg) scaleX(1.05); } 50% { transform: rotate(0) scaleX(1); } 75% { transform: rotate(-4deg) scaleX(0.95); } 100% { transform: rotate(0) scaleX(1); } }
@keyframes rst-clock { 0% { transform: rotate(0); } 50% { transform: rotate(180deg); } 100% { transform: rotate(360deg); } }
@keyframes rst-figure { 0% { transform: translateY(0) rotate(0); } 25% { transform: translateY(-3px) rotate(4deg); } 50% { transform: translateY(0) rotate(0); } 75% { transform: translateY(-2px) rotate(-4deg); } 100% { transform: translateY(0) rotate(0); } }

/* Scene 1: letter-to-uncle-started – dim interior, tense */
.scn-letter-to-uncle-started {
  background:
    linear-gradient(180deg, #2a1a1a 0%, #1a0e0e 40%, #0d0505 100%),
    radial-gradient(ellipse at 50% 60%, #4a2a1a 0%, transparent 60%);
  background-blend-mode: overlay;
}
.scn-letter-to-uncle-started .bg { position:absolute; inset:0; background: linear-gradient(180deg, #1a0e0e 0%, #0d0505 100%); }
.scn-letter-to-uncle-started .desk {
  position:absolute; bottom:20%; left:15%; right:15%; height:30%;
  background: linear-gradient(180deg, #5a3a2a 0%, #3a1a0a 100%);
  border-radius:0 0 130% 130% / 0 0 40% 40%;
  box-shadow: 0 -4px 15px rgba(0,0,0,0.6);
  animation: lut-desk 8s ease-in-out infinite alternate;
}
.scn-letter-to-uncle-started .lamp {
  position:absolute; bottom:38%; left:42%; width:12%; height:6%;
  background: radial-gradient(circle, #ffd080 0%, #b08030 100%);
  border-radius:50%; box-shadow:0 0 40px 10px #b08030, 0 0 80px 20px rgba(176,128,48,0.4);
  animation: lut-lamp 3s ease-in-out infinite alternate;
}
.scn-letter-to-uncle-started .letter {
  position:absolute; bottom:30%; left:38%; width:18%; height:10%;
  background: linear-gradient(135deg, #d8c8a0 0%, #b8a080 100%);
  border-radius: 2px; box-shadow: 0 2px 6px rgba(0,0,0,0.4);
  transform: rotate(-5deg);
  animation: lut-letter 5s ease-in-out infinite alternate;
}
.scn-letter-to-uncle-started .figure-g {
  position:absolute; bottom:22%; left:22%; width:14%; height:40%;
  background: linear-gradient(180deg, #2a1a20 0%, #12080c 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: lut-figure-g 6s ease-in-out infinite;
}
.scn-letter-to-uncle-started .figure-m {
  position:absolute; bottom:22%; right:20%; width:12%; height:35%;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: lut-figure-m 4s ease-in-out infinite;
}
@keyframes lut-desk {
  0% { transform: translateY(0); }
  50% { transform: translateY(-2px); }
  100% { transform: translateY(0); }
}
@keyframes lut-lamp {
  0% { box-shadow:0 0 30px 8px #b08030, 0 0 60px 15px rgba(176,128,48,0.3); opacity:0.9; }
  50% { box-shadow:0 0 50px 14px #ffd080, 0 0 90px 25px rgba(255,208,128,0.5); opacity:1; }
  100% { box-shadow:0 0 35px 10px #b08030, 0 0 70px 20px rgba(176,128,48,0.35); opacity:0.85; }
}
@keyframes lut-letter {
  0% { transform: rotate(-5deg) translateX(0); }
  50% { transform: rotate(-3deg) translateX(3px); }
  100% { transform: rotate(-5deg) translateX(0); }
}
@keyframes lut-figure-g {
  0%,100% { transform: translateX(0) rotate(-1deg); }
  50% { transform: translateX(3px) rotate(1deg); }
}
@keyframes lut-figure-m {
  0%,100% { transform: translateX(0) rotate(1deg); }
  33% { transform: translateX(-2px) rotate(-0.5deg); }
  66% { transform: translateX(2px) rotate(0.5deg); }
}

/* Scene 2: flora-missing-search – bright interior, tense */
.scn-flora-missing-search {
  background:
    linear-gradient(180deg, #f5e8d0 0%, #e0c8a8 50%, #c8a880 100%),
    radial-gradient(ellipse at 40% 50%, #fff5e0 0%, transparent 60%);
}
.scn-flora-missing-search .bg-walls { position:absolute; inset:0 0 20% 0; background: linear-gradient(90deg, #e8d8c0 0%, #d0b898 100%); }
.scn-flora-missing-search .floor {
  position:absolute; bottom:0; left:0; right:0; height:20%;
  background: linear-gradient(180deg, #a08060 0%, #705038 100%);
  box-shadow: inset 0 8px 20px rgba(0,0,0,0.3);
}
.scn-flora-missing-search .door-left {
  position:absolute; bottom:20%; left:8%; width:20%; height:70%;
  background: linear-gradient(180deg, #7a5a3a 0%, #4a2a1a 100%);
  border-radius: 4px 4px 0 0; box-shadow: inset 0 0 15px rgba(0,0,0,0.3);
  animation: fms-door-l 7s ease-in-out infinite alternate;
}
.scn-flora-missing-search .door-right {
  position:absolute; bottom:20%; right:8%; width:20%; height:70%;
  background: linear-gradient(180deg, #7a5a3a 0%, #4a2a1a 100%);
  border-radius: 4px 4px 0 0; box-shadow: inset 0 0 15px rgba(0,0,0,0.3);
  animation: fms-door-r 7s ease-in-out infinite alternate-reverse;
}
.scn-flora-missing-search .figure-g {
  position:absolute; bottom:20%; left:35%; width:12%; height:50%;
  background: linear-gradient(180deg, #3a2a2a 0%, #2a1a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: fms-fig-g 5s ease-in-out infinite;
}
.scn-flora-missing-search .figure-mg {
  position:absolute; bottom:20%; right:38%; width:14%; height:48%;
  background: linear-gradient(180deg, #2a3a2a 0%, #1a2a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: fms-fig-mg 6s ease-in-out infinite;
}
@keyframes fms-door-l {
  0% { transform: scaleX(1); }
  50% { transform: scaleX(0.95); }
  100% { transform: scaleX(1); }
}
@keyframes fms-door-r {
  0% { transform: scaleX(1); }
  50% { transform: scaleX(0.95); }
  100% { transform: scaleX(1); }
}
@keyframes fms-fig-g {
  0%,100% { transform: translateY(0) rotate(0deg); }
  50% { transform: translateY(-2px) rotate(2deg); }
}
@keyframes fms-fig-mg {
  0%,100% { transform: translateY(0) rotate(0deg); }
  33% { transform: translateY(-1px) rotate(-1deg); }
  66% { transform: translateY(1px) rotate(1deg); }
}

/* Scene 3: boat-hidden-crossing – sunlit, tense */
.scn-boat-hidden-crossing {
  background:
    linear-gradient(180deg, #87ceeb 0%, #b0d4f1 30%, #98c8e0 60%, #7ca8c0 100%),
    radial-gradient(ellipse at 60% 20%, #fff0c0 0%, transparent 50%);
}
.scn-boat-hidden-crossing .sky { position:absolute; inset:0 0 40% 0; background: linear-gradient(180deg, #b0d4f1 0%, #87ceeb 100%); animation: bhc-sky 15s ease-in-out infinite alternate; }
.scn-boat-hidden-crossing .lake {
  position:absolute; bottom:0; left:0; right:0; height:40%;
  background: linear-gradient(180deg, #6a9eb0 0%, #4a7a90 100%);
  border-radius: 0 0 50% 50% / 0 0 20% 20%;
  animation: bhc-lake 8s ease-in-out infinite alternate;
}
.scn-boat-hidden-crossing .shore-far {
  position:absolute; bottom:35%; left:20%; right:0; height:8%;
  background: linear-gradient(180deg, #7a9a5a 0%, #5a7a3a 100%);
  border-radius: 40% 60% 0 0 / 80% 70% 0 0;
  animation: bhc-shore 12s ease-in-out infinite alternate;
}
.scn-boat-hidden-crossing .figure-flora {
  position:absolute; bottom:30%; left:70%; width:4%; height:8%;
  background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: bhc-flora 6s ease-in-out infinite;
}
.scn-boat-hidden-crossing .boat {
  position:absolute; bottom:20%; left:15%; width:18%; height:6%;
  background: linear-gradient(135deg, #6a4a2a 0%, #3a2a1a 100%);
  border-radius: 0 0 60% 60% / 0 0 80% 80%;
  box-shadow: 3px 3px 8px rgba(0,0,0,0.5);
  animation: bhc-boat 5s ease-in-out infinite;
}
.scn-boat-hidden-crossing .reeds {
  position:absolute; bottom:20%; left:8%; width:10%; height:15%;
  background: linear-gradient(180deg, #5a7a3a 0%, #3a5a2a 100%);
  border-radius: 30% 30% 0 0; filter: blur(1px);
  animation: bhc-reeds 4s ease-in-out infinite alternate;
}
.scn-boat-hidden-crossing .tree-left {
  position:absolute; bottom:30%; left:0; width:20%; height:50%;
  background: radial-gradient(ellipse at 50% 0%, #3a5a1a 0%, #1a3a0a 100%);
  border-radius: 40% 40% 0 0;
  animation: bhc-tree 20s ease-in-out infinite alternate;
}
.scn-boat-hidden-crossing .grass {
  position:absolute; bottom:30%; left:0; right:100%; width:100%; height:5%;
  background: linear-gradient(180deg, #5a8a3a 0%, #3a6a2a 100%);
  border-radius: 0 0 50% 50% / 0 0 80% 80%;
}
@keyframes bhc-sky {
  0% { opacity:0.8; }
  50% { opacity:1; }
  100% { opacity:0.7; }
}
@keyframes bhc-lake {
  0% { transform: translateY(0); }
  50% { transform: translateY(-2px); }
  100% { transform: translateY(0); }
}
@keyframes bhc-shore {
  0% { transform: scaleY(1); }
  50% { transform: scaleY(1.03); }
  100% { transform: scaleY(1); }
}
@keyframes bhc-flora {
  0%,100% { transform: translateY(0); }
  50% { transform: translateY(-1px) rotate(2deg); }
}
@keyframes bhc-boat {
  0% { transform: rotate(-2deg) translateX(0); }
  50% { transform: rotate(0deg) translateX(3px); }
  100% { transform: rotate(2deg) translateX(0); }
}
@keyframes bhc-reeds {
  0% { transform: rotate(-3deg); }
  100% { transform: rotate(3deg); }
}
@keyframes bhc-tree {
  0% { transform: rotate(0deg); }
  50% { transform: rotate(1deg); }
  100% { transform: rotate(-1deg); }
}

/* Scene 4: floras-innocent-wonder – sunlit, tense close-up */
.scn-floras-innocent-wonder {
  background:
    linear-gradient(180deg, #b0d4f1 0%, #e0f0ff 30%, #c0dff0 60%, #87ceeb 100%),
    radial-gradient(ellipse at 40% 60%, #fff5c0 0%, transparent 60%);
}
.scn-floras-innocent-wonder .sky-bright { position:absolute; inset:0 0 40% 0; background: linear-gradient(180deg, #e0f0ff 0%, #b0d4f1 100%); animation: fiw-sky 14s ease-in-out infinite alternate; }
.scn-floras-innocent-wonder .lake-horizon {
  position:absolute; bottom:30%; left:0; right:0; height:10%;
  background: linear-gradient(180deg, #8ab8d0 0%, #6a9eb0 100%);
  border-radius: 0 0 50% 50% / 0 0 100% 100%;
  animation: fiw-lake 10s ease-in-out infinite alternate;
}
.scn-floras-innocent-wonder .figure-flora-close {
  position:absolute; bottom:20%; left:25%; width:20%; height:55%;
  background: linear-gradient(180deg, #c8553d 0%, #702243 100%);
  border-radius: 45% 45% 35% 35% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  box-shadow: -5px 0 10px rgba(0,0,0,0.3);
  animation: fiw-flora 5s ease-in-out infinite;
}
.scn-floras-innocent-wonder .figure-g-close {
  position:absolute; bottom:18%; right:22%; width:18%; height:50%;
  background: linear-gradient(180deg, #3a2a2a 0%, #1a1010 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: fiw-fig-g 6s ease-in-out infinite;
}
.scn-floras-innocent-wonder .figure-mg-close {
  position:absolute; bottom:20%; left:55%; width:22%; height:48%;
  background: linear-gradient(180deg, #2a3a2a 0%, #1a2a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: fiw-fig-mg 7s ease-in-out infinite;
}
.scn-floras-innocent-wonder .sun-rays {
  position:absolute; bottom:40%; left:10%; width:30%; height:40%;
  background: radial-gradient(ellipse at 50% 0%, rgba(255,255,200,0.6) 0%, transparent 100%);
  filter: blur(8px);
  animation: fiw-rays 12s ease-in-out infinite alternate;
}
@keyframes fiw-sky {
  0% { opacity:0.85; }
  50% { opacity:1; }
  100% { opacity:0.75; }
}
@keyframes fiw-lake {
  0% { transform: scaleY(1); }
  50% { transform: scaleY(1.05); }
  100% { transform: scaleY(1); }
}
@keyframes fiw-flora {
  0%,100% { transform: translateY(0) rotate(0deg); }
  25% { transform: translateY(-2px) rotate(2deg); }
  50% { transform: translateY(0) rotate(-1deg); }
  75% { transform: translateY(-1px) rotate(1deg); }
}
@keyframes fiw-fig-g {
  0%,100% { transform: translateX(0) rotate(0deg); }
  33% { transform: translateX(2px) rotate(-1deg); }
  66% { transform: translateX(-1px) rotate(1deg); }
}
@keyframes fiw-fig-mg {
  0%,100% { transform: translateY(0) rotate(0deg); }
  50% { transform: translateY(-1px) rotate(2deg); }
}
@keyframes fiw-rays {
  0% { opacity:0.6; transform: rotate(-5deg); }
  100% { opacity:0.9; transform: rotate(5deg); }
}

/* hurry-to-church-decision */
.scn-hurry-to-church-decision { background: linear-gradient(135deg,#f7e8d0 0%,#d4b88c 50%,#b8966e 100%), radial-gradient(ellipse at 50% 30%,#fff8e0 0%,transparent 60%); }
.scn-hurry-to-church-decision .church-walls{position:absolute;inset:0 0 40% 0;background:linear-gradient(180deg,#e0c9a6 0%,#c9a96e 100%);border-radius:0 0 20% 20%;}
.scn-hurry-to-church-decision .arch{position:absolute;top:5%;left:50%;width:60%;height:45%;transform:translateX(-50%);background:linear-gradient(180deg,#f0e0c0 0%,#d4b88c 100%);border-radius:50% 50% 0 0 / 80% 80% 0 0;box-shadow:inset 0 -10px 20px rgba(0,0,0,0.1);animation:hcd-breath 8s ease-in-out infinite;}
.scn-hurry-to-church-decision .altar{position:absolute;bottom:35%;left:50%;width:30%;height:15%;transform:translateX(-50%);background:linear-gradient(180deg,#c9a96e 0%,#b8966e 100%);border-radius:4px;box-shadow:0 4px 8px rgba(0,0,0,0.3);}
.scn-hurry-to-church-decision .candle{position:absolute;bottom:40%;left:60%;width:4px;height:16px;background:linear-gradient(180deg,#fff8e0 0%,#f0d080 100%);border-radius:1px;animation:hcd-candle 2s ease-in-out infinite;box-shadow:0 0 12px 4px #f0d080;}
.scn-hurry-to-church-decision .figure-gov{position:absolute;bottom:30%;left:30%;width:22px;height:50px;background:linear-gradient(180deg,#3a2a1a 0%,#1a0a00 100%);border-radius:50% 50% 40% 40% / 60% 60% 40% 40%;transform-origin:bottom;animation:hcd-fig1 6s ease-in-out infinite;}
.scn-hurry-to-church-decision .figure-miles{position:absolute;bottom:30%;left:55%;width:18px;height:40px;background:linear-gradient(180deg,#3a2a1a 0%,#1a0a00 100%);border-radius:50% 50% 40% 40% / 60% 60% 40% 40%;transform-origin:bottom;animation:hcd-fig2 5s ease-in-out infinite;}
.scn-hurry-to-church-decision .object{position:absolute;bottom:33%;left:58%;width:12px;height:12px;background:radial-gradient(circle,#c8553d 0%,#a0461a 100%);border-radius:50%;box-shadow:0 0 6px 2px #c8553d;animation:hcd-spin 4s ease-in-out infinite;}
@keyframes hcd-breath{0%{transform:translateX(-50%) scaleY(1)}50%{transform:translateX(-50%) scaleY(1.02)}100%{transform:translateX(-50%) scaleY(1)}}
@keyframes hcd-candle{0%{opacity:0.8;transform:scaleY(1)}50%{opacity:1;transform:scaleY(1.1)}100%{opacity:0.85;transform:scaleY(1)}}
@keyframes hcd-fig1{0%{transform:translateY(0) rotate(-1deg)}50%{transform:translateY(-2px) rotate(1deg)}100%{transform:translateY(0) rotate(-1deg)}}
@keyframes hcd-fig2{0%{transform:translateY(0) rotate(1deg)}50%{transform:translateY(-1px) rotate(-1deg)}100%{transform:translateY(0) rotate(1deg)}}
@keyframes hcd-spin{0%{transform:rotate(0deg) scale(1)}50%{transform:rotate(10deg) scale(1.1)}100%{transform:rotate(0deg) scale(1)}}

/* miles-aware-of-miss-jessel */
.scn-miles-aware-of-miss-jessel { background: linear-gradient(180deg,#1a1a2e 0%,#2a2a4e 50%,#3a3a5e 100%), radial-gradient(ellipse at 40% 60%,#4a4a6e 0%,transparent 70%); }
.scn-miles-aware-of-miss-jessel .room-bg{position:absolute;inset:0;background:linear-gradient(180deg,#1e1e3a 0%,#2a2a4e 100%);}
.scn-miles-aware-of-miss-jessel .table{position:absolute;bottom:30%;left:50%;width:50%;height:8%;transform:translateX(-50%);background:linear-gradient(180deg,#4a3a3a 0%,#2a1a1a 100%);border-radius:2px;box-shadow:0 4px 8px rgba(0,0,0,0.5);}
.scn-miles-aware-of-miss-jessel .candle-flame{position:absolute;bottom:35%;left:50%;width:8px;height:14px;transform:translateX(-50%);background:radial-gradient(circle at 50% 30%,#ffd080 0%,#f0a040 100%);border-radius:50% 50% 20% 20%;box-shadow:0 0 16px 6px #f0a040;animation:mj-flame 2.5s ease-in-out infinite;}
.scn-miles-aware-of-miss-jessel .figure-profile-gov{position:absolute;bottom:25%;left:20%;width:20px;height:55px;background:linear-gradient(180deg,#1a1a2e 0%,#0a0a1a 100%);border-radius:50% 30% 40% 40% / 70% 60% 40% 40%;transform-origin:bottom left;animation:mj-fig1 7s ease-in-out infinite;}
.scn-miles-aware-of-miss-jessel .figure-profile-miles{position:absolute;bottom:25%;right:20%;width:16px;height:45px;background:linear-gradient(180deg,#1a1a2e 0%,#0a0a1a 100%);border-radius:30% 50% 40% 40% / 60% 70% 40% 40%;transform-origin:bottom right;animation:mj-fig2 6s ease-in-out infinite;}
.scn-miles-aware-of-miss-jessel .shadow-claim{position:absolute;bottom:20%;left:38%;width:30%;height:20%;background:linear-gradient(180deg,rgba(0,0,0,0.4) 0%,transparent 100%);border-radius:50%;filter:blur(8px);animation:mj-shadow 9s ease-in-out infinite;}
@keyframes mj-flame{0%{opacity:0.8;transform:scaleY(1) translateX(0)}50%{opacity:1;transform:scaleY(1.15) translateX(1px)}100%{opacity:0.85;transform:scaleY(1) translateX(0)}}
@keyframes mj-fig1{0%{transform:rotate(0deg)}50%{transform:rotate(-2deg)}100%{transform:rotate(0deg)}}
@keyframes mj-fig2{0%{transform:rotate(0deg)}50%{transform:rotate(2deg)}100%{transform:rotate(0deg)}}
@keyframes mj-shadow{0%{opacity:0.6;transform:scaleX(1)}50%{opacity:0.8;transform:scaleX(1.05)}100%{opacity:0.6;transform:scaleX(1)}}

/* kiss-goodnight-terrible-truth */
.scn-kiss-goodnight-terrible-truth { background: linear-gradient(180deg,#0f0c1a 0%,#1a1530 50%,#2a1f40 100%), radial-gradient(ellipse at 50% 20%,#3a2a5a 0%,transparent 70%); }
.scn-kiss-goodnight-terrible-truth .bedroom-wall{position:absolute;inset:0;background:linear-gradient(180deg,#14112a 0%,#1a1530 100%);}
.scn-kiss-goodnight-terrible-truth .window{position:absolute;top:10%;left:65%;width:18%;height:35%;background:linear-gradient(180deg,#2a2a5a 0%,#1a1a3a 100%);border:2px solid #3a3a6a;border-radius:2px;box-shadow:inset 0 0 20px rgba(100,100,200,0.2);animation:kg-window 10s ease-in-out infinite;}
.scn-kiss-goodnight-terrible-truth .bed{position:absolute;bottom:10%;left:30%;width:40%;height:30%;background:linear-gradient(180deg,#3a2a3a 0%,#1a1a2a 100%);border-radius:10px 10px 0 0;box-shadow:0 4px 10px rgba(0,0,0,0.6);}
.scn-kiss-goodnight-terrible-truth .child-figure{position:absolute;bottom:20%;left:45%;width:18px;height:30px;background:linear-gradient(180deg,#2a1a2a 0%,#0a0a1a 100%);border-radius:50% 50% 40% 40% / 60% 60% 40% 40%;transform-origin:bottom;animation:kg-child 5s ease-in-out infinite;}
.scn-kiss-goodnight-terrible-truth .door-figure{position:absolute;bottom:15%;right:10%;width:20px;height:55px;background:linear-gradient(180deg,#1a1530 0%,#0a0a1a 100%);border-radius:40% 40% 30% 30% / 70% 70% 30% 30%;transform-origin:bottom;animation:kg-door 8s ease-in-out infinite;}
.scn-kiss-goodnight-terrible-truth .moonlight{position:absolute;top:50%;left:60%;width:30%;height:60%;background:linear-gradient(45deg,rgba(200,200,255,0.08) 0%,transparent 100%);transform:rotate(-20deg);filter:blur(6px);animation:kg-moon 12s ease-in-out infinite;}
@keyframes kg-window{0%{opacity:0.7;box-shadow:inset 0 0 20px rgba(100,100,200,0.2)}50%{opacity:0.9;box-shadow:inset 0 0 30px rgba(100,100,200,0.4)}100%{opacity:0.7;box-shadow:inset 0 0 20px rgba(100,100,200,0.2)}}
@keyframes kg-child{0%{transform:scaleY(1)}50%{transform:scaleY(1.03)}100%{transform:scaleY(1)}}
@keyframes kg-door{0%{transform:translateX(0) rotate(0deg)}50%{transform:translateX(-3px) rotate(-1deg)}100%{transform:translateX(0) rotate(0deg)}}
@keyframes kg-moon{0%{opacity:0.3;transform:rotate(-20deg) translateX(0)}50%{opacity:0.5;transform:rotate(-18deg) translateX(5px)}100%{opacity:0.3;transform:rotate(-20deg) translateX(0)}}

/* what-a-boy-wants */
.scn-what-a-boy-wants { background: linear-gradient(180deg,#2a2020 0%,#3a2a2a 50%,#4a3a3a 100%), radial-gradient(ellipse at 50% 40%,#5a4a4a 0%,transparent 70%); }
.scn-what-a-boy-wants .study-wall{position:absolute;inset:0;background:linear-gradient(180deg,#2e2424 0%,#3a2a2a 100%);}
.scn-what-a-boy-wants .bookshelf{position:absolute;top:10%;left:5%;width:20%;height:70%;background:linear-gradient(0deg,#4a3a3a 0%,#3a2a2a 50%,#4a3a3a 100%);border-radius:2px;box-shadow:inset 0 0 10px rgba(0,0,0,0.3);animation:wbw-shelf 15s ease-in-out infinite;}
.scn-what-a-boy-wants .desk{position:absolute;bottom:25%;left:30%;width:40%;height:15%;background:linear-gradient(180deg,#5a4a3a 0%,#3a2a1a 100%);border-radius:4px;box-shadow:0 4px 8px rgba(0,0,0,0.5);}
.scn-what-a-boy-wants .figure-standing{position:absolute;bottom:15%;left:25%;width:22px;height:60px;background:linear-gradient(180deg,#3a2a2a 0%,#1a0a0a 100%);border-radius:50% 50% 40% 40% / 65% 65% 40% 40%;transform-origin:bottom;animation:wbw-standing 7s ease-in-out infinite;}
.scn-what-a-boy-wants .figure-sitting{position:absolute;bottom:20%;left:55%;width:20px;height:35px;background:linear-gradient(180deg,#3a2a2a 0%,#1a0a0a 100%);border-radius:50% 50% 40% 40% / 70% 70% 30% 30%;transform-origin:bottom;animation:wbw-sitting 6s ease-in-out infinite;}
.scn-what-a-boy-wants .toy{position:absolute;bottom:28%;left:52%;width:10px;height:10px;background:radial-gradient(circle,#b87878 0%,#702243 100%);border-radius:50%;box-shadow:0 0 6px 2px #702243;animation:wbw-toy 4s ease-in-out infinite;}
@keyframes wbw-shelf{0%{opacity:0.8}50%{opacity:1}100%{opacity:0.8}}
@keyframes wbw-standing{0%{transform:translateX(0) rotate(0deg)}50%{transform:translateX(2px) rotate(-1deg)}100%{transform:translateX(0) rotate(0deg)}}
@keyframes wbw-sitting{0%{transform:rotate(0deg)}50%{transform:rotate(-2deg)}100%{transform:rotate(0deg)}}
@keyframes wbw-toy{0%{transform:rotate(0deg) scale(1)}50%{transform:rotate(15deg) scale(1.1)}100%{transform:rotate(0deg) scale(1)}}
/* end per-scene blocks */
