/* style.css -- merged from per-tier scene CSS by wizard2.stages.build_deploy */
/* Scene root must fill its positioning container. */
.scn { position: absolute; inset: 0; }

/* ============ tier U ============ */
/* per-scene blocks (EXP step_scenes) */
.scn-reunion-begins { background: linear-gradient(180deg, #3a1e0a 0%, #2a1408 30%, #1a0a04 100%), radial-gradient(ellipse at 40% 60%, #c84a1a 0%, transparent 60%); }
.scn-reunion-begins .wall { position:absolute; inset:0 0 30% 0; background: linear-gradient(180deg, #4a2a14 0%, #2a1408 100%); }
.scn-reunion-begins .floor { position:absolute; bottom:0; left:0; right:0; height:30%; background: linear-gradient(180deg, #2a1408 0%, #1a0a04 100%); }
.scn-reunion-begins .doorway { position:absolute; bottom:20%; left:30%; width:100px; height:160px; background: #0a0502; border-radius: 4px; box-shadow: inset 0 0 20px rgba(200,74,26,.3); }
.scn-reunion-begins .door { position:absolute; bottom:20%; left:30%; width:100px; height:160px; background: linear-gradient(180deg, #6a3a1a 0%, #4a2a14 100%); transform-origin: left center; animation: rb-door 2s ease-out forwards; }
.scn-reunion-begins .fireglow { position:absolute; bottom:30%; left:60%; width:120px; height:180px; background: radial-gradient(ellipse at 50% 80%, #e08030 0%, #c84a1a 40%, transparent 70%); animation: rb-glow 4s ease-in-out infinite alternate; }
.scn-reunion-begins .figure1 { position:absolute; bottom:22%; left:35%; width:20px; height:50px; background: linear-gradient(180deg, #1a0a04 0%, #0a0502 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: rb-enter 3s ease-out forwards; }
.scn-reunion-begins .figure2 { position:absolute; bottom:22%; left:45%; width:24px; height:54px; background: linear-gradient(180deg, #2a1408 0%, #1a0a04 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: rb-enter 2.5s ease-out forwards 0.3s; }
.scn-reunion-begins .figure3 { position:absolute; bottom:22%; left:55%; width:22px; height:52px; background: linear-gradient(180deg, #2a1408 0%, #1a0a04 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: rb-enter 2.8s ease-out forwards 0.6s; }

.scn-emily-reveals { background: linear-gradient(180deg, #2a1408 0%, #1a0a04 50%, #0a0502 100%), radial-gradient(ellipse at 50% 70%, #c84a1a 0%, transparent 50%); }
.scn-emily-reveals .wall { position:absolute; inset:0 0 20% 0; background: linear-gradient(180deg, #3a1e0a 0%, #1a0a04 100%); }
.scn-emily-reveals .floor { position:absolute; bottom:0; left:0; right:0; height:20%; background: #1a0a04; }
.scn-emily-reveals .fireplace { position:absolute; bottom:30%; left:50%; width:140px; height:100px; transform:translateX(-50%); background: linear-gradient(180deg, #4a2a14 0%, #2a1408 100%); border-radius: 8px 8px 0 0; box-shadow: inset 0 0 30px #c84a1a; }
.scn-emily-reveals .cassy { position:absolute; bottom:25%; left:40%; width:30px; height:60px; background: linear-gradient(180deg, #2a1408 0%, #1a0a04 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: er-seated 6s ease-in-out infinite; }
.scn-emily-reveals .child { position:absolute; bottom:25%; left:55%; width:16px; height:40px; background: linear-gradient(180deg, #4a2a14 0%, #2a1408 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: er-appear 4s ease-in-out infinite; }
.scn-emily-reveals .shadow { position:absolute; bottom:25%; left:50%; width:40px; height:60px; background: radial-gradient(ellipse, rgba(0,0,0,.6) 0%, transparent 70%); filter: blur(4px); animation: er-shadow 4s ease-in-out infinite; }
.scn-emily-reveals .glow { position:absolute; bottom:40%; left:45%; width:80px; height:80px; background: radial-gradient(circle, #e08030 0%, transparent 60%); animation: er-glow 3s ease-in-out infinite alternate; }

.scn-family-prayer { background: linear-gradient(180deg, #2a1408 0%, #1a0a04 40%, #0a0502 100%), radial-gradient(ellipse at 50% 80%, #c84a1a 0%, transparent 50%); }
.scn-family-prayer .bg-wall { position:absolute; inset:0 0 40% 0; background: linear-gradient(180deg, #3a1e0a 0%, #1a0a04 100%); }
.scn-family-prayer .table { position:absolute; bottom:20%; left:20%; right:20%; height:12%; background: linear-gradient(180deg, #4a2a14 0%, #2a1408 100%); border-radius: 4px; }
.scn-family-prayer .book { position:absolute; bottom:28%; left:50%; width:30px; height:20px; transform:translateX(-50%); background: #6a3a1a; border-radius: 2px; box-shadow: 0 2px 6px rgba(0,0,0,.5); animation: fp-book 8s ease-in-out infinite; }
.scn-family-prayer .lamp { position:absolute; bottom:40%; left:50%; width:12px; height:30px; transform:translateX(-50%); background: #8a5a3a; border-radius: 50% 50% 10% 10%; box-shadow: 0 0 20px 8px #c84a1a; animation: fp-lamp 5s ease-in-out infinite alternate; }
.scn-family-prayer .leaf1 { position:absolute; top:30%; left:10%; width:40px; height:20px; background: rgba(200,100,50,.3); border-radius: 50%; filter: blur(4px); animation: fp-leaf 20s linear infinite; }
.scn-family-prayer .leaf2 { position:absolute; top:40%; right:15%; width:30px; height:15px; background: rgba(200,100,50,.2); border-radius: 50%; filter: blur(3px); animation: fp-leaf 25s linear infinite 5s; }
.scn-family-prayer .hands { position:absolute; bottom:26%; left:48%; width:16px; height:16px; background: #4a2a14; border-radius: 50%; animation: fp-hands 4s ease-in-out infinite; }

.scn-after-reunion { background: linear-gradient(180deg, #3a1e0a 0%, #1a0a04 50%, #0a0502 100%), radial-gradient(ellipse at 50% 70%, #d06030 0%, transparent 60%); }
.scn-after-reunion .wall { position:absolute; inset:0 0 30% 0; background: linear-gradient(180deg, #4a2a14 0%, #2a1408 100%); }
.scn-after-reunion .table { position:absolute; bottom:10%; left:10%; right:10%; height:20%; background: linear-gradient(180deg, #5a3a1a 0%, #3a1e0a 100%); border-radius: 4px; }
.scn-after-reunion .board { position:absolute; bottom:20%; left:15%; right:15%; height:10%; background: linear-gradient(180deg, #7a4a2a 0%, #5a3a1a 100%); border-radius: 2px; box-shadow: 0 -2px 6px rgba(0,0,0,.4); }
.scn-after-reunion .cassy { position:absolute; bottom:20%; left:25%; width:28px; height:55px; background: linear-gradient(180deg, #2a1408 0%, #1a0a04 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: ar-seated 6s ease-in-out infinite; }
.scn-after-reunion .eliza { position:absolute; bottom:22%; left:30%; width:14px; height:35px; background: linear-gradient(180deg, #4a2a14 0%, #2a1408 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: ar-lap 4s ease-in-out infinite; }
.scn-after-reunion .others { position:absolute; bottom:20%; left:45%; width:30px; height:55px; background: linear-gradient(180deg, #2a1408 0%, #1a0a04 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: ar-seated 6s ease-in-out infinite 1s; }
.scn-after-reunion .fireglow { position:absolute; bottom:30%; left:70%; width:100px; height:150px; background: radial-gradient(ellipse at 50% 80%, #e08030 0%, #c84a1a 40%, transparent 70%); animation: ar-glow 4s ease-in-out infinite alternate; }
.scn-after-reunion .plate { position:absolute; bottom:18%; left:50%; width:30px; height:6px; background: #8a5a3a; border-radius: 50%; animation: ar-plate 5s ease-in-out infinite; }

@keyframes rb-door { 0% { transform: scaleX(1); } 100% { transform: scaleX(0.3); } }
@keyframes rb-glow { 0% { opacity: 0.7; transform: scale(1); } 50% { opacity: 1; transform: scale(1.05); } 100% { opacity: 0.8; transform: scale(0.95); } }
@keyframes rb-enter { 0% { transform: translateX(-20px) scale(0.8); opacity: 0; } 100% { transform: translateX(0) scale(1); opacity: 1; } }

@keyframes er-seated { 0%,100% { transform: translateY(0); } 50% { transform: translateY(-2px); } }
@keyframes er-appear { 0% { opacity: 0; transform: scale(0.5); } 30% { opacity: 1; transform: scale(1.1); } 50% { opacity: 1; transform: scale(1); } 70% { opacity: 0.8; transform: scale(0.9); } 100% { opacity: 0; transform: scale(0.5); } }
@keyframes er-shadow { 0%,100% { opacity: 0.3; } 50% { opacity: 0.6; } }
@keyframes er-glow { 0% { opacity: 0.5; transform: scale(0.9); } 50% { opacity: 1; transform: scale(1.1); } 100% { opacity: 0.6; transform: scale(1); } }

@keyframes fp-book { 0%,100% { transform: translateX(-50%) rotate(0deg); } 25% { transform: translateX(-50%) rotate(-5deg); } 75% { transform: translateX(-50%) rotate(5deg); } }
@keyframes fp-lamp { 0% { opacity: 0.7; box-shadow: 0 0 15px 5px #c84a1a; } 50% { opacity: 1; box-shadow: 0 0 30px 12px #e08030; } 100% { opacity: 0.8; box-shadow: 0 0 20px 8px #c84a1a; } }
@keyframes fp-leaf { 0% { transform: translateX(0) rotate(0deg); } 100% { transform: translateX(200px) rotate(360deg); } }
@keyframes fp-hands { 0%,100% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-3px) rotate(-5deg); } }

@keyframes ar-seated { 0%,100% { transform: translateY(0); } 50% { transform: translateY(-1px); } }
@keyframes ar-lap { 0%,100% { transform: translateX(0) translateY(0); } 50% { transform: translateX(2px) translateY(-1px); } }
@keyframes ar-glow { 0% { opacity: 0.6; transform: scale(0.95); } 50% { opacity: 1; transform: scale(1.05); } 100% { opacity: 0.7; transform: scale(1); } }
@keyframes ar-plate { 0%,100% { transform: translateX(-50%) rotate(0deg); } 50% { transform: translateX(-50%) rotate(3deg); } }

/* scene: example-of-washerwoman (warm sunlit) */
.scn-example-of-washerwoman {
  background: linear-gradient(180deg, #87ceeb 0%, #f7e9c3 60%, #b8a474 100%),
              radial-gradient(ellipse at 70% 30%, #fbe7a0 0%, transparent 60%);
}
.scn-example-of-washerwoman .sky {
  position: absolute; inset: 0 0 55% 0;
  background: linear-gradient(180deg, #a8d8ea 0%, #c8e6c9 100%);
  animation: ww-sky 12s ease-in-out infinite alternate;
}
.scn-example-of-washerwoman .sun {
  position: absolute; top: 8%; left: 55%; width: 40px; height: 40px;
  background: radial-gradient(circle, #fff5c0 0%, #fce4a0 70%);
  border-radius: 50%;
  box-shadow: 0 0 40px 15px rgba(255,245,192,0.4);
  animation: ww-sun 8s ease-in-out infinite alternate;
}
.scn-example-of-washerwoman .ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 55%;
  background: linear-gradient(180deg, #8b9a5b 0%, #6b7a3b 100%);
  border-radius: 0 0 0 0;
}
.scn-example-of-washerwoman .tub {
  position: absolute; bottom: 20%; left: 35%; width: 70px; height: 40px;
  background: linear-gradient(180deg, #7a5a3a 0%, #4a3a2a 100%);
  border-radius: 10% 10% 5% 5%;
  box-shadow: 0 4px 8px rgba(0,0,0,0.4);
}
.scn-example-of-washerwoman .figure {
  position: absolute; bottom: 18%; left: 44%; width: 28px; height: 60px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: ww-bend 3s ease-in-out infinite;
}
.scn-example-of-washerwoman .clothesline {
  position: absolute; top: 40%; left: 15%; right: 15%; height: 2px;
  background: rgba(80,60,30,0.6);
}
.scn-example-of-washerwoman .clothes-1 {
  position: absolute; top: 38%; left: 28%; width: 20px; height: 28px;
  background: linear-gradient(180deg, #c8a878 0%, #a88858 100%);
  border-radius: 3px;
  transform-origin: top center;
  animation: ww-clothes 4s ease-in-out infinite alternate;
}
.scn-example-of-washerwoman .clothes-2 {
  position: absolute; top: 39%; left: 58%; width: 18px; height: 24px;
  background: linear-gradient(180deg, #88a8c8 0%, #5888a8 100%);
  border-radius: 3px;
  transform-origin: top center;
  animation: ww-clothes 4s ease-in-out infinite alternate-reverse;
}
.scn-example-of-washerwoman .cloud-a {
  position: absolute; top: 12%; left: 10%; width: 90px; height: 20px;
  background: rgba(255,255,255,0.6);
  border-radius: 50%;
  filter: blur(6px);
  animation: ww-drift-a 40s linear infinite;
}
.scn-example-of-washerwoman .cloud-b {
  position: absolute; top: 22%; right: 20%; width: 70px; height: 14px;
  background: rgba(255,255,255,0.4);
  border-radius: 50%;
  filter: blur(4px);
  animation: ww-drift-b 50s linear infinite reverse;
}
@keyframes ww-sky {
  0% { opacity: 0.8; }
  50% { opacity: 1; background-position: 0% 50%; }
  100% { opacity: 0.85; background-position: 10% 50%; }
}
@keyframes ww-sun {
  0% { transform: scale(1) translate(0,0); opacity: 0.9; }
  50% { transform: scale(1.05) translate(2px,-2px); opacity: 1; }
  100% { transform: scale(0.95) translate(-2px,2px); opacity: 0.85; }
}
@keyframes ww-bend {
  0% { transform: rotate(0deg) translateY(0); }
  50% { transform: rotate(8deg) translateY(-3px); }
  100% { transform: rotate(0deg) translateY(0); }
}
@keyframes ww-clothes {
  0% { transform: rotate(-2deg); }
  50% { transform: rotate(4deg) translateY(-1px); }
  100% { transform: rotate(-2deg); }
}
@keyframes ww-drift-a {
  0% { transform: translateX(0); }
  100% { transform: translateX(120vw); }
}
@keyframes ww-drift-b {
  0% { transform: translateX(0); }
  100% { transform: translateX(-100vw); }
}

/* scene: final-exhortation (tense sunlit) */
.scn-final-exhortation {
  background: linear-gradient(180deg, #4a6f8a 0%, #8a9a6a 40%, #6a5a3a 100%),
              radial-gradient(ellipse at 50% 20%, #fce4a0 0%, transparent 70%);
}
.scn-final-exhortation .sky {
  position: absolute; inset: 0 0 50% 0;
  background: linear-gradient(180deg, #7a8a9a 0%, #b8c8d8 100%);
  animation: fe-sky 10s ease-in-out infinite alternate;
}
.scn-final-exhortation .light-rays {
  position: absolute; top: 0; left: 30%; width: 40%; height: 60%;
  background: linear-gradient(180deg, rgba(255,230,150,0.3) 0%, transparent 100%);
  clip-path: polygon(40% 0%, 60% 0%, 55% 100%, 45% 100%);
  animation: fe-rays 4s ease-in-out infinite alternate;
}
.scn-final-exhortation .pulpit {
  position: absolute; bottom: 26%; left: 50%; transform: translateX(-50%);
  width: 40px; height: 50px;
  background: linear-gradient(180deg, #5a4a2a 0%, #2a1a0a 100%);
  border-radius: 5% 5% 0 0;
  box-shadow: 0 6px 12px rgba(0,0,0,0.5);
}
.scn-final-exhortation .preacher {
  position: absolute; bottom: 30%; left: 50%; transform: translateX(-50%);
  width: 30px; height: 70px;
  background: linear-gradient(180deg, #2a1a0a 0%, #0a0a0a 100%);
  border-radius: 50% 50% 30% 30% / 70% 70% 30% 30%;
  transform-origin: bottom center;
  animation: fe-preach 1.5s ease-in-out infinite;
}
.scn-final-exhortation .congreg-a {
  position: absolute; bottom: 22%; left: 12%; width: 20px; height: 50px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a1a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: fe-crowd 3s ease-in-out infinite alternate;
}
.scn-final-exhortation .congreg-b {
  position: absolute; bottom: 24%; right: 15%; width: 18px; height: 48px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a1a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: fe-crowd 3s ease-in-out infinite alternate-reverse;
}
.scn-final-exhortation .cross {
  position: absolute; bottom: 38%; left: 50%; transform: translateX(-50%);
  width: 3px; height: 70px;
  background: linear-gradient(180deg, #5a3a1a 0%, #3a1a0a 100%);
  box-shadow: 0 0 8px rgba(0,0,0,0.5);
}
.scn-final-exhortation .shadow-bars {
  position: absolute; top: 20%; left: 0; right: 0; height: 80%;
  background: repeating-linear-gradient(
    90deg,
    rgba(0,0,0,0.15) 0px,
    rgba(0,0,0,0.15) 20px,
    transparent 20px,
    transparent 60px
  );
  animation: fe-shadows 8s linear infinite;
}
@keyframes fe-sky {
  0% { opacity: 0.7; }
  50% { opacity: 1; }
  100% { opacity: 0.8; }
}
@keyframes fe-rays {
  0% { transform: scaleX(1); opacity: 0.5; }
  50% { transform: scaleX(1.2) translateY(-5px); opacity: 0.8; }
  100% { transform: scaleX(0.9); opacity: 0.4; }
}
@keyframes fe-preach {
  0% { transform: translateX(-50%) rotate(-3deg); }
  50% { transform: translateX(-50%) rotate(5deg) translateY(-5px); }
  100% { transform: translateX(-50%) rotate(-3deg); }
}
@keyframes fe-crowd {
  0% { transform: translateY(0); }
  50% { transform: translateY(-2px); }
  100% { transform: translateY(0); }
}
@keyframes fe-shadows {
  0% { background-position: 0 0; }
  100% { background-position: 60px 0; }
}

/* scene: final-warning (tense sunlit) */
.scn-final-warning {
  background: linear-gradient(180deg, #2a3a4a 0%, #4a5a6a 30%, #8a7a5a 70%, #c8b88a 100%),
              radial-gradient(ellipse at 50% 10%, #fce4a0 0%, transparent 60%);
}
.scn-final-warning .sky {
  position: absolute; inset: 0 0 45% 0;
  background: linear-gradient(180deg, #3a4a5a 0%, #6a7a8a 100%);
  animation: fw-sky 8s ease-in-out infinite alternate;
}
.scn-final-warning .light-burst {
  position: absolute; top: 0; left: 40%; width: 20%; height: 55%;
  background: radial-gradient(ellipse at 50% 0, rgba(255,240,180,0.6) 0%, transparent 80%);
  animation: fw-burst 2s ease-in-out infinite alternate;
}
.scn-final-warning .figure {
  position: absolute; bottom: 22%; left: 50%; transform: translateX(-50%);
  width: 36px; height: 80px;
  background: linear-gradient(180deg, #1a1a1a 0%, #0a0a0a 100%);
  border-radius: 50% 50% 30% 30% / 80% 80% 30% 30%;
  transform-origin: bottom center;
  animation: fw-figure 3s ease-in-out infinite;
}
.scn-final-warning .arm {
  position: absolute; bottom: 70%; left: 55%; width: 6px; height: 40px;
  background: #1a1a1a;
  border-radius: 3px;
  transform-origin: bottom center;
  animation: fw-arm 1.8s ease-in-out infinite;
}
.scn-final-warning .cross-ground {
  position: absolute; bottom: 16%; left: 50%; transform: translateX(-50%);
  width: 2px; height: 90px;
  background: linear-gradient(180deg, #6a4a2a 0%, #3a2a0a 100%);
  box-shadow: 0 0 12px rgba(0,0,0,0.5);
}
.scn-final-warning .dust {
  position: absolute; bottom: 10%; left: 30%; width: 60px; height: 30px;
  background: rgba(180,140,80,0.3);
  border-radius: 50%;
  filter: blur(8px);
  animation: fw-dust 5s ease-in-out infinite alternate;
}
.scn-final-warning .vignette {
  position: absolute; inset: 0;
  background: radial-gradient(ellipse at 50% 50%, transparent 50%, rgba(0,0,0,0.4) 100%);
  pointer-events: none;
}
@keyframes fw-sky {
  0% { opacity: 0.6; }
  50% { opacity: 1; }
  100% { opacity: 0.7; }
}
@keyframes fw-burst {
  0% { transform: scaleY(1); opacity: 0.4; }
  50% { transform: scaleY(1.3); opacity: 0.7; }
  100% { transform: scaleY(0.9); opacity: 0.3; }
}
@keyframes fw-figure {
  0% { transform: translateX(-50%) rotate(0deg); }
  50% { transform: translateX(-50%) rotate(-2deg) translateY(-3px); }
  100% { transform: translateX(-50%) rotate(0deg); }
}
@keyframes fw-arm {
  0% { transform: rotate(-20deg); }
  50% { transform: rotate(30deg) translateX(3px); }
  100% { transform: rotate(-20deg); }
}
@keyframes fw-dust {
  0% { transform: translateX(0) scale(1); opacity: 0.3; }
  50% { transform: translateX(10px) scale(1.2); opacity: 0.6; }
  100% { transform: translateX(-5px) scale(0.9); opacity: 0.2; }
}

.scn-haley-jokes-about-conscience {
  background: linear-gradient(180deg, #2b1e14 0%, #1a100a 50%, #0d0805 100%),
              radial-gradient(ellipse at 50% 60%, #3a2a1a 0%, transparent 70%);
}
.scn-haley-jokes-about-conscience .wall {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a100a 100%);
}
.scn-haley-jokes-about-conscience .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(0deg, #1a100a 0%, #2b1e14 100%);
}
.scn-haley-jokes-about-conscience .table {
  position: absolute; bottom: 22%; left: 30%; width: 40%; height: 8%;
  background: linear-gradient(180deg, #4a3020 0%, #2a1a10 100%);
  border-radius: 4px;
  box-shadow: 0 4px 8px rgba(0,0,0,.6);
  animation: hjc-table 6s ease-in-out infinite;
}
.scn-haley-jokes-about-conscience .candle {
  position: absolute; bottom: 32%; left: 45%; width: 6px; height: 20px;
  background: linear-gradient(180deg, #f0d080 0%, #b08040 100%);
  border-radius: 3px;
  transform-origin: bottom center;
  animation: hjc-candle 3s ease-in-out infinite alternate;
}
.scn-haley-jokes-about-conscience .glow {
  position: absolute; bottom: 30%; left: 43%; width: 16%; height: 40%;
  background: radial-gradient(ellipse, rgba(240,208,128,.3) 0%, transparent 70%);
  border-radius: 50%;
  animation: hjc-glow 2s ease-in-out infinite alternate;
}
.scn-haley-jokes-about-conscience .trader {
  position: absolute; bottom: 18%; left: 20%; width: 14%; height: 40%;
  background: linear-gradient(180deg, #1a1410 0%, #0d0905 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: hjc-trader 4s ease-in-out infinite;
}
@keyframes hjc-table {
  0% { transform: scaleX(1); }
  50% { transform: scaleX(1.02); }
  100% { transform: scaleX(1); }
}
@keyframes hjc-candle {
  0% { transform: translateY(0) rotate(-2deg); opacity: .9; }
  100% { transform: translateY(-2px) rotate(2deg); opacity: 1; }
}
@keyframes hjc-glow {
  0% { opacity: .6; transform: scale(1); }
  100% { opacity: .9; transform: scale(1.1); }
}
@keyframes hjc-trader {
  0% { transform: translateX(0) rotate(-2deg); }
  50% { transform: translateX(2px) rotate(2deg); }
  100% { transform: translateX(0) rotate(-2deg); }
}

.scn-shelby-asks-alternative {
  background: linear-gradient(180deg, #2a1e14 0%, #1a120a 50%, #0d0805 100%),
              radial-gradient(ellipse at 50% 50%, #3a2a1a 0%, transparent 70%);
}
.scn-shelby-asks-alternative .wall {
  position: absolute; inset: 0 0 35% 0;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a100a 100%);
}
.scn-shelby-asks-alternative .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 35%;
  background: linear-gradient(0deg, #1a100a 0%, #2b1e14 100%);
}
.scn-shelby-asks-alternative .table {
  position: absolute; bottom: 30%; left: 25%; width: 50%; height: 6%;
  background: linear-gradient(180deg, #4a3020 0%, #2a1a10 100%);
  border-radius: 4px;
  box-shadow: 0 4px 8px rgba(0,0,0,.6);
}
.scn-shelby-asks-alternative .candle {
  position: absolute; bottom: 38%; left: 48%; width: 6px; height: 18px;
  background: linear-gradient(180deg, #f0d080 0%, #b08040 100%);
  border-radius: 3px;
  transform-origin: bottom center;
  animation: saa-candle 2.5s ease-in-out infinite alternate;
}
.scn-shelby-asks-alternative .haley {
  position: absolute; bottom: 20%; left: 15%; width: 16%; height: 42%;
  background: linear-gradient(180deg, #1a1410 0%, #0d0905 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: saa-haley 5s ease-in-out infinite;
}
.scn-shelby-asks-alternative .shelby {
  position: absolute; bottom: 20%; right: 15%; width: 16%; height: 42%;
  background: linear-gradient(180deg, #1a1410 0%, #0d0905 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: saa-shelby 5.5s ease-in-out infinite;
}
.scn-shelby-asks-alternative .glow {
  position: absolute; bottom: 36%; left: 46%; width: 8%; height: 30%;
  background: radial-gradient(ellipse, rgba(240,208,128,.25) 0%, transparent 70%);
  border-radius: 50%;
  animation: saa-glow 2s ease-in-out infinite alternate;
}
@keyframes saa-candle {
  0% { transform: translateY(0) rotate(-3deg); opacity: .8; }
  100% { transform: translateY(-2px) rotate(3deg); opacity: 1; }
}
@keyframes saa-haley {
  0% { transform: translateX(0) rotate(-1deg); }
  50% { transform: translateX(3px) rotate(1deg); }
  100% { transform: translateX(0) rotate(-1deg); }
}
@keyframes saa-shelby {
  0% { transform: translateX(0) rotate(1deg); }
  50% { transform: translateX(-3px) rotate(-1deg); }
  100% { transform: translateX(0) rotate(1deg); }
}
@keyframes saa-glow {
  0% { opacity: .5; transform: scale(1); }
  100% { opacity: .8; transform: scale(1.15); }
}

.scn-little-harry-enters {
  background: linear-gradient(180deg, #2a1e14 0%, #1a120a 50%, #0d0805 100%),
              radial-gradient(ellipse at 70% 50%, #4a3a2a 0%, transparent 70%);
}
.scn-little-harry-enters .wall {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a100a 100%);
}
.scn-little-harry-enters .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(0deg, #1a100a 0%, #2b1e14 100%);
}
.scn-little-harry-enters .door-frame {
  position: absolute; bottom: 20%; right: 20%; width: 30%; height: 60%;
  background: linear-gradient(180deg, #4a3020 0%, #2a1a10 100%);
  border: 4px solid #1a100a;
  border-radius: 4px;
  box-shadow: inset 0 0 20px rgba(0,0,0,.5);
}
.scn-little-harry-enters .door {
  position: absolute; bottom: 20%; right: 20%; width: 30%; height: 60%;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a100a 100%);
  border-radius: 4px;
  transform-origin: left center;
  animation: lhe-door 8s ease-in-out infinite;
}
.scn-little-harry-enters .light-beam {
  position: absolute; bottom: 25%; right: 22%; width: 18%; height: 50%;
  background: linear-gradient(135deg, rgba(240,220,180,.3) 0%, transparent 80%);
  filter: blur(8px);
  animation: lhe-beam 6s ease-in-out infinite alternate;
}
.scn-little-harry-enters .child {
  position: absolute; bottom: 17%; right: 30%; width: 10%; height: 30%;
  background: linear-gradient(180deg, #1a1410 0%, #0d0905 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: lhe-child 4s ease-in-out infinite;
}
@keyframes lhe-door {
  0% { transform: rotateY(0deg); }
  25% { transform: rotateY(-60deg); }
  75% { transform: rotateY(-60deg); }
  100% { transform: rotateY(0deg); }
}
@keyframes lhe-beam {
  0% { opacity: .4; transform: scaleX(1); }
  100% { opacity: .7; transform: scaleX(1.1); }
}
@keyframes lhe-child {
  0% { transform: translateX(0) translateY(0) rotate(-2deg); }
  25% { transform: translateX(-4px) translateY(-2px) rotate(2deg); }
  50% { transform: translateX(0) translateY(0) rotate(-2deg); }
  75% { transform: translateX(4px) translateY(-1px) rotate(1deg); }
  100% { transform: translateX(0) translateY(0) rotate(-2deg); }
}

.scn-harry-performs {
  background: linear-gradient(180deg, #2a1e14 0%, #1a120a 50%, #0d0805 100%),
              radial-gradient(ellipse at 50% 60%, #3a2a1a 0%, transparent 70%);
}
.scn-harry-performs .wall {
  position: absolute; inset: 0 0 25% 0;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a100a 100%);
}
.scn-harry-performs .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 25%;
  background: linear-gradient(0deg, #1a100a 0%, #2b1e14 100%);
}
.scn-harry-performs .master {
  position: absolute; bottom: 15%; left: 10%; width: 18%; height: 45%;
  background: linear-gradient(180deg, #1a1410 0%, #0d0905 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: hp-master 5s ease-in-out infinite;
}
.scn-harry-performs .child {
  position: absolute; bottom: 18%; right: 20%; width: 12%; height: 35%;
  background: linear-gradient(180deg, #1a1410 0%, #0d0905 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: hp-child 2s ease-in-out infinite;
}
.scn-harry-performs .raisin-a,
.scn-harry-performs .raisin-b,
.scn-harry-performs .raisin-c {
  position: absolute;
  width: 8px; height: 8px;
  background: radial-gradient(circle at 30% 30%, #5e2e1a 0%, #3a1a0a 100%);
  border-radius: 50%;
  box-shadow: 0 2px 4px rgba(0,0,0,.5);
}
.scn-harry-performs .raisin-a {
  bottom: 30%; left: 35%;
  animation: hp-raisin-a 3s ease-in-out infinite;
}
.scn-harry-performs .raisin-b {
  bottom: 32%; left: 50%;
  animation: hp-raisin-b 3.5s ease-in-out infinite;
  animation-delay: 0.5s;
}
.scn-harry-performs .raisin-c {
  bottom: 28%; left: 28%;
  animation: hp-raisin-c 4s ease-in-out infinite;
  animation-delay: 1s;
}
@keyframes hp-master {
  0% { transform: translateX(0) rotate(-2deg); }
  50% { transform: translateX(2px) rotate(2deg); }
  100% { transform: translateX(0) rotate(-2deg); }
}
@keyframes hp-child {
  0% { transform: translateY(0) rotate(0deg); }
  25% { transform: translateY(-10px) rotate(-10deg); }
  50% { transform: translateY(0) rotate(0deg); }
  75% { transform: translateY(-8px) rotate(10deg); }
  100% { transform: translateY(0) rotate(0deg); }
}
@keyframes hp-raisin-a {
  0% { transform: translate(0,0) rotate(0deg); opacity: 0; }
  10% { opacity: 1; }
  30% { transform: translate(30px, -40px) rotate(180deg); }
  60% { transform: translate(60px, -10px) rotate(360deg); }
  80% { opacity: 0; }
  100% { transform: translate(80px, 0) rotate(540deg); opacity: 0; }
}
@keyframes hp-raisin-b {
  0% { transform: translate(0,0) rotate(0deg); opacity: 0; }
  10% { opacity: 1; }
  30% { transform: translate(-20px, -50px) rotate(180deg); }
  60% { transform: translate(-40px, -15px) rotate(360deg); }
  80% { opacity: 0; }
  100% { transform: translate(-60px, 0) rotate(540deg); opacity: 0; }
}
@keyframes hp-raisin-c {
  0% { transform: translate(0,0) rotate(0deg); opacity: 0; }
  10% { opacity: 1; }
  30% { transform: translate(50px, -30px) rotate(180deg); }
  60% { transform: translate(70px, -5px) rotate(360deg); }
  80% { opacity: 0; }
  100% { transform: translate(90px, 10px) rotate(540deg); opacity: 0; }
}

.scn-shelby-skeptical {
  background:
    radial-gradient(ellipse at 25% 80%, #3a2a1a 0%, transparent 60%),
    radial-gradient(ellipse at 75% 60%, #2a1a10 0%, transparent 50%),
    linear-gradient(180deg, #1c1410 0%, #2a1a10 40%, #4a3020 100%);
}
.scn-shelby-skeptical .bg-wall {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(0deg, #2a1a10 0%, #1c1410 100%);
}
.scn-shelby-skeptical .bg-floor {
  position: absolute; inset: auto 0 0 0; height: 30%;
  background: linear-gradient(180deg, #3a2a1a 0%, #1c1410 100%);
}
.scn-shelby-skeptical .chair-back {
  position: absolute; bottom: 24%; left: 20%; width: 60px; height: 80px;
  background: linear-gradient(180deg, #4a3020 0%, #2a1a10 100%);
  border-radius: 40% 40% 10% 10%;
  box-shadow: 0 4px 8px rgba(0,0,0,0.5);
  transform: rotate(5deg);
}
.scn-shelby-skeptical .shelby-silhouette {
  position: absolute; bottom: 16%; left: 20%; width: 36px; height: 60px;
  background: linear-gradient(180deg, #1a1010 0%, #0a0808 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform: rotate(-2deg);
  animation: sh1-fig 6s ease-in-out infinite;
}
.scn-shelby-skeptical .cigar-glow {
  position: absolute; bottom: 38%; left: 24%; width: 6px; height: 4px;
  background: radial-gradient(circle, #e8a040 0%, transparent 100%);
  border-radius: 50%;
  box-shadow: 0 0 12px 6px #e8a040, 0 0 24px 12px rgba(232,160,64,0.4);
  animation: sh1-cigar 2s ease-in-out infinite alternate;
}
.scn-shelby-skeptical .haley-silhouette {
  position: absolute; bottom: 18%; right: 18%; width: 40px; height: 72px;
  background: linear-gradient(180deg, #1a1010 0%, #0a0808 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform: rotate(3deg) scaleX(0.9);
  animation: sh1-fig2 8s ease-in-out infinite;
}
.scn-shelby-skeptical .table {
  position: absolute; bottom: 14%; right: 30%; width: 50px; height: 30px;
  background: linear-gradient(180deg, #4a3020 0%, #2a1a10 100%);
  border-radius: 10% 10% 20% 20%;
  box-shadow: 0 2px 6px rgba(0,0,0,0.4);
}
.scn-shelby-skeptical .candle {
  position: absolute; bottom: 30%; right: 35%; width: 8px; height: 20px;
  background: linear-gradient(180deg, #e0c080 0%, #b09060 100%);
  border-radius: 20% 20% 10% 10%;
  transform: rotate(-3deg);
}
.scn-shelby-skeptical .candle-flicker {
  position: absolute; bottom: 46%; right: 35%; width: 12px; height: 16px;
  background: radial-gradient(ellipse, #ffd060 0%, transparent 100%);
  border-radius: 50%;
  box-shadow: 0 0 16px 8px #ffd060, 0 0 32px 16px rgba(255,208,96,0.3);
  animation: sh1-flame 0.3s infinite alternate;
}

@keyframes sh1-fig { 0% { transform: rotate(-2deg) translateY(0); } 50% { transform: rotate(-1deg) translateY(-2px); } 100% { transform: rotate(-2deg) translateY(0); } }
@keyframes sh1-fig2 { 0% { transform: rotate(3deg) scaleX(0.9) translateX(0); } 50% { transform: rotate(4deg) scaleX(0.9) translateX(-2px); } 100% { transform: rotate(3deg) scaleX(0.9) translateX(0); } }
@keyframes sh1-cigar { 0% { opacity: 0.8; transform: scale(1); } 50% { opacity: 1; transform: scale(1.2); } 100% { opacity: 0.9; transform: scale(1.1); } }
@keyframes sh1-flame { 0% { transform: scaleY(1) translateY(0); } 100% { transform: scaleY(1.2) translateY(-2px); } }

.scn-shelby-shrugs-off-haley {
  background:
    radial-gradient(ellipse at 30% 70%, #3a2a1a 0%, transparent 60%),
    radial-gradient(ellipse at 60% 40%, #2a1a10 0%, transparent 50%),
    linear-gradient(180deg, #1c1410 0%, #2a1a10 40%, #4a3020 100%);
}
.scn-shelby-shrugs-off-haley .bg-wall {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(0deg, #2a1a10 0%, #1c1410 100%);
}
.scn-shelby-shrugs-off-haley .bg-floor {
  position: absolute; inset: auto 0 0 0; height: 30%;
  background: linear-gradient(180deg, #3a2a1a 0%, #1c1410 100%);
}
.scn-shelby-shrugs-off-haley .shelby-figure {
  position: absolute; bottom: 20%; left: 25%; width: 32px; height: 58px;
  background: linear-gradient(180deg, #1a1010 0%, #0a0808 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform: rotate(-5deg);
  animation: sh2-sit 4s ease-in-out infinite;
}
.scn-shelby-shrugs-off-haley .shelby-hand {
  position: absolute; bottom: 30%; left: 30%; width: 10px; height: 14px;
  background: #2a1a10;
  border-radius: 40% 40% 30% 30%;
  transform: rotate(20deg);
  animation: sh2-hand 3s ease-in-out infinite alternate;
}
.scn-shelby-shrugs-off-haley .haley-head {
  position: absolute; bottom: 30%; right: 20%; width: 22px; height: 26px;
  background: #1a1010;
  border-radius: 50% 50% 40% 40%;
  transform: rotate(5deg);
  animation: sh2-head 5s ease-in-out infinite;
}
.scn-shelby-shrugs-off-haley .candle {
  position: absolute; bottom: 30%; left: 50%; width: 8px; height: 20px;
  background: linear-gradient(180deg, #e0c080 0%, #b09060 100%);
  border-radius: 20% 20% 10% 10%;
  transform: translateX(-50%);
}
.scn-shelby-shrugs-off-haley .candle-flicker {
  position: absolute; bottom: 46%; left: 50%; width: 12px; height: 16px;
  background: radial-gradient(ellipse, #ffd060 0%, transparent 100%);
  border-radius: 50%;
  box-shadow: 0 0 16px 8px #ffd060, 0 0 32px 16px rgba(255,208,96,0.3);
  animation: sh2-flame 0.3s infinite alternate;
}
.scn-shelby-shrugs-off-haley .shadow-1 {
  position: absolute; bottom: 0; left: 10%; width: 80%; height: 40%;
  background: linear-gradient(0deg, rgba(0,0,0,0.6) 0%, transparent 100%);
  animation: sh2-shadow 8s ease-in-out infinite alternate;
}

@keyframes sh2-sit { 0% { transform: rotate(-5deg) translateY(0); } 50% { transform: rotate(-4deg) translateY(-3px); } 100% { transform: rotate(-5deg) translateY(0); } }
@keyframes sh2-hand { 0% { transform: rotate(20deg) translateX(0); } 50% { transform: rotate(25deg) translateX(2px); } 100% { transform: rotate(20deg) translateX(0); } }
@keyframes sh2-head { 0% { transform: rotate(5deg) translateY(0); } 50% { transform: rotate(6deg) translateY(-2px); } 100% { transform: rotate(5deg) translateY(0); } }
@keyframes sh2-flame { 0% { transform: scaleY(1); } 100% { transform: scaleY(1.2); } }
@keyframes sh2-shadow { 0% { opacity: 0.5; } 50% { opacity: 0.8; } 100% { opacity: 0.5; } }

.scn-shelby-defers-decision {
  background:
    radial-gradient(ellipse at 50% 70%, #4a3020 0%, transparent 60%),
    radial-gradient(ellipse at 20% 50%, #2a1a10 0%, transparent 50%),
    linear-gradient(180deg, #1c1410 0%, #3a2a1a 50%, #4a3020 100%);
}
.scn-shelby-defers-decision .bg-wall {
  position: absolute; inset: 0 0 35% 0;
  background: linear-gradient(0deg, #2a1a10 0%, #1c1410 100%);
}
.scn-shelby-defers-decision .bg-floor {
  position: absolute; inset: auto 0 0 0; height: 35%;
  background: linear-gradient(180deg, #3a2a1a 0%, #1c1410 100%);
}
.scn-shelby-defers-decision .desk {
  position: absolute; bottom: 15%; left: 10%; width: 120px; height: 30px;
  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);
}
.scn-shelby-defers-decision .shelby-seated {
  position: absolute; bottom: 12%; left: 15%; width: 34px; height: 56px;
  background: linear-gradient(180deg, #1a1010 0%, #0a0808 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform: rotate(2deg);
  animation: sh3-seat 5s ease-in-out infinite;
}
.scn-shelby-defers-decision .haley-standing {
  position: absolute; bottom: 20%; right: 15%; width: 38px; height: 70px;
  background: linear-gradient(180deg, #1a1010 0%, #0a0808 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform: rotate(-3deg) scaleX(0.9);
  animation: sh3-stand 7s ease-in-out infinite;
}
.scn-shelby-defers-decision .fireplace {
  position: absolute; bottom: 35%; left: 50%; width: 60px; height: 50px;
  background: linear-gradient(180deg, #2a1a10 0%, #1c1410 100%);
  border-radius: 20% 20% 10% 10%;
  transform: translateX(-50%);
  box-shadow: inset 0 0 20px rgba(255,150,50,0.2);
}
.scn-shelby-defers-decision .fire-glow {
  position: absolute; bottom: 30%; left: 50%; width: 40px; height: 40px;
  background: radial-gradient(ellipse, #ff8030 0%, transparent 100%);
  border-radius: 50%;
  transform: translateX(-50%);
  animation: sh3-fire 2s ease-in-out infinite alternate;
}
.scn-shelby-defers-decision .clock {
  position: absolute; top: 10%; left: 10%; width: 24px; height: 24px;
  background: radial-gradient(circle, #a08060 0%, #7a6040 100%);
  border-radius: 50%;
  box-shadow: 0 2px 4px rgba(0,0,0,0.3);
  animation: sh3-clock 60s linear infinite;
}

@keyframes sh3-seat { 0% { transform: rotate(2deg) translateY(0); } 50% { transform: rotate(1deg) translateY(-2px); } 100% { transform: rotate(2deg) translateY(0); } }
@keyframes sh3-stand { 0% { transform: rotate(-3deg) scaleX(0.9) translateX(0); } 50% { transform: rotate(-2deg) scaleX(0.9) translateX(2px); } 100% { transform: rotate(-3deg) scaleX(0.9) translateX(0); } }
@keyframes sh3-fire { 0% { opacity: 0.6; transform: translateX(-50%) scale(1); } 50% { opacity: 0.9; transform: translateX(-50%) scale(1.1); } 100% { opacity: 0.7; transform: translateX(-50%) scale(1); } }
@keyframes sh3-clock { 0% { transform: rotate(0deg); } 100% { transform: rotate(360deg); } }

.scn-haley-departs {
  background:
    radial-gradient(ellipse at 70% 60%, #3a2a1a 0%, transparent 60%),
    radial-gradient(ellipse at 30% 40%, #2a1a10 0%, transparent 50%),
    linear-gradient(180deg, #1c1410 0%, #2a1a10 40%, #4a3020 100%);
}
.scn-haley-departs .bg-wall {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(0deg, #2a1a10 0%, #1c1410 100%);
}
.scn-haley-departs .bg-floor {
  position: absolute; inset: auto 0 0 0; height: 30%;
  background: linear-gradient(180deg, #3a2a1a 0%, #1c1410 100%);
}
.scn-haley-departs .doorway {
  position: absolute; bottom: 18%; right: 10%; width: 40px; height: 80px;
  background: #2a1a10;
  border: 4px solid #1c1410;
  border-radius: 10% 10% 0 0;
}
.scn-haley-departs .haley-coat {
  position: absolute; bottom: 18%; right: 12%; width: 30px; height: 60px;
  background: linear-gradient(180deg, #1a1010 0%, #0a0808 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform: rotate(10deg);
  animation: sh4-coat 4s ease-in-out infinite;
}
.scn-haley-departs .haley-hat {
  position: absolute; bottom: 58%; right: 10%; width: 28px; height: 20px;
  background: linear-gradient(180deg, #1a1010 0%, #0a0808 100%);
  border-radius: 50% 50% 10% 10%;
  transform: rotate(5deg);
  animation: sh4-hat 3s ease-in-out infinite alternate;
}
.scn-haley-departs .shelby-seated {
  position: absolute; bottom: 15%; left: 20%; width: 34px; height: 56px;
  background: linear-gradient(180deg, #1a1010 0%, #0a0808 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform: rotate(-3deg);
  animation: sh4-sit 5s ease-in-out infinite;
}
.scn-haley-departs .candle {
  position: absolute; bottom: 30%; left: 30%; width: 8px; height: 20px;
  background: linear-gradient(180deg, #e0c080 0%, #b09060 100%);
  border-radius: 20% 20% 10% 10%;
  transform: rotate(-2deg);
}
.scn-haley-departs .candle-flicker {
  position: absolute; bottom: 46%; left: 30%; width: 12px; height: 16px;
  background: radial-gradient(ellipse, #ffd060 0%, transparent 100%);
  border-radius: 50%;
  box-shadow: 0 0 16px 8px #ffd060, 0 0 32px 16px rgba(255,208,96,0.3);
  animation: sh4-flame 0.3s infinite alternate;
}
.scn-haley-departs .shadow-2 {
  position: absolute; bottom: 0; right: 5%; width: 60%; height: 50%;
  background: linear-gradient(0deg, rgba(0,0,0,0.7) 0%, transparent 100%);
  animation: sh4-shadow 10s ease-in-out infinite alternate;
}

@keyframes sh4-coat { 0% { transform: rotate(10deg) translateX(0); } 50% { transform: rotate(12deg) translateX(-3px); } 100% { transform: rotate(10deg) translateX(0); } }
@keyframes sh4-hat { 0% { transform: rotate(5deg); } 50% { transform: rotate(8deg); } 100% { transform: rotate(5deg); } }
@keyframes sh4-sit { 0% { transform: rotate(-3deg) translateY(0); } 50% { transform: rotate(-2deg) translateY(-2px); } 100% { transform: rotate(-3deg) translateY(0); } }
@keyframes sh4-flame { 0% { transform: scaleY(1); } 100% { transform: scaleY(1.2); } }
@keyframes sh4-shadow { 0% { opacity: 0.3; } 50% { opacity: 0.7; } 100% { opacity: 0.3; } }

.scn-uncle-tom-daguerreotype {
  background: 
    linear-gradient(180deg, #2a1e12 0%, #3d2a18 40%, #5a3a1e 100%),
    radial-gradient(ellipse at 60% 80%, #7a4a22 0%, transparent 70%);
}
.scn-uncle-tom-daguerreotype .bg-fire {
  position: absolute; bottom: 10%; left: 5%; width: 30%; height: 25%;
  background: radial-gradient(ellipse at center, #d07030 0%, #b05020 40%, #2a1e12 70%);
  border-radius: 50%;
  filter: blur(8px);
  animation: ut1-fire 6s ease-in-out infinite alternate;
}
.scn-uncle-tom-daguerreotype .table {
  position: absolute; bottom: 20%; left: 20%; right: 20%; height: 8%;
  background: linear-gradient(180deg, #7a5a3a 0%, #4a2e12 100%);
  border-radius: 4px;
  box-shadow: 0 4px 12px rgba(0,0,0,0.6);
}
.scn-uncle-tom-daguerreotype .cloth {
  position: absolute; bottom: 22%; left: 22%; right: 22%; height: 4%;
  background: linear-gradient(90deg, #d4a86a 0%, #c0964c 50%, #b88a3a 100%);
  border-radius: 4px;
  opacity: 0.9;
  animation: ut1-cloth 8s ease-in-out infinite;
}
.scn-uncle-tom-daguerreotype .cup {
  position: absolute; bottom: 24%; width: 10px; height: 12px;
  background: linear-gradient(180deg, #f0d4a0 0%, #c8a86a 100%);
  border-radius: 4px;
  box-shadow: 0 2px 4px rgba(0,0,0,0.5);
}
.scn-uncle-tom-daguerreotype .cup-1 {
  left: 32%;
  animation: ut1-cup1 10s ease-in-out infinite;
}
.scn-uncle-tom-daguerreotype .cup-2 {
  left: 62%;
  animation: ut1-cup2 12s ease-in-out infinite;
}
.scn-uncle-tom-daguerreotype .figure-tom {
  position: absolute; bottom: 26%; left: 45%; width: 22px; height: 40px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1e1206 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: ut1-tom 15s ease-in-out infinite;
}
.scn-uncle-tom-daguerreotype .glow {
  position: absolute; inset: 0;
  background: radial-gradient(ellipse at 60% 80%, rgba(200,120,60,0.25) 0%, transparent 60%);
  pointer-events: none;
  animation: ut1-glow 6s ease-in-out infinite alternate;
}
@keyframes ut1-fire {
  0% { transform: scale(1); opacity: 0.9; }
  50% { transform: scale(1.05); opacity: 1; }
  100% { transform: scale(0.95); opacity: 0.85; }
}
@keyframes ut1-cloth {
  0%,100% { background-position: 0% 50%; }
  50% { background-position: 100% 50%; }
}
@keyframes ut1-cup1 {
  0%,100% { transform: translateY(0); }
  50% { transform: translateY(-2px); }
}
@keyframes ut1-cup2 {
  0%,100% { transform: translateY(0); }
  50% { transform: translateY(-3px); }
}
@keyframes ut1-tom {
  0%,100% { transform: translateY(0) rotate(0); }
  50% { transform: translateY(-2px) rotate(1deg); }
}
@keyframes ut1-glow {
  0% { opacity: 0.6; }
  100% { opacity: 1; }
}

.scn-young-master-george-teaches {
  background: 
    linear-gradient(180deg, #1a1410 0%, #2a1e14 40%, #3d2a1a 100%),
    radial-gradient(ellipse at 50% 90%, #5a3a22 0%, transparent 70%);
}
.scn-young-master-george-teaches .bg-shadow {
  position: absolute; inset: 0;
  background: radial-gradient(ellipse at 70% 30%, rgba(0,0,0,0.3) 0%, transparent 60%);
}
.scn-young-master-george-teaches .desk {
  position: absolute; bottom: 18%; left: 15%; right: 15%; height: 6%;
  background: linear-gradient(180deg, #6a4a2a 0%, #3a2412 100%);
  border-radius: 4px;
  box-shadow: 0 2px 8px rgba(0,0,0,0.5);
}
.scn-young-master-george-teaches .slate {
  position: absolute; bottom: 24%; left: 35%; width: 50px; height: 30px;
  background: #2a2a3a;
  border: 2px solid #8a6a4a;
  border-radius: 4px;
  box-shadow: 0 2px 6px rgba(0,0,0,0.4);
  animation: mg2-slate 8s ease-in-out infinite;
}
.scn-young-master-george-teaches .pencil {
  position: absolute; bottom: 30%; left: 40%; width: 20px; height: 4px;
  background: linear-gradient(90deg, #c8a86a 0%, #8a6a3a 100%);
  border-radius: 2px;
  transform: rotate(30deg);
  transform-origin: left center;
  animation: mg2-pencil 6s ease-in-out infinite;
}
.scn-young-master-george-teaches .figure-tom {
  position: absolute; bottom: 20%; left: 42%; width: 20px; height: 38px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1e1206 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: mg2-tom 12s ease-in-out infinite;
}
.scn-young-master-george-teaches .figure-george {
  position: absolute; bottom: 24%; right: 30%; width: 16px; height: 34px;
  background: linear-gradient(180deg, #c8a86a 0%, #8a6a3a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: mg2-george 15s ease-in-out infinite;
}
.scn-young-master-george-teaches .glow {
  position: absolute; inset: 0;
  background: radial-gradient(ellipse at 60% 80%, rgba(200,120,60,0.2) 0%, transparent 60%);
  pointer-events: none;
  animation: mg2-glow 6s ease-in-out infinite alternate;
}
@keyframes mg2-slate {
  0%,100% { transform: translateX(0); }
  50% { transform: translateX(3px); }
}
@keyframes mg2-pencil {
  0%,100% { transform: rotate(30deg) translateY(0); }
  50% { transform: rotate(35deg) translateY(-2px); }
}
@keyframes mg2-tom {
  0%,100% { transform: translateY(0) rotate(0); }
  50% { transform: translateY(-2px) rotate(1deg); }
}
@keyframes mg2-george {
  0%,100% { transform: translateY(0) rotate(0); }
  50% { transform: translateY(-3px) rotate(-1deg); }
}
@keyframes mg2-glow {
  0% { opacity: 0.5; }
  100% { opacity: 0.9; }
}

.scn-aunt-chloe-praises-george {
  background: 
    linear-gradient(180deg, #1a1410 0%, #2a1e14 40%, #3d2a1a 100%),
    radial-gradient(ellipse at 60% 80%, #6a3a1a 0%, transparent 60%);
}
.scn-aunt-chloe-praises-george .bg-shadow {
  position: absolute; inset: 0;
  background: radial-gradient(ellipse at 30% 20%, rgba(0,0,0,0.4) 0%, transparent 50%);
}
.scn-aunt-chloe-praises-george .desk {
  position: absolute; bottom: 16%; left: 20%; right: 20%; height: 5%;
  background: linear-gradient(180deg, #5a3a1e 0%, #2a1a0a 100%);
  border-radius: 4px;
  box-shadow: 0 2px 8px rgba(0,0,0,0.6);
}
.scn-aunt-chloe-praises-george .slate {
  position: absolute; bottom: 22%; left: 35%; width: 45px; height: 28px;
  background: #2a2a3a;
  border: 2px solid #7a5a3a;
  border-radius: 4px;
  animation: ac3-slate 10s ease-in-out infinite;
}
.scn-aunt-chloe-praises-george .pencil {
  position: absolute; bottom: 28%; left: 38%; width: 18px; height: 4px;
  background: linear-gradient(90deg, #b88a4a 0%, #7a5a2a 100%);
  border-radius: 2px;
  transform: rotate(25deg);
  transform-origin: left center;
  animation: ac3-pencil 8s ease-in-out infinite;
}
.scn-aunt-chloe-praises-george .figure-tom {
  position: absolute; bottom: 18%; left: 40%; width: 20px; height: 36px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1e1206 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: ac3-tom 14s ease-in-out infinite;
}
.scn-aunt-chloe-praises-george .figure-george {
  position: absolute; bottom: 22%; right: 28%; width: 14px; height: 30px;
  background: linear-gradient(180deg, #c8a86a 0%, #8a6a3a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: ac3-george 16s ease-in-out infinite;
}
.scn-aunt-chloe-praises-george .figure-aunt {
  position: absolute; bottom: 18%; left: 20%; width: 18px; height: 38px;
  background: linear-gradient(180deg, #5a3a22 0%, #2a1a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: ac3-aunt 12s ease-in-out infinite;
}
.scn-aunt-chloe-praises-george .glow {
  position: absolute; inset: 0;
  background: radial-gradient(ellipse at 60% 70%, rgba(200,120,60,0.2) 0%, transparent 60%);
  pointer-events: none;
  animation: ac3-glow 6s ease-in-out infinite alternate;
}
@keyframes ac3-slate {
  0%,100% { transform: translateX(0); }
  50% { transform: translateX(2px); }
}
@keyframes ac3-pencil {
  0%,100% { transform: rotate(25deg) translateY(0); }
  50% { transform: rotate(30deg) translateY(-2px); }
}
@keyframes ac3-tom {
  0%,100% { transform: translateY(0) rotate(0); }
  50% { transform: translateY(-2px) rotate(1deg); }
}
@keyframes ac3-george {
  0%,100% { transform: translateY(0) rotate(0); }
  50% { transform: translateY(-3px) rotate(-1deg); }
}
@keyframes ac3-aunt {
  0%,100% { transform: translateY(0) rotate(0); }
  50% { transform: translateY(-2px) rotate(1deg); }
}
@keyframes ac3-glow {
  0% { opacity: 0.4; }
  100% { opacity: 0.8; }
}

.scn-george-hungry-for-cake {
  background: 
    linear-gradient(180deg, #2a1e12 0%, #3d2a18 40%, #5a3a1e 100%),
    radial-gradient(ellipse at 50% 80%, #7a4a22 0%, transparent 70%);
}
.scn-george-hungry-for-cake .bg-fire {
  position: absolute; bottom: 8%; left: 2%; width: 35%; height: 30%;
  background: radial-gradient(ellipse at center, #d07030 0%, #b05020 40%, #2a1e12 70%);
  border-radius: 50%;
  filter: blur(8px);
  animation: gh4-fire 5s ease-in-out infinite alternate;
}
.scn-george-hungry-for-cake .skillet {
  position: absolute; bottom: 20%; left: 25%; width: 40px; height: 10px;
  background: linear-gradient(180deg, #4a3a2a 0%, #1a1008 100%);
  border-radius: 20px 20px 6px 6px;
  box-shadow: 0 4px 8px rgba(0,0,0,0.5);
  animation: gh4-skillet 3s ease-in-out infinite;
}
.scn-george-hungry-for-cake .cake {
  position: absolute; bottom: 22%; left: 28%; width: 30px; height: 8px;
  background: linear-gradient(180deg, #c8a86a 0%, #a07848 100%);
  border-radius: 4px;
  box-shadow: 0 2px 4px rgba(0,0,0,0.4);
  animation: gh4-cake 4s ease-in-out infinite;
}
.scn-george-hungry-for-cake .figure-aunt {
  position: absolute; bottom: 20%; left: 30%; width: 18px; height: 36px;
  background: linear-gradient(180deg, #5a3a22 0%, #2a1a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: gh4-aunt 6s ease-in-out infinite;
}
.scn-george-hungry-for-cake .figure-george {
  position: absolute; bottom: 22%; right: 28%; width: 14px; height: 28px;
  background: linear-gradient(180deg, #c8a86a 0%, #8a6a3a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: gh4-george 4s ease-in-out infinite;
}
.scn-george-hungry-for-cake .steam {
  position: absolute; bottom: 30%; left: 30%; width: 12px; height: 18px;
  background: radial-gradient(ellipse at center, rgba(255,220,180,0.4) 0%, transparent 70%);
  border-radius: 50%;
  filter: blur(4px);
  animation: gh4-steam 2s ease-in-out infinite;
}
.scn-george-hungry-for-cake .glow {
  position: absolute; inset: 0;
  background: radial-gradient(ellipse at 60% 70%, rgba(200,120,60,0.3) 0%, transparent 50%);
  pointer-events: none;
  animation: gh4-glow 5s ease-in-out infinite alternate;
}
@keyframes gh4-fire {
  0% { transform: scale(1) rotate(0); opacity: 0.8; }
  50% { transform: scale(1.08) rotate(2deg); opacity: 1; }
  100% { transform: scale(0.95) rotate(-2deg); opacity: 0.7; }
}
@keyframes gh4-skillet {
  0%,100% { transform: translateY(0); }
  50% { transform: translateY(-3px); }
}
@keyframes gh4-cake {
  0%,100% { transform: scale(1); }
  50% { transform: scale(0.95) translateY(1px); }
}
@keyframes gh4-aunt {
  0%,100% { transform: translateY(0) rotate(0); }
  50% { transform: translateY(-4px) rotate(2deg); }
}
@keyframes gh4-george {
  0%,100% { transform: translateY(0) rotate(0); }
  50% { transform: translateY(-6px) rotate(-3deg); }
}
@keyframes gh4-steam {
  0% { transform: translateY(0) scale(1); opacity: 0.6; }
  50% { transform: translateY(-10px) scale(1.2); opacity: 0.2; }
  100% { transform: translateY(0) scale(1); opacity: 0.6; }
}
@keyframes gh4-glow {
  0% { opacity: 0.5; }
  100% { opacity: 1; }
}

.scn-george-shelby-arrives {
  background: 
    linear-gradient(180deg, #87CEEB 0%, #f0e68c 50%, #d2b48c 100%),
    radial-gradient(ellipse at 50% 0%, #ffffff 0%, #87CEEB 60%, transparent 90%);
}
.scn-george-shelby-arrives .sun-sky {
  position: absolute; inset: 0 0 55% 0;
  background: linear-gradient(180deg, #ffebc8 0%, #87CEEB 40%, #b0c4de 70%);
  animation: gsa-sky 20s ease-in-out infinite alternate;
}
.scn-george-shelby-arrives .china-trees {
  position: absolute; bottom: 45%; left: 0; right: 0; height: 25%;
  background: linear-gradient(180deg, #7a9a4a 0%, #5a7a3a 50%, #3a5a2a 100%);
  border-radius: 30% 70% 50% 50% / 60% 80% 20% 40%;
  box-shadow: inset 0 10px 30px rgba(0,0,0,0.3);
  animation: gsa-trees 15s ease-in-out infinite;
}
.scn-george-shelby-arrives .wagon {
  position: absolute; bottom: 25%; left: 25%; width: 120px; height: 40px;
  background: linear-gradient(90deg, #8B4513 0%, #a0522d 40%, #8B4513 100%);
  border-radius: 10% 30% 0% 0% / 40% 60% 0% 0%;
  box-shadow: 2px 6px 12px rgba(0,0,0,0.5);
  animation: gsa-wagon 6s ease-in-out infinite;
}
.scn-george-shelby-arrives .horse {
  position: absolute; bottom: 23%; left: 15%; width: 60px; height: 50px;
  background: linear-gradient(180deg, #8B4513 0%, #6B3A1F 50%, #4A2710 100%);
  border-radius: 40% 60% 30% 50% / 50% 60% 30% 40%;
  transform-origin: bottom center;
  animation: gsa-horse 3s ease-in-out infinite alternate;
}
.scn-george-shelby-arrives .figure-wagon {
  position: absolute; bottom: 30%; left: 30%; width: 16px; height: 30px;
  background: linear-gradient(180deg, #c0c0c0 0%, #808080 50%, #404040 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: gsa-figure 4s ease-in-out infinite;
}
.scn-george-shelby-arrives .house-arrive {
  position: absolute; bottom: 20%; right: 15%; width: 90px; height: 70px;
  background: linear-gradient(180deg, #deb887 0%, #cd853f 50%, #8B4513 100%);
  border-radius: 6% 6% 4% 4%;
  box-shadow: 0 8px 16px rgba(0,0,0,0.4);
  animation: gsa-house 12s ease-in-out infinite alternate;
}
@keyframes gsa-sky { 0% { opacity: 0.8; } 50% { opacity: 1; } 100% { opacity: 0.7; } }
@keyframes gsa-trees { 0% { transform: translateX(0) scale(1); } 50% { transform: translateX(-5px) scale(1.02); } 100% { transform: translateX(0) scale(1); } }
@keyframes gsa-wagon { 0% { transform: translateX(0) rotate(0); } 25% { transform: translateX(2px) rotate(0.5deg); } 50% { transform: translateX(-1px) rotate(-0.3deg); } 75% { transform: translateX(3px) rotate(0.4deg); } 100% { transform: translateX(0) rotate(0); } }
@keyframes gsa-horse { 0% { transform: rotate(0) translateX(0); } 50% { transform: rotate(-2deg) translateX(1px); } 100% { transform: rotate(2deg) translateX(-1px); } }
@keyframes gsa-figure { 0% { transform: translateY(0) rotate(0); } 50% { transform: translateY(-2px) rotate(1deg); } 100% { transform: translateY(0) rotate(0); } }
@keyframes gsa-house { 0% { transform: scale(1) translateY(0); } 50% { transform: scale(1.01) translateY(-2px); } 100% { transform: scale(1) translateY(0); } }

.scn-letter-delayed {
  background: 
    linear-gradient(180deg, #3b2f2f 0%, #2a1f1f 50%, #1a1010 100%),
    radial-gradient(ellipse at 30% 60%, #4a3a3a 0%, transparent 70%);
}
.scn-letter-delayed .wall-dark {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, #2c2222 0%, #1a1212 100%);
  animation: lde-wall 10s ease-in-out infinite alternate;
}
.scn-letter-delayed .bed {
  position: absolute; bottom: 15%; left: 10%; right: 10%; height: 30%;
  background: linear-gradient(180deg, #5c4a3a 0%, #3a2a1a 100%);
  border-radius: 20% 20% 10% 10% / 30% 30% 5% 5%;
  box-shadow: inset 0 10px 30px rgba(0,0,0,0.6);
  animation: lde-bed 15s ease-in-out infinite;
}
.scn-letter-delayed .sick-figure {
  position: absolute; bottom: 18%; left: 35%; width: 40px; height: 60px;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 80%);
  border-radius: 50% 50% 40% 40% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: lde-sick 8s ease-in-out infinite alternate;
}
.scn-letter-delayed .letter-hand {
  position: absolute; bottom: 40%; right: 25%; width: 20px; height: 26px;
  background: radial-gradient(circle, #d2b48c 0%, #a08060 70%);
  border-radius: 30% 30% 20% 20%;
  box-shadow: 0 2px 8px rgba(0,0,0,0.4);
  animation: lde-letter 3s ease-in-out infinite alternate;
}
.scn-letter-delayed .lamp-glow {
  position: absolute; top: 30%; left: 50%; width: 40px; height: 50px;
  background: radial-gradient(circle, #ffd700 0%, #b8860b 60%, transparent 80%);
  border-radius: 50%;
  filter: blur(8px);
  animation: lde-lamp 4s ease-in-out infinite alternate;
}
.scn-letter-delayed .shadow-flicker {
  position: absolute; inset: 0;
  background: radial-gradient(ellipse at 50% 60%, rgba(0,0,0,0.3) 0%, transparent 70%);
  animation: lde-flicker 2s steps(4) infinite;
}
@keyframes lde-wall { 0% { opacity: 0.9; } 50% { opacity: 1; } 100% { opacity: 0.8; } }
@keyframes lde-bed { 0% { transform: translateY(0); } 50% { transform: translateY(-2px); } 100% { transform: translateY(0); } }
@keyframes lde-sick { 0% { transform: rotate(0) translateY(0); } 50% { transform: rotate(-2deg) translateY(1px); } 100% { transform: rotate(2deg) translateY(-1px); } }
@keyframes lde-letter { 0% { transform: translateX(0) rotate(0); } 50% { transform: translateX(3px) rotate(3deg); } 100% { transform: translateX(0) rotate(0); } }
@keyframes lde-lamp { 0% { opacity: 0.7; transform: scale(1); } 50% { opacity: 1; transform: scale(1.1); } 100% { opacity: 0.8; transform: scale(0.95); } }
@keyframes lde-flicker { 0%, 100% { opacity: 0.2; } 50% { opacity: 0.4; } }

.scn-shelby-affairs {
  background: 
    linear-gradient(180deg, #4a3a2a 0%, #3a2a1a 40%, #2a1a0a 100%),
    radial-gradient(ellipse at 50% 30%, #5a4a3a 0%, transparent 70%);
}
.scn-shelby-affairs .room-bg {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, #3d2d1d 0%, #1d0d00 100%);
  animation: saf-room 12s ease-in-out infinite alternate;
}
.scn-shelby-affairs .desk {
  position: absolute; bottom: 20%; left: 20%; right: 20%; height: 25%;
  background: linear-gradient(180deg, #6B4226 0%, #4a2e1a 100%);
  border-radius: 10% 10% 5% 5% / 20% 20% 5% 5%;
  box-shadow: inset 0 8px 20px rgba(0,0,0,0.5);
  animation: saf-desk 18s ease-in-out infinite;
}
.scn-shelby-affairs .papers {
  position: absolute; bottom: 35%; left: 35%; width: 40px; height: 30px;
  background: linear-gradient(180deg, #f5deb3 0%, #d2b48c 80%);
  border-radius: 5%;
  box-shadow: 1px 2px 4px rgba(0,0,0,0.3);
  animation: saf-papers 4s ease-in-out infinite alternate;
}
.scn-shelby-affairs .lamp-desk {
  position: absolute; bottom: 45%; left: 50%; width: 30px; height: 40px;
  background: radial-gradient(circle, #ffd700 0%, #b8860b 60%, transparent 80%);
  border-radius: 50% 50% 30% 30%;
  filter: blur(6px);
  animation: saf-lamp 5s ease-in-out infinite alternate;
}
.scn-shelby-affairs .figure-desk {
  position: absolute; bottom: 20%; left: 30%; width: 20px; height: 40px;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: saf-figure 6s ease-in-out infinite;
}
.scn-shelby-affairs .chair-shape {
  position: absolute; bottom: 18%; left: 45%; width: 30px; height: 50px;
  background: linear-gradient(180deg, #4a3020 0%, #2a1a10 100%);
  border-radius: 20% 20% 10% 10% / 30% 30% 10% 10%;
  box-shadow: 2px 4px 8px rgba(0,0,0,0.5);
  animation: saf-chair 10s ease-in-out infinite alternate;
}
@keyframes saf-room { 0% { opacity: 0.9; } 50% { opacity: 1; } 100% { opacity: 0.85; } }
@keyframes saf-desk { 0% { transform: translateY(0); } 50% { transform: translateY(-3px); } 100% { transform: translateY(0); } }
@keyframes saf-papers { 0% { transform: translateX(0) rotate(0); } 50% { transform: translateX(2px) rotate(2deg); } 100% { transform: translateX(-1px) rotate(-1deg); } }
@keyframes saf-lamp { 0% { opacity: 0.6; transform: scale(1); } 50% { opacity: 1; transform: scale(1.05); } 100% { opacity: 0.7; transform: scale(0.95); } }
@keyframes saf-figure { 0% { transform: translateY(0) rotate(0); } 25% { transform: translateY(-1px) rotate(1deg); } 50% { transform: translateY(1px) rotate(-1deg); } 75% { transform: translateY(-1px) rotate(0.5deg); } 100% { transform: translateY(0) rotate(0); } }
@keyframes saf-chair { 0% { transform: translateX(0); } 50% { transform: translateX(2px); } 100% { transform: translateX(-2px); } }

.scn-george-resolves-to-search {
  background: 
    linear-gradient(180deg, #2c2c3e 0%, #1a1a2e 50%, #0e0e1a 100%),
    radial-gradient(ellipse at 50% 80%, #3a3a5a 0%, transparent 70%);
}
.scn-george-resolves-to-search .room-shadow {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, #242436 0%, #121224 100%);
  animation: grs-room 15s ease-in-out infinite alternate;
}
.scn-george-resolves-to-search .window-frame {
  position: absolute; top: 10%; left: 10%; width: 40%; height: 60%;
  background: linear-gradient(180deg, #4a3a3a 0%, #2a1a1a 100%);
  border-radius: 5%;
  box-shadow: inset 0 0 20px rgba(0,0,0,0.6);
  animation: grs-window 12s ease-in-out infinite;
}
.scn-george-resolves-to-search .moon-glow {
  position: absolute; top: 18%; left: 20%; width: 40px; height: 40px;
  background: radial-gradient(circle, #e0e8ff 0%, #8899cc 60%, transparent 80%);
  border-radius: 50%;
  filter: blur(10px);
  animation: grs-moon 8s ease-in-out infinite alternate;
}
.scn-george-resolves-to-search .figure-standing {
  position: absolute; bottom: 15%; left: 35%; width: 22px; height: 50px;
  background: linear-gradient(180deg, #4a4a5a 0%, #2a2a3a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: grs-figure 5s ease-in-out infinite;
}
.scn-george-resolves-to-search .map-scroll {
  position: absolute; bottom: 25%; left: 55%; width: 30px; height: 20px;
  background: linear-gradient(180deg, #d2b48c 0%, #a08060 100%);
  border-radius: 10% 10% 5% 5%;
  box-shadow: 1px 3px 6px rgba(0,0,0,0.4);
  animation: grs-map 6s ease-in-out infinite alternate;
}
.scn-george-resolves-to-search .lantern-soft {
  position: absolute; bottom: 50%; left: 60%; width: 16px; height: 22px;
  background: radial-gradient(circle, #ffd700 0%, #b8860b 70%, transparent 90%);
  border-radius: 30% 30% 20% 20%;
  filter: blur(4px);
  animation: grs-lantern 4s ease-in-out infinite alternate;
}
@keyframes grs-room { 0% { opacity: 0.8; } 50% { opacity: 1; } 100% { opacity: 0.7; } }
@keyframes grs-window { 0% { transform: scale(1); } 50% { transform: scale(1.01); } 100% { transform: scale(1); } }
@keyframes grs-moon { 0% { opacity: 0.5; transform: translateY(0); } 50% { opacity: 0.8; transform: translateY(-3px); } 100% { opacity: 0.6; transform: translateY(0); } }
@keyframes grs-figure { 0% { transform: translateY(0) rotate(0); } 25% { transform: translateY(-2px) rotate(1deg); } 50% { transform: translateY(1px) rotate(-1deg); } 75% { transform: translateY(-1px) rotate(0.5deg); } 100% { transform: translateY(0) rotate(0); } }
@keyframes grs-map { 0% { transform: rotate(0) translateX(0); } 50% { transform: rotate(3deg) translateX(2px); } 100% { transform: rotate(-2deg) translateX(-1px); } }
@keyframes grs-lantern { 0% { opacity: 0.6; transform: scale(0.9); } 50% { opacity: 1; transform: scale(1.05); } 100% { opacity: 0.7; transform: scale(0.95); } }

.scn-shelly-sollioquy-on-debt {
  background:
    radial-gradient(ellipse 70% 60% at 50% 110%, #3a281a 0%, transparent 60%),
    linear-gradient(180deg, #1a1210 0%, #2a1e14 50%, #1f1510 100%);
}
.scn-shelly-sollioquy-on-debt .walls {
  position:absolute; inset:0; background: repeating-linear-gradient(0deg, transparent 0px, transparent 2px, rgba(0,0,0,0.15) 2px, rgba(0,0,0,0.15) 4px); opacity:0.3; animation: sd1-walls 30s linear infinite;
}
.scn-shelly-sollioquy-on-debt .chair {
  position:absolute; bottom:18%; left:20%; width:35%; height:40%; background: linear-gradient(135deg, #3a2a1a 0%, #2a1e12 100%); border-radius: 20% 20% 10% 10% / 30% 30% 20% 20%; box-shadow: 0 10px 20px rgba(0,0,0,0.7); transform: rotate(-2deg); animation: sd1-chair 8s ease-in-out infinite alternate;
}
.scn-shelly-sollioquy-on-debt .figure {
  position:absolute; bottom:22%; left:32%; width:12%; height:30%; background: linear-gradient(180deg, #2e2218 0%, #1a1210 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: sd1-figure 5s ease-in-out infinite;
}
.scn-shelly-sollioquy-on-debt .fireplace {
  position:absolute; bottom:25%; right:10%; width:20%; height:35%; background: linear-gradient(180deg, #4a3a28 0%, #2a1e14 100%); border-radius: 10% 10% 5% 5%; box-shadow: inset 0 -10px 15px rgba(0,0,0,0.6);
}
.scn-shelly-sollioquy-on-debt .fire-glow {
  position:absolute; bottom:30%; right:16%; width:8%; height:15%; background: radial-gradient(ellipse at 50% 100%, #ffa040 0%, #cc6020 50%, transparent 100%); border-radius:50%; filter: blur(6px); animation: sd1-fireglow 3s ease-in-out infinite alternate;
}
.scn-shelly-sollioquy-on-debt .shadow-pool {
  position:absolute; bottom:10%; left:15%; width:70%; height:15%; background: radial-gradient(ellipse at 50% 50%, rgba(0,0,0,0.7) 0%, transparent 100%); animation: sd1-pool 12s ease-in-out infinite alternate;
}
.scn-shelly-sollioquy-on-debt .coin1,
.scn-shelly-sollioquy-on-debt .coin2,
.scn-shelly-sollioquy-on-debt .coin3 {
  position:absolute; width:4%; height:4%; background: radial-gradient(circle, #d4a050 0%, #b08040 100%); border-radius:50%; box-shadow: 0 2px 4px rgba(0,0,0,0.5); animation: sd1-coin 4s ease-in-out infinite;
}
.scn-shelly-sollioquy-on-debt .coin1 { bottom:14%; left:45%; animation-delay:0s; }
.scn-shelly-sollioquy-on-debt .coin2 { bottom:12%; left:52%; animation-delay:-1.3s; }
.scn-shelly-sollioquy-on-debt .coin3 { bottom:16%; left:58%; animation-delay:-2.6s; }

@keyframes sd1-walls { 0%,100% { opacity:0.25 } 50% { opacity:0.4 } }
@keyframes sd1-chair { 0% { transform: rotate(-2deg) translateY(0); } 50% { transform: rotate(1deg) translateY(-2px); } 100% { transform: rotate(-2deg) translateY(0); } }
@keyframes sd1-figure { 0%,100% { transform: translateX(0) rotate(-1deg); } 25% { transform: translateX(-3px) rotate(0deg); } 50% { transform: translateX(0) rotate(1deg); } 75% { transform: translateX(-2px) rotate(0deg); } }
@keyframes sd1-fireglow { 0% { opacity:0.7; transform: scale(0.8); } 50% { opacity:1; transform: scale(1.1); } 100% { opacity:0.8; transform: scale(0.9); } }
@keyframes sd1-pool { 0% { transform: scaleX(1) translateX(0); } 50% { transform: scaleX(1.2) translateX(5px); } 100% { transform: scaleX(1) translateX(0); } }
@keyframes sd1-coin { 0%,100% { transform: translateY(0) rotate(0deg); opacity:0.6; } 25% { transform: translateY(-3px) rotate(10deg); opacity:1; } 50% { transform: translateY(1px) rotate(-5deg); opacity:0.8; } 75% { transform: translateY(-2px) rotate(8deg); opacity:0.9; } }

.scn-narrative-on-kentucky-slavery {
  background:
    radial-gradient(ellipse 70% 50% at 50% 100%, #3a2a1a 0%, transparent 70%),
    linear-gradient(180deg, #1e1612 0%, #2a2018 40%, #1f1712 100%);
}
.scn-narrative-on-kentucky-slavery .wall-mid {
  position:absolute; inset:0 0 30% 0; background: repeating-linear-gradient(0deg, transparent 0px, transparent 3px, rgba(255,255,255,0.03) 3px, rgba(255,255,255,0.03) 6px); animation: nk-wall 20s linear infinite;
}
.scn-narrative-on-kentucky-slavery .wall-dark {
  position:absolute; bottom:0; left:0; right:0; height:30%; background: linear-gradient(0deg, #0f0a08 0%, #1a1410 100%);
}
.scn-narrative-on-kentucky-slavery .window-frame {
  position:absolute; top:15%; left:10%; width:30%; height:40%; background: linear-gradient(135deg, #4a3a28 0%, #2a1e14 100%); border-radius: 8% 8% 4% 4%; box-shadow: inset 0 0 10px rgba(0,0,0,0.6);
}
.scn-narrative-on-kentucky-slavery .window-pane {
  position:absolute; top:18%; left:13%; width:24%; height:34%; background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%); border-radius: 4%; box-shadow: inset 0 0 20px rgba(0,0,0,0.3); animation: nk-pane 10s ease-in-out infinite alternate;
}
.scn-narrative-on-kentucky-slavery .field-outside {
  position:absolute; top:20%; left:14%; width:22%; height:30%; background: linear-gradient(180deg, #8a7a5a 0%, #6a5a3a 100%); border-radius: 2%; opacity:0.3; animation: nk-field 15s ease-in-out infinite alternate;
}
.scn-narrative-on-kentucky-slavery .figure-profile {
  position:absolute; bottom:25%; left:50%; width:15%; height:35%; background: linear-gradient(180deg, #1a1210 0%, #0f0a08 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform: translateX(-50%); animation: nk-profile 6s ease-in-out infinite;
}
.scn-narrative-on-kentucky-slavery .lamp {
  position:absolute; bottom:45%; right:20%; width:6%; height:8%; background: radial-gradient(circle, #ffcc60 0%, #b08040 100%); border-radius:50%; box-shadow: 0 0 20px 8px #b08040, 0 0 40px 15px rgba(176,128,64,0.4); animation: nk-lamp 4s ease-in-out infinite alternate;
}

@keyframes nk-wall { 0%,100% { opacity:0.1; } 50% { opacity:0.2; } }
@keyframes nk-pane { 0% { opacity:0.25; transform: scaleX(1); } 50% { opacity:0.4; transform: scaleX(0.95); } 100% { opacity:0.25; transform: scaleX(1); } }
@keyframes nk-field { 0% { opacity:0.2; } 50% { opacity:0.45; } 100% { opacity:0.2; } }
@keyframes nk-profile { 0%,100% { transform: translateX(-50%) translateY(0) rotate(1deg); } 25% { transform: translateX(-48%) translateY(-3px) rotate(-1deg); } 50% { transform: translateX(-50%) translateY(0) rotate(0deg); } 75% { transform: translateX(-52%) translateY(-2px) rotate(2deg); } }
@keyframes nk-lamp { 0% { transform: scale(0.9); opacity:0.8; box-shadow: 0 0 15px 6px #b08040; } 50% { transform: scale(1.1); opacity:1; box-shadow: 0 0 30px 12px #b08040; } 100% { transform: scale(0.9); opacity:0.8; box-shadow: 0 0 15px 6px #b08040; } }

.scn-shadow-of-law {
  background:
    radial-gradient(ellipse 60% 50% at 60% 110%, #2a1e14 0%, transparent 70%),
    linear-gradient(180deg, #161210 0%, #1e1612 50%, #12100e 100%);
}
.scn-shadow-of-law .shelf {
  position:absolute; top:8%; left:5%; right:5%; height:20%; background: linear-gradient(180deg, #3a2a1a 0%, #2a1e14 100%); border-radius: 4% 4% 0 0; box-shadow: 0 8px 15px rgba(0,0,0,0.6);
}
.scn-shadow-of-law .book1,
.scn-shadow-of-law .book2,
.scn-shadow-of-law .book3 {
  position:absolute; top:10%; background: linear-gradient(90deg, #5a3a2a 0%, #4a2a1a 100%); border-radius: 10% 10% 5% 5%; box-shadow: 0 2px 4px rgba(0,0,0,0.5); animation: sl-book 7s ease-in-out infinite;
}
.scn-shadow-of-law .book1 { left:12%; width:8%; height:14%; border-left: 2px solid #704a3a; }
.scn-shadow-of-law .book2 { left:22%; width:6%; height:16%; border-left: 2px solid #604030; animation-delay:-2.3s; }
.scn-shadow-of-law .book3 { left:30%; width:10%; height:12%; border-left: 2px solid #805a4a; animation-delay:-4.6s; }
.scn-shadow-of-law .desk {
  position:absolute; bottom:15%; left:10%; width:80%; height:25%; background: linear-gradient(180deg, #4a3a28 0%, #2a1e14 100%); border-radius: 4% 4% 0 0; box-shadow: 0 -5px 15px rgba(0,0,0,0.7);
}
.scn-shadow-of-law .scroll {
  position:absolute; bottom:18%; left:20%; width:40%; height:4%; background: linear-gradient(90deg, #c0a070 0%, #a08050 100%); border-radius: 20%; box-shadow: 0 2px 4px rgba(0,0,0,0.4); transform: rotate(2deg); animation: sl-scroll 10s ease-in-out infinite alternate;
}
.scn-shadow-of-law .hand {
  position:absolute; bottom:20%; left:45%; width:10%; height:20%; background: linear-gradient(180deg, #3a2a20 0%, #1a1210 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom left; animation: sl-hand 5s ease-in-out infinite;
}
.scn-shadow-of-law .candle {
  position:absolute; bottom:22%; right:22%; width:3%; height:12%; background: linear-gradient(180deg, #e0c080 0%, #c0a060 100%); border-radius: 20% 20% 10% 10%; box-shadow: 0 0 15px 8px #c0a060, 0 0 30px 15px rgba(192,160,96,0.4); animation: sl-candle 4s ease-in-out infinite alternate;
}

@keyframes sl-book { 0%,100% { transform: translateY(0) rotate(0deg); } 25% { transform: translateY(-2px) rotate(1deg); } 50% { transform: translateY(0) rotate(-1deg); } 75% { transform: translateY(-1px) rotate(0deg); } }
@keyframes sl-scroll { 0% { transform: rotate(2deg) scaleX(1); } 50% { transform: rotate(0deg) scaleX(0.95); } 100% { transform: rotate(2deg) scaleX(1); } }
@keyframes sl-hand { 0%,100% { transform: rotate(0deg) translateY(0); } 30% { transform: rotate(-3deg) translateY(-3px); } 60% { transform: rotate(2deg) translateY(-1px); } 90% { transform: rotate(-1deg) translateY(-2px); } }
@keyframes sl-candle { 0% { opacity:0.8; box-shadow: 0 0 10px 5px #c0a060; } 50% { opacity:1; box-shadow: 0 0 20px 10px #e0c080; } 100% { opacity:0.85; box-shadow: 0 0 12px 6px #c0a060; } }

.scn-shelby-financial-straits {
  background:
    radial-gradient(ellipse 50% 40% at 50% 100%, #2a1e14 0%, transparent 70%),
    linear-gradient(180deg, #1a1410 0%, #241c14 50%, #181210 100%);
}
.scn-shelby-financial-straits .floor {
  position:absolute; bottom:0; left:0; right:0; height:25%; background: linear-gradient(0deg, #0f0c0a 0%, #1a1410 100%); box-shadow: inset 0 8px 12px rgba(0,0,0,0.5);
}
.scn-shelby-financial-straits .desk-wide {
  position:absolute; bottom:5%; left:15%; width:70%; height:30%; background: linear-gradient(180deg, #4a3a28 0%, #2a1e14 100%); border-radius: 4% 4% 0 0; box-shadow: 0 -6px 12px rgba(0,0,0,0.6);
}
.scn-shelby-financial-straits .papers {
  position:absolute; bottom:8%; left:25%; width:50%; height:10%; background: linear-gradient(90deg, #c8b898 0%, #b0a080 50%, #a09070 100%); border-radius: 4%; box-shadow: 0 2px 6px rgba(0,0,0,0.3); animation: sf-papers 12s ease-in-out infinite alternate;
}
.scn-shelby-financial-straits .inkwell {
  position:absolute; bottom:12%; right:25%; width:5%; height:8%; background: linear-gradient(180deg, #3a2a1a 0%, #1a1210 100%); border-radius: 30% 30% 20% 20%; box-shadow: 0 0 8px 2px rgba(0,0,0,0.5); animation: sf-ink 6s ease-in-out infinite;
}
.scn-shelby-financial-straits .figure-seated {
  position:absolute; bottom:10%; left:20%; width:18%; height:45%; background: linear-gradient(180deg, #2a1e18 0%, #1a1210 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: sf-figure 5s ease-in-out infinite;
}
.scn-shelby-financial-straits .shadow-drop {
  position:absolute; bottom:0; left:15%; width:60%; height:10%; background: radial-gradient(ellipse at 50% 100%, rgba(0,0,0,0.8) 0%, transparent 100%); animation: sf-shadow 8s ease-in-out infinite alternate;
}
.scn-shelby-financial-straits .lantern-swung {
  position:absolute; top:15%; left:45%; width:6%; height:12%; background: radial-gradient(circle, #ffd060 0%, #b08040 100%); border-radius: 50%; box-shadow: 0 0 25px 12px #b08040, 0 0 50px 20px rgba(176,128,64,0.3); animation: sf-lantern 3s ease-in-out infinite alternate;
}

@keyframes sf-papers { 0% { transform: translateX(0) scaleY(1); } 50% { transform: translateX(-5px) scaleY(0.98); } 100% { transform: translateX(0) scaleY(1); } }
@keyframes sf-ink { 0%,100% { transform: translateY(0) rotate(0deg); } 25% { transform: translateY(-2px) rotate(2deg); } 50% { transform: translateY(0) rotate(-2deg); } 75% { transform: translateY(-1px) rotate(1deg); } }
@keyframes sf-figure { 0%,100% { transform: translateX(0) rotate(0deg); } 30% { transform: translateX(5px) rotate(-1deg); } 60% { transform: translateX(-3px) rotate(1deg); } 90% { transform: translateX(2px) rotate(0deg); } }
@keyframes sf-shadow { 0% { opacity:0.6; transform: scaleX(1); } 50% { opacity:0.9; transform: scaleX(1.1); } 100% { opacity:0.6; transform: scaleX(1); } }
@keyframes sf-lantern { 0% { transform: rotate(-5deg) scale(0.9); opacity:0.8; } 30% { transform: rotate(2deg) scale(1.1); opacity:1; } 60% { transform: rotate(-3deg) scale(0.95); opacity:0.9; } 100% { transform: rotate(5deg) scale(0.9); opacity:0.8; } }

.scn-george-tells-of-carlo {
  background:
    linear-gradient(180deg, #4a3828 0%, #2a1e12 40%, #1a1208 100%),
    radial-gradient(ellipse at 50% 70%, #6a5a3a 0%, transparent 60%);
}
.scn-george-tells-of-carlo .bg-wall {
  position: absolute; inset: 0 0 20% 0;
  background: linear-gradient(180deg, #5a4a2a 0%, #3a2a1a 100%);
  animation: gtc-wall 10s ease-in-out infinite alternate;
}
.scn-george-tells-of-carlo .window-frame {
  position: absolute; bottom: 35%; left: 25%; width: 80px; height: 100px;
  background: #2a1a0a;
  border: 4px solid #1a0e04;
  border-radius: 4px;
  box-shadow: inset 0 0 20px rgba(200,160,80,0.3);
  animation: gtc-frame 6s ease-in-out infinite;
}
.scn-george-tells-of-carlo .window-light {
  position: absolute; bottom: 37%; left: 27%; width: 64px; height: 80px;
  background: radial-gradient(circle, #e0c080 0%, #b09050 50%, transparent 80%);
  border-radius: 2px;
  animation: gtc-light 4s ease-in-out infinite alternate;
}
.scn-george-tells-of-carlo .figure-george {
  position: absolute; bottom: 19%; left: 42%; width: 28px; height: 50px;
  background: linear-gradient(180deg, #2a1e12 0%, #1a1208 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  transform-origin: bottom center;
  animation: gtc-george 5s ease-in-out infinite;
}
.scn-george-tells-of-carlo .figure-eliza {
  position: absolute; bottom: 20%; left: 52%; width: 24px; height: 46px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1e140c 100%);
  border-radius: 50% 40% 30% 35% / 60% 50% 30% 40%;
  transform-origin: bottom center;
  animation: gtc-eliza 6s ease-in-out infinite;
}
.scn-george-tells-of-carlo .dog-shadow {
  position: absolute; bottom: 16%; left: 35%; width: 20px; height: 12px;
  background: #1a1208;
  border-radius: 50% 30% 30% 50%;
  filter: blur(2px);
  animation: gtc-dog 8s ease-in-out infinite;
}
@keyframes gtc-wall { 0% { opacity: 0.8; } 50% { opacity: 1; } 100% { opacity: 0.85; } }
@keyframes gtc-frame { 0% { transform: translateY(0); } 50% { transform: translateY(-2px); } 100% { transform: translateY(0); } }
@keyframes gtc-light { 0% { opacity: 0.6; filter: brightness(0.8); } 50% { opacity: 1; filter: brightness(1.2); } 100% { opacity: 0.7; filter: brightness(0.9); } }
@keyframes gtc-george { 0% { transform: translateX(0) rotate(0deg); } 25% { transform: translateX(4px) rotate(2deg); } 50% { transform: translateX(0) rotate(-1deg); } 75% { transform: translateX(3px) rotate(1deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes gtc-eliza { 0% { transform: translateX(0) rotate(0deg); } 33% { transform: translateX(-3px) rotate(-2deg); } 66% { transform: translateX(2px) rotate(1deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes gtc-dog { 0% { transform: scale(1) translate(0,0); } 50% { transform: scale(0.95) translate(3px,-1px); } 100% { transform: scale(1) translate(0,0); } }

.scn-eliza-horrified-at-carlos-fate {
  background:
    linear-gradient(180deg, #3a3020 0%, #1e1810 40%, #0e0a06 100%),
    radial-gradient(ellipse at 30% 40%, #5a4a2a 0%, transparent 70%);
}
.scn-eliza-horrified-at-carlos-fate .bg-sky {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1e12 50%, transparent 100%);
  animation: ehf-sky 12s ease-in-out infinite alternate;
}
.scn-eliza-horrified-at-carlos-fate .hills {
  position: absolute; bottom: 30%; left: 0; right: 0; height: 25%;
  background: linear-gradient(180deg, #2a1e12 0%, #1a0e04 100%);
  border-radius: 50% 40% 0 0;
  box-shadow: inset 0 6px 12px rgba(0,0,0,0.6);
  animation: ehf-hills 18s ease-in-out infinite alternate;
}
.scn-eliza-horrified-at-carlos-fate .eliza-profile {
  position: absolute; bottom: 20%; left: 30%; width: 36px; height: 56px;
  background: linear-gradient(180deg, #1e1410 0%, #0a0604 100%);
  border-radius: 50% 30% 30% 40% / 60% 40% 40% 50%;
  transform-origin: bottom center;
  animation: ehf-profile 4s ease-in-out infinite;
}
.scn-eliza-horrified-at-carlos-fate .eliza-hand {
  position: absolute; bottom: 36%; left: 32%; width: 14px; height: 18px;
  background: #1e1410;
  border-radius: 50% 50% 40% 40%;
  transform-origin: bottom left;
  animation: ehf-hand 3s ease-in-out infinite;
}
.scn-eliza-horrified-at-carlos-fate .tear-drop {
  position: absolute; bottom: 22%; left: 40%; width: 4px; height: 8px;
  background: radial-gradient(circle, #8a7a5a 0%, transparent 100%);
  border-radius: 50%;
  filter: blur(1px);
  animation: ehf-tear 2s ease-in-out infinite;
}
.scn-eliza-horrified-at-carlos-fate .stone-shadow {
  position: absolute; bottom: 28%; left: 48%; width: 24px; height: 16px;
  background: #0e0804;
  border-radius: 40% 40% 30% 30%;
  opacity: 0.6;
  animation: ehf-stone 7s ease-in-out infinite;
}
@keyframes ehf-sky { 0% { opacity: 0.7; } 50% { opacity: 1; } 100% { opacity: 0.8; } }
@keyframes ehf-hills { 0% { transform: translateY(0); } 50% { transform: translateY(-2px); } 100% { transform: translateY(0); } }
@keyframes ehf-profile { 0% { transform: rotateY(0deg) translateX(0); } 25% { transform: rotateY(5deg) translateX(2px); } 50% { transform: rotateY(0deg) translateX(0); } 75% { transform: rotateY(-5deg) translateX(-2px); } 100% { transform: rotateY(0deg) translateX(0); } }
@keyframes ehf-hand { 0% { transform: translate(0,0) rotate(0deg); } 50% { transform: translate(2px,-3px) rotate(10deg); } 100% { transform: translate(0,0) rotate(0deg); } }
@keyframes ehf-tear { 0% { transform: translateY(0) scale(1); opacity: 1; } 50% { transform: translateY(6px) scale(0.8); opacity: 0.5; } 100% { transform: translateY(12px) scale(0.5); opacity: 0; } }
@keyframes ehf-stone { 0% { transform: translate(0,0); } 50% { transform: translate(2px,-1px); } 100% { transform: translate(0,0); } }

.scn-george-rejects-faith {
  background:
    linear-gradient(180deg, #1a1a0e 0%, #0e0e08 40%, #060604 100%),
    radial-gradient(ellipse at 50% 80%, #2a2a1a 0%, transparent 60%);
}
.scn-george-rejects-faith .bg-church {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #2a2a1a 0%, #1a1a0e 100%);
  clip-path: polygon(0 0, 100% 0, 90% 100%, 10% 100%);
  animation: grf-church 15s ease-in-out infinite alternate;
}
.scn-george-rejects-faith .cross-silhouette {
  position: absolute; bottom: 35%; left: 50%; width: 6px; height: 40px;
  background: #2a1e12;
  transform: translateX(-50%);
  border-radius: 1px;
  box-shadow: 0 0 10px rgba(60,40,20,0.5);
  animation: grf-cross 8s ease-in-out infinite;
}
.scn-george-rejects-faith .cross-silhouette::after {
  content: ''; position: absolute; top: -12px; left: -12px; width: 30px; height: 6px;
  background: #2a1e12; border-radius: 1px;
}
.scn-george-rejects-faith .figure-back {
  position: absolute; bottom: 12%; left: 38%; width: 30px; height: 56px;
  background: linear-gradient(180deg, #1a140e 0%, #0e0a06 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  transform-origin: bottom center;
  animation: grf-figure 5s ease-in-out infinite;
}
.scn-george-rejects-faith .light-ray {
  position: absolute; top: 10%; left: 20%; width: 60%; height: 50%;
  background: linear-gradient(180deg, rgba(180,160,100,0.15) 0%, transparent 100%);
  clip-path: polygon(0 0, 100% 0, 70% 100%, 30% 100%);
  animation: grf-ray 6s ease-in-out infinite alternate;
}
.scn-george-rejects-faith .floor-shadow {
  position: absolute; bottom: 0; left: 10%; right: 10%; height: 20%;
  background: linear-gradient(180deg, transparent 0%, #0a0804 100%);
  animation: grf-shadow 10s ease-in-out infinite alternate;
}
@keyframes grf-church { 0% { transform: scaleY(1); } 50% { transform: scaleY(1.02); } 100% { transform: scaleY(1); } }
@keyframes grf-cross { 0% { transform: translateX(-50%) rotate(0deg); } 50% { transform: translateX(-50%) rotate(3deg); } 100% { transform: translateX(-50%) rotate(0deg); } }
@keyframes grf-figure { 0% { transform: translateX(0) rotate(0deg); } 33% { transform: translateX(-4px) rotate(-5deg); } 66% { transform: translateX(2px) rotate(2deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes grf-ray { 0% { opacity: 0.2; } 50% { opacity: 0.5; } 100% { opacity: 0.3; } }
@keyframes grf-shadow { 0% { opacity: 0.6; } 50% { opacity: 0.8; } 100% { opacity: 0.6; } }

.scn-george-forced-to-take-mina {
  background:
    linear-gradient(180deg, #2a1e14 0%, #1a100a 40%, #0e0804 100%),
    radial-gradient(ellipse at 60% 50%, #3a2a1a 0%, transparent 60%);
}
.scn-george-forced-to-take-mina .bg-corner {
  position: absolute; inset: 0;
  background: linear-gradient(135deg, #1a120c 0%, #0e0a06 100%);
  clip-path: polygon(0 0, 100% 0, 100% 70%, 70% 100%, 0 100%);
  animation: gfm-corner 12s ease-in-out infinite alternate;
}
.scn-george-forced-to-take-mina .george-profile {
  position: absolute; bottom: 12%; left: 28%; width: 32px; height: 54px;
  background: linear-gradient(180deg, #1e140e 0%, #0e0804 100%);
  border-radius: 50% 30% 30% 40% / 60% 40% 40% 50%;
  transform-origin: bottom center;
  animation: gfm-george 5s ease-in-out infinite;
}
.scn-george-forced-to-take-mina .masters-arm {
  position: absolute; bottom: 40%; left: 42%; width: 20px; height: 32px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1e140e 100%);
  border-radius: 20% 20% 30% 30% / 40% 40% 30% 30%;
  transform-origin: top left;
  animation: gfm-arm 4s ease-in-out infinite;
}
.scn-george-forced-to-take-mina .chain-link {
  position: absolute; bottom: 22%; left: 34%; width: 8px; height: 12px;
  background: #4a3a2a;
  border-radius: 30%;
  box-shadow: 0 0 4px rgba(0,0,0,0.5);
  animation: gfm-chain 3s ease-in-out infinite;
}
.scn-george-forced-to-take-mina .shadow-fall {
  position: absolute; bottom: 0; left: 20%; right: 20%; height: 30%;
  background: linear-gradient(180deg, transparent 0%, #0a0604 100%);
  animation: gfm-shadow 8s ease-in-out infinite alternate;
}
@keyframes gfm-corner { 0% { opacity: 0.8; } 50% { opacity: 1; } 100% { opacity: 0.85; } }
@keyframes gfm-george { 0% { transform: translateX(0) rotate(0deg); } 25% { transform: translateX(4px) rotate(-3deg); } 50% { transform: translateX(-2px) rotate(2deg); } 75% { transform: translateX(3px) rotate(-1deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes gfm-arm { 0% { transform: rotate(0deg) translate(0,0); } 50% { transform: rotate(15deg) translate(2px,-2px); } 100% { transform: rotate(0deg) translate(0,0); } }
@keyframes gfm-chain { 0% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(3px) rotate(10deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes gfm-shadow { 0% { opacity: 0.5; } 50% { opacity: 0.7; } 100% { opacity: 0.5; } }

.scn-george-bitter-reunion {
  background:
    linear-gradient(180deg, #f5e6d0 0%, #d4b896 100%),
    radial-gradient(ellipse at 30% 60%, #f0d8b4 0%, transparent 60%);
}
.scn-george-bitter-reunion .bg-wall {
  position: absolute; inset: 0 0 35% 0;
  background: linear-gradient(180deg, #e8d4b8 0%, #cca88a 100%);
  animation: gbr-wall 10s ease-in-out infinite alternate;
}
.scn-george-bitter-reunion .bg-floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 35%;
  background: linear-gradient(180deg, #8b6f4a 0%, #5a4528 100%);
  border-radius: 30% 0 0 0 / 10% 0 0 0;
}
.scn-george-bitter-reunion .window-frame {
  position: absolute; top: 12%; left: 60%; width: 100px; height: 130px;
  background: #b8956a;
  border: 6px solid #7a5c3a;
  border-radius: 4px;
  box-shadow: inset 0 0 20px rgba(255,200,120,0.3);
}
.scn-george-bitter-reunion .window-light {
  position: absolute; top: 14%; left: 62%; width: 80px; height: 110px;
  background: linear-gradient(135deg, #ffe8b0 0%, #fff0d0 100%);
  opacity: 0.5;
  animation: gbr-window-light 6s ease-in-out infinite alternate;
}
.scn-george-bitter-reunion .chair {
  position: absolute; bottom: 28%; left: 20%; width: 40px; height: 60px;
  background: #6b4f2c;
  border-radius: 4px;
  box-shadow: 0 4px 8px rgba(0,0,0,0.3);
  transform: rotate(-2deg);
}
.scn-george-bitter-reunion .woman-sewing {
  position: absolute; bottom: 32%; left: 18%; width: 30px; height: 50px;
  background: linear-gradient(180deg, #a07850 0%, #7a5a38 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: gbr-sew 4s ease-in-out infinite;
}
.scn-george-bitter-reunion .man-standing {
  position: absolute; bottom: 30%; left: 45%; width: 28px; height: 55px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a1008 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%;
  animation: gbr-man 5s ease-in-out infinite alternate;
}
.scn-george-bitter-reunion .child-shy {
  position: absolute; bottom: 35%; left: 52%; width: 20px; height: 30px;
  background: linear-gradient(180deg, #b08050 0%, #8a6030 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%;
  animation: gbr-child 3s ease-in-out infinite;
}

@keyframes gbr-wall { 0% { opacity: 0.9; } 50% { opacity: 1; } 100% { opacity: 0.85; } }
@keyframes gbr-window-light { 0% { opacity: 0.3; transform: scale(1); } 50% { opacity: 0.6; transform: scale(1.02); } 100% { opacity: 0.4; transform: scale(0.98); } }
@keyframes gbr-sew { 0% { transform: translateY(0) rotate(-1deg); } 25% { transform: translateY(-1px) rotate(1deg); } 50% { transform: translateY(0) rotate(-1deg); } 75% { transform: translateY(-1px) rotate(1deg); } 100% { transform: translateY(0) rotate(0); } }
@keyframes gbr-man { 0% { transform: translateX(0) rotate(-2deg); } 50% { transform: translateX(3px) rotate(2deg); } 100% { transform: translateX(0) rotate(1deg); } }
@keyframes gbr-child { 0% { transform: translateX(0) scale(1); } 50% { transform: translateX(2px) scale(0.95); } 100% { transform: translateX(-1px) scale(1); } }

.scn-george-expresses-despair {
  background:
    linear-gradient(180deg, #c9b89a 0%, #a88a6a 100%),
    radial-gradient(ellipse at 40% 50%, #d4bfa0 0%, transparent 70%);
}
.scn-george-expresses-despair .bg-room {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, #d4c4aa 0%, #b09570 100%);
  animation: ged-room 12s ease-in-out infinite alternate;
}
.scn-george-expresses-despair .shadow-corner {
  position: absolute; bottom: 0; right: 0; width: 50%; height: 60%;
  background: radial-gradient(ellipse at 100% 100%, rgba(0,0,0,0.3) 0%, transparent 70%);
  animation: ged-shadow 8s ease-in-out infinite alternate;
}
.scn-george-expresses-despair .table {
  position: absolute; bottom: 25%; left: 30%; width: 80px; height: 50px;
  background: #7a5c3a;
  border-radius: 4px;
  box-shadow: 0 6px 12px rgba(0,0,0,0.4);
}
.scn-george-expresses-despair .candle-holder {
  position: absolute; bottom: 38%; left: 35%; width: 10px; height: 20px;
  background: #8a6a4a;
  border-radius: 2px;
}
.scn-george-expresses-despair .candle-flame {
  position: absolute; bottom: 44%; left: 35%; width: 8px; height: 12px;
  background: radial-gradient(circle, #ffd060 0%, #ffa030 70%);
  border-radius: 50% 50% 30% 30%;
  box-shadow: 0 0 20px 6px #ffa030, 0 0 30px 12px rgba(255,160,48,0.5);
  animation: ged-flame 2s ease-in-out infinite alternate;
}
.scn-george-expresses-despair .woman-sobbing {
  position: absolute; bottom: 30%; left: 28%; width: 30px; height: 50px;
  background: linear-gradient(180deg, #a07850 0%, #7a5a38 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: ged-woman 4s ease-in-out infinite;
}
.scn-george-expresses-despair .man-embracing {
  position: absolute; bottom: 30%; left: 38%; width: 32px; height: 55px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a1008 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%;
  animation: ged-man 5s ease-in-out infinite alternate;
}
.scn-george-expresses-despair .tear-drop {
  position: absolute; bottom: 42%; left: 32%; width: 4px; height: 8px;
  background: radial-gradient(circle, #b0d0f0 0%, transparent 80%);
  border-radius: 50%;
  animation: ged-tear 3s ease-in-out infinite;
}

@keyframes ged-room { 0% { filter: brightness(0.9); } 50% { filter: brightness(1); } 100% { filter: brightness(0.95); } }
@keyframes ged-shadow { 0% { opacity: 0.4; } 50% { opacity: 0.6; } 100% { opacity: 0.3; } }
@keyframes ged-flame { 0% { transform: translateY(0) scale(1) rotate(-3deg); } 50% { transform: translateY(-2px) scale(1.1) rotate(3deg); } 100% { transform: translateY(0) scale(0.95) rotate(-1deg); } }
@keyframes ged-woman { 0% { transform: translateX(0) translateY(0) rotate(-2deg); } 25% { transform: translateX(1px) translateY(-1px) rotate(1deg); } 50% { transform: translateX(0) translateY(0) rotate(-1deg); } 75% { transform: translateX(-1px) translateY(-1px) rotate(2deg); } 100% { transform: translateX(0) translateY(0) rotate(0); } }
@keyframes ged-man { 0% { transform: translateX(0) scale(1); } 50% { transform: translateX(-2px) scale(1.02); } 100% { transform: translateX(0) scale(0.98); } }
@keyframes ged-tear { 0% { opacity: 0; transform: translateY(0); } 50% { opacity: 0.8; transform: translateY(5px); } 100% { opacity: 0; transform: translateY(10px); } }

.scn-george-gazes-at-son {
  background:
    linear-gradient(180deg, #ecdcc0 0%, #c4a882 100%),
    radial-gradient(ellipse at 50% 70%, #f0d8b4 0%, transparent 60%);
}
.scn-george-gazes-at-son .bg-cabin {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, #decaac 0%, #bca07a 100%);
  animation: ggs-bg 15s ease-in-out infinite alternate;
}
.scn-george-gazes-at-son .light-beam {
  position: absolute; top: 10%; left: 30%; width: 120px; height: 200px;
  background: linear-gradient(180deg, rgba(255,240,200,0.3) 0%, transparent 100%);
  transform: rotate(-20deg);
  animation: ggs-beam 8s ease-in-out infinite alternate;
}
.scn-george-gazes-at-son .father-torso {
  position: absolute; bottom: 15%; left: 25%; width: 60px; height: 100px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a1008 100%);
  border-radius: 30% 30% 20% 20% / 40% 40% 30% 30%;
  animation: ggs-father 6s ease-in-out infinite;
}
.scn-george-gazes-at-son .child-on-knee {
  position: absolute; bottom: 30%; left: 35%; width: 40px; height: 50px;
  background: linear-gradient(180deg, #b08050 0%, #8a6030 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%;
  animation: ggs-child 4s ease-in-out infinite alternate;
}
.scn-george-gazes-at-son .father-arm {
  position: absolute; bottom: 25%; left: 35%; width: 30px; height: 10px;
  background: #2a1a0a;
  border-radius: 20%;
  transform: rotate(-30deg);
  animation: ggs-arm 5s ease-in-out infinite;
}
.scn-george-gazes-at-son .child-curls {
  position: absolute; bottom: 42%; left: 40%; width: 14px; height: 14px;
  background: radial-gradient(circle at 40% 40%, #5a3a1a 0%, #3a2010 100%);
  border-radius: 50%;
  box-shadow: 12px 2px 0 -2px #4a2a12, 8px -4px 0 -2px #4a2a12;
  animation: ggs-curls 3s ease-in-out infinite alternate;
}
.scn-george-gazes-at-son .sparkle-eyes {
  position: absolute; bottom: 40%; left: 42%; width: 4px; height: 4px;
  background: radial-gradient(circle, #ffe080 0%, transparent 70%);
  border-radius: 50%;
  box-shadow: 4px 0 0 1px #ffe080;
  animation: ggs-sparkle 2s ease-in-out infinite alternate;
}

@keyframes ggs-bg { 0% { filter: brightness(0.95); } 50% { filter: brightness(1); } 100% { filter: brightness(0.9); } }
@keyframes ggs-beam { 0% { opacity: 0.2; transform: rotate(-20deg) translateX(0); } 50% { opacity: 0.4; transform: rotate(-15deg) translateX(5px); } 100% { opacity: 0.3; transform: rotate(-25deg) translateX(-3px); } }
@keyframes ggs-father { 0% { transform: translateY(0) rotate(-1deg); } 50% { transform: translateY(-2px) rotate(1deg); } 100% { transform: translateY(0) rotate(0); } }
@keyframes ggs-child { 0% { transform: translateX(0) scale(1) rotate(0); } 50% { transform: translateX(2px) scale(0.98) rotate(3deg); } 100% { transform: translateX(0) scale(1) rotate(-1deg); } }
@keyframes ggs-arm { 0% { transform: rotate(-30deg); } 50% { transform: rotate(-25deg); } 100% { transform: rotate(-35deg); } }
@keyframes ggs-curls { 0% { transform: translateY(0) rotate(0); } 50% { transform: translateY(-1px) rotate(5deg); } 100% { transform: translateY(0) rotate(-3deg); } }
@keyframes ggs-sparkle { 0% { opacity: 0.6; transform: scale(1); } 50% { opacity: 1; transform: scale(1.3); } 100% { opacity: 0.8; transform: scale(0.9); } }

.scn-eliza-pleads-for-patience {
  background:
    linear-gradient(180deg, #f5dcc0 0%, #d4b080 100%),
    radial-gradient(ellipse at 50% 40%, #fae0c0 0%, transparent 60%);
}
.scn-eliza-pleads-for-patience .bg-hearth {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, #e8c8a0 0%, #c09060 100%);
  animation: epp-bg 8s ease-in-out infinite alternate;
}
.scn-eliza-pleads-for-patience .mantel {
  position: absolute; bottom: 35%; left: 10%; width: 80%; height: 15px;
  background: #6b4f2c;
  border-radius: 2px;
  box-shadow: 0 -4px 8px rgba(0,0,0,0.2);
}
.scn-eliza-pleads-for-patience .fire-glow {
  position: absolute; bottom: 25%; left: 20%; width: 100px; height: 80px;
  background: radial-gradient(ellipse at 50% 100%, #ffa040 0%, #ff6000 40%, transparent 70%);
  opacity: 0.6;
  animation: epp-fire 3s ease-in-out infinite alternate;
}
.scn-eliza-pleads-for-patience .eliza-hand {
  position: absolute; bottom: 40%; left: 30%; width: 20px; height: 28px;
  background: linear-gradient(180deg, #a07850 0%, #7a5a38 100%);
  border-radius: 40% 40% 20% 20% / 50% 50% 30% 30%;
  transform: rotate(20deg);
  animation: epp-hand 4s ease-in-out infinite;
}
.scn-eliza-pleads-for-patience .george-silhouette {
  position: absolute; bottom: 30%; left: 45%; width: 40px; height: 70px;
  background: linear-gradient(180deg, #1a1008 0%, #0a0604 100%);
  border-radius: 30% 30% 20% 20% / 40% 40% 30% 30%;
  animation: epp-george 5s ease-in-out infinite alternate;
}
.scn-eliza-pleads-for-patience .tension-lines {
  position: absolute; bottom: 50%; left: 40%; width: 60px; height: 2px;
  background: linear-gradient(90deg, transparent, #5a3a2a 30%, #5a3a2a 70%, transparent);
  animation: epp-lines 2s ease-in-out infinite;
}
.scn-eliza-pleads-for-patience .shadow-warp {
  position: absolute; bottom: 20%; left: 0; width: 100%; height: 30%;
  background: linear-gradient(180deg, transparent 0%, rgba(0,0,0,0.2) 100%);
  animation: epp-shadow 7s ease-in-out infinite alternate;
}

@keyframes epp-bg { 0% { filter: brightness(1); } 50% { filter: brightness(1.05); } 100% { filter: brightness(0.95); } }
@keyframes epp-fire { 0% { opacity: 0.4; transform: scaleY(1); } 50% { opacity: 0.7; transform: scaleY(1.1); } 100% { opacity: 0.5; transform: scaleY(0.9); } }
@keyframes epp-hand { 0% { transform: rotate(20deg) translateX(0); } 25% { transform: rotate(25deg) translateX(2px); } 50% { transform: rotate(18deg) translateX(-1px); } 75% { transform: rotate(22deg) translateX(1px); } 100% { transform: rotate(20deg) translateX(0); } }
@keyframes epp-george { 0% { transform: translateX(0) rotate(-1deg); } 50% { transform: translateX(3px) rotate(2deg); } 100% { transform: translateX(0) rotate(-1deg); } }
@keyframes epp-lines { 0% { opacity: 0.2; transform: scaleX(1); } 50% { opacity: 0.6; transform: scaleX(1.2); } 100% { opacity: 0.3; transform: scaleX(0.8); } }
@keyframes epp-shadow { 0% { opacity: 0.3; } 50% { opacity: 0.5; } 100% { opacity: 0.2; } }

/* --- george-meets-legree --- */
.scn-george-meets-legree {
  background: linear-gradient(180deg, #c8a26e 0%, #8c6b44 50%, #5a3e28 100%),
              radial-gradient(ellipse at 70% 30%, #e8d4a8 0%, transparent 60%);
}
.scn-george-meets-legree .wall { position:absolute; inset:0 0 20% 0; background: linear-gradient(180deg, #b88c5e 0%, #7a5536 100%); }
.scn-george-meets-legree .window { position:absolute; top:10%; left:15%; width:80px; height:100px; background: radial-gradient(circle at 50% 50%, #fff8e6 0%, #d4b882 70%); border-radius:4px; box-shadow:0 0 40px 20px rgba(255,248,230,.3); animation:gml-window 8s ease-in-out infinite alternate; }
.scn-george-meets-legree .table { position:absolute; bottom:22%; left:50%; width:120px; height:12px; transform:translateX(-50%); background: linear-gradient(180deg, #5a3e28 0%, #3a2618 100%); border-radius:4px; box-shadow:0 4px 8px rgba(0,0,0,.3); }
.scn-george-meets-legree .figure-george { position:absolute; bottom:20%; left:35%; width:30px; height:70px; background: linear-gradient(180deg, #4a3520 0%, #2a1a0e 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin:bottom center; animation:gml-george 6s ease-in-out infinite; }
.scn-george-meets-legree .figure-legree { position:absolute; bottom:20%; right:35%; width:32px; height:68px; background: linear-gradient(180deg, #3a2a1a 0%, #1a0e08 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin:bottom center; animation:gml-legree 6s ease-in-out infinite reverse; }
.scn-george-meets-legree .dust-mote { position:absolute; width:4px; height:4px; background:rgba(255,248,230,.6); border-radius:50%; filter:blur(2px); }
.scn-george-meets-legree .mote1 { top:25%; left:10%; animation:gml-drift 12s linear infinite; }
.scn-george-meets-legree .mote2 { top:15%; right:20%; animation:gml-drift 18s linear infinite reverse; }
.scn-george-meets-legree .shadow { position:absolute; bottom:20%; left:20%; right:20%; height:10px; background:rgba(0,0,0,.2); border-radius:50%; filter:blur(4px); animation:gml-shadow 6s ease-in-out infinite; }
@keyframes gml-window { 0% { opacity:.8; transform:scaleY(1) } 50% { opacity:1; transform:scaleY(1.02) } 100% { opacity:.9; transform:scaleY(.98) } }
@keyframes gml-george { 0% { transform:translateX(0) rotate(0) } 25% { transform:translateX(5px) rotate(2deg) } 50% { transform:translateX(0) rotate(0) } 75% { transform:translateX(-5px) rotate(-2deg) } 100% { transform:translateX(0) rotate(0) } }
@keyframes gml-legree { 0% { transform:translateX(0) rotate(0) } 25% { transform:translateX(-3px) rotate(-1deg) } 50% { transform:translateX(0) rotate(0) } 75% { transform:translateX(3px) rotate(1deg) } 100% { transform:translateX(0) rotate(0) } }
@keyframes gml-drift { 0% { transform:translateY(0) translateX(0); opacity:0 } 10% { opacity:1 } 90% { opacity:1 } 100% { transform:translateY(-60px) translateX(40px); opacity:0 } }
@keyframes gml-shadow { 0% { transform:scaleX(1); opacity:.2 } 50% { transform:scaleX(1.05); opacity:.3 } 100% { transform:scaleX(.95); opacity:.15 } }

/* --- legree-admits-beating --- */
.scn-legree-admits-beating {
  background: linear-gradient(180deg, #87aebb 0%, #c7c7a0 30%, #d4b87a 60%, #9c7a50 100%),
              radial-gradient(ellipse at 30% 0%, #fff8d0 0%, transparent 70%);
}
.scn-legree-admits-beating .sky { position:absolute; inset:0 0 55% 0; background: linear-gradient(180deg, #a8c4d0 0%, #d4d4b0 100%); }
.scn-legree-admits-beating .ground { position:absolute; bottom:0; left:0; right:0; height:55%; background: linear-gradient(180deg, #9c7a50 0%, #6a4e30 100%); }
.scn-legree-admits-beating .shed { position:absolute; bottom:30%; left:10%; width:100px; height:80px; background: linear-gradient(180deg, #6a4e30 0%, #3a2a18 100%); border-radius:4px 4px 0 0; box-shadow:0 0 20px rgba(0,0,0,.4); }
.scn-legree-admits-beating .figure-george { position:absolute; bottom:30%; left:25%; width:28px; height:65px; background: linear-gradient(180deg, #4a3520 0%, #2a1a0e 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin:bottom center; animation:lab-george 4s ease-in-out infinite; }
.scn-legree-admits-beating .figure-legree { position:absolute; bottom:35%; right:20%; width:30px; height:64px; background: linear-gradient(180deg, #3a2a1a 0%, #1a0e08 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin:bottom center; animation:lab-legree 4s ease-in-out infinite reverse; }
.scn-legree-admits-beating .boy { position:absolute; bottom:20%; left:45%; width:20px; height:40px; background: linear-gradient(180deg, #8a6a4a 0%, #5a3a20 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform:rotate(-10deg); animation:lab-boy 3s ease-in-out infinite; }
.scn-legree-admits-beating .dust { position:absolute; bottom:0; left:0; right:0; height:20%; background: radial-gradient(ellipse at 50% 100%, rgba(154,122,80,.4) 0%, transparent 70%); animation:lab-dust 8s ease-in-out infinite alternate; }
@keyframes lab-george { 0% { transform:translateX(0) rotate(0) } 25% { transform:translateX(8px) rotate(3deg) } 50% { transform:translateX(0) rotate(0) } 75% { transform:translateX(-8px) rotate(-3deg) } 100% { transform:translateX(0) rotate(0) } }
@keyframes lab-legree { 0% { transform:translateX(0) rotate(0) } 25% { transform:translateX(-5px) rotate(-2deg) } 50% { transform:translateX(0) rotate(0) } 75% { transform:translateX(5px) rotate(2deg) } 100% { transform:translateX(0) rotate(0) } }
@keyframes lab-boy { 0% { transform:rotate(-10deg) translateY(0) } 50% { transform:rotate(-8deg) translateY(-2px) } 100% { transform:rotate(-12deg) translateY(0) } }
@keyframes lab-dust { 0% { opacity:.3; transform:scaleY(1) } 50% { opacity:.6; transform:scaleY(1.2) } 100% { opacity:.2; transform:scaleY(.9) } }

/* --- tom-in-shed --- */
.scn-tom-in-shed {
  background: linear-gradient(180deg, #2a2018 0%, #1a1410 40%, #3a2820 100%),
              radial-gradient(ellipse at 50% 80%, #5a3a28 0%, transparent 70%);
}
.scn-tom-in-shed .wall { position:absolute; inset:0 10% 0 10%; background: linear-gradient(180deg, #3a2820 0%, #1a1410 100%); border-radius:10px; box-shadow:inset 0 0 30px rgba(0,0,0,.5); }
.scn-tom-in-shed .straw { position:absolute; bottom:10%; left:15%; right:15%; height:20%; background: radial-gradient(ellipse at 50% 50%, #8a7a5a 0%, #4a3a28 70%); border-radius:50%; filter:blur(6px); animation:tis-straw 10s ease-in-out infinite alternate; }
.scn-tom-in-shed .figure-tom { position:absolute; bottom:15%; left:35%; width:28px; height:60px; background: linear-gradient(180deg, #4a3a28 0%, #2a1a12 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform:rotate(-5deg); animation:tis-tom 6s ease-in-out infinite; }
.scn-tom-in-shed .figure-cassy { position:absolute; bottom:20%; right:30%; width:26px; height:55px; background: linear-gradient(180deg, #5a4a38 0%, #3a2a1a 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform:rotate(3deg); animation:tis-cassy 8s ease-in-out infinite; }
.scn-tom-in-shed .lantern { position:absolute; top:30%; left:45%; width:12px; height:18px; background: radial-gradient(circle, #c8a050 0%, #8a6020 80%); border-radius:4px; box-shadow:0 0 30px 10px rgba(200,160,80,.6); animation:tis-lantern 4s ease-in-out infinite alternate; }
.scn-tom-in-shed .halo { position:absolute; top:35%; left:50%; width:80px; height:80px; transform:translate(-50%,-50%); background: radial-gradient(circle, rgba(200,160,80,.3) 0%, transparent 70%); border-radius:50%; animation:tis-halo 6s ease-in-out infinite; }
@keyframes tis-straw { 0% { opacity:.6; transform:scaleY(1) } 50% { opacity:.8; transform:scaleY(1.05) } 100% { opacity:.5; transform:scaleY(.95) } }
@keyframes tis-tom { 0% { transform:rotate(-5deg) translateY(0) } 50% { transform:rotate(-3deg) translateY(-1px) } 100% { transform:rotate(-7deg) translateY(0) } }
@keyframes tis-cassy { 0% { transform:rotate(3deg) translateY(0) } 50% { transform:rotate(5deg) translateY(-2px) } 100% { transform:rotate(1deg) translateY(0) } }
@keyframes tis-lantern { 0% { box-shadow:0 0 20px 8px rgba(200,160,80,.4); opacity:.8 } 50% { box-shadow:0 0 40px 15px rgba(200,160,80,.7); opacity:1 } 100% { box-shadow:0 0 25px 10px rgba(200,160,80,.35); opacity:.85 } }
@keyframes tis-halo { 0% { opacity:.2; transform:translate(-50%,-50%) scale(.9) } 50% { opacity:.4; transform:translate(-50%,-50%) scale(1.1) } 100% { opacity:.15; transform:translate(-50%,-50%) scale(.8) } }

/* --- george-finds-tom --- */
.scn-george-finds-tom {
  background: linear-gradient(180deg, #1a1410 0%, #2a1c14 50%, #1a0e0a 100%),
              radial-gradient(ellipse at 40% 70%, #3a2a1e 0%, transparent 70%);
}
.scn-george-finds-tom .wall { position:absolute; inset:0 5% 0 5%; background: linear-gradient(180deg, #2a1c14 0%, #1a0e0a 100%); border-radius:8px; box-shadow:inset 0 0 40px rgba(0,0,0,.6); }
.scn-george-finds-tom .floor { position:absolute; bottom:0; left:5%; right:5%; height:15%; background: linear-gradient(180deg, #4a3a28 0%, #2a1c14 100%); border-radius:0 0 8px 8px; box-shadow:inset 0 8px 12px rgba(0,0,0,.4); }
.scn-george-finds-tom .figure-tom { position:absolute; bottom:10%; left:35%; width:28px; height:58px; background: linear-gradient(180deg, #4a3a28 0%, #2a1a12 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform:rotate(-8deg); animation:gft-tom 8s ease-in-out infinite; }
.scn-george-finds-tom .figure-george { position:absolute; bottom:12%; left:50%; width:30px; height:65px; background: linear-gradient(180deg, #4a3520 0%, #2a1a0e 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform:rotate(5deg); animation:gft-george 8s ease-in-out infinite reverse; }
.scn-george-finds-tom .light { position:absolute; top:20%; left:20%; width:20px; height:20px; background: radial-gradient(circle, #c8a050 0%, #8a6020 80%); border-radius:50%; box-shadow:0 0 50px 25px rgba(200,160,80,.3); animation:gft-light 5s ease-in-out infinite alternate; }
.scn-george-finds-tom .dust { position:absolute; bottom:0; left:0; right:0; height:30%; background: radial-gradient(ellipse at 50% 100%, rgba(200,160,80,.1) 0%, transparent 70%); animation:gft-dust 12s ease-in-out infinite alternate; }
@keyframes gft-tom { 0% { transform:rotate(-8deg) translateY(0) } 50% { transform:rotate(-6deg) translateY(-2px) } 100% { transform:rotate(-10deg) translateY(0) } }
@keyframes gft-george { 0% { transform:rotate(5deg) translateY(0) } 50% { transform:rotate(3deg) translateY(-3px) } 100% { transform:rotate(7deg) translateY(0) } }
@keyframes gft-light { 0% { opacity:.6; box-shadow:0 0 30px 15px rgba(200,160,80,.2) } 50% { opacity:1; box-shadow:0 0 60px 30px rgba(200,160,80,.4) } 100% { opacity:.5; box-shadow:0 0 40px 20px rgba(200,160,80,.15) } }
@keyframes gft-dust { 0% { opacity:.1; transform:scaleY(1) } 50% { opacity:.3; transform:scaleY(1.1) } 100% { opacity:.05; transform:scaleY(.9) } }

.scn-tom-no-mail {
  background: linear-gradient(180deg, #1c2333 0%, #2c3a4a 50%, #3a4b5e 100%),
              radial-gradient(ellipse at 70% 30%, #f0d080 0%, transparent 60%);
}
.scn-tom-no-mail .room-wall { position:absolute; inset:0 0 0 0; background: linear-gradient(180deg, #2a3344 0%, #1a2233 100%); }
.scn-tom-no-mail .window-out { position:absolute; top:8%; left:60%; width:28%; height:42%; background: radial-gradient(ellipse at 50% 50%, #ffe080 0%, #c0a050 70%, #806030 100%); border-radius:8%; box-shadow: inset 0 0 40px rgba(255,224,128,0.3); animation: tnm-window 6s ease-in-out infinite alternate; }
.scn-tom-no-mail .window-glass { position:absolute; top:10%; left:62%; width:24%; height:38%; background: rgba(255,224,128,0.08); border:2px solid #554433; border-radius:6%; box-shadow: 0 0 30px rgba(255,224,128,0.1); animation: tnm-glass 4s ease-in-out infinite; }
.scn-tom-no-mail .desk { position:absolute; bottom:15%; left:20%; width:60%; height:12%; background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%); border-radius:4%; box-shadow: 0 -4px 12px rgba(0,0,0,0.4); }
.scn-tom-no-mail .figure-seated { position:absolute; bottom:22%; left:35%; width:18%; height:40%; background: linear-gradient(180deg, #2a2a3a 0%, #151525 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: tnm-figure 10s ease-in-out infinite; }
.scn-tom-no-mail .letter-blank { position:absolute; bottom:20%; left:30%; width:12%; height:8%; background: #e8dcc8; border-radius:2%; box-shadow: 0 2px 6px rgba(0,0,0,0.3); animation: tnm-letter 12s ease-in-out infinite alternate; }
.scn-tom-no-mail .inkwell { position:absolute; bottom:25%; left:45%; width:3%; height:4%; background: #1a1a2a; border-radius:50%; box-shadow: 0 0 8px rgba(255,224,128,0.2); animation: tnm-ink 8s ease-in-out infinite; }
@keyframes tnm-window { 0% { opacity:0.6; transform:scaleY(1); } 50% { opacity:1; transform:scaleY(1.02); } 100% { opacity:0.7; transform:scaleY(0.98); } }
@keyframes tnm-glass { 0% { opacity:0.06; } 50% { opacity:0.12; } 100% { opacity:0.06; } }
@keyframes tnm-figure { 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 tnm-letter { 0% { opacity:0.7; transform:translateY(0); } 50% { opacity:0.9; transform:translateY(-2px); } 100% { opacity:0.6; transform:translateY(0); } }
@keyframes tnm-ink { 0% { transform:scale(1); } 50% { transform:scale(1.1); } 100% { transform:scale(0.95); } }

.scn-tom-reads-comfort {
  background: linear-gradient(180deg, #f5e6d0 0%, #dcc8a8 40%, #b8a080 100%),
              radial-gradient(ellipse at 30% 30%, #fff0d8 0%, transparent 70%);
}
.scn-tom-reads-comfort .sunbeam-light { position:absolute; top:0; left:20%; width:40%; height:100%; background: linear-gradient(135deg, rgba(255,245,200,0.4) 0%, rgba(255,245,200,0) 100%); animation: trc-beam 8s ease-in-out infinite alternate; }
.scn-tom-reads-comfort .chair-back { position:absolute; bottom:20%; left:30%; width:30%; height:50%; background: linear-gradient(180deg, #7a5a3a 0%, #5a3a1a 100%); border-radius: 20% 20% 10% 10% / 40% 40% 10% 10%; box-shadow: inset 0 8px 20px rgba(0,0,0,0.2); }
.scn-tom-reads-comfort .figure-reading { position:absolute; bottom:22%; left:35%; width:20%; height:40%; background: linear-gradient(180deg, #3a2a1a 0%, #1a1008 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: trc-figure 12s ease-in-out infinite; }
.scn-tom-reads-comfort .book-open { position:absolute; bottom:32%; left:42%; width:14%; height:12%; background: #f0e0c0; border-radius: 4% 4% 8% 8% / 10% 10% 20% 20%; transform: rotate(10deg); box-shadow: 0 4px 10px rgba(0,0,0,0.3); animation: trc-book 6s ease-in-out infinite alternate; }
.scn-tom-reads-comfort .book-page { position:absolute; bottom:34%; left:44%; width:8%; height:8%; background: #fff5e0; border-radius: 4%; transform: rotate(10deg); box-shadow: 0 2px 4px rgba(0,0,0,0.1); }
.scn-tom-reads-comfort .glow-text { position:absolute; bottom:35%; left:45%; width:4%; height:4%; background: radial-gradient(circle, #ffe080 0%, transparent 80%); animation: trc-glow 4s ease-in-out infinite; }
@keyframes trc-beam { 0% { opacity:0.7; transform:skewX(-5deg); } 50% { opacity:1; transform:skewX(5deg); } 100% { opacity:0.6; transform:skewX(-3deg); } }
@keyframes trc-figure { 0% { transform: translateY(0) rotate(0deg); } 25% { transform: translateY(-3px) rotate(1deg); } 50% { transform: translateY(0) rotate(0deg); } 75% { transform: translateY(-1px) rotate(-1deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes trc-book { 0% { transform:rotate(8deg) translateY(0); } 50% { transform:rotate(12deg) translateY(-2px); } 100% { transform:rotate(8deg) translateY(0); } }
@keyframes trc-glow { 0% { transform:scale(1); opacity:0.5; } 50% { transform:scale(2); opacity:0.8; } 100% { transform:scale(1); opacity:0.6; } }

.scn-garden-henrique-eva {
  background: linear-gradient(180deg, #b0c8e0 0%, #d4e4f0 40%, #c0d8c0 100%),
              radial-gradient(ellipse at 80% 20%, #fff0c0 0%, transparent 50%);
}
.scn-garden-henrique-eva .garden-sky { position:absolute; inset:0 0 40% 0; background: linear-gradient(180deg, #c0d8f0 0%, #d8e0f0 100%); }
.scn-garden-henrique-eva .garden-path { position:absolute; bottom:30%; left:10%; width:80%; height:10%; background: linear-gradient(180deg, #b0a080 0%, #8a7a60 100%); border-radius: 50% 50% 0 0 / 100% 100% 0 0; }
.scn-garden-henrique-eva .tree-trunk { position:absolute; bottom:30%; left:15%; width:8%; height:40%; background: linear-gradient(180deg, #6a4a3a 0%, #3a2a1a 100%); border-radius: 10%; box-shadow: inset 0 4px 8px rgba(0,0,0,0.3); animation: ghe-tree 12s ease-in-out infinite alternate; }
.scn-garden-henrique-eva .figure-henrique { position:absolute; bottom:32%; left:45%; width:16%; height:44%; background: linear-gradient(180deg, #2a3a2a 0%, #1a2a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: ghe-henrique 5s ease-in-out infinite; }
.scn-garden-henrique-eva .figure-eva { position:absolute; bottom:34%; left:60%; width:14%; height:38%; background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: ghe-eva 5s ease-in-out infinite reverse; }
.scn-garden-henrique-eva .shadow-ground { position:absolute; bottom:25%; left:40%; width:30%; height:6%; background: rgba(0,0,0,0.2); border-radius: 50%; filter: blur(4px); animation: ghe-shadow 8s ease-in-out infinite; }
@keyframes ghe-tree { 0% { transform:scaleX(1); } 50% { transform:scaleX(1.03); } 100% { transform:scaleX(0.97); } }
@keyframes ghe-henrique { 0% { transform: translateX(0) rotate(0deg); } 30% { transform: translateX(-4px) rotate(-3deg); } 60% { transform: translateX(0) rotate(0deg); } 100% { transform: translateX(2px) rotate(2deg); } }
@keyframes ghe-eva { 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 ghe-shadow { 0% { transform:scaleX(1); opacity:0.3; } 50% { transform:scaleX(1.2); opacity:0.5; } 100% { transform:scaleX(0.9); opacity:0.3; } }

.scn-saddle-mounting-thanks {
  background: linear-gradient(180deg, #f0d8a0 0%, #e0c888 30%, #c0a060 100%),
              radial-gradient(ellipse at 50% 100%, #ffd080 0%, transparent 70%);
}
.scn-saddle-mounting-thanks .horizon-sky { position:absolute; inset:0 0 45% 0; background: linear-gradient(180deg, #ffe0a0 0%, #f0c880 100%); animation: smt-sky 10s ease-in-out infinite alternate; }
.scn-saddle-mounting-thanks .ground-grass { position:absolute; bottom:0; left:0; right:0; height:45%; background: linear-gradient(180deg, #8a7a3a 0%, #5a4a1a 100%); border-radius: 30% 30% 0 0 / 20% 20% 0 0; }
.scn-saddle-mounting-thanks .horse-body { position:absolute; bottom:25%; left:20%; width:35%; height:35%; background: linear-gradient(180deg, #6a4a2a 0%, #3a2a1a 100%); border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%; box-shadow: 0 6px 12px rgba(0,0,0,0.3); animation: smt-horse 8s ease-in-out infinite; }
.scn-saddle-mounting-thanks .rider-eva { position:absolute; bottom:38%; left:30%; width:12%; height:20%; background: linear-gradient(180deg, #5a3a3a 0%, #3a1a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: smt-rider 8s ease-in-out infinite; }
.scn-saddle-mounting-thanks .helper-henrique { position:absolute; bottom:25%; left:55%; width:14%; height:40%; background: linear-gradient(180deg, #3a4a3a 0%, #1a2a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: smt-henrique 6s ease-in-out infinite; }
.scn-saddle-mounting-thanks .figure-dodo { position:absolute; bottom:28%; left:8%; width:12%; height:34%; background: linear-gradient(180deg, #2a2a3a 0%, #0a0a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: smt-dodo 7s ease-in-out infinite; }
.scn-saddle-mounting-thanks .saddle-strap { position:absolute; bottom:30%; left:28%; width:10%; height:4%; background: #4a2a1a; border-radius: 20%; transform: rotate(-20deg); box-shadow: 0 2px 4px rgba(0,0,0,0.3); animation: smt-strap 8s ease-in-out infinite alternate; }
@keyframes smt-sky { 0% { opacity:0.8; } 50% { opacity:1; } 100% { opacity:0.85; } }
@keyframes smt-horse { 0% { transform:translateY(0) scaleX(1); } 30% { transform:translateY(-2px) scaleX(1.02); } 60% { transform:translateY(0) scaleX(1); } 100% { transform:translateY(-1px) scaleX(0.98); } }
@keyframes smt-rider { 0% { transform:translateX(0) rotate(0deg); } 25% { transform:translateX(1px) rotate(2deg); } 50% { transform:translateX(0) rotate(0deg); } 75% { transform:translateX(-1px) rotate(-2deg); } 100% { transform:translateX(0) rotate(0deg); } }
@keyframes smt-henrique { 0% { transform:translateX(0) rotate(0deg) scaleY(1); } 30% { transform:translateX(3px) rotate(2deg) scaleY(1.02); } 60% { transform:translateX(0) rotate(0deg) scaleY(1); } 100% { transform:translateX(-2px) rotate(-1deg) scaleY(0.98); } }
@keyframes smt-dodo { 0% { transform:translateX(0) rotate(0deg); } 40% { transform:translateX(2px) rotate(1deg); } 70% { transform:translateX(0) rotate(0deg); } 100% { transform:translateX(-1px) rotate(-1deg); } }
@keyframes smt-strap { 0% { transform:rotate(-18deg); } 50% { transform:rotate(-22deg); } 100% { transform:rotate(-18deg); } }

/* Scene 1: item-quaker-bonnet */
.scn-item-quaker-bonnet {
  background:
    linear-gradient(180deg, #fff8e7 0%, #f5e6c8 50%, #d4c4a0 100%),
    radial-gradient(ellipse at 50% 60%, #fff4d6 0%, transparent 60%);
}
.scn-item-quaker-bonnet .wall {
  position: absolute; inset: 0; background: linear-gradient(135deg, #f0e0c0 0%, #e8d0a8 100%);
  animation: iqb-wall 12s ease-in-out infinite alternate;
}
.scn-item-quaker-bonnet .mirror {
  position: absolute; bottom: 30%; left: 50%; width: 100px; height: 140px;
  transform: translateX(-50%); background: linear-gradient(180deg, #c8b898 0%, #a89880 100%);
  border-radius: 8px 8px 4px 4px; box-shadow: inset 0 0 20px rgba(0,0,0,0.2), 0 4px 12px rgba(0,0,0,0.3);
  animation: iqb-mirror 6s ease-in-out infinite;
}
.scn-item-quaker-bonnet .figure {
  position: absolute; bottom: 28%; left: 50%; width: 40px; height: 100px;
  transform: translateX(-50%); background: linear-gradient(180deg, #c8a878 0%, #a88868 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: iqb-figure 4s ease-in-out infinite;
}
.scn-item-quaker-bonnet .bonnet {
  position: absolute; bottom: 48%; left: 48%; width: 30px; height: 16px;
  background: radial-gradient(ellipse 80% 100%, #e8d0a8 0%, #d0b888 100%);
  border-radius: 50% 50% 40% 40%;
  animation: iqb-bonnet 3s ease-in-out infinite alternate;
}
.scn-item-quaker-bonnet .comb {
  position: absolute; bottom: 38%; left: 44%; width: 8px; height: 30px;
  background: linear-gradient(180deg, #a08060 0%, #806040 100%);
  border-radius: 4px;
  animation: iqb-comb 2.5s ease-in-out infinite;
}
.scn-item-quaker-bonnet .hair-curl {
  position: absolute; bottom: 42%; left: 46%; width: 20px; height: 10px;
  background: radial-gradient(circle, #c09858 0%, #a08048 100%);
  border-radius: 50%;
  animation: iqb-curl 3s ease-in-out infinite alternate;
}
.scn-item-quaker-bonnet .glow {
  position: absolute; bottom: 32%; left: 48%; width: 40px; height: 40px;
  background: radial-gradient(circle, rgba(255,235,200,0.4) 0%, transparent 70%);
  border-radius: 50%; filter: blur(10px);
  animation: iqb-glow 5s ease-in-out infinite alternate;
}
@keyframes iqb-wall { 0% { opacity: 0.9; } 50% { opacity: 1; } 100% { opacity: 0.85; } }
@keyframes iqb-mirror { 0% { transform: translateX(-50%) scale(1); } 50% { transform: translateX(-50%) scale(1.02); } 100% { transform: translateX(-50%) scale(0.98); } }
@keyframes iqb-figure { 0% { transform: translateX(-50%) rotate(0deg); } 25% { transform: translateX(-48%) rotate(-2deg); } 50% { transform: translateX(-52%) rotate(2deg); } 75% { transform: translateX(-50%) rotate(-1deg); } 100% { transform: translateX(-50%) rotate(0deg); } }
@keyframes iqb-bonnet { 0% { transform: translate(0, 0) rotate(-5deg); } 100% { transform: translate(4px, -2px) rotate(5deg); } }
@keyframes iqb-comb { 0%,100% { transform: translate(0,0) rotate(0deg); } 50% { transform: translate(2px, -3px) rotate(8deg); } }
@keyframes iqb-curl { 0% { transform: scale(1) rotate(0deg); } 100% { transform: scale(1.2) rotate(15deg); } }
@keyframes iqb-glow { 0% { opacity: 0.3; } 100% { opacity: 0.8; } }

/* Scene 2: ruth-meets-eliza */
.scn-ruth-meets-eliza {
  background:
    linear-gradient(180deg, #fdf4e3 0%, #f0e0c0 50%, #d8c8a0 100%),
    radial-gradient(ellipse at 50% 70%, #fce8d0 0%, transparent 50%);
}
.scn-ruth-meets-eliza .room-bg {
  position: absolute; inset: 0;
  background: linear-gradient(135deg, #f8ecd8 0%, #e8d8b8 100%);
  animation: rme-bg 15s ease-in-out infinite alternate;
}
.scn-ruth-meets-eliza .window {
  position: absolute; top: 15%; left: 20%; width: 80px; height: 100px;
  background: linear-gradient(180deg, #d0e8f0 0%, #b0d0e0 100%);
  border-radius: 4px; box-shadow: inset 0 0 12px rgba(255,255,255,0.6), 0 2px 8px rgba(0,0,0,0.1);
  animation: rme-window 8s ease-in-out infinite;
}
.scn-ruth-meets-eliza .eliza {
  position: absolute; bottom: 25%; left: 38%; width: 36px; height: 90px;
  background: linear-gradient(180deg, #d0a878 0%, #b08868 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: rme-eliza 5s ease-in-out infinite;
}
.scn-ruth-meets-eliza .ruth {
  position: absolute; bottom: 25%; right: 38%; width: 36px; height: 90px;
  background: linear-gradient(180deg, #c89868 0%, #a88058 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: rme-ruth 5s ease-in-out infinite reverse;
}
.scn-ruth-meets-eliza .child {
  position: absolute; bottom: 20%; left: 48%; width: 24px; height: 50px;
  background: linear-gradient(180deg, #e8d0b0 0%, #c8b098 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: rme-child 4s ease-in-out infinite;
}
.scn-ruth-meets-eliza .cake {
  position: absolute; bottom: 30%; left: 48%; width: 20px; height: 12px;
  background: radial-gradient(ellipse 100% 80%, #f0d090 0%, #d0a860 100%);
  border-radius: 4px;
  animation: rme-cake 6s ease-in-out infinite alternate;
}
.scn-ruth-meets-eliza .handshake {
  position: absolute; bottom: 35%; left: 46%; width: 16px; height: 16px;
  background: transparent; border: 2px solid #d0b090; border-radius: 50%;
  animation: rme-handshake 2s ease-in-out infinite;
}
@keyframes rme-bg { 0% { opacity: 0.9; } 50% { opacity: 1; } 100% { opacity: 0.95; } }
@keyframes rme-window { 0% { transform: scale(1); } 50% { transform: scale(1.03); } 100% { transform: scale(0.98); } }
@keyframes rme-eliza { 0% { transform: translate(0,0) rotate(0deg); } 25% { transform: translate(2px, -1px) rotate(2deg); } 50% { transform: translate(-2px, 1px) rotate(-2deg); } 75% { transform: translate(1px, 0) rotate(1deg); } 100% { transform: translate(0,0) rotate(0deg); } }
@keyframes rme-ruth { 0% { transform: translate(0,0) rotate(0deg); } 25% { transform: translate(-2px, -1px) rotate(-2deg); } 50% { transform: translate(2px, 1px) rotate(2deg); } 75% { transform: translate(-1px, 0) rotate(-1deg); } 100% { transform: translate(0,0) rotate(0deg); } }
@keyframes rme-child { 0%,100% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-3px) rotate(3deg); } }
@keyframes rme-cake { 0% { transform: translate(0,0) scale(1); } 100% { transform: translate(2px, -1px) scale(1.1); } }
@keyframes rme-handshake { 0%,100% { transform: translate(0,0) scale(1); opacity: 0.6; } 50% { transform: translate(0, -2px) scale(1.2); opacity: 1; } }

/* Scene 3: mary-baby */
.scn-mary-baby {
  background:
    linear-gradient(180deg, #fdf2e8 0%, #f0e0c8 50%, #d8c8a8 100%),
    radial-gradient(ellipse at 50% 60%, #fce8d8 0%, transparent 60%);
}
.scn-mary-baby .room {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, #f8ecd8 0%, #e8d8b8 100%);
  animation: mb-room 14s ease-in-out infinite alternate;
}
.scn-mary-baby .chair {
  position: absolute; bottom: 20%; left: 50%; width: 70px; height: 50px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #b09878 0%, #907858 100%);
  border-radius: 20% 20% 8% 8%;
  animation: mb-chair 7s ease-in-out infinite;
}
.scn-mary-baby .mary {
  position: absolute; bottom: 24%; left: 46%; width: 34px; height: 80px;
  background: linear-gradient(180deg, #d0a880 0%, #b88868 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: mb-mary 5s ease-in-out infinite;
}
.scn-mary-baby .baby {
  position: absolute; bottom: 28%; left: 44%; width: 28px; height: 40px;
  background: linear-gradient(180deg, #f0d8c0 0%, #d0b8a0 100%);
  border-radius: 50% 50% 40% 40%;
  animation: mb-baby 4s ease-in-out infinite;
}
.scn-mary-baby .hood {
  position: absolute; bottom: 48%; left: 42%; width: 30px; height: 10px;
  background: radial-gradient(ellipse 100% 80%, #88a0c0 0%, #6080a0 100%);
  border-radius: 50% 50% 30% 30%;
  animation: mb-hood 3s ease-in-out infinite alternate;
}
.scn-mary-baby .layers {
  position: absolute; bottom: 32%; left: 42%; width: 20px; height: 20px;
  background: linear-gradient(180deg, #f0d8c0 0%, #e0c8a8 100%);
  border-radius: 4px;
  animation: mb-layers 5s ease-in-out infinite alternate;
}
.scn-mary-baby .blanket {
  position: absolute; bottom: 26%; left: 40%; width: 40px; height: 24px;
  background: linear-gradient(180deg, #d0b898 0%, #b89878 100%);
  border-radius: 8px;
  animation: mb-blanket 6s ease-in-out infinite;
}
@keyframes mb-room { 0% { opacity: 0.9; } 50% { opacity: 1; } 100% { opacity: 0.92; } }
@keyframes mb-chair { 0% { transform: translateX(-50%) scale(1); } 50% { transform: translateX(-50%) scale(1.02); } 100% { transform: translateX(-50%) scale(0.98); } }
@keyframes mb-mary { 0% { transform: translate(0,0) rotate(0deg); } 25% { transform: translate(1px, -2px) rotate(2deg); } 50% { transform: translate(-1px, 0) rotate(-1deg); } 75% { transform: translate(2px, -1px) rotate(1deg); } 100% { transform: translate(0,0) rotate(0deg); } }
@keyframes mb-baby { 0%,100% { transform: translate(0,0) rotate(0deg); } 50% { transform: translate(0, -2px) rotate(4deg); } }
@keyframes mb-hood { 0% { transform: translate(0,0) rotate(-5deg); } 100% { transform: translate(3px, -2px) rotate(5deg); } }
@keyframes mb-layers { 0% { transform: scale(1); opacity: 0.7; } 100% { transform: scale(1.1); opacity: 1; } }
@keyframes mb-blanket { 0% { transform: translate(0,0) scale(1); } 50% { transform: translate(2px, -1px) scale(1.05); } 100% { transform: translate(-2px, 0) scale(0.95); } }

/* Scene 4: baby-thoughts */
.scn-baby-thoughts {
  background:
    linear-gradient(180deg, #fff8ec 0%, #f5e8d0 50%, #e0d0b0 100%),
    radial-gradient(ellipse at 50% 40%, #ffe8d0 0%, transparent 60%);
}
.scn-baby-thoughts .nursery {
  position: absolute; inset: 0;
  background: linear-gradient(135deg, #f8ecd8 0%, #e8d8b8 100%);
  animation: bt-nursery 16s ease-in-out infinite alternate;
}
.scn-baby-thoughts .mother {
  position: absolute; bottom: 22%; left: 44%; width: 36px; height: 90px;
  background: linear-gradient(180deg, #d0a878 0%, #b08868 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: bt-mother 6s ease-in-out infinite;
}
.scn-baby-thoughts .baby {
  position: absolute; bottom: 25%; left: 48%; width: 30px; height: 40px;
  background: linear-gradient(180deg, #f0d8c0 0%, #d0b8a0 100%);
  border-radius: 50% 50% 40% 40%;
  animation: bt-baby 4s ease-in-out infinite;
}
.scn-baby-thoughts .thumb {
  position: absolute; bottom: 45%; left: 46%; width: 8px; height: 10px;
  background: radial-gradient(circle, #f0d0b0 0%, #d0b098 100%);
  border-radius: 40%;
  animation: bt-thumb 3s ease-in-out infinite alternate;
}
.scn-baby-thoughts .knitting {
  position: absolute; bottom: 30%; left: 38%; width: 40px; height: 30px;
  background: linear-gradient(180deg, #c8b098 0%, #a89078 100%);
  border-radius: 8px;
  animation: bt-knitting 5s ease-in-out infinite;
}
.scn-baby-thoughts .yarn-ball {
  position: absolute; bottom: 26%; left: 36%; width: 12px; height: 12px;
  background: radial-gradient(circle, #e0c8b0 0%, #c0a890 100%);
  border-radius: 50%;
  animation: bt-yarn 4s ease-in-out infinite alternate;
}
.scn-baby-thoughts .thought-bubble {
  position: absolute; top: 30%; left: 48%; width: 40px; height: 30px;
  background: radial-gradient(ellipse 100% 80%, rgba(255,255,255,0.5) 0%, transparent 70%);
  border-radius: 50%;
  filter: blur(4px);
  animation: bt-bubble 7s ease-in-out infinite alternate;
}
@keyframes bt-nursery { 0% { opacity: 0.9; } 50% { opacity: 1; } 100% { opacity: 0.93; } }
@keyframes bt-mother { 0% { transform: translate(0,0) rotate(0deg); } 25% { transform: translate(1px, -2px) rotate(2deg); } 50% { transform: translate(-1px, 0) rotate(-1deg); } 75% { transform: translate(2px, -1px) rotate(1deg); } 100% { transform: translate(0,0) rotate(0deg); } }
@keyframes bt-baby { 0%,100% { transform: translate(0,0) rotate(0deg); } 50% { transform: translate(0, -2px) rotate(3deg); } }
@keyframes bt-thumb { 0% { transform: translate(0,0) scale(1); } 100% { transform: translate(0, -1px) scale(1.2); } }
@keyframes bt-knitting { 0% { transform: translate(0,0) rotate(0deg); } 50% { transform: translate(1px, -1px) rotate(5deg); } 100% { transform: translate(-1px, 0) rotate(-3deg); } }
@keyframes bt-yarn { 0% { transform: translate(0,0) scale(1); } 100% { transform: translate(2px, -1px) scale(1.1); } }
@keyframes bt-bubble { 0% { transform: scale(0.8); opacity: 0.3; } 100% { transform: scale(1.2); opacity: 0.6; } }

/* eliza-anxious-talk – calm bright interior */
.scn-eliza-anxious-talk {
  background: 
    linear-gradient(180deg, #f9f3e6 0%, #e6d5b8 40%, #c9b89a 100%),
    radial-gradient(ellipse at 50% 0%, #fff9e8 0%, transparent 70%);
}
.scn-eliza-anxious-talk .wall { position:absolute; inset:0 0 35% 0; background:linear-gradient(90deg, #e0d0b8 0%, #d8c8a8 50%, #e0d0b8 100%); }
.scn-eliza-anxious-talk .floor { position:absolute; bottom:0; left:0; right:0; height:35%; background:linear-gradient(180deg, #b8a080 0%, #8a7058 100%); border-radius: 0 0 4% 4%; }
.scn-eliza-anxious-talk .window { position:absolute; top:12%; left:50%; width:22%; height:30%; transform:translateX(-50%); background:radial-gradient(ellipse at 50% 50%, #d0e8ff 0%, #a0c8f0 70%, #8098b8 100%); border-radius:4% 4% 8% 8%; border:4px solid #6a5a4a; box-shadow: inset 0 0 30px rgba(255,255,255,.3); animation: el1-window 6s ease-in-out infinite alternate; }
.scn-eliza-anxious-talk .table { position:absolute; bottom:30%; left:25%; width:40%; height:10%; background:linear-gradient(180deg, #8a7050 0%, #6a5040 100%); border-radius:6% 6% 0 0; box-shadow: 0 4px 10px rgba(0,0,0,.2); }
.scn-eliza-anxious-talk .bowl-peaches { position:absolute; bottom:36%; left:42%; width:14%; height:14%; background:radial-gradient(circle at 40% 30%, #f0c088 0%, #d09050 70%, #a06030 100%); border-radius:50%; box-shadow: 0 0 12px 3px rgba(160,96,48,.3); animation: el1-bowl 4s ease-in-out infinite alternate; }
.scn-eliza-anxious-talk .eliza-figure { position:absolute; bottom:25%; left:50%; width:16%; height:38%; background:linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: el1-sit 8s ease-in-out infinite; }
.scn-eliza-anxious-talk .needlework { position:absolute; bottom:28%; left:44%; width:10%; height:6%; background:linear-gradient(135deg, #f8f0e0 0%, #d8c8b0 100%); border-radius:10% 50% 10% 50%; transform: rotate(-15deg); box-shadow: 0 2px 4px rgba(0,0,0,.2); animation: el1-needle 5s ease-in-out infinite alternate; }
.scn-eliza-anxious-talk .shadow-slow { position:absolute; bottom:28%; left:30%; width:40%; height:12%; background:radial-gradient(ellipse at 50% 50%, rgba(0,0,0,.1) 0%, transparent 70%); animation: el1-shadow 10s ease-in-out infinite alternate; }
@keyframes el1-window { 0% { opacity:.8; transform:translateX(-50%) scale(1); } 50% { opacity:1; transform:translateX(-50%) scale(1.02); } 100% { opacity:.85; transform:translateX(-50%) scale(1); } }
@keyframes el1-bowl { 0% { transform: scale(1) rotate(0deg); } 50% { transform: scale(1.03) rotate(1deg); } 100% { transform: scale(1) rotate(-1deg); } }
@keyframes el1-sit { 0% { transform: translateY(0) rotate(0deg); } 30% { transform: translateY(-1px) rotate(0.5deg); } 60% { transform: translateY(1px) rotate(-0.5deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes el1-needle { 0% { transform: rotate(-15deg) scale(1); } 50% { transform: rotate(-10deg) scale(1.1); } 100% { transform: rotate(-15deg) scale(1); } }
@keyframes el1-shadow { 0% { opacity:.5; transform: scaleX(1); } 50% { opacity:.8; transform: scaleX(1.1); } 100% { opacity:.6; transform: scaleX(1); } }

/* eliza-fear-talk – tense bright interior */
.scn-eliza-fear-talk {
  background: 
    linear-gradient(180deg, #e8dcc8 0%, #d4c0a0 40%, #b09878 100%),
    radial-gradient(ellipse at 50% 0%, #fff5e0 0%, transparent 70%);
}
.scn-eliza-fear-talk .wall-t { position:absolute; inset:0 0 30% 0; background:linear-gradient(90deg, #d0b898 0%, #c0a888 50%, #d0b898 100%); }
.scn-eliza-fear-talk .floor-t { position:absolute; bottom:0; left:0; right:0; height:30%; background:linear-gradient(180deg, #a08060 0%, #785a40 100%); }
.scn-eliza-fear-talk .window-t { position:absolute; top:10%; left:52%; width:20%; height:28%; background:radial-gradient(ellipse at 50% 50%, #b8d8ff 0%, #80a8d0 70%, #6080a8 100%); border:3px solid #5a4a3a; animation: ef2-window 3s ease-in-out infinite alternate; }
.scn-eliza-fear-talk .eliza-standing { position:absolute; bottom:20%; left:45%; width:14%; height:45%; background:linear-gradient(180deg, #3a2a1a 0%, #1a0a00 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: ef2-stand 2s ease-in-out infinite; }
.scn-eliza-fear-talk .harry-figure { position:absolute; bottom:22%; left:35%; width:10%; height:25%; background:linear-gradient(180deg, #5a4a3a 0%, #2a1a0a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: ef2-harry 4s ease-in-out infinite; }
.scn-eliza-fear-talk .tremble-hand { position:absolute; bottom:26%; left:52%; width:4%; height:8%; background:linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius:30% 30% 20% 20%; transform-origin: top; animation: ef2-tremble 0.8s ease-in-out infinite; }
.scn-eliza-fear-talk .tear-drop { position:absolute; bottom:40%; left:49%; width:3%; height:3%; background:radial-gradient(circle at 50% 50%, #a8d8ff 0%, transparent 70%); border-radius:50%; animation: ef2-tear 6s ease-in-out infinite; }
.scn-eliza-fear-talk .shadow-sharp { position:absolute; bottom:22%; left:38%; width:22%; height:8%; background:linear-gradient(135deg, rgba(0,0,0,.3) 0%, transparent 70%); animation: ef2-shadow 1.5s ease-in-out infinite alternate; }
@keyframes ef2-window { 0% { opacity:.7; transform: scale(1); } 50% { opacity:1; transform: scale(1.05); } 100% { opacity:.8; transform: scale(1); } }
@keyframes ef2-stand { 0% { transform: translateY(0) rotate(0deg); } 25% { transform: translateY(-2px) rotate(1deg); } 50% { transform: translateY(0) rotate(-1deg); } 75% { transform: translateY(1px) rotate(0.5deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes ef2-harry { 0% { transform: translateX(0) rotate(0deg); } 33% { transform: translateX(3px) rotate(-2deg); } 66% { transform: translateX(-2px) rotate(1deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes ef2-tremble { 0% { transform: rotate(0deg); } 25% { transform: rotate(4deg); } 50% { transform: rotate(-3deg); } 75% { transform: rotate(5deg); } 100% { transform: rotate(0deg); } }
@keyframes ef2-tear { 0% { transform: translateY(0) scale(1); opacity:0; } 20% { opacity:1; } 80% { opacity:1; } 100% { transform: translateY(20px) scale(0.5); opacity:0; } }
@keyframes ef2-shadow { 0% { opacity:.4; transform: scaleX(1); } 50% { opacity:.7; transform: scaleX(1.15); } 100% { opacity:.5; transform: scaleX(1); } }

/* rachel-comfort – warm bright interior */
.scn-rachel-comfort {
  background: 
    linear-gradient(180deg, #f5e6c8 0%, #e0c8a0 40%, #c0a880 100%),
    radial-gradient(ellipse at 50% 0%, #fff0d0 0%, transparent 70%);
}
.scn-rachel-comfort .wall-w { position:absolute; inset:0 0 30% 0; background:linear-gradient(90deg, #dcc8a8 0%, #d0b890 50%, #dcc8a8 100%); }
.scn-rachel-comfort .floor-w { position:absolute; bottom:0; left:0; right:0; height:30%; background:linear-gradient(180deg, #a08868 0%, #806850 100%); }
.scn-rachel-comfort .door { position:absolute; left:10%; bottom:15%; width:20%; height:50%; background:linear-gradient(180deg, #6a5038 0%, #4a3020 100%); border-radius:4% 4% 0 0; border-left:4px solid #5a4028; box-shadow: inset 0 0 20px rgba(0,0,0,.4); animation: rc3-door 8s ease-in-out infinite; }
.scn-rachel-comfort .rachel-seated { position:absolute; bottom:20%; left:45%; width:16%; height:38%; background:linear-gradient(180deg, #5a4a3a 0%, #2a1a0a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: rc3-rachel 6s ease-in-out infinite; }
.scn-rachel-comfort .eliza-listening { position:absolute; bottom:22%; left:32%; width:14%; height:36%; background:linear-gradient(180deg, #4a3a2a 0%, #1a0a00 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: rc3-eliza 10s ease-in-out infinite; }
.scn-rachel-comfort .fireplace { position:absolute; bottom:10%; right:18%; width:25%; height:45%; background:linear-gradient(180deg, #3a2a1a 0%, #1a1008 100%); border-radius:8% 8% 0 0; box-shadow: inset 0 0 30px rgba(0,0,0,.6); }
.scn-rachel-comfort .fire-glow { position:absolute; bottom:22%; right:28%; width:12%; height:18%; background:radial-gradient(circle at 50% 100%, #ff8840 0%, #ff5500 50%, transparent 90%); border-radius:50%; filter:blur(6px); animation: rc3-fire 3s ease-in-out infinite alternate; }
.scn-rachel-comfort .shadow-warm { position:absolute; bottom:18%; left:20%; width:60%; height:15%; background:radial-gradient(ellipse at 50% 50%, rgba(0,0,0,.15) 0%, transparent 70%); animation: rc3-shadow 12s ease-in-out infinite; }
@keyframes rc3-door { 0% { transform: scaleX(1); } 25% { transform: scaleX(0.95); } 50% { transform: scaleX(1); } 75% { transform: scaleX(0.95); } 100% { transform: scaleX(1); } }
@keyframes rc3-rachel { 0% { transform: translateY(0) rotate(0deg); } 33% { transform: translateY(-2px) rotate(1deg); } 66% { transform: translateY(1px) rotate(-1deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes rc3-eliza { 0% { transform: translateY(0) rotate(0deg) scale(1); } 50% { transform: translateY(-1px) rotate(1.5deg) scale(1.02); } 100% { transform: translateY(0) rotate(0deg) scale(1); } }
@keyframes rc3-fire { 0% { opacity:.7; transform: scale(1) translateY(0); } 50% { opacity:1; transform: scale(1.2) translateY(-5px); } 100% { opacity:.8; transform: scale(1) translateY(0); } }
@keyframes rc3-shadow { 0% { opacity:.4; transform: scaleX(1); } 50% { opacity:.7; transform: scaleX(1.08); } 100% { opacity:.5; transform: scaleX(1); } }

/* ruth-arrival – funny bright interior */
.scn-ruth-arrival {
  background: 
    linear-gradient(180deg, #fff0d8 0%, #f0d8b8 40%, #d8c0a0 100%),
    radial-gradient(ellipse at 50% 0%, #fffff0 0%, transparent 70%);
}
.scn-ruth-arrival .wall-f { position:absolute; inset:0 0 30% 0; background:linear-gradient(90deg, #e8d8c0 0%, #dcc8a8 50%, #e8d8c0 100%); }
.scn-ruth-arrival .floor-f { position:absolute; bottom:0; left:0; right:0; height:30%; background:linear-gradient(180deg, #b09878 0%, #907858 100%); }
.scn-ruth-arrival .door-open { position:absolute; left:15%; bottom:12%; width:22%; height:55%; background:linear-gradient(90deg, #6a5038 0%, #5a4028 60%); border-radius:4% 0 0 4%; box-shadow: inset -5px 0 15px rgba(0,0,0,.3); animation: ra4-door 5s ease-in-out infinite; }
.scn-ruth-arrival .ruth-figure { position:absolute; bottom:18%; left:38%; width:14%; 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: ra4-ruth 2s ease-in-out infinite; }
.scn-ruth-arrival .bonnet { position:absolute; bottom:48%; left:45%; width:8%; height:8%; background:radial-gradient(circle at 50% 50%, #c8b898 0%, #a08868 100%); border-radius:50% 50% 50% 50% / 60% 60% 40% 40%; transform: rotate(-20deg); animation: ra4-bonnet 3s ease-in-out infinite alternate; }
.scn-ruth-arrival .rachel-hands { position:absolute; bottom:30%; left:32%; width:8%; height:10%; background:linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%); border-radius: 50% 50% 30% 30%; transform: rotate(-10deg); animation: ra4-hands 4s ease-in-out infinite; }
.scn-ruth-arrival .light-burst { position:absolute; top:25%; left:45%; width:20%; height:20%; background:radial-gradient(circle at 50% 50%, rgba(255,240,200,.6) 0%, transparent 70%); border-radius:50%; filter:blur(8px); animation: ra4-light 5s ease-in-out infinite alternate; }
.scn-ruth-arrival .shadow-fun { position:absolute; bottom:20%; left:20%; width:60%; height:12%; background:radial-gradient(ellipse at 50% 50%, rgba(0,0,0,.12) 0%, transparent 70%); animation: ra4-shadow 7s ease-in-out infinite; }
@keyframes ra4-door { 0% { transform: skewX(0deg); } 30% { transform: skewX(3deg); } 60% { transform: skewX(-2deg); } 100% { transform: skewX(0deg); } }
@keyframes ra4-ruth { 0% { transform: translateY(0) rotate(0deg) scale(1); } 25% { transform: translateY(-4px) rotate(5deg) scale(1.05); } 50% { transform: translateY(0) rotate(-3deg) scale(1); } 75% { transform: translateY(-2px) rotate(2deg) scale(1.02); } 100% { transform: translateY(0) rotate(0deg) scale(1); } }
@keyframes ra4-bonnet { 0% { transform: rotate(-20deg) scale(1); } 50% { transform: rotate(-10deg) scale(1.15); } 100% { transform: rotate(-20deg) scale(1); } }
@keyframes ra4-hands { 0% { transform: rotate(-10deg) scale(1); } 33% { transform: rotate(5deg) scale(1.1); } 66% { transform: rotate(-15deg) scale(0.95); } 100% { transform: rotate(-10deg) scale(1); } }
@keyframes ra4-light { 0% { opacity:.6; transform: scale(1); } 50% { opacity:1; transform: scale(1.3); } 100% { opacity:.7; transform: scale(1); } }
@keyframes ra4-shadow { 0% { opacity:.4; transform: scaleX(1); } 50% { opacity:.7; transform: scaleX(1.12); } 100% { opacity:.5; transform: scaleX(1); } }

/* george-at-table – warm sunlit interior */
.scn-george-at-table {
  background:
    linear-gradient(180deg, #f2e6d0 0%, #e8d4a8 40%, #d4b78a 70%, #b89a6a 100%),
    radial-gradient(ellipse at 50% 0%, #fff8e7 0%, transparent 60%);
}
.scn-george-at-table .wall { position:absolute; inset:0 0 35% 0; background: linear-gradient(180deg, #f5e8c8 0%, #e0c8a0 100%); }
.scn-george-at-table .window { position:absolute; top:8%; left:20%; width:40%; height:50%; background: linear-gradient(180deg, #fdf4dc 0%, #e8d8b4 100%); border:4px solid #a08060; border-radius:4px; box-shadow: inset 0 0 40px rgba(255,220,150,0.5); }
.scn-george-at-table .table { position:absolute; bottom:20%; left:15%; width:70%; height:22%; background: linear-gradient(180deg, #8b6f47 0%, #6a4f2e 100%); border-radius: 8px; box-shadow: 0 6px 20px rgba(0,0,0,0.3); }
.scn-george-at-table .chair-left { position:absolute; bottom:18%; left:20%; width:15%; height:30%; background: linear-gradient(180deg, #6a4f2e 0%, #4a3520 100%); border-radius: 4px; transform-origin: bottom center; animation: gt-chair-sway 6s ease-in-out infinite; }
.scn-george-at-table .chair-right { position:absolute; bottom:18%; right:20%; width:15%; height:30%; background: linear-gradient(180deg, #6a4f2e 0%, #4a3520 100%); border-radius: 4px; animation: gt-chair-sway 6s ease-in-out infinite 2s; }
.scn-george-at-table .figure-left { position:absolute; bottom:30%; left:24%; width:12%; height:40%; background: linear-gradient(180deg, #3a2a1a 0%, #2a1a0a 100%); clip-path: ellipse(50% 50% at 50% 50%); transform-origin: bottom center; animation: gt-figure-breathe 8s ease-in-out infinite; }
.scn-george-at-table .figure-right { position:absolute; bottom:30%; right:24%; width:12%; height:40%; background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%); clip-path: ellipse(50% 50% at 50% 50%); transform-origin: bottom center; animation: gt-figure-breathe 8s ease-in-out infinite 4s; }
.scn-george-at-table .light-ray { position:absolute; top:8%; left:30%; width:40%; height:70%; background: linear-gradient(180deg, rgba(255,230,180,0.4) 0%, transparent 100%); filter: blur(10px); animation: gt-light-float 12s ease-in-out infinite alternate; }
.scn-george-at-table .shadow-floor { position:absolute; bottom:0; left:5%; width:90%; height:10%; background: radial-gradient(ellipse at 50% 100%, rgba(0,0,0,0.2) 0%, transparent 70%); }
@keyframes gt-chair-sway {
  0% { transform: rotate(0deg); }
  50% { transform: rotate(1deg); }
  100% { transform: rotate(0deg); }
}
@keyframes gt-figure-breathe {
  0% { transform: scaleY(1); }
  50% { transform: scaleY(1.02); }
  100% { transform: scaleY(1); }
}
@keyframes gt-light-float {
  0% { opacity: 0.6; transform: translateX(0) scale(1); }
  50% { opacity: 1; transform: translateX(5px) scale(1.05); }
  100% { opacity: 0.7; transform: translateX(-3px) scale(0.98); }
}

/* question-about-laws – tense sunlit breakfast table */
.scn-question-about-laws {
  background:
    linear-gradient(180deg, #f0e0c0 0%, #d8b890 50%, #b89870 100%),
    radial-gradient(ellipse at 50% 0%, #fff8e0 0%, transparent 50%);
}
.scn-question-about-laws .backdrop { position:absolute; inset:0 0 40% 0; background: linear-gradient(180deg, #d8c8b0 0%, #c0a888 100%); }
.scn-question-about-laws .table-top { position:absolute; bottom:15%; left:10%; width:80%; height:20%; background: linear-gradient(180deg, #906c4a 0%, #6a4f2e 100%); border-radius: 8px; box-shadow: 0 4px 12px rgba(0,0,0,0.4); }
.scn-question-about-laws .plate { position:absolute; bottom:28%; left:28%; width:18%; height:10%; background: radial-gradient(ellipse, #f0e0c0 0%, #c8b090 100%); border-radius: 50%; }
.scn-question-about-laws .bread { position:absolute; bottom:30%; left:30%; width:8%; height:8%; background: linear-gradient(180deg, #d4b07a 0%, #b09060 100%); border-radius: 30% 40% 20% 30%; transform: rotate(10deg); }
.scn-question-about-laws .knife { position:absolute; bottom:25%; left:35%; width:2%; height:12%; background: linear-gradient(180deg, #c0c0c0 0%, #808080 100%); border-radius: 2px; transform-origin: 50% 100%; animation: ql-knife-jitter 3s ease-in-out infinite; }
.scn-question-about-laws .butter-dish { position:absolute; bottom:28%; left:40%; width:10%; height:6%; background: linear-gradient(180deg, #e0c880 0%, #c0a860 100%); border-radius: 20%; }
.scn-question-about-laws .figure-father { position:absolute; bottom:35%; left:15%; width:14%; height:45%; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); clip-path: ellipse(50% 50% at 50% 50%); transform-origin: bottom center; animation: ql-breath 5s ease-in-out infinite; }
.scn-question-about-laws .figure-son { position:absolute; bottom:35%; right:15%; width:12%; height:40%; background: linear-gradient(180deg, #3a2a1a 0%, #1a0a00 100%); clip-path: ellipse(50% 50% at 50% 50%); transform-origin: bottom center; animation: ql-breath 5s ease-in-out infinite 1s; }
.scn-question-about-laws .shadow-sharp { position:absolute; bottom:0; left:0; width:100%; height:20%; background: linear-gradient(180deg, transparent 0%, rgba(0,0,0,0.3) 100%); }
@keyframes ql-knife-jitter {
  0%, 80%, 100% { transform: rotate(5deg) translateY(0); }
  30% { transform: rotate(7deg) translateY(-2px); }
  60% { transform: rotate(3deg) translateY(1px); }
}
@keyframes ql-breath {
  0% { transform: scaleY(1) translateY(0); }
  50% { transform: scaleY(1.015) translateY(-1px); }
  100% { transform: scaleY(1) translateY(0); }
}

/* boy-anger – tense silhouette with blush */
.scn-boy-anger {
  background:
    linear-gradient(180deg, #e8dcc8 0%, #c8b898 50%, #a89878 100%),
    radial-gradient(ellipse at 50% 0%, #fff8e8 0%, transparent 60%);
}
.scn-boy-anger .bright-bg { position:absolute; inset:0 0 50% 0; background: linear-gradient(180deg, #f0e4d0 0%, #d8c8b0 100%); }
.scn-boy-anger .window-light { position:absolute; top:5%; left:30%; width:40%; height:60%; background: linear-gradient(180deg, rgba(255,230,180,0.6) 0%, transparent 100%); filter: blur(15px); animation: ba-light-pulse 4s ease-in-out infinite alternate; }
.scn-boy-anger .boy-body { position:absolute; bottom:10%; left:25%; width:30%; height:70%; background: linear-gradient(180deg, #2a1a0a 0%, #1a0a00 100%); clip-path: ellipse(50% 50% at 50% 50%); transform-origin: bottom center; animation: ba-tremble 0.8s ease-in-out infinite; }
.scn-boy-anger .boy-head { position:absolute; bottom:65%; left:33%; width:12%; height:16%; background: #1a0a00; border-radius: 50% 50% 30% 30%; transform-origin: bottom center; animation: ba-tremble 0.8s ease-in-out infinite; }
.scn-boy-anger .clenched-fist { position:absolute; bottom:40%; right:35%; width:6%; height:8%; background: #1a0a00; border-radius: 40% 40% 30% 30%; transform: rotate(15deg); animation: ba-fist-clench 2s ease-in-out infinite; }
.scn-boy-anger .blush-overlay { position:absolute; bottom:67%; left:34%; width:8%; height:6%; background: radial-gradient(ellipse, #b05050 0%, transparent 100%); opacity: 0.6; border-radius: 50%; animation: ba-blush-pulse 3s ease-in-out infinite; }
.scn-boy-anger .dark-shadow { position:absolute; bottom:8%; left:20%; width:60%; height:15%; background: radial-gradient(ellipse at 50% 0%, rgba(0,0,0,0.3) 0%, transparent 100%); }
@keyframes ba-tremble {
  0% { transform: translateX(0) rotate(0deg); }
  25% { transform: translateX(-2px) rotate(1deg); }
  50% { transform: translateX(1px) rotate(-1deg); }
  75% { transform: translateX(-1px) rotate(0.5deg); }
  100% { transform: translateX(0) rotate(0deg); }
}
@keyframes ba-fist-clench {
  0% { transform: scale(1) rotate(15deg); }
  50% { transform: scale(0.9) rotate(10deg); }
  100% { transform: scale(1) rotate(15deg); }
}
@keyframes ba-light-pulse {
  0% { opacity: 0.7; }
  50% { opacity: 1; }
  100% { opacity: 0.6; }
}
@keyframes ba-blush-pulse {
  0% { opacity: 0.5; transform: scale(1); }
  50% { opacity: 0.8; transform: scale(1.1); }
  100% { opacity: 0.5; transform: scale(1); }
}

/* george-anxious – tense sunlit two figures */
.scn-george-anxious {
  background:
    linear-gradient(180deg, #e8dcc8 0%, #c8b898 50%, #a89878 100%),
    radial-gradient(ellipse at 50% 0%, #fff8e8 0%, transparent 50%);
}
.scn-george-anxious .room-bg { position:absolute; inset:0 0 35% 0; background: linear-gradient(180deg, #d8c8b0 0%, #c0a888 100%); }
.scn-george-anxious .floor { position:absolute; bottom:0; left:0; width:100%; height:35%; background: linear-gradient(180deg, #b89878 0%, #908060 100%); }
.scn-george-anxious .figure-george { position:absolute; bottom:20%; left:15%; width:14%; height:55%; background: linear-gradient(180deg, #2a1a0a 0%, #1a0a00 100%); clip-path: ellipse(50% 50% at 50% 50%); transform-origin: bottom center; animation: ga-fidget 4s ease-in-out infinite; }
.scn-george-anxious .figure-simeon { position:absolute; bottom:20%; right:15%; width:15%; height:58%; background: linear-gradient(180deg, #3a2a1a 0%, #2a1a0a 100%); clip-path: ellipse(50% 50% at 50% 50%); transform-origin: bottom center; animation: ga-breathe 6s ease-in-out infinite; }
.scn-george-anxious .hand-shoulder { position:absolute; bottom:55%; right:28%; width:8%; height:14%; background: #3a2a1a; border-radius: 40% 40% 20% 20%; transform: rotate(-20deg); transform-origin: 50% 100%; animation: ga-hand-pat 3s ease-in-out infinite; }
.scn-george-anxious .sunbeam { position:absolute; top:5%; left:35%; width:30%; height:70%; background: linear-gradient(180deg, rgba(255,220,160,0.3) 0%, transparent 100%); filter: blur(12px); animation: ga-sunbeam-shift 8s ease-in-out infinite alternate; }
.scn-george-anxious .anxious-shimmer { position:absolute; bottom:40%; left:20%; width:60%; height:20%; background: radial-gradient(ellipse at 50% 50%, rgba(200,180,140,0.2) 0%, transparent 100%); animation: ga-shimmer 5s ease-in-out infinite; }
@keyframes ga-fidget {
  0% { transform: translateX(0) rotate(0deg); }
  25% { transform: translateX(3px) rotate(2deg); }
  50% { transform: translateX(-2px) rotate(-1deg); }
  75% { transform: translateX(1px) rotate(1deg); }
  100% { transform: translateX(0) rotate(0deg); }
}
@keyframes ga-breathe {
  0% { transform: scaleY(1); }
  50% { transform: scaleY(1.02); }
  100% { transform: scaleY(1); }
}
@keyframes ga-hand-pat {
  0% { transform: rotate(-20deg) translateY(0); }
  30% { transform: rotate(-20deg) translateY(-3px); }
  60% { transform: rotate(-20deg) translateY(0); }
  100% { transform: rotate(-20deg) translateY(0); }
}
@keyframes ga-sunbeam-shift {
  0% { opacity: 0.6; transform: translateX(0); }
  50% { opacity: 0.9; transform: translateX(8px); }
  100% { opacity: 0.5; transform: translateX(-5px); }
}
@keyframes ga-shimmer {
  0% { opacity: 0; transform: scale(0.95); }
  50% { opacity: 0.3; transform: scale(1.05); }
  100% { opacity: 0; transform: scale(0.95); }
}

.scn-hunt-returns {
  background: 
    linear-gradient(180deg, #0b0b2a 0%, #1a1a4e 40%, #2c2c6e 70%, #3a3a7a 100%),
    radial-gradient(ellipse at 50% 80%, #3a3a7a 0%, transparent 70%);
}
.scn-hunt-returns .sky {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #121236 0%, transparent 100%);
  animation: hr-sky 15s ease-in-out infinite alternate;
}
.scn-hunt-returns .moon {
  position: absolute; top: 12%; left: 60%;
  width: 60px; height: 60px;
  background: radial-gradient(circle, #c8d8ff 0%, #a0b8ee 50%, transparent 70%);
  border-radius: 50%;
  box-shadow: 0 0 40px 10px rgba(160,184,238,0.5);
  animation: hr-moon 20s ease-in-out infinite alternate;
}
.scn-hunt-returns .trees-back {
  position: absolute; bottom: 25%; left: 0; right: 0; height: 40%;
  background: linear-gradient(180deg, #1a1a2a 0%, #0e0e1a 100%);
  border-radius: 60% 40% 0 0 / 70% 50% 0 0;
  clip-path: polygon(0% 100%, 5% 20%, 15% 40%, 25% 10%, 35% 30%, 45% 15%, 55% 25%, 65% 5%, 75% 20%, 85% 10%, 95% 30%, 100% 100%);
  animation: hr-trees-back 12s ease-in-out infinite;
}
.scn-hunt-returns .trees-fore {
  position: absolute; bottom: 18%; left: 0; right: 0; height: 35%;
  background: linear-gradient(180deg, #0a0a14 0%, #050510 100%);
  border-radius: 50% 50% 0 0;
  clip-path: polygon(0% 100%, 2% 40%, 8% 50%, 12% 30%, 18% 45%, 22% 25%, 30% 35%, 35% 15%, 42% 30%, 48% 10%, 55% 25%, 60% 5%, 68% 20%, 72% 12%, 80% 28%, 85% 8%, 92% 22%, 98% 30%, 100% 100%);
  animation: hr-trees-fore 10s ease-in-out infinite alternate;
}
.scn-hunt-returns .figure {
  position: absolute; bottom: 15%; left: 45%;
  width: 16px; height: 36px;
  background: linear-gradient(180deg, #1a1a2e 0%, #0a0a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: hr-walk 6s ease-in-out infinite;
}
.scn-hunt-returns .ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 20%;
  background: linear-gradient(180deg, #1a2a1a 0%, #0a1a0a 100%);
  border-radius: 30% 70% 0 0;
  box-shadow: inset 0 10px 20px rgba(0,0,0,0.5);
}
@keyframes hr-sky { 0% { opacity: 0.7; } 50% { opacity: 1; } 100% { opacity: 0.6; } }
@keyframes hr-moon { 0% { transform: translateX(0) scale(0.9); box-shadow: 0 0 30px 8px rgba(160,184,238,0.4); } 50% { transform: translateX(-10px) scale(1); box-shadow: 0 0 50px 15px rgba(160,184,238,0.6); } 100% { transform: translateX(5px) scale(0.95); box-shadow: 0 0 35px 10px rgba(160,184,238,0.5); } }
@keyframes hr-trees-back { 0% { transform: translateY(0); } 50% { transform: translateY(-3px); } 100% { transform: translateY(0); } }
@keyframes hr-trees-fore { 0% { transform: translateY(0) scaleX(1); } 50% { transform: translateY(-5px) scaleX(1.02); } 100% { transform: translateY(0) scaleX(1); } }
@keyframes hr-walk { 0% { transform: translateX(0) rotate(-2deg); } 25% { transform: translateX(8px) rotate(2deg); } 50% { transform: translateX(16px) rotate(-2deg); } 75% { transform: translateX(24px) rotate(2deg); } 100% { transform: translateX(32px) rotate(0deg); } }

.scn-the-martyr-poem {
  background: 
    linear-gradient(180deg, #0d0d1a 0%, #1a1a2e 30%, #2a2a3e 60%, #1a1a2e 100%),
    radial-gradient(ellipse at 50% 60%, #2a2a3e 0%, transparent 80%);
}
.scn-the-martyr-poem .dark-sky {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(180deg, #14142a 0%, transparent 100%);
  animation: mp-sky 12s ease-in-out infinite alternate;
}
.scn-the-martyr-poem .hills {
  position: absolute; bottom: 30%; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%);
  border-radius: 70% 30% 0 0 / 60% 40% 0 0;
  box-shadow: inset 0 8px 20px rgba(0,0,0,0.6);
  animation: mp-hills 20s ease-in-out infinite alternate;
}
.scn-the-martyr-poem .cross {
  position: absolute; bottom: 25%; left: 50%; width: 4px; height: 60px;
  background: linear-gradient(180deg, #3a3a4a 0%, #1a1a2a 100%);
  transform: translateX(-50%);
  border-radius: 0;
  box-shadow: -15px 15px 0 0 #1a1a2a, -15px 15px 0 0 #3a3a4a;
  animation: mp-cross 15s ease-in-out infinite;
}
.scn-the-martyr-poem .figure-kneeling {
  position: absolute; bottom: 18%; left: 50%; width: 16px; height: 30px;
  background: linear-gradient(180deg, #1a1a2e 0%, #0a0a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform: translateX(-50%) scale(0.9);
  transform-origin: bottom center;
  animation: mp-kneel 8s ease-in-out infinite;
}
.scn-the-martyr-poem .ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 18%;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 40% 60% 0 0;
}
.scn-the-martyr-poem .glow {
  position: absolute; bottom: 28%; left: 48%; width: 30px; height: 30px;
  background: radial-gradient(circle, rgba(255,200,150,0.2) 0%, transparent 70%);
  border-radius: 50%;
  filter: blur(4px);
  animation: mp-glow 6s ease-in-out infinite alternate;
}
@keyframes mp-sky { 0% { opacity: 0.8; } 50% { opacity: 1; } 100% { opacity: 0.7; } }
@keyframes mp-hills { 0% { transform: translateY(0); } 50% { transform: translateY(-2px); } 100% { transform: translateY(0); } }
@keyframes mp-cross { 0% { transform: translateX(-50%) rotate(0deg); } 50% { transform: translateX(-50%) rotate(2deg) translateY(-1px); } 100% { transform: translateX(-50%) rotate(0deg); } }
@keyframes mp-kneel { 0% { transform: translateX(-50%) scale(0.9) rotate(-1deg); } 25% { transform: translateX(-48%) scale(0.95) rotate(0deg); } 50% { transform: translateX(-50%) scale(0.9) rotate(1deg); } 75% { transform: translateX(-52%) scale(0.95) rotate(0deg); } 100% { transform: translateX(-50%) scale(0.9) rotate(-1deg); } }
@keyframes mp-glow { 0% { opacity: 0.1; transform: scale(0.8); } 50% { opacity: 0.4; transform: scale(1.2); } 100% { opacity: 0.15; transform: scale(0.9); } }

.scn-reflective-narration {
  background: 
    linear-gradient(180deg, #0a0a14 0%, #1a1a2e 30%, #2a2a4a 60%, #3a3a5a 100%),
    radial-gradient(ellipse at 50% 20%, #3a3a5a 0%, transparent 60%);
}
.scn-reflective-narration .night-sky {
  position: absolute; inset: 0 0 35% 0;
  background: linear-gradient(180deg, #14142a 0%, #1a1a3e 40%, transparent 100%);
  animation: rn-sky 30s ease-in-out infinite alternate;
}
.scn-reflective-narration .horizon {
  position: absolute; bottom: 25%; left: 0; right: 0; height: 20%;
  background: linear-gradient(180deg, #2a2a4a 0%, #1a1a3a 100%);
  border-radius: 80% 20% 0 0 / 70% 30% 0 0;
  animation: rn-horizon 20s ease-in-out infinite alternate;
}
.scn-reflective-narration .path {
  position: absolute; bottom: 10%; left: 20%; width: 60%; height: 12%;
  background: linear-gradient(180deg, #3a3a4a 0%, #2a2a3a 100%);
  border-radius: 30% 30% 0 0;
  clip-path: polygon(0% 0%, 10% 100%, 90% 100%, 100% 0%);
  animation: rn-path 15s ease-in-out infinite;
}
.scn-reflective-narration .figure-walking {
  position: absolute; bottom: 8%; left: 30%;
  width: 14px; height: 34px;
  background: linear-gradient(180deg, #1a1a2e 0%, #0a0a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: rn-walk 6s ease-in-out infinite;
}
.scn-reflective-narration .stars {
  position: absolute; top: 5%; left: 10%; width: 80%; height: 20%;
  background: transparent;
  box-shadow: 
    20px 10px 0 1px rgba(255,255,255,0.6),
    60px 30px 0 0.5px rgba(255,255,255,0.5),
    100px 15px 0 2px rgba(255,255,255,0.7),
    150px 40px 0 1px rgba(255,255,255,0.4),
    200px 25px 0 1.5px rgba(255,255,255,0.6);
  animation: rn-stars 8s ease-in-out infinite alternate;
}
@keyframes rn-sky { 0% { background: linear-gradient(180deg, #14142a 0%, #1a1a3e 40%, transparent 100%); } 50% { background: linear-gradient(180deg, #1a1a3e 0%, #2a2a5a 50%, transparent 100%); } 100% { background: linear-gradient(180deg, #14142a 0%, #1a1a3e 40%, transparent 100%); } }
@keyframes rn-horizon { 0% { transform: translateY(0); } 50% { transform: translateY(-4px); } 100% { transform: translateY(0); } }
@keyframes rn-path { 0% { opacity: 0.8; } 50% { opacity: 1; } 100% { opacity: 0.7; } }
@keyframes rn-walk { 0% { transform: translateX(0) rotate(-2deg); } 25% { transform: translateX(10px) rotate(2deg); } 50% { transform: translateX(20px) rotate(-2deg); } 75% { transform: translateX(30px) rotate(2deg); } 100% { transform: translateX(40px) rotate(0deg); } }
@keyframes rn-stars { 0% { opacity: 0.5; transform: translateY(0); } 50% { opacity: 0.9; transform: translateY(-3px); } 100% { opacity: 0.6; transform: translateY(0); } }

.scn-morning-star {
  background: 
    linear-gradient(180deg, #f4a460 0%, #e8c57a 20%, #d4a373 40%, #b8b8a0 60%, #8a8a7a 80%, #5a5a5a 100%),
    radial-gradient(ellipse at 70% 30%, #ffe4b5 0%, transparent 50%);
}
.scn-morning-star .dawn-sky {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #ffe4b5 0%, #f4d03f 30%, #e8c57a 60%, transparent 100%);
  animation: ms-sky 25s ease-in-out infinite alternate;
}
.scn-morning-star .sun {
  position: absolute; top: 10%; right: 25%;
  width: 40px; height: 40px;
  background: radial-gradient(circle, #fff8dc 0%, #ffe4b5 60%, transparent 80%);
  border-radius: 50%;
  box-shadow: 0 0 50px 15px rgba(255,228,181,0.6);
  animation: ms-sun 10s ease-in-out infinite alternate;
}
.scn-morning-star .mountains {
  position: absolute; bottom: 25%; left: 0; right: 0; height: 35%;
  background: linear-gradient(180deg, #6b6b5a 0%, #4a4a3a 100%);
  clip-path: polygon(0% 100%, 10% 40%, 20% 60%, 30% 30%, 40% 50%, 50% 20%, 60% 40%, 70% 15%, 80% 35%, 90% 25%, 100% 50%, 100% 100%);
  border-radius: 0 0 30% 70%;
  animation: ms-mountains 18s ease-in-out infinite;
}
.scn-morning-star .figures {
  position: absolute; bottom: 10%; left: 30%;
  width: 20px; height: 30px;
  background: linear-gradient(180deg, #2a2a2a 0%, #1a1a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform: translateX(-50%);
  animation: ms-figures 8s ease-in-out infinite;
}
.scn-morning-star .ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 25%;
  background: linear-gradient(180deg, #3a3a2a 0%, #2a2a1a 100%);
  border-radius: 60% 40% 0 0;
}
.scn-morning-star .mist {
  position: absolute; bottom: 15%; left: 0; right: 0; height: 10%;
  background: linear-gradient(90deg, transparent 0%, rgba(255,255,255,0.2) 30%, transparent 70%);
  filter: blur(8px);
  animation: ms-mist 12s ease-in-out infinite alternate;
}
@keyframes ms-sky { 0% { background: linear-gradient(180deg, #ffe4b5 0%, #f4d03f 30%, #e8c57a 60%, transparent 100%); } 50% { background: linear-gradient(180deg, #fff8dc 0%, #ffe4b5 20%, #f4d03f 50%, transparent 100%); } 100% { background: linear-gradient(180deg, #ffe4b5 0%, #f4d03f 30%, #e8c57a 60%, transparent 100%); } }
@keyframes ms-sun { 0% { transform: translateY(0) scale(0.9); box-shadow: 0 0 40px 10px rgba(255,228,181,0.5); } 50% { transform: translateY(-8px) scale(1.1); box-shadow: 0 0 60px 20px rgba(255,228,181,0.7); } 100% { transform: translateY(0) scale(0.95); box-shadow: 0 0 45px 12px rgba(255,228,181,0.6); } }
@keyframes ms-mountains { 0% { transform: translateY(0); } 50% { transform: translateY(-4px); } 100% { transform: translateY(0); } }
@keyframes ms-figures { 0% { transform: translateX(-50%) rotate(-1deg); } 25% { transform: translateX(-48%) rotate(1deg); } 50% { transform: translateX(-50%) rotate(-1deg); } 75% { transform: translateX(-52%) rotate(1deg); } 100% { transform: translateX(-50%) rotate(-1deg); } }
@keyframes ms-mist { 0% { transform: translateX(-20px); opacity: 0.2; } 50% { transform: translateX(20px); opacity: 0.4; } 100% { transform: translateX(-10px); opacity: 0.3; } }

/* Scene: old-woman-testifies – firelit warmth */
.scn-old-woman-testifies {
  background:
    linear-gradient(180deg, #3a1e0e 0%, #5a3a1a 40%, #2a1208 100%),
    radial-gradient(ellipse at 50% 80%, #7a4a2a 0%, transparent 70%);
}
.scn-old-woman-testifies .wall {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(135deg, #4a2a1a, #2a1208);
  border-radius: 0 0 30% 30% / 0 0 10% 10%;
}
.scn-old-woman-testifies .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #3a1a0a, #1a0a04);
  box-shadow: inset 0 8px 16px rgba(0,0,0,.6);
}
.scn-old-woman-testifies .fire {
  position: absolute; bottom: 20%; left: 20%; width: 60px; height: 80px;
  background: radial-gradient(ellipse at 50% 100%, #ff8833 0%, #cc4400 40%, #882200 70%, transparent);
  border-radius: 50% 50% 20% 20%;
  animation: ow-fire 2s ease-in-out infinite alternate;
}
.scn-old-woman-testifies .halo {
  position: absolute; bottom: 25%; left: 55%; width: 140px; height: 180px;
  background: radial-gradient(circle, rgba(255,180,80,.4) 0%, transparent 70%);
  border-radius: 50%;
  animation: ow-halo 5s ease-in-out infinite alternate;
}
.scn-old-woman-testifies .woman {
  position: absolute; bottom: 22%; left: 50%; width: 28px; height: 60px;
  background: linear-gradient(180deg, #2a1a10 0%, #1a0e08 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: ow-woman 6s ease-in-out infinite;
}
.scn-old-woman-testifies .staff {
  position: absolute; bottom: 22%; left: 52%; width: 3px; height: 50px;
  background: linear-gradient(180deg, #3a2a1a, #1a0e08);
  transform: rotate(-10deg);
  transform-origin: bottom center;
  animation: ow-staff 3s ease-in-out infinite alternate;
}
.scn-old-woman-testifies .shadow {
  position: absolute; bottom: 0; left: 40%; width: 40px; height: 8px;
  background: rgba(0,0,0,.5);
  border-radius: 50%;
  filter: blur(4px);
  animation: ow-shadow 6s ease-in-out infinite;
}
.scn-old-woman-testifies .spark-1,
.scn-old-woman-testifies .spark-2 {
  position: absolute; width: 4px; height: 4px;
  background: radial-gradient(circle, #ffcc44, #cc6600);
  border-radius: 50%;
  box-shadow: 0 0 6px 2px rgba(255,200,60,.8);
  animation: ow-spark 3s ease-in infinite;
}
.scn-old-woman-testifies .spark-1 { bottom: 40%; left: 18%; animation-delay: 0s; }
.scn-old-woman-testifies .spark-2 { bottom: 36%; left: 25%; animation-delay: 1.5s; width: 3px; height: 3px; }

@keyframes ow-fire { 0% { transform: scaleY(1) translateY(0); opacity:.9; } 50% { transform: scaleY(1.15) translateY(-4px); opacity:1; } 100% { transform: scaleY(.95) translateY(0); opacity:.85; } }
@keyframes ow-halo { 0% { opacity:.5; transform: scale(1); } 50% { opacity:.8; transform: scale(1.08); } 100% { opacity:.6; transform: scale(.95); } }
@keyframes ow-woman { 0%,100% { transform: translateX(0) rotate(0deg); } 50% { transform: translateX(3px) rotate(2deg); } }
@keyframes ow-staff { 0%,100% { transform: rotate(-10deg); } 50% { transform: rotate(-6deg); } }
@keyframes ow-shadow { 0%,100% { transform: scaleX(1); opacity:.3; } 50% { transform: scaleX(1.2); opacity:.5; } }
@keyframes ow-spark { 0% { opacity:1; transform: translate(0,0) scale(1); } 100% { opacity:0; transform: translate(-4px,-20px) scale(0); } }

/* Scene: george-reads-revelation – firelit warm, communal */
.scn-george-reads-revelation {
  background:
    linear-gradient(180deg, #3a1e0e 0%, #5a3a1a 40%, #2a1208 100%),
    radial-gradient(ellipse at 50% 70%, #8a4a2a 0%, transparent 70%);
}
.scn-george-reads-revelation .wall {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(135deg, #3a1a0a, #1a0a04);
  border-radius: 0 0 20% 20% / 0 0 10% 10%;
}
.scn-george-reads-revelation .fire {
  position: absolute; bottom: 30%; left: 25%; width: 50px; height: 70px;
  background: radial-gradient(ellipse at 50% 100%, #ff9944, #bb3300 50%, transparent);
  border-radius: 50% 50% 20% 20%;
  animation: gr-fire 2.5s ease-in-out infinite alternate;
}
.scn-george-reads-revelation .bench {
  position: absolute; bottom: 20%; left: 10%; right: 10%; height: 8px;
  background: linear-gradient(180deg, #4a2a1a, #2a1208);
  border-radius: 2px;
}
.scn-george-reads-revelation .george {
  position: absolute; bottom: 22%; left: 55%; width: 24px; height: 50px;
  background: linear-gradient(180deg, #2a1a10, #1a0e08);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: gr-george 5s ease-in-out infinite;
}
.scn-george-reads-revelation .book {
  position: absolute; bottom: 32%; left: 57%; width: 14px; height: 18px;
  background: linear-gradient(135deg, #6a4a2a, #3a2a1a);
  border-radius: 2px;
  transform: rotate(10deg);
  animation: gr-book 4s ease-in-out infinite alternate;
}
.scn-george-reads-revelation .listener-a,
.scn-george-reads-revelation .listener-b {
  position: absolute; bottom: 20%; width: 20px; height: 40px;
  background: linear-gradient(180deg, #1a1a1a, #0a0a0a);
  border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%;
  animation: gr-listener 8s ease-in-out infinite;
}
.scn-george-reads-revelation .listener-a { left: 15%; }
.scn-george-reads-revelation .listener-b { left: 75%; animation-delay: 2s; }
.scn-george-reads-revelation .glow {
  position: absolute; bottom: 30%; left: 50%; width: 100px; height: 100px;
  background: radial-gradient(circle, rgba(255,200,100,.3) 0%, transparent 70%);
  border-radius: 50%;
  animation: gr-glow 3s ease-in-out infinite alternate;
}

@keyframes gr-fire { 0% { transform: scaleY(1) translateY(0); opacity:.9; } 50% { transform: scaleY(1.1) translateY(-3px); opacity:1; } 100% { transform: scaleY(.9) translateY(0); opacity:.8; } }
@keyframes gr-george { 0%,100% { transform: translateX(0) rotate(0deg); } 50% { transform: translateX(2px) rotate(2deg); } }
@keyframes gr-book { 0% { transform: rotate(8deg) scale(1); } 50% { transform: rotate(12deg) scale(1.05); } 100% { transform: rotate(8deg) scale(1); } }
@keyframes gr-listener { 0%,100% { transform: translateY(0); } 50% { transform: translateY(-2px); } }
@keyframes gr-glow { 0% { opacity:.2; transform: scale(1); } 50% { opacity:.6; transform: scale(1.1); } 100% { opacity:.3; transform: scale(.95); } }

/* Scene: tom-patriarch-in-prayer – firelit, reverent */
.scn-tom-patriarch-in-prayer {
  background:
    linear-gradient(180deg, #2a1a0e 0%, #4a2a1a 50%, #1a0a04 100%),
    radial-gradient(ellipse at 50% 90%, #6a3a1a 0%, transparent 70%);
}
.scn-tom-patriarch-in-prayer .room {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(135deg, #3a1a0a, #1a0a04);
  border-radius: 0 0 40% 40% / 0 0 20% 20%;
}
.scn-tom-patriarch-in-prayer .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #2a1208, #0a0402);
  box-shadow: inset 0 6px 12px rgba(0,0,0,.6);
}
.scn-tom-patriarch-in-prayer .ray {
  position: absolute; top: 0; left: 45%; width: 10%; height: 100%;
  background: linear-gradient(180deg, rgba(255,220,180,.4) 0%, transparent 60%);
  clip-path: polygon(40% 0, 60% 0, 100% 100%, 0% 100%);
  animation: tp-ray 8s ease-in-out infinite alternate;
}
.scn-tom-patriarch-in-prayer .tom {
  position: absolute; bottom: 22%; left: 48%; width: 30px; height: 55px;
  background: linear-gradient(180deg, #2a1a10, #1a0e08);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: tp-tom 4s ease-in-out infinite;
}
.scn-tom-patriarch-in-prayer .hands {
  position: absolute; bottom: 38%; left: 49.5%; width: 10px; height: 14px;
  background: #2a1a10;
  border-radius: 40% 40% 20% 20%;
  transform: rotate(-5deg);
  animation: tp-hands 3s ease-in-out infinite alternate;
}
.scn-tom-patriarch-in-prayer .cross {
  position: absolute; top: 12%; left: 48%; width: 2px; height: 30px;
  background: #4a2a1a;
  box-shadow: 12px 12px 0 #4a2a1a, 0 0 6px rgba(200,160,100,.4);
  animation: tp-cross 6s ease-in-out infinite;
}
.scn-tom-patriarch-in-prayer .glow {
  position: absolute; top: 10%; left: 40%; width: 120px; height: 120px;
  background: radial-gradient(circle, rgba(255,200,150,.2) 0%, transparent 70%);
  border-radius: 50%;
  animation: tp-glow 5s ease-in-out infinite alternate;
}

@keyframes tp-ray { 0% { opacity:.2; } 50% { opacity:.6; } 100% { opacity:.3; } }
@keyframes tp-tom { 0%,100% { transform: translateX(0) rotate(0deg); } 50% { transform: translateX(2px) rotate(-1deg); } }
@keyframes tp-hands { 0% { transform: rotate(-8deg) scale(1); } 50% { transform: rotate(-2deg) scale(1.05); } 100% { transform: rotate(-8deg) scale(1); } }
@keyframes tp-cross { 0%,100% { transform: translateY(0); } 50% { transform: translateY(-2px); } }
@keyframes tp-glow { 0% { transform: scale(1); opacity:.2; } 50% { transform: scale(1.05); opacity:.5; } 100% { transform: scale(.95); opacity:.3; } }

/* Scene: the-bargain-concluded – dim interior, tense */
.scn-the-bargain-concluded {
  background:
    linear-gradient(180deg, #1a1a20 0%, #0a0a10 60%, #050508 100%),
    radial-gradient(ellipse at 50% 60%, #2a2a30 0%, transparent 80%);
}
.scn-the-bargain-concluded .table {
  position: absolute; bottom: 30%; left: 20%; right: 20%; height: 6px;
  background: linear-gradient(180deg, #3a2a1a, #1a1208);
  border-radius: 2px;
  box-shadow: 0 4px 8px rgba(0,0,0,.7);
}
.scn-the-bargain-concluded .lamp {
  position: absolute; bottom: 40%; left: 48%; width: 20px; height: 30px;
  background: radial-gradient(ellipse at 50% 100%, #dda860 0%, #886620 60%, transparent);
  border-radius: 30% 30% 10% 10%;
  animation: bc-lamp 4s ease-in-out infinite alternate;
}
.scn-the-bargain-concluded .trader,
.scn-the-bargain-concluded .shelby {
  position: absolute; bottom: 22%; width: 24px; height: 48px;
  background: linear-gradient(180deg, #1a1a20, #101018);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
}
.scn-the-bargain-concluded .trader { left: 28%; animation: bc-trader 3s ease-in-out infinite; }
.scn-the-bargain-concluded .shelby { right: 28%; animation: bc-shelby 3.5s ease-in-out infinite; }
.scn-the-bargain-concluded .papers-1,
.scn-the-bargain-concluded .papers-2 {
  position: absolute; bottom: 32%; width: 12px; height: 10px;
  background: linear-gradient(135deg, #6a5a4a, #3a2a1a);
  border-radius: 1px;
  transform: rotate(10deg);
  animation: bc-papers 8s linear infinite;
}
.scn-the-bargain-concluded .papers-1 { left: 40%; }
.scn-the-bargain-concluded .papers-2 { left: 55%; animation-delay: 4s; }
.scn-the-bargain-concluded .shadow-hard {
  position: absolute; bottom: 0; left: 20%; right: 20%; height: 20%;
  background: linear-gradient(180deg, rgba(0,0,0,.5) 0%, transparent 100%);
  animation: bc-shadow 5s ease-in-out infinite;
}
.scn-the-bargain-concluded .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #0a0a10, #020205);
  box-shadow: inset 0 4px 6px rgba(0,0,0,.8);
}

@keyframes bc-lamp { 0% { opacity:.7; transform: scaleY(1); } 50% { opacity:1; transform: scaleY(1.08); } 100% { opacity:.8; transform: scaleY(.98); } }
@keyframes bc-trader { 0%,100% { transform: translateX(0) rotate(0deg); } 50% { transform: translateX(-2px) rotate(3deg); } }
@keyframes bc-shelby { 0%,100% { transform: translateX(0) rotate(0deg); } 50% { transform: translateX(2px) rotate(-2deg); } }
@keyframes bc-papers { 0% { opacity:.6; } 50% { opacity:1; } 100% { opacity:.6; } }
@keyframes bc-shadow { 0%,100% { opacity:.4; } 50% { opacity:.7; } }

.scn-cassys-recognition {
  background: linear-gradient(180deg, #f2e4c0 0%, #c8b48a 40%, #9e8a6a 100%), radial-gradient(ellipse at 50% 0%, #fff4d6 0%, transparent 60%);
}
.scn-cassys-recognition .cr-backdrop {
  position: absolute; inset: 0; background: linear-gradient(180deg, #e6d2b0 0%, #b8a07a 100%); 
  animation: cr-backdrop 8s ease-in-out infinite alternate;
}
.scn-cassys-recognition .cr-sunbeam {
  position: absolute; top: 5%; left: 30%; width: 40%; height: 60%; 
  background: linear-gradient(135deg, rgba(255,245,200,0.5) 0%, transparent 70%); 
  filter: blur(4px); animation: cr-sunbeam 5s ease-in-out infinite alternate;
}
.scn-cassys-recognition .cr-figure-left {
  position: absolute; bottom: 20%; left: 10%; width: 28%; height: 55%; 
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%); 
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%; 
  transform-origin: bottom center; animation: cr-figure-left 6s ease-in-out infinite;
}
.scn-cassys-recognition .cr-figure-right {
  position: absolute; bottom: 18%; right: 15%; width: 25%; height: 50%; 
  background: linear-gradient(180deg, #c8b48a 0%, #a09070 100%); 
  border-radius: 50% 50% 40% 40% / 55% 55% 45% 45%; 
  transform-origin: bottom center; animation: cr-figure-right 6s ease-in-out infinite;
  filter: brightness(1.2);
}
.scn-cassys-recognition .cr-hand-touch {
  position: absolute; bottom: 32%; left: 38%; width: 8%; height: 12%; 
  background: radial-gradient(circle at 50% 30%, #d0c4a0 0%, #b0a080 100%); 
  border-radius: 30% 70% 50% 50% / 50% 50% 50% 50%; 
  transform-origin: 50% 80%; animation: cr-hand-touch 2s ease-in-out infinite alternate;
}
.scn-cassys-recognition .cr-shadow-sharp {
  position: absolute; bottom: 0; left: 0; right: 0; height: 35%; 
  background: linear-gradient(180deg, rgba(0,0,0,0) 0%, rgba(0,0,0,0.3) 100%); 
  animation: cr-shadow 10s ease-in-out infinite alternate;
}
@keyframes cr-backdrop { 0% { opacity: 0.9; } 50% { opacity: 1; } 100% { opacity: 0.85; } }
@keyframes cr-sunbeam { 0% { transform: translateX(-5px) scale(1); opacity: 0.6; } 50% { transform: translateX(5px) scale(1.05); opacity: 0.8; } 100% { transform: translateX(-5px) scale(0.95); opacity: 0.5; } }
@keyframes cr-figure-left { 0% { transform: translateY(0) rotate(0deg); } 30% { transform: translateY(-3px) rotate(-2deg); } 60% { transform: translateY(0) rotate(1deg); } 100% { transform: translateY(2px) rotate(0deg); } }
@keyframes cr-figure-right { 0% { transform: translateY(0) rotate(0deg); } 30% { transform: translateY(-2px) rotate(1deg); } 60% { transform: translateY(0) rotate(-1deg); } 100% { transform: translateY(1px) rotate(0deg); } }
@keyframes cr-hand-touch { 0% { transform: translateX(0) rotate(0deg); } 50% { transform: translateX(2px) rotate(-5deg); } 100% { transform: translateX(0) rotate(5deg); } }
@keyframes cr-shadow { 0% { opacity: 0.6; } 50% { opacity: 0.4; } 100% { opacity: 0.7; } }

.scn-results-intro {
  background: linear-gradient(180deg, #d6c8a0 0%, #b8a880 40%, #a09070 100%), radial-gradient(ellipse at 50% 20%, #f0e4c0 0%, transparent 60%);
}
.scn-results-intro .ri-backdrop {
  position: absolute; inset: 0; background: linear-gradient(135deg, #e0d0b0 0%, #c0b090 100%); animation: ri-backdrop 12s ease-in-out infinite alternate;
}
.scn-results-intro .ri-window-light {
  position: absolute; top: 0; left: 20%; width: 30%; height: 100%; 
  background: linear-gradient(180deg, rgba(255,245,200,0.4) 0%, transparent 60%); 
  filter: blur(6px); animation: ri-light 15s ease-in-out infinite alternate;
}
.scn-results-intro .ri-desktop {
  position: absolute; bottom: 15%; left: 10%; right: 10%; height: 30%; 
  background: linear-gradient(180deg, #8a7a60 0%, #6a5a40 100%); 
  border-radius: 5% 5% 0 0; box-shadow: 0 -4px 12px rgba(0,0,0,0.2); 
  transform-origin: bottom center; animation: ri-desk 8s ease-in-out infinite;
}
.scn-results-intro .ri-document {
  position: absolute; bottom: 28%; left: 30%; width: 35%; height: 18%; 
  background: linear-gradient(135deg, #f0e4c8 0%, #d8c8a8 100%); 
  border: 2px solid #b0a080; border-radius: 3%; 
  box-shadow: 0 2px 6px rgba(0,0,0,0.1); animation: ri-doc 10s ease-in-out infinite alternate;
}
.scn-results-intro .ri-hand {
  position: absolute; bottom: 24%; left: 48%; width: 10%; height: 20%; 
  background: radial-gradient(circle at 50% 30%, #d0c4a0 0%, #b0a080 100%); 
  border-radius: 30% 70% 50% 50% / 50% 50% 50% 50%; 
  transform-origin: 50% 90%; animation: ri-hand 4s ease-in-out infinite alternate;
}
.scn-results-intro .ri-pen {
  position: absolute; bottom: 26%; left: 52%; width: 12%; height: 4%; 
  background: linear-gradient(90deg, #5a4a3a 0%, #4a3a2a 50%, #7a6a5a 100%); 
  border-radius: 10% 80% 80% 10%; transform: rotate(-20deg); 
  transform-origin: left center; animation: ri-pen 3s ease-in-out infinite alternate;
}
@keyframes ri-backdrop { 0% { opacity: 0.9; } 50% { opacity: 1; } 100% { opacity: 0.85; } }
@keyframes ri-light { 0% { transform: translateX(0); opacity: 0.4; } 50% { transform: translateX(10px); opacity: 0.6; } 100% { transform: translateX(-5px); opacity: 0.3; } }
@keyframes ri-desk { 0% { transform: scale(1); } 50% { transform: scale(1.01); } 100% { transform: scale(0.99); } }
@keyframes ri-doc { 0% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-2px) rotate(0.5deg); } 100% { transform: translateY(0) rotate(-0.5deg); } }
@keyframes ri-hand { 0% { transform: translateX(0) rotate(0deg); } 50% { transform: translateX(3px) rotate(-3deg); } 100% { transform: translateX(-2px) rotate(2deg); } }
@keyframes ri-pen { 0% { transform: rotate(-20deg) translateX(0); } 50% { transform: rotate(-15deg) translateX(2px); } 100% { transform: rotate(-25deg) translateX(-1px); } }

.scn-search-in-canada {
  background: linear-gradient(180deg, #b8d4e0 0%, #8baec4 40%, #6a8a9a 100%), radial-gradient(ellipse at 50% 30%, #d8e8f0 0%, transparent 60%);
}
.scn-search-in-canada .sc-backdrop {
  position: absolute; inset: 0; background: linear-gradient(180deg, #c0d8e0 0%, #90a8b8 100%); animation: sc-backdrop 20s ease-in-out infinite alternate;
}
.scn-search-in-canada .sc-sky {
  position: absolute; top: 0; left: 0; right: 0; height: 55%; 
  background: linear-gradient(180deg, #c8e0f0 0%, #a0c0d0 60%, transparent); 
  animation: sc-sky 25s ease-in-out infinite alternate;
}
.scn-search-in-canada .sc-sun {
  position: absolute; top: 8%; right: 20%; width: 8%; height: 8%; 
  background: radial-gradient(circle, #fff4d0 0%, #f0d8a0 40%, transparent 70%); 
  border-radius: 50%; box-shadow: 0 0 30px 15px rgba(240,216,160,0.4); 
  animation: sc-sun 30s ease-in-out infinite alternate;
}
.scn-search-in-canada .sc-buildings {
  position: absolute; bottom: 30%; left: 5%; right: 5%; height: 25%; 
  background: linear-gradient(180deg, #8a9a9a 0%, #6a7a7a 100%); 
  border-radius: 10% 10% 0 0; filter: blur(1px); 
  animation: sc-buildings 15s ease-in-out infinite alternate;
}
.scn-search-in-canada .sc-figures-group {
  position: absolute; bottom: 18%; left: 20%; right: 20%; height: 20%; 
  background: linear-gradient(90deg, transparent 0%, #3a4a4a 20%, #4a5a5a 50%, #3a4a4a 80%, transparent 100%); 
  border-radius: 40% 40% 20% 20% / 60% 60% 40% 40%; 
  transform-origin: bottom center; animation: sc-figures 8s ease-in-out infinite alternate;
}
.scn-search-in-canada .sc-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.2) 100%); 
  animation: sc-shadow 12s ease-in-out infinite alternate;
}
@keyframes sc-backdrop { 0% { opacity: 0.9; } 50% { opacity: 1; } 100% { opacity: 0.85; } }
@keyframes sc-sky { 0% { transform: translateY(0); } 50% { transform: translateY(-3px); } 100% { transform: translateY(2px); } }
@keyframes sc-sun { 0% { transform: scale(1); opacity: 0.8; } 50% { transform: scale(1.05); opacity: 0.9; } 100% { transform: scale(0.95); opacity: 0.7; } }
@keyframes sc-buildings { 0% { transform: translateY(0) scaleY(1); } 50% { transform: translateY(-2px) scaleY(1.02); } 100% { transform: translateY(1px) scaleY(0.98); } }
@keyframes sc-figures { 0% { transform: translateX(0) scaleX(1); } 50% { transform: translateX(3px) scaleX(1.02); } 100% { transform: translateX(-2px) scaleX(0.98); } }
@keyframes sc-shadow { 0% { opacity: 0.3; } 50% { opacity: 0.2; } 100% { opacity: 0.4; } }

.scn-george-and-eliza-at-home {
  background: linear-gradient(180deg, #5a2a1a 0%, #8a4a2a 30%, #c07040 60%, #e8a060 100%), radial-gradient(ellipse at 50% 70%, #f0b060 0%, transparent 60%);
}
.scn-george-and-eliza-at-home .gh-backdrop {
  position: absolute; inset: 0; background: linear-gradient(180deg, #4a2010 0%, #7a3a1a 50%, #a06030 100%); 
  animation: gh-backdrop 10s ease-in-out infinite alternate;
}
.scn-george-and-eliza-at-home .gh-fireplace {
  position: absolute; bottom: 10%; left: 10%; width: 25%; height: 50%; 
  background: linear-gradient(180deg, #6a3a2a 0%, #3a1a0a 100%); 
  border-radius: 10% 10% 5% 5%; box-shadow: inset 0 -10px 20px rgba(0,0,0,0.4); 
  animation: gh-fireplace 8s ease-in-out infinite alternate;
}
.scn-george-and-eliza-at-home .gh-fire-glow {
  position: absolute; bottom: 20%; left: 14%; width: 18%; height: 25%; 
  background: radial-gradient(circle, #f0c060 0%, #e08030 40%, transparent 70%); 
  border-radius: 50%; filter: blur(8px); 
  animation: gh-fireglow 2s ease-in-out infinite alternate;
}
.scn-george-and-eliza-at-home .gh-table {
  position: absolute; bottom: 12%; left: 40%; width: 35%; height: 15%; 
  background: linear-gradient(180deg, #7a5a3a 0%, #5a3a1a 100%); 
  border-radius: 5% 5% 0 0; box-shadow: 0 -4px 8px rgba(0,0,0,0.3); 
  animation: gh-table 9s ease-in-out infinite alternate;
}
.scn-george-and-eliza-at-home .gh-george {
  position: absolute; bottom: 15%; left: 45%; width: 12%; height: 30%; 
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0a00 100%); 
  border-radius: 45% 45% 30% 30% / 50% 50% 40% 40%; 
  transform-origin: bottom center; animation: gh-george 6s ease-in-out infinite alternate;
}
.scn-george-and-eliza-at-home .gh-eliza {
  position: absolute; bottom: 14%; left: 58%; width: 10%; height: 28%; 
  background: linear-gradient(180deg, #5a3a2a 0%, #3a1a0a 100%); 
  border-radius: 50% 50% 40% 40% / 55% 55% 45% 45%; 
  transform-origin: bottom center; animation: gh-eliza 7s ease-in-out infinite alternate;
}
.scn-george-and-eliza-at-home .gh-tea-cup {
  position: absolute; bottom: 22%; left: 55%; width: 5%; height: 6%; 
  background: radial-gradient(circle, #e8c8a0 0%, #c8a880 100%); 
  border-radius: 50% 50% 40% 40%; box-shadow: 0 0 6px rgba(200,168,128,0.5); 
  animation: gh-cup 4s ease-in-out infinite alternate;
}
.scn-george-and-eliza-at-home .gh-book {
  position: absolute; bottom: 32%; left: 46%; width: 10%; height: 12%; 
  background: linear-gradient(135deg, #6a5a4a 0%, #4a3a2a 100%); 
  border-radius: 5% 5% 15% 15%; transform: rotate(-10deg); 
  transform-origin: bottom center; animation: gh-book 10s ease-in-out infinite alternate;
}
@keyframes gh-backdrop { 0% { opacity: 0.9; } 50% { opacity: 1; } 100% { opacity: 0.8; } }
@keyframes gh-fireplace { 0% { transform: scaleY(1); } 50% { transform: scaleY(1.02); } 100% { transform: scaleY(0.98); } }
@keyframes gh-fireglow { 0% { transform: scale(1); opacity: 0.8; } 50% { transform: scale(1.1); opacity: 1; } 100% { transform: scale(0.9); opacity: 0.6; } }
@keyframes gh-table { 0% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-2px) rotate(0.5deg); } 100% { transform: translateY(1px) rotate(-0.5deg); } }
@keyframes gh-george { 0% { transform: translateY(0) rotate(0deg); } 30% { transform: translateY(-2px) rotate(1deg); } 60% { transform: translateY(0) rotate(-1deg); } 100% { transform: translateY(1px) rotate(0deg); } }
@keyframes gh-eliza { 0% { transform: translateX(0) rotate(0deg); } 30% { transform: translateX(3px) rotate(-2deg); } 60% { transform: translateX(-1px) rotate(1deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes gh-cup { 0% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-3px) rotate(5deg); } 100% { transform: translateY(0) rotate(-3deg); } }
@keyframes gh-book { 0% { transform: rotate(-10deg) translateY(0); } 50% { transform: rotate(-8deg) translateY(-2px); } 100% { transform: rotate(-12deg) translateY(1px); } }

/* cassys-disguise */
.scn-cassys-disguise {
  background: linear-gradient(180deg, #3a4a6a 0%, #6a7a8a 40%, #b0a080 70%, #d0c0a0 100%),
              radial-gradient(ellipse at 30% 60%, #c0a060 0%, transparent 60%);
  background-blend-mode: overlay;
}
.scn-cassys-disguise .room-wall {
  position: absolute; inset: 0; background: linear-gradient(90deg, #4a5a6a 0%, #2a3a4a 100%); opacity: 0.5;
}
.scn-cassys-disguise .mirror {
  position: absolute; left: 25%; top: 20%; width: 30%; height: 40%;
  background: linear-gradient(135deg, #b0c8d8 0%, #8090a0 100%);
  border-radius: 50% 50% 10% 10% / 40% 40% 10% 10%;
  box-shadow: inset 0 0 30px rgba(0,0,0,0.3), 0 8px 20px rgba(0,0,0,0.4);
  animation: cd-mirror 12s ease-in-out infinite alternate;
}
.scn-cassys-disguise .figure {
  position: absolute; left: 28%; bottom: 30%; width: 20%; height: 50%;
  background: linear-gradient(180deg, #7a6a5a 0%, #4a3a2a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: cd-figure 8s ease-in-out infinite;
}
.scn-cassys-disguise .veil {
  position: absolute; left: 25%; top: 20%; width: 25%; height: 30%;
  background: radial-gradient(ellipse at 50% 30%, rgba(220,210,200,0.6) 0%, transparent 70%);
  border-radius: 30% 40% 10% 10%;
  filter: blur(2px);
  animation: cd-veil 6s ease-in-out infinite alternate;
}
.scn-cassys-disguise .jewel {
  position: absolute; left: 30%; top: 25%; width: 4%; height: 4%;
  background: radial-gradient(circle, #c0a060 0%, #806030 80%);
  border-radius: 50%;
  box-shadow: 0 0 20px 6px #b08050, 0 0 40px 12px rgba(176,128,80,0.4);
  animation: cd-jewel 3s ease-in-out infinite alternate;
}
.scn-cassys-disguise .gown {
  position: absolute; left: 25%; bottom: 10%; width: 25%; height: 20%;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 20% 20% 0 0;
}
.scn-cassys-disguise .dawn-light {
  position: absolute; top: 0; right: 0; width: 40%; height: 100%;
  background: linear-gradient(135deg, rgba(255,200,150,0.4) 0%, transparent 100%);
  animation: cd-light 15s ease-in-out infinite alternate;
}
.scn-cassys-disguise .dust {
  position: absolute; top: 10%; left: 10%; width: 80%; height: 80%;
  background: radial-gradient(circle at 30% 40%, rgba(255,220,180,0.1) 0%, transparent 50%);
  filter: blur(4px);
  animation: cd-dust 20s linear infinite;
}
@keyframes cd-mirror { 0% { transform: scaleY(1); opacity:0.9; } 50% { transform: scaleY(1.02); opacity:1; } 100% { transform: scaleY(0.98); opacity:0.85; } }
@keyframes cd-figure { 0% { transform: rotate(-1deg); } 50% { transform: rotate(1deg) translateY(-2px); } 100% { transform: rotate(-0.5deg); } }
@keyframes cd-veil { 0% { opacity:0.6; transform: translateY(0); } 50% { opacity:0.8; transform: translateY(-5px); } 100% { opacity:0.5; transform: translateY(2px); } }
@keyframes cd-jewel { 0% { transform: scale(1); box-shadow: 0 0 20px 6px #b08050; } 50% { transform: scale(1.3); box-shadow: 0 0 30px 10px #d0a070; } 100% { transform: scale(0.9); box-shadow: 0 0 15px 4px #906040; } }
@keyframes cd-light { 0% { opacity:0.5; } 50% { opacity:0.9; } 100% { opacity:0.6; } }
@keyframes cd-dust { 0% { transform: translate(0,0) scale(1); } 50% { transform: translate(10px,-20px) scale(1.1); } 100% { transform: translate(-10px,10px) scale(0.9); } }

/* cassy-and-george-at-tavern */
.scn-cassy-and-george-at-tavern {
  background: linear-gradient(180deg, #e8dcc8 0%, #c8b8a0 30%, #a09070 60%, #8a7a5a 100%),
              radial-gradient(ellipse at 50% 20%, #f0e8d0 0%, transparent 60%);
}
.scn-cassy-and-george-at-tavern .table {
  position: absolute; bottom: 20%; left: 20%; width: 60%; height: 15%;
  background: linear-gradient(180deg, #6a5a3a 0%, #4a3a1a 100%);
  border-radius: 10px;
  box-shadow: 0 4px 8px rgba(0,0,0,0.5);
}
.scn-cassy-and-george-at-tavern .figure-left {
  position: absolute; left: 25%; bottom: 35%; width: 18%; height: 40%;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: ct-left 6s ease-in-out infinite;
}
.scn-cassy-and-george-at-tavern .figure-right {
  position: absolute; right: 25%; bottom: 35%; width: 18%; height: 40%;
  background: linear-gradient(180deg, #6a5a4a 0%, #4a3a2a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: ct-right 6s ease-in-out infinite 0.5s;
}
.scn-cassy-and-george-at-tavern .window {
  position: absolute; top: 5%; left: 10%; width: 40%; height: 35%;
  background: linear-gradient(135deg, #b0c8d8 0%, #8090a0 100%);
  border-radius: 10% 10% 10% 10% / 40% 40% 20% 20%;
  box-shadow: inset 0 0 20px rgba(255,255,200,0.3);
  animation: ct-window 10s linear infinite alternate;
}
.scn-cassy-and-george-at-tavern .lantern {
  position: absolute; top: 10%; left: 55%; width: 6%; height: 8%;
  background: radial-gradient(circle, #ffd080 0%, #b08030 80%);
  border-radius: 50%;
  box-shadow: 0 0 40px 10px #ffd080, 0 0 80px 20px rgba(255,208,128,0.3);
  animation: ct-lantern 4s ease-in-out infinite alternate;
}
.scn-cassy-and-george-at-tavern .mug {
  position: absolute; bottom: 20%; left: 40%; width: 6%; height: 8%;
  background: linear-gradient(180deg, #8a7a5a 0%, #5a4a2a 100%);
  border-radius: 20% 20% 10% 10%;
  box-shadow: 0 2px 4px rgba(0,0,0,0.4);
}
.scn-cassy-and-george-at-tavern .shadow {
  position: absolute; bottom: 0; left: 20%; width: 60%; height: 30%;
  background: linear-gradient(180deg, rgba(0,0,0,0.2) 0%, transparent 100%);
  animation: ct-shadow 8s ease-in-out infinite;
}
@keyframes ct-left { 0% { transform: rotate(0deg); } 50% { transform: rotate(2deg) translateY(-2px); } 100% { transform: rotate(-1deg); } }
@keyframes ct-right { 0% { transform: rotate(0deg); } 50% { transform: rotate(-2deg) translateY(-2px); } 100% { transform: rotate(1deg); } }
@keyframes ct-window { 0% { opacity:0.8; } 50% { opacity:1; box-shadow: inset 0 0 30px rgba(255,255,200,0.5); } 100% { opacity:0.7; } }
@keyframes ct-lantern { 0% { transform: scale(1); box-shadow: 0 0 30px 8px #ffd080; } 50% { transform: scale(1.2); box-shadow: 0 0 60px 15px #ffe080; } 100% { transform: scale(0.9); box-shadow: 0 0 20px 5px #b08030; } }
@keyframes ct-shadow { 0% { opacity:0.5; } 50% { opacity:0.8; } 100% { opacity:0.4; } }

/* aboard-steamer */
.scn-aboard-steamer {
  background: linear-gradient(180deg, #b0c8e0 0%, #d0e0f0 40%, #e0e8f0 70%, #f0f8ff 100%),
              radial-gradient(ellipse at 50% 0%, #ffffff 0%, transparent 80%);
}
.scn-aboard-steamer .sky {
  position: absolute; top: 0; left: 0; right: 0; height: 50%;
  background: linear-gradient(180deg, #90b8d0 0%, #b0c8e0 100%);
  animation: as-sky 20s ease-in-out infinite alternate;
}
.scn-aboard-steamer .river {
  position: absolute; bottom: 0; left: 0; right: 0; height: 60%;
  background: linear-gradient(180deg, #4a7a8a 0%, #2a5a6a 100%);
  border-radius: 30% 30% 0 0 / 50% 50% 0 0;
  animation: as-river 8s ease-in-out infinite alternate;
}
.scn-aboard-steamer .hull {
  position: absolute; bottom: 35%; left: 20%; width: 60%; height: 15%;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0a00 100%);
  border-radius: 20% 20% 10% 10% / 40% 40% 20% 20%;
}
.scn-aboard-steamer .paddle {
  position: absolute; bottom: 30%; right: 25%; width: 10%; height: 15%;
  background: radial-gradient(ellipse at 50% 50%, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 50%;
  animation: as-paddle 4s linear infinite;
}
.scn-aboard-steamer .smokestack {
  position: absolute; bottom: 45%; left: 30%; width: 6%; height: 20%;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 10% 10% 0 0;
}
.scn-aboard-steamer .deck-chair {
  position: absolute; bottom: 37%; left: 40%; width: 12%; height: 8%;
  background: linear-gradient(135deg, #8a7a5a 0%, #5a4a2a 100%);
  border-radius: 20% 20% 10% 10%;
  transform: rotate(-5deg);
  animation: as-chair 12s ease-in-out infinite;
}
.scn-aboard-steamer .figure-seated {
  position: absolute; bottom: 38%; left: 42%; width: 8%; height: 14%;
  background: linear-gradient(180deg, #7a6a5a 0%, #4a3a2a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: as-figure 8s ease-in-out infinite;
}
.scn-aboard-steamer .ripple {
  position: absolute; bottom: 30%; left: 10%; width: 80%; height: 20%;
  background: repeating-linear-gradient(90deg, transparent 0%, rgba(255,255,255,0.1) 5%, transparent 10%);
  animation: as-ripple 3s linear infinite;
}
@keyframes as-sky { 0% { opacity:0.8; } 50% { opacity:1; } 100% { opacity:0.9; } }
@keyframes as-river { 0% { transform: translateY(0); } 50% { transform: translateY(-3px); } 100% { transform: translateY(0); } }
@keyframes as-paddle { 0% { transform: rotate(0deg); } 100% { transform: rotate(360deg); } }
@keyframes as-chair { 0% { transform: rotate(-5deg) translateY(0); } 50% { transform: rotate(-3deg) translateY(-2px); } 100% { transform: rotate(-5deg) translateY(0); } }
@keyframes as-figure { 0% { transform: rotate(0deg); } 50% { transform: rotate(2deg) translateY(-1px); } 100% { transform: rotate(0deg); } }
@keyframes as-ripple { 0% { transform: translateX(0); } 100% { transform: translateX(-100%); } }

/* cassy-tells-her-story */
.scn-cassy-tells-her-story {
  background: linear-gradient(180deg, #e8d8c0 0%, #c8b8a0 40%, #a09070 70%, #8a7a5a 100%),
              radial-gradient(ellipse at 40% 30%, #ffe8c0 0%, transparent 60%);
}
.scn-cassy-tells-her-story .bg-warm {
  position: absolute; inset: 0; background: radial-gradient(circle at 30% 20%, rgba(255,200,100,0.4) 0%, transparent 80%);
  animation: cs-bg 10s ease-in-out infinite alternate;
}
.scn-cassy-tells-her-story .window-light {
  position: absolute; top: 0; left: 0; width: 30%; height: 100%;
  background: linear-gradient(135deg, rgba(255,240,220,0.5) 0%, transparent 100%);
  animation: cs-window 8s ease-in-out infinite alternate;
}
.scn-cassy-tells-her-story .figure-cassy {
  position: absolute; left: 25%; bottom: 20%; width: 22%; height: 60%;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: cs-cassy 5s ease-in-out infinite;
}
.scn-cassy-tells-her-story .figure-george {
  position: absolute; right: 25%; bottom: 20%; width: 20%; height: 55%;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: cs-george 5s ease-in-out infinite 0.8s;
}
.scn-cassy-tells-her-story .hand-gesture {
  position: absolute; left: 35%; bottom: 45%; width: 6%; height: 10%;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 50% 50% 30% 30% / 40% 40% 30% 30%;
  animation: cs-hand 3s ease-in-out infinite alternate;
}
.scn-cassy-tells-her-story .shadow-sharp {
  position: absolute; bottom: 0; left: 20%; width: 60%; height: 20%;
  background: linear-gradient(180deg, rgba(0,0,0,0.3) 0%, transparent 100%);
  animation: cs-shadow 6s ease-in-out infinite;
}
.scn-cassy-tells-her-story .curtain {
  position: absolute; top: 0; left: 0; width: 15%; height: 100%;
  background: linear-gradient(180deg, #6a4a3a 0%, #3a2a1a 100%);
  border-radius: 0 20% 20% 0;
  animation: cs-curtain 12s ease-in-out infinite alternate;
}
@keyframes cs-bg { 0% { opacity:0.7; } 50% { opacity:1; } 100% { opacity:0.8; } }
@keyframes cs-window { 0% { transform: translateX(0); opacity:0.8; } 50% { transform: translateX(10px); opacity:1; } 100% { transform: translateX(0); opacity:0.7; } }
@keyframes cs-cassy { 0% { transform: rotate(-1deg) } 50% { transform: rotate(2deg) translateY(-3px); } 100% { transform: rotate(0deg); } }
@keyframes cs-george { 0% { transform: rotate(1deg); } 50% { transform: rotate(-1deg) translateY(-2px); } 100% { transform: rotate(-0.5deg); } }
@keyframes cs-hand { 0% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-8px) rotate(10deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes cs-shadow { 0% { opacity:0.4; } 50% { opacity:0.7; } 100% { opacity:0.3; } }
@keyframes cs-curtain { 0% { transform: scaleX(1); } 50% { transform: scaleX(1.05); } 100% { transform: scaleX(0.95); } }

.scn-kitchen-hustle {
  background:
    linear-gradient(180deg, #f5e6d3 0%, #e8d5b5 30%, #d4b88a 60%, #c4a070 100%),
    radial-gradient(ellipse at 30% 60%, #ffddaa 0%, transparent 60%);
}
.scn-kitchen-hustle .stove {
  position: absolute; bottom: 10%; left: 10%; width: 35%; height: 28%;
  background: linear-gradient(180deg, #6b4c3a 0%, #4a3224 100%);
  border-radius: 8% 8% 4% 4%;
  box-shadow: inset 0 -6px 12px rgba(0,0,0,0.3), 0 4px 8px rgba(0,0,0,0.2);
  animation: kh-stove 8s ease-in-out infinite;
}
.scn-kitchen-hustle .counter {
  position: absolute; bottom: 5%; left: 5%; right: 5%; height: 12%;
  background: linear-gradient(180deg, #c9a87c 0%, #b08b60 100%);
  border-radius: 2% 2% 0 0;
  box-shadow: inset 0 4px 8px rgba(0,0,0,0.1);
}
.scn-kitchen-hustle .bowl {
  position: absolute; bottom: 18%; left: 28%; width: 16%; height: 14%;
  background: radial-gradient(circle, #f0dbb0 0%, #d4b88a 70%, #b8956a 100%);
  border-radius: 50%;
  box-shadow: 0 4px 10px rgba(0,0,0,0.2);
  animation: kh-bowl 6s ease-in-out infinite alternate;
}
.scn-kitchen-hustle .rolling-pin {
  position: absolute; bottom: 22%; left: 50%; width: 20%; height: 4%;
  background: linear-gradient(90deg, #8b7355 0%, #a08060 50%, #8b7355 100%);
  border-radius: 50%;
  transform: rotate(15deg);
  animation: kh-pin 5s ease-in-out infinite alternate;
}
.scn-kitchen-hustle .steam {
  position: absolute; bottom: 42%; left: 20%; width: 12%; height: 20%;
  background: radial-gradient(ellipse, rgba(255,240,220,0.6) 0%, transparent 70%);
  filter: blur(8px);
  border-radius: 50%;
  animation: kh-steam 4s ease-in-out infinite;
}
.scn-kitchen-hustle .steam-a { left: 18%; animation-delay: 0s; }
.scn-kitchen-hustle .steam-b { left: 28%; width: 10%; animation-delay: 1.5s; }
.scn-kitchen-hustle .warm-glow {
  position: absolute; bottom: 8%; right: 20%; width: 20%; height: 30%;
  background: radial-gradient(circle, #ffd080 0%, transparent 70%);
  opacity: 0.5;
  animation: kh-glow 3s ease-in-out infinite alternate;
}
.scn-kitchen-hustle .window-light {
  position: absolute; top: 8%; right: 8%; width: 25%; height: 35%;
  background: linear-gradient(180deg, #fff8e7 0%, transparent 100%);
  border-radius: 4%;
  opacity: 0.8;
  box-shadow: 0 0 30px 10px rgba(255,248,231,0.4);
  animation: kh-window 12s ease-in-out infinite alternate;
}

@keyframes kh-stove { 0%,100% { opacity:0.9; } 50% { opacity:1; box-shadow: inset 0 -6px 12px rgba(0,0,0,0.3), 0 4px 12px rgba(0,0,0,0.3); } }
@keyframes kh-bowl { 0% { transform: translateY(0) scale(1); } 50% { transform: translateY(-3px) scale(1.02); } 100% { transform: translateY(1px) scale(0.98); } }
@keyframes kh-pin { 0% { transform: rotate(10deg) translateX(0); } 50% { transform: rotate(20deg) translateX(5px); } 100% { transform: rotate(10deg) translateX(0); } }
@keyframes kh-steam { 0% { transform: translateY(0) scale(1); opacity:0.6; } 50% { transform: translateY(-20px) scale(1.5); opacity:0.3; } 100% { transform: translateY(0) scale(1); opacity:0.6; } }
@keyframes kh-glow { 0% { opacity:0.4; transform: scale(0.95); } 50% { opacity:0.6; transform: scale(1.1); } 100% { opacity:0.5; transform: scale(1); } }
@keyframes kh-window { 0% { opacity:0.6; } 50% { opacity:1; } 100% { opacity:0.7; } }

.scn-neighborly-news {
  background:
    linear-gradient(180deg, #f0eae0 0%, #e0d8c8 40%, #d0c4b0 100%),
    radial-gradient(ellipse at 60% 20%, #fff8f0 0%, transparent 70%);
}
.scn-neighborly-news .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 35%;
  background: linear-gradient(180deg, #b8a890 0%, #9c8a74 100%);
  border-radius: 0 0 0 0;
}
.scn-neighborly-news .wall {
  position: absolute; top: 0; left: 0; right: 0; height: 65%;
  background: linear-gradient(180deg, #f5efe6 0%, #e8dccc 100%);
  border-bottom: 2px solid #c8b8a0;
}
.scn-neighborly-news .table {
  position: absolute; bottom: 30%; left: 20%; width: 60%; height: 18%;
  background: linear-gradient(180deg, #a08060 0%, #8b7050 100%);
  border-radius: 4% 4% 2% 2%;
  box-shadow: 0 8px 16px rgba(0,0,0,0.15);
  animation: nn-table 10s ease-in-out infinite;
}
.scn-neighborly-news .chair {
  position: absolute; bottom: 28%; left: 12%; width: 8%; height: 22%;
  background: linear-gradient(180deg, #7a6a5a 0%, #5a4a3a 100%);
  border-radius: 20% 20% 10% 10%;
  animation: nn-chair 12s ease-in-out infinite alternate;
}
.scn-neighborly-news .bread-basket {
  position: absolute; bottom: 42%; left: 38%; width: 14%; height: 10%;
  background: radial-gradient(ellipse, #d4a870 0%, #b89060 70%, #a07850 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%;
  box-shadow: 0 4px 8px rgba(0,0,0,0.2);
  animation: nn-basket 6s ease-in-out infinite alternate;
}
.scn-neighborly-news .curtain {
  position: absolute; top: 5%; width: 20%; height: 55%;
  background: linear-gradient(180deg, #f0e8d8 0%, #d8c8b0 100%);
  border-radius: 0 0 30% 30%;
  opacity: 0.8;
  animation: nn-curtain 15s ease-in-out infinite;
}
.scn-neighborly-news .curtain-l { left: 2%; transform-origin: left top; }
.scn-neighborly-news .curtain-r { right: 2%; transform-origin: right top; animation-delay: 2s; }
.scn-neighborly-news .sunbeam {
  position: absolute; top: 10%; left: 35%; width: 30%; height: 70%;
  background: linear-gradient(180deg, rgba(255,248,230,0.3) 0%, transparent 100%);
  transform: skewX(-10deg);
  filter: blur(10px);
  animation: nn-sunbeam 20s linear infinite;
}

@keyframes nn-table { 0%,100% { transform: translateY(0); } 50% { transform: translateY(-2px); } }
@keyframes nn-chair { 0% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-3px) rotate(1deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes nn-basket { 0% { transform: scale(1); } 50% { transform: scale(1.02); } 100% { transform: scale(0.98); } }
@keyframes nn-curtain { 0% { transform: scaleX(1); } 50% { transform: scaleX(1.05); } 100% { transform: scaleX(1); } }
@keyframes nn-sunbeam { 0% { transform: skewX(-10deg) translateX(-10px); opacity:0.3; } 50% { transform: skewX(-5deg) translateX(20px); opacity:0.6; } 100% { transform: skewX(-10deg) translateX(-10px); opacity:0.3; } }

.scn-simeon-arrival {
  background:
    linear-gradient(180deg, #f7e8d4 0%, #e9d4b8 40%, #d4b88a 100%),
    radial-gradient(ellipse at 70% 30%, #fff0d0 0%, transparent 60%);
}
.scn-simeon-arrival .sky-floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 40%;
  background: linear-gradient(180deg, #b8a080 0%, #a0886a 100%);
}
.scn-simeon-arrival .doorway {
  position: absolute; bottom: 25%; left: 30%; width: 40%; height: 60%;
  background: #4a3a2a;
  border-radius: 10% 10% 0 0;
  box-shadow: inset 0 0 20px rgba(0,0,0,0.4);
  animation: sa-door 8s ease-in-out infinite;
}
.scn-simeon-arrival .figure {
  position: absolute; bottom: 28%; left: 40%; width: 12%; height: 40%;
  background: linear-gradient(180deg, #3a3028 0%, #2a2018 100%);
  border-radius: 30% 30% 20% 20% / 50% 50% 30% 30%;
  animation: sa-figure 10s ease-in-out infinite;
}
.scn-simeon-arrival .hat {
  position: absolute; bottom: 65%; left: 40%; width: 14%; height: 6%;
  background: linear-gradient(180deg, #4a3a2a 0%, #3a2a1a 100%);
  border-radius: 50% 50% 20% 20%;
  animation: sa-hat 6s ease-in-out infinite alternate;
}
.scn-simeon-arrival .coat {
  position: absolute; bottom: 35%; left: 38%; width: 16%; height: 30%;
  background: linear-gradient(180deg, #5a4a3a 0%, #4a3a2a 100%);
  border-radius: 10% 10% 20% 20% / 30% 30% 40% 40%;
  animation: sa-coat 12s ease-in-out infinite;
}
.scn-simeon-arrival .shadow {
  position: absolute; bottom: 25%; left: 38%; width: 20%; height: 8%;
  background: rgba(0,0,0,0.2);
  border-radius: 50%;
  filter: blur(4px);
  animation: sa-shadow 10s ease-in-out infinite;
}
.scn-simeon-arrival .sunlight {
  position: absolute; top: 5%; left: 55%; width: 35%; height: 50%;
  background: linear-gradient(180deg, rgba(255,240,200,0.4) 0%, transparent 100%);
  transform: rotate(15deg);
  filter: blur(8px);
  animation: sa-sunlight 15s ease-in-out infinite alternate;
}
.scn-simeon-arrival .dust-motes {
  position: absolute; top: 20%; left: 20%; width: 60%; height: 50%;
  background: radial-gradient(circle at 30% 40%, rgba(255,248,230,0.3) 0%, transparent 50%);
  filter: blur(6px);
  animation: sa-dust 20s linear infinite;
}

@keyframes sa-door { 0%,100% { transform: scaleX(1); } 50% { transform: scaleX(0.98); } }
@keyframes sa-figure { 0% { transform: translateY(0) scaleY(1); } 50% { transform: translateY(-2px) scaleY(1.01); } 100% { transform: translateY(0) scaleY(1); } }
@keyframes sa-hat { 0% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-3px) rotate(5deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes sa-coat { 0% { opacity:0.8; } 50% { opacity:1; } 100% { opacity:0.8; } }
@keyframes sa-shadow { 0% { transform: scaleX(1); opacity:0.15; } 50% { transform: scaleX(1.1); opacity:0.25; } 100% { transform: scaleX(1); opacity:0.15; } }
@keyframes sa-sunlight { 0% { opacity:0.3; transform: rotate(10deg) scale(0.9); } 50% { opacity:0.6; transform: rotate(20deg) scale(1.1); } 100% { opacity:0.3; transform: rotate(10deg) scale(0.9); } }
@keyframes sa-dust { 0% { transform: translateY(0) scale(1); opacity:0.2; } 50% { transform: translateY(-15px) scale(1.2); opacity:0.5; } 100% { transform: translateY(0) scale(1); opacity:0.2; } }

.scn-news-of-friends {
  background:
    linear-gradient(180deg, #f0e4d0 0%, #e4d0b8 40%, #d4b88a 100%),
    radial-gradient(ellipse at 80% 40%, #fff8e0 0%, transparent 60%);
}
.scn-news-of-friends .porch-bg {
  position: absolute; top: 0; left: 0; right: 0; bottom: 0;
  background: linear-gradient(180deg, #d4c0a8 0%, #c0a890 100%);
}
.scn-news-of-friends .sink {
  position: absolute; bottom: 15%; left: 15%; width: 25%; height: 20%;
  background: linear-gradient(180deg, #989080 0%, #7a7060 100%);
  border-radius: 10% 10% 5% 5%;
  box-shadow: inset 0 -4px 8px rgba(0,0,0,0.2);
  animation: nf-sink 10s ease-in-out infinite;
}
.scn-news-of-friends .water-stream {
  position: absolute; bottom: 25%; left: 22%; width: 4%; height: 15%;
  background: linear-gradient(180deg, #b0d8e8 0%, transparent 100%);
  border-radius: 50%;
  opacity: 0.6;
  animation: nf-water 4s ease-in-out infinite alternate;
}
.scn-news-of-friends .hands {
  position: absolute; bottom: 30%; left: 18%; width: 12%; height: 10%;
  background: radial-gradient(ellipse, #e0c090 0%, #c8a070 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%;
  animation: nf-hands 5s ease-in-out infinite alternate;
}
.scn-news-of-friends .porch-rail {
  position: absolute; bottom: 40%; left: 0; right: 0; height: 4%;
  background: linear-gradient(90deg, #6a5a4a 0%, #8a7a6a 50%, #6a5a4a 100%);
  border-radius: 2%;
}
.scn-news-of-friends .vine {
  position: absolute; bottom: 30%; width: 8%; height: 50%;
  background: linear-gradient(180deg, #3a6a2a 0%, #2a4a1a 100%);
  border-radius: 40% 40% 20% 20% / 60% 60% 30% 30%;
  animation: nf-vine 12s ease-in-out infinite;
}
.scn-news-of-friends .vine-l { left: 5%; transform-origin: bottom center; }
.scn-news-of-friends .vine-r { right: 5%; transform-origin: bottom center; animation-delay: 3s; animation-direction: reverse; }
.scn-news-of-friends .sun-flare {
  position: absolute; top: 5%; right: 15%; width: 20%; height: 20%;
  background: radial-gradient(circle, rgba(255,240,200,0.5) 0%, transparent 70%);
  filter: blur(15px);
  animation: nf-flare 8s ease-in-out infinite alternate;
}

@keyframes nf-sink { 0%,100% { transform: translateY(0); } 50% { transform: translateY(-2px); } }
@keyframes nf-water { 0% { transform: scaleY(1); opacity:0.4; } 50% { transform: scaleY(1.5); opacity:0.8; } 100% { transform: scaleY(1); opacity:0.4; } }
@keyframes nf-hands { 0% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-2px) rotate(5deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes nf-vine { 0% { transform: scaleY(1) rotate(0deg); } 50% { transform: scaleY(1.05) rotate(2deg); } 100% { transform: scaleY(1) rotate(0deg); } }
@keyframes nf-flare { 0% { opacity:0.2; transform: scale(0.8); } 50% { opacity:0.6; transform: scale(1.3); } 100% { opacity:0.3; transform: scale(0.9); } }

/* Scene 1: tom-dances-with-baby */
.scn-tom-dances-with-baby {
  background: 
    linear-gradient(180deg, #2a1a0a 0%, #4a2a1a 30%, #8a4a2a 60%, #3a1a0a 100%),
    radial-gradient(ellipse at 50% 60%, rgba(255,140,40,0.3) 0%, transparent 70%);
}
.scn-tom-dances-with-baby .fire-glow {
  position: absolute; inset: 40% 20% 30% 30%;
  background: radial-gradient(circle, #ff8c20 0%, #cc4400 40%, transparent 70%);
  border-radius: 50%;
  filter: blur(12px);
  animation: tdw-firepulse 3s ease-in-out infinite alternate;
}
.scn-tom-dances-with-baby .wall-beams {
  position: absolute; inset: 0 0 45% 0;
  background: repeating-linear-gradient(90deg, #3a2a1a 0px, #3a2a1a 4px, transparent 4px, transparent 8px, #2a1a0a 8px, #2a1a0a 12px);
  opacity: 0.6;
}
.scn-tom-dances-with-baby .hearth {
  position: absolute; bottom: 20%; left: 30%; width: 40%; height: 18%;
  background: linear-gradient(180deg, #6a3a1a 0%, #3a1a0a 100%);
  border-radius: 20% 20% 0 0;
  box-shadow: inset 0 -8px 20px rgba(0,0,0,0.5);
}
.scn-tom-dances-with-baby .tom-figure {
  position: absolute; bottom: 26%; left: 38%; width: 16%; height: 40%;
  background: linear-gradient(180deg, #5a3a2a 0%, #3a1a0a 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: tdw-tomdance 2s ease-in-out infinite alternate;
}
.scn-tom-dances-with-baby .baby-figure {
  position: absolute; bottom: 50%; left: 46%; width: 8%; height: 16%;
  background: linear-gradient(135deg, #c8a070 0%, #a08050 100%);
  border-radius: 50% 50% 40% 40%;
  transform-origin: 50% 100%;
  animation: tdw-babybounce 2s ease-in-out infinite alternate;
}
.scn-tom-dances-with-baby .dance-shadow {
  position: absolute; bottom: 20%; left: 30%; width: 30%; height: 8%;
  background: radial-gradient(ellipse, rgba(0,0,0,0.5) 0%, transparent 70%);
  filter: blur(8px);
  animation: tdw-shadowsway 2s ease-in-out infinite alternate;
}
.scn-tom-dances-with-baby .sparkle-1 {
  position: absolute; top: 30%; left: 45%; width: 4px; height: 4px;
  background: #ffd080;
  border-radius: 50%;
  box-shadow: 0 0 8px 2px rgba(255,208,128,0.8);
  animation: tdw-sparkle 1.5s ease-in-out infinite;
}
.scn-tom-dances-with-baby .sparkle-2 {
  position: absolute; top: 35%; left: 55%; width: 3px; height: 3px;
  background: #ffc060;
  border-radius: 50%;
  box-shadow: 0 0 6px 1px rgba(255,192,96,0.7);
  animation: tdw-sparkle 2s ease-in-out infinite 0.5s;
}
@keyframes tdw-firepulse {
  0% { opacity: 0.7; transform: scale(0.95); }
  50% { opacity: 1; transform: scale(1.05); }
  100% { opacity: 0.8; transform: scale(1); }
}
@keyframes tdw-tomdance {
  0% { transform: translateX(0) rotate(-2deg); }
  50% { transform: translateX(2%) rotate(2deg); }
  100% { transform: translateX(0) rotate(-1deg); }
}
@keyframes tdw-babybounce {
  0% { transform: translateY(0) rotate(0deg); }
  50% { transform: translateY(-5%) rotate(-5deg); }
  100% { transform: translateY(2%) rotate(3deg); }
}
@keyframes tdw-shadowsway {
  0% { transform: skewX(-5deg) translateX(-2%); }
  100% { transform: skewX(5deg) translateX(2%); }
}
@keyframes tdw-sparkle {
  0% { opacity: 0; transform: translateY(0) scale(0.5); }
  50% { opacity: 1; transform: translateY(-20px) scale(1.2); }
  100% { opacity: 0; transform: translateY(-40px) scale(0.2); }
}

/* Scene 2: preparing-for-meeting */
.scn-preparing-for-meeting {
  background: 
    linear-gradient(180deg, #3a2a1a 0%, #5a3a1a 30%, #7a4a2a 60%, #2a1a0a 100%),
    radial-gradient(ellipse at 50% 50%, rgba(200,120,40,0.2) 0%, transparent 80%);
}
.scn-preparing-for-meeting .cabin-wall {
  position: absolute; inset: 0 0 50% 0;
  background: repeating-linear-gradient(0deg, #4a3a2a 0px, #4a3a2a 6px, transparent 6px, transparent 10px);
  opacity: 0.3;
}
.scn-preparing-for-meeting .fireplace {
  position: absolute; bottom: 30%; left: 15%; width: 30%; height: 40%;
  background: radial-gradient(ellipse at 50% 30%, #ff8020 0%, #993300 40%, #3a1a0a 70%);
  border-radius: 0 0 50% 50%;
}
.scn-preparing-for-meeting .trundle-bed {
  position: absolute; bottom: 10%; left: 40%; width: 40%; height: 20%;
  background: linear-gradient(180deg, #6a4a2a 0%, #4a2a1a 100%);
  border-radius: 5% 5% 0 0;
  box-shadow: inset 0 -4px 10px rgba(0,0,0,0.5);
  animation: prp-bed 6s ease-in-out infinite;
}
.scn-preparing-for-meeting .aunt-chloe {
  position: absolute; bottom: 28%; left: 35%; width: 12%; height: 40%;
  background: linear-gradient(180deg, #5a3a2a 0%, #3a1a0a 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: prp-chloe 4s ease-in-out infinite alternate;
}
.scn-preparing-for-meeting .mose-pete {
  position: absolute; bottom: 12%; left: 55%; width: 18%; height: 30%;
  background: linear-gradient(135deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 30% 30% 25% 25% / 50% 50% 30% 30%;
  animation: prp-kids 5s ease-in-out infinite;
}
.scn-preparing-for-meeting .blanket-fold {
  position: absolute; bottom: 30%; left: 42%; width: 15%; height: 6%;
  background: #a08050;
  border-radius: 10%;
  opacity: 0.7;
  animation: prp-blanket 8s ease-in-out infinite alternate;
}
.scn-preparing-for-meeting .candle-light {
  position: absolute; top: 25%; left: 25%; width: 10px; height: 10px;
  background: radial-gradient(circle, #ffd080 0%, #ff8020 50%, transparent 80%);
  border-radius: 50%;
  box-shadow: 0 0 30px 10px rgba(255,128,32,0.4);
  animation: prp-candle 3s ease-in-out infinite alternate;
}
.scn-preparing-for-meeting .floor-planks {
  position: absolute; bottom: 0; left: 0; right: 0; height: 10%;
  background: repeating-linear-gradient(90deg, #5a3a1a 0px, #5a3a1a 8px, #4a2a1a 8px, #4a2a1a 16px);
}
@keyframes prp-bed {
  0%, 100% { transform: translateY(0); }
  50% { transform: translateY(-2%); }
}
@keyframes prp-chloe {
  0% { transform: translateX(0) rotate(0deg); }
  50% { transform: translateX(4%) rotate(2deg); }
  100% { transform: translateX(0) rotate(-1deg); }
}
@keyframes prp-kids {
  0% { transform: translateY(0) scale(1); }
  50% { transform: translateY(-3%) scale(1.05); }
  100% { transform: translateY(0) scale(0.95); }
}
@keyframes prp-blanket {
  0% { transform: translateX(0) skewX(0deg); }
  100% { transform: translateX(5%) skewX(10deg); }
}
@keyframes prp-candle {
  0% { opacity: 0.7; transform: scale(0.9); }
  100% { opacity: 1; transform: scale(1.1); }
}

/* Scene 3: furnishing-the-meeting */
.scn-furnishing-the-meeting {
  background: 
    linear-gradient(180deg, #4a3a2a 0%, #6a4a2a 30%, #8a5a3a 60%, #3a2a1a 100%),
    radial-gradient(ellipse at 50% 40%, rgba(200,100,30,0.25) 0%, transparent 70%);
}
.scn-furnishing-the-meeting .log-wall {
  position: absolute; inset: 0 0 40% 0;
  background: repeating-linear-gradient(0deg, #5a3a2a 0px, #5a3a2a 8px, #4a2a1a 8px, #4a2a1a 10px);
  opacity: 0.5;
}
.scn-furnishing-the-meeting .hearth-fire {
  position: absolute; bottom: 25%; left: 20%; width: 30%; height: 35%;
  background: radial-gradient(ellipse at 50% 40%, #ff8020 0%, #aa3300 40%, #3a1a0a 70%);
  border-radius: 0 0 40% 40%;
}
.scn-furnishing-the-meeting .bench-left {
  position: absolute; bottom: 20%; left: 10%; width: 20%; height: 25%;
  background: linear-gradient(180deg, #7a5a3a 0%, #4a2a1a 100%);
  border-radius: 5%;
  transform-origin: bottom center;
  animation: fmt-bench 4s ease-in-out infinite alternate;
}
.scn-furnishing-the-meeting .bench-right {
  position: absolute; bottom: 15%; right: 10%; width: 25%; height: 20%;
  background: linear-gradient(180deg, #7a5a3a 0%, #4a2a1a 100%);
  border-radius: 5%;
  transform-origin: bottom center;
  animation: fmt-bench 4s ease-in-out infinite alternate-reverse;
}
.scn-furnishing-the-meeting .committee-figures {
  position: absolute; bottom: 30%; left: 35%; width: 30%; height: 35%;
  background: repeating-linear-gradient(90deg, #4a3a2a 0px, #4a3a2a 8px, transparent 8px, transparent 12px);
  opacity: 0.6;
  animation: fmt-committee 5s ease-in-out infinite;
}
.scn-furnishing-the-meeting .aunt-chloe-organizing {
  position: absolute; bottom: 35%; left: 5%; width: 10%; height: 40%;
  background: linear-gradient(180deg, #5a3a2a 0%, #3a1a0a 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  animation: fmt-chloe 3s ease-in-out infinite alternate;
}
.scn-furnishing-the-meeting .chair-pile {
  position: absolute; bottom: 10%; left: 50%; width: 25%; height: 20%;
  background:
    linear-gradient(180deg, #6a4a2a 0%, #4a2a1a 100%),
    repeating-linear-gradient(45deg, #5a3a2a 0px, #5a3a2a 4px, transparent 4px, transparent 8px);
  border-radius: 5%;
  animation: fmt-chairs 6s ease-in-out infinite;
}
.scn-furnishing-the-meeting .meeting-flame {
  position: absolute; top: 30%; left: 30%; width: 6px; height: 12px;
  background: radial-gradient(circle at 50% 100%, #ffd080 0%, #ff8020 50%, transparent 80%);
  filter: blur(2px);
  animation: fmt-flame 1.5s ease-in-out infinite alternate;
}
@keyframes fmt-bench {
  0% { transform: scale(1) rotate(0deg); }
  100% { transform: scale(1.05) rotate(3deg); }
}
@keyframes fmt-committee {
  0% { opacity: 0.5; transform: translateY(0); }
  50% { opacity: 0.8; transform: translateY(-2%); }
  100% { opacity: 0.6; transform: translateY(0); }
}
@keyframes fmt-chloe {
  0% { transform: translateX(0) rotate(-2deg); }
  50% { transform: translateX(5%) rotate(2deg); }
  100% { transform: translateX(0) rotate(0deg); }
}
@keyframes fmt-chairs {
  0% { transform: translateY(0) skewX(0deg); }
  50% { transform: translateY(-3%) skewX(5deg); }
  100% { transform: translateY(0) skewX(-2deg); }
}
@keyframes fmt-flame {
  0% { transform: scaleY(1); opacity: 0.8; }
  100% { transform: scaleY(1.3); opacity: 1; }
}

/* Scene 4: mose-mimics-uncle-peter */
.scn-mose-mimics-uncle-peter {
  background: 
    linear-gradient(180deg, #3a1a0a 0%, #5a2a1a 30%, #7a3a1a 60%, #2a0a00 100%),
    radial-gradient(ellipse at 60% 50%, rgba(200,80,20,0.3) 0%, transparent 70%);
}
.scn-mose-mimics-uncle-peter .wall-dark {
  position: absolute; inset: 0 0 45% 0;
  background: repeating-linear-gradient(0deg, #2a1a0a 0px, #2a1a0a 6px, #1a0a00 6px, #1a0a00 8px);
  opacity: 0.6;
}
.scn-mose-mimics-uncle-peter .fire-crackle {
  position: absolute; bottom: 20%; left: 10%; width: 40%; height: 45%;
  background: radial-gradient(ellipse at 50% 30%, #ff7020 0%, #993300 40%, #3a1a0a 70%);
  border-radius: 0 0 50% 50%;
  animation: mmup-fire 2s ease-in-out infinite alternate;
}
.scn-mose-mimics-uncle-peter .uncle-peter-chair {
  position: absolute; bottom: 20%; right: 15%; width: 20%; height: 35%;
  background: linear-gradient(180deg, #6a4a2a 0%, #3a1a0a 100%);
  border-radius: 10% 10% 5% 5%;
  transform-origin: bottom center;
  animation: mmup-chair 4s ease-in-out infinite;
}
.scn-mose-mimics-uncle-peter .mose-figure {
  position: absolute; bottom: 25%; left: 35%; width: 14%; height: 40%;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: mmup-mose 2s ease-in-out infinite alternate;
}
.scn-mose-mimics-uncle-peter .pete-figure {
  position: absolute; bottom: 28%; left: 50%; width: 10%; height: 30%;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0a00 100%);
  border-radius: 30% 30% 25% 25% / 50% 50% 30% 30%;
  animation: mmup-pete 3s ease-in-out infinite alternate;
}
.scn-mose-mimics-uncle-peter .mimic-arm {
  position: absolute; bottom: 48%; left: 42%; width: 8%; height: 4%;
  background: #3a2a1a;
  border-radius: 50%;
  transform-origin: 0% 50%;
  animation: mmup-arm 0.8s ease-in-out infinite alternate;
}
.scn-mose-mimics-uncle-peter .laugh-shadow {
  position: absolute; bottom: 10%; left: 30%; width: 40%; height: 8%;
  background: radial-gradient(ellipse, rgba(0,0,0,0.6) 0%, transparent 70%);
  filter: blur(6px);
  animation: mmup-shadow 3s ease-in-out infinite alternate;
}
.scn-mose-mimics-uncle-peter .ember-1 {
  position: absolute; top: 40%; left: 20%; width: 4px; height: 4px;
  background: #ffa040;
  border-radius: 50%;
  box-shadow: 0 0 6px 2px rgba(255,160,64,0.6);
  animation: mmup-ember 2s ease-in-out infinite;
}
.scn-mose-mimics-uncle-peter .ember-2 {
  position: absolute; top: 45%; left: 25%; width: 3px; height: 3px;
  background: #ff8020;
  border-radius: 50%;
  box-shadow: 0 0 4px 1px rgba(255,128,32,0.5);
  animation: mmup-ember 2.5s ease-in-out infinite 0.7s;
}
@keyframes mmup-fire {
  0% { transform: scale(0.95); opacity: 0.8; }
  100% { transform: scale(1.05); opacity: 1; }
}
@keyframes mmup-chair {
  0%, 100% { transform: rotate(0deg) translateY(0); }
  50% { transform: rotate(-5deg) translateY(-3%); }
}
@keyframes mmup-mose {
  0% { transform: rotate(-5deg) scale(1); }
  50% { transform: rotate(5deg) scale(1.05); }
  100% { transform: rotate(0deg) scale(0.95); }
}
@keyframes mmup-pete {
  0% { transform: translateY(0) rotate(0deg); }
  100% { transform: translateY(-5%) rotate(5deg); }
}
@keyframes mmup-arm {
  0% { transform: rotate(-30deg); }
  100% { transform: rotate(30deg); }
}
@keyframes mmup-shadow {
  0% { transform: translateX(-5%) scaleX(0.9); }
  100% { transform: translateX(5%) scaleX(1.1); }
}
@keyframes mmup-ember {
  0% { opacity: 0; transform: translateY(0) scale(0.5); }
  50% { opacity: 1; transform: translateY(-15px) scale(1); }
  100% { opacity: 0; transform: translateY(-30px) scale(0.2); }
}

.scn-harry-imitation-comedy {
  background: linear-gradient(180deg, #2a1f1a 0%, #3a2a20 40%, #4a3424 70%, #2a1f1a 100%),
              radial-gradient(ellipse at 30% 60%, #5a3a24 0%, transparent 50%);
}

.scn-harry-imitation-comedy .bg-back {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #1e1510 0%, transparent 100%);
  animation: hic-sky 12s ease-in-out infinite alternate;
}
.scn-harry-imitation-comedy .bg-wall {
  position: absolute; inset: 0 40% 0 0;
  background: linear-gradient(135deg, #4a3424 0%, #3a2820 50%, #2a1f1a 100%);
  border-right: 2px solid #5a4234;
}
.scn-harry-imitation-comedy .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #3a2a20 0%, #2a1f1a 100%);
  box-shadow: inset 0 8px 12px rgba(0,0,0,.5);
}
.scn-harry-imitation-comedy .lamp-glow {
  position: absolute; top: 10%; left: 70%; width: 60px; height: 80px;
  background: radial-gradient(circle, #d49a5a 0%, #8a5a2a 60%, transparent 100%);
  border-radius: 50%;
  filter: blur(10px);
  animation: hic-lamp 4s ease-in-out infinite alternate;
}
.scn-harry-imitation-comedy .figure-haley {
  position: absolute; bottom: 28%; left: 20%; width: 40px; height: 90px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1f1a 100%);
  border-radius: 30% 30% 20% 20% / 50% 50% 30% 30%;
  transform-origin: bottom center;
  animation: hic-haley 6s ease-in-out infinite;
}
.scn-harry-imitation-comedy .figure-harry {
  position: absolute; bottom: 28%; left: 55%; width: 25px; height: 50px;
  background: linear-gradient(180deg, #6a4a3a 0%, #3a2a20 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: hic-harry 3s ease-in-out infinite;
}
.scn-harry-imitation-comedy .orange-arc {
  position: absolute; bottom: 55%; left: 30%; width: 12px; height: 12px;
  background: radial-gradient(circle, #d6853a 0%, #b05a1a 100%);
  border-radius: 50%;
  animation: hic-orange 2s ease-in-out infinite;
}
.scn-harry-imitation-comedy .chair {
  position: absolute; bottom: 30%; right: 15%; width: 30px; height: 50px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1f1a 100%);
  border-radius: 4px;
}
@keyframes hic-sky { 0% { opacity: 0.6; } 50% { opacity: 0.9; } 100% { opacity: 0.7; } }
@keyframes hic-lamp { 0% { opacity: 0.7; transform: scale(0.9); } 50% { opacity: 1; transform: scale(1.1); } 100% { opacity: 0.8; transform: scale(0.95); } }
@keyframes hic-haley { 0% { transform: translate(0, 0) rotate(0deg); } 50% { transform: translate(2px, -2px) rotate(2deg); } 100% { transform: translate(0, 0) rotate(0deg); } }
@keyframes hic-harry { 0% { transform: translate(0, 0) rotate(-3deg) scaleX(0.9); } 30% { transform: translate(-2px, -4px) rotate(3deg) scaleX(1.1); } 60% { transform: translate(2px, -2px) rotate(-2deg) scaleX(1); } 100% { transform: translate(0, 0) rotate(0deg) scaleX(0.9); } }
@keyframes hic-orange { 0% { transform: translate(0, 0) rotate(0deg); opacity: 1; } 50% { transform: translate(20px, -30px) rotate(180deg); opacity: 0.8; } 100% { transform: translate(40px, 0) rotate(360deg); opacity: 0; } }

.scn-haley-bargains-for-harry {
  background: linear-gradient(180deg, #2a1f1a 0%, #3a2a20 40%, #4a3424 70%, #2a1f1a 100%),
              radial-gradient(ellipse at 50% 30%, #5a3a24 0%, transparent 60%);
}

.scn-haley-bargains-for-harry .bg-wall {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #3a2820 0%, #2a1f1a 100%);
}
.scn-haley-bargains-for-harry .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #3a2a20 0%, #1a1410 100%);
  box-shadow: inset 0 6px 10px rgba(0,0,0,.4);
}
.scn-haley-bargains-for-harry .pulpit {
  position: absolute; bottom: 30%; left: 50%; width: 40px; height: 60px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1f1a 100%);
  border-radius: 4px;
  transform: translateX(-50%);
}
.scn-haley-bargains-for-harry .lamp-glow {
  position: absolute; top: 5%; left: 80%; width: 50px; height: 70px;
  background: radial-gradient(circle, #d49a5a 0%, #8a5a2a 60%, transparent 100%);
  border-radius: 50%;
  filter: blur(8px);
  animation: hbh-lamp 3s ease-in-out infinite alternate;
}
.scn-haley-bargains-for-harry .figure-haley {
  position: absolute; bottom: 28%; left: 15%; width: 40px; height: 90px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1f1a 100%);
  border-radius: 30% 30% 20% 20% / 50% 50% 30% 30%;
  animation: hbh-haley 6s ease-in-out infinite;
}
.scn-haley-bargains-for-harry .figure-harry-singing {
  position: absolute; bottom: 28%; left: 50%; width: 25px; height: 50px;
  background: linear-gradient(180deg, #6a4a3a 0%, #3a2a20 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: hbh-sing 2s ease-in-out infinite;
}
.scn-haley-bargains-for-harry .psalter {
  position: absolute; bottom: 45%; left: 48%; width: 14px; height: 20px;
  background: linear-gradient(135deg, #9a7a5a 0%, #6a5030 100%);
  border-radius: 2px;
  animation: hbh-psalter 1.5s ease-in-out infinite;
}
@keyframes hbh-lamp { 0% { opacity: 0.6; transform: scale(0.9); } 50% { opacity: 1; transform: scale(1.1); } 100% { opacity: 0.7; transform: scale(0.95); } }
@keyframes hbh-haley { 0% { transform: translate(0, 0) rotate(0deg); } 50% { transform: translate(1px, -1px) rotate(1deg); } 100% { transform: translate(0, 0) rotate(0deg); } }
@keyframes hbh-sing { 0% { transform: translate(0, 0) scale(1) rotate(0deg); } 25% { transform: translate(-1px, -3px) scale(1.05) rotate(-4deg); } 50% { transform: translate(1px, -5px) scale(1.1) rotate(4deg); } 75% { transform: translate(-1px, -3px) scale(1.05) rotate(-4deg); } 100% { transform: translate(0, 0) scale(1) rotate(0deg); } }
@keyframes hbh-psalter { 0% { transform: scale(1) rotate(0deg); } 50% { transform: scale(1.1) rotate(10deg); } 100% { transform: scale(1) rotate(0deg); } }

.scn-eliza-enters-parlor {
  background: linear-gradient(180deg, #3a3028 0%, #4a4035 40%, #5a4a3a 70%, #3a3028 100%),
              radial-gradient(ellipse at 40% 70%, #6a5030 0%, transparent 50%);
}

.scn-eliza-enters-parlor .bg-wall {
  position: absolute; inset: 0 0 35% 0;
  background: linear-gradient(180deg, #4a4035 0%, #3a3028 100%);
}
.scn-eliza-enters-parlor .bg-door {
  position: absolute; left: 20%; bottom: 25%; width: 50px; height: 90px;
  background: linear-gradient(180deg, #5a4a3a 0%, #4a3a2a 100%);
  border: 2px solid #3a2a1a;
  border-radius: 4px;
  box-shadow: inset 0 0 10px rgba(0,0,0,.3);
}
.scn-eliza-enters-parlor .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 35%;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a2015 100%);
  box-shadow: inset 0 6px 12px rgba(0,0,0,.5);
}
.scn-eliza-enters-parlor .lamp-soft {
  position: absolute; top: 15%; left: 60%; width: 40px; height: 60px;
  background: radial-gradient(circle, #d4a85a 0%, #8a6a3a 60%, transparent 100%);
  border-radius: 50%;
  filter: blur(12px);
  animation: eep-lamp 8s ease-in-out infinite alternate;
}
.scn-eliza-enters-parlor .figure-eliza {
  position: absolute; bottom: 30%; left: 25%; width: 35px; height: 80px;
  background: linear-gradient(180deg, #6a4a3a 0%, #3a2a20 100%);
  border-radius: 30% 30% 20% 20% / 50% 50% 30% 30%;
  animation: eep-eliza 10s ease-in-out infinite;
}
.scn-eliza-enters-parlor .figure-harry-sitting {
  position: absolute; bottom: 30%; left: 55%; width: 22px; height: 40px;
  background: linear-gradient(180deg, #7a5a4a 0%, #4a3a2a 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: eep-harry 12s ease-in-out infinite;
}
.scn-eliza-enters-parlor .chair {
  position: absolute; bottom: 32%; left: 53%; width: 30px; height: 45px;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 4px;
}
.scn-eliza-enters-parlor .table {
  position: absolute; bottom: 35%; right: 20%; width: 40px; height: 30px;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 2px;
}
@keyframes eep-lamp { 0% { opacity: 0.5; } 50% { opacity: 0.8; } 100% { opacity: 0.6; } }
@keyframes eep-eliza { 0% { transform: translate(0, 0); } 50% { transform: translate(2px, -2px); } 100% { transform: translate(0, 0); } }
@keyframes eep-harry { 0% { transform: translate(0, 0) rotate(0deg); } 25% { transform: translate(1px, -2px) rotate(3deg); } 50% { transform: translate(0, 0) rotate(0deg); } 75% { transform: translate(-1px, -2px) rotate(-3deg); } 100% { transform: translate(0, 0) rotate(0deg); } }

.scn-eliza-retreats-with-harry {
  background: linear-gradient(180deg, #1e1815 0%, #2a201a 40%, #3a2a22 70%, #1e1815 100%),
              radial-gradient(ellipse at 60% 30%, #3a2a22 0%, transparent 60%);
}

.scn-eliza-retreats-with-harry .bg-wall {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #2a201a 0%, #1e1815 100%);
}
.scn-eliza-retreats-with-harry .bg-shadow {
  position: absolute; left: 10%; bottom: 25%; width: 100px; height: 120px;
  background: radial-gradient(ellipse, #050403 0%, transparent 70%);
  animation: erh-shadow 4s ease-in-out infinite alternate;
}
.scn-eliza-retreats-with-harry .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #2a1f18 0%, #15100c 100%);
  box-shadow: inset 0 8px 15px rgba(0,0,0,.6);
}
.scn-eliza-retreats-with-harry .lamp-harsh {
  position: absolute; top: 10%; right: 15%; width: 50px; height: 60px;
  background: radial-gradient(circle, #c08040 0%, #8a5a2a 60%, transparent 100%);
  border-radius: 50%;
  filter: blur(8px);
  animation: erh-lamp 2s ease-in-out infinite alternate;
}
.scn-eliza-retreats-with-harry .figure-master {
  position: absolute; bottom: 28%; left: 20%; width: 50px; height: 100px;
  background: linear-gradient(180deg, #2a1f1a 0%, #15100c 100%);
  border-radius: 30% 30% 20% 20% / 50% 50% 30% 30%;
  animation: erh-master 3s ease-in-out infinite;
}
.scn-eliza-retreats-with-harry .figure-eliza-back {
  position: absolute; bottom: 28%; right: 25%; width: 35px; height: 80px;
  background: linear-gradient(180deg, #5a3a2a 0%, #2a1f1a 100%);
  border-radius: 30% 30% 20% 20% / 50% 50% 30% 30%;
  animation: erh-eliza 3s ease-in-out infinite;
}
.scn-eliza-retreats-with-harry .figure-harry-holding {
  position: absolute; bottom: 28%; right: 18%; width: 20px; height: 40px;
  background: linear-gradient(180deg, #6a4a3a 0%, #3a2a20 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  animation: erh-harry 3s ease-in-out infinite;
}
@keyframes erh-shadow { 0% { opacity: 0.3; } 50% { opacity: 0.6; } 100% { opacity: 0.4; } }
@keyframes erh-lamp { 0% { transform: scale(0.9); opacity: 0.6; } 50% { transform: scale(1.2); opacity: 1; } 100% { transform: scale(0.95); opacity: 0.7; } }
@keyframes erh-master { 0% { transform: translate(0, 0); } 50% { transform: translate(3px, -2px); } 100% { transform: translate(0, 0); } }
@keyframes erh-eliza { 0% { transform: translate(0, 0) rotate(0deg); } 50% { transform: translate(-3px, -2px) rotate(-3deg); } 100% { transform: translate(0, 0) rotate(0deg); } }
@keyframes erh-harry { 0% { transform: translate(0, 0); } 50% { transform: translate(-2px, -1px); } 100% { transform: translate(0, 0); } }

.scn-sam-plans-trickery {
  background: linear-gradient(180deg, #8fc0e0 0%, #f9eac3 40%, #d4a76a 100%), radial-gradient(ellipse at 30% 80%, #f9eac3 0%, transparent 60%);
}
.scn-sam-plans-trickery .sky {
  position:absolute; inset:0 0 45% 0;
  background: linear-gradient(180deg, #b0d4f0 0%, #f5e8c0 100%);
  animation: spt-sky 8s ease-in-out infinite alternate;
}
.scn-sam-plans-trickery .ground {
  position:absolute; bottom:0; left:0; right:0; height:50%;
  background: linear-gradient(180deg, #bca45a 0%, #8b6f3a 100%);
  border-radius: 60% 40% 0 0 / 40% 30% 0 0;
  box-shadow: inset 0 10px 30px rgba(0,0,0,0.2);
  animation: spt-ground 12s ease-in-out infinite;
}
.scn-sam-plans-trickery .tree {
  position:absolute; bottom:45%; left:15%; width:12px; height:50%;
  background: linear-gradient(180deg, #5c3a1a 0%, #3a2210 100%);
  border-radius: 4px 4px 0 0;
  transform-origin: bottom center;
  animation: spt-tree 15s ease-in-out infinite alternate;
}
.scn-sam-plans-trickery .sam-figure {
  position:absolute; bottom:35%; left:50%; width:24px; height:50px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0a00 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 30% 30%;
  transform: translateX(-50%);
  animation: spt-body 5s ease-in-out infinite;
}
.scn-sam-plans-trickery .sam-arm {
  position:absolute; bottom:58%; left:55%; width:8px; height:28px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0a00 100%);
  border-radius: 40% 40% 20% 20% / 60% 60% 20% 20%;
  transform-origin: 50% 100%;
  animation: spt-arm 2.5s ease-in-out infinite alternate;
}
.scn-sam-plans-trickery .hat {
  position:absolute; bottom:78%; left:48%; width:30px; height:10px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 50% 50% 0 0 / 100% 100% 0 0;
  transform: translateX(-50%);
  animation: spt-hat 6s ease-in-out infinite;
}
.scn-sam-plans-trickery .doodle {
  position:absolute; top:20%; right:20%; width:40px; height:40px;
  background: radial-gradient(circle, #c8a060 0%, transparent 100%);
  border-radius: 50%;
  filter: blur(2px);
  animation: spt-doodle 10s ease-in-out infinite alternate;
}
@keyframes spt-sky {
  0% { opacity: 0.8; }
  50% { opacity: 0.95; }
  100% { opacity: 0.85; }
}
@keyframes spt-ground {
  0%, 100% { transform: translateY(0); }
  50% { transform: translateY(-3px); }
}
@keyframes spt-tree {
  0% { transform: rotate(-2deg); }
  50% { transform: rotate(0deg) scaleY(1.02); }
  100% { transform: rotate(2deg); }
}
@keyframes spt-body {
  0%, 100% { transform: translateX(-50%) rotate(0deg); }
  25% { transform: translateX(-50%) translateY(-2px) rotate(-2deg); }
  75% { transform: translateX(-50%) translateY(1px) rotate(2deg); }
}
@keyframes spt-arm {
  0% { transform: rotate(30deg); }
  100% { transform: rotate(60deg); }
}
@keyframes spt-hat {
  0%, 100% { transform: translateX(-50%) rotate(-3deg); }
  50% { transform: translateX(-50%) rotate(3deg) scale(1.05); }
}
@keyframes spt-doodle {
  0% { transform: scale(1) rotate(0deg); opacity: 0.5; }
  50% { transform: scale(1.2) rotate(10deg); opacity: 0.8; }
  100% { transform: scale(0.9) rotate(-5deg); opacity: 0.4; }
}

.scn-andy-explains-missis-logic {
  background: linear-gradient(180deg, #a0c8e0 0%, #ecd6ae 40%, #b89a6a 100%), radial-gradient(ellipse at 70% 80%, #ecd6ae 0%, transparent 50%);
}
.scn-andy-explains-missis-logic .sky {
  position:absolute; inset:0 0 40% 0;
  background: linear-gradient(180deg, #c8e0f0 0%, #f0dcc0 100%);
  animation: aem-sky 10s ease-in-out infinite alternate;
}
.scn-andy-explains-missis-logic .ground {
  position:absolute; bottom:0; left:0; right:0; height:45%;
  background: linear-gradient(180deg, #c4aa6a 0%, #8b6f3a 100%);
  border-radius: 30% 70% 0 0 / 20% 40% 0 0;
  box-shadow: inset 0 8px 20px rgba(0,0,0,0.15);
}
.scn-andy-explains-missis-logic .fence {
  position:absolute; bottom:40%; left:10%; width:6px; height:30%;
  background: linear-gradient(180deg, #6a4a2a 0%, #3a2210 100%);
  border-radius: 2px;
  box-shadow: 20px 0 #6a4a2a, 40px 0 #6a4a2a, 60px 0 #6a4a2a;
  animation: aem-fence 8s ease-in-out infinite alternate;
}
.scn-andy-explains-missis-logic .andy-figure {
  position:absolute; bottom:32%; left:35%; width:22px; height:48px;
  background: linear-gradient(180deg, #2a1a0a 0%, #0a0000 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 30% 30%;
  transform: translateX(-50%);
  animation: aem-andy 6s ease-in-out infinite;
}
.scn-andy-explains-missis-logic .sam-figure {
  position:absolute; bottom:32%; left:65%; width:22px; height:48px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0a00 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 30% 30%;
  transform: translateX(-50%);
  animation: aem-sam 6s ease-in-out infinite reverse;
}
.scn-andy-explains-missis-logic .ladder {
  position:absolute; bottom:38%; left:20%; width:8px; height:50px;
  background: linear-gradient(180deg, #8a6a3a 0%, #5a3a1a 100%);
  border-radius: 2px;
  box-shadow: 10px 0 #8a6a3a;
  transform: rotate(15deg);
  animation: aem-ladder 10s ease-in-out infinite;
}
.scn-andy-explains-missis-logic .speech-bubble {
  position:absolute; top:15%; right:25%; width:50px; height:30px;
  background: radial-gradient(ellipse at 50% 50%, rgba(255,255,200,0.8) 0%, transparent 100%);
  border-radius: 50%;
  filter: blur(4px);
  animation: aem-bubble 4s ease-in-out infinite alternate;
}
@keyframes aem-sky {
  0% { opacity: 0.7; }
  50% { opacity: 1; }
  100% { opacity: 0.8; }
}
@keyframes aem-fence {
  0% { transform: translateY(0); }
  50% { transform: translateY(-2px); }
  100% { transform: translateY(0); }
}
@keyframes aem-andy {
  0%, 100% { transform: translateX(-50%) rotate(0deg); }
  25% { transform: translateX(-50%) translateY(-2px) rotate(-3deg); }
  75% { transform: translateX(-50%) translateY(2px) rotate(3deg); }
}
@keyframes aem-sam {
  0%, 100% { transform: translateX(-50%) rotate(0deg); }
  25% { transform: translateX(-50%) translateY(-1px) rotate(2deg); }
  75% { transform: translateX(-50%) translateY(1px) rotate(-2deg); }
}
@keyframes aem-ladder {
  0% { transform: rotate(15deg) scaleY(1); }
  50% { transform: rotate(20deg) scaleY(1.02); }
  100% { transform: rotate(10deg) scaleY(0.98); }
}
@keyframes aem-bubble {
  0% { transform: scale(1) rotate(0deg); opacity: 0.3; }
  50% { transform: scale(1.3) rotate(5deg); opacity: 0.6; }
  100% { transform: scale(0.9) rotate(-3deg); opacity: 0.2; }
}

.scn-sam-sabotages-haleys-saddle {
  background: linear-gradient(180deg, #c0a870 0%, #e0c898 30%, #a08050 100%), radial-gradient(ellipse at 50% 100%, #e0c898 0%, transparent 70%);
}
.scn-sam-sabotages-haleys-saddle .sky {
  position:absolute; inset:0 0 50% 0;
  background: linear-gradient(180deg, #d4c8a0 0%, #f0e0b0 100%);
  animation: ssh-sky 9s ease-in-out infinite alternate;
}
.scn-sam-sabotages-haleys-saddle .dust {
  position:absolute; bottom:30%; left:30%; width:60px; height:40px;
  background: radial-gradient(ellipse at 50% 50%, rgba(200,160,100,0.5) 0%, transparent 100%);
  border-radius: 50%;
  filter: blur(8px);
  animation: ssh-dust 3s ease-in-out infinite;
}
.scn-sam-sabotages-haleys-saddle .horse {
  position:absolute; bottom:35%; left:40%; width:70px; height:40px;
  background: linear-gradient(180deg, #6a4a2a 0%, #3a2210 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 20% 20%;
  transform: translateX(-50%);
  animation: ssh-horse 4s ease-in-out infinite;
}
.scn-sam-sabotages-haleys-saddle .saddle {
  position:absolute; bottom:58%; left:42%; width:24px; height:14px;
  background: linear-gradient(180deg, #8a5a2a 0%, #5a3210 100%);
  border-radius: 30% 30% 10% 10% / 50% 50% 10% 10%;
  transform: translateX(-50%);
  box-shadow: 0 4px 8px rgba(0,0,0,0.3);
  animation: ssh-saddle 2s ease-in-out infinite alternate;
}
.scn-sam-sabotages-haleys-saddle .sam-figure {
  position:absolute; bottom:32%; left:60%; width:20px; height:42px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0a00 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 30% 30%;
  transform: translateX(-50%);
  animation: ssh-sam 3.5s ease-in-out infinite;
}
.scn-sam-sabotages-haleys-saddle .tool {
  position:absolute; bottom:38%; left:65%; width:4px; height:18px;
  background: linear-gradient(180deg, #8a7a4a 0%, #4a3a1a 100%);
  border-radius: 2px;
  transform: rotate(30deg);
  animation: ssh-tool 1.5s ease-in-out infinite alternate;
}
.scn-sam-sabotages-haleys-saddle .motion-lines {
  position:absolute; bottom:40%; left:30%; width:30px; height:2px;
  background: linear-gradient(90deg, transparent, rgba(80,60,30,0.6), transparent);
  border-radius: 50%;
  box-shadow: 0 8px 0 rgba(80,60,30,0.4), 0 -8px 0 rgba(80,60,30,0.4);
  animation: ssh-lines 0.8s linear infinite;
}
@keyframes ssh-sky {
  0% { opacity: 0.7; }
  50% { opacity: 1; }
  100% { opacity: 0.8; }
}
@keyframes ssh-dust {
  0% { transform: scale(1) translateX(0); opacity: 0.5; }
  50% { transform: scale(1.3) translateX(10px); opacity: 0.8; }
  100% { transform: scale(0.8) translateX(-5px); opacity: 0.3; }
}
@keyframes ssh-horse {
  0%, 100% { transform: translateX(-50%) rotate(0deg); }
  25% { transform: translateX(-50%) translateY(-2px) rotate(-2deg); }
  75% { transform: translateX(-50%) translateY(1px) rotate(2deg); }
}
@keyframes ssh-saddle {
  0% { transform: translateX(-50%) translateY(0) rotate(0deg); }
  100% { transform: translateX(-50%) translateY(-3px) rotate(5deg); }
}
@keyframes ssh-sam {
  0%, 100% { transform: translateX(-50%) rotate(0deg); }
  30% { transform: translateX(-50%) translateY(-3px) rotate(-4deg); }
  70% { transform: translateX(-50%) translateY(1px) rotate(4deg); }
}
@keyframes ssh-tool {
  0% { transform: rotate(20deg); }
  100% { transform: rotate(40deg); }
}
@keyframes ssh-lines {
  0% { transform: translateX(-10px); opacity: 0; }
  50% { opacity: 1; }
  100% { transform: translateX(20px); opacity: 0; }
}

.scn-mrs-shelby-cautions-sam {
  background: linear-gradient(180deg, #c0a080 0%, #e0c8a0 30%, #a08060 100%), radial-gradient(ellipse at 50% 80%, #e0c8a0 0%, transparent 60%);
}
.scn-mrs-shelby-cautions-sam .wall {
  position:absolute; bottom:20%; left:20%; right:20%; height:60%;
  background: linear-gradient(180deg, #b09070 0%, #705030 100%);
  border-radius: 10% 10% 0 0 / 20% 20% 0 0;
  box-shadow: inset 0 -20px 40px rgba(0,0,0,0.3);
  animation: msc-wall 8s ease-in-out infinite alternate;
}
.scn-mrs-shelby-cautions-sam .balcony {
  position:absolute; bottom:60%; left:20%; right:20%; height:8%;
  background: linear-gradient(180deg, #8a6a4a 0%, #5a4020 100%);
  border-radius: 4px 4px 0 0;
  box-shadow: 0 -6px 12px rgba(0,0,0,0.2);
  animation: msc-balcony 6s ease-in-out infinite;
}
.scn-mrs-shelby-cautions-sam .mrs-figure {
  position:absolute; bottom:68%; left:35%; width:20px; height:40px;
  background: linear-gradient(180deg, #5a3a2a 0%, #2a1a0a 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 30% 30%;
  transform: translateX(-50%);
  animation: msc-mrs 7s ease-in-out infinite;
}
.scn-mrs-shelby-cautions-sam .sam-figure {
  position:absolute; bottom:22%; left:55%; width:22px; height:48px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0a00 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 30% 30%;
  transform: translateX(-50%);
  animation: msc-sam 5s ease-in-out infinite;
}
.scn-mrs-shelby-cautions-sam .column {
  position:absolute; bottom:20%; left:25%; width:10px; height:70%;
  background: linear-gradient(180deg, #8a7a5a 0%, #5a4a2a 100%);
  border-radius: 2px;
  box-shadow: 10px 0 #8a7a5a, 20px 0 #8a7a5a;
  animation: msc-column 10s ease-in-out infinite alternate;
}
.scn-mrs-shelby-cautions-sam .shadow {
  position:absolute; bottom:0; left:0; right:0; height:30%;
  background: linear-gradient(180deg, transparent 0%, rgba(0,0,0,0.3) 100%);
  animation: msc-shadow 8s ease-in-out infinite;
}
.scn-mrs-shelby-cautions-sam .glow {
  position:absolute; top:30%; left:45%; width:40px; height:40px;
  background: radial-gradient(circle, rgba(255,230,180,0.6) 0%, transparent 100%);
  border-radius: 50%;
  filter: blur(10px);
  animation: msc-glow 4s ease-in-out infinite alternate;
}
@keyframes msc-wall {
  0% { transform: scaleX(1); }
  50% { transform: scaleX(1.02); }
  100% { transform: scaleX(0.98); }
}
@keyframes msc-balcony {
  0%, 100% { transform: translateY(0); }
  50% { transform: translateY(-2px); }
}
@keyframes msc-mrs {
  0%, 100% { transform: translateX(-50%) rotate(0deg); }
  25% { transform: translateX(-50%) translateY(-2px) rotate(-2deg); }
  75% { transform: translateX(-50%) translateY(1px) rotate(2deg); }
}
@keyframes msc-sam {
  0%, 100% { transform: translateX(-50%) rotate(0deg); }
  30% { transform: translateX(-50%) translateY(-2px) rotate(3deg); }
  70% { transform: translateX(-50%) translateY(2px) rotate(-3deg); }
}
@keyframes msc-column {
  0% { transform: scaleY(1); opacity: 0.8; }
  50% { transform: scaleY(1.03); opacity: 1; }
  100% { transform: scaleY(0.97); opacity: 0.9; }
}
@keyframes msc-shadow {
  0% { opacity: 0.4; }
  50% { opacity: 0.6; }
  100% { opacity: 0.3; }
}
@keyframes msc-glow {
  0% { transform: scale(1); opacity: 0.3; }
  50% { transform: scale(1.2); opacity: 0.6; }
  100% { transform: scale(0.9); opacity: 0.2; }
}

/* fugitives-return */
.scn-fugitives-return {
  background: linear-gradient(180deg, #0a0a1a 0%, #1a1a3a 30%, #0f0f2a 60%, #050510 100%),
              radial-gradient(ellipse at 50% 0%, #2a3a5a 0%, transparent 60%);
  position: relative; overflow: hidden;
}
.scn-fugitives-return .moon {
  position: absolute; top: 6%; left: 70%; width: 40px; height: 40px;
  background: radial-gradient(circle, #e8e8ff 0%, #b0b0d0 70%);
  border-radius: 50%; box-shadow: 0 0 60px 20px rgba(200,200,255,0.3);
  animation: fr-moon 12s ease-in-out infinite alternate;
}
.scn-fugitives-return .sky-bg {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(180deg, #1a1a3a 0%, transparent 100%);
}
.scn-fugitives-return .tree {
  position: absolute; bottom: 30%; 
  background: #0a0a1a; border-radius: 30% 30% 0 0;
  width: 20px; height: 80px;
  transform-origin: bottom center;
}
.scn-fugitives-return .tree-left {
  left: 12%; height: 100px; width: 25px;
  animation: fr-tree-sway 5s ease-in-out infinite;
}
.scn-fugitives-return .tree-right {
  left: 75%; height: 70px; width: 18px;
  animation: fr-tree-sway 6s ease-in-out infinite reverse;
}
.scn-fugitives-return .figure {
  position: absolute; bottom: 28%; 
  width: 16px; height: 40px;
  background: linear-gradient(180deg, #151525 0%, #0a0a15 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: fr-run 0.8s ease-in-out infinite alternate;
}
.scn-fugitives-return .fig-a { left: 38%; animation-duration: 0.7s; }
.scn-fugitives-return .fig-b { left: 52%; animation-duration: 0.9s; animation-delay: 0.1s; }
.scn-fugitives-return .dogs {
  position: absolute; bottom: 25%; left: 60%; width: 12px; height: 8px;
  background: #1a1a2a; border-radius: 50%; 
  animation: fr-dogs 0.5s ease-in-out infinite alternate;
  box-shadow: 16px 0 0 #1a1a2a;
}
.scn-fugitives-return .lanterns {
  position: absolute; bottom: 35%; left: 30%; width: 6px; height: 6px;
  background: #ffbb44; border-radius: 50%;
  box-shadow: 0 0 20px 6px #ffbb44, 0 0 40px 12px rgba(255,187,68,0.4);
  animation: fr-lantern 2s ease-in-out infinite alternate;
}
@keyframes fr-moon {
  0% { transform: translateY(0); opacity: 0.9; }
  50% { transform: translateY(4px); opacity: 1; }
  100% { transform: translateY(-3px); opacity: 0.85; }
}
@keyframes fr-tree-sway {
  0% { transform: rotate(-2deg); }
  50% { transform: rotate(2deg); }
  100% { transform: rotate(-1deg); }
}
@keyframes fr-run {
  0% { transform: translateY(0) rotate(-3deg); }
  50% { transform: translateY(-4px) rotate(2deg); }
  100% { transform: translateY(-2px) rotate(-1deg); }
}
@keyframes fr-dogs {
  0% { transform: translateX(0) scaleX(1); }
  100% { transform: translateX(10px) scaleX(0.8); }
}
@keyframes fr-lantern {
  0% { opacity: 0.7; transform: scale(0.9); }
  50% { opacity: 1; transform: scale(1.1); }
  100% { opacity: 0.8; transform: scale(1); }
}

/* item-stiletto */
.scn-item-stiletto {
  background: linear-gradient(180deg, #0c0c1a 0%, #1a1a2e 50%, #0e0e1c 100%),
              radial-gradient(ellipse at 50% 60%, #2a2a4a 0%, transparent 70%);
  position: relative; overflow: hidden;
}
.scn-item-stiletto .desk-surface {
  position: absolute; bottom: 0; left: 0; right: 0; height: 45%;
  background: linear-gradient(180deg, #3a2a1a 0%, #2a1a0a 100%);
  border-radius: 20% 20% 0 0;
  box-shadow: inset 0 10px 30px rgba(0,0,0,0.6);
}
.scn-item-stiletto .money-stack {
  position: absolute; bottom: 25%; left: 40%; width: 50px; height: 20px;
  background: linear-gradient(180deg, #7a6a4a 0%, #5a4a2a 100%);
  border-radius: 4px;
  box-shadow: 0 2px 6px rgba(0,0,0,0.5);
  animation: is-money 8s ease-in-out infinite alternate;
}
.scn-item-stiletto .hand {
  position: absolute; bottom: 35%; left: 45%; width: 35px; height: 50px;
  background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%);
  border-radius: 50% 50% 40% 40% / 60% 50% 40% 40%;
  transform-origin: bottom center;
  animation: is-hand 3s ease-in-out infinite alternate;
}
.scn-item-stiletto .stiletto-blade {
  position: absolute; bottom: 55%; left: 49%; width: 3px; height: 50px;
  background: linear-gradient(180deg, #c0c0e0 0%, #8080a0 50%, #606080 100%);
  border-radius: 1px;
  transform-origin: bottom center;
  box-shadow: 0 0 6px rgba(200,200,255,0.4);
  animation: is-blade 2s ease-in-out infinite alternate;
}
.scn-item-stiletto .stiletto-hilt {
  position: absolute; bottom: 55%; left: 46%; width: 12px; height: 20px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 4px 4px 2px 2px;
  transform-origin: bottom center;
  animation: is-hilt 2s ease-in-out infinite alternate;
}
.scn-item-stiletto .lamp-light {
  position: absolute; top: 15%; left: 20%; width: 15px; height: 15px;
  background: radial-gradient(circle, #ffdd77 0%, #cc8844 70%);
  border-radius: 50%;
  box-shadow: 0 0 30px 10px rgba(255,200,80,0.4), 0 0 60px 20px rgba(255,200,80,0.2);
  animation: is-lamp 4s ease-in-out infinite alternate;
}
@keyframes is-money {
  0% { transform: translateY(0); opacity: 0.9; }
  50% { transform: translateY(2px); opacity: 1; }
  100% { transform: translateY(-2px); opacity: 0.85; }
}
@keyframes is-hand {
  0% { transform: rotate(-2deg) translateY(0); }
  50% { transform: rotate(1deg) translateY(2px); }
  100% { transform: rotate(-1deg) translateY(-1px); }
}
@keyframes is-blade {
  0% { transform: rotate(-1deg); opacity: 0.8; }
  50% { transform: rotate(2deg); opacity: 1; }
  100% { transform: rotate(0deg); opacity: 0.9; }
}
@keyframes is-hilt {
  0% { transform: rotate(-1deg) translateY(0); }
  50% { transform: rotate(2deg) translateY(1px); }
  100% { transform: rotate(0deg); }
}
@keyframes is-lamp {
  0% { opacity: 0.7; transform: scale(0.95); }
  50% { opacity: 1; transform: scale(1.05); }
  100% { opacity: 0.8; transform: scale(1); }
}

/* garret-hideout */
.scn-garret-hideout {
  background: linear-gradient(180deg, #1a1410 0%, #2a1e1a 40%, #1a1210 100%),
              radial-gradient(ellipse at 50% 30%, #3a2a22 0%, transparent 60%);
  position: relative; overflow: hidden;
}
.scn-garret-hideout .garret-wall {
  position: absolute; inset: 0;
  background: repeating-linear-gradient(90deg, #2a1e1a 0px, #1a1410 2px, #2a1e1a 4px);
  opacity: 0.3;
}
.scn-garret-hideout .wooden-beam {
  position: absolute; top: 0; left: 20%; right: 20%; height: 10px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 2px;
  box-shadow: 0 2px 4px rgba(0,0,0,0.5);
}
.scn-garret-hideout .crate {
  position: absolute; bottom: 20%; left: 35%; width: 60px; height: 50px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 4px;
  box-shadow: 0 4px 8px rgba(0,0,0,0.6), inset 0 1px 2px rgba(255,255,200,0.1);
  transform: rotate(2deg);
  animation: gh-crate 15s ease-in-out infinite alternate;
}
.scn-garret-hideout .lamp-glow {
  position: absolute; top: 20%; left: 40%; width: 20px; height: 20px;
  background: radial-gradient(circle, #ffcc66 0%, #aa6622 70%);
  border-radius: 50%;
  box-shadow: 0 0 40px 15px rgba(255,180,60,0.5), 0 0 80px 30px rgba(255,180,60,0.2);
  animation: gh-lamp 6s ease-in-out infinite alternate;
}
.scn-garret-hideout .figure-crouch {
  position: absolute; bottom: 25%; left: 42%; width: 18px; height: 30px;
  background: linear-gradient(180deg, #1a1510 0%, #0a0805 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform: scaleY(0.8);
  animation: gh-crouch 4s ease-in-out infinite alternate;
}
.scn-garret-hideout .shadow-line {
  position: absolute; bottom: 18%; left: 30%; right: 30%; height: 4px;
  background: linear-gradient(90deg, transparent, #0a0805 30%, #0a0805 70%, transparent);
  filter: blur(2px);
  animation: gh-shadow 8s ease-in-out infinite alternate;
}
.scn-garret-hideout .dust-motes {
  position: absolute; inset: 0;
  background: radial-gradient(circle at 30% 40%, rgba(200,180,150,0.03) 0%, transparent 50%);
  animation: gh-dust 12s linear infinite;
}
@keyframes gh-crate {
  0% { transform: rotate(2deg) translateY(0); }
  50% { transform: rotate(1deg) translateY(-2px); }
  100% { transform: rotate(3deg) translateY(1px); }
}
@keyframes gh-lamp {
  0% { opacity: 0.8; transform: scale(0.95); }
  50% { opacity: 1; transform: scale(1.05); }
  100% { opacity: 0.85; transform: scale(1); }
}
@keyframes gh-crouch {
  0% { transform: scaleY(0.8) translateY(0); }
  50% { transform: scaleY(0.85) translateY(-2px); }
  100% { transform: scaleY(0.75) translateY(1px); }
}
@keyframes gh-shadow {
  0% { opacity: 0.5; transform: translateY(0); }
  50% { opacity: 0.8; transform: translateY(2px); }
  100% { opacity: 0.4; transform: translateY(-1px); }
}
@keyframes gh-dust {
  0% { background-position: 0% 0%; }
  100% { background-position: 100% 100%; }
}

/* garret-waiting */
.scn-garret-waiting {
  background: linear-gradient(180deg, #150f0d 0%, #241c18 50%, #120c0a 100%),
              radial-gradient(ellipse at 50% 60%, #2a1e1a 0%, transparent 70%);
  position: relative; overflow: hidden;
}
.scn-garret-waiting .garret-floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #2a1a0a 0%, #1a0e05 100%);
  border-radius: 8% 8% 0 0;
  box-shadow: inset 0 4px 12px rgba(0,0,0,0.6);
}
.scn-garret-waiting .book-spine {
  position: absolute; bottom: 30%; left: 30%; width: 20px; height: 30px;
  background: linear-gradient(180deg, #6a4a2a 0%, #4a2a0a 100%);
  border-radius: 2px 4px 4px 2px;
  box-shadow: 2px 0 4px rgba(0,0,0,0.4);
  transform: rotate(-5deg);
  animation: gw-book 8s ease-in-out infinite alternate;
}
.scn-garret-waiting .figure-reading {
  position: absolute; bottom: 25%; left: 20%; width: 20px; height: 40px;
  background: linear-gradient(180deg, #1a1510 0%, #0a0805 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform: rotate(5deg);
  animation: gw-read 6s ease-in-out infinite alternate;
}
.scn-garret-waiting .figure-sleeping {
  position: absolute; bottom: 22%; left: 55%; width: 25px; height: 20px;
  background: linear-gradient(180deg, #1a1510 0%, #0a0805 100%);
  border-radius: 50% 50% 30% 30%;
  transform: rotate(10deg);
  animation: gw-sleep 10s ease-in-out infinite alternate;
}
.scn-garret-waiting .faint-light {
  position: absolute; top: 15%; left: 35%; width: 15px; height: 15px;
  background: radial-gradient(circle, #ffd4a0 0%, #aa7733 70%);
  border-radius: 50%;
  box-shadow: 0 0 30px 10px rgba(255,180,80,0.3), 0 0 60px 20px rgba(255,180,80,0.1);
  animation: gw-light 4s ease-in-out infinite alternate;
}
.scn-garret-waiting .creaking-planks {
  position: absolute; bottom: 28%; left: 40%; width: 40px; height: 6px;
  background: linear-gradient(90deg, #2a1a0a, #3a2a1a, #2a1a0a);
  border-radius: 2px;
  animation: gw-planks 3s ease-in-out infinite alternate;
}
.scn-garret-waiting .cobwebs {
  position: absolute; top: 0; left: 0; right: 0; height: 20%;
  background: radial-gradient(ellipse at 30% 20%, rgba(200,180,150,0.1) 0%, transparent 50%);
  animation: gw-web 20s linear infinite;
}
@keyframes gw-book {
  0% { transform: rotate(-5deg) translateY(0); }
  50% { transform: rotate(-3deg) translateY(2px); }
  100% { transform: rotate(-6deg) translateY(-1px); }
}
@keyframes gw-read {
  0% { transform: rotate(5deg) translateY(0); }
  50% { transform: rotate(4deg) translateY(1px); }
  100% { transform: rotate(6deg) translateY(-1px); }
}
@keyframes gw-sleep {
  0% { transform: rotate(10deg) scaleX(1); }
  50% { transform: rotate(8deg) scaleX(1.02); }
  100% { transform: rotate(12deg) scaleX(0.98); }
}
@keyframes gw-light {
  0% { opacity: 0.6; transform: scale(0.95); }
  50% { opacity: 0.9; transform: scale(1.05); }
  100% { opacity: 0.7; transform: scale(1); }
}
@keyframes gw-planks {
  0% { transform: translateY(0) rotate(0deg); }
  50% { transform: translateY(-1px) rotate(1deg); }
  100% { transform: translateY(1px) rotate(-1deg); }
}
@keyframes gw-web {
  0% { background-position: 0% 0%; }
  100% { background-position: 100% 100%; }
}

.scn-madame-de-thoux-inquires { background: linear-gradient(180deg, #b8d4e8 0%, #e2d4b4 50%, #f0e0c0 100%), radial-gradient(ellipse at 50% 30%, #f0e0c0 0%, transparent 70%); }
.scn-madame-de-thoux-inquires .wall { position:absolute; inset:0 0 30% 0; background: linear-gradient(180deg, #d4c8a8 0%, #c0b090 100%); }
.scn-madame-de-thoux-inquires .window { position:absolute; top:10%; left:50%; width:30%; height:45%; transform:translateX(-50%); background: linear-gradient(180deg, #9bc0e0 0%, #c0d4e8 100%); border-radius: 4% 4% 12% 12%; box-shadow: inset 0 0 20px rgba(255,230,180,.5); }
.scn-madame-de-thoux-inquires .sunlight { position:absolute; top:15%; left:38%; width:40%; height:60%; background: linear-gradient(135deg, rgba(255,235,180,.6) 0%, transparent 60%); clip-path: polygon(0% 0%, 100% 0%, 80% 100%, 20% 100%); filter: blur(4px); animation: mdi1-sun 8s ease-in-out infinite alternate; }
.scn-madame-de-thoux-inquires .table { position:absolute; bottom:28%; left:50%; width:40%; height:8%; transform:translateX(-50%); background: linear-gradient(180deg, #8a6a4a 0%, #5a3a2a 100%); border-radius: 4% 4% 2% 2%; box-shadow: 0 4px 10px rgba(0,0,0,.4); }
.scn-madame-de-thoux-inquires .figure-sit { position:absolute; bottom:28%; left:40%; width:12%; height:30%; background: linear-gradient(180deg, #6a4a3a 0%, #3a2a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: mdi1-breathe 4s ease-in-out infinite; }
.scn-madame-de-thoux-inquires .figure-other { position:absolute; bottom:28%; left:55%; width:11%; height:28%; background: linear-gradient(180deg, #5a4a3a 0%, #2a1a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: mdi1-breathe 4s ease-in-out infinite 2s; }
.scn-madame-de-thoux-inquires .curtain-left { position:absolute; top:0; left:0; width:15%; height:100%; background: linear-gradient(180deg, #c8a878 0%, #a88858 100%); border-radius: 0 30% 50% 0; transform-origin: top left; animation: mdi1-curtain 6s ease-in-out infinite alternate; }
.scn-madame-de-thoux-inquires .curtain-right { position:absolute; top:0; right:0; width:15%; height:100%; background: linear-gradient(180deg, #c8a878 0%, #a88858 100%); border-radius: 30% 0 0 50%; transform-origin: top right; animation: mdi1-curtain 6s ease-in-out infinite alternate-reverse; }
@keyframes mdi1-sun { 0% { opacity:.5; transform: scale(1) } 50% { opacity:.8; transform: scale(1.05) } 100% { opacity:.6; transform: scale(.95) } }
@keyframes mdi1-breathe { 0% { transform: translateY(0) scaleY(1) } 50% { transform: translateY(-3px) scaleY(1.02) } 100% { transform: translateY(0) scaleY(1) } }
@keyframes mdi1-curtain { 0% { transform: rotate(0deg) } 50% { transform: rotate(2deg) } 100% { transform: rotate(0deg) } }

.scn-madame-inquires-about-george-harris { background: linear-gradient(180deg, #f0d8b0 0%, #d0b890 50%, #a08060 100%), radial-gradient(ellipse at 50% 40%, rgba(255,200,100,.4) 0%, transparent 70%); }
.scn-madame-inquires-about-george-harris .bg { position:absolute; inset:0; background: linear-gradient(180deg, #e8d8b0 0%, #c0a080 100%); }
.scn-madame-inquires-about-george-harris .shadow-hard { position:absolute; bottom:0; left:30%; width:40%; height:60%; background: linear-gradient(180deg, rgba(60,30,10,.7) 0%, transparent 70%); clip-path: polygon(0% 100%, 30% 0%, 70% 0%, 100% 100%); animation: mdi2-shadow 3s ease-in-out infinite alternate; }
.scn-madame-inquires-about-george-harris .figure-left { position:absolute; bottom:25%; left:22%; width:14%; height:40%; background: linear-gradient(180deg, #7a5a3a 0%, #3a2a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: mdi2-twitch 2s ease-in-out infinite; }
.scn-madame-inquires-about-george-harris .figure-right { position:absolute; bottom:25%; right:22%; width:13%; height:38%; background: linear-gradient(180deg, #6a4a3a 0%, #2a1a0a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: mdi2-twitch 2s ease-in-out infinite .8s; }
.scn-madame-inquires-about-george-harris .table-between { position:absolute; bottom:25%; left:44%; width:12%; height:8%; background: linear-gradient(180deg, #8a6a4a 0%, #5a3a2a 100%); border-radius: 4px; box-shadow: 0 4px 8px rgba(0,0,0,.5); }
.scn-madame-inquires-about-george-harris .light-stripe { position:absolute; top:10%; left:30%; width:8%; height:90%; background: linear-gradient(180deg, rgba(255,220,150,.8) 0%, transparent 80%); filter: blur(6px); animation: mdi2-stripe 1.5s ease-in-out infinite alternate; }
.scn-madame-inquires-about-george-harris .dust { position:absolute; top:20%; left:40%; width:4px; height:4px; background: rgba(255,200,150,.5); border-radius:50%; filter: blur(2px); animation: mdi2-dust 6s linear infinite; }
@keyframes mdi2-shadow { 0% { opacity:.4 } 50% { opacity:.7 } 100% { opacity:.5 } }
@keyframes mdi2-twitch { 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 mdi2-stripe { 0% { opacity:.3; transform: scaleX(1) } 50% { opacity:.7; transform: scaleX(1.2) } 100% { opacity:.4; transform: scaleX(.9) } }
@keyframes mdi2-dust { 0% { transform: translate(0,0) scale(1); opacity:.3 } 50% { transform: translate(20px,-10px) scale(1.5); opacity:.6 } 100% { transform: translate(40px,-20px) scale(.5); opacity:0 } }

.scn-revelation { background: linear-gradient(180deg, #f0d8b0 0%, #d0b090 40%, #a08060 100%), radial-gradient(ellipse at 50% 50%, #f0d0a0 0%, transparent 70%); }
.scn-revelation .floor { position:absolute; bottom:0; left:0; right:0; height:25%; background: linear-gradient(180deg, #8a6a4a 0%, #5a3a2a 100%); }
.scn-revelation .wall { position:absolute; inset:0 0 25% 0; background: linear-gradient(180deg, #e8d0a0 0%, #c0a880 100%); }
.scn-revelation .chair-pushed { position:absolute; bottom:25%; left:45%; width:16%; height:30%; background: linear-gradient(180deg, #a87858 0%, #785838 100%); border-radius: 10% 10% 8% 8%; transform-origin: bottom center; transform: rotate(-15deg) translateX(-10px); animation: mdi3-chai 4s ease-in-out infinite; }
.scn-revelation .figure-stand { position:absolute; bottom:25%; left:38%; width:13%; height:55%; background: linear-gradient(180deg, #6a4a3a 0%, #3a2a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: mdi3-stand 6s ease-in-out infinite; }
.scn-revelation .table { position:absolute; bottom:25%; left:30%; width:20%; height:6%; background: linear-gradient(180deg, #9a7a5a 0%, #6a4a3a 100%); border-radius: 4px; transform: rotate(-5deg); }
.scn-revelation .sunburst { position:absolute; top:5%; left:50%; width:60%; height:70%; transform:translateX(-50%); background: radial-gradient(circle, #ffd080 0%, #ffb060 40%, transparent 70%); opacity:.4; animation: mdi3-burst 3s ease-in-out infinite alternate; }
.scn-revelation .shadow-long { position:absolute; bottom:0; left:35%; width:30%; height:50%; background: linear-gradient(180deg, rgba(40,20,10,.6) 0%, transparent 80%); clip-path: polygon(0% 100%, 70% 0%, 100% 0%, 100% 100%); animation: mdi3-shad 8s ease-in-out infinite; }
@keyframes mdi3-chai { 0% { transform: rotate(-15deg) translateX(-10px) } 50% { transform: rotate(-5deg) translateX(-15px) } 100% { transform: rotate(-15deg) translateX(-10px) } }
@keyframes mdi3-stand { 0% { transform: translateY(0) rotate(0deg) } 50% { transform: translateY(-5px) rotate(3deg) } 100% { transform: translateY(0) rotate(0deg) } }
@keyframes mdi3-burst { 0% { opacity:.3; transform: translateX(-50%) scale(1) } 50% { opacity:.6; transform: translateX(-50%) scale(1.2) } 100% { opacity:.4; transform: translateX(-50%) scale(.9) } }
@keyframes mdi3-shad { 0% { opacity:.5; transform: scaleX(1) } 50% { opacity:.8; transform: scaleX(1.1) } 100% { opacity:.5; transform: scaleX(1) } }

.scn-description-of-george-harris { background: linear-gradient(180deg, #f0d8b0 0%, #e0c090 50%, #c0a070 100%), radial-gradient(ellipse at 50% 60%, #ffd090 0%, transparent 70%); }
.scn-description-of-george-harris .bg-warm { position:absolute; inset:0; background: linear-gradient(180deg, #e8d0a0 0%, #c8a880 100%); }
.scn-description-of-george-harris .glow-round { position:absolute; top:20%; left:30%; width:40%; height:60%; background: radial-gradient(circle, #ffd080 0%, #ffb060 40%, transparent 70%); opacity:.5; animation: mdi4-glow 4s ease-in-out infinite alternate; }
.scn-description-of-george-harris .figure-center { position:absolute; bottom:25%; left:50%; width:18%; height:50%; transform:translateX(-50%); background: linear-gradient(180deg, #6a4a3a 0%, #3a2a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: mdi4-pose 6s ease-in-out infinite; }
.scn-description-of-george-harris .book-maybe { position:absolute; bottom:30%; left:46%; width:8%; height:6%; background: linear-gradient(135deg, #a87858 0%, #785838 100%); border-radius: 2px; transform: rotate(-10deg); animation: mdi4-book 5s ease-in-out infinite; }
.scn-description-of-george-harris .embroidery { position:absolute; bottom:30%; left:52%; width:6%; height:4%; background: linear-gradient(135deg, #d0a080 0%, #b08060 100%); border-radius: 30%; transform: rotate(15deg); animation: mdi4-embro 7s ease-in-out infinite; }
.scn-description-of-george-harris .sparkle { position:absolute; top:25%; left:35%; width:6px; height:6px; background: #ffd080; border-radius:50%; box-shadow: 0 0 8px 2px rgba(255,208,128,.6); animation: mdi4-spark 3s ease-in-out infinite; }
.scn-description-of-george-harris .ribbon { position:absolute; bottom:35%; left:55%; width:12%; height:2%; background: linear-gradient(90deg, #c8553d 0%, #a0461a 100%); border-radius: 10px; transform: rotate(20deg); animation: mdi4-ribb 4s ease-in-out infinite alternate; }
@keyframes mdi4-glow { 0% { opacity:.3; transform: scale(1) } 50% { opacity:.6; transform: scale(1.1) } 100% { opacity:.4; transform: scale(.95) } }
@keyframes mdi4-pose { 0% { transform: translateX(-50%) translateY(0) rotate(0deg) } 50% { transform: translateX(-50%) translateY(-4px) rotate(2deg) } 100% { transform: translateX(-50%) translateY(0) rotate(0deg) } }
@keyframes mdi4-book { 0% { transform: rotate(-10deg) translateY(0) } 50% { transform: rotate(-5deg) translateY(-2px) } 100% { transform: rotate(-10deg) translateY(0) } }
@keyframes mdi4-embro { 0% { transform: rotate(15deg) scale(1) } 50% { transform: rotate(10deg) scale(1.1) } 100% { transform: rotate(15deg) scale(1) } }
@keyframes mdi4-spark { 0% { opacity:.2; transform: translate(0,0) scale(.5) } 50% { opacity:1; transform: translate(5px,-8px) scale(1.5) } 100% { opacity:.3; transform: translate(10px,-12px) scale(.8) } }
@keyframes mdi4-ribb { 0% { transform: rotate(20deg) translateX(0) } 50% { transform: rotate(25deg) translateX(3px) } 100% { transform: rotate(20deg) translateX(0) } }

/* Scene: shelby-describes-haley */
.scn-shelby-describes-haley {
  background:
    linear-gradient(180deg, #1c1410 0%, #2b1f1a 40%, #3a2a22 100%),
    radial-gradient(ellipse 60% 80% at 50% 100%, #4a3628 0%, transparent 70%);
}
.scn-shelby-describes-haley .wall-bg {
  position: absolute; inset: 0 0 35% 0;
  background: linear-gradient(135deg, #2b1f1a 0%, #1c1410 100%);
  box-shadow: inset 0 10px 30px rgba(0,0,0,0.7);
  animation: sh1-flicker 12s ease-in-out infinite alternate;
}
.scn-shelby-describes-haley .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 35%;
  background: linear-gradient(0deg, #1a120e 0%, #2a1e18 100%);
  box-shadow: inset 0 8px 20px rgba(0,0,0,0.5);
}
.scn-shelby-describes-haley .table {
  position: absolute; bottom: 28%; left: 50%; width: 120px; height: 18px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #4a3628 0%, #2e221c 100%);
  border-radius: 4px;
  box-shadow: 0 4px 8px rgba(0,0,0,0.6);
  animation: sh1-table 9s ease-in-out infinite;
}
.scn-shelby-describes-haley .candle {
  position: absolute; bottom: 32%; left: 50%; width: 10px; height: 30px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #e8c480 0%, #c8a060 80%);
  border-radius: 2px;
  box-shadow: 0 -10px 30px 8px rgba(200,160,96,0.5);
  animation: sh1-candle 4s ease-in-out infinite alternate;
}
.scn-shelby-describes-haley .figure-shelby {
  position: absolute; bottom: 20%; left: 35%; width: 24px; height: 50px;
  background: linear-gradient(180deg, #1c1410 0%, #0e0a08 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: sh1-fig 6s ease-in-out infinite;
}
.scn-shelby-describes-haley .shadow-haley {
  position: absolute; bottom: 25%; left: 55%; width: 30px; height: 55px;
  background: linear-gradient(180deg, #2a1e18 0%, #0e0806 100%);
  border-radius: 40% 50% 45% 45% / 65% 60% 40% 40%;
  opacity: 0.6;
  filter: blur(3px);
  animation: sh1-shadow 10s ease-in-out infinite alternate;
}
.scn-shelby-describes-haley .glow-pool {
  position: absolute; bottom: 28%; left: 45%; width: 80px; height: 40px;
  background: radial-gradient(ellipse, rgba(200,160,96,0.3) 0%, transparent 70%);
  border-radius: 50%;
  filter: blur(12px);
  animation: sh1-glow 3s ease-in-out infinite alternate;
}
@keyframes sh1-flicker {
  0% { opacity: 0.85; } 50% { opacity: 1; } 100% { opacity: 0.9; }
}
@keyframes sh1-table {
  0%, 100% { transform: translateX(-50%) translateY(0); }
  50% { transform: translateX(-50%) translateY(-2px); }
}
@keyframes sh1-candle {
  0% { transform: translateX(-50%) scaleY(1); opacity: 0.9; }
  50% { transform: translateX(-50%) scaleY(1.05); opacity: 1; }
  100% { transform: translateX(-50%) scaleY(0.95); opacity: 0.85; }
}
@keyframes sh1-fig {
  0% { transform: translateX(0) rotate(0deg); }
  25% { transform: translateX(2px) rotate(1deg); }
  75% { transform: translateX(-2px) rotate(-1deg); }
  100% { transform: translateX(0) rotate(0deg); }
}
@keyframes sh1-shadow {
  0% { transform: scale(1); opacity: 0.5; }
  50% { transform: scale(1.05); opacity: 0.7; }
  100% { transform: scale(0.95); opacity: 0.6; }
}
@keyframes sh1-glow {
  0% { opacity: 0.4; transform: scale(1); }
  50% { opacity: 0.7; transform: scale(1.2); }
  100% { opacity: 0.3; transform: scale(0.9); }
}

/* Scene: mrs-shelby-refuses-complicity */
.scn-mrs-shelby-refuses-complicity {
  background:
    linear-gradient(180deg, #1a1412 0%, #2c201b 50%, #3a2a24 100%),
    radial-gradient(ellipse 80% 60% at 30% 20%, #4a3628 0%, transparent 60%);
}
.scn-mrs-shelby-refuses-complicity .wall-dark {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(135deg, #2c201b 0%, #18120e 100%);
  box-shadow: inset 0 8px 20px rgba(0,0,0,0.6);
}
.scn-mrs-shelby-refuses-complicity .doorway {
  position: absolute; bottom: 20%; left: 20%; width: 70px; height: 100px;
  background: linear-gradient(180deg, #3a2a22 0%, #1e1612 100%);
  border-radius: 4px;
  box-shadow: inset 0 0 20px rgba(0,0,0,0.5);
  animation: ms1-door 15s ease-in-out infinite alternate;
}
.scn-mrs-shelby-refuses-complicity .lamp {
  position: absolute; bottom: 50%; left: 60%; width: 16px; height: 30px;
  background: linear-gradient(180deg, #e0b070 0%, #b08850 100%);
  border-radius: 6px 6px 4px 4px;
  box-shadow: 0 -6px 30px 10px rgba(200,150,80,0.6);
  animation: ms1-lamp 5s ease-in-out infinite alternate;
}
.scn-mrs-shelby-refuses-complicity .figure-mrs {
  position: absolute; bottom: 15%; left: 25%; width: 22px; height: 60px;
  background: linear-gradient(180deg, #1e1612 0%, #0e0a08 100%);
  border-radius: 50% 50% 40% 40% / 70% 70% 40% 40%;
  transform-origin: bottom center;
  animation: ms1-fig 8s ease-in-out infinite;
}
.scn-mrs-shelby-refuses-complicity .hand-raised {
  position: absolute; bottom: 35%; left: 28%; width: 8px; height: 12px;
  background: #1a1210;
  border-radius: 50% 50% 30% 30%;
  transform: rotate(-20deg);
  animation: ms1-hand 4s ease-in-out infinite alternate;
}
.scn-mrs-shelby-refuses-complicity .drapes {
  position: absolute; bottom: 30%; left: 5%; width: 40px; height: 70px;
  background: linear-gradient(180deg, #2e221c 0%, #1a120e 100%);
  border-radius: 10px 0 0 10px;
  filter: blur(2px);
  animation: ms1-drape 20s ease-in-out infinite alternate;
}
@keyframes ms1-door {
  0% { background: linear-gradient(180deg, #3a2a22 0%, #1e1612 100%); }
  50% { background: linear-gradient(180deg, #4a3628 0%, #2e201a 100%); }
  100% { background: linear-gradient(180deg, #3a2a22 0%, #1e1612 100%); }
}
@keyframes ms1-lamp {
  0% { opacity: 0.8; transform: scale(1); }
  50% { opacity: 1; transform: scale(1.05); }
  100% { opacity: 0.85; transform: scale(0.95); }
}
@keyframes ms1-fig {
  0% { transform: translateY(0) rotate(0deg); }
  33% { transform: translateY(-3px) rotate(2deg); }
  66% { transform: translateY(0) rotate(-1deg); }
  100% { transform: translateY(0) rotate(0deg); }
}
@keyframes ms1-hand {
  0% { transform: rotate(-25deg) translateY(0); }
  50% { transform: rotate(-15deg) translateY(-2px); }
  100% { transform: rotate(-20deg) translateY(0); }
}
@keyframes ms1-drape {
  0% { transform: scale(1); }
  50% { transform: scale(1.05); }
  100% { transform: scale(0.95); }
}

/* Scene: eliza-eavesdrops */
.scn-eliza-eavesdrops {
  background:
    linear-gradient(180deg, #0e0c0a 0%, #1c1410 60%, #2a1c16 100%),
    radial-gradient(ellipse 40% 70% at 60% 50%, #3a221a 0%, transparent 70%);
}
.scn-eliza-eavesdrops .corridor-wall {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(135deg, #1c1410 0%, #0e0a08 100%);
  box-shadow: inset 0 12px 25px rgba(0,0,0,0.8);
}
.scn-eliza-eavesdrops .closet-door {
  position: absolute; bottom: 15%; left: 35%; width: 80px; height: 120px;
  background: linear-gradient(180deg, #2e1e18 0%, #1a120e 100%);
  border-radius: 4px;
  box-shadow: inset 2px 0 10px rgba(0,0,0,0.6), 0 8px 20px rgba(0,0,0,0.4);
  animation: ea1-door 14s ease-in-out infinite alternate;
}
.scn-eliza-eavesdrops .light-crack {
  position: absolute; bottom: 40%; left: 38%; width: 4px; height: 60px;
  background: linear-gradient(180deg, #d0a060 0%, #b08040 100%);
  box-shadow: 0 0 20px 6px rgba(200,140,60,0.6);
  animation: ea1-crack 5s ease-in-out infinite alternate;
}
.scn-eliza-eavesdrops .figure-eliza {
  position: absolute; bottom: 12%; left: 42%; width: 20px; height: 65px;
  background: linear-gradient(180deg, #1e1612 0%, #0c0806 100%);
  border-radius: 50% 50% 40% 40% / 65% 65% 35% 35%;
  transform-origin: bottom center;
  animation: ea1-fig 9s ease-in-out infinite;
}
.scn-eliza-eavesdrops .ear-edge {
  position: absolute; bottom: 35%; left: 44%; width: 6px; height: 10px;
  background: #1a1210;
  border-radius: 50% 0 0 50%;
  filter: blur(1px);
  animation: ea1-ear 3s ease-in-out infinite alternate;
}
.scn-eliza-eavesdrops .keyhole-glow {
  position: absolute; bottom: 50%; left: 36%; width: 4px; height: 4px;
  background: radial-gradient(circle, #e0b070 0%, #c08040 100%);
  border-radius: 50%;
  box-shadow: 0 0 12px 4px rgba(200,140,60,0.5);
  animation: ea1-keyhole 4s ease-in-out infinite alternate;
}
@keyframes ea1-door {
  0% { transform: scaleX(1); }
  50% { transform: scaleX(1.02); }
  100% { transform: scaleX(0.98); }
}
@keyframes ea1-crack {
  0% { opacity: 0.7; filter: blur(0px); }
  50% { opacity: 1; filter: blur(1px); }
  100% { opacity: 0.6; filter: blur(0px); }
}
@keyframes ea1-fig {
  0% { transform: translateY(0) rotate(1deg); }
  25% { transform: translateY(-2px) rotate(-1deg); }
  75% { transform: translateY(1px) rotate(2deg); }
  100% { transform: translateY(0) rotate(0deg); }
}
@keyframes ea1-ear {
  0% { transform: rotate(0deg) scale(1); }
  50% { transform: rotate(10deg) scale(1.1); }
  100% { transform: rotate(-5deg) scale(0.95); }
}
@keyframes ea1-keyhole {
  0% { opacity: 0.5; box-shadow: 0 0 8px 2px rgba(200,140,60,0.3); }
  50% { opacity: 1; box-shadow: 0 0 20px 8px rgba(200,140,60,0.6); }
  100% { opacity: 0.6; box-shadow: 0 0 12px 4px rgba(200,140,60,0.4); }
}

/* Scene: eliza-resolves-to-flee */
.scn-eliza-resolves-to-flee {
  background:
    linear-gradient(180deg, #120e0c 0%, #1e1612 50%, #2a1e18 100%),
    radial-gradient(ellipse 50% 50% at 60% 80%, #3a2820 0%, transparent 60%);
}
.scn-eliza-resolves-to-flee .hall-bg {
  position: absolute; inset: 0 0 35% 0;
  background: linear-gradient(135deg, #1e1612 0%, #0e0a08 100%);
  box-shadow: inset 0 10px 20px rgba(0,0,0,0.7);
}
.scn-eliza-resolves-to-flee .hall-floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 35%;
  background: linear-gradient(0deg, #0e0a08 0%, #1a120e 100%);
  box-shadow: inset 0 8px 15px rgba(0,0,0,0.5);
}
.scn-eliza-resolves-to-flee .wall-shadow {
  position: absolute; bottom: 20%; left: 10%; width: 120px; height: 80px;
  background: linear-gradient(180deg, #2e1e18 0%, #1a120e 100%);
  filter: blur(5px);
  opacity: 0.5;
  animation: erf1-shadow 12s ease-in-out infinite alternate;
}
.scn-eliza-resolves-to-flee .figure-eliza-flee {
  position: absolute; bottom: 10%; left: 50%; width: 22px; height: 70px;
  background: linear-gradient(180deg, #1e1612 0%, #0c0804 100%);
  border-radius: 50% 50% 40% 40% / 70% 70% 30% 30%;
  transform-origin: bottom center;
  animation: erf1-fig 7s ease-in-out infinite;
}
.scn-eliza-resolves-to-flee .door-ahead {
  position: absolute; bottom: 15%; left: 65%; width: 60px; height: 100px;
  background: linear-gradient(180deg, #4a3628 0%, #2e201a 100%);
  border-radius: 4px;
  box-shadow: inset 0 0 15px rgba(0,0,0,0.6);
  transform: scale(0.85);
  animation: erf1-door 20s ease-in-out infinite alternate;
}
.scn-eliza-resolves-to-flee .moonbeam {
  position: absolute; bottom: 5%; left: 70%; width: 30px; height: 100px;
  background: linear-gradient(180deg, rgba(200,180,160,0.2) 0%, transparent 100%);
  filter: blur(6px);
  animation: erf1-moon 10s ease-in-out infinite alternate;
}
.scn-eliza-resolves-to-flee .grip-hand {
  position: absolute; bottom: 25%; left: 48%; width: 8px; height: 12px;
  background: #1a1210;
  border-radius: 40% 40% 30% 30%;
  transform: rotate(-10deg);
  animation: erf1-grip 4s ease-in-out infinite alternate;
}
@keyframes erf1-shadow {
  0% { transform: scale(1) rotate(0deg); opacity: 0.4; }
  50% { transform: scale(1.05) rotate(2deg); opacity: 0.6; }
  100% { transform: scale(0.95) rotate(-1deg); opacity: 0.5; }
}
@keyframes erf1-fig {
  0% { transform: translateX(0) rotate(1deg); }
  33% { transform: translateX(4px) rotate(-1deg); }
  66% { transform: translateX(8px) rotate(2deg); }
  100% { transform: translateX(12px) rotate(0deg); }
}
@keyframes erf1-door {
  0% { transform: scale(0.85) translateY(0); }
  50% { transform: scale(0.87) translateY(-2px); }
  100% { transform: scale(0.83) translateY(0); }
}
@keyframes erf1-moon {
  0% { opacity: 0.3; transform: translateX(0); }
  50% { opacity: 0.6; transform: translateX(5px); }
  100% { opacity: 0.2; transform: translateX(-5px); }
}
@keyframes erf1-grip {
  0% { transform: rotate(-15deg) scale(1); }
  50% { transform: rotate(-5deg) scale(1.1); }
  100% { transform: rotate(-10deg) scale(0.95); }
}

/* Scene: elizas-upbringing */
.scn-elizas-upbringing {
  background:
    linear-gradient(180deg, #3a2a1a 0%, #4a3a2a 30%, #2a1a0a 100%),
    radial-gradient(ellipse at 60% 40%, #5a3a1a 0%, transparent 70%);
  position: relative; overflow: hidden;
}
.scn-elizas-upbringing .bg-walls {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(135deg, #4a3a2a 0%, #2a1a0a 100%);
  animation: eubg-walls 12s ease-in-out infinite alternate;
}
.scn-elizas-upbringing .bg-floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0a00 100%);
  border-radius: 20% 20% 0 0;
}
.scn-elizas-upbringing .fireplace {
  position: absolute; bottom: 25%; left: 15%; width: 90px; height: 120px;
  background: linear-gradient(180deg, #5a3a1a 0%, #3a1a0a 100%);
  border-radius: 10% 10% 5% 5%;
  box-shadow: inset 0 -10px 20px rgba(0,0,0,0.6);
}
.scn-elizas-upbringing .fire-glow {
  position: absolute; bottom: 28%; left: 18%; width: 60px; height: 70px;
  background: radial-gradient(circle, #ffa040 0%, #ff6020 40%, transparent 70%);
  border-radius: 50%;
  animation: eubg-fire 2s ease-in-out infinite alternate;
}
.scn-elizas-upbringing .mother-fig {
  position: absolute; bottom: 28%; left: 35%; width: 22px; height: 48px;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: eubg-fig-mother 6s ease-in-out infinite;
}
.scn-elizas-upbringing .child-fig {
  position: absolute; bottom: 27%; left: 42%; width: 14px; height: 28px;
  background: linear-gradient(180deg, #2a2a3a 0%, #0a0a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: eubg-fig-child 4s ease-in-out infinite;
}
.scn-elizas-upbringing .window {
  position: absolute; top: 10%; right: 15%; width: 50px; height: 70px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border: 4px solid #1a0a00;
  border-radius: 4px;
}
.scn-elizas-upbringing .window-light {
  position: absolute; top: 12%; right: 17%; width: 40px; height: 50px;
  background: radial-gradient(circle, #c0a060 0%, #806030 60%, transparent 100%);
  filter: blur(2px);
  animation: eubg-window-light 8s ease-in-out infinite alternate;
}
@keyframes eubg-walls {
  0% { opacity: 0.9; }
  50% { opacity: 1; }
  100% { opacity: 0.85; }
}
@keyframes eubg-fire {
  0% { transform: scale(1); opacity: 0.8; }
  30% { transform: scale(1.1); opacity: 1; }
  60% { transform: scale(0.95); opacity: 0.9; }
  100% { transform: scale(1.05); opacity: 0.85; }
}
@keyframes eubg-fig-mother {
  0% { transform: translateY(0) rotate(0deg); }
  40% { transform: translateY(-2px) rotate(-2deg); }
  100% { transform: translateY(0) rotate(1deg); }
}
@keyframes eubg-fig-child {
  0% { transform: translateY(0) rotate(0deg); }
  50% { transform: translateY(-1px) rotate(3deg); }
  100% { transform: translateY(0) rotate(-2deg); }
}
@keyframes eubg-window-light {
  0% { opacity: 0.6; box-shadow: 0 0 10px 5px #806030; }
  50% { opacity: 1; box-shadow: 0 0 20px 10px #c0a060; }
  100% { opacity: 0.7; box-shadow: 0 0 12px 6px #806030; }
}

/* Scene: eliza-marries-george */
.scn-eliza-marries-george {
  background:
    linear-gradient(180deg, #2a1a0a 0%, #3a2a1a 40%, #1a0a00 100%),
    radial-gradient(ellipse at 50% 60%, #5a3a1a 0%, transparent 80%);
  position: relative; overflow: hidden;
}
.scn-eliza-marries-george .altar {
  position: absolute; bottom: 20%; left: 50%; transform: translateX(-50%);
  width: 120px; height: 60px;
  background: linear-gradient(180deg, #4a2a1a 0%, #2a1a0a 100%);
  border-radius: 10% 10% 5% 5%;
  box-shadow: 0 4px 12px rgba(0,0,0,0.5);
}
.scn-eliza-marries-george .candle-left {
  position: absolute; bottom: 38%; left: 38%; width: 8px; height: 30px;
  background: linear-gradient(180deg, #6a4a2a 0%, #4a2a1a 100%);
  border-radius: 2px;
}
.scn-eliza-marries-george .candle-right {
  position: absolute; bottom: 38%; right: 38%; width: 8px; height: 30px;
  background: linear-gradient(180deg, #6a4a2a 0%, #4a2a1a 100%);
  border-radius: 2px;
}
.scn-eliza-marries-george .flame-left {
  position: absolute; bottom: 48%; left: 38%; width: 12px; height: 16px;
  background: radial-gradient(circle, #ffd080 0%, #ff8020 50%, transparent 80%);
  border-radius: 50% 50% 30% 30%;
  animation: emg-flame 1.5s ease-in-out infinite alternate;
}
.scn-eliza-marries-george .flame-right {
  position: absolute; bottom: 48%; right: 38%; width: 12px; height: 16px;
  background: radial-gradient(circle, #ffd080 0%, #ff8020 50%, transparent 80%);
  border-radius: 50% 50% 30% 30%;
  animation: emg-flame 1.8s ease-in-out infinite alternate-reverse;
}
.scn-eliza-marries-george .figure-eliza {
  position: absolute; bottom: 26%; left: 43%; width: 18px; height: 40px;
  background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: emg-fig 3s ease-in-out infinite;
}
.scn-eliza-marries-george .figure-george {
  position: absolute; bottom: 26%; right: 43%; width: 20px; height: 42px;
  background: linear-gradient(180deg, #1a1a3a 0%, #0a0a2a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: emg-fig 3.5s ease-in-out infinite reverse;
}
.scn-eliza-marries-george .arch {
  position: absolute; top: 10%; left: 30%; right: 30%; height: 50%;
  background: radial-gradient(ellipse at 50% 100%, transparent 60%, #2a1a0a 61%, #1a0a00 100%);
  pointer-events: none;
}
@keyframes emg-flame {
  0% { transform: scaleY(1) translateY(0); opacity: 0.9; }
  25% { transform: scaleY(1.2) translateY(-2px); opacity: 1; }
  50% { transform: scaleY(0.8) translateY(1px); opacity: 0.8; }
  75% { transform: scaleY(1.1) translateY(-1px); opacity: 0.95; }
  100% { transform: scaleY(1) translateY(0); opacity: 0.9; }
}
@keyframes emg-fig {
  0% { transform: translateY(0) rotate(0deg); }
  40% { transform: translateY(-1px) rotate(1deg); }
  100% { transform: translateY(0) rotate(-1deg); }
}

/* Scene: georges-invention */
.scn-georges-invention {
  background:
    linear-gradient(180deg, #1a1a2a 0%, #2a2a3a 30%, #0a0a1a 100%),
    radial-gradient(ellipse at 30% 50%, #3a3a4a 0%, transparent 70%);
  position: relative; overflow: hidden;
}
.scn-georges-invention .bg-forge {
  position: absolute; inset: 0;
  background: linear-gradient(135deg, #2a2a3a 0%, #0a0a1a 100%);
  animation: gi-forge-glow 8s ease-in-out infinite alternate;
}
.scn-georges-invention .machine-frame {
  position: absolute; bottom: 25%; left: 10%; right: 10%; top: 30%;
  background: linear-gradient(180deg, #3a3a4a 0%, #1a1a2a 100%);
  border-radius: 5% 5% 10% 10%;
  box-shadow: inset 0 0 20px rgba(0,0,0,0.8);
}
.scn-georges-invention .gear-large {
  position: absolute; bottom: 40%; left: 20%; width: 50px; height: 50px;
  background: radial-gradient(circle, #4a4a5a 40%, #2a2a3a 42%, transparent 50%);
  border: 4px solid #5a5a6a;
  border-radius: 50%;
  animation: gi-gear-spin 4s linear infinite;
}
.scn-georges-invention .gear-small {
  position: absolute; bottom: 45%; left: 45%; width: 30px; height: 30px;
  background: radial-gradient(circle, #4a4a5a 40%, #2a2a3a 42%, transparent 50%);
  border: 3px solid #5a5a6a;
  border-radius: 50%;
  animation: gi-gear-spin 3s linear infinite reverse;
}
.scn-georges-invention .figure-george {
  position: absolute; bottom: 20%; left: 50%; transform: translateX(-50%);
  width: 22px; height: 48px;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: gi-figure-bend 5s ease-in-out infinite;
}
.scn-georges-invention .sparks {
  position: absolute; bottom: 35%; left: 30%; width: 20px; height: 20px;
  background: radial-gradient(circle, #ff8040 0%, #ff4000 40%, transparent 70%);
  filter: blur(1px);
  animation: gi-sparks 0.8s ease-in-out infinite alternate;
}
.scn-georges-invention .belt {
  position: absolute; bottom: 38%; left: 20%; right: 50%; height: 6px;
  background: linear-gradient(90deg, #3a3a4a 0%, #5a5a6a 50%, #3a3a4a 100%);
  border-radius: 3px;
  animation: gi-belt-move 2s linear infinite;
}
.scn-georges-invention .anvil {
  position: absolute; bottom: 18%; left: 30%; width: 40px; height: 30px;
  background: linear-gradient(180deg, #4a4a5a 0%, #2a2a3a 100%);
  border-radius: 10% 10% 5% 5%;
  box-shadow: 0 2px 6px rgba(0,0,0,0.6);
}
@keyframes gi-forge-glow {
  0% { opacity: 0.8; }
  50% { opacity: 1; }
  100% { opacity: 0.9; }
}
@keyframes gi-gear-spin {
  0% { transform: rotate(0deg); }
  100% { transform: rotate(360deg); }
}
@keyframes gi-figure-bend {
  0% { transform: translateX(-50%) rotate(0deg); }
  30% { transform: translateX(-50%) rotate(10deg) translateY(-2px); }
  60% { transform: translateX(-50%) rotate(-5deg) translateY(0); }
  100% { transform: translateX(-50%) rotate(0deg); }
}
@keyframes gi-sparks {
  0% { transform: translate(0,0) scale(1); opacity: 1; }
  30% { transform: translate(10px,-10px) scale(1.5); opacity: 0.7; }
  60% { transform: translate(-5px,5px) scale(0.8); opacity: 0.9; }
  100% { transform: translate(0,0) scale(1); opacity: 1; }
}
@keyframes gi-belt-move {
  0% { background-position: 0 0; }
  100% { background-position: 40px 0; }
}

/* Scene: master-resentful-of-george */
.scn-master-resentful-of-george {
  background:
    linear-gradient(180deg, #1a1a2a 0%, #2a2a3a 40%, #0a0a1a 100%),
    radial-gradient(ellipse at 70% 30%, #3a3a4a 0%, transparent 80%);
  position: relative; overflow: hidden;
}
.scn-master-resentful-of-george .bg-shadows {
  position: absolute; inset: 0;
  background: linear-gradient(135deg, #1a1a2a 0%, #0a0a1a 100%);
  animation: mrg-shadow-pulse 6s ease-in-out infinite alternate;
}
.scn-master-resentful-of-george .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 20%;
  background: linear-gradient(180deg, #2a2a3a 0%, #0a0a1a 100%);
  border-radius: 10% 10% 0 0;
}
.scn-master-resentful-of-george .figure-george {
  position: absolute; bottom: 18%; left: 35%; width: 22px; height: 50px;
  background: linear-gradient(180deg, #1a1a3a 0%, #0a0a2a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: mrg-george-stand 4s ease-in-out infinite;
}
.scn-master-resentful-of-george .figure-master {
  position: absolute; bottom: 18%; right: 30%; width: 24px; height: 48px;
  background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: mrg-master-loom 5s ease-in-out infinite;
}
.scn-master-resentful-of-george .machine-silhouette {
  position: absolute; bottom: 10%; left: 5%; right: 60%; top: 40%;
  background: linear-gradient(180deg, #2a2a3a 0%, #0a0a1a 100%);
  border-radius: 10% 10% 5% 5%;
  clip-path: polygon(0% 0%, 100% 0%, 80% 100%, 0% 100%);
  filter: blur(1px);
}
.scn-master-resentful-of-george .window-bars {
  position: absolute; top: 10%; right: 10%; width: 40px; height: 60px;
  border: 3px solid #3a3a4a;
  border-radius: 4px;
  background: transparent;
  box-shadow: inset 0 0 10px rgba(0,0,0,0.8);
}
.scn-master-resentful-of-george .light-shaft {
  position: absolute; top: 10%; right: 12%; width: 30px; bottom: 20%;
  background: linear-gradient(180deg, rgba(200,200,220,0.1) 0%, rgba(200,200,220,0.05) 50%, transparent 100%);
  filter: blur(3px);
  animation: mrg-light 10s ease-in-out infinite alternate;
}
@keyframes mrg-shadow-pulse {
  0% { opacity: 0.9; }
  50% { opacity: 1; }
  100% { opacity: 0.8; }
}
@keyframes mrg-george-stand {
  0% { transform: translateY(0) rotate(0deg); }
  40% { transform: translateY(-2px) rotate(1deg); }
  100% { transform: translateY(0) rotate(0deg); }
}
@keyframes mrg-master-loom {
  0% { transform: translateY(0) rotate(0deg); opacity: 0.9; }
  30% { transform: translateY(-3px) rotate(-3deg); opacity: 1; }
  60% { transform: translateY(0) rotate(2deg); opacity: 0.8; }
  100% { transform: translateY(0) rotate(0deg); opacity: 0.9; }
}
@keyframes mrg-light {
  0% { opacity: 0.5; }
  50% { opacity: 1; }
  100% { opacity: 0.6; }
}

/* sam-revolves-matter */
.scn-sam-revolves-matter {
  background: linear-gradient(145deg, #fff8e7 0%, #f0e0c0 60%, #d8c8a0 100%), radial-gradient(ellipse at 30% 20%, #fff5d6 0%, transparent 50%);
}
.scn-sam-revolves-matter .bg-wall {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #f5e6d0 0%, #e8d4b0 100%);
}
.scn-sam-revolves-matter .bg-floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #b8996a 0%, #9a7d54 100%);
  border-radius: 20% 20% 0 0;
}
.scn-sam-revolves-matter .desk {
  position: absolute; bottom: 22%; left: 20%; width: 50%; height: 12%;
  background: linear-gradient(180deg, #7a5c3a 0%, #5a3f22 100%);
  border-radius: 4% 4% 0 0;
  box-shadow: 0 6px 12px rgba(0,0,0,0.3);
}
.scn-sam-revolves-matter .paper {
  position: absolute; bottom: 28%; width: 20px; height: 24px;
  background: #fff8e0;
  border-radius: 2px;
  box-shadow: 0 2px 4px rgba(0,0,0,0.2);
  animation: sr-paper 6s ease-in-out infinite alternate;
}
.scn-sam-revolves-matter .paper-a { left: 25%; }
.scn-sam-revolves-matter .paper-b { left: 55%; animation-delay: -3s; }
.scn-sam-revolves-matter .figure-sam {
  position: absolute; bottom: 20%; left: 40%; width: 40px; height: 80px;
  background: linear-gradient(180deg, #4a2e1e 0%, #2c1a0e 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  transform-origin: bottom center;
  animation: sr-figure 4s ease-in-out infinite;
}
.scn-sam-revolves-matter .figure-haley {
  position: absolute; bottom: 20%; right: 15%; width: 45px; height: 85px;
  background: linear-gradient(180deg, #3a2518 0%, #20140a 100%);
  border-radius: 45% 45% 35% 35% / 55% 55% 35% 35%;
  transform-origin: bottom center;
  animation: sr-figure 4s ease-in-out infinite reverse;
}
.scn-sam-revolves-matter .inkwell {
  position: absolute; bottom: 26%; left: 22%; width: 16px; height: 20px;
  background: radial-gradient(circle at 50% 30%, #1a1a2a 0%, #0a0a0a 100%);
  border-radius: 40% 40% 10% 10%;
  animation: sr-ink 5s ease-in-out infinite;
}
@keyframes sr-paper {
  0% { transform: translate(0,0) rotate(-5deg); }
  50% { transform: translate(10px,-8px) rotate(15deg); }
  100% { transform: translate(20px,2px) rotate(5deg); }
}
@keyframes sr-figure {
  0% { transform: translateX(0) rotate(-2deg); }
  50% { transform: translateX(8px) rotate(2deg); }
  100% { transform: translateX(0) rotate(-2deg); }
}
@keyframes sr-ink {
  0% { transform: rotate(0deg) scale(1); }
  50% { transform: rotate(-10deg) scale(1.1); }
  100% { transform: rotate(0deg) scale(1); }
}

/* sam-sollioquizes */
.scn-sam-sollioquizes {
  background: linear-gradient(180deg, #b8d4e8 0%, #e6f0fa 40%, #fdf6e3 80%, #e0cb9e 100%), radial-gradient(ellipse at 50% 0%, #fefefe 0%, transparent 70%);
}
.scn-sam-sollioquizes .sky {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(180deg, #9cc0d4 0%, transparent 100%);
  animation: ss-sky 20s ease-in-out infinite alternate;
}
.scn-sam-sollioquizes .ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 40%;
  background: linear-gradient(180deg, #8a9a6a 0%, #6a7a4a 100%);
  border-radius: 60% 40% 0 0;
}
.scn-sam-sollioquizes .fence {
  position: absolute; bottom: 30%; left: 10%; width: 30%; height: 8%;
  background: repeating-linear-gradient(90deg, #7a5a3a 0px, #7a5a3a 8px, transparent 8px, transparent 16px);
  border-top: 4px solid #5a3a1a;
}
.scn-sam-sollioquizes .sam-body {
  position: absolute; bottom: 15%; left: 40%; width: 35px; height: 70px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a120a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: ss-body 3s ease-in-out infinite;
}
.scn-sam-sollioquizes .sam-arm {
  position: absolute; bottom: 30%; left: 37%; width: 20px; height: 8px;
  background: #2a1a10;
  border-radius: 30% 0 0 30%;
  transform-origin: right center;
  animation: ss-arm 2s ease-in-out infinite alternate;
}
.scn-sam-sollioquizes .pants {
  position: absolute; bottom: 15%; left: 39%; width: 28px; height: 30px;
  background: linear-gradient(180deg, #4a6a4a 0%, #2a4a2a 100%);
  border-radius: 30% 30% 20% 20%;
  box-shadow: 0 4px 6px rgba(0,0,0,0.3);
  animation: ss-pants 4s ease-in-out infinite;
}
.scn-sam-sollioquizes .nail {
  position: absolute; bottom: 28%; left: 50%; width: 6px; height: 18px;
  background: linear-gradient(180deg, #a0a0a0 0%, #707070 100%);
  border-radius: 10%;
  transform: rotate(10deg);
  animation: ss-nail 3s ease-in-out infinite;
}
.scn-sam-sollioquizes .sparkle {
  position: absolute; bottom: 30%; left: 52%; width: 6px; height: 6px;
  background: #fffde0;
  border-radius: 50%;
  box-shadow: 0 0 12px 4px rgba(255,253,224,0.8);
  animation: ss-sparkle 1.5s ease-in-out infinite alternate;
}
@keyframes ss-sky {
  0% { opacity: 0.7; }
  50% { opacity: 1; }
  100% { opacity: 0.8; }
}
@keyframes ss-body {
  0% { transform: translate(0,0) rotate(-3deg); }
  50% { transform: translate(5px,-2px) rotate(3deg); }
  100% { transform: translate(0,0) rotate(-3deg); }
}
@keyframes ss-arm {
  0% { transform: rotate(-30deg); }
  100% { transform: rotate(20deg); }
}
@keyframes ss-pants {
  0% { transform: scaleY(1); }
  50% { transform: scaleY(1.05) translateY(-3px); }
  100% { transform: scaleY(1); }
}
@keyframes ss-nail {
  0% { transform: rotate(-10deg) translate(0,0); }
  50% { transform: rotate(15deg) translate(3px, -2px); }
  100% { transform: rotate(-10deg) translate(0,0); }
}
@keyframes ss-sparkle {
  0% { opacity: 0.3; transform: scale(0.8); }
  100% { opacity: 1; transform: scale(1.3); }
}

/* andy-tells-sam-news */
.scn-andy-tells-sam-news {
  background: linear-gradient(180deg, #dfe9c8 0%, #c4d4a0 30%, #a9b87a 60%, #8a9a5a 100%), radial-gradient(ellipse at 70% 20%, #f5f8e0 0%, transparent 60%);
}
.scn-andy-tells-sam-news .bg-open {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #d4e2a0 0%, #c0d080 100%);
}
.scn-andy-tells-sam-news .road {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #a08050 0%, #806030 100%);
  border-radius: 30% 70% 0 0;
}
.scn-andy-tells-sam-news .tree {
  position: absolute; bottom: 20%;
  background: linear-gradient(180deg, #3a5a2a 0%, #1a3a0a 100%);
  border-radius: 40% 40% 20% 20%;
  animation: at-tree 30s ease-in-out infinite alternate;
}
.scn-andy-tells-sam-news .tree-far { left: 10%; width: 50px; height: 100px; }
.scn-andy-tells-sam-news .tree-near { right: 15%; width: 60px; height: 120px; animation-delay: -10s; }
.scn-andy-tells-sam-news .andy-figure {
  position: absolute; bottom: 18%; left: 25%; width: 30px; height: 65px;
  background: linear-gradient(180deg, #2a1a0e 0%, #1a0e06 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  transform-origin: bottom center;
  animation: at-figure 4s ease-in-out infinite;
}
.scn-andy-tells-sam-news .sam-figure {
  position: absolute; bottom: 18%; right: 30%; width: 35px; height: 75px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a120a 100%);
  border-radius: 50% 40% 30% 30% / 60% 50% 30% 30%;
  transform-origin: bottom center;
  animation: at-figure 4s ease-in-out infinite reverse;
}
.scn-andy-tells-sam-news .dust {
  position: absolute; bottom: 5%; left: 40%; width: 30px; height: 10px;
  background: radial-gradient(ellipse, #d0b080 0%, transparent 100%);
  border-radius: 50%;
  filter: blur(3px);
  animation: at-dust 6s ease-in-out infinite;
}
@keyframes at-tree {
  0% { transform: scale(1) rotate(0deg); }
  50% { transform: scale(1.02) rotate(1deg); }
  100% { transform: scale(0.98) rotate(0deg); }
}
@keyframes at-figure {
  0% { transform: translateY(0) rotate(-2deg); }
  33% { transform: translateY(-4px) rotate(0deg); }
  66% { transform: translateY(0) rotate(2deg); }
  100% { transform: translateY(-2px) rotate(-1deg); }
}
@keyframes at-dust {
  0% { transform: translateX(0) scale(1); opacity: 0.5; }
  50% { transform: translateX(20px) scale(1.5); opacity: 0.8; }
  100% { transform: translateX(-10px) scale(0.8); opacity: 0.3; }
}

/* andy-reveals-missis-wishes */
.scn-andy-reveals-missis-wishes {
  background: linear-gradient(180deg, #f7e8d0 0%, #e8d0b0 40%, #d8b890 80%, #c8a070 100%), radial-gradient(ellipse at 60% 30%, #fff0d8 0%, transparent 60%);
}
.scn-andy-reveals-missis-wishes .bg-wall {
  position: absolute; inset: 0 0 35% 0;
  background: linear-gradient(180deg, #e5cba0 0%, #d4b488 100%);
}
.scn-andy-reveals-missis-wishes .bg-floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 35%;
  background: linear-gradient(180deg, #a08050 0%, #806040 100%);
  border-radius: 30% 70% 0 0;
}
.scn-andy-reveals-missis-wishes .cabinet {
  position: absolute; bottom: 20%; left: 10%; width: 50px; height: 90px;
  background: linear-gradient(180deg, #6a4a2a 0%, #4a2a0e 100%);
  border-radius: 4% 4% 0 0;
  box-shadow: 0 8px 16px rgba(0,0,0,0.3);
  animation: ar-cabinet 8s ease-in-out infinite alternate;
}
.scn-andy-reveals-missis-wishes .sam-excited {
  position: absolute; bottom: 18%; left: 35%; width: 38px; height: 78px;
  background: linear-gradient(180deg, #4a2e1e 0%, #2c1a0e 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: ar-sam 3s ease-in-out infinite;
}
.scn-andy-reveals-missis-wishes .andy-pointing {
  position: absolute; bottom: 18%; right: 25%; width: 32px; height: 70px;
  background: linear-gradient(180deg, #3a2518 0%, #20140a 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  transform-origin: bottom center;
  animation: ar-andy 4s ease-in-out infinite;
}
.scn-andy-reveals-missis-wishes .shadow-line {
  position: absolute; bottom: 15%; left: 0; right: 0; height: 10px;
  background: linear-gradient(90deg, transparent 10%, rgba(0,0,0,0.15) 30%, transparent 70%);
  filter: blur(2px);
  animation: ar-shadow 5s ease-in-out infinite;
}
.scn-andy-reveals-missis-wishes .papers-fly {
  position: absolute; bottom: 40%; left: 60%; width: 16px; height: 20px;
  background: #fff8e0;
  border-radius: 2px;
  box-shadow: 0 2px 4px rgba(0,0,0,0.2);
  animation: ar-paper 7s ease-in-out infinite;
}
.scn-andy-reveals-missis-wishes .cap {
  position: absolute; bottom: 70%; left: 38%; width: 24px; height: 10px;
  background: #5a3a1a;
  border-radius: 50% 50% 20% 20%;
  transform: rotate(-10deg);
  animation: ar-cap 4s ease-in-out infinite;
}
@keyframes ar-cabinet {
  0% { transform: translateY(0); }
  50% { transform: translateY(-3px); }
  100% { transform: translateY(0); }
}
@keyframes ar-sam {
  0% { transform: translateX(0) rotate(-5deg); }
  25% { transform: translateX(4px) rotate(5deg); }
  50% { transform: translateX(0) rotate(-3deg); }
  75% { transform: translateX(5px) rotate(2deg); }
  100% { transform: translateX(0) rotate(-5deg); }
}
@keyframes ar-andy {
  0% { transform: rotate(0deg) translateY(0); }
  33% { transform: rotate(-8deg) translateY(-3px); }
  66% { transform: rotate(8deg) translateY(-1px); }
  100% { transform: rotate(0deg) translateY(0); }
}
@keyframes ar-shadow {
  0% { opacity: 0.3; transform: scaleX(0.8); }
  50% { opacity: 0.6; transform: scaleX(1); }
  100% { opacity: 0.3; transform: scaleX(0.8); }
}
@keyframes ar-paper {
  0% { transform: translate(0,0) rotate(0deg); }
  33% { transform: translate(10px,-20px) rotate(30deg); }
  66% { transform: translate(-5px,-35px) rotate(-20deg); }
  100% { transform: translate(0,0) rotate(0deg); }
}
@keyframes ar-cap {
  0% { transform: rotate(-15deg) translate(0,0); }
  50% { transform: rotate(5deg) translate(3px, -5px); }
  100% { transform: rotate(-10deg) translate(0,0); }
}

/* Scene: chloe-anxious – tense firelit interior */
.scn-chloe-anxious {
  background: linear-gradient(180deg, #2a1a10 0%, #3a2214 30%, #1a0e08 100%),
              radial-gradient(ellipse at 20% 70%, #c86432 0%, #6a2a14 60%, transparent 100%);
}
.scn-chloe-anxious .bg-fire { position:absolute; inset:0 0 40% 0; background: linear-gradient(180deg, #4a2a14 0%, transparent 100%); animation: ca-fireglow 6s ease-in-out infinite alternate; }
.scn-chloe-anxious .hearth  { position:absolute; bottom:30%; left:10%; width:40%; height:20%; background: linear-gradient(180deg, #5a2a12 0%, #1a0a04 100%); border-radius: 40% 40% 10% 10%; box-shadow: inset 0 -6px 12px #000; }
.scn-chloe-anxious .flame   { position:absolute; bottom:38%; left:22%; width:8%; height:12%; background: radial-gradient(circle, #f08040 0%, #c04020 50%, transparent 100%); filter: blur(3px); animation: ca-flame 2s ease-in-out infinite; }
.scn-chloe-anxious .figure  { position:absolute; bottom:25%; right:15%; width:20%; height:45%; background: linear-gradient(135deg, #1c1410 0%, #0e0a06 100%); border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%; transform-origin: bottom center; animation: ca-fig-anxious 4s ease-in-out infinite; }
.scn-chloe-anxious .hand    { position:absolute; bottom:42%; right:28%; width:4%; height:6%; background: #2a1a10; border-radius: 40% 40% 30% 30%; animation: ca-hand-tremble 3s ease-in-out infinite; }
.scn-chloe-anxious .shadow  { position:absolute; bottom:20%; right:10%; width:25%; height:10%; background: radial-gradient(ellipse, #0a0604 0%, transparent 70%); filter: blur(4px); animation: ca-shadow-pulse 5s ease-in-out infinite; }
@keyframes ca-fireglow    { 0% { opacity:0.7 } 50% { opacity:1 } 100% { opacity:0.8 } }
@keyframes ca-flame       { 0% { transform: scaleY(0.9) translateY(2px); } 50% { transform: scaleY(1.2) translateY(-2px); } 100% { transform: scaleY(1) translateY(0); } }
@keyframes ca-fig-anxious { 0% { transform: translateX(0) rotate(0deg); } 50% { transform: translateX(-6px) rotate(2deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes ca-hand-tremble{ 0% { transform: translate(0,0) rotate(-3deg); } 50% { transform: translate(2px,-1px) rotate(4deg); } 100% { transform: translate(0,0) rotate(-2deg); } }
@keyframes ca-shadow-pulse{ 0% { opacity:0.6; transform:scale(1); } 50% { opacity:0.9; transform:scale(1.05); } 100% { opacity:0.7; transform:scale(0.95); } }

/* Scene: chloe-shows-bills – calm firelit domestic */
.scn-chloe-shows-bills {
  background: linear-gradient(180deg, #3c2a1a 0%, #4a3220 50%, #2a1a0e 100%),
              radial-gradient(ellipse at 50% 50%, #b07040 0%, #4a2a14 60%, transparent 100%);
}
.scn-chloe-shows-bills .bg-room   { position:absolute; inset:0 0 20% 0; background: linear-gradient(180deg, #5a3a20 0%, transparent 100%); animation: cs-lightsway 15s ease-in-out infinite alternate; }
.scn-chloe-shows-bills .table     { position:absolute; bottom:25%; left:10%; width:80%; height:8%; background: linear-gradient(180deg, #6a4a2a 0%, #3a2210 100%); border-radius: 20% 20% 0 0; box-shadow: 0 4px 8px #1a0e06; }
.scn-chloe-shows-bills .paper     { position:absolute; bottom:32%; left:35%; width:12%; height:6%; background: #e8dcc0; border-radius: 2px; transform: rotate(3deg); animation: cs-paper 8s ease-in-out infinite alternate; }
.scn-chloe-shows-bills .figure-a  { position:absolute; bottom:28%; left:50%; width:18%; height:35%; background: linear-gradient(135deg, #2a1e16 0%, #1a120c 100%); border-radius: 50% 50% 40% 40% / 70% 70% 40% 40%; transform-origin: bottom; animation: cs-sit-a 10s ease-in-out infinite; }
.scn-chloe-shows-bills .figure-b  { position:absolute; bottom:28%; left:28%; width:16%; height:30%; background: linear-gradient(135deg, #32241a 0%, #22160e 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom; animation: cs-sit-b 12s ease-in-out infinite; }
.scn-chloe-shows-bills .candle    { position:absolute; bottom:30%; left:48%; width:2%; height:6%; background: linear-gradient(180deg, #e8c860 0%, #c8a040 100%); border-radius: 10% 10% 30% 30%; box-shadow: 0 0 10px 4px #e8c860; animation: cs-candleflicker 2s ease-in-out infinite alternate; }
.scn-chloe-shows-bills .glow      { position:absolute; inset:20% 30% 30% 30%; background: radial-gradient(ellipse, #e8c860 0%, transparent 100%); filter: blur(20px); animation: cs-glowpulse 5s ease-in-out infinite alternate; }
@keyframes cs-lightsway    { 0% { opacity:0.6 } 50% { opacity:0.9 } 100% { opacity:0.7 } }
@keyframes cs-paper        { 0% { transform: rotate(3deg) translate(0,0) } 50% { transform: rotate(1deg) translate(2px,-1px) } 100% { transform: rotate(4deg) translate(0,0) } }
@keyframes cs-sit-a        { 0% { transform: translate(0,0) rotate(0deg) } 50% { transform: translate(4px,-2px) rotate(1deg) } 100% { transform: translate(0,0) rotate(0deg) } }
@keyframes cs-sit-b        { 0% { transform: translate(0,0) rotate(0deg) } 50% { transform: translate(-3px,-1px) rotate(-1deg) } 100% { transform: translate(0,0) rotate(0deg) } }
@keyframes cs-candleflicker{ 0% { box-shadow: 0 0 8px 2px #e8c860; height:5%; } 50% { box-shadow: 0 0 14px 6px #f0d070; height:7%; } 100% { box-shadow: 0 0 10px 3px #d8b050; height:5%; } }
@keyframes cs-glowpulse   { 0% { opacity:0.3; transform:scale(0.95) } 50% { opacity:0.6; transform:scale(1.05) } 100% { opacity:0.4; transform:scale(0.98) } }

/* Scene: chloe-grieves – dark firelit embrace */
.scn-chloe-grieves {
  background: linear-gradient(180deg, #1a0e08 0%, #2a160c 40%, #0e0604 100%),
              radial-gradient(ellipse at 50% 80%, #4a1a0c 0%, #1a0a04 70%, transparent 100%);
}
.scn-chloe-grieves .bg-dark      { position:absolute; inset:0; background: radial-gradient(ellipse at 40% 60%, #3a1a0c 0%, transparent 100%); animation: cg-darkbreath 12s ease-in-out infinite alternate; }
.scn-chloe-grieves .shadow-overlay { position:absolute; inset:0; background: linear-gradient(180deg, rgba(0,0,0,0.6) 0%, transparent 50%, rgba(0,0,0,0.3) 100%); filter: blur(5px); }
.scn-chloe-grieves .figure-one   { position:absolute; bottom:25%; left:35%; width:20%; height:40%; background: linear-gradient(135deg, #2a1a10 0%, #1a0e06 100%); border-radius: 50% 50% 40% 40% / 70% 70% 40% 40%; transform-origin: bottom; animation: cg-fig1 6s ease-in-out infinite; }
.scn-chloe-grieves .figure-two   { position:absolute; bottom:28%; left:50%; width:22%; height:35%; background: linear-gradient(135deg, #32241a 0%, #1e120a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom; animation: cg-fig2 8s ease-in-out infinite; }
.scn-chloe-grieves .arm          { position:absolute; bottom:35%; left:48%; width:3%; height:20%; background: #2a1a10; border-radius: 20% 20% 30% 30%; transform-origin: bottom; transform: rotate(-15deg); animation: cg-arm 5s ease-in-out infinite; }
.scn-chloe-grieves .tear         { position:absolute; bottom:50%; left:42%; width:1.5%; height:2%; background: radial-gradient(circle, #c0b0a0 0%, transparent 100%); border-radius: 50%; filter: blur(1px); animation: cg-tear 4s ease-in-out infinite; }
@keyframes cg-darkbreath  { 0% { opacity:0.8 } 50% { opacity:1 } 100% { opacity:0.7 } }
@keyframes cg-fig1        { 0% { transform: translate(0,0) rotate(0deg) } 50% { transform: translate(3px,-2px) rotate(2deg) } 100% { transform: translate(0,0) rotate(0deg) } }
@keyframes cg-fig2        { 0% { transform: translate(0,0) rotate(0deg) } 50% { transform: translate(-4px,-3px) rotate(-2deg) } 100% { transform: translate(0,0) rotate(0deg) } }
@keyframes cg-arm         { 0% { transform: rotate(-15deg) translate(0,0) } 50% { transform: rotate(-10deg) translate(2px,-1px) } 100% { transform: rotate(-15deg) translate(0,0) } }
@keyframes cg-tear        { 0% { transform: translate(0,0) scaleY(1); opacity:0.8 } 50% { transform: translate(2px,-8px) scaleY(1.5); opacity:0.4 } 100% { transform: translate(0,0) scaleY(1); opacity:0 } }

/* Scene: george-frees-slaves – warm sunlit outdoors */
.scn-george-frees-slaves {
  background: linear-gradient(180deg, #87ceeb 0%, #b0d4f0 40%, #4a7a2a 70%, #2a5a1a 100%),
              radial-gradient(ellipse at 70% 20%, #ffe680 0%, transparent 60%);
}
.scn-george-frees-slaves .sky          { position:absolute; inset:0 0 50% 0; background: linear-gradient(180deg, #7ab8d0 0%, #b8daf0 100%); animation: gf-skydrift 40s linear infinite alternate; }
.scn-george-frees-slaves .sun          { position:absolute; top:10%; right:20%; width:12%; height:12%; background: radial-gradient(circle, #ffe680 0%, #f0c040 40%, transparent 100%); filter: blur(3px); animation: gf-sunpulse 10s ease-in-out infinite; }
.scn-george-frees-slaves .ground       { position:absolute; bottom:0; left:0; right:0; height:50%; background: linear-gradient(180deg, #4a7a2a 0%, #3a6a1a 100%); border-radius: 20% 80% 0 0 / 50% 100% 0 0; }
.scn-george-frees-slaves .figure-central { position:absolute; bottom:35%; left:45%; width:10%; height:30%; background: #1a1a10; border-radius: 50% 50% 30% 30% / 70% 70% 40% 40%; transform-origin: bottom; animation: gf-central 6s ease-in-out infinite; }
.scn-george-frees-slaves .crowd        { position:absolute; bottom:30%; left:20%; width:60%; height:20%; background: linear-gradient(90deg, transparent 0%, #2a2a1a 10%, #3a3a2a 20%, #2a2a1a 30%, #3a3a2a 40%, #2a2a1a 50%, #3a3a2a 60%, #2a2a1a 70%, #3a3a2a 80%, #2a2a1a 90%, transparent 100%); mask: linear-gradient(180deg, #000 0%, transparent 10%); clip-path: polygon(0% 100%, 10% 0%, 20% 20%, 30% 0%, 40% 15%, 50% 0%, 60% 10%, 70% 0%, 80% 25%, 90% 0%, 100% 100%); animation: gf-crowdsway 12s ease-in-out infinite; }
.scn-george-frees-slaves .papers       { position:absolute; bottom:45%; left:50%; width:4%; height:3%; background: #f0e4c0; border-radius: 2px; transform: rotate(10deg); animation: gf-papers 8s ease-in-out infinite alternate; }
.scn-george-frees-slaves .shadows      { position:absolute; bottom:5%; left:10%; width:80%; height:15%; background: linear-gradient(90deg, transparent, rgba(0,0,0,0.3), transparent); filter: blur(6px); animation: gf-shadowmove 20s linear infinite; }
.scn-george-frees-slaves .dust-motes   { position:absolute; top:20%; left:10%; width:80%; height:60%; background: repeating-radial-gradient(circle at 50% 50%, rgba(255,255,224,0.3) 0%, rgba(255,255,224,0) 2%); filter: blur(2px); animation: gf-dust 30s linear infinite; }
@keyframes gf-skydrift    { 0% { background-position: 0% 0% } 100% { background-position: 100% 0% } }
@keyframes gf-sunpulse    { 0% { transform: scale(0.95); opacity:0.7 } 50% { transform: scale(1.05); opacity:1 } 100% { transform: scale(0.98); opacity:0.8 } }
@keyframes gf-central     { 0% { transform: translate(0,0) rotate(0deg) } 50% { transform: translate(4px,-6px) rotate(3deg) } 100% { transform: translate(0,0) rotate(0deg) } }
@keyframes gf-crowdsway   { 0% { transform: translateX(0) } 50% { transform: translateX(8px) } 100% { transform: translateX(0) } }
@keyframes gf-papers      { 0% { transform: rotate(10deg) translate(0,0) } 50% { transform: rotate(15deg) translate(10px,-5px) } 100% { transform: rotate(10deg) translate(0,0) } }
@keyframes gf-shadowmove  { 0% { transform: translateX(-10%) } 100% { transform: translateX(10%) } }
@keyframes gf-dust        { 0% { opacity:0.3; transform: translateY(0) } 50% { opacity:0.6; transform: translateY(-20px) } 100% { opacity:0.3; transform: translateY(0) } }

.scn-haley-admires-eliza {
  background:
    linear-gradient(180deg, #1a1210 0%, #2a1e1a 30%, #3a2822 60%, #2a1e1a 100%),
    radial-gradient(ellipse at 50% 80%, #3a2822 0%, transparent 70%);
}
.scn-haley-admires-eliza .interior-wall {
  position: absolute;
  inset: 0;
  background: linear-gradient(135deg, #1e1614 0%, #2a201c 50%, #1e1614 100%);
  animation: ha-wall 15s ease-in-out infinite alternate;
}
.scn-haley-admires-eliza .floor {
  position: absolute;
  bottom: 0;
  left: 0;
  right: 0;
  height: 30%;
  background: linear-gradient(0deg, #120c0a 0%, #1e140e 100%);
  box-shadow: inset 0 10px 20px rgba(0,0,0,0.6);
  animation: ha-floor 12s ease-in-out infinite alternate;
}
.scn-haley-admires-eliza .table {
  position: absolute;
  bottom: 22%;
  left: 45%;
  width: 60px;
  height: 40px;
  transform: translateX(-50%);
  background: linear-gradient(135deg, #3a281e 0%, #241810 100%);
  border-radius: 4px;
  box-shadow: 0 4px 8px rgba(0,0,0,0.5);
  animation: ha-table 8s ease-in-out infinite;
}
.scn-haley-admires-eliza .figure-eliza {
  position: absolute;
  bottom: 25%;
  left: 35%;
  width: 28px;
  height: 60px;
  background: linear-gradient(180deg, #2a1e18 0%, #1a100c 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: ha-eliza 6s ease-in-out infinite alternate;
}
.scn-haley-admires-eliza .figure-haley {
  position: absolute;
  bottom: 25%;
  left: 58%;
  width: 30px;
  height: 62px;
  background: linear-gradient(180deg, #2c1810 0%, #1a0e08 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: ha-haley 7s ease-in-out infinite alternate;
}
.scn-haley-admires-eliza .candle-glow {
  position: absolute;
  bottom: 48%;
  left: 50%;
  width: 16px;
  height: 24px;
  transform: translateX(-50%);
  background: radial-gradient(circle, #e8be7a 0%, #c4924a 70%);
  box-shadow: 0 0 30px 10px #c49040, 0 0 60px 20px rgba(196,144,64,0.5);
  animation: ha-glow 3s ease-in-out infinite alternate;
}
.scn-haley-admires-eliza .shadow-accent {
  position: absolute;
  inset: 0;
  background: radial-gradient(ellipse at 50% 60%, transparent 40%, rgba(0,0,0,0.4) 100%);
  pointer-events: none;
  animation: ha-shadow 10s ease-in-out infinite alternate;
}
@keyframes ha-wall {
  0% { opacity: 0.8; }
  50% { opacity: 1; }
  100% { opacity: 0.85; }
}
@keyframes ha-floor {
  0% { transform: translateY(0); }
  50% { transform: translateY(-2px); }
  100% { transform: translateY(0); }
}
@keyframes ha-table {
  0%, 100% { transform: translateX(-50%) translateY(0); }
  50% { transform: translateX(-50%) translateY(-1px); }
}
@keyframes ha-eliza {
  0% { transform: rotate(-2deg); }
  50% { transform: rotate(1deg); }
  100% { transform: rotate(0deg); }
}
@keyframes ha-haley {
  0% { transform: rotate(0deg) translateX(0); }
  50% { transform: rotate(2deg) translateX(2px); }
  100% { transform: rotate(0deg) translateX(0); }
}
@keyframes ha-glow {
  0% { opacity: 0.8; box-shadow: 0 0 20px 6px #c49040, 0 0 40px 12px rgba(196,144,64,0.3); }
  50% { opacity: 1; box-shadow: 0 0 35px 12px #e0a85a, 0 0 70px 20px rgba(224,168,90,0.5); }
  100% { opacity: 0.85; box-shadow: 0 0 25px 8px #c49040, 0 0 50px 15px rgba(196,144,64,0.4); }
}
@keyframes ha-shadow {
  0% { opacity: 0.5; }
  50% { opacity: 0.7; }
  100% { opacity: 0.55; }
}

.scn-shelby-refuses-to-sell-eliza {
  background:
    linear-gradient(180deg, #1a1210 0%, #2a1e1a 30%, #3a2822 60%, #2a1e1a 100%),
    radial-gradient(ellipse at 50% 80%, #3a2822 0%, transparent 70%);
}
.scn-shelby-refuses-to-sell-eliza .interior-wall {
  position: absolute;
  inset: 0;
  background: linear-gradient(135deg, #1e1614 0%, #2a201c 50%, #1e1614 100%);
  animation: sr-wall 18s ease-in-out infinite alternate;
}
.scn-shelby-refuses-to-sell-eliza .floor {
  position: absolute;
  bottom: 0;
  left: 0;
  right: 0;
  height: 30%;
  background: linear-gradient(0deg, #120c0a 0%, #1e140e 100%);
  box-shadow: inset 0 10px 20px rgba(0,0,0,0.6);
  animation: sr-floor 14s ease-in-out infinite alternate;
}
.scn-shelby-refuses-to-sell-eliza .table {
  position: absolute;
  bottom: 22%;
  left: 50%;
  width: 80px;
  height: 35px;
  transform: translateX(-50%);
  background: linear-gradient(135deg, #3a281e 0%, #241810 100%);
  border-radius: 4px;
  box-shadow: 0 4px 8px rgba(0,0,0,0.5);
  animation: sr-table 9s ease-in-out infinite;
}
.scn-shelby-refuses-to-sell-eliza .figure-shelby {
  position: absolute;
  bottom: 25%;
  left: 30%;
  width: 28px;
  height: 58px;
  background: linear-gradient(180deg, #2a1e18 0%, #1a100c 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: sr-shelby 6s ease-in-out infinite alternate;
}
.scn-shelby-refuses-to-sell-eliza .figure-haley {
  position: absolute;
  bottom: 25%;
  left: 62%;
  width: 30px;
  height: 60px;
  background: linear-gradient(180deg, #2c1810 0%, #1a0e08 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: sr-haley 7s ease-in-out infinite alternate;
}
.scn-shelby-refuses-to-sell-eliza .candle-glow {
  position: absolute;
  bottom: 48%;
  left: 50%;
  width: 16px;
  height: 24px;
  transform: translateX(-50%);
  background: radial-gradient(circle, #e8be7a 0%, #c4924a 70%);
  box-shadow: 0 0 30px 10px #c49040, 0 0 60px 20px rgba(196,144,64,0.5);
  animation: sr-glow 3.5s ease-in-out infinite alternate;
}
.scn-shelby-refuses-to-sell-eliza .shadow-accent {
  position: absolute;
  inset: 0;
  background: radial-gradient(ellipse at 50% 60%, transparent 40%, rgba(0,0,0,0.5) 100%);
  pointer-events: none;
  animation: sr-shadow 12s ease-in-out infinite alternate;
}
@keyframes sr-wall {
  0% { opacity: 0.8; }
  50% { opacity: 1; }
  100% { opacity: 0.85; }
}
@keyframes sr-floor {
  0% { transform: translateY(0); }
  50% { transform: translateY(-2px); }
  100% { transform: translateY(0); }
}
@keyframes sr-table {
  0%, 100% { transform: translateX(-50%) translateY(0); }
  50% { transform: translateX(-50%) translateY(-1px); }
}
@keyframes sr-shelby {
  0% { transform: rotate(-1deg) translateX(-1px); }
  50% { transform: rotate(1deg) translateX(1px); }
  100% { transform: rotate(0deg) translateX(0); }
}
@keyframes sr-haley {
  0% { transform: rotate(1deg) translateX(1px); }
  50% { transform: rotate(-1deg) translateX(-1px); }
  100% { transform: rotate(0deg) translateX(0); }
}
@keyframes sr-glow {
  0% { opacity: 0.7; box-shadow: 0 0 18px 5px #c49040, 0 0 36px 10px rgba(196,144,64,0.3); }
  50% { opacity: 1; box-shadow: 0 0 32px 12px #e0a85a, 0 0 64px 18px rgba(224,168,90,0.5); }
  100% { opacity: 0.8; box-shadow: 0 0 22px 8px #c49040, 0 0 44px 15px rgba(196,144,64,0.4); }
}
@keyframes sr-shadow {
  0% { opacity: 0.4; }
  50% { opacity: 0.6; }
  100% { opacity: 0.5; }
}

.scn-haley-persists-on-harry {
  background:
    linear-gradient(180deg, #1a1210 0%, #2a1e1a 30%, #3a2822 60%, #2a1e1a 100%),
    radial-gradient(ellipse at 50% 80%, #3a2822 0%, transparent 70%);
}
.scn-haley-persists-on-harry .interior-wall {
  position: absolute;
  inset: 0;
  background: linear-gradient(135deg, #1e1614 0%, #2a201c 50%, #1e1614 100%);
  animation: hp-wall 20s ease-in-out infinite alternate;
}
.scn-haley-persists-on-harry .floor {
  position: absolute;
  bottom: 0;
  left: 0;
  right: 0;
  height: 30%;
  background: linear-gradient(0deg, #120c0a 0%, #1e140e 100%);
  box-shadow: inset 0 10px 20px rgba(0,0,0,0.6);
  animation: hp-floor 16s ease-in-out infinite alternate;
}
.scn-haley-persists-on-harry .table {
  position: absolute;
  bottom: 22%;
  left: 50%;
  width: 70px;
  height: 35px;
  transform: translateX(-50%);
  background: linear-gradient(135deg, #3a281e 0%, #241810 100%);
  border-radius: 4px;
  box-shadow: 0 4px 8px rgba(0,0,0,0.5);
  animation: hp-table 10s ease-in-out infinite;
}
.scn-haley-persists-on-harry .figure-harry {
  position: absolute;
  bottom: 25%;
  left: 35%;
  width: 18px;
  height: 40px;
  background: linear-gradient(180deg, #2a1e18 0%, #1a100c 100%);
  border-radius: 50% 50% 40% 40% / 70% 70% 40% 40%;
  transform-origin: bottom center;
  animation: hp-harry 6s ease-in-out infinite alternate;
}
.scn-haley-persists-on-harry .figure-haley {
  position: absolute;
  bottom: 25%;
  left: 60%;
  width: 30px;
  height: 64px;
  background: linear-gradient(180deg, #2c1810 0%, #1a0e08 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: hp-haley 8s ease-in-out infinite alternate;
}
.scn-haley-persists-on-harry .candle-glow {
  position: absolute;
  bottom: 48%;
  left: 50%;
  width: 16px;
  height: 24px;
  transform: translateX(-50%);
  background: radial-gradient(circle, #e8be7a 0%, #c4924a 70%);
  box-shadow: 0 0 30px 10px #c49040, 0 0 60px 20px rgba(196,144,64,0.5);
  animation: hp-glow 4s ease-in-out infinite alternate;
}
.scn-haley-persists-on-harry .shadow-accent {
  position: absolute;
  inset: 0;
  background: radial-gradient(ellipse at 50% 60%, transparent 40%, rgba(0,0,0,0.45) 100%);
  pointer-events: none;
  animation: hp-shadow 15s ease-in-out infinite alternate;
}
@keyframes hp-wall {
  0% { opacity: 0.75; }
  50% { opacity: 1; }
  100% { opacity: 0.85; }
}
@keyframes hp-floor {
  0% { transform: translateY(0); }
  50% { transform: translateY(-3px); }
  100% { transform: translateY(0); }
}
@keyframes hp-table {
  0%, 100% { transform: translateX(-50%) translateY(0); }
  50% { transform: translateX(-50%) translateY(-2px); }
}
@keyframes hp-harry {
  0% { transform: translateX(0) rotate(-2deg); }
  50% { transform: translateX(4px) rotate(1deg); }
  100% { transform: translateX(0) rotate(0deg); }
}
@keyframes hp-haley {
  0% { transform: rotate(0deg) translateX(0); }
  50% { transform: rotate(2deg) translateX(-2px); }
  100% { transform: rotate(0deg) translateX(0); }
}
@keyframes hp-glow {
  0% { opacity: 0.6; box-shadow: 0 0 15px 4px #c49040, 0 0 30px 8px rgba(196,144,64,0.3); }
  50% { opacity: 1; box-shadow: 0 0 35px 12px #e0a85a, 0 0 70px 20px rgba(224,168,90,0.5); }
  100% { opacity: 0.75; box-shadow: 0 0 20px 6px #c49040, 0 0 40px 12px rgba(196,144,64,0.4); }
}
@keyframes hp-shadow {
  0% { opacity: 0.45; }
  50% { opacity: 0.65; }
  100% { opacity: 0.5; }
}

.scn-haley-justifies-buying-boys {
  background:
    linear-gradient(180deg, #1a1210 0%, #2a1e1a 30%, #3a2822 60%, #2a1e1a 100%),
    radial-gradient(ellipse at 50% 80%, #3a2822 0%, transparent 70%);
}
.scn-haley-justifies-buying-boys .interior-wall {
  position: absolute;
  inset: 0;
  background: linear-gradient(135deg, #1e1614 0%, #2a201c 50%, #1e1614 100%);
  animation: hj-wall 22s ease-in-out infinite alternate;
}
.scn-haley-justifies-buying-boys .floor {
  position: absolute;
  bottom: 0;
  left: 0;
  right: 0;
  height: 30%;
  background: linear-gradient(0deg, #120c0a 0%, #1e140e 100%);
  box-shadow: inset 0 10px 20px rgba(0,0,0,0.6);
  animation: hj-floor 18s ease-in-out infinite alternate;
}
.scn-haley-justifies-buying-boys .table {
  position: absolute;
  bottom: 22%;
  left: 50%;
  width: 90px;
  height: 35px;
  transform: translateX(-50%);
  background: linear-gradient(135deg, #3a281e 0%, #241810 100%);
  border-radius: 4px;
  box-shadow: 0 4px 8px rgba(0,0,0,0.5);
  animation: hj-table 11s ease-in-out infinite;
}
.scn-haley-justifies-buying-boys .figure-haley {
  position: absolute;
  bottom: 25%;
  left: 30%;
  width: 30px;
  height: 62px;
  background: linear-gradient(180deg, #2c1810 0%, #1a0e08 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: hj-haley 7s ease-in-out infinite alternate;
}
.scn-haley-justifies-buying-boys .figure-friend {
  position: absolute;
  bottom: 25%;
  left: 60%;
  width: 28px;
  height: 58px;
  background: linear-gradient(180deg, #2a1e18 0%, #1a100c 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: hj-friend 9s ease-in-out infinite alternate;
}
.scn-haley-justifies-buying-boys .candle-glow {
  position: absolute;
  bottom: 48%;
  left: 50%;
  width: 16px;
  height: 24px;
  transform: translateX(-50%);
  background: radial-gradient(circle, #e8be7a 0%, #c4924a 70%);
  box-shadow: 0 0 30px 10px #c49040, 0 0 60px 20px rgba(196,144,64,0.5);
  animation: hj-glow 4.5s ease-in-out infinite alternate;
}
.scn-haley-justifies-buying-boys .shadow-accent {
  position: absolute;
  inset: 0;
  background: radial-gradient(ellipse at 50% 60%, transparent 40%, rgba(0,0,0,0.5) 100%);
  pointer-events: none;
  animation: hj-shadow 20s ease-in-out infinite alternate;
}
@keyframes hj-wall {
  0% { opacity: 0.8; }
  50% { opacity: 1; }
  100% { opacity: 0.85; }
}
@keyframes hj-floor {
  0% { transform: translateY(0); }
  50% { transform: translateY(-2px); }
  100% { transform: translateY(0); }
}
@keyframes hj-table {
  0%, 100% { transform: translateX(-50%) translateY(0); }
  50% { transform: translateX(-50%) translateY(-1px); }
}
@keyframes hj-haley {
  0% { transform: rotate(0deg) translateX(0); }
  50% { transform: rotate(2deg) translateX(-2px); }
  100% { transform: rotate(0deg) translateX(0); }
}
@keyframes hj-friend {
  0% { transform: rotate(-1deg) translateX(1px); }
  50% { transform: rotate(1deg) translateX(-1px); }
  100% { transform: rotate(0deg) translateX(0); }
}
@keyframes hj-glow {
  0% { opacity: 0.7; box-shadow: 0 0 20px 6px #c49040, 0 0 40px 12px rgba(196,144,64,0.3); }
  50% { opacity: 1; box-shadow: 0 0 35px 12px #e0a85a, 0 0 70px 20px rgba(224,168,90,0.5); }
  100% { opacity: 0.85; box-shadow: 0 0 25px 8px #c49040, 0 0 50px 14px rgba(196,144,64,0.4); }
}
@keyframes hj-shadow {
  0% { opacity: 0.4; }
  50% { opacity: 0.6; }
  100% { opacity: 0.5; }
}

/* george-confronts-legree */
.scn-george-confronts-legree {
  background:
    linear-gradient(180deg, #2a1e1a 0%, #1f1512 50%, #140d0a 100%),
    radial-gradient(ellipse at 45% 60%, #3a2a20 0%, transparent 70%);
}
.scn-george-confronts-legree .floor {
  position: absolute; bottom:0; left:0; right:0; height:30%;
  background: linear-gradient(180deg, #2a1e1a 0%, #1a100d 100%);
  box-shadow: inset 0 8px 20px rgba(0,0,0,0.5);
  animation: gcl-floor 20s ease-in-out infinite alternate;
}
.scn-george-confronts-legree .wall {
  position: absolute; top:0; left:0; right:0; bottom:30%;
  background: linear-gradient(180deg, #1f1512 0%, #2a1e1a 50%, #1a100d 100%);
  border-radius: 0 0 20% 20% / 0 0 10% 10%;
  box-shadow: inset 0 0 60px rgba(0,0,0,0.6);
  animation: gcl-wall 15s ease-in-out infinite alternate;
}
.scn-george-confronts-legree .figure-left {
  position: absolute; bottom:20%; left:30%; width:28px; height:60px;
  background: linear-gradient(180deg, #1f1512 0%, #0d0a08 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: gcl-fig-left 6s ease-in-out infinite;
}
.scn-george-confronts-legree .figure-right {
  position: absolute; bottom:20%; right:30%; width:32px; height:64px;
  background: linear-gradient(180deg, #1a120f 0%, #0a0806 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: gcl-fig-right 7s ease-in-out infinite;
}
.scn-george-confronts-legree .table {
  position: absolute; bottom:22%; left:50%; transform:translateX(-50%);
  width:60px; height:16px;
  background: linear-gradient(180deg, #3a2a20 0%, #1f1512 100%);
  border-radius: 10% 10% 30% 30%;
  box-shadow: 0 4px 8px rgba(0,0,0,0.8);
  animation: gcl-table 10s ease-in-out infinite alternate;
}
.scn-george-confronts-legree .candle {
  position: absolute; bottom:30%; left:50%; transform:translateX(-50%);
  width:6px; height:14px;
  background: linear-gradient(180deg, #c88a4a 0%, #a06030 100%);
  border-radius: 30% 30% 10% 10%;
  animation: gcl-candle 3s ease-in-out infinite;
}
.scn-george-confronts-legree .glow {
  position: absolute; bottom:28%; left:50%; transform:translateX(-50%);
  width:40px; height:40px;
  background: radial-gradient(circle, #e0a060 0%, #a06030 30%, transparent 70%);
  border-radius:50%;
  box-shadow: 0 0 60px 20px rgba(224,160,96,0.3);
  animation: gcl-glow 3s ease-in-out infinite alternate;
}
@keyframes gcl-floor { 0% { opacity:0.7 } 50% { opacity:1 } 100% { opacity:0.8 } }
@keyframes gcl-wall { 0% { transform: translateY(0) } 50% { transform: translateY(-2px) } 100% { transform: translateY(1px) } }
@keyframes gcl-fig-left { 0% { transform: translateX(0) translateY(0) rotate(-1deg) } 33% { transform: translateX(-3px) translateY(1px) rotate(0deg) } 66% { transform: translateX(2px) translateY(-1px) rotate(1deg) } 100% { transform: translateX(0) translateY(0) rotate(0deg) } }
@keyframes gcl-fig-right { 0% { transform: translateX(0) translateY(0) rotate(1deg) } 33% { transform: translateX(3px) translateY(-1px) rotate(0deg) } 66% { transform: translateX(-2px) translateY(1px) rotate(-1deg) } 100% { transform: translateX(0) translateY(0) rotate(0deg) } }
@keyframes gcl-table { 0%,100% { transform: translateX(-50%) } 50% { transform: translateX(-50%) translateY(-2px) } }
@keyframes gcl-candle { 0%,100% { opacity:0.8 } 50% { opacity:1; box-shadow: 0 0 8px 2px #e0a060 } }
@keyframes gcl-glow { 0% { opacity:0.6; transform: translateX(-50%) scale(0.9) } 50% { opacity:1; transform: translateX(-50%) scale(1.1) } 100% { opacity:0.7; transform: translateX(-50%) scale(1) } }

/* george-removes-body */
.scn-george-removes-body {
  background:
    linear-gradient(180deg, #8ab4d0 0%, #c4d8e0 40%, #e8f0f0 70%, #d4c8b0 100%),
    radial-gradient(ellipse at 50% 100%, #f0e0c0 0%, transparent 70%);
}
.scn-george-removes-body .sky {
  position: absolute; top:0; left:0; right:0; bottom:30%;
  background: linear-gradient(180deg, #6a90a8 0%, #b0c8d8 50%, #d8e8ec 100%);
  animation: grb-sky 25s ease-in-out infinite alternate;
}
.scn-george-removes-body .ground {
  position: absolute; bottom:0; left:0; right:0; height:35%;
  background: linear-gradient(180deg, #7a6a50 0%, #5a4a34 100%);
  border-radius: 30% 50% 0 0 / 20% 30% 0 0;
  box-shadow: inset 0 10px 30px rgba(0,0,0,0.3);
  animation: grb-ground 18s ease-in-out infinite alternate;
}
.scn-george-removes-body .wagon {
  position: absolute; bottom:25%; left:20%; width:80px; height:30px;
  background: linear-gradient(180deg, #6a4a30 0%, #3a2a1a 100%);
  border-radius: 10% 10% 5% 5%;
  box-shadow: 0 6px 12px rgba(0,0,0,0.4);
  animation: grb-wagon 12s ease-in-out infinite;
}
.scn-george-removes-body .body {
  position: absolute; bottom:27%; left:25%; width:24px; height:36px;
  background: linear-gradient(180deg, #7a5a3a 0%, #4a3a2a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform: rotate(-10deg);
  animation: grb-body 4s ease-in-out infinite alternate;
}
.scn-george-removes-body .carrier-left {
  position: absolute; bottom:25%; left:22%; width:14px; height:40px;
  background: linear-gradient(180deg, #2a2018 0%, #1a1410 100%);
  border-radius: 40% 30% 30% 40%;
  transform-origin: bottom center;
  animation: grb-carrier 5s ease-in-out infinite;
}
.scn-george-removes-body .carrier-right {
  position: absolute; bottom:25%; left:27%; width:14px; height:40px;
  background: linear-gradient(180deg, #2a2018 0%, #1a1410 100%);
  border-radius: 30% 40% 40% 30%;
  transform-origin: bottom center;
  animation: grb-carrier 5s ease-in-out infinite reverse;
}
.scn-george-removes-body .shadow {
  position: absolute; bottom:20%; left:20%; width:100px; height:10px;
  background: radial-gradient(ellipse, rgba(0,0,0,0.4) 0%, transparent 100%);
  border-radius: 50%;
  animation: grb-shadow 8s ease-in-out infinite alternate;
}
.scn-george-removes-body .dust {
  position: absolute; bottom:20%; left:22%; width:30px; height:30px;
  background: radial-gradient(circle, rgba(180,160,130,0.4) 0%, transparent 100%);
  filter: blur(4px);
  animation: grb-dust 6s ease-in-out infinite;
}
@keyframes grb-sky { 0% { opacity:0.8 } 50% { opacity:1 } 100% { opacity:0.9 } }
@keyframes grb-ground { 0% { transform: translateY(0) } 50% { transform: translateY(-3px) } 100% { transform: translateY(0) } }
@keyframes grb-wagon { 0%,100% { transform: translateX(0) } 50% { transform: translateX(-2px) translateY(1px) } }
@keyframes grb-body { 0% { transform: rotate(-10deg) translateY(0) } 50% { transform: rotate(-8deg) translateY(2px) } 100% { transform: rotate(-12deg) translateY(0) } }
@keyframes grb-carrier { 0% { transform: translateX(0) rotate(0deg) } 33% { transform: translateX(2px) rotate(1deg) } 66% { transform: translateX(-1px) rotate(-1deg) } 100% { transform: translateX(0) rotate(0deg) } }
@keyframes grb-shadow { 0% { opacity:0.3; transform: scaleX(1) } 50% { opacity:0.6; transform: scaleX(1.2) } 100% { opacity:0.4; transform: scaleX(0.9) } }
@keyframes grb-dust { 0% { opacity:0; transform: scale(0.5) } 50% { opacity:0.4; transform: scale(1.2) } 100% { opacity:0; transform: scale(0.8) } }

/* legree-threatens-george */
.scn-legree-threatens-george {
  background:
    linear-gradient(180deg, #ffe8b0 0%, #f0d8a0 40%, #d4b880 70%, #8a6a40 100%),
    radial-gradient(ellipse at 50% 30%, #fff0d0 0%, transparent 60%);
}
.scn-legree-threatens-george .sun-sky {
  position: absolute; top:0; left:0; right:0; bottom:40%;
  background: linear-gradient(180deg, #ffd080 0%, #ffe8b0 50%, #f0d8a0 100%);
  border-radius: 0 0 40% 40% / 0 0 20% 20%;
  animation: ltgs-sky 30s ease-in-out infinite alternate;
}
.scn-legree-threatens-george .ground-close {
  position: absolute; bottom:0; left:0; right:0; height:30%;
  background: linear-gradient(180deg, #6a4a30 0%, #4a3020 100%);
  border-radius: 30% 20% 0 0;
  box-shadow: inset 0 10px 30px rgba(0,0,0,0.3);
  animation: ltgs-ground 20s ease-in-out infinite alternate;
}
.scn-legree-threatens-george .legree-fig {
  position: absolute; bottom:15%; left:30%; width:40px; height:80px;
  background: linear-gradient(180deg, #1f1512 0%, #0d0a08 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  filter: drop-shadow(0 10px 20px rgba(0,0,0,0.5));
  animation: ltgs-legree 5s ease-in-out infinite;
}
.scn-legree-threatens-george .george-fig {
  position: absolute; bottom:15%; right:25%; width:28px; height:60px;
  background: linear-gradient(180deg, #2a2018 0%, #1a1410 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: ltgs-george 6s ease-in-out infinite;
}
.scn-legree-threatens-george .shadow-legree {
  position: absolute; bottom:10%; left:30%; width:80px; height:20px;
  background: radial-gradient(ellipse, rgba(0,0,0,0.4) 0%, transparent 100%);
  border-radius: 50%;
  animation: ltgs-shadow 5s ease-in-out infinite alternate;
}
.scn-legree-threatens-george .dust-motes {
  position: absolute; top:20%; left:10%; width:20px; height:20px;
  background: radial-gradient(circle, rgba(255,200,100,0.3) 0%, transparent 100%);
  filter: blur(6px);
  animation: ltgs-dust 15s linear infinite;
}
@keyframes ltgs-sky { 0% { opacity:0.8 } 50% { opacity:1 } 100% { opacity:0.7 } }
@keyframes ltgs-ground { 0% { transform: translateY(0) } 50% { transform: translateY(-2px) } 100% { transform: translateY(1px) } }
@keyframes ltgs-legree { 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 ltgs-george { 0% { transform: translateX(0) translateY(0) } 33% { transform: translateX(-2px) translateY(2px) } 66% { transform: translateX(1px) translateY(-1px) } 100% { transform: translateX(0) translateY(0) } }
@keyframes ltgs-shadow { 0% { opacity:0.3; transform: scaleX(1) } 50% { opacity:0.6; transform: scaleX(1.3) } 100% { opacity:0.4; transform: scaleX(0.8) } }
@keyframes ltgs-dust { 0% { transform: translateX(0) translateY(0); opacity:0 } 20% { opacity:0.5 } 80% { opacity:0.5 } 100% { transform: translateX(100px) translateY(-20px); opacity:0 } }

/* george-strikes-legree */
.scn-george-strikes-legree {
  background:
    linear-gradient(180deg, #ffe0a0 0%, #f0c880 40%, #d4a860 70%, #8a6040 100%),
    radial-gradient(ellipse at 45% 60%, #ffd080 0%, transparent 60%);
}
.scn-george-strikes-legree .sky-bright {
  position: absolute; top:0; left:0; right:0; bottom:30%;
  background: linear-gradient(180deg, #ffd080 0%, #ffe0a0 50%, #f0c880 100%);
  animation: gsl-sky 20s ease-in-out infinite alternate;
}
.scn-george-strikes-legree .ground-dirt {
  position: absolute; bottom:0; left:0; right:0; height:35%;
  background: linear-gradient(180deg, #6a4a30 0%, #4a3020 100%);
  border-radius: 40% 30% 0 0 / 20% 20% 0 0;
  box-shadow: inset 0 10px 30px rgba(0,0,0,0.4);
  animation: gsl-ground 15s ease-in-out infinite alternate;
}
.scn-george-strikes-legree .legree-falling {
  position: absolute; bottom:20%; left:35%; width:40px; height:70px;
  background: linear-gradient(180deg, #1f1512 0%, #0d0a08 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform: rotate(30deg) translateY(10px);
  transform-origin: bottom right;
  animation: gsl-legree 1.5s ease-in-out infinite;
}
.scn-george-strikes-legree .george-arm {
  position: absolute; bottom:30%; right:40%; width:18px; height:40px;
  background: linear-gradient(180deg, #2a2018 0%, #1a1410 100%);
  border-radius: 30% 30% 20% 20%;
  transform: rotate(-45deg);
  transform-origin: top center;
  animation: gsl-arm 2s ease-in-out infinite;
}
.scn-george-strikes-legree .fist {
  position: absolute; bottom:50%; right:32%; width:12px; height:12px;
  background: radial-gradient(circle, #3a2a20 0%, #1a1410 100%);
  border-radius: 50%;
  animation: gsl-fist 2s ease-in-out infinite;
}
.scn-george-strikes-legree .impact-spark {
  position: absolute; bottom:45%; right:30%; width:20px; height:20px;
  background: radial-gradient(circle, #ffd080 0%, #e0a040 40%, transparent 100%);
  border-radius: 50%;
  animation: gsl-spark 0.5s ease-in-out infinite;
}
.scn-george-strikes-legree .dust-cloud {
  position: absolute; bottom:15%; left:30%; width:60px; height:30px;
  background: radial-gradient(ellipse, rgba(180,140,100,0.5) 0%, transparent 100%);
  filter: blur(8px);
  animation: gsl-dust 3s ease-in-out infinite;
}
.scn-george-strikes-legree .shadow-sharp {
  position: absolute; bottom:10%; left:30%; width:80px; height:8px;
  background: linear-gradient(90deg, transparent, rgba(0,0,0,0.5), transparent);
  border-radius: 50%;
  animation: gsl-shadow 2s ease-in-out infinite alternate;
}
@keyframes gsl-sky { 0% { opacity:0.8 } 50% { opacity:1 } 100% { opacity:0.9 } }
@keyframes gsl-ground { 0% { transform: translateY(0) } 50% { transform: translateY(-3px) } 100% { transform: translateY(0) } }
@keyframes gsl-legree { 0% { transform: rotate(25deg) translateY(10px) } 50% { transform: rotate(35deg) translateY(15px) } 100% { transform: rotate(25deg) translateY(10px) } }
@keyframes gsl-arm { 0% { transform: rotate(-40deg) } 50% { transform: rotate(-50deg) } 100% { transform: rotate(-40deg) } }
@keyframes gsl-fist { 0% { transform: translateX(0) } 50% { transform: translateX(5px) } 100% { transform: translateX(0) } }
@keyframes gsl-spark { 0% { opacity:0; transform: scale(0.5) } 50% { opacity:1; transform: scale(1.5) } 100% { opacity:0; transform: scale(0.8) } }
@keyframes gsl-dust { 0% { opacity:0.3; transform: scale(0.8) } 50% { opacity:0.7; transform: scale(1.2) } 100% { opacity:0.4; transform: scale(1) } }
@keyframes gsl-shadow { 0% { opacity:0.4; transform: scaleX(1) } 50% { opacity:0.8; transform: scaleX(1.5) } 100% { opacity:0.5; transform: scaleX(0.9) } }

/* letter-on-africa-2 */
.scn-letter-on-africa-2 {
  background: 
    linear-gradient(180deg, #b8c8d8 0%, #d8e0e8 40%, #f0e8d0 100%) padding-box,
    radial-gradient(ellipse at 70% 30%, #ffe0a0 0%, transparent 60%);
}
.scn-letter-on-africa-2 .scn-bg {
  position: absolute; inset: 0; background: linear-gradient(135deg, #a0b8c8 0%, #d0d8e0 100%);
  animation: a2-bg 30s ease-in-out infinite alternate;
}
.scn-letter-on-africa-2 .window-frame {
  position: absolute; top: 5%; left: 10%; width: 35%; height: 45%;
  border: 8px solid #6a4a2a; border-radius: 4px; background: transparent;
  box-shadow: inset 0 0 0 4px #8a6a4a;
}
.scn-letter-on-africa-2 .sky {
  position: absolute; top: 5%; left: 11%; width: 33%; height: 42%;
  background: linear-gradient(180deg, #7ab8d0 0%, #b0d8e0 40%, #f0e8c0 80%);
  border-radius: 2px;
  animation: a2-sky 20s ease-in-out infinite;
}
.scn-letter-on-africa-2 .sun {
  position: absolute; top: 12%; right: 18%; width: 30px; height: 30px;
  background: radial-gradient(circle, #ffe070 0%, #ffc040 60%, transparent 80%);
  border-radius: 50%; box-shadow: 0 0 40px 10px #ffc040;
  animation: a2-sun 15s ease-in-out infinite alternate;
}
.scn-letter-on-africa-2 .desk {
  position: absolute; bottom: 8%; left: 5%; width: 60%; height: 30%;
  background: linear-gradient(180deg, #6a4a2a 0%, #4a2a10 100%);
  border-radius: 4px 4px 0 0; box-shadow: 0 -4px 12px rgba(0,0,0,0.3);
}
.scn-letter-on-africa-2 .letter {
  position: absolute; bottom: 18%; left: 15%; width: 25%; height: 20%;
  background: linear-gradient(135deg, #f8f0e0 0%, #e8d8b8 100%);
  border-radius: 2px; box-shadow: 0 2px 8px rgba(0,0,0,0.2);
  transform: rotate(-2deg);
  animation: a2-letter 8s ease-in-out infinite;
}
.scn-letter-on-africa-2 .inkwell {
  position: absolute; bottom: 22%; left: 45%; width: 18px; height: 24px;
  background: radial-gradient(circle at 50% 80%, #2a1a0a 0%, #0a0a0a 100%);
  border-radius: 40% 40% 30% 30%; box-shadow: 0 2px 6px rgba(0,0,0,0.4);
  animation: a2-ink 6s ease-in-out infinite;
}
.scn-letter-on-africa-2 .quill {
  position: absolute; bottom: 22%; left: 48%; width: 40px; height: 6px;
  background: linear-gradient(90deg, #e8d8b0 0%, #c8b8a0 100%);
  border-radius: 2px; transform: rotate(15deg); transform-origin: left center;
  animation: a2-quill 5s ease-in-out infinite alternate;
}
@keyframes a2-bg { 0% { opacity: 0.8; } 50% { opacity: 0.95; } 100% { opacity: 0.85; } }
@keyframes a2-sky { 0% { filter: brightness(1); } 50% { filter: brightness(1.2); } 100% { filter: brightness(1.05); } }
@keyframes a2-sun { 0% { transform: translate(0, 0) scale(1); } 50% { transform: translate(5px, -3px) scale(1.1); } 100% { transform: translate(-2px, 2px) scale(1); } }
@keyframes a2-letter { 0%, 100% { transform: rotate(-2deg) translateY(0); } 50% { transform: rotate(-1deg) translateY(-2px); } }
@keyframes a2-ink { 0%, 100% { transform: translateY(0); } 50% { transform: translateY(-1px); } }
@keyframes a2-quill { 0% { transform: rotate(15deg) scale(1); } 50% { transform: rotate(18deg) scale(1.02); } 100% { transform: rotate(12deg) scale(1); } }

/* letter-on-race */
.scn-letter-on-race {
  background: 
    linear-gradient(180deg, #f0d8a0 0%, #d8b080 40%, #b89060 100%) padding-box,
    radial-gradient(ellipse at 50% 80%, #ffe0a0 0%, transparent 70%);
}
.scn-letter-on-race .scn-bg {
  position: absolute; inset: 0; background: linear-gradient(135deg, #e0c8a0 0%, #c8a880 100%);
  animation: rr-bg 40s ease-in-out infinite alternate;
}
.scn-letter-on-race .sunrise {
  position: absolute; bottom: 40%; left: 0; right: 0; height: 60%;
  background: linear-gradient(180deg, transparent 0%, #f0c880 30%, #d8a860 60%, #b08a50 100%);
  border-radius: 0 0 50% 50% / 0 0 20% 20%;
  animation: rr-sunrise 25s ease-in-out infinite;
}
.scn-letter-on-race .sun {
  position: absolute; top: 35%; left: 45%; width: 40px; height: 40px;
  background: radial-gradient(circle, #ffe080 0%, #ffc040 50%, transparent 90%);
  border-radius: 50%; box-shadow: 0 0 60px 20px #ffc040;
  animation: rr-sun 12s ease-in-out infinite alternate;
}
.scn-letter-on-race .silhouette-group {
  position: absolute; bottom: 22%; left: 20%; width: 60%; height: 40%;
  display: flex; justify-content: space-around; align-items: flex-end;
}
.scn-letter-on-race .figure-left, .figure-center, .figure-right {
  position: absolute; bottom: 0; width: 18px; height: 60px;
  background: #1a1410; border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  box-shadow: 0 -2px 8px rgba(0,0,0,0.5);
}
.scn-letter-on-race .figure-left { left: 10%; animation: rr-fig-l 8s ease-in-out infinite; }
.scn-letter-on-race .figure-center { left: 45%; width: 20px; height: 64px; animation: rr-fig-c 8s ease-in-out infinite 2s; }
.scn-letter-on-race .figure-right { right: 10%; width: 16px; height: 56px; animation: rr-fig-r 8s ease-in-out infinite 4s; }
.scn-letter-on-race .ground {
  position: absolute; bottom: 18%; left: 0; right: 0; height: 12%;
  background: linear-gradient(180deg, #8a6a3a 0%, #6a4a2a 100%);
  border-radius: 20% 20% 0 0; box-shadow: inset 0 4px 12px rgba(0,0,0,0.3);
}
@keyframes rr-bg { 0% { opacity: 0.85; } 50% { opacity: 1; } 100% { opacity: 0.9; } }
@keyframes rr-sunrise { 0% { transform: translateY(0) scaleY(1); } 50% { transform: translateY(-5px) scaleY(1.02); } 100% { transform: translateY(0) scaleY(1); } }
@keyframes rr-sun { 0% { transform: translate(0, 0) scale(1); box-shadow: 0 0 60px 20px #ffc040; } 50% { transform: translate(8px, -4px) scale(1.05); box-shadow: 0 0 80px 30px #ffc040; } 100% { transform: translate(-4px, 2px) scale(0.98); box-shadow: 0 0 50px 15px #ffc040; } }
@keyframes rr-fig-l { 0%, 100% { transform: translateY(0) rotate(-1deg); } 50% { transform: translateY(-2px) rotate(1deg); } }
@keyframes rr-fig-c { 0%, 100% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-3px) rotate(2deg); } }
@keyframes rr-fig-r { 0%, 100% { transform: translateY(0) rotate(1deg); } 50% { transform: translateY(-1px) rotate(-1deg); } }

/* letter-on-christian-mission */
.scn-letter-on-christian-mission {
  background: 
    linear-gradient(180deg, #b0c8a0 0%, #c8d8b0 40%, #e0e8c8 100%) padding-box,
    radial-gradient(ellipse at 50% 30%, #f0e8c0 0%, transparent 70%);
}
.scn-letter-on-christian-mission .scn-bg {
  position: absolute; inset: 0; background: linear-gradient(135deg, #a0b890 0%, #c8d8b0 100%);
  animation: cm-bg 35s ease-in-out infinite alternate;
}
.scn-letter-on-christian-mission .sky {
  position: absolute; top: 0; left: 0; right: 0; height: 50%;
  background: linear-gradient(180deg, #7aa8c0 0%, #b0d0d8 50%, transparent 100%);
  animation: cm-sky 20s ease-in-out infinite;
}
.scn-letter-on-christian-mission .sunrays {
  position: absolute; top: 0; left: 50%; width: 60%; height: 100%;
  background: linear-gradient(135deg, rgba(255,224,128,0.3) 0%, transparent 50%);
  transform-origin: top center;
  animation: cm-rays 16s ease-in-out infinite alternate;
}
.scn-letter-on-christian-mission .church {
  position: absolute; bottom: 25%; left: 30%; width: 25%; height: 40%;
  background: linear-gradient(180deg, #8a7050 0%, #5a3a2a 100%);
  border-radius: 8px 8px 4px 4px; box-shadow: 0 8px 20px rgba(0,0,0,0.3);
  animation: cm-church 12s ease-in-out infinite;
}
.scn-letter-on-christian-mission .cross {
  position: absolute; bottom: 50%; left: 38%; width: 4%; height: 18%;
  background: #4a2a1a; border-radius: 2px;
  box-shadow: 0 0 8px 2px rgba(200,160,80,0.4);
  animation: cm-cross 6s ease-in-out infinite alternate;
}
.scn-letter-on-christian-mission .lantern {
  position: absolute; bottom: 35%; left: 45%; width: 10px; height: 12px;
  background: radial-gradient(circle, #ffe060 0%, #d88020 70%);
  border-radius: 30%; box-shadow: 0 0 24px 6px #d88020;
  animation: cm-lantern 4s ease-in-out infinite;
}
.scn-letter-on-christian-mission .path {
  position: absolute; bottom: 20%; left: 20%; width: 60%; height: 8%;
  background: linear-gradient(180deg, #8a7a5a 0%, #6a5a3a 100%);
  border-radius: 20% 20% 0 0; transform: perspective(200px) rotateX(10deg);
}
.scn-letter-on-christian-mission .grass {
  position: absolute; bottom: 18%; left: 0; right: 0; height: 8%;
  background: linear-gradient(180deg, #5a7a3a 0%, #3a5a2a 100%);
  border-radius: 80% 80% 0 0 / 50% 50% 0 0;
}
@keyframes cm-bg { 0% { opacity: 0.85; } 50% { opacity: 0.95; } 100% { opacity: 0.9; } }
@keyframes cm-sky { 0% { filter: brightness(1); } 50% { filter: brightness(1.15); } 100% { filter: brightness(1.05); } }
@keyframes cm-rays { 0% { transform: rotate(-2deg) scaleY(1); } 50% { transform: rotate(2deg) scaleY(1.05); } 100% { transform: rotate(-1deg) scaleY(1); } }
@keyframes cm-church { 0%, 100% { transform: translateY(0); } 50% { transform: translateY(-2px); } }
@keyframes cm-cross { 0% { transform: scaleY(1); } 50% { transform: scaleY(1.08); } 100% { transform: scaleY(1); } }
@keyframes cm-lantern { 0%, 100% { opacity: 0.8; box-shadow: 0 0 24px 6px #d88020; } 50% { opacity: 1; box-shadow: 0 0 36px 12px #d88020; } }

/* letter-conclusion */
.scn-letter-conclusion {
  background: 
    linear-gradient(180deg, #a0b8d0 0%, #c8d8e8 40%, #e0e8f0 100%) padding-box,
    radial-gradient(ellipse at 50% 40%, #ffe0a0 0%, transparent 70%);
}
.scn-letter-conclusion .scn-bg {
  position: absolute; inset: 0; background: linear-gradient(135deg, #90a8c0 0%, #c0d0e0 100%);
  animation: co-bg 40s ease-in-out infinite alternate;
}
.scn-letter-conclusion .sea {
  position: absolute; bottom: 0; left: 0; right: 0; height: 45%;
  background: linear-gradient(180deg, #4a7a8a 0%, #2a5a6a 100%);
  border-radius: 0 0 40% 40% / 0 0 20% 20%;
  animation: co-sea 30s ease-in-out infinite;
}
.scn-letter-conclusion .sky {
  position: absolute; top: 0; left: 0; right: 0; height: 55%;
  background: linear-gradient(180deg, #6a9ab0 0%, #a0c8d8 60%, transparent 100%);
  animation: co-sky 20s ease-in-out infinite alternate;
}
.scn-letter-conclusion .sun {
  position: absolute; top: 15%; left: 70%; width: 40px; height: 40px;
  background: radial-gradient(circle, #ffe080 0%, #ffc040 50%, transparent 80%);
  border-radius: 50%; box-shadow: 0 0 60px 20px #ffc040;
  animation: co-sun 18s ease-in-out infinite alternate;
}
.scn-letter-conclusion .ship {
  position: absolute; bottom: 30%; left: 35%; width: 25%; height: 35%;
  background: linear-gradient(180deg, #5a3a2a 0%, #3a1a0a 100%);
  border-radius: 8px 8px 4px 4px; box-shadow: 0 8px 20px rgba(0,0,0,0.3);
  animation: co-ship 12s ease-in-out infinite;
}
.scn-letter-conclusion .sail-1 {
  position: absolute; bottom: 40%; left: 40%; width: 8%; height: 30%;
  background: linear-gradient(180deg, #f0e0c0 0%, #d8c8a8 100%);
  border-radius: 2px; clip-path: polygon(0 0, 100% 10%, 90% 100%, 0 90%);
  animation: co-sail1 8s ease-in-out infinite alternate;
}
.scn-letter-conclusion .sail-2 {
  position: absolute; bottom: 40%; left: 52%; width: 6%; height: 22%;
  background: linear-gradient(180deg, #e8d8b8 0%, #c8b8a0 100%);
  border-radius: 2px; clip-path: polygon(0 5%, 100% 0, 100% 95%, 0 100%);
  animation: co-sail2 8s ease-in-out infinite alternate 2s;
}
.scn-letter-conclusion .figures {
  position: absolute; bottom: 28%; left: 42%; width: 12%; height: 15%;
  display: flex; justify-content: space-around;
}
.scn-letter-conclusion .figures::before {
  content: ''; position: absolute; bottom: 0; width: 8px; height: 20px;
  background: #1a1410; border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  left: 20%; box-shadow: 14px 0 0 #1a1410, 28px 0 0 #1a1410;
  animation: co-figures 6s ease-in-out infinite;
}
.scn-letter-conclusion .wave-1 {
  position: absolute; bottom: 20%; left: -10%; width: 120%; height: 10%;
  background: radial-gradient(ellipse at 50% 100%, rgba(255,255,255,0.2) 0%, transparent 70%);
  border-radius: 50%; filter: blur(4px);
  animation: co-wave1 14s linear infinite;
}
.scn-letter-conclusion .wave-2 {
  position: absolute; bottom: 15%; left: -10%; width: 120%; height: 12%;
  background: radial-gradient(ellipse at 50% 100%, rgba(255,255,255,0.15) 0%, transparent 70%);
  border-radius: 50%; filter: blur(6px);
  animation: co-wave2 18s linear infinite reverse;
}
@keyframes co-bg { 0% { opacity: 0.85; } 50% { opacity: 0.95; } 100% { opacity: 0.9; } }
@keyframes co-sea { 0% { transform: translateY(0); } 50% { transform: translateY(-3px); } 100% { transform: translateY(0); } }
@keyframes co-sky { 0% { filter: brightness(1); } 50% { filter: brightness(1.2); } 100% { filter: brightness(1.05); } }
@keyframes co-sun { 0% { transform: translate(0, 0) scale(1); } 50% { transform: translate(6px, -4px) scale(1.05); } 100% { transform: translate(-3px, 2px) scale(0.98); } }
@keyframes co-ship { 0%, 100% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-1px) rotate(1deg); } }
@keyframes co-sail1 { 0% { transform: scaleX(1) skewY(0); } 50% { transform: scaleX(1.05) skewY(-2deg); } 100% { transform: scaleX(1) skewY(0); } }
@keyframes co-sail2 { 0% { transform: scaleX(1) skewY(0); } 50% { transform: scaleX(1.03) skewY(2deg); } 100% { transform: scaleX(1) skewY(0); } }
@keyframes co-figures { 0%, 100% { transform: translateY(0); } 50% { transform: translateY(-1px); } }
@keyframes co-wave1 { 0% { transform: translateX(0) scaleY(1); } 50% { transform: translateX(10%) scaleY(1.05); } 100% { transform: translateX(0) scaleY(1); } }
@keyframes co-wave2 { 0% { transform: translateX(0) scaleY(1); } 50% { transform: translateX(-10%) scaleY(1.08); } 100% { transform: translateX(0) scaleY(1); } }

.scn-thanksgiving-prayer {
  background: linear-gradient(180deg, #f5e6c8 0%, #d4b896 30%, #b89a7a 70%, #8a6e4e 100%),
              radial-gradient(ellipse at 30% 20%, #fff4e0 0%, transparent 60%);
}
.scn-thanksgiving-prayer .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #7a5a3a 0%, #4a2a1a 100%);
  border-radius: 20% 20% 0 0 / 10% 10% 0 0;
  animation: tgp-floor 10s ease-in-out infinite alternate;
}
.scn-thanksgiving-prayer .wall {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(180deg, #f0e0c8 0%, #d0b898 50%, #b09878 100%);
  box-shadow: inset 0 0 100px rgba(0,0,0,0.1);
}
.scn-thanksgiving-prayer .window {
  position: absolute; top: 15%; left: 35%; width: 30%; height: 40%;
  background: radial-gradient(ellipse at 50% 40%, #ffe8c0 0%, #f0d8a0 30%, #c8a870 70%, transparent 80%);
  border-radius: 50% 50% 30% 30% / 60% 60% 20% 20%;
  box-shadow: 0 0 80px 40px rgba(255,200,100,0.5);
  animation: tgp-window 6s ease-in-out infinite alternate;
}
.scn-thanksgiving-prayer .figure {
  position: absolute; bottom: 15%; left: 45%; width: 40px; height: 80px;
  background: linear-gradient(180deg, #3a2a1a 0%, #2a1a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: tgp-figure 4s ease-in-out infinite alternate;
}
.scn-thanksgiving-prayer .hand {
  position: absolute; bottom: 60%; left: 50%; width: 12px; height: 16px;
  background: radial-gradient(circle, #5a3a2a 0%, #3a1a0a 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: tgp-hand 2s ease-in-out infinite alternate;
}
.scn-thanksgiving-prayer .rays {
  position: absolute; top: 0; left: 20%; width: 60%; height: 100%;
  background: linear-gradient(180deg, rgba(255,220,150,0.4) 0%, transparent 60%);
  filter: blur(10px);
  animation: tgp-rays 12s ease-in-out infinite alternate;
}
@keyframes tgp-floor {
  0% { transform: translateY(0); }
  50% { transform: translateY(-2px); }
  100% { transform: translateY(0); }
}
@keyframes tgp-window {
  0% { opacity: 0.7; box-shadow: 0 0 60px 30px rgba(255,200,100,0.4); }
  50% { opacity: 1; box-shadow: 0 0 100px 50px rgba(255,220,130,0.7); }
  100% { opacity: 0.8; box-shadow: 0 0 70px 35px rgba(255,200,100,0.5); }
}
@keyframes tgp-figure {
  0% { transform: translateX(0) rotate(0deg); }
  50% { transform: translateX(3px) rotate(2deg); }
  100% { transform: translateX(0) rotate(0deg); }
}
@keyframes tgp-hand {
  0% { transform: rotate(-10deg) translateY(0); }
  50% { transform: rotate(5deg) translateY(-2px); }
  100% { transform: rotate(-5deg) translateY(0); }
}
@keyframes tgp-rays {
  0% { opacity: 0.3; transform: scale(1); }
  50% { opacity: 0.6; transform: scale(1.05); }
  100% { opacity: 0.4; transform: scale(0.95); }
}

.scn-concluding-remarks-intro {
  background: linear-gradient(180deg, #f5f0e0 0%, #e0d8c0 40%, #c8b898 70%, #a89070 100%),
              radial-gradient(ellipse at 40% 20%, #fff8e8 0%, transparent 70%);
}
.scn-concluding-remarks-intro .desk {
  position: absolute; bottom: 0; left: 10%; right: 10%; height: 35%;
  background: linear-gradient(180deg, #8a6e4e 0%, #6a4e2e 50%, #4a2e0e 100%);
  border-radius: 10% 10% 0 0 / 5% 5% 0 0;
  box-shadow: 0 -4px 20px rgba(0,0,0,0.2);
}
.scn-concluding-remarks-intro .paper {
  position: absolute; bottom: 20%; left: 35%; width: 30%; height: 25%;
  background: linear-gradient(135deg, #f0e8d8 0%, #e0d8c0 70%, #c8b898 100%);
  border-radius: 4%;
  box-shadow: 2px 2px 10px rgba(0,0,0,0.15);
  transform: rotate(-2deg);
  animation: cri-paper 8s ease-in-out infinite alternate;
}
.scn-concluding-remarks-intro .pen {
  position: absolute; bottom: 35%; left: 50%; width: 8px; height: 50px;
  background: linear-gradient(180deg, #1a1a1a 0%, #3a2a1a 40%, #5a3a1a 100%);
  border-radius: 20% 20% 10% 10%;
  transform-origin: bottom center;
  transform: rotate(20deg);
  animation: cri-pen 4s ease-in-out infinite alternate;
}
.scn-concluding-remarks-intro .window {
  position: absolute; top: 10%; left: 20%; width: 40%; height: 35%;
  background: radial-gradient(ellipse at 50% 30%, #fff4e0 0%, #f0e0c0 50%, transparent 70%);
  border: 4px solid #8a7a6a;
  border-radius: 20%;
  box-shadow: inset 0 0 30px rgba(255,200,100,0.3);
  animation: cri-window 6s ease-in-out infinite alternate;
}
.scn-concluding-remarks-intro .sunbeam {
  position: absolute; top: 0; left: 25%; width: 20%; height: 100%;
  background: linear-gradient(180deg, rgba(255,230,180,0.5) 0%, transparent 80%);
  filter: blur(8px);
  animation: cri-sunbeam 10s ease-in-out infinite alternate;
}
.scn-concluding-remarks-intro .cup {
  position: absolute; bottom: 28%; left: 70%; width: 20px; height: 24px;
  background: radial-gradient(circle at 50% 40%, #e8d0b8 0%, #c8a888 60%, #a88060 100%);
  border-radius: 30% 30% 20% 20% / 40% 40% 20% 20%;
  box-shadow: 2px 2px 6px rgba(0,0,0,0.2);
  animation: cri-cup 12s ease-in-out infinite alternate;
}
@keyframes cri-paper {
  0% { transform: rotate(-2deg) translateY(0); }
  50% { transform: rotate(-1deg) translateY(-2px); }
  100% { transform: rotate(-2deg) translateY(0); }
}
@keyframes cri-pen {
  0% { transform: rotate(20deg) translateY(0); }
  50% { transform: rotate(18deg) translateY(-1px); }
  100% { transform: rotate(20deg) translateY(0); }
}
@keyframes cri-window {
  0% { opacity: 0.7; box-shadow: inset 0 0 20px rgba(255,200,100,0.2); }
  50% { opacity: 1; box-shadow: inset 0 0 40px rgba(255,220,150,0.5); }
  100% { opacity: 0.8; box-shadow: inset 0 0 25px rgba(255,200,100,0.3); }
}
@keyframes cri-sunbeam {
  0% { opacity: 0.3; transform: scaleX(1); }
  50% { opacity: 0.6; transform: scaleX(1.1); }
  100% { opacity: 0.4; transform: scaleX(0.9); }
}
@keyframes cri-cup {
  0% { transform: translateY(0); }
  50% { transform: translateY(-1px); }
  100% { transform: translateY(0); }
}

.scn-tragedies-parallel {
  background: linear-gradient(180deg, #1a1a2e 0%, #2a2a3e 30%, #3a3a4e 70%, #4a4a5e 100%),
              radial-gradient(ellipse at 50% 30%, #4a4a6e 0%, transparent 70%);
}
.scn-tragedies-parallel .ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 25%;
  background: linear-gradient(180deg, #3a3a2e 0%, #2a2a1e 50%, #1a1a0e 100%);
  border-radius: 10% 10% 0 0 / 20% 20% 0 0;
}
.scn-tragedies-parallel .post {
  position: absolute; bottom: 25%; left: 50%; width: 8px; height: 60%;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  transform: translateX(-50%);
  border-radius: 10%;
  box-shadow: 2px 0 10px rgba(0,0,0,0.5);
}
.scn-tragedies-parallel .figure {
  position: absolute; bottom: 25%; left: 50%; width: 60px; height: 100px;
  background: linear-gradient(180deg, #1a1a2e 0%, #0a0a1e 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 30% 30%;
  transform: translateX(-50%);
  transform-origin: bottom center;
  animation: trp-figure 4s ease-in-out infinite alternate;
}
.scn-tragedies-parallel .chain-arm {
  position: absolute; bottom: 55%; left: 40%; width: 20px; height: 4px;
  background: #8a7a6a;
  border-radius: 20%;
  box-shadow: 0 2px 4px rgba(0,0,0,0.3);
  animation: trp-chain 3s ease-in-out infinite alternate;
}
.scn-tragedies-parallel .chain-leg {
  position: absolute; bottom: 20%; left: 45%; width: 15px; height: 4px;
  background: #8a7a6a;
  border-radius: 20%;
  box-shadow: 0 2px 4px rgba(0,0,0,0.3);
  animation: trp-chain 3s ease-in-out infinite alternate-reverse;
}
.scn-tragedies-parallel .sunrays {
  position: absolute; top: 0; left: 30%; width: 40%; height: 100%;
  background: linear-gradient(180deg, rgba(255,220,150,0.3) 0%, transparent 70%);
  filter: blur(12px);
  animation: trp-rays 8s ease-in-out infinite alternate;
}
.scn-tragedies-parallel .shadow {
  position: absolute; bottom: 25%; left: 40%; width: 80px; height: 20px;
  background: radial-gradient(ellipse, rgba(0,0,0,0.6) 0%, transparent 70%);
  animation: trp-shadow 6s ease-in-out infinite alternate;
}
@keyframes trp-figure {
  0% { transform: translateX(-50%) rotate(0deg); }
  50% { transform: translateX(-48%) rotate(3deg); }
  100% { transform: translateX(-50%) rotate(0deg); }
}
@keyframes trp-chain {
  0% { transform: translateY(0) rotate(0deg); }
  50% { transform: translateY(3px) rotate(10deg); }
  100% { transform: translateY(0) rotate(0deg); }
}
@keyframes trp-rays {
  0% { opacity: 0.2; transform: scale(1); }
  50% { opacity: 0.5; transform: scale(1.1); }
  100% { opacity: 0.3; transform: scale(0.9); }
}
@keyframes trp-shadow {
  0% { opacity: 0.5; transform: scale(1); }
  50% { opacity: 0.8; transform: scale(1.05); }
  100% { opacity: 0.6; transform: scale(0.95); }
}

.scn-slave-trade-atrocities {
  background: linear-gradient(180deg, #2a2a3e 0%, #3a3a4e 30%, #4a4a5e 70%, #5a5a6e 100%),
              radial-gradient(ellipse at 60% 20%, #6a6a8e 0%, transparent 70%);
}
.scn-slave-trade-atrocities .block {
  position: absolute; bottom: 30%; left: 45%; width: 40px; height: 30px;
  background: linear-gradient(180deg, #6a5a4a 0%, #4a3a2a 100%);
  border-radius: 10%;
  transform: translateX(-50%);
  box-shadow: 0 4px 12px rgba(0,0,0,0.4);
}
.scn-slave-trade-atrocities .figure {
  position: absolute; bottom: 45%; left: 50%; width: 30px; height: 70px;
  background: linear-gradient(180deg, #1a1a2e 0%, #0a0a1e 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 30% 30%;
  transform: translateX(-50%);
  transform-origin: bottom center;
  animation: sta-figure 5s ease-in-out infinite alternate;
}
.scn-slave-trade-atrocities .crowd {
  position: absolute; bottom: 30%; left: 10%; right: 10%; height: 20%;
  background: linear-gradient(180deg, #2a2a3e 0%, #1a1a2e 50%, #0a0a1e 100%);
  border-radius: 50% 50% 0 0 / 80% 80% 0 0;
  filter: blur(4px);
  animation: sta-crowd 6s ease-in-out infinite alternate;
}
.scn-slave-trade-atrocities .chain {
  position: absolute; bottom: 40%; left: 48%; width: 10px; height: 30px;
  background: linear-gradient(180deg, #8a7a6a 0%, #6a5a4a 100%);
  border-radius: 20%;
  transform: rotate(-10deg);
  animation: sta-chain 3s ease-in-out infinite alternate;
}
.scn-slave-trade-atrocities .sunrays {
  position: absolute; top: 0; left: 45%; width: 10%; height: 100%;
  background: linear-gradient(180deg, rgba(255,200,150,0.4) 0%, transparent 80%);
  filter: blur(10px);
  animation: sta-rays 10s ease-in-out infinite alternate;
}
.scn-slave-trade-atrocities .signpost {
  position: absolute; bottom: 30%; left: 70%; width: 6px; height: 50px;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 10%;
  box-shadow: 2px 0 6px rgba(0,0,0,0.3);
  transform: rotate(5deg);
  animation: sta-sign 12s ease-in-out infinite alternate;
}
@keyframes sta-figure {
  0% { transform: translateX(-50%) rotate(0deg); }
  50% { transform: translateX(-50%) rotate(2deg) translateY(-2px); }
  100% { transform: translateX(-50%) rotate(0deg); }
}
@keyframes sta-crowd {
  0% { opacity: 0.6; transform: scaleY(1); }
  50% { opacity: 0.9; transform: scaleY(1.05); }
  100% { opacity: 0.7; transform: scaleY(0.95); }
}
@keyframes sta-chain {
  0% { transform: rotate(-10deg) translateY(0); }
  50% { transform: rotate(-5deg) translateY(2px); }
  100% { transform: rotate(-10deg) translateY(0); }
}
@keyframes sta-rays {
  0% { opacity: 0.2; transform: scaleX(1); }
  50% { opacity: 0.5; transform: scaleX(1.15); }
  100% { opacity: 0.3; transform: scaleX(0.85); }
}
@keyframes sta-sign {
  0% { transform: rotate(5deg) translateY(0); }
  50% { transform: rotate(4deg) translateY(-2px); }
  100% { transform: rotate(5deg) translateY(0); }
}

/* ===== TOM RECOGNIZES GEORGE (trg) ===== */
.scn-tom-recognizes-george {
  background:
    radial-gradient(ellipse at 50% 40%, #6a3e1a 0%, #2a1a0a 70%),
    linear-gradient(180deg, #4a2a14 0%, #3a1a0a 100%);
}
.scn-tom-recognizes-george .room-bg {
  position: absolute; inset: 0; 
  background: radial-gradient(ellipse at 50% 30%, #5a3a1a 0%, #2a1a0a 100%);
  animation: trg-pulse 6s ease-in-out infinite alternate;
}
.scn-tom-recognizes-george .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 35%;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0a00 100%);
  border-radius: 20% 20% 0 0;
  box-shadow: inset 0 8px 15px rgba(0,0,0,0.6);
}
.scn-tom-recognizes-george .window {
  position: absolute; top: 12%; left: 10%; width: 70px; height: 50px;
  background: radial-gradient(circle at 50% 50%, #a07030 0%, #4a2a10 70%);
  border-radius: 6% 6% 2% 2%;
  box-shadow: 0 0 30px 10px rgba(160,112,48,0.4);
  animation: trg-window 3s ease-in-out infinite alternate;
}
.scn-tom-recognizes-george .warm-glow {
  position: absolute; top: 25%; left: 35%; width: 120px; height: 120px;
  background: radial-gradient(circle, rgba(200,150,80,0.6) 0%, transparent 70%);
  filter: blur(8px);
  animation: trg-glow 4s ease-in-out infinite alternate;
}
.scn-tom-recognizes-george .figure-tom {
  position: absolute; bottom: 15%; left: 30%; width: 40px; height: 90px;
  background: linear-gradient(120deg, #4a3020 0%, #2a1810 60%);
  border-radius: 50% 50% 45% 45% / 60% 60% 40% 40%;
  transform: translateX(-50%);
  animation: trg-tom 5s ease-in-out infinite;
}
.scn-tom-recognizes-george .figure-george {
  position: absolute; bottom: 12%; left: 55%; width: 45px; height: 100px;
  background: linear-gradient(120deg, #3a2a1a 0%, #1a0e00 60%);
  border-radius: 50% 50% 45% 45% / 60% 60% 40% 40%;
  transform: translateX(-50%);
  animation: trg-george 5s ease-in-out infinite 1s;
}
.scn-tom-recognizes-george .tears {
  position: absolute; bottom: 35%; left: 32%; width: 4px; height: 10px;
  background: radial-gradient(circle, #b08050 0%, transparent);
  border-radius: 50%;
  box-shadow: 0 0 6px 2px rgba(176,128,80,0.6);
  animation: trg-tears 2s ease-in-out infinite;
}
@keyframes trg-pulse {
  0% { opacity: 0.7; }
  50% { opacity: 1; }
  100% { opacity: 0.8; }
}
@keyframes trg-window {
  0% { box-shadow: 0 0 20px 5px rgba(160,112,48,0.3); filter: brightness(0.8); }
  50% { box-shadow: 0 0 40px 12px rgba(200,150,80,0.6); filter: brightness(1.2); }
  100% { box-shadow: 0 0 25px 8px rgba(160,112,48,0.4); filter: brightness(0.9); }
}
@keyframes trg-glow {
  0% { transform: scale(0.9); opacity: 0.5; }
  50% { transform: scale(1.1); opacity: 0.8; }
  100% { transform: scale(0.95); opacity: 0.6; }
}
@keyframes trg-tom {
  0% { transform: translateX(-50%) rotate(0deg); }
  25% { transform: translateX(-40%) rotate(2deg); }
  50% { transform: translateX(-50%) rotate(0deg) scaleY(0.98); }
  75% { transform: translateX(-60%) rotate(-2deg); }
  100% { transform: translateX(-50%) rotate(0deg); }
}
@keyframes trg-george {
  0% { transform: translateX(-50%) rotate(0deg); }
  30% { transform: translateX(-45%) rotate(-1deg); }
  60% { transform: translateX(-55%) rotate(1deg); }
  100% { transform: translateX(-50%) rotate(0deg); }
}
@keyframes trg-tears {
  0% { transform: translateY(0); opacity: 0; }
  30% { opacity: 1; }
  70% { opacity: 1; }
  100% { transform: translateY(15px); opacity: 0; }
}

/* ===== TOM READY TO DIE (trd) ===== */
.scn-tom-ready-to-die {
  background:
    linear-gradient(180deg, #3a2a1a 0%, #1a0e00 60%),
    radial-gradient(ellipse at 50% 30%, #4a3a2a 0%, #1a0e00 80%);
}
.scn-tom-ready-to-die .shed-wall {
  position: absolute; inset: 0;
  background: linear-gradient(135deg, #2a1a0a 0%, #1a0e00 50%, #2a1a0a 100%);
}
.scn-tom-ready-to-die .straw-pallet {
  position: absolute; bottom: 10%; left: 20%; right: 20%; height: 16%;
  background: linear-gradient(180deg, #5a3a1a 0%, #3a2a0a 100%);
  border-radius: 40% 40% 0 0;
  box-shadow: 0 -4px 8px rgba(0,0,0,0.5);
  animation: trd-straw 8s ease-in-out infinite alternate;
}
.scn-tom-ready-to-die .figure-tom-lying {
  position: absolute; bottom: 22%; left: 30%; width: 80px; height: 40px;
  background: linear-gradient(120deg, #4a3020 0%, #2a1810 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 50% 50%;
  transform: rotate(5deg);
  animation: trd-tom-lying 6s ease-in-out infinite;
}
.scn-tom-ready-to-die .figure-george-kneeling {
  position: absolute; bottom: 5%; left: 55%; width: 35px; height: 80px;
  background: linear-gradient(120deg, #3a2a1a 0%, #1a0e00 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform: translateX(-50%) rotate(5deg);
  animation: trd-george-kneel 5s ease-in-out infinite alternate;
}
.scn-tom-ready-to-die .lantern {
  position: absolute; top: 20%; left: 70%; width: 16px; height: 24px;
  background: radial-gradient(circle, #c09040 0%, #6a3a10 70%);
  border-radius: 20% 20% 10% 10%;
  box-shadow: 0 0 30px 10px rgba(192,144,64,0.5), 0 0 60px 20px rgba(192,144,64,0.2);
  animation: trd-lantern 4s ease-in-out infinite alternate;
}
.scn-tom-ready-to-die .light-pool {
  position: absolute; bottom: 0; left: 50%; width: 140px; height: 100px;
  transform: translateX(-50%);
  background: radial-gradient(ellipse, rgba(192,144,64,0.4) 0%, transparent 70%);
  filter: blur(6px);
  animation: trd-lightpool 5s ease-in-out infinite alternate;
}
@keyframes trd-straw {
  0% { transform: scaleY(1); }
  50% { transform: scaleY(1.05); }
  100% { transform: scaleY(0.95); }
}
@keyframes trd-tom-lying {
  0% { transform: rotate(5deg) translateY(0); }
  25% { transform: rotate(4deg) translateY(-2px); }
  50% { transform: rotate(6deg) translateY(0); }
  75% { transform: rotate(3deg) translateY(-1px); }
  100% { transform: rotate(5deg) translateY(0); }
}
@keyframes trd-george-kneel {
  0% { transform: translateX(-50%) rotate(5deg) scale(1); }
  50% { transform: translateX(-50%) rotate(4deg) scale(0.98); }
  100% { transform: translateX(-50%) rotate(6deg) scale(1); }
}
@keyframes trd-lantern {
  0% { box-shadow: 0 0 20px 5px rgba(192,144,64,0.3); filter: brightness(0.9); }
  50% { box-shadow: 0 0 40px 15px rgba(192,144,64,0.6); filter: brightness(1.2); }
  100% { box-shadow: 0 0 25px 8px rgba(192,144,64,0.4); filter: brightness(1); }
}
@keyframes trd-lightpool {
  0% { opacity: 0.5; transform: translateX(-50%) scale(0.9); }
  50% { opacity: 0.8; transform: translateX(-50%) scale(1.05); }
  100% { opacity: 0.6; transform: translateX(-50%) scale(0.95); }
}

/* ===== LEGREE AT DOOR (lad) ===== */
.scn-legree-at-door {
  background:
    linear-gradient(180deg, #1a0a00 0%, #0e0600 50%),
    radial-gradient(ellipse at 50% 80%, #2a1a0a 0%, #0e0600 80%);
}
.scn-legree-at-door .doorway {
  position: absolute; top: 5%; left: 35%; right: 35%; bottom: 20%;
  background: linear-gradient(180deg, #0a0500 0%, #1a0e00 100%);
  border: 4px solid #2a1a0a;
  border-radius: 4% 4% 0 0;
  box-shadow: inset 0 0 20px rgba(0,0,0,0.8);
}
.scn-legree-at-door .door-shadow {
  position: absolute; top: 5%; left: 35%; right: 35%; bottom: 20%;
  background: linear-gradient(135deg, rgba(0,0,0,0.6) 0%, transparent 60%);
  animation: lad-shadow 7s ease-in-out infinite alternate;
}
.scn-legree-at-door .figure-legree {
  position: absolute; top: 20%; left: 38%; width: 50px; height: 120px;
  background: linear-gradient(120deg, #1a0a00 0%, #0a0500 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform: rotate(2deg);
  animation: lad-legree 4s ease-in-out infinite;
}
.scn-legree-at-door .interior-dark {
  position: absolute; inset: 0;
  background: radial-gradient(circle at 70% 60%, rgba(80,30,10,0.1) 0%, transparent 70%);
  animation: lad-interior 5s ease-in-out infinite alternate;
}
.scn-legree-at-door .figure-tom-george {
  position: absolute; bottom: 8%; left: 20%; width: 60px; height: 40px;
  background: linear-gradient(120deg, #3a2a1a 0%, #1a0e00 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 50% 50%;
  transform: rotate(-3deg);
  animation: lad-tom-george 6s ease-in-out infinite;
}
.scn-legree-at-door .candle {
  position: absolute; top: 10%; left: 70%; width: 6px; height: 14px;
  background: #a07030;
  border-radius: 20% 20% 0 0;
  box-shadow: 0 0 12px 4px rgba(160,112,48,0.5);
  animation: lad-candle 3s ease-in-out infinite alternate;
}
@keyframes lad-shadow {
  0% { opacity: 0.5; transform: scaleX(1); }
  50% { opacity: 1; transform: scaleX(1.1); }
  100% { opacity: 0.6; transform: scaleX(0.9); }
}
@keyframes lad-legree {
  0% { transform: rotate(2deg) translateY(0); }
  25% { transform: rotate(1deg) translateY(-3px); }
  50% { transform: rotate(3deg) translateY(0); }
  75% { transform: rotate(0deg) translateY(2px); }
  100% { transform: rotate(2deg) translateY(0); }
}
@keyframes lad-interior {
  0% { opacity: 0.7; }
  50% { opacity: 1; }
  100% { opacity: 0.8; }
}
@keyframes lad-tom-george {
  0% { transform: rotate(-3deg) scale(1); }
  50% { transform: rotate(-2deg) scale(0.95); }
  100% { transform: rotate(-3deg) scale(1); }
}
@keyframes lad-candle {
  0% { transform: scaleY(1); box-shadow: 0 0 8px 2px rgba(160,112,48,0.3); }
  50% { transform: scaleY(1.2); box-shadow: 0 0 16px 6px rgba(160,112,48,0.6); }
  100% { transform: scaleY(0.9); box-shadow: 0 0 10px 3px rgba(160,112,48,0.4); }
}

/* ===== TOM DIES (tds) ===== */
.scn-tom-dies {
  background:
    linear-gradient(180deg, #5a3020 0%, #2a1a0a 40%, #1a0e00 100%),
    radial-gradient(ellipse at 50% 20%, #7a4a30 0%, transparent 70%);
}
.scn-tom-dies .bg-dim {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, transparent 0%, #1a0e00 80%);
  animation: tds-dim 8s ease-in-out infinite alternate;
}
.scn-tom-dies .shed-roof {
  position: absolute; top: 0; left: 0; right: 0; height: 25%;
  background: linear-gradient(180deg, #2a1a0a 0%, #1a0e00 100%);
  border-radius: 0 0 40% 40%;
  box-shadow: inset 0 -10px 20px rgba(0,0,0,0.6);
}
.scn-tom-dies .figure-tom-head {
  position: absolute; top: 30%; left: 50%; width: 40px; height: 50px;
  transform: translateX(-50%);
  background: radial-gradient(ellipse at 50% 40%, #5a3020 0%, #2a1a0a 70%);
  border-radius: 50% 50% 40% 40% / 60% 60% 50% 50%;
  animation: tds-head 5s ease-in-out infinite;
}
.scn-tom-dies .light-ascending {
  position: absolute; top: 10%; left: 50%; width: 80px; height: 200px;
  transform: translateX(-50%);
  background: radial-gradient(ellipse at 50% 100%, rgba(200,160,100,0.4) 0%, transparent 70%);
  filter: blur(10px);
  animation: tds-light 7s ease-in-out infinite alternate;
}
.scn-tom-dies .hands-clasped {
  position: absolute; bottom: 15%; left: 45%; width: 30px; height: 20px;
  background: radial-gradient(circle, #4a3020 0%, #2a1810 100%);
  border-radius: 50%;
  box-shadow: 0 0 10px 3px rgba(74,48,32,0.5);
  animation: tds-hands 4s ease-in-out infinite alternate;
}
.scn-tom-dies .halo {
  position: absolute; top: 35%; left: 50%; width: 60px; height: 60px;
  transform: translate(-50%, -50%);
  background: radial-gradient(circle, rgba(240,200,120,0.3) 0%, transparent 70%);
  filter: blur(12px);
  animation: tds-halo 6s ease-in-out infinite alternate;
}
@keyframes tds-dim {
  0% { opacity: 0.6; }
  50% { opacity: 0.9; }
  100% { opacity: 0.7; }
}
@keyframes tds-head {
  0% { transform: translateX(-50%) rotate(0deg) scale(1); }
  25% { transform: translateX(-50%) rotate(-2deg) scale(0.98); }
  50% { transform: translateX(-50%) rotate(0deg) scale(1); }
  75% { transform: translateX(-50%) rotate(1deg) scale(1.02); }
  100% { transform: translateX(-50%) rotate(0deg) scale(1); }
}
@keyframes tds-light {
  0% { transform: translateX(-50%) translateY(0) scale(1); opacity: 0.4; }
  50% { transform: translateX(-50%) translateY(-20px) scale(1.1); opacity: 0.7; }
  100% { transform: translateX(-50%) translateY(0) scale(0.9); opacity: 0.5; }
}
@keyframes tds-hands {
  0% { transform: scale(1); box-shadow: 0 0 6px 2px rgba(74,48,32,0.3); }
  50% { transform: scale(1.05); box-shadow: 0 0 12px 4px rgba(74,48,32,0.5); }
  100% { transform: scale(0.95); box-shadow: 0 0 8px 3px rgba(74,48,32,0.4); }
}
@keyframes tds-halo {
  0% { transform: translate(-50%, -50%) scale(0.8); opacity: 0.3; }
  50% { transform: translate(-50%, -50%) scale(1.2); opacity: 0.6; }
  100% { transform: translate(-50%, -50%) scale(0.9); opacity: 0.4; }
}

/* scene: george-shares-food */
.scn-george-shares-food {
  background: 
    radial-gradient(ellipse 80% 60% at 50% 100%, #5e3a2a 0%, transparent 70%),
    linear-gradient(180deg, #2a1a0a 0%, #3a2212 40%, #4a2a1a 100%);
}
.scn-george-shares-food .fire {
  position: absolute; bottom: 0; left: 10%; width: 30%; height: 50%;
  background: radial-gradient(ellipse 60% 80% at 50% 100%, #d07030 0%, #a04020 40%, transparent 80%);
  animation: gsf-fire 3s ease-in-out infinite alternate;
}
.scn-george-shares-food .table {
  position: absolute; bottom: 10%; left: 20%; right: 20%; height: 8%;
  background: linear-gradient(180deg, #6a4a2a 0%, #3a2212 100%);
  border-radius: 4px;
  box-shadow: 0 4px 12px rgba(0,0,0,0.6);
  animation: gsf-table 6s ease-in-out infinite;
}
.scn-george-shares-food .george {
  position: absolute; bottom: 18%; left: 30%; width: 12%; height: 40%;
  background: linear-gradient(180deg, #2a1a0a 0%, #1a0a00 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: gsf-george 8s ease-in-out infinite;
}
.scn-george-shares-food .heads {
  position: absolute; bottom: 12%; left: 55%; width: 20%; height: 30%;
  background: radial-gradient(circle at 30% 40%, #4a2a1a 0%, #2a1a0a 70%);
  border-radius: 50% 50% 30% 30%;
  box-shadow: inset -4px -4px 8px rgba(0,0,0,0.5);
  animation: gsf-heads 5s ease-in-out infinite alternate;
}
.scn-george-shares-food .glow {
  position: absolute; top: 20%; left: 0; right: 0; bottom: 40%;
  background: radial-gradient(ellipse at 30% 50%, rgba(200,120,60,0.15) 0%, transparent 60%);
  animation: gsf-glow 7s ease-in-out infinite alternate;
}
@keyframes gsf-fire {
  0% { opacity: 0.7; transform: scaleY(1); }
  50% { opacity: 1; transform: scaleY(1.08); }
  100% { opacity: 0.8; transform: scaleY(0.95); }
}
@keyframes gsf-table {
  0% { transform: translateY(0); }
  50% { transform: translateY(-2px); box-shadow: 0 6px 16px rgba(0,0,0,0.5); }
  100% { transform: translateY(0); }
}
@keyframes gsf-george {
  0% { transform: rotate(0deg) translateY(0); }
  33% { transform: rotate(2deg) translateY(-3px); }
  66% { transform: rotate(-1deg) translateY(-1px); }
  100% { transform: rotate(0deg) translateY(0); }
}
@keyframes gsf-heads {
  0% { transform: translateY(0) scaleX(1); }
  50% { transform: translateY(-4px) scaleX(1.02); }
  100% { transform: translateY(2px) scaleX(0.98); }
}
@keyframes gsf-glow {
  0% { opacity: 0.3; }
  50% { opacity: 0.5; }
  100% { opacity: 0.2; }
}

/* scene: aunt-chloe-scolds-boys */
.scn-aunt-chloe-scolds-boys {
  background:
    radial-gradient(ellipse 70% 50% at 40% 100%, #5e3a2a 0%, transparent 70%),
    linear-gradient(180deg, #2a1a0a 0%, #3a2212 60%, #1a0a00 100%);
}
.scn-aunt-chloe-scolds-boys .fire {
  position: absolute; bottom: 0; right: 15%; width: 25%; height: 45%;
  background: radial-gradient(ellipse at 50% 100%, #d07030 0%, #a04020 50%, transparent 80%);
  animation: acb-fire 3.5s ease-in-out infinite alternate;
}
.scn-aunt-chloe-scolds-boys .table {
  position: absolute; bottom: 15%; left: 15%; right: 15%; height: 10%;
  background: linear-gradient(180deg, #6a4a2a 0%, #3a2212 100%);
  border-radius: 4px;
  box-shadow: 0 4px 10px rgba(0,0,0,0.6);
  animation: acb-table 5s ease-in-out infinite;
}
.scn-aunt-chloe-scolds-boys .aunt {
  position: absolute; bottom: 25%; left: 40%; width: 18%; height: 55%;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a100a 100%);
  border-radius: 50% 50% 45% 45% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: acb-aunt 4s ease-in-out infinite;
}
.scn-aunt-chloe-scolds-boys .boys {
  position: absolute; bottom: 8%; left: 20%; right: 20%; height: 25%;
  background: radial-gradient(ellipse at 50% 50%, #2a1a0a 0%, #1a0a00 70%);
  border-radius: 50% 50% 40% 40% / 30% 30% 60% 60%;
  animation: acb-boys 6s ease-in-out infinite alternate;
}
.scn-aunt-chloe-scolds-boys .kick {
  position: absolute; bottom: 12%; left: 55%; width: 8%; height: 12%;
  background: linear-gradient(180deg, #4a2a1a 0%, #2a1a0a 100%);
  border-radius: 50% 50% 20% 20% / 40% 40% 60% 60%;
  transform-origin: top center;
  animation: acb-kick 2s ease-in-out infinite;
}
@keyframes acb-fire {
  0% { opacity: 0.6; transform: scaleY(1); }
  50% { opacity: 1; transform: scaleY(1.1); }
  100% { opacity: 0.7; transform: scaleY(0.9); }
}
@keyframes acb-table {
  0% { transform: translateY(0); }
  50% { transform: translateY(-3px); }
  100% { transform: translateY(0); }
}
@keyframes acb-aunt {
  0% { transform: rotate(0deg) translateY(0); }
  25% { transform: rotate(-3deg) translateY(-2px); }
  50% { transform: rotate(2deg) translateY(0); }
  75% { transform: rotate(-1deg) translateY(-1px); }
  100% { transform: rotate(0deg) translateY(0); }
}
@keyframes acb-boys {
  0% { transform: translateY(0) rotate(0deg); }
  50% { transform: translateY(-5px) rotate(2deg); }
  100% { transform: translateY(2px) rotate(-1deg); }
}
@keyframes acb-kick {
  0% { transform: rotate(0deg); }
  25% { transform: rotate(15deg); }
  50% { transform: rotate(-5deg); }
  75% { transform: rotate(20deg); }
  100% { transform: rotate(0deg); }
}

/* scene: boys-kiss-baby */
.scn-boys-kiss-baby {
  background:
    radial-gradient(ellipse 60% 70% at 50% 90%, #5e3a2a 0%, transparent 70%),
    linear-gradient(180deg, #2a1a0a 0%, #3a2212 50%, #1a0a00 100%);
}
.scn-boys-kiss-baby .fire {
  position: absolute; bottom: 0; left: 5%; width: 20%; height: 35%;
  background: radial-gradient(ellipse at 50% 100%, #d07030 0%, #a04020 50%, transparent 80%);
  animation: bkb-fire 4s ease-in-out infinite alternate;
}
.scn-boys-kiss-baby .baby {
  position: absolute; bottom: 25%; left: 40%; width: 15%; height: 18%;
  background: linear-gradient(180deg, #5e3a2a 0%, #3a2212 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  box-shadow: 0 2px 8px rgba(0,0,0,0.5);
  animation: bkb-baby 3s ease-in-out infinite;
}
.scn-boys-kiss-baby .boy-left {
  position: absolute; bottom: 15%; left: 25%; width: 12%; height: 30%;
  background: linear-gradient(180deg, #2a1a0a 0%, #1a0a00 100%);
  border-radius: 50% 50% 30% 30% / 50% 50% 50% 50%;
  transform-origin: bottom center;
  animation: bkb-boy-left 5s ease-in-out infinite;
}
.scn-boys-kiss-baby .boy-right {
  position: absolute; bottom: 15%; right: 25%; width: 12%; height: 30%;
  background: linear-gradient(180deg, #2a1a0a 0%, #1a0a00 100%);
  border-radius: 50% 50% 30% 30% / 50% 50% 50% 50%;
  transform-origin: bottom center;
  animation: bkb-boy-right 5s ease-in-out infinite;
}
.scn-boys-kiss-baby .table-edge {
  position: absolute; bottom: 30%; left: 20%; right: 20%; height: 6%;
  background: linear-gradient(180deg, #6a4a2a 0%, #3a2212 100%);
  border-radius: 2px;
  box-shadow: 0 -2px 6px rgba(0,0,0,0.4);
  animation: bkb-table 7s ease-in-out infinite;
}
.scn-boys-kiss-baby .molasses {
  position: absolute; bottom: 30%; left: 42%; width: 16%; height: 8%;
  background: radial-gradient(ellipse at 50% 50%, #a05a30 0%, #703a1a 100%);
  border-radius: 50%;
  filter: blur(3px);
  animation: bkb-molasses 4s ease-in-out infinite alternate;
}
@keyframes bkb-fire {
  0% { transform: scaleY(1); opacity: 0.7; }
  50% { transform: scaleY(1.12); opacity: 1; }
  100% { transform: scaleY(0.9); opacity: 0.6; }
}
@keyframes bkb-baby {
  0% { transform: translateY(0) rotate(0deg); }
  33% { transform: translateY(-3px) rotate(5deg); }
  66% { transform: translateY(-1px) rotate(-3deg); }
  100% { transform: translateY(0) rotate(0deg); }
}
@keyframes bkb-boy-left {
  0% { transform: rotate(-5deg) translateX(0); }
  50% { transform: rotate(10deg) translateX(8px); }
  100% { transform: rotate(-5deg) translateX(0); }
}
@keyframes bkb-boy-right {
  0% { transform: rotate(5deg) translateX(0); }
  50% { transform: rotate(-10deg) translateX(-8px); }
  100% { transform: rotate(5deg) translateX(0); }
}
@keyframes bkb-table {
  0% { transform: translateY(0); }
  50% { transform: translateY(-2px); }
  100% { transform: translateY(0); }
}
@keyframes bkb-molasses {
  0% { transform: scale(1); opacity: 0.8; }
  50% { transform: scale(1.2); opacity: 1; }
  100% { transform: scale(0.9); opacity: 0.6; }
}

/* scene: baby-plays-with-tom */
.scn-baby-plays-with-tom {
  background:
    radial-gradient(ellipse 50% 60% at 50% 100%, #4a2a1a 0%, transparent 70%),
    linear-gradient(180deg, #2a1a0a 0%, #3a2212 60%, #1a0a00 100%);
}
.scn-baby-plays-with-tom .fire {
  position: absolute; bottom: 0; left: 10%; width: 30%; height: 50%;
  background: radial-gradient(ellipse at 50% 100%, #d07030 0%, #a04020 40%, transparent 80%);
  animation: bpt-fire 3.2s ease-in-out infinite alternate;
}
.scn-baby-plays-with-tom .baby {
  position: absolute; bottom: 20%; left: 30%; width: 25%; height: 30%;
  background: linear-gradient(180deg, #5e3a2a 0%, #3a2212 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  box-shadow: 0 2px 10px rgba(0,0,0,0.5);
  animation: bpt-baby 4s ease-in-out infinite;
}
.scn-baby-plays-with-tom .tom {
  position: absolute; bottom: 15%; right: 20%; width: 30%; height: 60%;
  background: linear-gradient(180deg, #2a1a0a 0%, #1a0a00 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: bpt-tom 6s ease-in-out infinite;
}
.scn-baby-plays-with-tom .towel {
  position: absolute; bottom: 35%; left: 35%; width: 20%; height: 12%;
  background: linear-gradient(180deg, #6a5a4a 0%, #4a3a2a 100%);
  border-radius: 30% 30% 20% 20% / 40% 40% 60% 60%;
  animation: bpt-towel 5s ease-in-out infinite alternate;
}
.scn-baby-plays-with-tom .hand {
  position: absolute; bottom: 40%; left: 40%; width: 10%; height: 14%;
  background: linear-gradient(180deg, #5e3a2a 0%, #3a2212 100%);
  border-radius: 50% 50% 30% 30% / 40% 40% 50% 50%;
  animation: bpt-hand 3s ease-in-out infinite;
}
.scn-baby-plays-with-tom .glow {
  position: absolute; top: 10%; left: 0; right: 0; bottom: 30%;
  background: radial-gradient(ellipse at 50% 50%, rgba(200,120,60,0.2) 0%, transparent 70%);
  animation: bpt-glow 8s ease-in-out infinite alternate;
}
@keyframes bpt-fire {
  0% { opacity: 0.7; transform: scaleY(1); }
  50% { opacity: 1; transform: scaleY(1.1); }
  100% { opacity: 0.6; transform: scaleY(0.9); }
}
@keyframes bpt-baby {
  0% { transform: translateY(0) rotate(0deg); }
  25% { transform: translateY(-4px) rotate(8deg); }
  50% { transform: translateY(0) rotate(-4deg); }
  75% { transform: translateY(-2px) rotate(2deg); }
  100% { transform: translateY(0) rotate(0deg); }
}
@keyframes bpt-tom {
  0% { transform: rotate(0deg) translateY(0); }
  50% { transform: rotate(2deg) translateY(-3px); }
  100% { transform: rotate(-1deg) translateY(0); }
}
@keyframes bpt-towel {
  0% { transform: translateX(0) rotate(0deg); }
  50% { transform: translateX(5px) rotate(5deg); }
  100% { transform: translateX(-3px) rotate(-3deg); }
}
@keyframes bpt-hand {
  0% { transform: rotate(0deg); }
  33% { transform: rotate(15deg); }
  66% { transform: rotate(-10deg); }
  100% { transform: rotate(0deg); }
}
@keyframes bpt-glow {
  0% { opacity: 0.2; }
  50% { opacity: 0.4; }
  100% { opacity: 0.1; }
}

.scn-the-chase-begins {
  background: linear-gradient(180deg, #7ec0ee 0%, #f0e68c 60%, #c8b560 100%), radial-gradient(ellipse at 50% 100%, #f5deb3 0%, transparent 70%);
}
.scn-the-chase-begins .sky { position:absolute; inset:0 0 45% 0; background: linear-gradient(180deg, #87ceeb 0%, #b0e0e6 60%, transparent 100%); animation: cb-sky 8s ease-in-out infinite alternate; }
.scn-the-chase-begins .ground { position:absolute; bottom:0; left:0; right:0; height:55%; background: linear-gradient(180deg, #9acd32 0%, #6b8e23 40%, #556b2f 100%); border-radius: 30% 30% 0 0 / 20% 20% 0 0; animation: cb-ground 12s ease-in-out infinite alternate; }
.scn-the-chase-begins .horse-main { position:absolute; bottom:30%; left:40%; width:80px; height:60px; background: linear-gradient(135deg, #8b4513 0%, #a0522d 50%, #5c3317 100%); border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%; transform-origin: bottom center; animation: cb-horse-main 4s ease-in-out infinite; }
.scn-the-chase-begins .rider { position:absolute; bottom:55%; left:42%; width:20px; height:30px; background: linear-gradient(180deg, #2f4f4f 0%, #1a1a2e 100%); border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%; animation: cb-rider 4s ease-in-out infinite; }
.scn-the-chase-begins .horse-left { position:absolute; bottom:28%; left:15%; width:70px; height:55px; background: linear-gradient(135deg, #a0522d 0%, #8b4513 50%, #5c3317 100%); border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%; animation: cb-horse-side 6s ease-in-out infinite; }
.scn-the-chase-begins .horse-right { position:absolute; bottom:28%; right:10%; width:70px; height:55px; background: linear-gradient(135deg, #a0522d 0%, #8b4513 50%, #5c3317 100%); border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%; animation: cb-horse-side 6s ease-in-out infinite reverse; }
.scn-the-chase-begins .dust { position:absolute; border-radius:50%; background: rgba(210,180,140,0.6); filter: blur(4px); animation: cb-dust 8s linear infinite; }
.scn-the-chase-begins .dust.cloud-a { bottom:25%; left:20%; width:40px; height:20px; animation-duration: 10s; }
.scn-the-chase-begins .dust.cloud-b { bottom:22%; right:20%; width:30px; height:15px; animation-duration: 12s; animation-delay: -4s; }
@keyframes cb-sky { 0% { opacity:0.8 } 50% { opacity:1 } 100% { opacity:0.9 } }
@keyframes cb-ground { 0% { transform: translateY(0) } 50% { transform: translateY(-5px) } 100% { transform: translateY(0) } }
@keyframes cb-horse-main { 0% { transform: translateX(0) rotate(-2deg) } 25% { transform: translateX(5px) rotate(2deg) } 50% { transform: translateX(0) rotate(-3deg) } 75% { transform: translateX(-5px) rotate(3deg) } 100% { transform: translateX(0) rotate(-2deg) } }
@keyframes cb-rider { 0% { transform: translateY(0) rotate(-1deg) } 25% { transform: translateY(-3px) rotate(1deg) } 50% { transform: translateY(0) rotate(-2deg) } 75% { transform: translateY(-2px) rotate(2deg) } 100% { transform: translateY(0) rotate(-1deg) } }
@keyframes cb-horse-side { 0% { transform: translateY(0) scale(1) } 50% { transform: translateY(-8px) scale(0.95) } 100% { transform: translateY(0) scale(1) } }
@keyframes cb-dust { 0% { transform: translateX(0) scale(1); opacity:0.6 } 50% { transform: translateX(20px) scale(1.5); opacity:0.3 } 100% { transform: translateX(0) scale(1); opacity:0.6 } }

.scn-chaos-on-the-lawn {
  background: linear-gradient(180deg, #f0e68c 0%, #9acd32 40%, #6b8e23 100%), radial-gradient(circle at 50% 50%, #fff8dc 0%, transparent 60%);
}
.scn-chaos-on-the-lawn .lawn { position:absolute; bottom:0; left:0; right:0; height:60%; background: linear-gradient(180deg, #7cfc00 0%, #228b22 100%); border-radius: 30% 30% 0 0 / 15% 15% 0 0; animation: cl-lawn 10s ease-in-out infinite alternate; }
.scn-chaos-on-the-lawn .figure-sam { position:absolute; bottom:30%; left:30%; width:22px; height:40px; background: linear-gradient(180deg, #2f4f4f 0%, #1a1a2e 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: cl-run 3s ease-in-out infinite; }
.scn-chaos-on-the-lawn .figure-andy { position:absolute; bottom:32%; left:55%; width:20px; height:36px; background: linear-gradient(180deg, #2f4f4f 0%, #1a1a2e 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: cl-run 3.5s ease-in-out infinite reverse; }
.scn-chaos-on-the-lawn .dog-1 { position:absolute; bottom:28%; left:20%; width:30px; height:16px; background: linear-gradient(135deg, #8b4513 0%, #a0522d 100%); border-radius: 50% 50% 40% 40%; animation: cl-dog 4s ease-in-out infinite; }
.scn-chaos-on-the-lawn .dog-2 { position:absolute; bottom:26%; right:25%; width:28px; height:14px; background: linear-gradient(135deg, #8b4513 0%, #a0522d 100%); border-radius: 50% 50% 40% 40%; animation: cl-dog 4.5s ease-in-out infinite reverse; }
.scn-chaos-on-the-lawn .child-1 { position:absolute; bottom:35%; left:10%; width:16px; height:24px; background: linear-gradient(180deg, #ffb6c1 0%, #ff69b4 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: cl-run 2.8s ease-in-out infinite; }
.scn-chaos-on-the-lawn .child-2 { position:absolute; bottom:38%; left:45%; width:14px; height:22px; background: linear-gradient(180deg, #ffb6c1 0%, #ff69b4 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: cl-run 3.2s ease-in-out infinite reverse; }
.scn-chaos-on-the-lawn .child-3 { position:absolute; bottom:34%; right:15%; width:15px; height:23px; background: linear-gradient(180deg, #ffb6c1 0%, #ff69b4 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: cl-run 3.7s ease-in-out infinite; }
.scn-chaos-on-the-lawn .confetti { position:absolute; top:10%; left:20%; width:8px; height:8px; background: #ff4500; border-radius: 50%; box-shadow: 30px 20px 0 #ffd700, 60px 40px 0 #00ff7f, 90px 10px 0 #1e90ff, 120px 30px 0 #ff69b4; animation: cl-confetti 6s linear infinite; }
@keyframes cl-lawn { 0% { transform: scaleY(1) } 50% { transform: scaleY(0.97) } 100% { transform: scaleY(1) } }
@keyframes cl-run { 0% { transform: translateX(0) translateY(0) rotate(-5deg) } 25% { transform: translateX(8px) translateY(-2px) rotate(5deg) } 50% { transform: translateX(0) translateY(0) rotate(-5deg) } 75% { transform: translateX(-8px) translateY(-2px) rotate(5deg) } 100% { transform: translateX(0) translateY(0) rotate(-5deg) } }
@keyframes cl-dog { 0% { transform: translateX(0) rotate(0) } 25% { transform: translateX(12px) rotate(15deg) } 50% { transform: translateX(0) rotate(0) } 75% { transform: translateX(-12px) rotate(-15deg) } 100% { transform: translateX(0) rotate(0) } }
@keyframes cl-confetti { 0% { transform: translateY(0) rotate(0); opacity:1 } 50% { transform: translateY(50px) rotate(180deg); opacity:0.5 } 100% { transform: translateY(100px) rotate(360deg); opacity:0 } }

.scn-sam-heroics {
  background: linear-gradient(180deg, #ff8c00 0%, #ffd700 30%, #fff8dc 60%, #87ceeb 100%), radial-gradient(ellipse at 50% 0%, #ff6347 0%, transparent 60%);
}
.scn-sam-heroics .bg-sky { position:absolute; inset:0 0 40% 0; background: linear-gradient(180deg, #87ceeb 0%, #b0e0e6 100%); animation: sh-sky 10s ease-in-out infinite alternate; }
.scn-sam-heroics .bg-sun { position:absolute; top:5%; left:50%; width:80px; height:80px; transform: translateX(-50%); background: radial-gradient(circle, #ffd700 0%, #ff8c00 60%, transparent 70%); border-radius:50%; box-shadow: 0 0 40px 20px rgba(255,215,0,0.5); animation: sh-sun 6s ease-in-out infinite; }
.scn-sam-heroics .sam-silhouette { position:absolute; bottom:30%; left:40%; width:30px; height:60px; background: linear-gradient(180deg, #1a1a2e 0%, #0a0a1e 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: sh-sam 4s ease-in-out infinite; }
.scn-sam-heroics .sword-blaze { position:absolute; bottom:65%; left:52%; width:6px; height:40px; background: linear-gradient(180deg, #ff4500 0%, #ffd700 50%, #ff4500 100%); border-radius: 3px; box-shadow: 0 0 20px 8px rgba(255,69,0,0.7); transform-origin: bottom center; animation: sh-sword 0.8s ease-in-out infinite alternate; }
.scn-sam-heroics .ground-stripe { position:absolute; bottom:25%; left:0; right:0; height:8px; background: linear-gradient(90deg, transparent, #8b4513 20%, #8b4513 80%, transparent); animation: sh-stripe 5s linear infinite; }
.scn-sam-heroics .sparkle-1 { position:absolute; top:15%; left:30%; width:10px; height:10px; background: #ffd700; border-radius:50%; box-shadow: 0 0 10px 5px rgba(255,215,0,0.8); animation: sh-sparkle 2s ease-in-out infinite; }
.scn-sam-heroics .sparkle-2 { position:absolute; top:20%; right:25%; width:8px; height:8px; background: #ffd700; border-radius:50%; box-shadow: 0 0 8px 4px rgba(255,215,0,0.8); animation: sh-sparkle 2.5s ease-in-out infinite reverse; }
@keyframes sh-sky { 0% { opacity:0.9 } 50% { opacity:1 } 100% { opacity:0.8 } }
@keyframes sh-sun { 0% { transform: translateX(-50%) scale(0.95); box-shadow: 0 0 30px 15px rgba(255,215,0,0.4) } 50% { transform: translateX(-50%) scale(1.05); box-shadow: 0 0 50px 25px rgba(255,215,0,0.7) } 100% { transform: translateX(-50%) scale(0.95); box-shadow: 0 0 30px 15px rgba(255,215,0,0.4) } }
@keyframes sh-sam { 0% { transform: translateY(0) rotate(-2deg) } 25% { transform: translateY(-5px) rotate(2deg) scale(1.02) } 50% { transform: translateY(0) rotate(-2deg) } 75% { transform: translateY(-3px) rotate(2deg) scale(1.01) } 100% { transform: translateY(0) rotate(-2deg) } }
@keyframes sh-sword { 0% { transform: rotate(-15deg) scaleY(1); box-shadow: 0 0 15px 5px rgba(255,69,0,0.6) } 50% { transform: rotate(5deg) scaleY(1.2); box-shadow: 0 0 30px 12px rgba(255,69,0,0.9) } 100% { transform: rotate(-15deg) scaleY(1); box-shadow: 0 0 15px 5px rgba(255,69,0,0.6) } }
@keyframes sh-stripe { 0% { background-position: 0 0 } 100% { background-position: 100% 0 } }
@keyframes sh-sparkle { 0% { transform: scale(1); opacity:0.5 } 50% { transform: scale(1.8); opacity:1 } 100% { transform: scale(1); opacity:0.5 } }

.scn-sam-catches-the-horse {
  background: linear-gradient(180deg, #f0e68c 0%, #d2b48c 40%, #8b4513 100%), radial-gradient(ellipse at 50% 80%, #ffd700 0%, transparent 60%);
}
.scn-sam-catches-the-horse .bg-field { position:absolute; bottom:0; left:0; right:0; height:60%; background: linear-gradient(180deg, #9acd32 0%, #6b8e23 100%); border-radius: 40% 40% 0 0 / 30% 30% 0 0; animation: sc-field 8s ease-in-out infinite alternate; }
.scn-sam-catches-the-horse .horse-jerry { position:absolute; bottom:25%; left:30%; width:90px; height:65px; background: linear-gradient(135deg, #a0522d 0%, #8b4513 50%, #5c3317 100%); border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%; transform-origin: bottom center; animation: sc-horse-main 4s ease-in-out infinite; }
.scn-sam-catches-the-horse .horse-haleys { position:absolute; bottom:28%; right:15%; width:80px; height:60px; background: linear-gradient(135deg, #a0522d 0%, #8b4513 50%, #5c3317 100%); border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%; animation: sc-horse-side 5s ease-in-out infinite; }
.scn-sam-catches-the-horse .rider-sam { position:absolute; bottom:55%; left:35%; width:22px; height:35px; background: linear-gradient(180deg, #2f4f4f 0%, #1a1a2e 100%); border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%; animation: sc-rider 4s ease-in-out infinite; }
.scn-sam-catches-the-horse .sweat-drops { position:absolute; bottom:20%; left:35%; width:6px; height:8px; background: radial-gradient(circle, #add8e6 0%, transparent 70%); border-radius: 50%; box-shadow: 20px -5px 0 #add8e6, 40px -10px 0 #add8e6, 60px -15px 0 #add8e6; animation: sc-sweat 3s ease-in-out infinite; }
.scn-sam-catches-the-horse .dust-puff { position:absolute; bottom:20%; left:20%; width:40px; height:20px; background: rgba(210,180,140,0.5); filter: blur(5px); border-radius:50%; animation: sc-dust 5s linear infinite; }
.scn-sam-catches-the-horse .sky-rays { position:absolute; top:5%; left:50%; width:100px; height:100px; transform: translateX(-50%); background: radial-gradient(ellipse, rgba(255,215,0,0.3) 0%, transparent 70%); animation: sc-rays 10s ease-in-out infinite alternate; }
@keyframes sc-field { 0% { transform: scaleY(1) } 50% { transform: scaleY(0.98) } 100% { transform: scaleY(1) } }
@keyframes sc-horse-main { 0% { transform: translateX(0) rotate(-2deg) scale(1) } 25% { transform: translateX(6px) rotate(2deg) scale(1.02) } 50% { transform: translateX(0) rotate(-2deg) scale(1) } 75% { transform: translateX(-6px) rotate(2deg) scale(1.02) } 100% { transform: translateX(0) rotate(-2deg) scale(1) } }
@keyframes sc-horse-side { 0% { transform: translateY(0) rotate(0) } 50% { transform: translateY(-10px) rotate(3deg) } 100% { transform: translateY(0) rotate(0) } }
@keyframes sc-rider { 0% { transform: translateY(0) rotate(-1deg) } 25% { transform: translateY(-4px) rotate(2deg) } 50% { transform: translateY(0) rotate(-1deg) } 75% { transform: translateY(-2px) rotate(2deg) } 100% { transform: translateY(0) rotate(-1deg) } }
@keyframes sc-sweat { 0% { transform: translateY(0) scale(1); opacity:0.8 } 50% { transform: translateY(-10px) scale(0.5); opacity:0.2 } 100% { transform: translateY(0) scale(1); opacity:0.8 } }
@keyframes sc-dust { 0% { transform: translateX(0) scale(1); opacity:0.6 } 50% { transform: translateX(30px) scale(1.8); opacity:0.2 } 100% { transform: translateX(0) scale(1); opacity:0.6 } }
@keyframes sc-rays { 0% { opacity:0.3 } 50% { opacity:0.7 } 100% { opacity:0.3 } }

/* eliza-led-away */
.scn-eliza-led-away {
  background:
    linear-gradient(180deg, #2a1a0a 0%, #4a2a1a 40%, #3a1a0a 100%),
    radial-gradient(ellipse at 60% 80%, #5a3a1a 0%, transparent 70%);
}
.scn-eliza-led-away .bg-wall { position:absolute; inset:0; background: linear-gradient(135deg, #3a2212 0%, #1e0e04 100%); }
.scn-eliza-led-away .door-frame { position:absolute; left:30%; top:10%; width:40%; height:80%; border:6px solid #4a2a1a; border-radius:4px; background: transparent; box-shadow: inset 0 0 30px rgba(0,0,0,.6); }
.scn-eliza-led-away .door-open { position:absolute; left:32%; top:12%; width:36%; height:76%; background: linear-gradient(135deg, #5a3a1a 0%, #2a1a0a 100%); border-radius:2px; box-shadow: 0 4px 12px rgba(0,0,0,.5); animation: e1a-door 6s ease-in-out infinite alternate; }
.scn-eliza-led-away .figure-eliza { position:absolute; left:36%; bottom:18%; width:14%; height:50%; background: radial-gradient(ellipse at 50% 40%, #2a1a0a 0%, #0e0602 100%); border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%; transform-origin: bottom center; animation: e1a-figure-eliza 4s ease-in-out infinite; }
.scn-eliza-led-away .figure-rachel { position:absolute; right:30%; bottom:20%; width:16%; height:55%; background: radial-gradient(ellipse at 50% 40%, #3a2a1a 0%, #1a0e04 100%); border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%; transform-origin: bottom center; animation: e1a-figure-rachel 5s ease-in-out infinite; }
.scn-eliza-led-away .lamp-glow { position:absolute; top:25%; left:48%; width:8%; height:12%; background: radial-gradient(circle, #ffc080 0%, #b06030 60%, transparent 100%); border-radius:50%; box-shadow: 0 0 40px 20px #c07030, 0 0 80px 30px rgba(192,112,48,.3); animation: e1a-lamp 3s ease-in-out infinite alternate; }
.scn-eliza-led-away .shadow-floor { position:absolute; bottom:0; left:0; right:0; height:20%; background: linear-gradient(0deg, #0a0400 0%, transparent 100%); animation: e1a-shadow 8s ease-in-out infinite; }

@keyframes e1a-door { 0% { transform: rotateY(0deg); } 50% { transform: rotateY(-5deg); } 100% { transform: rotateY(0deg); } }
@keyframes e1a-figure-eliza { 0% { transform: translateX(0) rotate(0deg); } 50% { transform: translateX(3px) rotate(2deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes e1a-figure-rachel { 0% { transform: translateX(0) rotate(0deg); } 50% { transform: translateX(-4px) rotate(-1deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes e1a-lamp { 0% { opacity:0.7; box-shadow: 0 0 30px 10px #b06030, 0 0 60px 20px rgba(176,96,48,.2); } 50% { opacity:1; box-shadow: 0 0 50px 20px #ffc080, 0 0 90px 30px rgba(255,192,128,.4); } 100% { opacity:0.75; box-shadow: 0 0 35px 12px #b06030, 0 0 70px 25px rgba(176,96,48,.25); } }
@keyframes e1a-shadow { 0% { opacity:0.6; } 50% { opacity:0.9; } 100% { opacity:0.6; } }

/* harry-father-coming */
.scn-harry-father-coming {
  background:
    linear-gradient(180deg, #2e1a08 0%, #4a2a12 50%, #3a1a0a 100%),
    radial-gradient(ellipse at 40% 70%, #5a3a1a 0%, transparent 70%);
}
.scn-harry-father-coming .bg-interior { position:absolute; inset:0; background: linear-gradient(160deg, #3a2212 0%, #1a0e04 100%); }
.scn-harry-father-coming .door-arch { position:absolute; left:25%; top:8%; width:50%; height:85%; border:8px solid #4a2a1a; border-radius:30% 30% 4% 4%; background: rgba(0,0,0,.3); box-shadow: inset 0 0 40px rgba(0,0,0,.5); animation: hfc-door 10s ease-in-out infinite alternate; }
.scn-harry-father-coming .lamp-source { position:absolute; top:20%; left:42%; width:6%; height:10%; background: radial-gradient(circle, #ffb860 0%, #904010 100%); border-radius:50%; box-shadow: 0 0 50px 15px #b06020, 0 0 100px 30px rgba(176,96,32,.3); animation: hfc-lamp 3s ease-in-out infinite alternate; }
.scn-harry-father-coming .figure-child { position:absolute; left:40%; bottom:15%; width:10%; height:30%; background: radial-gradient(ellipse at 50% 40%, #2a1a0a 0%, #0e0602 100%); border-radius: 40% 40% 35% 35% / 50% 50% 40% 40%; transform-origin: bottom center; animation: hfc-child 4s ease-in-out infinite; }
.scn-harry-father-coming .figure-eliza { position:absolute; right:32%; bottom:18%; width:14%; height:45%; background: radial-gradient(ellipse at 50% 40%, #3a2a1a 0%, #1a0e04 100%); border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%; transform-origin: bottom center; animation: hfc-eliza 5s ease-in-out infinite; }
.scn-harry-father-coming .figure-rachel { position:absolute; right:15%; bottom:20%; width:12%; height:40%; background: radial-gradient(ellipse at 50% 40%, #2a221a 0%, #120e04 100%); border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%; transform-origin: bottom center; animation: hfc-rachel 6s ease-in-out infinite; }
.scn-harry-father-coming .warm-haze { position:absolute; inset:0; background: radial-gradient(ellipse at 40% 50%, rgba(255,180,80,.15) 0%, transparent 60%); animation: hfc-haze 12s ease-in-out infinite alternate; }

@keyframes hfc-door { 0% { transform: scale(1); } 50% { transform: scale(1.01); } 100% { transform: scale(1); } }
@keyframes hfc-lamp { 0% { box-shadow: 0 0 30px 10px #b06020, 0 0 60px 20px rgba(176,96,32,.2); } 50% { box-shadow: 0 0 50px 20px #ffb860, 0 0 80px 30px rgba(255,184,96,.4); } 100% { box-shadow: 0 0 35px 12px #b06020, 0 0 70px 25px rgba(176,96,32,.25); } }
@keyframes hfc-child { 0% { transform: translateX(0) rotate(0deg); } 50% { transform: translateX(-3px) rotate(3deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes hfc-eliza { 0% { transform: translateX(0) rotate(0deg); } 50% { transform: translateX(2px) rotate(-1deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes hfc-rachel { 0% { transform: translateX(0) rotate(0deg); } 50% { transform: translateX(-4px) rotate(2deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes hfc-haze { 0% { opacity:0.3; } 50% { opacity:0.7; } 100% { opacity:0.3; } }

/* eliza-revives */
.scn-eliza-revives {
  background:
    linear-gradient(180deg, #2e1a0a 0%, #4a2a1a 40%, #3a1a0a 100%),
    radial-gradient(ellipse at 50% 60%, #5a3a1a 0%, transparent 70%);
}
.scn-eliza-revives .bg-bedroom { position:absolute; inset:0; background: linear-gradient(135deg, #3a2212 0%, #1e0e04 100%); }
.scn-eliza-revives .bed-frame { position:absolute; left:10%; bottom:5%; width:80%; height:60%; background: linear-gradient(180deg, #4a2a1a 0%, #2a1a0a 100%); border-radius:8px; box-shadow: 0 8px 20px rgba(0,0,0,.5); }
.scn-eliza-revives .pillow { position:absolute; left:25%; top:35%; width:25%; height:18%; background: radial-gradient(ellipse, #c8a080 0%, #8a6030 100%); border-radius:50%; box-shadow: inset 0 -4px 8px rgba(0,0,0,.3); animation: er-pillow 8s ease-in-out infinite alternate; }
.scn-eliza-revives .figure-eliza { position:absolute; left:20%; bottom:15%; width:20%; height:35%; background: radial-gradient(ellipse at 50% 40%, #2a1a0a 0%, #0e0602 100%); border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%; transform-origin: bottom center; animation: er-eliza 6s ease-in-out infinite; }
.scn-eliza-revives .blanket { position:absolute; left:15%; bottom:10%; width:70%; height:12%; background: linear-gradient(135deg, #6a4a2a 0%, #3a2a1a 100%); border-radius: 30% 20% 10% 10%; box-shadow: 0 2px 6px rgba(0,0,0,.4); animation: er-blanket 10s ease-in-out infinite alternate; }
.scn-eliza-revives .window-glow { position:absolute; right:8%; top:10%; width:20%; height:30%; background: radial-gradient(ellipse, rgba(255,200,100,.15) 0%, transparent 100%); border-radius:4px; box-shadow: inset 0 0 20px rgba(255,200,100,.1); animation: er-window 12s ease-in-out infinite alternate; }
.scn-eliza-revives .lamp-soft { position:absolute; top:15%; left:45%; width:5%; height:8%; background: radial-gradient(circle, #ffc080 0%, #b06030 60%, transparent 100%); border-radius:50%; box-shadow: 0 0 30px 10px #b06030, 0 0 60px 20px rgba(176,96,48,.2); animation: er-lamp 4s ease-in-out infinite alternate; }

@keyframes er-pillow { 0% { transform: translateY(0) scale(1); } 50% { transform: translateY(-2px) scale(1.02); } 100% { transform: translateY(0) scale(1); } }
@keyframes er-eliza { 0% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-3px) rotate(1deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes er-blanket { 0% { transform: translateY(0); opacity:0.8; } 50% { transform: translateY(-2px); opacity:0.95; } 100% { transform: translateY(0); opacity:0.8; } }
@keyframes er-window { 0% { opacity:0.1; } 50% { opacity:0.3; } 100% { opacity:0.1; } }
@keyframes er-lamp { 0% { box-shadow: 0 0 20px 6px #b06030, 0 0 40px 12px rgba(176,96,48,.15); } 50% { box-shadow: 0 0 35px 12px #ffc080, 0 0 70px 20px rgba(255,192,128,.3); } 100% { box-shadow: 0 0 22px 8px #b06030, 0 0 45px 14px rgba(176,96,48,.18); } }

/* eliza-dreamlike */
.scn-eliza-dreamlike {
  background:
    linear-gradient(180deg, #2a1a0a 0%, #4a2a1a 50%, #3a1a0a 100%),
    radial-gradient(ellipse at 50% 80%, #5a3a1a 0%, transparent 70%);
}
.scn-eliza-dreamlike .bg-room-deep { position:absolute; inset:0; background: linear-gradient(150deg, #3a2212 0%, #1a0e04 100%); animation: ed-bg 15s ease-in-out infinite alternate; }
.scn-eliza-dreamlike .figure-eliza-rest { position:absolute; left:15%; bottom:12%; width:18%; height:40%; background: radial-gradient(ellipse at 50% 40%, #2a1a0a 0%, #0e0602 100%); border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%; transform-origin: bottom center; animation: ed-eliza 8s ease-in-out infinite; }
.scn-eliza-dreamlike .figure-rachel-move { position:absolute; right:20%; bottom:18%; width:12%; height:38%; background: radial-gradient(ellipse at 50% 40%, #3a2a1a 0%, #1a0e04 100%); border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%; transform-origin: bottom center; animation: ed-rachel 10s ease-in-out infinite; }
.scn-eliza-dreamlike .figure-child-move { position:absolute; right:35%; bottom:10%; width:10%; height:25%; background: radial-gradient(ellipse at 50% 40%, #2a1a0a 0%, #0e0602 100%); border-radius: 40% 40% 35% 35% / 50% 50% 40% 40%; transform-origin: bottom center; animation: ed-child 7s ease-in-out infinite; }
.scn-eliza-dreamlike .candle-flicker { position:absolute; top:22%; left:40%; width:5%; height:10%; background: radial-gradient(circle, #ffc860 0%, #a05020 60%, transparent 100%); border-radius:50%; box-shadow: 0 0 40px 15px #b06030, 0 0 80px 25px rgba(176,96,48,.25); animation: ed-candle 3s ease-in-out infinite alternate; }
.scn-eliza-dreamlike .curtain-left { position:absolute; left:0; top:5%; width:12%; height:95%; background: linear-gradient(135deg, #4a2a1a 0%, #2a1a0a 100%); border-radius:0 30% 30% 0; box-shadow: 4px 0 10px rgba(0,0,0,.4); animation: ed-curtain-l 14s ease-in-out infinite alternate; }
.scn-eliza-dreamlike .curtain-right { position:absolute; right:0; top:5%; width:12%; height:95%; background: linear-gradient(225deg, #4a2a1a 0%, #2a1a0a 100%); border-radius:30% 0 0 30%; box-shadow: -4px 0 10px rgba(0,0,0,.4); animation: ed-curtain-r 14s ease-in-out infinite alternate; }
.scn-eliza-dreamlike .shadow-dance { position:absolute; inset:0; background: radial-gradient(ellipse at 50% 60%, transparent 0%, rgba(0,0,0,.3) 100%); animation: ed-shadow 20s ease-in-out infinite alternate; }

@keyframes ed-bg { 0% { opacity:0.8; } 50% { opacity:1; } 100% { opacity:0.8; } }
@keyframes ed-eliza { 0% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-2px) rotate(1deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes ed-rachel { 0% { transform: translateX(0) translateY(0) rotate(0deg); } 50% { transform: translateX(-5px) translateY(-2px) rotate(2deg); } 100% { transform: translateX(0) translateY(0) rotate(0deg); } }
@keyframes ed-child { 0% { transform: translateX(0) rotate(0deg); } 50% { transform: translateX(6px) rotate(-3deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes ed-candle { 0% { box-shadow: 0 0 30px 10px #b06030, 0 0 60px 20px rgba(176,96,48,.2); } 50% { box-shadow: 0 0 50px 20px #ffc860, 0 0 80px 30px rgba(255,200,96,.4); } 100% { box-shadow: 0 0 35px 12px #b06030, 0 0 70px 25px rgba(176,96,48,.25); } }
@keyframes ed-curtain-l { 0% { transform: scaleX(1); } 50% { transform: scaleX(1.02); } 100% { transform: scaleX(1); } }
@keyframes ed-curtain-r { 0% { transform: scaleX(1); } 50% { transform: scaleX(1.02); } 100% { transform: scaleX(1); } }
@keyframes ed-shadow { 0% { opacity:0.2; } 50% { opacity:0.5; } 100% { opacity:0.2; } }

/* Scene 1: mrs-shelby-condemns-slavery */
.scn-mrs-shelby-condemns-slavery {
  background: 
    linear-gradient(180deg, #1a1a2a 0%, #2a1a1a 40%, #1a0a0a 100%),
    radial-gradient(ellipse at 30% 60%, #3a2a1a 0%, transparent 80%);
  position: relative;
  overflow: hidden;
  height: 100%;
}
.scn-mrs-shelby-condemns-slavery .wall {
  position: absolute;
  inset: 0 0 35% 0;
  background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%);
  border-bottom: 2px solid #2a1a0a;
}
.scn-mrs-shelby-condemns-slavery .floor {
  position: absolute;
  bottom: 0; left: 0; right: 0;
  height: 35%;
  background: linear-gradient(180deg, #1a0a0a 0%, #0a0505 100%);
  box-shadow: inset 0 8px 20px rgba(0,0,0,0.6);
}
.scn-mrs-shelby-condemns-slavery .window {
  position: absolute;
  top: 12%; left: 60%;
  width: 60px; height: 80px;
  background: linear-gradient(135deg, #2a3a5a 0%, #1a2a4a 100%);
  border: 4px solid #3a2a1a;
  border-radius: 2px;
  box-shadow: inset 0 0 20px rgba(0,0,60,0.5);
}
.scn-mrs-shelby-condemns-slavery .figure {
  position: absolute;
  bottom: 20%; left: 35%;
  width: 40px; height: 70px;
  background: linear-gradient(180deg, #3a2a2a 0%, #1a0a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: sc1-figure 6s ease-in-out infinite alternate;
}
.scn-mrs-shelby-condemns-slavery .kneeling {
  bottom: 10%; left: 45%;
  width: 50px; height: 65px;
  transform: scale(0.9) rotate(10deg);
  animation: sc1-kneel 8s ease-in-out infinite;
}
.scn-mrs-shelby-condemns-slavery .lamp {
  position: absolute;
  bottom: 42%; left: 25%;
  width: 12px; height: 12px;
  background: radial-gradient(circle, #d09050 0%, #8a5a30 70%);
  border-radius: 50%;
  box-shadow: 0 0 30px 10px rgba(180,120,60,0.6), 0 0 60px 20px rgba(180,120,60,0.3);
  animation: sc1-lamp 3s ease-in-out infinite alternate;
}
.scn-mrs-shelby-condemns-slavery .shadow {
  position: absolute;
  bottom: 8%; left: 38%;
  width: 70px; height: 15px;
  background: radial-gradient(ellipse, rgba(0,0,0,0.8) 0%, transparent 100%);
  transform: scaleX(0.7);
}
.scn-mrs-shelby-condemns-slavery .tear-drop {
  position: absolute;
  bottom: 40%; left: 48%;
  width: 4px; height: 6px;
  background: radial-gradient(circle, #aaccee 0%, #88aadd 100%);
  border-radius: 50% 50% 50% 50% / 60% 60% 40% 40%;
  opacity: 0;
  animation: sc1-tear 4s ease-in-out infinite;
}
@keyframes sc1-figure {
  0% { transform: translateY(0) rotate(0deg); }
  50% { transform: translateY(-2px) rotate(-2deg); }
  100% { transform: translateY(0) rotate(2deg); }
}
@keyframes sc1-kneel {
  0% { transform: scale(0.9) rotate(10deg) translateY(0); }
  50% { transform: scale(0.9) rotate(10deg) translateY(-1px); }
  100% { transform: scale(0.9) rotate(10deg) translateY(0); }
}
@keyframes sc1-lamp {
  0% { box-shadow: 0 0 25px 8px rgba(180,120,60,0.5), 0 0 50px 15px rgba(180,120,60,0.2); opacity: 0.9; }
  50% { box-shadow: 0 0 35px 12px rgba(180,120,60,0.7), 0 0 70px 25px rgba(180,120,60,0.4); opacity: 1; }
  100% { box-shadow: 0 0 25px 8px rgba(180,120,60,0.5), 0 0 50px 15px rgba(180,120,60,0.2); opacity: 0.9; }
}
@keyframes sc1-tear {
  0% { opacity: 0; transform: translateY(0) scale(0.8); }
  20% { opacity: 0.6; transform: translateY(5px) scale(1); }
  50% { opacity: 0.8; transform: translateY(12px) scale(0.9); }
  80% { opacity: 0.5; transform: translateY(18px) scale(0.7); }
  100% { opacity: 0; transform: translateY(25px) scale(0.5); }
}

/* Scene 2: shelby-minimizes-stance */
.scn-shelby-minimizes-stance {
  background: 
    linear-gradient(180deg, #1a1a2a 0%, #2a1a1a 50%, #1a0a0a 100%),
    radial-gradient(ellipse at 40% 30%, #3a2a1a 0%, transparent 70%);
  position: relative;
  overflow: hidden;
  height: 100%;
}
.scn-shelby-minimizes-stance .wall {
  position: absolute;
  inset: 0 0 30% 0;
  background: linear-gradient(180deg, #2a1a2a 0%, #1a0a1a 100%);
}
.scn-shelby-minimizes-stance .floor {
  position: absolute;
  bottom: 0; left: 0; right: 0;
  height: 30%;
  background: linear-gradient(180deg, #1a0a0a 0%, #0a0505 100%);
  box-shadow: inset 0 8px 20px rgba(0,0,0,0.5);
}
.scn-shelby-minimizes-stance .chair-left {
  position: absolute;
  bottom: 28%; left: 25%;
  width: 40px; height: 50px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0a00 100%);
  border-radius: 10% 10% 5% 5% / 10% 10% 40% 40%;
  box-shadow: 0 4px 10px rgba(0,0,0,0.6);
}
.scn-shelby-minimizes-stance .figure {
  position: absolute;
  bottom: 15%; left: 25%;
  width: 35px; height: 60px;
  background: linear-gradient(180deg, #3a2a2a 0%, #1a0a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: sc2-fig-left 5s ease-in-out infinite alternate;
}
.scn-shelby-minimizes-stance .figure.seated-left {
  bottom: 28%; left: 22%;
  width: 38px; height: 50px;
  background: linear-gradient(180deg, #4a3a3a 0%, #2a1a1a 100%);
  border-radius: 50% 50% 30% 30% / 70% 70% 40% 40%;
  transform: scale(0.95);
  animation: sc2-seat 7s ease-in-out infinite;
}
.scn-shelby-minimizes-stance .figure.standing-right {
  bottom: 15%; left: 65%;
  width: 35px; height: 65px;
  background: linear-gradient(180deg, #3a2a2a 0%, #1a0a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: sc2-stand 4s ease-in-out infinite alternate;
}
.scn-shelby-minimizes-stance .candle {
  position: absolute;
  bottom: 38%; left: 50%;
  width: 8px; height: 20px;
  background: linear-gradient(180deg, #e0b060 0%, #c09050 100%);
  border-radius: 2px 2px 1px 1px;
  box-shadow: 0 0 20px 5px rgba(200,140,60,0.6);
  animation: sc2-candle 3s ease-in-out infinite alternate;
}
.scn-shelby-minimizes-stance .table {
  position: absolute;
  bottom: 26%; left: 42%;
  width: 80px; height: 8px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0a00 100%);
  border-radius: 4px;
  box-shadow: 0 4px 8px rgba(0,0,0,0.5);
}
@keyframes sc2-fig-left {
  0% { transform: translateY(0) rotate(0deg); }
  50% { transform: translateY(-2px) rotate(-3deg); }
  100% { transform: translateY(0) rotate(2deg); }
}
@keyframes sc2-seat {
  0% { transform: scale(0.95) translateY(0); }
  50% { transform: scale(0.95) translateY(-2px); }
  100% { transform: scale(0.95) translateY(0); }
}
@keyframes sc2-stand {
  0% { transform: translateX(0) translateY(0); }
  50% { transform: translateX(2px) translateY(-3px); }
  100% { transform: translateX(0) translateY(0); }
}
@keyframes sc2-candle {
  0% { box-shadow: 0 0 15px 4px rgba(200,140,60,0.5); opacity: 0.8; }
  50% { box-shadow: 0 0 25px 8px rgba(200,140,60,0.7); opacity: 1; }
  100% { box-shadow: 0 0 15px 4px rgba(200,140,60,0.5); opacity: 0.8; }
}

/* Scene 3: shelby-urges-practicality */
.scn-shelby-urges-practicality {
  background: 
    linear-gradient(180deg, #1a1a2a 0%, #2a1a1a 40%, #1a0a0a 100%),
    radial-gradient(ellipse at 60% 50%, #3a2a1a 0%, transparent 70%);
  position: relative;
  overflow: hidden;
  height: 100%;
}
.scn-shelby-urges-practicality .wall {
  position: absolute;
  inset: 0 0 30% 0;
  background: linear-gradient(180deg, #2a1a2a 0%, #1a0a1a 100%);
  border-bottom: 3px solid #1a0a00;
}
.scn-shelby-urges-practicality .desk {
  position: absolute;
  bottom: 15%; left: 10%; right: 10%;
  height: 20%;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0a00 100%);
  border-radius: 6px 6px 0 0;
  box-shadow: 0 -4px 10px rgba(0,0,0,0.5);
}
.scn-shelby-urges-practicality .figure {
  position: absolute;
  bottom: 20%; left: 45%;
  width: 45px; height: 75px;
  background: linear-gradient(180deg, #3a2a2a 0%, #1a0a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: sc3-fig 5s ease-in-out infinite alternate;
}
.scn-shelby-urges-practicality .arm-outstretched {
  position: absolute;
  bottom: 35%; left: 55%;
  width: 30px; height: 6px;
  background: linear-gradient(180deg, #3a2a2a 0%, #1a0a0a 100%);
  border-radius: 3px;
  transform: rotate(-20deg);
  transform-origin: right center;
  animation: sc3-arm 6s ease-in-out infinite alternate;
}
.scn-shelby-urges-practicality .papers {
  position: absolute;
  bottom: 18%; left: 30%;
  width: 30px; height: 20px;
  background: linear-gradient(135deg, #d0c8b0 0%, #a89880 100%);
  border-radius: 2px;
  box-shadow: 0 2px 6px rgba(0,0,0,0.4);
  transform: rotate(5deg);
  animation: sc3-paper 8s ease-in-out infinite;
}
.scn-shelby-urges-practicality .inkwell {
  position: absolute;
  bottom: 18%; left: 20%;
  width: 12px; height: 14px;
  background: linear-gradient(180deg, #2a2a3a 0%, #0a0a1a 100%);
  border-radius: 40% 40% 20% 20%;
  box-shadow: inset 0 2px 4px rgba(0,0,0,0.6);
}
.scn-shelby-urges-practicality .lamp {
  position: absolute;
  bottom: 40%; left: 20%;
  width: 14px; height: 14px;
  background: radial-gradient(circle, #d09050 0%, #8a5a30 70%);
  border-radius: 50%;
  box-shadow: 0 0 35px 12px rgba(180,120,60,0.5), 0 0 70px 20px rgba(180,120,60,0.2);
  animation: sc3-lamp 4s ease-in-out infinite alternate;
}
@keyframes sc3-fig {
  0% { transform: translateY(0) rotate(0deg); }
  50% { transform: translateY(-2px) rotate(3deg); }
  100% { transform: translateY(0) rotate(-2deg); }
}
@keyframes sc3-arm {
  0% { transform: rotate(-20deg) translateY(0); }
  50% { transform: rotate(-10deg) translateY(-2px); }
  100% { transform: rotate(-20deg) translateY(0); }
}
@keyframes sc3-paper {
  0% { transform: rotate(5deg) translateY(0); }
  50% { transform: rotate(8deg) translateY(-2px); }
  100% { transform: rotate(5deg) translateY(0); }
}
@keyframes sc3-lamp {
  0% { box-shadow: 0 0 30px 10px rgba(180,120,60,0.4), 0 0 60px 20px rgba(180,120,60,0.1); opacity: 0.9; }
  50% { box-shadow: 0 0 40px 15px rgba(180,120,60,0.6), 0 0 80px 25px rgba(180,120,60,0.3); opacity: 1; }
  100% { box-shadow: 0 0 30px 10px rgba(180,120,60,0.4), 0 0 60px 20px rgba(180,120,60,0.1); opacity: 0.9; }
}

/* Scene 4: mrs-shelby-offers-watch */
.scn-mrs-shelby-offers-watch {
  background: 
    linear-gradient(180deg, #1a1a2a 0%, #2a1a1a 50%, #1a0a0a 100%),
    radial-gradient(ellipse at 70% 40%, #3a2a1a 0%, transparent 80%);
  position: relative;
  overflow: hidden;
  height: 100%;
}
.scn-mrs-shelby-offers-watch .wall {
  position: absolute;
  inset: 0 0 35% 0;
  background: linear-gradient(180deg, #2a1a2a 0%, #1a0a1a 100%);
}
.scn-mrs-shelby-offers-watch .floor {
  position: absolute;
  bottom: 0; left: 0; right: 0;
  height: 35%;
  background: linear-gradient(180deg, #1a0a0a 0%, #0a0505 100%);
  box-shadow: inset 0 8px 20px rgba(0,0,0,0.6);
}
.scn-mrs-shelby-offers-watch .figure {
  position: absolute;
  bottom: 20%; left: 20%;
  width: 50px; height: 80px;
  background: linear-gradient(180deg, #3a2a2a 0%, #1a0a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: sc4-fig 5s ease-in-out infinite alternate;
}
.scn-mrs-shelby-offers-watch .torso {
  bottom: 25%; left: 15%;
  width: 45px; height: 60px;
  background: linear-gradient(180deg, #4a3a3a 0%, #2a1a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
}
.scn-mrs-shelby-offers-watch .arm-extended {
  position: absolute;
  bottom: 38%; left: 40%;
  width: 35px; height: 6px;
  background: linear-gradient(180deg, #3a2a2a 0%, #1a0a0a 100%);
  border-radius: 3px;
  transform: rotate(-15deg);
  transform-origin: left center;
  animation: sc4-arm 4s ease-in-out infinite alternate;
}
.scn-mrs-shelby-offers-watch .watch {
  position: absolute;
  bottom: 36%; left: 70%;
  width: 12px; height: 14px;
  background: radial-gradient(circle at 50% 40%, #ffd080 0%, #b08050 60%, #804030 100%);
  border-radius: 50%;
  box-shadow: 0 0 20px 6px rgba(200,150,60,0.8), 0 0 40px 12px rgba(200,150,60,0.4);
  animation: sc4-watch 3s ease-in-out infinite alternate;
}
.scn-mrs-shelby-offers-watch .chain {
  position: absolute;
  bottom: 36%; left: 55%;
  width: 20px; height: 2px;
  background: linear-gradient(90deg, #c09050 0%, #b08040 100%);
  border-radius: 1px;
  transform: rotate(10deg);
  animation: sc4-chain 4s ease-in-out infinite alternate;
}
.scn-mrs-shelby-offers-watch .shadow {
  position: absolute;
  bottom: 12%; left: 30%;
  width: 80px; height: 12px;
  background: radial-gradient(ellipse, rgba(0,0,0,0.7) 0%, transparent 100%);
  transform: scaleX(0.8);
}
.scn-mrs-shelby-offers-watch .table {
  position: absolute;
  bottom: 22%; left: 10%; right: 10%;
  height: 6%;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0a00 100%);
  border-radius: 4px;
  box-shadow: 0 4px 10px rgba(0,0,0,0.5);
}
@keyframes sc4-fig {
  0% { transform: translateY(0) rotate(0deg); }
  50% { transform: translateY(-2px) rotate(-2deg); }
  100% { transform: translateY(0) rotate(2deg); }
}
@keyframes sc4-arm {
  0% { transform: rotate(-15deg) translateY(0); }
  50% { transform: rotate(-10deg) translateY(-1px); }
  100% { transform: rotate(-15deg) translateY(0); }
}
@keyframes sc4-watch {
  0% { box-shadow: 0 0 15px 4px rgba(200,150,60,0.6), 0 0 30px 8px rgba(200,150,60,0.3); opacity: 0.9; }
  50% { box-shadow: 0 0 25px 8px rgba(200,150,60,0.9), 0 0 50px 15px rgba(200,150,60,0.5); opacity: 1; }
  100% { box-shadow: 0 0 15px 4px rgba(200,150,60,0.6), 0 0 30px 8px rgba(200,150,60,0.3); opacity: 0.9; }
}
@keyframes sc4-chain {
  0% { transform: rotate(10deg) scaleY(1); }
  50% { transform: rotate(8deg) scaleY(1.1); }
  100% { transform: rotate(10deg) scaleY(1); }
}

.scn-family-plans {
  background: linear-gradient(180deg, #fce4c8 0%, #f5d4a8 40%, #e8c090 100%), radial-gradient(ellipse at 20% 40%, #fff8e0 0%, transparent 60%);
  background-blend-mode: overlay;
}
.scn-family-plans .window-frame {
  position: absolute; inset: 5% 5% 60% 55%; width: 35%; height: 35%;
  background: linear-gradient(180deg, #ffe8c0 0%, #f0d4a0 100%);
  border: 6px solid #c8a070; border-radius: 4px;
  box-shadow: inset 0 0 30px #fff8e0, 4px 4px 12px rgba(0,0,0,0.2);
  animation: fp-window 12s ease-in-out infinite alternate;
}
.scn-family-plans .sunbeam {
  position: absolute; inset: 8% 8% 62% 58%; width: 30%; height: 25%;
  background: linear-gradient(135deg, rgba(255,240,200,0.6) 0%, transparent 70%);
  clip-path: polygon(0 0, 100% 5%, 100% 95%, 0 100%);
  animation: fp-beam 8s ease-in-out infinite alternate;
}
.scn-family-plans .table {
  position: absolute; bottom: 10%; left: 15%; width: 70%; height: 18%;
  background: linear-gradient(180deg, #b08050 0%, #906840 40%, #704020 100%);
  border-radius: 8px 8px 0 0; box-shadow: 0 8px 20px rgba(0,0,0,0.4);
}
.scn-family-plans .chair-left {
  position: absolute; bottom: 15%; left: 28%; width: 12%; height: 28%;
  background: linear-gradient(180deg, #a07040 0%, #805030 100%);
  border-radius: 10% 10% 5% 5% / 30% 30% 20% 20%;
  transform-origin: bottom center;
  animation: fp-chair-left 6s ease-in-out infinite;
}
.scn-family-plans .chair-right {
  position: absolute; bottom: 15%; right: 28%; width: 12%; height: 28%;
  background: linear-gradient(180deg, #a07040 0%, #805030 100%);
  border-radius: 10% 10% 5% 5% / 30% 30% 20% 20%;
  transform-origin: bottom center;
  animation: fp-chair-right 6s ease-in-out infinite;
  animation-delay: -3s;
}
.scn-family-plans .figure-left {
  position: absolute; bottom: 28%; left: 30%; width: 10%; height: 35%;
  background: linear-gradient(180deg, #604830 0%, #403020 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: fp-figure-left 8s ease-in-out infinite;
}
.scn-family-plans .figure-right {
  position: absolute; bottom: 28%; right: 30%; width: 10%; height: 35%;
  background: linear-gradient(180deg, #604830 0%, #403020 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: fp-figure-right 8s ease-in-out infinite;
  animation-delay: -4s;
}
.scn-family-plans .document {
  position: absolute; bottom: 18%; left: 46%; width: 8%; height: 6%;
  background: linear-gradient(135deg, #f0e8d0 0%, #d0c0a0 100%);
  border-radius: 2px; box-shadow: 0 2px 4px rgba(0,0,0,0.3);
  transform: rotate(-5deg);
  animation: fp-doc 15s ease-in-out infinite alternate;
}
.scn-family-plans .cup {
  position: absolute; bottom: 14%; left: 25%; width: 5%; height: 6%;
  background: linear-gradient(180deg, #d0a070 0%, #b08050 100%);
  border-radius: 50% 50% 10% 10% / 40% 40% 30% 30%;
  animation: fp-cup 10s ease-in-out infinite;
}

@keyframes fp-window {
  0% { opacity: 0.9; box-shadow: inset 0 0 30px #fff8e0, 4px 4px 12px rgba(0,0,0,0.2); }
  50% { opacity: 1; box-shadow: inset 0 0 50px #fffff0, 6px 6px 20px rgba(0,0,0,0.15); }
  100% { opacity: 0.95; box-shadow: inset 0 0 35px #fff8e0, 4px 4px 12px rgba(0,0,0,0.2); }
}
@keyframes fp-beam {
  0% { transform: translateX(-5px) rotate(-2deg); opacity: 0.6; }
  50% { transform: translateX(5px) rotate(2deg); opacity: 0.8; }
  100% { transform: translateX(-3px) rotate(-1deg); opacity: 0.7; }
}
@keyframes fp-chair-left {
  0% { transform: rotate(0deg) translateY(0); }
  50% { transform: rotate(1deg) translateY(-2px); }
  100% { transform: rotate(0deg) translateY(0); }
}
@keyframes fp-chair-right {
  0% { transform: rotate(0deg) translateY(0); }
  50% { transform: rotate(-1deg) translateY(-2px); }
  100% { transform: rotate(0deg) translateY(0); }
}
@keyframes fp-figure-left {
  0% { transform: rotate(0deg) translateY(0); }
  25% { transform: rotate(1deg) translateY(-1px); }
  50% { transform: rotate(-1deg) translateY(-2px); }
  75% { transform: rotate(0.5deg) translateY(-1px); }
  100% { transform: rotate(0deg) translateY(0); }
}
@keyframes fp-figure-right {
  0% { transform: rotate(0deg) translateY(0); }
  25% { transform: rotate(-1deg) translateY(-1px); }
  50% { transform: rotate(1deg) translateY(-2px); }
  75% { transform: rotate(-0.5deg) translateY(-1px); }
  100% { transform: rotate(0deg) translateY(0); }
}
@keyframes fp-doc {
  0% { transform: rotate(-5deg) scale(1); }
  50% { transform: rotate(0deg) scale(1.02); }
  100% { transform: rotate(-4deg) scale(1); }
}
@keyframes fp-cup {
  0% { transform: translateY(0); }
  50% { transform: translateY(-1px); }
  100% { transform: translateY(0); }
}

.scn-george-harriss-letter {
  background: linear-gradient(180deg, #e8dcc8 0%, #d4c4a8 40%, #bfa888 100%), radial-gradient(ellipse at 50% 30%, #fffaec 0%, transparent 60%);
}
.scn-george-harriss-letter .wall {
  position: absolute; inset: 0; background: linear-gradient(180deg, #e0d4c0 0%, #c8b8a0 100%);
}
.scn-george-harriss-letter .window-calm {
  position: absolute; inset: 6% 6% 50% 60%; width: 30%; height: 40%;
  background: linear-gradient(180deg, #e0e8ff 0%, #c0d0f0 100%);
  border: 5px solid #a08868; border-radius: 4px;
  box-shadow: inset 0 0 40px rgba(255,255,255,0.6), 2px 2px 10px rgba(0,0,0,0.1);
  animation: ghl-window 15s ease-in-out infinite alternate;
}
.scn-george-harriss-letter .desk {
  position: absolute; bottom: 8%; left: 10%; width: 80%; height: 20%;
  background: linear-gradient(180deg, #8a6a4a 0%, #6a4a2a 100%);
  border-radius: 5px; box-shadow: 0 6px 15px rgba(0,0,0,0.3);
}
.scn-george-harriss-letter .chair-desk {
  position: absolute; bottom: 14%; left: 35%; width: 14%; height: 26%;
  background: linear-gradient(180deg, #a08060 0%, #806040 100%);
  border-radius: 10% 10% 5% 5% / 30% 30% 20% 20%;
  transform-origin: bottom center;
  animation: ghl-chair 8s ease-in-out infinite;
}
.scn-george-harriss-letter .figure-writing {
  position: absolute; bottom: 20%; left: 36%; width: 12%; height: 34%;
  background: linear-gradient(180deg, #504030 0%, #302820 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: ghl-figure 6s ease-in-out infinite;
}
.scn-george-harriss-letter .paper {
  position: absolute; bottom: 14%; left: 50%; width: 12%; height: 8%;
  background: linear-gradient(135deg, #f8f0e0 0%, #e0d0b8 100%);
  border-radius: 2px; box-shadow: 0 2px 6px rgba(0,0,0,0.2);
  transform: rotate(2deg);
  animation: ghl-paper 20s ease-in-out infinite alternate;
}
.scn-george-harriss-letter .inkwell {
  position: absolute; bottom: 18%; left: 62%; width: 4%; height: 5%;
  background: radial-gradient(circle, #302828 0%, #181010 100%);
  border-radius: 50%; box-shadow: 0 2px 4px rgba(0,0,0,0.3);
  animation: ghl-ink 12s ease-in-out infinite;
}
.scn-george-harriss-letter .lamp {
  position: absolute; bottom: 30%; left: 70%; width: 6%; height: 10%;
  background: radial-gradient(ellipse at 50% 30%, #ffe8c0 0%, #d0a070 50%, transparent 100%);
  border-radius: 50% 50% 10% 10% / 60% 60% 30% 30%;
  box-shadow: 0 0 30px 8px rgba(255,232,192,0.4);
  animation: ghl-lamp 5s ease-in-out infinite alternate;
}

@keyframes ghl-window {
  0% { opacity: 0.9; }
  50% { opacity: 1; }
  100% { opacity: 0.95; }
}
@keyframes ghl-chair {
  0% { transform: rotate(0deg) translateY(0); }
  50% { transform: rotate(1deg) translateY(-1px); }
  100% { transform: rotate(0deg) translateY(0); }
}
@keyframes ghl-figure {
  0% { transform: rotate(0deg) translateY(0); }
  50% { transform: rotate(0.5deg) translateY(-2px); }
  100% { transform: rotate(0deg) translateY(0); }
}
@keyframes ghl-paper {
  0% { transform: rotate(2deg) scale(1); }
  50% { transform: rotate(0deg) scale(1.02); }
  100% { transform: rotate(1.5deg) scale(1); }
}
@keyframes ghl-ink {
  0% { transform: translateY(0); }
  50% { transform: translateY(-1px); }
  100% { transform: translateY(0); }
}
@keyframes ghl-lamp {
  0% { box-shadow: 0 0 20px 4px rgba(255,232,192,0.3); }
  50% { box-shadow: 0 0 40px 12px rgba(255,232,192,0.6); }
  100% { box-shadow: 0 0 25px 6px rgba(255,232,192,0.4); }
}

.scn-letter-continued {
  background: linear-gradient(180deg, #f5e8d0 0%, #e0c8a8 40%, #c0a080 100%), radial-gradient(ellipse at 50% 20%, #fff4e0 0%, transparent 50%);
}
.scn-letter-continued .backdrop {
  position: absolute; inset: 0; background: linear-gradient(180deg, #f0e0c8 0%, #d0b898 100%);
}
.scn-letter-continued .sun-disc {
  position: absolute; top: 10%; right: 20%; width: 20%; height: 20%;
  background: radial-gradient(circle, #ffe8b0 0%, #f0c880 50%, transparent 70%);
  border-radius: 50%; box-shadow: 0 0 60px 30px rgba(240,200,128,0.5);
  animation: lc-sun 10s ease-in-out infinite alternate;
}
.scn-letter-continued .silhouette-figure {
  position: absolute; bottom: 15%; left: 50%; width: 14%; height: 45%;
  background: linear-gradient(180deg, #2a2018 0%, #1a1008 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform: translateX(-50%);
  animation: lc-figure 12s ease-in-out infinite;
}
.scn-letter-continued .arm-left {
  position: absolute; bottom: 40%; left: 48%; width: 6%; height: 10%;
  background: linear-gradient(180deg, #2a2018 0%, #1a1008 100%);
  border-radius: 40% 40% 20% 20% / 60% 60% 30% 30%;
  transform-origin: bottom right;
  animation: lc-arm-left 8s ease-in-out infinite;
}
.scn-letter-continued .arm-right {
  position: absolute; bottom: 40%; right: 48%; width: 6%; height: 10%;
  background: linear-gradient(180deg, #2a2018 0%, #1a1008 100%);
  border-radius: 40% 40% 20% 20% / 60% 60% 30% 30%;
  transform-origin: bottom left;
  animation: lc-arm-right 8s ease-in-out infinite;
  animation-delay: -4s;
}
.scn-letter-continued .rays {
  position: absolute; top: 5%; left: 50%; width: 40%; height: 40%;
  background: repeating-conic-gradient(from 0deg at 50% 100%, transparent 0deg, rgba(255,232,176,0.1) 5deg, transparent 10deg);
  transform: translateX(-50%);
  animation: lc-rays 20s linear infinite;
}
.scn-letter-continued .ground-line {
  position: absolute; bottom: 12%; left: 10%; width: 80%; height: 2%;
  background: linear-gradient(180deg, #8a7050 0%, #6a5030 100%);
  border-radius: 50%; filter: blur(3px);
  animation: lc-ground 8s ease-in-out infinite alternate;
}

@keyframes lc-sun {
  0% { transform: scale(1) translateY(0); opacity: 0.9; }
  50% { transform: scale(1.05) translateY(-5px); opacity: 1; }
  100% { transform: scale(1) translateY(0); opacity: 0.95; }
}
@keyframes lc-figure {
  0% { transform: translateX(-50%) rotate(0deg) translateY(0); }
  50% { transform: translateX(-50%) rotate(1deg) translateY(-2px); }
  100% { transform: translateX(-50%) rotate(0deg) translateY(0); }
}
@keyframes lc-arm-left {
  0% { transform: rotate(-20deg); }
  50% { transform: rotate(-10deg); }
  100% { transform: rotate(-20deg); }
}
@keyframes lc-arm-right {
  0% { transform: rotate(20deg); }
  50% { transform: rotate(10deg); }
  100% { transform: rotate(20deg); }
}
@keyframes lc-rays {
  0% { transform: translateX(-50%) rotate(0deg); }
  100% { transform: translateX(-50%) rotate(360deg); }
}
@keyframes lc-ground {
  0% { transform: scaleY(1); }
  50% { transform: scaleY(0.8); }
  100% { transform: scaleY(1); }
}

.scn-letter-on-africa {
  background: linear-gradient(180deg, #e8dcc8 0%, #d4c4a8 40%, #bfa888 100%), radial-gradient(ellipse at 70% 50%, #fff8ec 0%, transparent 50%);
}
.scn-letter-on-africa .study-wall {
  position: absolute; inset: 0; background: linear-gradient(180deg, #d8ccb8 0%, #c0b098 100%);
}
.scn-letter-on-africa .bookshelf {
  position: absolute; inset: 5% 5% 60% 5%; width: 90%; height: 30%;
  background: linear-gradient(180deg, #a08060 0%, #806040 100%);
  box-shadow: inset 0 5px 15px rgba(0,0,0,0.2);
  animation: loa-shelf 15s ease-in-out infinite alternate;
}
.scn-letter-on-africa .globe {
  position: absolute; bottom: 25%; left: 15%; width: 18%; height: 25%;
  background: radial-gradient(circle at 40% 30%, #b8d0e0 0%, #8098a8 30%, #506070 60%);
  border-radius: 50%; box-shadow: 2px 2px 10px rgba(0,0,0,0.3);
  animation: loa-globe 20s linear infinite;
}
.scn-letter-on-africa .figure-reading {
  position: absolute; bottom: 15%; left: 50%; width: 14%; height: 40%;
  background: linear-gradient(180deg, #504030 0%, #302820 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  transform: translateX(-50%);
  animation: loa-figure 10s ease-in-out infinite;
}
.scn-letter-on-africa .chair-study {
  position: absolute; bottom: 18%; left: 48%; width: 18%; height: 24%;
  background: linear-gradient(180deg, #a08060 0%, #806040 100%);
  border-radius: 10% 10% 5% 5% / 30% 30% 20% 20%;
  transform: translateX(-50%);
  animation: loa-chair 8s ease-in-out infinite;
}
.scn-letter-on-africa .map-wall {
  position: absolute; inset: 8% 10% 55% 60%; width: 28%; height: 32%;
  background: linear-gradient(135deg, #e8dcc0 0%, #c8b898 100%);
  border: 3px solid #a08868; border-radius: 4px;
  box-shadow: 0 0 20px rgba(0,0,0,0.1);
  animation: loa-map 25s ease-in-out infinite alternate;
}
.scn-letter-on-africa .candle {
  position: absolute; bottom: 20%; right: 12%; width: 4%; height: 8%;
  background: linear-gradient(180deg, #f0e0c0 0%, #d0b070 100%);
  border-radius: 30% 30% 10% 10% / 60% 60% 30% 30%;
  box-shadow: 0 0 30px 10px rgba(240,224,192,0.5);
  animation: loa-candle 4s ease-in-out infinite alternate;
}

@keyframes loa-shelf {
  0% { opacity: 0.9; }
  50% { opacity: 1; }
  100% { opacity: 0.95; }
}
@keyframes loa-globe {
  0% { transform: translateX(0) rotate(0deg); }
  100% { transform: translateX(3px) rotate(10deg); }
}
@keyframes loa-figure {
  0% { transform: translateX(-50%) rotate(0deg) translateY(0); }
  50% { transform: translateX(-50%) rotate(0.5deg) translateY(-2px); }
  100% { transform: translateX(-50%) rotate(0deg) translateY(0); }
}
@keyframes loa-chair {
  0% { transform: translateX(-50%) rotate(0deg); }
  50% { transform: translateX(-50%) rotate(1deg); }
  100% { transform: translateX(-50%) rotate(0deg); }
}
@keyframes loa-map {
  0% { transform: scale(1); }
  50% { transform: scale(1.02); }
  100% { transform: scale(1); }
}
@keyframes loa-candle {
  0% { box-shadow: 0 0 20px 4px rgba(240,224,192,0.3); opacity: 0.9; }
  50% { box-shadow: 0 0 40px 12px rgba(240,224,192,0.6); opacity: 1; }
  100% { box-shadow: 0 0 25px 6px rgba(240,224,192,0.4); opacity: 0.95; }
}

.scn-georges-master-asserts-ownership {
  background: linear-gradient(180deg, #1e1a18 0%, #2c2420 40%, #3a2e28 100%),
              radial-gradient(ellipse at 50% 80%, #4a3a22 0%, transparent 60%);
}
.scn-georges-master-asserts-ownership .room-bg {
  position: absolute; inset: 0; background: linear-gradient(180deg, #1a1614 0%, #2c2420 70%); animation: gmao-room 8s ease-in-out infinite alternate;
}
.scn-georges-master-asserts-ownership .table {
  position: absolute; bottom: 10%; left: 15%; width: 60%; height: 12%; background: linear-gradient(180deg, #4a3a28 0%, #2a1e14 100%); border-radius: 4px; box-shadow: 0 6px 12px rgba(0,0,0,.6); animation: gmao-table 6s ease-in-out infinite;
}
.scn-georges-master-asserts-ownership .lamp {
  position: absolute; bottom: 22%; left: 45%; width: 12px; height: 20px; background: radial-gradient(circle, #f0c060 0%, #d08030 60%); border-radius: 30% 30% 10% 10%; box-shadow: 0 0 30px 10px rgba(200,120,40,.6), 0 0 60px 20px rgba(200,120,40,.2); animation: gmao-lamp 2s ease-in-out infinite alternate;
}
.scn-georges-master-asserts-ownership .master-silhouette {
  position: absolute; bottom: 10%; left: 20%; width: 40px; height: 80px; background: #0e0c0a; border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: gmao-master 4s ease-in-out infinite;
}
.scn-georges-master-asserts-ownership .george-silhouette {
  position: absolute; bottom: 10%; left: 55%; width: 36px; height: 78px; background: #161210; border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: gmao-george 3s ease-in-out infinite alternate;
}
.scn-georges-master-asserts-ownership .machine {
  position: absolute; bottom: 12%; left: 35%; width: 30px; height: 20px; background: linear-gradient(90deg, #5a4a3a 0%, #3a2a1a 100%); border-radius: 10% 10% 20% 20%; transform: rotate(-5deg); animation: gmao-machine 7s ease-in-out infinite;
}
.scn-georges-master-asserts-ownership .shadow-1 {
  position: absolute; bottom: 0; left: 10%; width: 80%; height: 20%; background: linear-gradient(180deg, rgba(0,0,0,.4) 0%, transparent 100%); animation: gmao-shadow1 5s ease-in-out infinite alternate;
}
.scn-georges-master-asserts-ownership .shadow-2 {
  position: absolute; bottom: 0; left: 30%; width: 40%; height: 30%; background: radial-gradient(ellipse at 50% 100%, rgba(0,0,0,.5) 0%, transparent 70%); animation: gmao-shadow2 9s ease-in-out infinite alternate;
}
@keyframes gmao-room { 0% { opacity: .9 } 50% { opacity: 1 } 100% { opacity: .85 } }
@keyframes gmao-table { 0%,100% { transform: translateY(0) } 50% { transform: translateY(-2px) } }
@keyframes gmao-lamp { 0% { box-shadow: 0 0 20px 6px rgba(200,120,40,.5), 0 0 40px 12px rgba(200,120,40,.15); opacity: .8 } 50% { box-shadow: 0 0 35px 12px rgba(200,120,40,.7), 0 0 70px 20px rgba(200,120,40,.3); opacity: 1 } 100% { box-shadow: 0 0 25px 8px rgba(200,120,40,.5), 0 0 50px 15px rgba(200,120,40,.2); opacity: .85 } }
@keyframes gmao-master { 0% { transform: translateX(0) rotate(0) } 25% { transform: translateX(2px) rotate(2deg) } 50% { transform: translateX(0) rotate(0) } 75% { transform: translateX(-2px) rotate(-2deg) } 100% { transform: translateX(0) rotate(0) } }
@keyframes gmao-george { 0% { transform: translateX(0) translateY(0) rotate(0) } 100% { transform: translateX(-4px) translateY(-2px) rotate(-3deg) } }
@keyframes gmao-machine { 0% { transform: rotate(-5deg) scaleX(1) } 50% { transform: rotate(-3deg) scaleX(1.05) } 100% { transform: rotate(-5deg) scaleX(1) } }
@keyframes gmao-shadow1 { 0% { opacity: .3 } 50% { opacity: .5 } 100% { opacity: .4 } }
@keyframes gmao-shadow2 { 0% { transform: scaleX(1) } 50% { transform: scaleX(1.2) } 100% { transform: scaleX(.9) } }

.scn-george-taken-from-factory {
  background: linear-gradient(180deg, #0e1218 0%, #1a1e24 50%, #2a2e34 100%),
              radial-gradient(ellipse at 30% 80%, #2a3a44 0%, transparent 70%);
}
.scn-george-taken-from-factory .factory-bg {
  position: absolute; inset: 0; background: linear-gradient(90deg, #0a0e12 0%, #1a222a 50%, #0a0e12 100%); animation: gtff-bg 15s linear infinite;
}
.scn-george-taken-from-factory .machine-window {
  position: absolute; top: 20%; left: 15%; width: 40px; height: 30px; background: radial-gradient(circle, #384a50 0%, #1a2428 100%); border-radius: 10% 10% 0 0; box-shadow: inset 0 0 20px rgba(0,0,0,.5); animation: gtff-window 8s ease-in-out infinite alternate;
}
.scn-george-taken-from-factory .george-figure {
  position: absolute; bottom: 15%; left: 40%; width: 38px; height: 76px; background: #0c0e10; border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: gtff-george 3s ease-in-out infinite;
}
.scn-george-taken-from-factory .master-hand {
  position: absolute; bottom: 25%; left: 55%; width: 20px; height: 16px; background: #1a1c1e; border-radius: 40% 40% 30% 30%; transform: rotate(20deg); animation: gtff-hand 4s ease-in-out infinite alternate;
}
.scn-george-taken-from-factory .chain {
  position: absolute; bottom: 20%; left: 48%; width: 4px; height: 30px; background: #3a4046; border-radius: 2px; box-shadow: 0 4px 0 #4a5056, 0 8px 0 #3a4046; animation: gtff-chain 1.5s steps(2) infinite;
}
.scn-george-taken-from-factory .dust-particles {
  position: absolute; top: 30%; left: 20%; width: 6px; height: 6px; background: rgba(200,200,200,.15); border-radius: 50%; box-shadow: 40px 20px 0 rgba(200,200,200,.1), 80px -10px 0 rgba(200,200,200,.12), 120px 30px 0 rgba(200,200,200,.08); animation: gtff-dust 12s linear infinite;
}
.scn-george-taken-from-factory .floor-shadow {
  position: absolute; bottom: 0; left: 10%; width: 80%; height: 15%; background: linear-gradient(180deg, rgba(0,0,0,.5) 0%, transparent 100%); animation: gtff-floor 5s ease-in-out infinite alternate;
}
@keyframes gtff-bg { 0% { background-position: 0 0 } 100% { background-position: 100px 0 } }
@keyframes gtff-window { 0% { opacity: .6 } 50% { opacity: .9 } 100% { opacity: .7 } }
@keyframes gtff-george { 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 gtff-hand { 0% { transform: rotate(20deg) translateX(0) } 100% { transform: rotate(15deg) translateX(3px) } }
@keyframes gtff-chain { 0% { opacity: .8; transform: translateY(0) } 100% { opacity: .6; transform: translateY(4px) } }
@keyframes gtff-dust { 0% { transform: translate(0, 0) scale(1) } 100% { transform: translate(-30px, -40px) scale(1.5) } }
@keyframes gtff-floor { 0% { opacity: .3 } 50% { opacity: .5 } 100% { opacity: .4 } }

.scn-kind-manufacturer-advises {
  background: linear-gradient(180deg, #1c1816 0%, #2a2420 40%, #3a3028 100%),
              radial-gradient(ellipse at 50% 70%, #4a3820 0%, transparent 50%);
}
.scn-kind-manufacturer-advises .wall {
  position: absolute; inset: 0; background: linear-gradient(90deg, #1c1816 0%, #2a2420 50%, #1c1816 100%); animation: kmad-wall 10s ease-in-out infinite alternate;
}
.scn-kind-manufacturer-advises .candle {
  position: absolute; bottom: 30%; left: 50%; width: 8px; height: 24px; background: linear-gradient(180deg, #f0e0d0 0%, #c0a080 100%); border-radius: 10% 10% 20% 20%; transform: translateX(-50%); animation: kmad-candle 3s ease-in-out infinite alternate;
}
.scn-kind-manufacturer-advises .candle-glow {
  position: absolute; bottom: 30%; left: 50%; width: 30px; height: 40px; transform: translate(-50%, -20%); background: radial-gradient(circle, #f0c070 0%, rgba(240,192,112,.3) 50%, transparent 80%); border-radius: 50%; box-shadow: 0 0 40px 15px rgba(200,140,60,.4); animation: kmad-glow 2s ease-in-out infinite alternate;
}
.scn-kind-manufacturer-advises .manufacturer-head {
  position: absolute; bottom: 18%; left: 44%; width: 28px; height: 30px; background: #1e1a16; border-radius: 50% 50% 40% 40%; transform-origin: bottom center; animation: kmad-manu-head 4s ease-in-out infinite;
}
.scn-kind-manufacturer-advises .george-head {
  position: absolute; bottom: 18%; left: 54%; width: 26px; height: 28px; background: #161210; border-radius: 50% 50% 40% 40%; transform-origin: bottom center; animation: kmad-george-head 3s ease-in-out infinite alternate;
}
.scn-kind-manufacturer-advises .tyrant-shadow {
  position: absolute; bottom: 0; left: 20%; width: 60%; height: 40%; background: linear-gradient(180deg, rgba(0,0,0,.5) 0%, transparent 100%); animation: kmad-tyrant 7s ease-in-out infinite;
}
.scn-kind-manufacturer-advises .whisper-lines {
  position: absolute; top: 40%; left: 48%; width: 10px; height: 2px; background: rgba(200,180,160,.15); border-radius: 1px; box-shadow: 0 8px 0 rgba(200,180,160,.1), 0 -8px 0 rgba(200,180,160,.12); animation: kmad-whisper 1.5s ease-in-out infinite;
}
@keyframes kmad-wall { 0% { opacity: .95 } 50% { opacity: 1 } 100% { opacity: .9 } }
@keyframes kmad-candle { 0% { transform: translateX(-50%) scaleY(1) } 100% { transform: translateX(-50%) scaleY(1.05) } }
@keyframes kmad-glow { 0% { opacity: .7; transform: translate(-50%, -20%) scale(1) } 50% { opacity: 1; transform: translate(-50%, -20%) scale(1.1) } 100% { opacity: .8; transform: translate(-50%, -20%) scale(1) } }
@keyframes kmad-manu-head { 0% { transform: translateX(0) rotate(0) } 33% { transform: translateX(-2px) rotate(-3deg) } 66% { transform: translateX(2px) rotate(2deg) } 100% { transform: translateX(0) rotate(0) } }
@keyframes kmad-george-head { 0% { transform: translateX(0) translateY(0) } 100% { transform: translateX(3px) translateY(-2px) } }
@keyframes kmad-tyrant { 0% { opacity: .4 } 50% { opacity: .6 } 100% { opacity: .3 } }
@keyframes kmad-whisper { 0% { opacity: .1; transform: translateX(0) } 50% { opacity: .3; transform: translateX(4px) } 100% { opacity: .1; transform: translateX(0) } }

.scn-eliza-and-george-married {
  background: linear-gradient(180deg, #f5efe0 0%, #e8dcc8 50%, #d4c4a8 100%),
              radial-gradient(ellipse at 50% 60%, #fff8e0 0%, transparent 70%);
}
.scn-eliza-and-george-married .sunlit-window {
  position: absolute; top: 10%; left: 30%; width: 60px; height: 80px; background: linear-gradient(180deg, #f0e8d8 0%, #e0d4c0 100%); border: 4px solid #c0b098; border-radius: 6px; box-shadow: inset 0 0 30px rgba(255,220,140,.3); animation: egm-window 6s ease-in-out infinite alternate;
}
.scn-eliza-and-george-married .curtains {
  position: absolute; top: 10%; left: 28%; width: 64px; height: 84px; background: linear-gradient(90deg, #e0d0b8 0%, #c8b89a 50%, #e0d0b8 100%); border-radius: 4px; filter: blur(1px); animation: egm-curtains 8s ease-in-out infinite;
}
.scn-eliza-and-george-married .george-figure {
  position: absolute; bottom: 15%; left: 38%; width: 40px; height: 80px; background: linear-gradient(180deg, #3a3028 0%, #2a221a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: egm-george 4s ease-in-out infinite;
}
.scn-eliza-and-george-married .eliza-figure {
  position: absolute; bottom: 15%; left: 52%; width: 36px; height: 74px; background: linear-gradient(180deg, #c8b898 0%, #b0a080 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: egm-eliza 4.5s ease-in-out infinite;
}
.scn-eliza-and-george-married .embrace-arms {
  position: absolute; bottom: 35%; left: 44%; width: 20px; height: 10px; background: #2a221a; border-radius: 50% 50% 0 0; transform: rotate(-20deg); animation: egm-arms 3s ease-in-out infinite alternate;
}
.scn-eliza-and-george-married .floor-flowers {
  position: absolute; bottom: 8%; left: 25%; width: 50%; height: 8%; background: radial-gradient(circle, #d4a080 0%, transparent 60%), radial-gradient(circle at 30% 50%, #c09070 0%, transparent 50%), radial-gradient(circle at 70% 30%, #b88060 0%, transparent 40%); animation: egm-flowers 10s linear infinite;
}
.scn-eliza-and-george-married .sunbeam {
  position: absolute; top: 10%; left: 32%; width: 20px; height: 80px; background: linear-gradient(180deg, rgba(255,240,200,.3) 0%, transparent 100%); transform: rotate(10deg); filter: blur(3px); animation: egm-sunbeam 5s ease-in-out infinite alternate;
}
@keyframes egm-window { 0% { opacity: .9; box-shadow: inset 0 0 20px rgba(255,220,140,.2) } 50% { opacity: 1; box-shadow: inset 0 0 40px rgba(255,220,140,.4) } 100% { opacity: .95; box-shadow: inset 0 0 25px rgba(255,220,140,.3) } }
@keyframes egm-curtains { 0% { transform: translateX(0) } 50% { transform: translateX(-2px) } 100% { transform: translateX(0) } }
@keyframes egm-george { 0% { transform: translateY(0) rotate(0) } 25% { transform: translateY(-2px) rotate(2deg) } 50% { transform: translateY(0) rotate(0) } 75% { transform: translateY(-1px) rotate(-2deg) } 100% { transform: translateY(0) rotate(0) } }
@keyframes egm-eliza { 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 egm-arms { 0% { transform: rotate(-20deg) scaleX(1) } 100% { transform: rotate(-25deg) scaleX(1.1) } }
@keyframes egm-flowers { 0% { background-position: 0 0 } 100% { background-position: 20px 0 } }
@keyframes egm-sunbeam { 0% { opacity: .4; transform: rotate(8deg) } 50% { opacity: .7; transform: rotate(12deg) } 100% { opacity: .5; transform: rotate(10deg) } }

/* Scene: eliza-flees-into-night */
.scn-eliza-flees-into-night {
  background: linear-gradient(180deg, #0a0a2e 0%, #1a1a4a 40%, #2a2a5e 70%, #1a1a3a 100%), 
              radial-gradient(ellipse at 30% 80%, #1a1a5e 0%, transparent 60%);
}
.scn-eliza-flees-into-night .efn-sky { position:absolute; inset:0; background: linear-gradient(180deg, #101040 0%, #0a0a2e 100%); animation: efn-sky 15s ease-in-out infinite alternate; }
.scn-eliza-flees-into-night .efn-moon { position:absolute; top:8%; right:20%; width:50px; height:50px; background: radial-gradient(circle, #d0d8f0 0%, #a0a8d0 70%); border-radius:50%; box-shadow: 0 0 40px 12px rgba(160,168,208,.4); animation: efn-moon 10s ease-in-out infinite; }
.scn-eliza-flees-into-night .efn-star { position:absolute; width:4px; height:4px; background: #d0d8f0; border-radius:50%; box-shadow: 0 0 6px 2px rgba(200,208,240,.6); }
.scn-eliza-flees-into-night .efn-star.star-a { top:12%; left:25%; animation: efn-twinkle 3s ease-in-out infinite; }
.scn-eliza-flees-into-night .efn-star.star-b { top:18%; left:55%; animation: efn-twinkle 5s ease-in-out infinite 1s; }
.scn-eliza-flees-into-night .efn-star.star-c { top:25%; left:10%; width:3px; height:3px; animation: efn-twinkle 4s ease-in-out infinite 2s; }
.scn-eliza-flees-into-night .efn-hills { position:absolute; bottom:25%; left:0; right:0; height:30%; background: linear-gradient(180deg, #1a2a1a 0%, #0a1a0a 100%); border-radius: 50% 40% 0 0 / 30% 40% 0 0; box-shadow: inset 0 10px 20px rgba(0,0,0,.5); animation: efn-hills 20s ease-in-out infinite alternate; }
.scn-eliza-flees-into-night .efn-tree { position:absolute; bottom:30%; left:45%; width:30px; height:70px; background: linear-gradient(180deg, #1a2a0a 0%, #0a1a00 100%); border-radius: 0 0 20% 20% / 0 0 40% 40%; transform-origin: bottom; animation: efn-sway 6s ease-in-out infinite; }
.scn-eliza-flees-into-night .efn-figure { position:absolute; bottom:25%; left:20%; width:16px; height:40px; background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%); border-radius: 40% 40% 20% 20% / 60% 60% 30% 30%; transform-origin: bottom center; animation: efn-run 2s steps(2) infinite; }
@keyframes efn-sky { 0% { opacity: 0.8; } 50% { opacity: 1; } 100% { opacity: 0.7; } }
@keyframes efn-moon { 0% { transform: translateY(0) scale(1); box-shadow: 0 0 40px 12px rgba(160,168,208,.4); } 50% { transform: translateY(-4px) scale(1.05); box-shadow: 0 0 50px 16px rgba(160,168,208,.5); } 100% { transform: translateY(0) scale(1); } }
@keyframes efn-twinkle { 0% { opacity: 0.4; transform: scale(1); } 50% { opacity: 1; transform: scale(1.3); } 100% { opacity: 0.4; transform: scale(1); } }
@keyframes efn-hills { 0% { transform: translateY(0); } 50% { transform: translateY(-2px); } 100% { transform: translateY(0); } }
@keyframes efn-sway { 0%,100% { transform: rotate(0deg); } 50% { transform: rotate(2deg); } }
@keyframes efn-run { 0% { transform: translateX(0) translateY(0) rotate(-2deg); } 50% { transform: translateX(8px) translateY(-1px) rotate(2deg); } 100% { transform: translateX(16px) translateY(0) rotate(-2deg); } }

/* Scene: maternal-love-overcomes-all */
.scn-maternal-love-overcomes-all {
  background: linear-gradient(180deg, #0a0a2e 0%, #151540 50%, #0a0a2e 100%), radial-gradient(ellipse at 50% 60%, #202060 0%, transparent 70%);
}
.scn-maternal-love-overcomes-all .mlo-sky { position:absolute; inset:0; background: linear-gradient(180deg, #0e0e3e 0%, #06062a 100%); animation: mlo-sky 20s ease-in-out infinite alternate; }
.scn-maternal-love-overcomes-all .mlo-moon { position:absolute; top:10%; left:60%; width:45px; height:45px; background: radial-gradient(circle, #c0c8e0 0%, #9098c0 70%); border-radius:50%; box-shadow: 0 0 30px 8px rgba(144,152,192,.5); animation: mlo-moon 12s ease-in-out infinite; }
.scn-maternal-love-overcomes-all .mlo-star { position:absolute; top:15%; left:20%; width:3px; height:3px; background: #d0d8f0; border-radius:50%; box-shadow: 0 0 8px 3px rgba(200,208,240,.6); animation: mlo-twinkle 4s ease-in-out infinite; }
.scn-maternal-love-overcomes-all .mlo-halo { position:absolute; bottom:30%; left:50%; width:120px; height:120px; transform:translate(-50%,0); background: radial-gradient(circle, rgba(200,200,240,.2) 0%, transparent 70%); border-radius:50%; box-shadow: 0 0 60px 30px rgba(160,168,208,.2); animation: mlo-halo 8s ease-in-out infinite alternate; }
.scn-maternal-love-overcomes-all .mlo-mother { position:absolute; bottom:22%; left:44%; width:40px; height:80px; background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%); border-radius: 50% 40% 20% 20% / 60% 50% 30% 30%; transform-origin: bottom; animation: mlo-embrace 6s ease-in-out infinite; }
.scn-maternal-love-overcomes-all .mlo-child { position:absolute; bottom:22%; left:48%; width:25px; height:45px; background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%); border-radius: 50% 40% 30% 30% / 50% 60% 30% 30%; transform-origin: bottom; animation: mlo-embrace-child 6s ease-in-out infinite; }
.scn-maternal-love-overcomes-all .mlo-arm { position:absolute; bottom:45%; left:43%; width:28px; height:10px; background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%); border-radius: 40% 20% 20% 40% / 50% 30% 30% 50%; transform-origin: right center; animation: mlo-arm 6s ease-in-out infinite; }
@keyframes mlo-sky { 0% { opacity: 0.7; } 50% { opacity: 1; } 100% { opacity: 0.8; } }
@keyframes mlo-moon { 0% { transform: translateY(0) scale(1); } 50% { transform: translateY(-3px) scale(1.03); } 100% { transform: translateY(0) scale(1); } }
@keyframes mlo-twinkle { 0% { opacity: 0.3; } 50% { opacity: 1; transform: scale(1.4); } 100% { opacity: 0.3; } }
@keyframes mlo-halo { 0% { opacity: 0.3; transform: translate(-50%,0) scale(1); } 100% { opacity: 0.7; transform: translate(-50%,0) scale(1.1); } }
@keyframes mlo-embrace { 0% { transform: rotate(0deg) translateY(0); } 50% { transform: rotate(-2deg) translateY(-2px); } 100% { transform: rotate(0deg) translateY(0); } }
@keyframes mlo-embrace-child { 0% { transform: rotate(0deg) translateY(0); } 50% { transform: rotate(1deg) translateY(-1px); } 100% { transform: rotate(0deg) translateY(0); } }
@keyframes mlo-arm { 0% { transform: rotate(0deg) translateY(0); } 50% { transform: rotate(-5deg) translateY(-2px); } 100% { transform: rotate(0deg) translateY(0); } }

/* Scene: elizas-desperate-journey */
.scn-elizas-desperate-journey {
  background: linear-gradient(180deg, #0a0a2e 0%, #1a1a4a 30%, #0e0e32 70%, #1a1a3a 100%), radial-gradient(ellipse at 50% 100%, #0a0a2e 0%, transparent 60%);
}
.scn-elizas-desperate-journey .edj-sky { position:absolute; inset:0 0 40% 0; background: linear-gradient(180deg, #0e0e32 0%, #06062a 100%); animation: edj-sky 18s ease-in-out infinite alternate; }
.scn-elizas-desperate-journey .edj-moon { position:absolute; top:12%; left:15%; width:40px; height:40px; background: radial-gradient(circle, #c8d0e8 0%, #98a0c8 70%); border-radius:50%; box-shadow: 0 0 30px 10px rgba(152,160,200,.5); animation: edj-moon 14s ease-in-out infinite; }
.scn-elizas-desperate-journey .edj-cloud { position:absolute; width:120px; height:20px; background: linear-gradient(180deg, rgba(200,208,240,.3) 0%, transparent 100%); border-radius:50%; filter:blur(5px); }
.scn-elizas-desperate-journey .edj-cloud.cloud-a { top:18%; left:-10%; animation: edj-drift-a 40s linear infinite; }
.scn-elizas-desperate-journey .edj-cloud.cloud-b { top:25%; left:60%; width:80px; height:14px; animation: edj-drift-b 50s linear infinite reverse; }
.scn-elizas-desperate-journey .edj-road { position:absolute; bottom:20%; left:0; right:0; height:12%; background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%); border-radius: 30% 30% 0 0 / 100% 100% 0 0; box-shadow: inset 0 6px 12px rgba(0,0,0,.6); transform: perspective(300px) rotateX(20deg); animation: edj-road 10s ease-in-out infinite alternate; }
.scn-elizas-desperate-journey .edj-figure { position:absolute; bottom:25%; left:30%; width:18px; height:45px; background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%); border-radius: 45% 40% 20% 20% / 60% 60% 30% 30%; transform-origin: bottom center; animation: edj-run 1s steps(2) infinite; }
.scn-elizas-desperate-journey .edj-tree { position:absolute; bottom:30%; right:20%; width:25px; height:60px; background: linear-gradient(180deg, #1a2a0a 0%, #0a1a00 100%); border-radius: 0 0 20% 20% / 0 0 40% 40%; transform-origin: bottom; animation: edj-sway 7s ease-in-out infinite; }
@keyframes edj-sky { 0% { opacity: 0.7; } 50% { opacity: 1; } 100% { opacity: 0.8; } }
@keyframes edj-moon { 0% { transform: translateY(0) scale(1); } 50% { transform: translateY(-4px) scale(1.05); box-shadow: 0 0 35px 12px rgba(152,160,200,.5); } 100% { transform: translateY(0) scale(1); } }
@keyframes edj-drift-a { 0% { transform: translateX(-100px); } 100% { transform: translateX(120vw); } }
@keyframes edj-drift-b { 0% { transform: translateX(0); } 100% { transform: translateX(-100vw); } }
@keyframes edj-road { 0% { transform: perspective(300px) rotateX(20deg) translateY(0); } 50% { transform: perspective(300px) rotateX(20deg) translateY(-3px); } 100% { transform: perspective(300px) rotateX(20deg) translateY(0); } }
@keyframes edj-run { 0% { transform: translateX(0) translateY(0) rotate(-3deg); } 50% { transform: translateX(10px) translateY(-1px) rotate(3deg); } 100% { transform: translateX(20px) translateY(0) rotate(-3deg); } }
@keyframes edj-sway { 0%,100% { transform: rotate(0deg); } 50% { transform: rotate(2deg); } }

/* Scene: child-asks-reassurance */
.scn-child-asks-reassurance {
  background: linear-gradient(180deg, #0e0e2e 0%, #1a1a44 40%, #0a0a2a 100%), radial-gradient(ellipse at 50% 50%, #1a1a4a 0%, transparent 70%);
}
.scn-child-asks-reassurance .car-wall { position:absolute; inset:0; background: linear-gradient(180deg, #14142e 0%, #0c0c22 100%); animation: car-wall 12s ease-in-out infinite alternate; }
.scn-child-asks-reassurance .car-window { position:absolute; top:10%; left:30%; width:40%; height:50%; background: linear-gradient(180deg, #181848 0%, #0e0e32 100%); border: 6px solid #1a1a2e; border-radius:10% / 8%; box-shadow: inset 0 0 20px rgba(0,0,0,.5); }
.scn-child-asks-reassurance .car-moon { position:absolute; top:15%; left:45%; width:35px; height:35px; background: radial-gradient(circle, #c0c8e0 0%, #9098c0 70%); border-radius:50%; box-shadow: 0 0 25px 8px rgba(144,152,192,.4); animation: car-moon 11s ease-in-out infinite; }
.scn-child-asks-reassurance .car-star { position:absolute; top:20%; left:60%; width:3px; height:3px; background: #d0d8f0; border-radius:50%; box-shadow: 0 0 6px 2px rgba(208,216,240,.5); animation: car-twinkle 5s ease-in-out infinite; }
.scn-child-asks-reassurance .car-mother { position:absolute; bottom:10%; left:35%; width:50px; height:90px; background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%); border-radius: 50% 40% 20% 20% / 60% 50% 30% 30%; transform-origin: bottom; animation: car-hold 7s ease-in-out infinite; }
.scn-child-asks-reassurance .car-child { position:absolute; bottom:10%; left:42%; width:30px; height:50px; background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%); border-radius: 45% 40% 30% 30% / 55% 60% 30% 30%; transform-origin: bottom; animation: car-nestle 7s ease-in-out infinite; }
.scn-child-asks-reassurance .car-beam { position:absolute; top:18%; left:44%; width:8px; height:30px; background: linear-gradient(180deg, rgba(200,208,240,.4) 0%, transparent 100%); transform-origin: top; animation: car-beam 8s ease-in-out infinite alternate; }
@keyframes car-wall { 0% { opacity: 0.8; } 50% { opacity: 1; } 100% { opacity: 0.9; } }
@keyframes car-moon { 0% { transform: translateY(0) scale(1); } 50% { transform: translateY(-3px) scale(1.03); } 100% { transform: translateY(0) scale(1); } }
@keyframes car-twinkle { 0% { opacity: 0.3; } 50% { opacity: 1; transform: scale(1.3); } 100% { opacity: 0.3; } }
@keyframes car-hold { 0% { transform: rotate(0deg) translateY(0); } 50% { transform: rotate(-2deg) translateY(-2px); } 100% { transform: rotate(0deg) translateY(0); } }
@keyframes car-nestle { 0% { transform: rotate(0deg) translateY(0); } 50% { transform: rotate(1deg) translateY(-1px); } 100% { transform: rotate(0deg) translateY(0); } }
@keyframes car-beam { 0% { opacity: 0.3; transform: scaleY(1); } 50% { opacity: 0.7; transform: scaleY(1.2); } 100% { opacity: 0.3; transform: scaleY(1); } }

/* Scene 1 - elizas-happiness-and-loss (calm, bright-interior) */
.scn-elizas-happiness-and-loss {
  background:
    linear-gradient(180deg, #fdfbf7 0%, #f2e8d0 60%, #d9c9a8 100%),
    radial-gradient(ellipse at 50% 20%, #fffcf0 0%, #e8dcc4 100%);
}
.scn-elizas-happiness-and-loss .wall {
  position: absolute; inset: 0 0 20% 0;
  background: linear-gradient(90deg, #d4c8ae 0%, #e6dcc4 50%, #d4c8ae 100%);
  border-bottom: 2px solid #b8a88a;
}
.scn-elizas-happiness-and-loss .window {
  position: absolute; top: 8%; left: 50%; width: 120px; height: 160px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #c8e0f0 0%, #eaf4fa 60%, #b0c8d8 100%);
  border: 6px solid #b59d7a;
  border-radius: 4px;
  box-shadow: inset 0 0 30px rgba(255,255,200,0.5), 0 0 40px rgba(255,255,180,0.2);
  animation: ehl-window 10s ease-in-out infinite alternate;
}
.scn-elizas-happiness-and-loss .curtain-l {
  position: absolute; top: 6%; left: 34%; width: 50px; height: 170px;
  background: linear-gradient(180deg, #f0e8d8 0%, #dcccb0 100%);
  border-radius: 0 0 30px 0;
  transform-origin: top left;
  animation: ehl-curtain 8s ease-in-out infinite alternate;
  filter: drop-shadow(3px 5px 6px rgba(0,0,0,0.1));
}
.scn-elizas-happiness-and-loss .curtain-r {
  position: absolute; top: 6%; right: 34%; width: 50px; height: 170px;
  background: linear-gradient(180deg, #f0e8d8 0%, #dcccb0 100%);
  border-radius: 0 0 0 30px;
  transform-origin: top right;
  animation: ehl-curtain 8s ease-in-out infinite alternate-reverse;
  filter: drop-shadow(-3px 5px 6px rgba(0,0,0,0.1));
}
@keyframes ehl-curtain {
  0% { transform: rotate(0deg) scaleY(1); }
  50% { transform: rotate(3deg) scaleY(1.02); }
  100% { transform: rotate(0deg) scaleY(0.98); }
}
.scn-elizas-happiness-and-loss .figure-mother {
  position: absolute; bottom: 22%; left: 50%; width: 28px; height: 60px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #a19a8c 0%, #7a7265 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  animation: ehl-mother 6s ease-in-out infinite;
}
@keyframes ehl-mother {
  0% { transform: translateX(-50%) translateY(0) rotate(0deg); }
  50% { transform: translateX(-50%) translateY(-2px) rotate(0.5deg); }
  100% { transform: translateX(-50%) translateY(0) rotate(0deg); }
}
.scn-elizas-happiness-and-loss .child-left {
  position: absolute; bottom: 24%; left: 42%; width: 16px; height: 24px;
  background: linear-gradient(180deg, #e8d4b0 0%, #c9b28c 100%);
  border-radius: 50% 50% 30% 30% / 70% 70% 30% 30%;
  animation: ehl-child 7s ease-in-out infinite;
}
.scn-elizas-happiness-and-loss .child-right {
  position: absolute; bottom: 24%; right: 42%; width: 16px; height: 24px;
  background: linear-gradient(180deg, #e8d4b0 0%, #c9b28c 100%);
  border-radius: 50% 50% 30% 30% / 70% 70% 30% 30%;
  animation: ehl-child 7s ease-in-out infinite 2s;
}
@keyframes ehl-child {
  0% { transform: translateY(0) scale(1); }
  50% { transform: translateY(-1px) scale(1.05); }
  100% { transform: translateY(0) scale(1); }
}
.scn-elizas-happiness-and-loss .sunbeam {
  position: absolute; top: 5%; left: 48%; width: 80px; height: 200px;
  background: linear-gradient(180deg, rgba(255,255,200,0.2) 0%, transparent 100%);
  transform: rotate(8deg);
  filter: blur(10px);
  animation: ehl-beam 12s ease-in-out infinite alternate;
}
@keyframes ehl-beam {
  0% { opacity: 0.5; transform: rotate(6deg) scaleX(1); }
  50% { opacity: 0.9; transform: rotate(10deg) scaleX(1.1); }
  100% { opacity: 0.6; transform: rotate(7deg) scaleX(0.95); }
}
@keyframes ehl-window {
  0% { opacity: 0.8; box-shadow: inset 0 0 20px rgba(255,255,200,0.3), 0 0 30px rgba(255,255,180,0.15); }
  50% { opacity: 1; box-shadow: inset 0 0 40px rgba(255,255,200,0.6), 0 0 60px rgba(255,255,180,0.3); }
  100% { opacity: 0.85; box-shadow: inset 0 0 25px rgba(255,255,200,0.4), 0 0 35px rgba(255,255,180,0.2); }
}

/* Scene 2 - manufacturer-tries-to-help (tense, dim-interior) */
.scn-manufacturer-tries-to-help {
  background:
    linear-gradient(180deg, #1e1c1a 0%, #2c2722 40%, #1b1714 100%),
    radial-gradient(ellipse at 50% 70%, #3d3530 0%, transparent 100%);
}
.scn-manufacturer-tries-to-help .room-bg {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(90deg, #2d2823 0%, #3f3730 50%, #2d2823 100%);
  border-bottom: 3px solid #4a4038;
}
.scn-manufacturer-tries-to-help .desk {
  position: absolute; bottom: 28%; left: 30%; width: 160px; height: 50px;
  background: linear-gradient(180deg, #5a4e42 0%, #3d342b 100%);
  border-radius: 6px 6px 0 0;
  box-shadow: 0 8px 16px rgba(0,0,0,0.6);
  transform: perspective(300px) rotateX(5deg);
}
.scn-manufacturer-tries-to-help .figure-manufacturer {
  position: absolute; bottom: 30%; left: 35%; width: 32px; height: 70px;
  background: linear-gradient(180deg, #4a3f33 0%, #2d241c 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  animation: mth-fig1 5s ease-in-out infinite alternate;
}
@keyframes mth-fig1 {
  0% { transform: translateX(0) rotate(-1deg); }
  50% { transform: translateX(4px) rotate(1deg); }
  100% { transform: translateX(-2px) rotate(0deg); }
}
.scn-manufacturer-tries-to-help .figure-harris {
  position: absolute; bottom: 30%; right: 30%; width: 36px; height: 66px;
  background: linear-gradient(180deg, #3a332a 0%, #1f1a15 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  animation: mth-fig2 5s ease-in-out infinite alternate 1s;
}
@keyframes mth-fig2 {
  0% { transform: translateX(0) rotate(0.5deg); }
  50% { transform: translateX(-3px) rotate(-0.5deg); }
  100% { transform: translateX(2px) rotate(0.5deg); }
}
.scn-manufacturer-tries-to-help .lamplight {
  position: absolute; top: 20%; left: 40%; width: 80px; height: 120px;
  background: radial-gradient(ellipse at 50% 0%, rgba(230,200,120,0.5) 0%, rgba(230,200,120,0.1) 60%, transparent 100%);
  filter: blur(15px);
  animation: mth-lamp 4s ease-in-out infinite alternate;
}
@keyframes mth-lamp {
  0% { opacity: 0.6; transform: scale(0.95); }
  50% { opacity: 0.9; transform: scale(1.05); }
  100% { opacity: 0.7; transform: scale(1); }
}
.scn-manufacturer-tries-to-help .shadow-l {
  position: absolute; bottom: 28%; left: 25%; width: 100px; height: 30px;
  background: linear-gradient(180deg, rgba(0,0,0,0.3), transparent);
  filter: blur(10px);
  animation: mth-shadow 4s ease-in-out infinite alternate;
}
.scn-manufacturer-tries-to-help .shadow-r {
  position: absolute; bottom: 28%; right: 20%; width: 120px; height: 25px;
  background: linear-gradient(180deg, rgba(0,0,0,0.4), transparent);
  filter: blur(12px);
  animation: mth-shadow 4s ease-in-out infinite alternate 0.5s;
}
@keyframes mth-shadow {
  0% { opacity: 0.5; transform: scaleX(1); }
  50% { opacity: 0.9; transform: scaleX(1.1); }
  100% { opacity: 0.6; transform: scaleX(0.95); }
}

/* Scene 3 - georges-last-hope-dashed (dark, dim-interior) */
.scn-georges-last-hope-dashed {
  background:
    linear-gradient(180deg, #0c0e12 0%, #15181f 40%, #0a0c10 100%),
    radial-gradient(ellipse at 50% 60%, #1a1e28 0%, transparent 100%);
}
.scn-georges-last-hope-dashed .wall-dark {
  position: absolute; inset: 0 0 25% 0;
  background: linear-gradient(90deg, #0d1018 0%, #161b24 50%, #0d1018 100%);
  border-bottom: 1px solid #2a2f3a;
}
.scn-georges-last-hope-dashed .door-closed {
  position: absolute; bottom: 25%; left: 50%; width: 70px; height: 120px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #1a1e28 0%, #0c0f16 100%);
  border: 2px solid #2f3640;
  border-radius: 4px 4px 0 0;
  box-shadow: inset 0 0 20px rgba(0,0,0,0.8);
}
.scn-georges-last-hope-dashed .figure-george {
  position: absolute; bottom: 30%; left: 50%; width: 28px; height: 64px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #1a1c22 0%, #0a0b0f 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  animation: glh-george 6s ease-in-out infinite;
}
@keyframes glh-george {
  0% { transform: translateX(-50%) translateY(0) rotate(-2deg); }
  30% { transform: translateX(-50%) translateY(-3px) rotate(1deg); }
  70% { transform: translateX(-50%) translateY(-1px) rotate(-1deg); }
  100% { transform: translateX(-50%) translateY(0) rotate(0deg); }
}
.scn-georges-last-hope-dashed .floor-line {
  position: absolute; bottom: 22%; left: 0; right: 0; height: 6px;
  background: linear-gradient(90deg, transparent, #2a303a 30%, transparent);
  filter: blur(2px);
}
.scn-georges-last-hope-dashed .single-light {
  position: absolute; top: 10%; left: 45%; width: 12px; height: 12px;
  background: radial-gradient(circle, #c8b060 0%, transparent 70%);
  border-radius: 50%;
  box-shadow: 0 0 40px 15px rgba(200,176,96,0.3);
  animation: glh-light 4s ease-in-out infinite alternate;
}
@keyframes glh-light {
  0% { opacity: 0.3; transform: scale(0.8); box-shadow: 0 0 30px 10px rgba(200,176,96,0.2); }
  50% { opacity: 0.6; transform: scale(1.1); box-shadow: 0 0 50px 20px rgba(200,176,96,0.4); }
  100% { opacity: 0.4; transform: scale(0.9); box-shadow: 0 0 35px 12px rgba(200,176,96,0.25); }
}
.scn-georges-last-hope-dashed .gloom {
  position: absolute; inset: 0;
  background: radial-gradient(ellipse at 50% 30%, transparent 30%, rgba(0,0,0,0.45) 80%);
  pointer-events: none;
  animation: glh-gloom 8s ease-in-out infinite alternate;
}
@keyframes glh-gloom {
  0% { opacity: 0.5; }
  50% { opacity: 0.8; }
  100% { opacity: 0.6; }
}

/* Scene 4 - eliza-meets-george (warm, sunlit) */
.scn-eliza-meets-george {
  background:
    linear-gradient(180deg, #f8e7c8 0%, #d9c7a3 50%, #b8a88a 100%),
    radial-gradient(ellipse at 50% 20%, #fef3e0 0%, #e6d2af 100%);
}
.scn-eliza-meets-george .verandah-sky {
  position: absolute; top: 0; left: 0; right: 0; bottom: 40%;
  background: linear-gradient(180deg, #a2c4e0 0%, #d4e2f0 60%, #e8e8e0 100%);
  animation: emg-sky 15s ease-in-out infinite alternate;
}
@keyframes emg-sky {
  0% { opacity: 0.9; }
  50% { opacity: 1; }
  100% { opacity: 0.95; }
}
.scn-eliza-meets-george .verandah-rail {
  position: absolute; bottom: 40%; left: 0; right: 0; height: 12px;
  background: linear-gradient(90deg, #6a5c4a 0%, #8c7a62 30%, #6a5c4a 70%, #8c7a62 100%);
  box-shadow: 0 4px 10px rgba(0,0,0,0.2);
}
.scn-eliza-meets-george .figure-eliza {
  position: absolute; bottom: 30%; left: 42%; width: 28px; height: 60px;
  background: linear-gradient(180deg, #c9b48a 0%, #a08b66 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  animation: emg-eliza 6s ease-in-out infinite;
}
@keyframes emg-eliza {
  0% { transform: translateY(0) rotate(-1deg); }
  50% { transform: translateY(-2px) rotate(1deg); }
  100% { transform: translateY(0) rotate(0deg); }
}
.scn-eliza-meets-george .figure-george {
  position: absolute; bottom: 30%; left: 50%; width: 30px; height: 62px;
  background: linear-gradient(180deg, #8a7660 0%, #5d4d3a 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  animation: emg-george 6s ease-in-out infinite 0.5s;
}
@keyframes emg-george {
  0% { transform: translateX(0) translateY(0) rotate(0deg); }
  50% { transform: translateX(2px) translateY(-1px) rotate(0.5deg); }
  100% { transform: translateX(0) translateY(0) rotate(-0.5deg); }
}
.scn-eliza-meets-george .sunburst {
  position: absolute; top: 5%; left: 30%; width: 200px; height: 200px;
  background: radial-gradient(ellipse at 30% 30%, rgba(255,240,180,0.4) 0%, transparent 70%);
  filter: blur(25px);
  animation: emg-sun 12s ease-in-out infinite alternate;
}
@keyframes emg-sun {
  0% { opacity: 0.4; transform: scale(0.9) translateY(0); }
  50% { opacity: 0.7; transform: scale(1.1) translateY(-5px); }
  100% { opacity: 0.5; transform: scale(1) translateY(2px); }
}
.scn-eliza-meets-george .flowerpot {
  position: absolute; bottom: 33%; right: 25%; width: 24px; height: 40px;
  background: linear-gradient(180deg, #b08050 0%, #8c603a 100%);
  border-radius: 4px 4px 8px 8px;
  animation: emg-pot 8s ease-in-out infinite;
}
@keyframes emg-pot {
  0% { transform: translateY(0) rotate(-2deg); }
  50% { transform: translateY(-2px) rotate(2deg); }
  100% { transform: translateY(0) rotate(-1deg); }
}
.scn-eliza-meets-george .shadow-ground {
  position: absolute; bottom: 25%; left: 30%; right: 30%; height: 20px;
  background: linear-gradient(180deg, rgba(0,0,0,0.15) 0%, transparent 100%);
  filter: blur(8px);
  animation: emg-shadow 7s ease-in-out infinite alternate;
}
@keyframes emg-shadow {
  0% { opacity: 0.3; transform: scaleX(0.95); }
  50% { opacity: 0.6; transform: scaleX(1.05); }
  100% { opacity: 0.4; transform: scaleX(1); }
}

.scn-george-details-plan {
  background:
    linear-gradient(180deg, #2a3a4a 0%, #4a5a3a 40%, #6a7a4a 60%, #8a9a5a 100%),
    radial-gradient(ellipse at 70% 30%, #f0e080 0%, transparent 60%);
}
.scn-george-details-plan .wall-bg { position:absolute; inset:0; background: linear-gradient(135deg, #b8a88a 0%, #8a7a5a 50%, #6a5a3a 100%); }
.scn-george-details-plan .wall-shadow { position:absolute; inset:0; background: linear-gradient(90deg, rgba(0,0,0,.25) 0%, transparent 30%, transparent 70%, rgba(0,0,0,.35) 100%); animation: shdp-wall 14s ease-in-out infinite alternate; }
.scn-george-details-plan .window-frame { position:absolute; top:12%; right:18%; width:100px; height:130px; background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%); border-radius:8px; box-shadow: inset 0 0 0 4px #4a3a2a, 0 4px 12px rgba(0,0,0,.4); }
.scn-george-details-plan .sunbeam { position:absolute; top:12%; right:18%; width:100px; height:130px; background: linear-gradient(135deg, rgba(255,240,180,.5) 0%, rgba(255,255,220,.2) 40%, transparent 70%); clip-path: polygon(0 0, 100% 0, 80% 100%, 20% 100%); filter: blur(2px); animation: shdp-beam 6s ease-in-out infinite alternate; }
.scn-george-details-plan .table { position:absolute; bottom:12%; left:20%; right:20%; height:14%; background: linear-gradient(180deg, #6a4a2a 0%, #3a2a1a 100%); border-radius:4px; box-shadow: 0 3px 8px rgba(0,0,0,.4); }
.scn-george-details-plan .figure-george { position:absolute; bottom:16%; left:30%; width:34px; height:70px; background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 60%, #0a0a1a 100%); border-radius: 40% 40% 30% 30% / 50% 50% 35% 35%; transform-origin: bottom center; animation: shdp-george 4s ease-in-out infinite; }
.scn-george-details-plan .figure-eliza { position:absolute; bottom:18%; right:28%; width:30px; height:60px; background: linear-gradient(180deg, #3a2a3a 0%, #2a1a2a 60%, #1a0a1a 100%); border-radius: 45% 45% 35% 35% / 55% 55% 40% 40%; transform-origin: bottom center; animation: shdp-eliza 5s ease-in-out infinite; }
.scn-george-details-plan .paper { position:absolute; bottom:20%; left:44%; width:28px; height:36px; background: linear-gradient(135deg, #f0e8d0 0%, #d0c8a0 100%); border-radius:2px; box-shadow: 0 2px 6px rgba(0,0,0,.3); transform: rotate(-8deg); animation: shdp-paper 3s ease-in-out infinite; }
.scn-george-details-plan .dust { position:absolute; top:20%; left:40%; width:6px; height:6px; background: rgba(240,230,200,.6); border-radius:50%; filter: blur(1px); box-shadow: 40px 30px 0 0 rgba(240,230,200,.4), 80px 60px 0 -2px rgba(240,230,200,.3); animation: shdp-dust 22s linear infinite; }
@keyframes shdp-wall { 0% { opacity:.4 } 50% { opacity:.7 } 100% { opacity:.5 } }
@keyframes shdp-beam { 0% { opacity:.4; transform: rotate(-2deg) } 50% { opacity:.7; transform: rotate(0deg) } 100% { opacity:.5; transform: rotate(2deg) } }
@keyframes shdp-george { 0% { transform: translateX(0) translateY(0) rotate(-2deg) } 30% { transform: translateX(6px) translateY(-2px) rotate(0deg) } 60% { transform: translateX(-4px) translateY(-1px) rotate(1deg) } 100% { transform: translateX(0) translateY(0) rotate(-2deg) } }
@keyframes shdp-eliza { 0% { transform: translateX(0) translateY(0) rotate(1deg) } 40% { transform: translateX(-5px) translateY(-1px) rotate(-1deg) } 80% { transform: translateX(3px) translateY(0) rotate(0deg) } 100% { transform: translateX(0) translateY(0) rotate(1deg) } }
@keyframes shdp-paper { 0% { transform: rotate(-8deg) translateY(0) } 50% { transform: rotate(-5deg) translateY(-2px) } 100% { transform: rotate(-8deg) translateY(0) } }
@keyframes shdp-dust { 0% { transform: translateY(0) scale(1); opacity:.6 } 50% { transform: translateY(-20px) scale(1.4); opacity:.3 } 100% { transform: translateY(-40px) scale(.8); opacity:.5 } }

.scn-husband-and-wife-part {
  background:
    linear-gradient(180deg, #1a1a2a 0%, #2a2a3a 40%, #4a3a2a 70%, #6a5a3a 100%),
    radial-gradient(ellipse at 50% 30%, #c0a060 0%, transparent 70%);
}
.scn-husband-and-wife-part .doorway { position:absolute; top:10%; left:35%; right:35%; bottom:20%; background: linear-gradient(180deg, #2a1a1a 0%, #1a0a0a 100%); border-radius: 40% 40% 8% 8% / 60% 60% 8% 8%; box-shadow: inset 0 0 40px rgba(0,0,0,.6); }
.scn-husband-and-wife-part .door-light { position:absolute; top:12%; left:38%; right:38%; bottom:22%; background: radial-gradient(ellipse at 50% 30%, #f0d080 0%, #c09850 50%, transparent 80%); animation: hwp-light 7s ease-in-out infinite alternate; }
.scn-husband-and-wife-part .silhouette-george { position:absolute; bottom:22%; left:40%; width:28px; height:64px; background: #0a0a0a; border-radius: 35% 35% 25% 25% / 45% 45% 30% 30%; box-shadow: -4px 0 12px rgba(0,0,0,.5); transform-origin: bottom center; animation: hwp-george 8s ease-in-out infinite; }
.scn-husband-and-wife-part .silhouette-eliza { position:absolute; bottom:24%; left:52%; width:24px; height:54px; background: #0a0a0a; border-radius: 40% 40% 30% 30% / 50% 50% 35% 35%; box-shadow: 4px 0 12px rgba(0,0,0,.5); transform-origin: bottom center; animation: hwp-eliza 9s ease-in-out infinite; }
.scn-husband-and-wife-part .shadow-floor { position:absolute; bottom:18%; left:35%; right:35%; height:6%; background: linear-gradient(180deg, rgba(0,0,0,.3) 0%, transparent 100%); border-radius:50%; animation: hwp-floor 8s ease-in-out infinite alternate; }
.scn-husband-and-wife-part .tear-drop { position:absolute; bottom:42%; left:46%; width:4px; height:6px; background: radial-gradient(circle, rgba(180,200,240,.6) 0%, transparent 100%); border-radius:50%; animation: hwp-tear 4s ease-in-out infinite; }
.scn-husband-and-wife-part .dust-mote { position:absolute; top:30%; right:20%; width:4px; height:4px; background: rgba(200,180,140,.4); border-radius:50%; filter: blur(1px); box-shadow: -60px 40px 0 -1px rgba(200,180,140,.3), 30px 80px 0 0 rgba(200,180,140,.2); animation: hwp-mote 30s linear infinite; }
@keyframes hwp-light { 0% { opacity:.6; transform: scale(1) } 50% { opacity:1; transform: scale(1.05) } 100% { opacity:.7; transform: scale(.98) } }
@keyframes hwp-george { 0% { transform: translateX(0) translateY(0) rotate(0deg) } 20% { transform: translateX(-4px) translateY(-2px) rotate(-3deg) } 50% { transform: translateX(2px) translateY(0) rotate(1deg) } 80% { transform: translateX(-2px) translateY(-1px) rotate(-1deg) } 100% { transform: translateX(0) translateY(0) rotate(0deg) } }
@keyframes hwp-eliza { 0% { transform: translateX(0) translateY(0) rotate(0deg) } 30% { transform: translateX(3px) translateY(-3px) rotate(2deg) } 60% { transform: translateX(-3px) translateY(-1px) rotate(-2deg) } 100% { transform: translateX(0) translateY(0) rotate(0deg) } }
@keyframes hwp-floor { 0% { transform: scaleX(1) } 50% { transform: scaleX(1.1) } 100% { transform: scaleX(.95) } }
@keyframes hwp-tear { 0% { transform: translateY(0) scale(1); opacity:.8 } 30% { transform: translateY(-4px) scale(1.2); opacity:1 } 60% { transform: translateY(2px) scale(.9); opacity:.6 } 100% { transform: translateY(0) scale(1); opacity:.8 } }
@keyframes hwp-mote { 0% { transform: translateY(0) translateX(0) } 50% { transform: translateY(-30px) translateX(20px) } 100% { transform: translateY(0) translateX(0) } }

.scn-uncle-toms-cabin-exterior {
  background:
    linear-gradient(180deg, #6a5a4a 0%, #8a7a5a 30%, #b0a080 60%, #d0c0a0 100%),
    radial-gradient(ellipse at 50% 0%, #d0c0a0 0%, transparent 60%);
}
.scn-uncle-toms-cabin-exterior .sky-evening { position:absolute; inset:0 0 50% 0; background: linear-gradient(180deg, #e0c080 0%, #c09850 40%, #806030 100%); border-radius:0 0 40% 40% / 0 0 20% 20%; animation: utce-sky 16s ease-in-out infinite alternate; }
.scn-uncle-toms-cabin-exterior .cabin-wall { position:absolute; bottom:20%; left:28%; right:28%; height:35%; background: linear-gradient(180deg, #8a6a4a 0%, #6a4a2a 100%); border-radius:4px; box-shadow: inset 0 0 20px rgba(0,0,0,.2), 0 4px 12px rgba(0,0,0,.3); }
.scn-uncle-toms-cabin-exterior .cabin-roof { position:absolute; bottom:52%; left:26%; right:26%; height:10%; background: linear-gradient(180deg, #5a3a2a 0%, #3a2a1a 100%); clip-path: polygon(5% 100%, 50% 0%, 95% 100%); animation: utce-roof 12s ease-in-out infinite; }
.scn-uncle-toms-cabin-exterior .cabin-door { position:absolute; bottom:20%; left:44%; right:44%; height:24%; background: linear-gradient(180deg, #4a2a1a 0%, #2a1a0a 100%); border-radius:4px 4px 0 0; box-shadow: inset 0 0 8px rgba(0,0,0,.4); animation: utce-door 10s ease-in-out infinite alternate; }
.scn-uncle-toms-cabin-exterior .garden-patch { position:absolute; bottom:10%; left:20%; right:20%; height:12%; background: linear-gradient(180deg, #4a5a3a 0%, #3a4a2a 100%); border-radius:30% 30% 0 0; animation: utce-garden 18s ease-in-out infinite; }
.scn-uncle-toms-cabin-exterior .tree-silhouette { position:absolute; bottom:30%; left:8%; width:50px; height:80px; background: linear-gradient(180deg, #2a3a2a 0%, #1a2a1a 60%, #0a1a0a 100%); border-radius: 40% 50% 30% 40% / 60% 70% 30% 40%; animation: utce-tree 20s ease-in-out infinite alternate; }
.scn-uncle-toms-cabin-exterior .fence { position:absolute; bottom:18%; left:15%; right:15%; height:2px; background: #4a3a2a; box-shadow: 0 10px 0 #4a3a2a, 0 20px 0 #4a3a2a, 0 30px 0 #4a3a2a; border-radius:2px; animation: utce-fence 25s ease-in-out infinite; }
.scn-uncle-toms-cabin-exterior .warm-glow { position:absolute; bottom:30%; left:44%; right:44%; height:20%; background: radial-gradient(ellipse at 50% 50%, rgba(240,200,120,.5) 0%, transparent 70%); animation: utce-glow 5s ease-in-out infinite alternate; }
@keyframes utce-sky { 0% { opacity:.8 } 50% { opacity:1 } 100% { opacity:.7 } }
@keyframes utce-roof { 0% { transform: translateY(0) } 50% { transform: translateY(-2px) } 100% { transform: translateY(0) } }
@keyframes utce-door { 0% { opacity:.9; transform: scaleX(1) } 50% { opacity:1; transform: scaleX(1.02) } 100% { opacity:.95; transform: scaleX(1) } }
@keyframes utce-garden { 0% { transform: translateY(0) } 50% { transform: translateY(-1px) } 100% { transform: translateY(0) } }
@keyframes utce-tree { 0% { transform: rotate(-2deg) } 50% { transform: rotate(2deg) } 100% { transform: rotate(-2deg) } }
@keyframes utce-fence { 0% { opacity:.7 } 50% { opacity:1 } 100% { opacity:.8 } }
@keyframes utce-glow { 0% { opacity:.5; transform: scale(1) } 50% { opacity:.8; transform: scale(1.1) } 100% { opacity:.6; transform: scale(1) } }

.scn-aunt-chloe-cooking {
  background:
    linear-gradient(180deg, #1a0a0a 0%, #2a1a0a 40%, #3a1a0a 70%, #4a2a0a 100%),
    radial-gradient(ellipse at 50% 60%, #c05020 0%, transparent 70%);
}
.scn-aunt-chloe-cooking .room-shadow { position:absolute; inset:0; background: linear-gradient(135deg, rgba(0,0,0,.6) 0%, transparent 40%, transparent 60%, rgba(0,0,0,.4) 100%); animation: acc-room 14s ease-in-out infinite alternate; }
.scn-aunt-chloe-cooking .fireplace { position:absolute; bottom:20%; left:30%; right:30%; height:40%; background: linear-gradient(180deg, #3a1a0a 0%, #1a0a0a 100%); border-radius: 20% 20% 8% 8% / 40% 40% 8% 8%; box-shadow: inset 0 0 40px rgba(0,0,0,.6); }
.scn-aunt-chloe-cooking .fire-glow { position:absolute; bottom:30%; left:38%; right:38%; height:20%; background: radial-gradient(ellipse at 50% 50%, #e08020 0%, #c05010 40%, transparent 70%); animation: acc-fire 3s ease-in-out infinite alternate; }
.scn-aunt-chloe-cooking .aunt-chloe { position:absolute; bottom:22%; left:44%; width:32px; height:52px; background: linear-gradient(180deg, #3a2a1a 0%, #2a1a0a 60%, #1a0a0a 100%); border-radius: 50% 50% 30% 30% / 55% 55% 35% 35%; transform-origin: bottom center; box-shadow: 0 2px 8px rgba(0,0,0,.4); animation: acc-chloe 5s ease-in-out infinite; }
.scn-aunt-chloe-cooking .cooking-pot { position:absolute; bottom:26%; left:52%; width:20px; height:16px; background: linear-gradient(180deg, #2a1a0a 0%, #1a0a0a 100%); border-radius: 0 0 30% 30%; box-shadow: inset 0 0 4px rgba(0,0,0,.5), 0 0 12px rgba(200,80,20,.4); animation: acc-pot 4s ease-in-out infinite; }
.scn-aunt-chloe-cooking .table-shelf { position:absolute; bottom:28%; left:40%; right:30%; height:2px; background: #4a2a1a; box-shadow: 0 12px 0 #4a2a1a; border-radius:2px; }
.scn-aunt-chloe-cooking .steam { position:absolute; bottom:40%; left:50%; width:12px; height:20px; background: radial-gradient(ellipse at 50% 50%, rgba(200,180,160,.3) 0%, transparent 70%); border-radius:50%; filter: blur(3px); animation: acc-steam 6s ease-in-out infinite; }
.scn-aunt-chloe-cooking .sparks { position:absolute; bottom:40%; left:42%; width:2px; height:2px; background: #e0a020; border-radius:50%; box-shadow: -8px -6px 0 0 #e08020, 12px -10px 0 0 #f0b040, -4px -14px 0 0 #d07010; animation: acc-sparks 2s ease-in-out infinite alternate; }
@keyframes acc-room { 0% { opacity:.6 } 50% { opacity:.9 } 100% { opacity:.7 } }
@keyframes acc-fire { 0% { opacity:.6; transform: scale(1) } 50% { opacity:1; transform: scale(1.08) } 100% { opacity:.7; transform: scale(.95) } }
@keyframes acc-chloe { 0% { transform: translateX(0) translateY(0) rotate(-1deg) } 30% { transform: translateX(-2px) translateY(-1px) rotate(0deg) } 60% { transform: translateX(2px) translateY(0) rotate(1deg) } 100% { transform: translateX(0) translateY(0) rotate(-1deg) } }
@keyframes acc-pot { 0% { transform: translateY(0) } 50% { transform: translateY(-1px) } 100% { transform: translateY(0) } }
@keyframes acc-steam { 0% { transform: translateY(0) scale(1); opacity:.4 } 50% { transform: translateY(-8px) scale(1.5); opacity:.2 } 100% { transform: translateY(-16px) scale(2); opacity:0 } }
@keyframes acc-sparks { 0% { transform: translateY(0) scale(1) } 100% { transform: translateY(-4px) scale(1.3) } }

/* Scene: george-questions-authority (tense + sunlit) */
.scn-george-questions-authority {
  background: 
    linear-gradient(180deg, #ffd699 0%, #fecb7e 30%, #f4b15a 70%, #d18a3a 100%),
    radial-gradient(ellipse at 70% 0%, #fff4e0 0%, transparent 70%);
}
.scn-george-questions-authority .sky {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(180deg, #ffeac2 0%, #ffd699 100%);
  animation: gqa-sky 14s ease-in-out infinite alternate;
}
.scn-george-questions-authority .ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 40%;
  background: linear-gradient(180deg, #b8823a 0%, #8a5a2a 60%, #5a3a1a 100%);
  border-radius: 20% 30% 0 0 / 40% 50% 0 0;
  box-shadow: inset 0 10px 30px rgba(0,0,0,.5);
  animation: gqa-ground 20s ease-in-out infinite alternate;
}
.scn-george-questions-authority .sun {
  position: absolute; top: 15%; right: 25%; width: 50px; height: 50px;
  background: radial-gradient(circle, #fffbe0 0%, #ffd699 60%, transparent 100%);
  border-radius: 50%;
  box-shadow: 0 0 60px 20px #ffd699, 0 0 120px 40px rgba(255,214,150,.4);
  animation: gqa-sun 8s ease-in-out infinite alternate;
}
.scn-george-questions-authority .figure-george {
  position: absolute; bottom: 30%; left: 40%; width: 28px; height: 64px;
  background: linear-gradient(180deg, #2a1a0a 0%, #1a0e05 100%);
  border-radius: 45% 45% 40% 40% / 70% 70% 40% 40%;
  transform-origin: bottom center;
  box-shadow: -4px 0 8px rgba(0,0,0,.6);
  animation: gqa-figure 5s ease-in-out infinite alternate;
}
.scn-george-questions-authority .shadow {
  position: absolute; bottom: 28%; left: 36%; width: 60px; height: 12px;
  background: rgba(0,0,0,.4);
  border-radius: 50%;
  filter: blur(3px);
  animation: gqa-shadow 5s ease-in-out infinite alternate;
}
.scn-george-questions-authority .fence {
  position: absolute; bottom: 36%; left: 10%; right: 10%; height: 8px;
  background: linear-gradient(90deg, transparent 10%, #6a4a2a 15%, #6a4a2a 18%, transparent 22%, #6a4a2a 30%, #6a4a2a 33%, transparent 38%, #6a4a2a 45%, #6a4a2a 48%, transparent 52%);
  box-shadow: 0 -6px 0 #4a2a1a, 0 -12px 0 #6a4a2a;
  animation: gqa-fence 12s linear infinite;
}
@keyframes gqa-sky { 0% { opacity: .85; filter: saturate(1.1); } 50% { opacity: 1; filter: saturate(1.2); } 100% { opacity: .9; filter: saturate(1.0); } }
@keyframes gqa-ground { 0% { transform: translateY(0) rotate(-.3deg); } 50% { transform: translateY(-2px) rotate(.3deg); } 100% { transform: translateY(0) rotate(0); } }
@keyframes gqa-sun { 0% { transform: scale(1); opacity: .95; } 50% { transform: scale(1.08); opacity: 1; } 100% { transform: scale(.95); opacity: .9; } }
@keyframes gqa-figure { 0% { transform: translateX(0) translateY(0) rotate(-2deg); } 50% { transform: translateX(3px) translateY(-2px) rotate(2deg); } 100% { transform: translateX(0) translateY(0) rotate(-1deg); } }
@keyframes gqa-shadow { 0% { transform: scale(1); opacity: .5; } 50% { transform: scale(1.2); opacity: .7; } 100% { transform: scale(.95); opacity: .4; } }
@keyframes gqa-fence { 0% { transform: translateX(0); } 100% { transform: translateX(-20px); } }

/* Scene: eliza-fears-for-george (tense + sunlit) */
.scn-eliza-fears-for-george {
  background: 
    linear-gradient(180deg, #fdeac2 0%, #f5d4a0 40%, #d4a86a 100%),
    radial-gradient(ellipse at 50% 0%, #fff4e0 0%, transparent 60%);
}
.scn-eliza-fears-for-george .wall-bg {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, #e6cfb0 0%, #c9a87a 100%);
  box-shadow: inset 0 0 40px rgba(0,0,0,.2);
  animation: eff-wall 10s ease-in-out infinite alternate;
}
.scn-eliza-fears-for-george .window {
  position: absolute; top: 20%; left: 50%; width: 80px; height: 110px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #fff8e0 0%, #ffe0b0 100%);
  border: 6px solid #6a4a2a;
  border-radius: 4px;
  box-shadow: inset 0 0 30px rgba(255,255,200,.3);
  animation: eff-window 12s ease-in-out infinite alternate;
}
.scn-eliza-fears-for-george .light-beam {
  position: absolute; top: 20%; left: 45%; width: 120px; height: 140px;
  background: linear-gradient(180deg, rgba(255,250,200,.25) 0%, transparent 60%);
  transform: skewX(-10deg);
  filter: blur(4px);
  animation: eff-beam 8s ease-in-out infinite alternate;
}
.scn-eliza-fears-for-george .figure-george {
  position: absolute; bottom: 25%; left: 35%; width: 30px; height: 68px;
  background: linear-gradient(180deg, #2a1a0a 0%, #1a0e05 100%);
  border-radius: 45% 45% 40% 40% / 70% 70% 40% 40%;
  transform-origin: bottom center;
  box-shadow: -6px 0 10px rgba(0,0,0,.6);
  animation: eff-george 4s ease-in-out infinite alternate;
}
.scn-eliza-fears-for-george .figure-eliza {
  position: absolute; bottom: 25%; left: 50%; width: 22px; height: 56px;
  background: linear-gradient(180deg, #5a3a2a 0%, #3a1a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  box-shadow: 4px 0 6px rgba(0,0,0,.4);
  animation: eff-eliza 3s ease-in-out infinite alternate;
}
.scn-eliza-fears-for-george .shadow-floor {
  position: absolute; bottom: 22%; left: 30%; right: 10%; height: 10px;
  background: rgba(0,0,0,.3);
  border-radius: 50%;
  filter: blur(5px);
  animation: eff-shadow 4s ease-in-out infinite alternate;
}
@keyframes eff-wall { 0% { opacity: .9; } 50% { opacity: 1; } 100% { opacity: .95; } }
@keyframes eff-window { 0% { filter: brightness(1); } 50% { filter: brightness(1.15); } 100% { filter: brightness(1.05); } }
@keyframes eff-beam { 0% { opacity: .3; transform: skewX(-10deg) translateX(0); } 50% { opacity: .6; transform: skewX(-12deg) translateX(2px); } 100% { opacity: .4; transform: skewX(-8deg) translateX(-1px); } }
@keyframes eff-george { 0% { transform: translateX(0) rotate(-1deg); } 50% { transform: translateX(4px) rotate(2deg); } 100% { transform: translateX(0) rotate(-2deg); } }
@keyframes eff-eliza { 0% { transform: translateX(0) translateY(0) rotate(1deg); } 50% { transform: translateX(-3px) translateY(-1px) rotate(-1deg); } 100% { transform: translateX(0) translateY(0) rotate(0); } }
@keyframes eff-shadow { 0% { transform: scale(1); opacity: .5; } 50% { transform: scale(1.15); opacity: .7; } 100% { transform: scale(.95); opacity: .4; } }

/* Scene: george-recounts-whipping (dark mood + sunlit) */
.scn-george-recounts-whipping {
  background: 
    linear-gradient(180deg, #ffe0a0 0%, #f5c67a 30%, #c89350 70%, #8a5a2a 100%),
    radial-gradient(ellipse at 30% 20%, #fff4d0 0%, transparent 70%);
}
.scn-george-recounts-whipping .bg-field {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, #e6d4a0 0%, #c9a870 50%, #a08040 100%);
  box-shadow: inset 0 0 60px rgba(0,0,0,.4);
  animation: grw-field 25s ease-in-out infinite alternate;
}
.scn-george-recounts-whipping .horse {
  position: absolute; bottom: 30%; left: 20%; width: 50px; height: 40px;
  background: linear-gradient(180deg, #5a3a1a 0%, #3a2210 100%);
  border-radius: 40% 30% 40% 40% / 60% 50% 40% 40%;
  transform: skewX(-5deg);
  box-shadow: -4px 0 10px rgba(0,0,0,.5);
  animation: grw-horse 6s ease-in-out infinite alternate;
}
.scn-george-recounts-whipping .figure-tom {
  position: absolute; bottom: 28%; left: 55%; width: 24px; height: 58px;
  background: linear-gradient(180deg, #1a1a0e 0%, #0a0a05 100%);
  border-radius: 40% 40% 35% 35% / 65% 65% 40% 40%;
  transform-origin: bottom center;
  box-shadow: 0 0 8px rgba(0,0,0,.7);
  animation: grw-tom 4s ease-in-out infinite alternate;
}
.scn-george-recounts-whipping .whip {
  position: absolute; bottom: 33%; left: 60%; width: 60px; height: 4px;
  background: linear-gradient(90deg, #4a2a1a 0%, #6a3a2a 50%, transparent 100%);
  border-radius: 2px;
  transform-origin: left center;
  box-shadow: 0 1px 2px rgba(0,0,0,.5);
  animation: grw-whip 2s ease-in-out infinite;
}
.scn-george-recounts-whipping .figure-george-memory {
  position: absolute; bottom: 28%; left: 38%; width: 26px; height: 60px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0e05 100%);
  border-radius: 45% 45% 40% 40% / 70% 70% 40% 40%;
  transform-origin: bottom center;
  box-shadow: -6px 0 12px rgba(0,0,0,.6);
  animation: grw-george 5s ease-in-out infinite alternate;
}
.scn-george-recounts-whipping .dust {
  position: absolute; bottom: 25%; left: 40%; right: 30%; height: 20px;
  background: radial-gradient(ellipse at 50% 50%, rgba(200,170,120,.5) 0%, transparent 70%);
  filter: blur(6px);
  animation: grw-dust 10s ease-in-out infinite;
}
@keyframes grw-field { 0% { filter: brightness(.85) contrast(1.1); } 50% { filter: brightness(1) contrast(1); } 100% { filter: brightness(.9) contrast(1.2); } }
@keyframes grw-horse { 0% { transform: translateX(0) rotate(-2deg); } 50% { transform: translateX(2px) rotate(2deg); } 100% { transform: translateX(-1px) rotate(-1deg); } }
@keyframes grw-tom { 0% { transform: translateX(0) rotate(0); } 50% { transform: translateX(5px) rotate(3deg); } 100% { transform: translateX(0) rotate(-1deg); } }
@keyframes grw-whip { 0% { transform: rotate(-20deg); opacity: .8; } 25% { transform: rotate(60deg); opacity: 1; } 50% { transform: rotate(-10deg); opacity: .7; } 75% { transform: rotate(45deg); opacity: .9; } 100% { transform: rotate(-20deg); opacity: .8; } }
@keyframes grw-george { 0% { transform: translateX(0) translateY(0) rotate(-2deg); } 50% { transform: translateX(-3px) translateY(-2px) rotate(2deg); } 100% { transform: translateX(0) translateY(0) rotate(-1deg); } }
@keyframes grw-dust { 0% { opacity: .2; transform: scale(1) translateY(0); } 50% { opacity: .4; transform: scale(1.3) translateY(-4px); } 100% { opacity: .15; transform: scale(.9) translateY(2px); } }

/* Scene: eliza-christian-resignation (calm + sunlit) */
.scn-eliza-christian-resignation {
  background: 
    linear-gradient(180deg, #ffeac2 0%, #f5d4a0 40%, #d4a86a 100%),
    radial-gradient(ellipse at 50% 30%, #fff8e0 0%, transparent 60%);
}
.scn-eliza-christian-resignation .bg-room {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, #e6d0b8 0%, #c9a87a 60%, #a08050 100%);
  box-shadow: inset 0 0 30px rgba(0,0,0,.15);
  animation: ecr-room 15s ease-in-out infinite alternate;
}
.scn-eliza-christian-resignation .window-arch {
  position: absolute; top: 15%; left: 50%; width: 100px; height: 130px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #fff8e0 0%, #ffe0b0 60%, #fcc88a 100%);
  border-radius: 50% 50% 10% 10% / 60% 60% 10% 10%;
  border: 8px solid #6a4a2a;
  box-shadow: inset 0 0 40px rgba(255,255,200,.4);
  animation: ecr-window 18s ease-in-out infinite alternate;
}
.scn-eliza-christian-resignation .figure-eliza-seated {
  position: absolute; bottom: 22%; left: 45%; width: 24px; height: 50px;
  background: linear-gradient(180deg, #5a3a2a 0%, #3a1a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  box-shadow: 2px 0 6px rgba(0,0,0,.3);
  animation: ecr-eliza 6s ease-in-out infinite alternate;
}
.scn-eliza-christian-resignation .bible {
  position: absolute; bottom: 18%; left: 48%; width: 16px; height: 22px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0e05 100%);
  border-radius: 2px;
  box-shadow: 2px 2px 4px rgba(0,0,0,.4);
  animation: ecr-bible 8s ease-in-out infinite alternate;
}
.scn-eliza-christian-resignation .light-glow {
  position: absolute; top: 10%; left: 40%; width: 120px; height: 120px;
  background: radial-gradient(circle, rgba(255,240,200,.35) 0%, transparent 70%);
  filter: blur(10px);
  animation: ecr-glow 12s ease-in-out infinite alternate;
}
@keyframes ecr-room { 0% { filter: brightness(1); } 50% { filter: brightness(1.05); } 100% { filter: brightness(1.02); } }
@keyframes ecr-window { 0% { box-shadow: inset 0 0 40px rgba(255,255,200,.3); } 50% { box-shadow: inset 0 0 60px rgba(255,255,200,.6); } 100% { box-shadow: inset 0 0 40px rgba(255,255,200,.35); } }
@keyframes ecr-eliza { 0% { transform: translateX(0) translateY(0) rotate(0); } 50% { transform: translateX(1px) translateY(-1px) rotate(1deg); } 100% { transform: translateX(0) translateY(0) rotate(-.5deg); } }
@keyframes ecr-bible { 0% { transform: rotate(-1deg); } 50% { transform: rotate(2deg); } 100% { transform: rotate(0); } }
@keyframes ecr-glow { 0% { opacity: .5; transform: scale(1); } 50% { opacity: .8; transform: scale(1.1); } 100% { opacity: .6; transform: scale(.95); } }

.scn-cassys-prayer {
  background: linear-gradient(180deg, #f5d6a0 0%, #cba06a 30%, #7a5230 100%),
              radial-gradient(ellipse at 50% 20%, rgba(255,230,180,0.6) 0%, transparent 60%);
}
.scn-cassys-prayer .bg { position:absolute; inset:0; background: linear-gradient(180deg, #e8c88a 0%, #b88850 60%, #6a3e20 100%); animation: cp-sky 12s ease-in-out infinite alternate; }
.scn-cassys-prayer .window-frame { position:absolute; top:10%; left:30%; width:40%; height:60%; border: 6px solid #4a2a10; border-radius: 4px; background: transparent; box-shadow: inset 0 0 30px rgba(200,170,100,0.3); }
.scn-cassys-prayer .light-ray { position:absolute; top:5%; left:32%; width:36%; height:80%; background: linear-gradient(135deg, rgba(255,240,200,0.5) 0%, transparent 70%); clip-path: polygon(0 0, 100% 0, 70% 100%, 30% 100%); animation: cp-ray 4s ease-in-out infinite alternate; }
.scn-cassys-prayer .ray-1 { opacity:0.7; animation-delay: 0s; }
.scn-cassys-prayer .ray-2 { opacity:0.4; animation-delay: 1.5s; clip-path: polygon(10% 0, 90% 0, 60% 100%, 40% 100%); }
.scn-cassys-prayer .figure { position:absolute; bottom:15%; left:43%; width:14%; height:55%; background: linear-gradient(180deg, #2a1a0a 0%, #1a0e04 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: cp-figure 6s ease-in-out infinite; }
.scn-cassys-prayer .hands { position:absolute; bottom:45%; left:47%; width:6%; height:8%; background: #1a0e04; border-radius: 30% 30% 20% 20%; transform-origin: bottom center; animation: cp-hands 3s ease-in-out infinite alternate; }
.scn-cassys-prayer .shadow { position:absolute; bottom:10%; left:35%; width:30%; height:8%; background: radial-gradient(ellipse at center, rgba(0,0,0,0.4) 0%, transparent 70%); animation: cp-shadow 6s ease-in-out infinite; }
@keyframes cp-sky { 0% { opacity:.7 } 50% { opacity:1 } 100% { opacity:.6 } }
@keyframes cp-ray { 0% { transform: translateX(0) scaleX(1); opacity:.5 } 50% { transform: translateX(5px) scaleX(1.1); opacity:.8 } 100% { transform: translateX(-2px) scaleX(0.95); opacity:.6 } }
@keyframes cp-figure { 0% { transform: translateY(0) rotate(0) } 20% { transform: translateY(-4px) rotate(2deg) } 40% { transform: translateY(-1px) rotate(-1deg) } 60% { transform: translateY(-5px) rotate(3deg) } 80% { transform: translateY(-2px) rotate(-2deg) } 100% { transform: translateY(0) rotate(0) } }
@keyframes cp-hands { 0% { transform: translateY(0) rotate(-5deg) } 50% { transform: translateY(-6px) rotate(5deg) } 100% { transform: translateY(0) rotate(-5deg) } }
@keyframes cp-shadow { 0% { opacity:.3; transform: scaleX(1) } 50% { opacity:.5; transform: scaleX(1.1) } 100% { opacity:.3; transform: scaleX(1) } }

.scn-cassys-despair {
  background: linear-gradient(180deg, #d4b080 0%, #a07850 30%, #604020 100%),
              radial-gradient(ellipse at 50% 30%, rgba(240,200,150,0.5) 0%, transparent 70%);
}
.scn-cassys-despair .bg { position:absolute; inset:0; background: linear-gradient(180deg, #cfaa6a 0%, #8a6030 60%, #4a2a10 100%); animation: cd-sky 15s ease-in-out infinite alternate; }
.scn-cassys-despair .sunbeam { position:absolute; top:10%; left:20%; width:60%; height:70%; background: linear-gradient(135deg, rgba(255,220,160,0.4) 0%, transparent 60%); clip-path: polygon(0 0, 100% 0, 80% 100%, 20% 100%); animation: cd-beam 5s ease-in-out infinite alternate; }
.scn-cassys-despair .figure-cassy { position:absolute; bottom:15%; left:30%; width:20%; height:55%; background: linear-gradient(180deg, #2a1a0a 0%, #1a0e04 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: cd-cassy 7s ease-in-out infinite; }
.scn-cassys-despair .figure-em { position:absolute; bottom:15%; left:50%; width:18%; height:50%; background: linear-gradient(180deg, #3a2a1a 0%, #1a0e04 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: cd-em 7s ease-in-out infinite 1s; }
.scn-cassys-despair .embrace { position:absolute; bottom:30%; left:38%; width:24%; height:15%; background: #1a0e04; border-radius: 40% 40% 30% 30%; transform-origin: center; animation: cd-embrace 4s ease-in-out infinite alternate; }
.scn-cassys-despair .tear { position:absolute; bottom:50%; left:55%; width:2%; height:3%; background: radial-gradient(circle, rgba(180,200,220,0.8) 0%, transparent 80%); border-radius: 50%; animation: cd-tear 3s ease-in-out infinite; }
@keyframes cd-sky { 0% { opacity:.8 } 50% { opacity:1 } 100% { opacity:.7 } }
@keyframes cd-beam { 0% { opacity:.3; transform: translateX(-5px) } 50% { opacity:.7; transform: translateX(5px) } 100% { opacity:.4; transform: translateX(-3px) } }
@keyframes cd-cassy { 0%,100% { transform: translateY(0) rotate(0) } 25% { transform: translateY(-3px) rotate(2deg) } 50% { transform: translateY(0) rotate(-1deg) } 75% { transform: translateY(-4px) rotate(1deg) } }
@keyframes cd-em { 0%,100% { transform: translateY(0) rotate(0) } 25% { transform: translateY(-2px) rotate(-2deg) } 50% { transform: translateY(0) rotate(1deg) } 75% { transform: translateY(-3px) rotate(-1deg) } }
@keyframes cd-embrace { 0% { transform: scaleX(1) scaleY(1) } 50% { transform: scaleX(1.05) scaleY(1.02) } 100% { transform: scaleX(0.98) scaleY(0.98) } }
@keyframes cd-tear { 0% { transform: translateY(0) scale(1); opacity:.6 } 50% { transform: translateY(8px) scale(1.2); opacity:1 } 100% { transform: translateY(16px) scale(0.8); opacity:0 } }

.scn-cassy-softens {
  background: linear-gradient(180deg, #f5dbb0 0%, #d4a870 40%, #a07040 100%),
              radial-gradient(ellipse at 50% 40%, rgba(255,220,160,0.7) 0%, transparent 60%);
}
.scn-cassy-softens .bg { position:absolute; inset:0; background: linear-gradient(180deg, #e8c88a 0%, #b88850 60%, #7a4a20 100%); animation: cs-sky 10s ease-in-out infinite alternate; }
.scn-cassy-softens .warm-glow { position:absolute; top:0; left:20%; width:60%; height:80%; background: radial-gradient(ellipse at center, rgba(255,200,120,0.4) 0%, transparent 70%); animation: cs-glow 5s ease-in-out infinite alternate; }
.scn-cassy-softens .figure-cassy { position:absolute; bottom:10%; left:30%; width:22%; height:55%; background: linear-gradient(180deg, #2a1a0a 0%, #1a0e04 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: cs-cassy 8s ease-in-out infinite; }
.scn-cassy-softens .figure-em-head { position:absolute; bottom:32%; left:52%; width:10%; height:12%; background: linear-gradient(180deg, #3a2a1a 0%, #1a0e04 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: cs-emhead 4s ease-in-out infinite; }
.scn-cassy-softens .arm { position:absolute; bottom:38%; left:42%; width:18%; height:8%; background: #1a0e04; border-radius: 20% 20% 40% 40%; transform-origin: 100% 50%; animation: cs-arm 6s ease-in-out infinite; }
.scn-cassy-softens .hair-stroke { position:absolute; bottom:42%; left:56%; width:4%; height:6%; background: #1a0e04; border-radius: 50%; animation: cs-hair 3s ease-in-out infinite alternate; }
.scn-cassy-softens .tear-drop { position:absolute; bottom:46%; left:48%; width:1.5%; height:2.5%; background: radial-gradient(circle, rgba(180,200,220,0.7) 0%, transparent 80%); border-radius: 50%; animation: cs-tear 4s ease-in-out infinite; }
@keyframes cs-sky { 0% { opacity:.8 } 50% { opacity:1 } 100% { opacity:.75 } }
@keyframes cs-glow { 0% { opacity:.5; transform: scale(0.95) } 50% { opacity:.8; transform: scale(1.05) } 100% { opacity:.6; transform: scale(0.98) } }
@keyframes cs-cassy { 0% { transform: translateY(0) rotate(0) } 30% { transform: translateY(-2px) rotate(1deg) } 60% { transform: translateY(0) rotate(-1deg) } 100% { transform: translateY(-1px) rotate(0) } }
@keyframes cs-emhead { 0% { transform: translateX(0) rotate(0) } 50% { transform: translateX(3px) rotate(3deg) } 100% { transform: translateX(0) rotate(0) } }
@keyframes cs-arm { 0% { transform: rotate(0) } 30% { transform: rotate(-5deg) } 60% { transform: rotate(2deg) } 100% { transform: rotate(0) } }
@keyframes cs-hair { 0% { transform: translateX(0) scaleY(1) } 50% { transform: translateX(2px) scaleY(1.2) } 100% { transform: translateX(0) scaleY(1) } }
@keyframes cs-tear { 0% { transform: translateY(0) scale(1); opacity:.5 } 50% { transform: translateY(6px) scale(1.3); opacity:.9 } 100% { transform: translateY(12px) scale(0.7); opacity:0 } }

.scn-conversation-of-faith {
  background: linear-gradient(180deg, #fae5c0 0%, #d4a870 40%, #906040 100%),
              radial-gradient(ellipse at 50% 20%, rgba(255,230,180,0.6) 0%, transparent 70%);
}
.scn-conversation-of-faith .bg { position:absolute; inset:0; background: linear-gradient(180deg, #f0d098 0%, #b88850 60%, #7a4a20 100%); animation: cf-sky 12s ease-in-out infinite alternate; }
.scn-conversation-of-faith .horizon { position:absolute; bottom:25%; left:0; right:0; height:12%; background: linear-gradient(180deg, #6a4a2a 0%, #3a2a10 100%); border-radius: 10% 10% 0 0 / 50% 50% 0 0; box-shadow: inset 0 4px 10px rgba(0,0,0,0.3); }
.scn-conversation-of-faith .tree { position:absolute; bottom:25%; left:60%; width:8%; height:40%; background: linear-gradient(180deg, #5a3a1a 0%, #2a1a08 100%); border-radius: 20% 20% 10% 10%; transform-origin: bottom center; animation: cf-tree 9s ease-in-out infinite; }
.scn-conversation-of-faith .figure-cassy { position:absolute; bottom:30%; left:25%; width:15%; height:45%; background: linear-gradient(180deg, #2a1a0a 0%, #1a0e04 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: cf-cassy 5s ease-in-out infinite alternate; }
.scn-conversation-of-faith .figure-em { position:absolute; bottom:30%; left:40%; width:14%; height:42%; background: linear-gradient(180deg, #3a2a1a 0%, #1a0e04 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: cf-em 5s ease-in-out infinite alternate 0.5s; }
.scn-conversation-of-faith .figure-legree { position:absolute; bottom:26%; left:55%; width:10%; height:25%; background: #1a0e04; border-radius: 30% 30% 20% 20% / 50% 50% 30% 30%; animation: cf-legree 8s ease-in-out infinite; }
.scn-conversation-of-faith .sun-ray { position:absolute; top:8%; left:10%; width:80%; height:70%; background: linear-gradient(135deg, rgba(255,240,200,0.3) 0%, transparent 60%); clip-path: polygon(0 0, 100% 0, 80% 100%, 20% 100%); animation: cf-ray 6s ease-in-out infinite alternate; }
.scn-conversation-of-faith .ray-2 { opacity:0.5; animation-delay: 2s; clip-path: polygon(5% 0, 95% 0, 70% 100%, 30% 100%); }
@keyframes cf-sky { 0% { opacity:.7 } 50% { opacity:1 } 100% { opacity:.6 } }
@keyframes cf-tree { 0% { transform: rotate(0) } 50% { transform: rotate(2deg) } 100% { transform: rotate(0) } }
@keyframes cf-cassy { 0% { transform: translateX(0) rotate(0) } 50% { transform: translateX(-3px) rotate(2deg) } 100% { transform: translateX(0) rotate(0) } }
@keyframes cf-em { 0% { transform: translateX(0) rotate(0) } 50% { transform: translateX(2px) rotate(-1deg) } 100% { transform: translateX(0) rotate(0) } }
@keyframes cf-legree { 0% { transform: translateY(0) scaleY(1) } 30% { transform: translateY(-2px) scaleY(0.98) } 60% { transform: translateY(0) scaleY(1) } 100% { transform: translateY(-1px) scaleY(0.99) } }
@keyframes cf-ray { 0% { opacity:.3; transform: translateX(-10px) } 50% { opacity:.7; transform: translateX(5px) } 100% { opacity:.4; transform: translateX(-3px) } }

/* cassys-game-with-legree */
.scn-cassys-game-with-legree { background:
  linear-gradient(180deg, #1c1628 0%, #2a1f2e 40%, #3d2a35 70%, #2a1a20 100%),
  radial-gradient(ellipse at 60% 80%, #4a2a2a 0%, transparent 60%);
}
.scn-cassys-game-with-legree .wall-back { position:absolute; inset:0 0 18% 0; background: linear-gradient(180deg, #2a1f2e 0%, #1a1220 100%); }
.scn-cassys-game-with-legree .floor { position:absolute; bottom:0; left:0; right:0; height:18%; background: linear-gradient(180deg, #2a1a20 0%, #1a0f14 100%); }
.scn-cassys-game-with-legree .door { position:absolute; bottom:18%; left:12%; width:30%; height:70%; background: linear-gradient(135deg, #3a2a30 0%, #1a1218 100%); border-radius: 4% 4% 0 0; box-shadow: inset 0 0 20px rgba(0,0,0,0.6); animation: cgl-door 6s ease-in-out infinite alternate; }
.scn-cassys-game-with-legree .table { position:absolute; bottom:18%; left:50%; width:40%; height:8%; transform: translateX(-50%); background: linear-gradient(180deg, #4a3a30 0%, #2a1a18 100%); border-radius: 6px; box-shadow: 0 4px 8px rgba(0,0,0,0.5); }
.scn-cassys-game-with-legree .candle-glow { position:absolute; bottom:32%; left:62%; width:20px; height:20px; transform: translateX(-50%); background: radial-gradient(circle at 50% 50%, #a08050 0%, #604020 40%, transparent 70%); border-radius: 50%; animation: cgl-candle 3s ease-in-out infinite alternate; }
.scn-cassys-game-with-legree .candle-body { position:absolute; bottom:28%; left:62%; width:6px; height:14px; transform: translateX(-50%); background: linear-gradient(180deg, #b09870 0%, #705840 100%); border-radius: 2px 2px 0 0; }
.scn-cassys-game-with-legree .figure-cassie { position:absolute; bottom:18%; left:40%; width:16px; height:44px; background: linear-gradient(180deg, #1a1220 0%, #0a0810 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: cgl-figure 5s ease-in-out infinite; }
.scn-cassys-game-with-legree .shadow-under-table { position:absolute; bottom:14%; left:50%; width:60%; height:4%; transform: translateX(-50%); background: rgba(0,0,0,0.6); border-radius: 50%; filter: blur(6px); animation: cgl-shadow 4s ease-in-out infinite alternate; }
@keyframes cgl-door { 0% { transform: rotateY(0deg) translateX(0); } 50% { transform: rotateY(5deg) translateX(2px); } 100% { transform: rotateY(0deg) translateX(0); } }
@keyframes cgl-candle { 0% { opacity: 0.7; transform: scale(0.9); } 50% { opacity: 1; transform: scale(1.2); } 100% { opacity: 0.8; transform: scale(1); } }
@keyframes cgl-figure { 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 cgl-shadow { 0% { opacity: 0.5; transform: scaleX(1); } 100% { opacity: 0.8; transform: scaleX(0.95); } }

/* cassys-preparations */
.scn-cassys-preparations { background:
  linear-gradient(180deg, #0a1628 0%, #182840 50%, #0a1a2a 100%),
  radial-gradient(ellipse at 80% 90%, #2a4a6a 0%, transparent 60%);
}
.scn-cassys-preparations .wall-night { position:absolute; inset:0 0 15% 0; background: linear-gradient(135deg, #0a1628 0%, #142234 100%); }
.scn-cassys-preparations .window { position:absolute; top:12%; left:10%; width:30%; height:40%; background: linear-gradient(180deg, #2a5a7a 0%, #184060 100%); border-radius: 4% 4% 0 0; border: 3px solid #182840; box-shadow: inset 0 0 30px #0a1a2a; }
.scn-cassys-preparations .moonbeam { position:absolute; top:32%; left:10%; width:40%; height:60%; background: linear-gradient(135deg, rgba(180,200,230,0.15) 0%, rgba(180,200,230,0.05) 100%); clip-path: polygon(0% 0%, 100% 0%, 80% 100%, 0% 100%); filter: blur(4px); animation: cpr-moonbeam 12s ease-in-out infinite alternate; }
.scn-cassys-preparations .table-preps { position:absolute; bottom:15%; left:55%; width:30%; height:8%; transform: translateX(-50%); background: linear-gradient(180deg, #3a4a5a 0%, #2a3a4a 100%); border-radius: 4px; box-shadow: 0 2px 6px rgba(0,0,0,0.4); }
.scn-cassys-preparations .bundle { position:absolute; bottom:22%; left:55%; width:14px; height:10px; transform: translateX(-50%); background: #3a4a5a; border-radius: 40% 60% 50% 50%; animation: cpr-bundle 8s ease-in-out infinite alternate; }
.scn-cassys-preparations .figure-cassie-stand { position:absolute; bottom:15%; left:35%; width:18px; height:48px; background: linear-gradient(180deg, #0a1628 0%, #050a14 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: cpr-figure 9s ease-in-out infinite; }
.scn-cassys-preparations .chair { position:absolute; bottom:15%; left:60%; width:16px; height:20px; background: linear-gradient(180deg, #2a3a4a 0%, #1a2a3a 100%); border-radius: 2px; transform: skewX(-5deg); animation: cpr-chair 11s ease-in-out infinite alternate; }
@keyframes cpr-moonbeam { 0% { transform: translateX(0) rotate(0deg); } 50% { transform: translateX(8px) rotate(2deg); } 100% { transform: translateX(-4px) rotate(-1deg); } }
@keyframes cpr-bundle { 0% { transform: scaleY(1); } 50% { transform: scaleY(1.08); } 100% { transform: scaleY(1); } }
@keyframes cpr-figure { 0%,100% { transform: translateY(0) rotate(0deg); } 33% { transform: translateY(-3px) rotate(1deg); } 66% { transform: translateY(-1px) rotate(-1deg); } }
@keyframes cpr-chair { 0% { transform: skewX(-5deg) translateY(0); } 50% { transform: skewX(-3deg) translateY(-2px); } 100% { transform: skewX(-6deg) translateY(0); } }

/* final-preparations */
.scn-final-preparations { background:
  linear-gradient(180deg, #2a1a30 0%, #4a3a50 40%, #5a4a4a 70%, #3a2a2a 100%),
  radial-gradient(ellipse at 40% 60%, #6a5a4a 0%, transparent 60%);
}
.scn-final-preparations .wall-dusk { position:absolute; inset:0 0 20% 0; background: linear-gradient(180deg, #2a1a30 0%, #3a2a40 100%); }
.scn-final-preparations .window-dusk { position:absolute; top:10%; right:8%; width:28%; height:40%; background: linear-gradient(180deg, #7a5a4a 0%, #4a3a2a 100%); border-radius: 4% 4% 0 0; box-shadow: inset 0 0 30px #2a1a20; animation: fpr-sky 15s ease-in-out infinite alternate; }
.scn-final-preparations .bed { position:absolute; bottom:20%; left:8%; width:50%; height:12%; background: linear-gradient(180deg, #4a3a3a 0%, #2a1a1a 100%); border-radius: 6px; box-shadow: 0 4px 12px rgba(0,0,0,0.5); }
.scn-final-preparations .figure-cassy-dusk { position:absolute; bottom:20%; left:25%; width:16px; height:42px; background: linear-gradient(180deg, #1a0a1a 0%, #0a000a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: fpr-fig1 7s ease-in-out infinite; }
.scn-final-preparations .figure-emmeline-dusk { position:absolute; bottom:20%; left:35%; width:14px; height:38px; background: linear-gradient(180deg, #2a1a2a 0%, #1a0a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: fpr-fig2 9s ease-in-out infinite; }
.scn-final-preparations .lamp-glow { position:absolute; bottom:35%; left:55%; width:20px; height:20px; background: radial-gradient(circle at 50% 50%, #a08050 0%, #604020 50%, transparent 80%); border-radius: 50%; animation: fpr-lamp 4s ease-in-out infinite alternate; }
.scn-final-preparations .rug { position:absolute; bottom:18%; left:20%; width:60%; height:4%; background: linear-gradient(90deg, #4a3a3a 0%, #3a2a2a 50%, #4a3a3a 100%); border-radius: 50%; filter: blur(2px); }
@keyframes fpr-sky { 0% { opacity: 0.6; } 50% { opacity: 0.8; } 100% { opacity: 0.5; } }
@keyframes fpr-fig1 { 0%,100% { transform: translateX(0) rotate(0deg); } 25% { transform: translateX(3px) rotate(2deg); } 50% { transform: translateX(0) rotate(-1deg); } 75% { transform: translateX(2px) rotate(1deg); } }
@keyframes fpr-fig2 { 0%,100% { transform: translateX(0) rotate(0deg); } 33% { transform: translateX(-2px) rotate(-1deg); } 66% { transform: translateX(1px) rotate(1deg); } }
@keyframes fpr-lamp { 0% { opacity: 0.7; transform: scale(0.9); filter: blur(0px); } 50% { opacity: 1; transform: scale(1.15); filter: blur(1px); } 100% { opacity: 0.8; transform: scale(1); filter: blur(0px); } }

/* escape-plan-discussed */
.scn-escape-plan-discussed { background:
  linear-gradient(180deg, #0a0a1a 0%, #2a1a2a 30%, #5a3a3a 60%, #7a5a3a 80%, #5a3a2a 100%),
  radial-gradient(ellipse at 30% 70%, #4a3a2a 0%, transparent 60%);
}
.scn-escape-plan-discussed .sky-dusk { position:absolute; inset:0 0 40% 0; background: linear-gradient(180deg, #0a0a1a 0%, #2a1a2a 30%, #5a3a3a 60%, #7a5a3a 100%); animation: epd-sky 20s ease-in-out infinite alternate; }
.scn-escape-plan-discussed .ground-dusk { position:absolute; bottom:0; left:0; right:0; height:40%; background: linear-gradient(180deg, #3a2a1a 0%, #1a0a0a 100%); }
.scn-escape-plan-discussed .back-door { position:absolute; bottom:20%; left:15%; width:20%; height:50%; background: #1a0a0a; border-radius: 4% 4% 0 0; box-shadow: inset 0 0 30px rgba(0,0,0,0.8); transform-origin: left center; animation: epd-door 8s ease-in-out infinite alternate; }
.scn-escape-plan-discussed .figure-cassy-outside { position:absolute; bottom:30%; left:30%; width:16px; height:44px; background: #0a050a; border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: epd-fig1 6s ease-in-out infinite; }
.scn-escape-plan-discussed .figure-emmeline-outside { position:absolute; bottom:30%; left:40%; width:14px; height:40px; background: #0a050a; border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: epd-fig2 7s ease-in-out infinite; }
.scn-escape-plan-discussed .path { position:absolute; bottom:30%; left:20%; width:70%; height:6%; background: linear-gradient(90deg, #2a1a0a 0%, #1a0a00 100%); clip-path: polygon(10% 0%, 90% 0%, 100% 100%, 0% 100%); transform: skewX(-20deg); animation: epd-path 14s ease-in-out infinite alternate; }
.scn-escape-plan-discussed .tree-left { position:absolute; bottom:30%; left:5%; width:8%; height:60%; background: linear-gradient(180deg, #1a0a0a 0%, #0a0000 100%); border-radius: 40% 40% 0 0; filter: blur(2px); animation: epd-tree 30s linear infinite alternate; }
.scn-escape-plan-discussed .tree-right { position:absolute; bottom:35%; right:10%; width:6%; height:50%; background: linear-gradient(180deg, #1a0a0a 0%, #0a0000 100%); border-radius: 30% 30% 0 0; filter: blur(3px); animation: epd-tree 35s linear infinite alternate-reverse; }
@keyframes epd-sky { 0% { opacity: 0.7; } 50% { opacity: 1; } 100% { opacity: 0.6; } }
@keyframes epd-door { 0% { transform: rotateY(0deg); } 50% { transform: rotateY(-10deg); } 100% { transform: rotateY(0deg); } }
@keyframes epd-fig1 { 0%,100% { transform: translateX(0) rotate(0deg); } 25% { transform: translateX(4px) rotate(2deg); } 50% { transform: translateX(0) rotate(-1deg); } 75% { transform: translateX(3px) rotate(1deg); } }
@keyframes epd-fig2 { 0%,100% { transform: translateX(0) rotate(0deg); } 33% { transform: translateX(-3px) rotate(-1deg); } 66% { transform: translateX(2px) rotate(1deg); } }
@keyframes epd-path { 0% { transform: skewX(-20deg) translateX(0); } 50% { transform: skewX(-18deg) translateX(4px); } 100% { transform: skewX(-22deg) translateX(-2px); } }
@keyframes epd-tree { 0% { transform: scaleY(1); } 50% { transform: scaleY(1.02); } 100% { transform: scaleY(0.98); } }

/* eliza-asks-for-assurance - tense bright interior with anxious movement */
.scn-eliza-asks-for-assurance {
  background:
    linear-gradient(180deg, #f5deb3 0%, #d2b48c 40%, #a0522d 100%),
    radial-gradient(ellipse at 70% 30%, #fff8dc 0%, transparent 60%);
}
.scn-eliza-asks-for-assurance .wall {
  position: absolute; inset: 0; background: linear-gradient(135deg, #e8d5b7 0%, #c4a882 100%);
  animation: ea1-wall 8s ease-in-out infinite alternate;
}
.scn-eliza-asks-for-assurance .mirror {
  position: absolute; top: 15%; left: 60%; width: 80px; height: 110px;
  background: linear-gradient(180deg, #dcdcdc 0%, #b0b0b0 100%);
  border: 6px solid #8b7355; border-radius: 4px; box-shadow: 0 4px 12px rgba(0,0,0,0.5);
  animation: ea1-mirror 6s ease-in-out infinite alternate;
}
.scn-eliza-asks-for-assurance .figure {
  position: absolute; bottom: 25%; left: 45%; width: 50px; height: 120px;
  background: linear-gradient(180deg, #c8553d 0%, #a0461a 40%, #5e1a1d 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: ea1-figure 3s ease-in-out infinite;
}
.scn-eliza-asks-for-assurance .lamp {
  position: absolute; top: 20%; right: 20%; width: 20px; height: 40px;
  background: radial-gradient(circle at 50% 30%, #ffd700 0%, #daa520 60%, #8b4513 100%);
  border-radius: 40% 40% 10% 10%;
  box-shadow: 0 0 30px 10px rgba(255,215,0,0.4);
  animation: ea1-lamp 2s ease-in-out infinite alternate;
}
.scn-eliza-asks-for-assurance .shadow {
  position: absolute; bottom: 22%; left: 42%; width: 60px; height: 20px;
  background: rgba(0,0,0,0.25); border-radius: 50%; filter: blur(4px);
  animation: ea1-shadow 3s ease-in-out infinite alternate;
}
.scn-eliza-asks-for-assurance .chair {
  position: absolute; bottom: 20%; left: 20%; width: 70px; height: 90px;
  background: linear-gradient(180deg, #8b5a2b 0%, #5c3a1e 100%);
  border-radius: 10% 10% 5% 5%; box-shadow: 0 6px 10px rgba(0,0,0,0.4);
  animation: ea1-chair 5s ease-in-out infinite;
}
.scn-eliza-asks-for-assurance .comb {
  position: absolute; top: 35%; left: 65%; width: 30px; height: 8px;
  background: linear-gradient(90deg, #c0a060 0%, #a08040 100%); border-radius: 2px;
  transform: rotate(-20deg); animation: ea1-comb 4s ease-in-out infinite alternate;
}
@keyframes ea1-wall { 0% { opacity: 0.9 } 50% { opacity: 1 } 100% { opacity: 0.85 } }
@keyframes ea1-mirror { 0% { transform: scale(1) rotate(-1deg) } 50% { transform: scale(1.02) rotate(1deg) } 100% { transform: scale(1) rotate(0) } }
@keyframes ea1-figure { 0% { transform: translateX(0) rotate(-2deg) } 25% { transform: translateX(5px) rotate(1deg) } 50% { transform: translateX(10px) rotate(-1deg) } 75% { transform: translateX(5px) rotate(2deg) } 100% { transform: translateX(0) rotate(0) } }
@keyframes ea1-lamp { 0% { box-shadow: 0 0 20px 5px rgba(255,215,0,0.3); opacity: 0.8 } 50% { box-shadow: 0 0 40px 15px rgba(255,215,0,0.6); opacity: 1 } 100% { box-shadow: 0 0 25px 8px rgba(255,215,0,0.4); opacity: 0.9 } }
@keyframes ea1-shadow { 0% { transform: translateX(0) scaleX(1) } 50% { transform: translateX(5px) scaleX(1.1) } 100% { transform: translateX(-2px) scaleX(0.9) } }
@keyframes ea1-chair { 0%,100% { transform: translateY(0) } 50% { transform: translateY(-3px) } }
@keyframes ea1-comb { 0% { transform: translateX(0) rotate(-20deg) } 50% { transform: translateX(4px) rotate(-15deg) } 100% { transform: translateX(0) rotate(-22deg) } }

/* mrs-shelby-character - warm, magnanimous presence */
.scn-mrs-shelby-character {
  background:
    linear-gradient(180deg, #fdf5e6 0%, #f5deb3 40%, #deb887 100%),
    radial-gradient(ellipse at 30% 50%, #fff8dc 0%, transparent 70%);
}
.scn-mrs-shelby-character .bg-warm {
  position: absolute; inset: 0; background: linear-gradient(135deg, #faf0e6 0%, #e8d5b7 100%);
  animation: ms1-bg 10s ease-in-out infinite alternate;
}
.scn-mrs-shelby-character .window {
  position: absolute; top: 10%; left: 5%; width: 90px; height: 120px;
  background: linear-gradient(180deg, #87ceeb 0%, #b0e0e6 100%);
  border: 8px solid #8b7355; border-radius: 4px;
  box-shadow: inset 0 0 20px rgba(255,255,200,0.3);
  animation: ms1-window 8s ease-in-out infinite alternate;
}
.scn-mrs-shelby-character .armchair {
  position: absolute; bottom: 18%; left: 30%; width: 100px; height: 120px;
  background: linear-gradient(180deg, #b5651d 0%, #8b4513 100%);
  border-radius: 30% 30% 10% 10%; box-shadow: 0 8px 16px rgba(0,0,0,0.3);
  animation: ms1-armchair 6s ease-in-out infinite;
}
.scn-mrs-shelby-character .figure {
  position: absolute; bottom: 25%; left: 38%; width: 60px; height: 110px;
  background: linear-gradient(180deg, #d2b48c 0%, #c4a882 40%, #a08060 100%);
  border-radius: 45% 45% 35% 35% / 60% 60% 45% 45%;
  transform-origin: bottom center;
  animation: ms1-figure 5s ease-in-out infinite alternate;
}
.scn-mrs-shelby-character .book {
  position: absolute; bottom: 30%; left: 50%; width: 40px; height: 30px;
  background: linear-gradient(135deg, #8b4513 0%, #5c3a1e 100%);
  border-radius: 2px; transform: rotate(-10deg);
  animation: ms1-book 7s ease-in-out infinite alternate;
}
.scn-mrs-shelby-character .teacup {
  position: absolute; bottom: 28%; left: 55%; width: 20px; height: 24px;
  background: linear-gradient(180deg, #f5f5dc 0%, #e8e0d0 100%);
  border-radius: 30% 30% 10% 10%; box-shadow: 0 2px 6px rgba(0,0,0,0.2);
  animation: ms1-teacup 9s ease-in-out infinite;
}
@keyframes ms1-bg { 0% { opacity: 0.9 } 50% { opacity: 1 } 100% { opacity: 0.95 } }
@keyframes ms1-window { 0% { filter: brightness(0.9) } 50% { filter: brightness(1.1) } 100% { filter: brightness(1) } }
@keyframes ms1-armchair { 0%,100% { transform: translateY(0) } 50% { transform: translateY(-4px) } }
@keyframes ms1-figure { 0% { transform: scale(1) rotate(-0.5deg) } 50% { transform: scale(1.02) rotate(0.5deg) } 100% { transform: scale(1) rotate(0) } }
@keyframes ms1-book { 0% { transform: rotate(-10deg) } 50% { transform: rotate(-8deg) translateY(-2px) } 100% { transform: rotate(-12deg) } }
@keyframes ms1-teacup { 0%,100% { transform: translateY(0) } 50% { transform: translateY(-3px) } }

/* shelby-dreads-telling-wife - tense interior with dread */
.scn-shelby-dreads-telling-wife {
  background:
    linear-gradient(180deg, #f0e68c 0%, #c0a060 40%, #6b4226 100%),
    radial-gradient(ellipse at 80% 40%, #fffacd 0%, transparent 60%);
}
.scn-shelby-dreads-telling-wife .room {
  position: absolute; inset: 0; background: linear-gradient(135deg, #e6d3a0 0%, #b8965a 100%);
  animation: sd1-room 5s ease-in-out infinite alternate;
}
.scn-shelby-dreads-telling-wife .desk {
  position: absolute; bottom: 20%; left: 20%; width: 160px; height: 70px;
  background: linear-gradient(180deg, #5c3a1e 0%, #3e2310 100%);
  border-radius: 4px; box-shadow: 0 8px 20px rgba(0,0,0,0.6);
  animation: sd1-desk 4s ease-in-out infinite;
}
.scn-shelby-dreads-telling-wife .figure {
  position: absolute; bottom: 25%; left: 35%; width: 55px; height: 130px;
  background: linear-gradient(180deg, #4a3728 0%, #2a1e14 100%);
  border-radius: 40% 40% 30% 30% / 55% 55% 40% 40%;
  transform-origin: bottom center;
  animation: sd1-figure 2s ease-in-out infinite;
}
.scn-shelby-dreads-telling-wife .papers {
  position: absolute; bottom: 28%; left: 30%; width: 50px; height: 40px;
  background: linear-gradient(135deg, #f5f5dc 0%, #e0d5b0 100%);
  border-radius: 2px; box-shadow: 0 2px 8px rgba(0,0,0,0.3);
  animation: sd1-papers 3s ease-in-out infinite alternate;
}
.scn-shelby-dreads-telling-wife .hand {
  position: absolute; bottom: 30%; left: 40%; width: 20px; height: 30px;
  background: linear-gradient(180deg, #d2b48c 0%, #b08050 100%);
  border-radius: 40% 40% 20% 20%;
  transform-origin: top center;
  animation: sd1-hand 1.5s ease-in-out infinite;
}
.scn-shelby-dreads-telling-wife .shadow-desk {
  position: absolute; bottom: 18%; left: 18%; width: 170px; height: 20px;
  background: rgba(0,0,0,0.4); border-radius: 50%; filter: blur(6px);
  animation: sd1-shadow 4s ease-in-out infinite alternate;
}
@keyframes sd1-room { 0% { filter: brightness(0.8) } 50% { filter: brightness(1) } 100% { filter: brightness(0.85) } }
@keyframes sd1-desk { 0%,100% { transform: translateY(0) } 50% { transform: translateY(-2px) } }
@keyframes sd1-figure { 0% { transform: translateX(0) rotate(-3deg) } 30% { transform: translateX(-4px) rotate(1deg) } 60% { transform: translateX(6px) rotate(-2deg) } 100% { transform: translateX(0) rotate(0) } }
@keyframes sd1-papers { 0% { transform: rotate(0) translateX(0) } 50% { transform: rotate(5deg) translateX(3px) } 100% { transform: rotate(-3deg) translateX(-2px) } }
@keyframes sd1-hand { 0% { transform: rotate(-10deg) } 50% { transform: rotate(15deg) } 100% { transform: rotate(-5deg) } }
@keyframes sd1-shadow { 0% { transform: translateX(0) scaleX(1) } 50% { transform: translateX(5px) scaleX(1.1) } 100% { transform: translateX(-3px) scaleX(0.9) } }

/* mrs-shelby-unaware - calm bright interior, serene */
.scn-mrs-shelby-unaware {
  background:
    linear-gradient(180deg, #f0f8ff 0%, #e0f0ff 40%, #b0d4f1 100%),
    radial-gradient(ellipse at 50% 30%, #ffffff 0%, transparent 70%);
}
.scn-mrs-shelby-unaware .wall-calm {
  position: absolute; inset: 0; background: linear-gradient(135deg, #f5fafe 0%, #dce8f0 100%);
  animation: mu1-wall 12s ease-in-out infinite alternate;
}
.scn-mrs-shelby-unaware .chair-calm {
  position: absolute; bottom: 15%; left: 30%; width: 90px; height: 100px;
  background: linear-gradient(180deg, #b0c4de 0%, #8ba4c9 100%);
  border-radius: 20% 20% 10% 10%; box-shadow: 0 6px 14px rgba(0,0,0,0.15);
  animation: mu1-chair 8s ease-in-out infinite;
}
.scn-mrs-shelby-unaware .figure-calm {
  position: absolute; bottom: 22%; left: 38%; width: 55px; height: 105px;
  background: linear-gradient(180deg, #c0d6e4 0%, #a4bcd4 40%, #8aa3bb 100%);
  border-radius: 45% 45% 35% 35% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: mu1-figure 7s ease-in-out infinite alternate;
}
.scn-mrs-shelby-unaware .sewing {
  position: absolute; bottom: 28%; left: 45%; width: 40px; height: 30px;
  background: linear-gradient(135deg, #f5f5dc 0%, #e0d8c0 100%);
  border-radius: 30% 30% 5% 5%; box-shadow: 0 2px 8px rgba(0,0,0,0.1);
  animation: mu1-sewing 9s ease-in-out infinite;
}
.scn-mrs-shelby-unaware .needle {
  position: absolute; bottom: 32%; left: 48%; width: 24px; height: 2px;
  background: #c0c0c0; border-radius: 1px;
  transform-origin: 0 50%;
  animation: mu1-needle 4s ease-in-out infinite alternate;
}
.scn-mrs-shelby-unaware .basket {
  position: absolute; bottom: 12%; right: 25%; width: 60px; height: 45px;
  background: linear-gradient(135deg, #d2b48c 0%, #b8965a 100%);
  border-radius: 50% 50% 20% 20%; box-shadow: 0 4px 10px rgba(0,0,0,0.2);
  animation: mu1-basket 6s ease-in-out infinite;
}
.scn-mrs-shelby-unaware .sunbeam {
  position: absolute; top: 10%; left: 20%; width: 120px; height: 300px;
  background: linear-gradient(180deg, rgba(255,255,255,0.3) 0%, transparent 100%);
  transform: rotate(15deg); filter: blur(10px);
  animation: mu1-sunbeam 15s ease-in-out infinite alternate;
}
@keyframes mu1-wall { 0% { opacity: 0.9 } 50% { opacity: 1 } 100% { opacity: 0.95 } }
@keyframes mu1-chair { 0%,100% { transform: translateY(0) } 50% { transform: translateY(-2px) } }
@keyframes mu1-figure { 0% { transform: translateX(0) rotate(-0.5deg) } 50% { transform: translateX(2px) rotate(0.5deg) } 100% { transform: translateX(0) rotate(0) } }
@keyframes mu1-sewing { 0%,100% { transform: translateY(0) } 50% { transform: translateY(-4px) } }
@keyframes mu1-needle { 0% { transform: rotate(-10deg) } 50% { transform: rotate(10deg) } 100% { transform: rotate(-8deg) } }
@keyframes mu1-basket { 0%,100% { transform: translateY(0) } 50% { transform: translateY(-3px) } }
@keyframes mu1-sunbeam { 0% { transform: rotate(15deg) translateX(-10px) } 50% { transform: rotate(18deg) translateX(5px) } 100% { transform: rotate(13deg) translateX(-5px) } }

/* Scene 1: eliza-on-slave-marriage */
.scn-eliza-on-slave-marriage {
  background: linear-gradient(180deg, #fce4b8 0%, #f5d59a 30%, #c29b62 100%),
              radial-gradient(ellipse at 50% 30%, #fff8e0 0%, transparent 60%);
}
.scn-eliza-on-slave-marriage .bg-sky {
  position: absolute; inset: 0 0 60% 0;
  background: linear-gradient(180deg, #fef7d4 0%, #f3d48a 100%);
  animation: esm-sky 12s ease-in-out infinite alternate;
}
.scn-eliza-on-slave-marriage .bg-floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 60%;
  background: linear-gradient(180deg, #b8864a 0%, #6b4226 100%);
  border-radius: 30% 30% 0 0 / 20% 20% 0 0;
}
.scn-eliza-on-slave-marriage .window-esm {
  position: absolute; top: 15%; left: 20%; width: 80px; height: 100px;
  background: radial-gradient(circle, #fff8dc 0%, #f5d59a 80%);
  border: 4px solid #8b5e3c; border-radius: 4px;
  box-shadow: inset 0 0 20px #fff8dc;
}
.scn-eliza-on-slave-marriage .lightbeam-esm {
  position: absolute; top: 25%; left: 24%; width: 120px; height: 200px;
  background: linear-gradient(135deg, rgba(255,248,220,0.4) 0%, rgba(255,248,220,0.1) 50%, transparent 100%);
  clip-path: polygon(0 0, 100% 0, 80% 100%, 20% 100%);
  transform: rotate(-5deg);
  animation: esm-beam 8s ease-in-out infinite alternate;
}
.scn-eliza-on-slave-marriage .figure-eliza {
  position: absolute; bottom: 22%; left: 30%; width: 28px; height: 70px;
  background: linear-gradient(180deg, #5a3a1a 0%, #3a2210 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: esm-figures 6s ease-in-out infinite;
}
.scn-eliza-on-slave-marriage .figure-george {
  position: absolute; bottom: 22%; right: 30%; width: 30px; height: 74px;
  background: linear-gradient(180deg, #4a2e1a 0%, #2a1a0a 100%);
  border-radius: 50% 50% 40% 40% / 55% 55% 45% 45%;
  transform-origin: bottom center;
  animation: esm-figures 6s ease-in-out infinite reverse;
}
.scn-eliza-on-slave-marriage .altar-esm {
  position: absolute; bottom: 18%; left: 50%; transform: translateX(-50%);
  width: 40px; height: 20px;
  background: linear-gradient(180deg, #8b5e3c 0%, #5a3a1a 100%);
  border-radius: 4px;
  box-shadow: 0 2px 6px rgba(0,0,0,0.4);
}
.scn-eliza-on-slave-marriage .book-esm {
  position: absolute; bottom: 20%; left: 50%; transform: translateX(-50%) rotate(-5deg);
  width: 16px; height: 12px;
  background: #4a2e1a;
  border-left: 2px solid #6b4226;
  border-radius: 2px;
}
@keyframes esm-sky {
  0% { opacity: 0.8; }
  50% { opacity: 1; }
  100% { opacity: 0.7; }
}
@keyframes esm-beam {
  0% { opacity: 0.3; transform: rotate(-5deg) scaleX(1); }
  50% { opacity: 0.8; transform: rotate(-3deg) scaleX(1.05); }
  100% { opacity: 0.4; transform: rotate(-6deg) scaleX(0.95); }
}
@keyframes esm-figures {
  0% { transform: translateY(0); }
  25% { transform: translateY(-2px) rotate(1deg); }
  50% { transform: translateY(0) rotate(-1deg); }
  75% { transform: translateY(-1px) rotate(1deg); }
  100% { transform: translateY(0); }
}

/* Scene 2: eliza-fears-for-harry */
.scn-eliza-fears-for-harry {
  background: linear-gradient(180deg, #f7e9c0 0%, #d9b879 40%, #7a5a32 100%),
              radial-gradient(ellipse at 50% 20%, #fff7d6 0%, transparent 70%);
}
.scn-eliza-fears-for-harry .bg-sky-efh {
  position: absolute; inset: 0 0 50% 0;
  background: linear-gradient(180deg, #fde8b0 0%, #f5d59a 100%);
  animation: efh-sky 15s ease-in-out infinite alternate;
}
.scn-eliza-fears-for-harry .bg-field {
  position: absolute; bottom: 0; left: 0; right: 0; height: 50%;
  background: linear-gradient(180deg, #b8864a 0%, #6b4226 100%);
  border-radius: 40% 40% 0 0 / 30% 30% 0 0;
}
.scn-eliza-fears-for-harry .tree-efh {
  position: absolute; bottom: 30%; left: 25%; width: 20px; height: 160px;
  background: linear-gradient(180deg, #5a3a1a 0%, #2a1a0a 100%);
  border-radius: 20% 20% 10% 10%;
  transform-origin: bottom center;
  animation: efh-tree 20s ease-in-out infinite;
}
.scn-eliza-fears-for-harry .shadow-sword {
  position: absolute; bottom: 20%; left: 40%; width: 120px; height: 8px;
  background: rgba(0,0,0,0.3);
  clip-path: polygon(0 0, 100% 0, 80% 100%, 20% 100%);
  transform: rotate(-10deg);
  animation: efh-sword 5s ease-in-out infinite alternate;
}
.scn-eliza-fears-for-harry .figure-eliza-efh {
  position: absolute; bottom: 20%; left: 50%; transform: translateX(-50%);
  width: 32px; height: 80px;
  background: linear-gradient(180deg, #3a2210 0%, #1a0e06 100%);
  border-radius: 50% 50% 40% 40% / 55% 55% 45% 45%;
  transform-origin: bottom center;
  animation: efh-figure 8s ease-in-out infinite;
}
.scn-eliza-fears-for-harry .figure-harry {
  position: absolute; bottom: 30%; left: 52%; width: 14px; height: 30px;
  background: #2a1a0a;
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: efh-child 4s ease-in-out infinite alternate;
}
.scn-eliza-fears-for-harry .fence-efh {
  position: absolute; bottom: 28%; left: 0; right: 0; height: 30px;
  background: repeating-linear-gradient(90deg, #4a2e1a 0px, #4a2e1a 8px, transparent 8px, transparent 20px);
  border-top: 3px solid #5a3a1a;
}
@keyframes efh-sky {
  0% { opacity: 0.9; }
  50% { opacity: 0.7; }
  100% { opacity: 1; }
}
@keyframes efh-tree {
  0% { transform: rotate(0deg); }
  25% { transform: rotate(-1deg); }
  50% { transform: rotate(1deg); }
  75% { transform: rotate(-0.5deg); }
  100% { transform: rotate(0deg); }
}
@keyframes efh-sword {
  0% { opacity: 0.2; transform: rotate(-12deg) translateX(0); }
  50% { opacity: 0.7; transform: rotate(-8deg) translateX(10px); }
  100% { opacity: 0.3; transform: rotate(-14deg) translateX(0); }
}
@keyframes efh-figure {
  0% { transform: translateX(-50%) translateY(0); }
  50% { transform: translateX(-50%) translateY(-3px) rotate(1deg); }
  100% { transform: translateX(-50%) translateY(0); }
}
@keyframes efh-child {
  0% { transform: translateY(0) rotate(-3deg); }
  50% { transform: translateY(-2px) rotate(0deg); }
  100% { transform: translateY(0) rotate(2deg); }
}

/* Scene 3: george-announces-escape-plan */
.scn-george-announces-escape-plan {
  background: linear-gradient(180deg, #fbe8c8 0%, #e6c48a 40%, #a67c4a 100%),
              radial-gradient(ellipse at 50% 70%, #f5d59a 0%, transparent 70%);
}
.scn-george-announces-escape-plan .bg-sky-gae {
  position: absolute; inset: 0 0 45% 0;
  background: linear-gradient(180deg, #fef2d6 0%, #f0d090 100%);
  animation: gae-sky 14s ease-in-out infinite alternate;
}
.scn-george-announces-escape-plan .bg-road {
  position: absolute; bottom: 0; left: 0; right: 0; height: 45%;
  background: linear-gradient(180deg, #c49a5a 0%, #7a5a2a 100%);
  border-radius: 20% 20% 0 0 / 15% 15% 0 0;
}
.scn-george-announces-escape-plan .figure-george-gae {
  position: absolute; bottom: 22%; left: 35%; width: 30px; height: 76px;
  background: linear-gradient(180deg, #2a1a0a 0%, #0e0a04 100%);
  border-radius: 50% 50% 40% 40% / 55% 55% 45% 45%;
  transform-origin: bottom center;
  animation: gae-george 7s ease-in-out infinite;
}
.scn-george-announces-escape-plan .figure-eliza-gae {
  position: absolute; bottom: 22%; right: 35%; width: 28px; height: 70px;
  background: linear-gradient(180deg, #3a2210 0%, #1a0e06 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: gae-eliza 7s ease-in-out infinite reverse;
}
.scn-george-announces-escape-plan .bundle-gae {
  position: absolute; bottom: 24%; left: 38%; width: 16px; height: 20px;
  background: #5a3a1a;
  border-radius: 30% 30% 20% 20%;
  transform: rotate(10deg);
  animation: gae-bundle 5s ease-in-out infinite alternate;
}
.scn-george-announces-escape-plan .signpost-gae {
  position: absolute; bottom: 30%; right: 20%; width: 6px; height: 80px;
  background: #4a2e1a;
  border-radius: 2px;
}
.scn-george-announces-escape-plan .leaf-1 {
  position: absolute; top: 25%; left: 20%; width: 12px; height: 6px;
  background: #a67c4a;
  border-radius: 50% 0 50% 0;
  opacity: 0.6;
  animation: gae-leaf1 18s linear infinite;
}
.scn-george-announces-escape-plan .leaf-2 {
  position: absolute; top: 30%; left: 60%; width: 10px; height: 5px;
  background: #b8864a;
  border-radius: 0 50% 0 50%;
  opacity: 0.5;
  animation: gae-leaf2 22s linear infinite reverse;
}
@keyframes gae-sky {
  0% { opacity: 0.8; }
  50% { opacity: 1; }
  100% { opacity: 0.7; }
}
@keyframes gae-george {
  0% { transform: translateY(0) rotate(0deg); }
  25% { transform: translateY(-3px) rotate(-2deg); }
  50% { transform: translateY(0) rotate(0deg); }
  75% { transform: translateY(-1px) rotate(2deg); }
  100% { transform: translateY(0) rotate(0deg); }
}
@keyframes gae-eliza {
  0% { transform: translateY(0) rotate(0deg); }
  25% { transform: translateY(-2px) rotate(1deg); }
  50% { transform: translateY(0) rotate(0deg); }
  75% { transform: translateY(-1px) rotate(-2deg); }
  100% { transform: translateY(0) rotate(0deg); }
}
@keyframes gae-bundle {
  0% { transform: rotate(8deg) scaleX(1); }
  50% { transform: rotate(12deg) scaleX(1.05); }
  100% { transform: rotate(10deg) scaleX(0.95); }
}
@keyframes gae-leaf1 {
  0% { transform: translateX(0) rotate(0deg); }
  50% { transform: translateX(30px) rotate(90deg); }
  100% { transform: translateX(60px) rotate(180deg); }
}
@keyframes gae-leaf2 {
  0% { transform: translateX(0) rotate(0deg); }
  50% { transform: translateX(-25px) rotate(-90deg); }
  100% { transform: translateX(-50px) rotate(-180deg); }
}

/* Scene 4: george-vows-freedom-or-death */
.scn-george-vows-freedom-or-death {
  background: linear-gradient(180deg, #d9b879 0%, #a67c4a 40%, #5a3a1a 100%),
              radial-gradient(ellipse at 60% 30%, #fbe8c8 0%, transparent 70%);
}
.scn-george-vows-freedom-or-death .bg-sky-gvf {
  position: absolute; inset: 0 0 50% 0;
  background: linear-gradient(180deg, #f5d59a 0%, #d9b879 100%);
  animation: gvf-sky 10s ease-in-out infinite alternate;
}
.scn-george-vows-freedom-or-death .bg-ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 50%;
  background: linear-gradient(180deg, #4a2e1a 0%, #2a1a0a 100%);
  border-radius: 30% 30% 0 0 / 40% 40% 0 0;
}
.scn-george-vows-freedom-or-death .figure-george-gvf {
  position: absolute; bottom: 18%; left: 50%; transform: translateX(-50%);
  width: 34px; height: 82px;
  background: linear-gradient(180deg, #1a0e06 0%, #0a0602 100%);
  border-radius: 50% 50% 40% 40% / 55% 55% 45% 45%;
  transform-origin: bottom center;
  animation: gvf-figure 6s ease-in-out infinite;
}
.scn-george-vows-freedom-or-death .arm-gvf {
  position: absolute; bottom: 50%; left: 50%; transform: translateX(-50%);
  width: 20px; height: 40px;
  background: #1a0e06;
  border-radius: 50% 50% 10% 10% / 40% 40% 20% 20%;
  transform-origin: bottom center;
  animation: gvf-arm 3s ease-in-out infinite alternate;
}
.scn-george-vows-freedom-or-death .chain-gvf {
  position: absolute; bottom: 10%; left: 40%; width: 60px; height: 10px;
  background: repeating-linear-gradient(90deg, #4a3a2a 0px, #4a3a2a 6px, transparent 6px, transparent 10px);
  border-radius: 2px;
  animation: gvf-chain 8s ease-in-out infinite;
}
.scn-george-vows-freedom-or-death .post-gvf {
  position: absolute; bottom: 20%; right: 30%; width: 8px; height: 100px;
  background: #3a2210;
  border-radius: 4px;
  box-shadow: -2px 0 4px rgba(0,0,0,0.5);
}
@keyframes gvf-sky {
  0% { opacity: 0.9; }
  50% { opacity: 0.6; }
  100% { opacity: 0.8; }
}
@keyframes gvf-figure {
  0% { transform: translateX(-50%) translateY(0) rotate(0deg); }
  25% { transform: translateX(-50%) translateY(-4px) rotate(2deg); }
  50% { transform: translateX(-50%) translateY(0) rotate(0deg); }
  75% { transform: translateX(-50%) translateY(-2px) rotate(-2deg); }
  100% { transform: translateX(-50%) translateY(0) rotate(0deg); }
}
@keyframes gvf-arm {
  0% { transform: translateX(-50%) rotate(-15deg); }
  50% { transform: translateX(-50%) rotate(5deg); }
  100% { transform: translateX(-50%) rotate(-10deg); }
}
@keyframes gvf-chain {
  0% { opacity: 0.5; transform: scaleX(1); }
  50% { opacity: 1; transform: scaleX(1.05); }
  100% { opacity: 0.6; transform: scaleX(0.95); }
}

.scn-refuge-for-fugitives {
  background: linear-gradient(180deg, #f9e6c3 0%, #f2c97a 30%, #b3d4e6 60%, #7aa5c2 100%),
              radial-gradient(ellipse at 50% 0%, #fff5d6 0%, transparent 60%);
}
.scn-refuge-for-fugitives .sky { position:absolute; inset:0 0 55% 0; background: linear-gradient(180deg, #b3d4e6 0%, #f2c97a 100%); animation: rff-sky 8s ease-in-out infinite alternate; }
.scn-refuge-for-fugitives .sun { position:absolute; top:10%; left:50%; width:60px; height:60px; margin-left:-30px; background: radial-gradient(circle, #fff7d6 0%, #f2c97a 50%, transparent 70%); border-radius:50%; box-shadow: 0 0 40px 20px rgba(242,201,122,0.5); animation: rff-sun 6s ease-in-out infinite alternate; }
.scn-refuge-for-fugitives .sea { position:absolute; bottom:20%; left:0; right:0; height:50%; background: linear-gradient(180deg, #7aa5c2 0%, #4a7a9e 100%); animation: rff-sea 12s ease-in-out infinite alternate; }
.scn-refuge-for-fugitives .sand { position:absolute; bottom:0; left:0; right:0; height:25%; background: linear-gradient(180deg, #e6cfa3 0%, #c9a96e 100%); border-radius: 60% 40% 0 0 / 30% 20% 0 0; }
.scn-refuge-for-fugitives .boat { position:absolute; bottom:22%; left:20%; width:80px; height:30px; background: linear-gradient(180deg, #6a4a2a 0%, #3a2a1a 100%); border-radius: 0 40% 40% 0 / 0 60% 60% 0; transform: rotate(-5deg); animation: rff-boat 10s ease-in-out infinite; }
.scn-refuge-for-fugitives .family-fig { position:absolute; bottom:24%; width:16px; height:30px; background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; }
.scn-refuge-for-fugitives .family-fig-1 { left:25%; animation: rff-fig1 4s ease-in-out infinite; }
.scn-refuge-for-fugitives .family-fig-2 { left:30%; animation: rff-fig2 5s ease-in-out infinite 1s; }
.scn-refuge-for-fugitives .family-fig-3 { left:35%; animation: rff-fig3 4.5s ease-in-out infinite 0.5s; }
.scn-refuge-for-fugitives .gull { position:absolute; top:10%; width:20px; height:8px; background: rgba(255,255,255,0.6); border-radius: 50%; filter: blur(1px); }
.scn-refuge-for-fugitives .gull-1 { left:30%; animation: rff-gull1 25s linear infinite; }
@keyframes rff-sky { 0% { opacity:0.8 } 50% { opacity:1 } 100% { opacity:0.9 } }
@keyframes rff-sun { 0% { transform: scale(1) translateY(0) } 50% { transform: scale(1.05) translateY(-4px) } 100% { transform: scale(0.98) translateY(2px) } }
@keyframes rff-sea { 0% { transform: translateY(0) } 50% { transform: translateY(-3px) } 100% { transform: translateY(0) } }
@keyframes rff-boat { 0% { transform: rotate(-5deg) translateX(0) } 25% { transform: rotate(-3deg) translateX(5px) } 50% { transform: rotate(-6deg) translateX(10px) } 75% { transform: rotate(-4deg) translateX(5px) } 100% { transform: rotate(-5deg) translateX(0) } }
@keyframes rff-fig1 { 0% { transform: translateY(0) rotate(-1deg) } 50% { transform: translateY(-2px) rotate(1deg) } 100% { transform: translateY(0) rotate(-1deg) } }
@keyframes rff-fig2 { 0% { transform: translateY(0) rotate(1deg) } 50% { transform: translateY(-1px) rotate(-1deg) } 100% { transform: translateY(0) rotate(1deg) } }
@keyframes rff-fig3 { 0% { transform: translateY(0) rotate(0) } 50% { transform: translateY(-2px) rotate(2deg) } 100% { transform: translateY(0) rotate(0) } }
@keyframes rff-gull1 { 0% { transform: translateX(-30px) } 100% { transform: translateX(120vw) } }

.scn-liberia-and-church {
  background: linear-gradient(180deg, #e3f2e8 0%, #b7d7c4 30%, #6c9a7a 60%, #3d6b4d 100%),
              radial-gradient(ellipse at 50% 0%, #fffae6 0%, transparent 50%);
}
.scn-liberia-and-church .africa-bg { position:absolute; inset:15% 10% 30% 10%; background: linear-gradient(135deg, #c8a86e 0%, #8b6b3e 50%, #5a4020 100%); border-radius: 40% 30% 30% 40% / 50% 40% 40% 50%; opacity:0.3; }
.scn-liberia-and-church .church-building { position:absolute; bottom:25%; left:50%; width:70px; height:80px; margin-left:-35px; background: linear-gradient(180deg, #f0e8d6 0%, #d4c4a8 100%); border-radius: 6% 6% 2% 2%; box-shadow: 0 4px 12px rgba(0,0,0,0.2); animation: lac-church 9s ease-in-out infinite alternate; }
.scn-liberia-and-church .church-cross { position:absolute; bottom:92%; left:50%; width:4px; height:24px; margin-left:-2px; background: #5a3a1a; border-radius: 2px; }
.scn-liberia-and-church .church-cross::before { content:''; position:absolute; top:2px; left:-8px; width:20px; height:4px; background: #5a3a1a; border-radius: 2px; }
.scn-liberia-and-church .palm-tree { position:absolute; bottom:20%; left:15%; width:6px; height:60px; background: linear-gradient(180deg, #4a6a3a 0%, #2a4a1a 100%); border-radius: 3px; transform: rotate(-5deg); transform-origin: bottom; animation: lac-palm 8s ease-in-out infinite alternate; }
.scn-liberia-and-church .palm-tree::after { content:''; position:absolute; top:-6px; left:-12px; width:30px; height:14px; background: radial-gradient(ellipse at 50% 100%, #6a9a4a 0%, transparent 70%); border-radius: 50%; transform: rotate(-15deg); }
.scn-liberia-and-church .sunbeam { position:absolute; top:5%; left:30%; width:80px; height:200px; background: linear-gradient(180deg, rgba(255,250,230,0.4) 0%, transparent 80%); transform: rotate(20deg); filter: blur(12px); animation: lac-beam 6s ease-in-out infinite alternate; }
.scn-liberia-and-church .path { position:absolute; bottom:10%; left:40%; right:40%; height:15%; background: linear-gradient(180deg, #c8a86e 0%, #a08050 100%); border-radius: 30% 30% 0 0 / 40% 40% 0 0; }
.scn-liberia-and-church .bush { position:absolute; bottom:20%; width:30px; height:20px; background: radial-gradient(ellipse at 50% 100%, #4a7a3a 0%, transparent 70%); border-radius: 50%; }
.scn-liberia-and-church .bush-1 { left:70%; animation: lac-bush1 10s linear infinite; }
.scn-liberia-and-church .bush-2 { left:75%; animation: lac-bush2 12s linear infinite 3s; }
.scn-liberia-and-church .bush-3 { left:65%; animation: lac-bush3 9s linear infinite 6s; }
@keyframes lac-church { 0% { transform: translateY(0) } 50% { transform: translateY(-3px) } 100% { transform: translateY(0) } }
@keyframes lac-palm { 0% { transform: rotate(-5deg) } 50% { transform: rotate(5deg) } 100% { transform: rotate(-5deg) } }
@keyframes lac-beam { 0% { opacity:0.6; transform: rotate(20deg) scaleY(1) } 50% { opacity:1; transform: rotate(22deg) scaleY(1.1) } 100% { opacity:0.6; transform: rotate(20deg) scaleY(1) } }
@keyframes lac-bush1 { 0% { transform: scale(1) } 50% { transform: scale(1.1) } 100% { transform: scale(1) } }
@keyframes lac-bush2 { 0% { transform: scale(0.9) } 50% { transform: scale(1) } 100% { transform: scale(0.9) } }
@keyframes lac-bush3 { 0% { transform: scale(1.1) } 50% { transform: scale(0.95) } 100% { transform: scale(1.1) } }

.scn-authors-experience {
  background: linear-gradient(180deg, #f7e8d6 0%, #e6d0b8 30%, #c4a88a 60%, #8a6a4a 100%),
              radial-gradient(ellipse at 50% 0%, #fffcf0 0%, transparent 60%);
}
.scn-authors-experience .room-wall { position:absolute; inset:0; background: linear-gradient(180deg, #e6d0b8 0%, #c4a88a 100%); }
.scn-authors-experience .window { position:absolute; top:15%; left:50%; width:120px; height:90px; margin-left:-60px; background: linear-gradient(180deg, #b3d4e6 0%, #7aa5c2 100%); border: 6px solid #6a4a2a; border-radius: 4px; animation: aex-window 8s ease-in-out infinite alternate; }
.scn-authors-experience .window-light { position:absolute; top:20%; left:50%; width:100px; height:70px; margin-left:-50px; background: radial-gradient(circle at 50% 30%, rgba(255,240,200,0.4) 0%, transparent 70%); filter: blur(8px); animation: aex-light 6s ease-in-out infinite alternate; }
.scn-authors-experience .desk { position:absolute; bottom:15%; left:20%; right:20%; height:20%; background: linear-gradient(180deg, #8a6a4a 0%, #5a4020 100%); border-radius: 2px 2px 10px 10px; box-shadow: 0 4px 8px rgba(0,0,0,0.3); }
.scn-authors-experience .paper { position:absolute; bottom:28%; left:40%; width:50px; height:40px; background: #fdf5e6; border-radius: 1px; transform: rotate(-2deg); box-shadow: 0 2px 6px rgba(0,0,0,0.1); animation: aex-paper 4s ease-in-out infinite alternate; }
.scn-authors-experience .inkwell { position:absolute; bottom:26%; left:50%; width:14px; height:16px; margin-left:-7px; background: radial-gradient(circle at 50% 20%, #1a1a2a 0%, #0a0a1a 100%); border-radius: 40% 40% 20% 20%; }
.scn-authors-experience .hand { position:absolute; bottom:24%; width:14px; height:22px; background: linear-gradient(180deg, #e8cfa8 0%, #c4a88a 100%); border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%; }
.scn-authors-experience .hand-left { left:40%; transform: rotate(15deg); animation: aex-handL 3s ease-in-out infinite; }
.scn-authors-experience .hand-right { left:44%; transform: rotate(-10deg) scaleX(-1); animation: aex-handR 3.5s ease-in-out infinite 0.2s; }
.scn-authors-experience .chair { position:absolute; bottom:12%; left:35%; right:35%; height:18%; background: linear-gradient(180deg, #7a5a3a 0%, #4a3018 100%); border-radius: 10% 10% 20% 20% / 30% 30% 40% 40%; }
@keyframes aex-window { 0% { opacity:0.8; transform: scaleY(1) } 50% { opacity:1; transform: scaleY(1.02) } 100% { opacity:0.85; transform: scaleY(1) } }
@keyframes aex-light { 0% { opacity:0.6; transform: translateY(0) } 50% { opacity:1; transform: translateY(-5px) } 100% { opacity:0.7; transform: translateY(2px) } }
@keyframes aex-paper { 0% { transform: rotate(-2deg) translateY(0) } 50% { transform: rotate(0deg) translateY(-1px) } 100% { transform: rotate(-2deg) translateY(0) } }
@keyframes aex-handL { 0% { transform: rotate(15deg) translateY(0) } 50% { transform: rotate(10deg) translateY(-2px) } 100% { transform: rotate(15deg) translateY(0) } }
@keyframes aex-handR { 0% { transform: rotate(-10deg) scaleX(-1) translateY(0) } 50% { transform: rotate(-6deg) scaleX(-1) translateY(-2px) } 100% { transform: rotate(-10deg) scaleX(-1) translateY(0) } }

.scn-list-of-freedmen {
  background: linear-gradient(180deg, #f5ebe0 0%, #dfd0be 30%, #bca68c 60%, #8a7260 100%),
              radial-gradient(ellipse at 50% 0%, #fff8ed 0%, transparent 50%);
}
.scn-list-of-freedmen .workbench { position:absolute; bottom:18%; left:15%; right:15%; height:22%; background: linear-gradient(180deg, #9a7a5a 0%, #6a4a2a 100%); border-radius: 4px; box-shadow: 0 6px 10px rgba(0,0,0,0.3); }
.scn-list-of-freedmen .lumber { position:absolute; bottom:20%; background: linear-gradient(90deg, #bca68c 0%, #9a7a5a 100%); border-radius: 2px; }
.scn-list-of-freedmen .lumber-1 { left:20%; width:30px; height:8px; animation: lof-lumber1 5s ease-in-out infinite; }
.scn-list-of-freedmen .lumber-2 { left:40%; width:22px; height:6px; animation: lof-lumber2 6s ease-in-out infinite 0.5s; }
.scn-list-of-freedmen .lumber-3 { left:55%; width:18px; height:10px; animation: lof-lumber3 4.5s ease-in-out infinite 1.2s; }
.scn-list-of-freedmen .saw { position:absolute; bottom:25%; left:65%; width:40px; height:6px; background: #5a5a6a; border-radius: 2px; transform: rotate(-15deg); animation: lof-saw 3s ease-in-out infinite; }
.scn-list-of-freedmen .hammer { position:absolute; bottom:26%; left:55%; width:30px; height:6px; background: #6a5a3a; border-radius: 2px; transform: rotate(10deg); transform-origin: right center; animation: lof-hammer 2.5s ease-in-out infinite; }
.scn-list-of-freedmen .silhouette-craftsman { position:absolute; bottom:19%; left:35%; width:20px; height:44px; background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: lof-craftsman 7s ease-in-out infinite; }
.scn-list-of-freedmen .sunlight-spot { position:absolute; top:10%; left:40%; width:100px; height:120px; background: radial-gradient(ellipse at 50% 0%, rgba(255,240,200,0.3) 0%, transparent 70%); filter: blur(14px); animation: lof-spot 10s ease-in-out infinite alternate; }
@keyframes lof-lumber1 { 0% { transform: translateY(0) rotate(0) } 50% { transform: translateY(-3px) rotate(2deg) } 100% { transform: translateY(0) rotate(0) } }
@keyframes lof-lumber2 { 0% { transform: translateY(0) scaleX(1) } 50% { transform: translateY(-2px) scaleX(1.05) } 100% { transform: translateY(0) scaleX(1) } }
@keyframes lof-lumber3 { 0% { transform: translateY(0) rotate(0) } 50% { transform: translateY(-4px) rotate(-3deg) } 100% { transform: translateY(0) rotate(0) } }
@keyframes lof-saw { 0% { transform: rotate(-15deg) translateX(0) } 50% { transform: rotate(-10deg) translateX(3px) } 100% { transform: rotate(-15deg) translateX(0) } }
@keyframes lof-hammer { 0% { transform: rotate(10deg) translateY(0) } 25% { transform: rotate(30deg) translateY(-2px) } 50% { transform: rotate(-5deg) translateY(0) } 75% { transform: rotate(20deg) translateY(-1px) } 100% { transform: rotate(10deg) translateY(0) } }
@keyframes lof-craftsman { 0% { transform: translateY(0) rotate(-1deg) } 50% { transform: translateY(-2px) rotate(1deg) } 100% { transform: translateY(0) rotate(-1deg) } }
@keyframes lof-spot { 0% { opacity:0.6; transform: scale(1) } 50% { opacity:1; transform: scale(1.1) } 100% { opacity:0.7; transform: scale(0.95) } }

/* barrells-rolled-in */
.scn-barrells-rolled-in {
  background: linear-gradient(180deg, #3a2210 0%, #5a3a1a 30%, #8a5a2a 70%, #4a2a10 100%), radial-gradient(ellipse at 50% 20%, #d08040 0%, transparent 60%);
}
.scn-barrells-rolled-in .bg-cabin { position:absolute; inset:0; background: linear-gradient(180deg, #4a2a0a 0%, #6a3a1a 60%, #3a1a00 100%); }
.scn-barrells-rolled-in .floor { position:absolute; bottom:0; left:0; right:0; height:35%; background: linear-gradient(0deg, #2a1a00 0%, #4a2a0a 100%); box-shadow: inset 0 10px 20px rgba(0,0,0,.5); }
.scn-barrells-rolled-in .fire-glow { position:absolute; bottom:20%; left:50%; width:200px; height:200px; transform:translateX(-50%); background: radial-gradient(circle, #ff8040 0%, #d06020 40%, transparent 80%); opacity:0.6; animation: br-fire 2s ease-in-out infinite alternate; }
.scn-barrells-rolled-in .barrel { position:absolute; bottom:30%; width:60px; height:70px; background: linear-gradient(90deg, #5a3a1a 0%, #8a6a3a 50%, #5a3a1a 100%); border-radius: 10%; box-shadow: 0 4px 8px rgba(0,0,0,.6); }
.scn-barrells-rolled-in .barrel-1 { left:20%; animation: br-barrel1 3s ease-in-out infinite; }
.scn-barrells-rolled-in .barrel-2 { left:55%; animation: br-barrel2 4s ease-in-out infinite; }
.scn-barrells-rolled-in .stone { position:absolute; bottom:28%; width:25px; height:20px; background: #4a3a2a; border-radius: 40% 40% 40% 40% / 60% 60% 40% 40%; box-shadow: inset 0 2px 4px rgba(0,0,0,.3); }
.scn-barrells-rolled-in .stone-1 { left:18%; animation: br-stone1 5s ease-in-out infinite; }
.scn-barrells-rolled-in .stone-2 { left:72%; animation: br-stone2 6s ease-in-out infinite; }
.scn-barrells-rolled-in .figure-pete { position:absolute; bottom:30%; left:38%; width:20px; height:40px; background: linear-gradient(180deg, #3a2a1a 0%, #1a0a00 100%); border-radius: 40% 40% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom; animation: br-pete 2s ease-in-out infinite; }
.scn-barrells-rolled-in .figure-mose { position:absolute; bottom:30%; left:68%; width:22px; height:42px; background: linear-gradient(180deg, #2a1a0a 0%, #0a0000 100%); border-radius: 45% 45% 40% 40% / 65% 65% 35% 35%; transform-origin: bottom; animation: br-mose 2.5s ease-in-out infinite; }
@keyframes br-fire   { 0% { transform:translateX(-50%) scale(1); opacity:0.5 } 50% { transform:translateX(-50%) scale(1.05); opacity:0.7 } 100% { transform:translateX(-50%) scale(0.95); opacity:0.6 } }
@keyframes br-barrel1 { 0%,100% { transform: rotate(0deg) translateY(0); } 25% { transform: rotate(3deg) translateY(-2px); } 50% { transform: rotate(0deg) translateY(0); } 75% { transform: rotate(-3deg) translateY(-1px); } }
@keyframes br-barrel2 { 0%,100% { transform: rotate(0deg) translateY(0); } 30% { transform: rotate(-2deg) translateY(-3px); } 60% { transform: rotate(2deg) translateY(-1px); } }
@keyframes br-stone1 { 0%,100% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-1px) rotate(2deg); } }
@keyframes br-stone2 { 0%,100% { transform: translateY(0) rotate(0deg); } 40% { transform: translateY(-2px) rotate(-3deg); } 80% { transform: translateY(0) rotate(1deg); } }
@keyframes br-pete { 0%,100% { transform: rotate(0deg) translateY(0); } 25% { transform: rotate(2deg) translateY(-1px); } 50% { transform: rotate(-1deg) translateY(0); } 75% { transform: rotate(1deg) translateY(-2px); } }
@keyframes br-mose { 0%,100% { transform: rotate(0deg) translateY(0); } 20% { transform: rotate(-3deg) translateY(-1px); } 60% { transform: rotate(2deg) translateY(-2px); } }

/* george-agrees-to-read */
.scn-george-agrees-to-read {
  background: linear-gradient(180deg, #2a1a0a 0%, #5a3a1a 40%, #7a4a1a 70%, #3a1a00 100%), radial-gradient(ellipse at 50% 30%, #a06030 0%, transparent 70%);
}
.scn-george-agrees-to-read .bg-room { position:absolute; inset:0; background: linear-gradient(180deg, #3a2210 0%, #5a3a1a 60%, #2a1000 100%); }
.scn-george-agrees-to-read .fireplace { position:absolute; bottom:15%; left:15%; width:120px; height:80px; background: linear-gradient(180deg, #4a2a10 0%, #2a1000 100%); border-radius: 5% 5% 20% 20% / 10% 10% 80% 80%; box-shadow: inset 0 10px 20px rgba(0,0,0,.5); }
.scn-george-agrees-to-read .fire-flame { position:absolute; bottom:18%; left:23%; width:40px; height:60px; background: radial-gradient(ellipse 50% 100%, #ff8040 0%, #d06020 50%, transparent 100%); transform-origin: bottom; animation: ga-fire 1.5s ease-in-out infinite alternate; }
.scn-george-agrees-to-read .table { position:absolute; bottom:20%; left:40%; width:120px; height:18px; background: linear-gradient(90deg, #5a3a1a 0%, #8a6a3a 50%, #5a3a1a 100%); border-radius: 10% 10% 5% 5% / 50% 50% 30% 30%; box-shadow: 0 4px 8px rgba(0,0,0,.4); }
.scn-george-agrees-to-read .george-figure { position:absolute; bottom:20%; left:52%; width:24px; height:45px; background: linear-gradient(180deg, #3a2a1a 0%, #1a0a00 100%); border-radius: 40% 40% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom; animation: ga-george 4s ease-in-out infinite; }
.scn-george-agrees-to-read .book { position:absolute; bottom:28%; left:50%; width:30px; height:22px; background: linear-gradient(135deg, #8a6a3a 0%, #6a4a1a 100%); border-radius: 5% 5% 20% 20% / 10% 10% 30% 30%; transform: rotate(-10deg); box-shadow: 0 2px 4px rgba(0,0,0,.3); animation: ga-book 6s ease-in-out infinite; }
.scn-george-agrees-to-read .glow-light { position:absolute; bottom:30%; left:50%; width:100px; height:100px; transform:translateX(-50%); background: radial-gradient(circle, #ffa040 0%, #d07030 30%, transparent 80%); opacity:0.4; animation: ga-glow 3s ease-in-out infinite alternate; }
.scn-george-agrees-to-read .shadow-figures { position:absolute; bottom:15%; right:10%; width:80px; height:50px; background: radial-gradient(ellipse 80% 100%, rgba(0,0,0,0.3) 0%, transparent 100%); animation: ga-shadows 8s ease-in-out infinite; }
@keyframes ga-fire   { 0% { transform: scaleY(1) translateY(0); opacity:0.8 } 50% { transform: scaleY(1.15) translateY(-5px); opacity:1 } 100% { transform: scaleY(0.9) translateY(2px); opacity:0.7 } }
@keyframes ga-george { 0%,100% { transform: rotate(0deg) translateY(0); } 25% { transform: rotate(1deg) translateY(-1px); } 50% { transform: rotate(-1deg) translateY(0); } 75% { transform: rotate(0deg) translateY(-2px); } }
@keyframes ga-book   { 0%,100% { transform: rotate(-10deg) translateY(0); } 50% { transform: rotate(-7deg) translateY(-1px); } }
@keyframes ga-glow   { 0% { opacity:0.3; transform:translateX(-50%) scale(1); } 50% { opacity:0.5; transform:translateX(-50%) scale(1.05); } 100% { opacity:0.4; transform:translateX(-50%) scale(0.95); } }
@keyframes ga-shadows{ 0%,100% { transform: scaleX(1); } 25% { transform: scaleX(1.1); } 75% { transform: scaleX(0.9); } }

/* singing-commences */
.scn-singing-commences {
  background: linear-gradient(180deg, #2a1a0a 0%, #4a2a12 40%, #6a3a1a 70%, #2a1000 100%), radial-gradient(ellipse at 50% 30%, #b06030 0%, transparent 60%);
}
.scn-singing-commences .bg-meeting { position:absolute; inset:0; background: linear-gradient(180deg, #3a2210 0%, #5a3a1a 60%, #1a0a00 100%); }
.scn-singing-commences .firepit { position:absolute; bottom:25%; left:50%; width:100px; height:50px; transform:translateX(-50%); background: radial-gradient(ellipse 50% 100%, #ff8030 0%, #a04820 60%, transparent 100%); opacity:0.5; animation: sc-fire 2s ease-in-out infinite alternate; }
.scn-singing-commences .group-figures { position:absolute; bottom:15%; left:10%; width:80%; height:30%; background: radial-gradient(ellipse 80% 100%, rgba(30,15,5,0.8) 0%, transparent 100%); animation: sc-group 12s ease-in-out infinite; }
.scn-singing-commences .figure-front { position:absolute; bottom:15%; left:45%; width:25px; height:50px; background: linear-gradient(180deg, #2a1a0a 0%, #0a0000 100%); border-radius: 40% 40% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom; animation: sc-front 3s ease-in-out infinite; }
.scn-singing-commences .figure-back-1 { position:absolute; bottom:18%; left:55%; width:22px; height:44px; background: linear-gradient(180deg, #1a0a00 0%, #000000 100%); border-radius: 40% 40% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom; animation: sc-back1 4s ease-in-out infinite; }
.scn-singing-commences .figure-back-2 { position:absolute; bottom:20%; left:35%; width:20px; height:40px; background: linear-gradient(180deg, #2a1a0a 0%, #0a0000 100%); border-radius: 40% 40% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom; animation: sc-back2 5s ease-in-out infinite; }
.scn-singing-commences .light-rays { position:absolute; top:0; left:30%; width:40%; height:100%; background: linear-gradient(180deg, rgba(255,160,60,0.15) 0%, transparent 100%); clip-path: polygon(30% 0, 70% 0, 60% 100%, 40% 100%); animation: sc-rays 6s ease-in-out infinite; }
.scn-singing-commences .smoke { position:absolute; top:10%; right:20%; width:60px; height:30px; background: linear-gradient(180deg, rgba(80,60,40,0.3) 0%, transparent 100%); border-radius: 50%; filter: blur(8px); animation: sc-smoke 10s linear infinite; }
@keyframes sc-fire   { 0% { transform:translateX(-50%) scaleY(1); opacity:0.4; } 50% { transform:translateX(-50%) scaleY(1.2); opacity:0.6; } 100% { transform:translateX(-50%) scaleY(0.8); opacity:0.5; } }
@keyframes sc-group  { 0%,100% { transform: scaleX(1); } 25% { transform: scaleX(1.02); } 75% { transform: scaleX(0.98); } }
@keyframes sc-front  { 0%,100% { transform: rotate(0deg) translateY(0); } 20% { transform: rotate(2deg) translateY(-1px); } 40% { transform: rotate(-2deg) translateY(0); } 60% { transform: rotate(1deg) translateY(-2px); } 80% { transform: rotate(-1deg) translateY(0); } }
@keyframes sc-back1 { 0%,100% { transform: rotate(0deg) translateY(0); } 30% { transform: rotate(1deg) translateY(-2px); } 60% { transform: rotate(-1deg) translateY(0); } }
@keyframes sc-back2 { 0%,100% { transform: rotate(0deg) translateY(0); } 25% { transform: rotate(-2deg) translateY(-1px); } 70% { transform: rotate(2deg) translateY(-2px); } }
@keyframes sc-rays  { 0%,100% { opacity:0.4; } 50% { opacity:0.7; } }
@keyframes sc-smoke { 0% { transform: translateX(0) translateY(0); opacity:0.3; } 50% { transform: translateX(10px) translateY(-15px); opacity:0.5; } 100% { transform: translateX(20px) translateY(-30px); opacity:0; } }

/* hymn-singing-favorites */
.scn-hymn-singing-favorites {
  background: linear-gradient(180deg, #1a0a00 0%, #3a1a0a 40%, #5a2a0a 70%, #1a0000 100%), radial-gradient(ellipse at 50% 60%, #c07030 0%, transparent 70%);
}
.scn-hymn-singing-favorites .bg-dark { position:absolute; inset:0; background: linear-gradient(180deg, #2a1000 0%, #4a1a0a 60%, #0a0000 100%); }
.scn-hymn-singing-favorites .hymn-book { position:absolute; bottom:20%; left:50%; width:80px; height:60px; transform:translateX(-50%) rotate(5deg); background: linear-gradient(135deg, #6a4a1a 0%, #4a2a0a 100%); border-radius: 5% 5% 15% 15% / 10% 10% 30% 30%; box-shadow: 0 6px 12px rgba(0,0,0,.5); animation: hf-book 6s ease-in-out infinite; }
.scn-hymn-singing-favorites .book-glow { position:absolute; bottom:25%; left:50%; width:140px; height:80px; transform:translateX(-50%); background: radial-gradient(circle, #ffa040 0%, #d07030 40%, transparent 80%); opacity:0.5; animation: hf-glow 2s ease-in-out infinite alternate; }
.scn-hymn-singing-favorites .hands-left { position:absolute; bottom:22%; left:38%; width:14px; height:18px; background: linear-gradient(180deg, #3a2a1a 0%, #1a0a00 100%); border-radius: 40% 40% 40% 40% / 60% 60% 40% 40%; transform: rotate(-20deg); transform-origin: bottom; animation: hf-handl 3s ease-in-out infinite; }
.scn-hymn-singing-favorites .hands-right { position:absolute; bottom:22%; right:38%; width:14px; height:18px; background: linear-gradient(180deg, #3a2a1a 0%, #1a0a00 100%); border-radius: 40% 40% 40% 40% / 60% 60% 40% 40%; transform: rotate(20deg); transform-origin: bottom; animation: hf-handr 3s ease-in-out infinite reverse; }
.scn-hymn-singing-favorites .flame-bottom { position:absolute; bottom:10%; left:50%; width:80px; height:40px; transform:translateX(-50%); background: radial-gradient(ellipse 50% 100%, #ff8030 0%, #a04020 60%, transparent 100%); opacity:0.6; animation: hf-flame 1.5s ease-in-out infinite alternate; }
.scn-hymn-singing-favorites .notes-note { position:absolute; top:30%; left:30%; width:10px; height:10px; background: radial-gradient(circle, #d08040 0%, transparent 100%); border-radius: 50%; box-shadow: 0 0 6px 2px rgba(208,128,64,0); animation: hf-note1 8s ease-in-out infinite; }
.scn-hymn-singing-favorites .notes-trailing { position:absolute; top:20%; right:20%; width:8px; height:8px; background: radial-gradient(circle, #b06030 0%, transparent 100%); border-radius: 50%; animation: hf-note2 10s ease-in-out infinite; }
@keyframes hf-book   { 0%,100% { transform:translateX(-50%) rotate(5deg) translateY(0); } 50% { transform:translateX(-50%) rotate(3deg) translateY(-2px); } }
@keyframes hf-glow   { 0% { opacity:0.4; transform:translateX(-50%) scale(1); } 50% { opacity:0.6; transform:translateX(-50%) scale(1.05); } 100% { opacity:0.5; transform:translateX(-50%) scale(0.95); } }
@keyframes hf-handl  { 0%,100% { transform: rotate(-20deg) translateY(0); } 25% { transform: rotate(-18deg) translateY(-1px); } 50% { transform: rotate(-22deg) translateY(0); } 75% { transform: rotate(-19deg) translateY(-2px); } }
@keyframes hf-handr  { 0%,100% { transform: rotate(20deg) translateY(0); } 25% { transform: rotate(18deg) translateY(-1px); } 50% { transform: rotate(22deg) translateY(0); } 75% { transform: rotate(19deg) translateY(-2px); } }
@keyframes hf-flame  { 0% { transform:translateX(-50%) scaleY(1); opacity:0.5; } 50% { transform:translateX(-50%) scaleY(1.2); opacity:0.7; } 100% { transform:translateX(-50%) scaleY(0.9); opacity:0.6; } }
@keyframes hf-note1  { 0% { transform: translate(0,0) rotate(0deg); opacity:0; } 20% { opacity:0.6; } 40% { transform: translate(20px,-20px) rotate(20deg); opacity:0.8; } 60% { transform: translate(40px,-40px) rotate(40deg); opacity:0.4; } 80% { transform: translate(60px,-60px) rotate(60deg); opacity:0.1; } 100% { transform: translate(80px,-80px) rotate(80deg); opacity:0; } }
@keyframes hf-note2  { 0% { transform: translate(0,0) rotate(0deg); opacity:0; } 25% { opacity:0.5; } 50% { transform: translate(-30px,-30px) rotate(-30deg); opacity:0.7; } 75% { transform: translate(-60px,-60px) rotate(-60deg); opacity:0.2; } 100% { transform: translate(-90px,-90px) rotate(-90deg); opacity:0; } }

/* Scene: mrs-shelby-pleads-for-tom */
.scn-mrs-shelby-pleads-for-tom {
  background: linear-gradient(180deg, #1e1c16 0%, #2a241d 40%, #1a1813 100%), radial-gradient(ellipse at 50% 100%, #2a241d 0%, transparent 80%);
}
.scn-mrs-shelby-pleads-for-tom .wall-bg {
  position: absolute; inset: 0 0 25% 0;
  background: linear-gradient(90deg, #1a180f 0%, #2a251e 50%, #1a180f 100%);
  animation: sp1-wall 12s ease-in-out infinite alternate;
}
.scn-mrs-shelby-pleads-for-tom .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 25%;
  background: linear-gradient(180deg, #2a241d 0%, #1a1813 100%);
  border-radius: 0 0 20% 20% / 0 0 10% 10%;
  box-shadow: inset 0 10px 20px rgba(0,0,0,.6);
}
.scn-mrs-shelby-pleads-for-tom .window-frame {
  position: absolute; top: 10%; left: 68%; width: 24%; height: 50%;
  border: 3px solid #3a3228; border-radius: 2px;
  background: transparent; box-shadow: inset 0 0 0 1px #2a241d;
}
.scn-mrs-shelby-pleads-for-tom .window-pane {
  position: absolute; top: 11%; left: 69%; width: 22%; height: 48%;
  background: radial-gradient(ellipse at 70% 50%, rgba(100,110,130,.25) 0%, rgba(20,20,30,.4) 80%);
  animation: sp1-pane 10s ease-in-out infinite alternate;
}
.scn-mrs-shelby-pleads-for-tom .candle {
  position: absolute; bottom: 28%; left: 20%; width: 3%; height: 15%;
  background: linear-gradient(180deg, #d4a060 0%, #a07030 50%, #604020 100%);
  border-radius: 30% 30% 10% 10% / 40% 40% 20% 20%;
  animation: sp1-candle 4s ease-in-out infinite alternate;
}
.scn-mrs-shelby-pleads-for-tom .candle-glow {
  position: absolute; bottom: 26%; left: 18%; width: 8%; height: 25%;
  background: radial-gradient(ellipse, #f0c080 0%, rgba(240,192,128,.3) 50%, transparent 100%);
  filter: blur(6px); animation: sp1-glow 3s ease-in-out infinite alternate;
}
.scn-mrs-shelby-pleads-for-tom .figure-woman {
  position: absolute; bottom: 25%; left: 45%; width: 12%; height: 50%;
  background: linear-gradient(180deg, #2a241d 0%, #1a1813 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: sp1-body 6s ease-in-out infinite alternate;
}
.scn-mrs-shelby-pleads-for-tom .arm-raised {
  position: absolute; bottom: 50%; left: 48%; width: 4%; height: 20%;
  background: linear-gradient(180deg, #2a241d 0%, #1a1813 100%);
  border-radius: 50% 50% 20% 20% / 30% 30% 10% 10%;
  transform-origin: 50% 80%;
  animation: sp1-arm 3s ease-in-out infinite alternate;
}
@keyframes sp1-wall { 0% { opacity: .7 } 50% { opacity: .9 } 100% { opacity: .75 } }
@keyframes sp1-pane { 0% { opacity: .3 } 50% { opacity: .5 } 100% { opacity: .35 } }
@keyframes sp1-candle { 0% { transform: scaleY(1) } 50% { transform: scaleY(1.05) } 100% { transform: scaleY(.95) } }
@keyframes sp1-glow { 0% { opacity: .6; transform: scale(1) } 50% { opacity: .8; transform: scale(1.1) } 100% { opacity: .65; transform: scale(.95) } }
@keyframes sp1-body { 0% { transform: translateX(0) rotate(-1deg) } 50% { transform: translateX(3px) rotate(1deg) } 100% { transform: translateX(0) rotate(0) } }
@keyframes sp1-arm { 0% { transform: rotate(-10deg) } 50% { transform: rotate(15deg) } 100% { transform: rotate(-5deg) } }

/* Scene: shelby-claims-helplessness */
.scn-shelby-claims-helplessness {
  background: linear-gradient(180deg, #1c1a14 0%, #2a241d 35%, #181612 100%), radial-gradient(ellipse at 50% 100%, #2a241d 0%, transparent 80%);
}
.scn-shelby-claims-helplessness .wall-bg {
  position: absolute; inset: 0 0 25% 0;
  background: linear-gradient(90deg, #1a180f 0%, #2a251e 50%, #1a180f 100%);
  animation: sh1-wall 15s ease-in-out infinite alternate;
}
.scn-shelby-claims-helplessness .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 25%;
  background: linear-gradient(180deg, #2a241d 0%, #1a1813 100%);
  border-radius: 0 0 20% 20% / 0 0 10% 10%;
  box-shadow: inset 0 10px 20px rgba(0,0,0,.6);
}
.scn-shelby-claims-helplessness .window-frame {
  position: absolute; top: 10%; right: 65%; width: 24%; height: 50%;
  border: 3px solid #3a3228; border-radius: 2px;
  background: transparent; box-shadow: inset 0 0 0 1px #2a241d;
}
.scn-shelby-claims-helplessness .window-pane {
  position: absolute; top: 11%; right: 66%; width: 22%; height: 48%;
  background: radial-gradient(ellipse at 30% 50%, rgba(100,110,130,.25) 0%, rgba(20,20,30,.4) 80%);
  animation: sh1-pane 12s ease-in-out infinite alternate;
}
.scn-shelby-claims-helplessness .table {
  position: absolute; bottom: 20%; left: 30%; width: 30%; height: 8%;
  background: linear-gradient(180deg, #3a3028 0%, #2a221c 100%);
  border-radius: 5px; box-shadow: 0 4px 8px rgba(0,0,0,.5);
}
.scn-shelby-claims-helplessness .glass {
  position: absolute; bottom: 26%; left: 44%; width: 4%; height: 10%;
  background: radial-gradient(ellipse, rgba(180,160,120,.4) 0%, transparent 80%);
  border-radius: 20% 20% 10% 10%; border: 1px solid #4a4038;
  animation: sh1-glass 5s ease-in-out infinite alternate;
}
.scn-shelby-claims-helplessness .figure-man {
  position: absolute; bottom: 22%; left: 50%; width: 14%; height: 55%;
  background: linear-gradient(180deg, #2e2820 0%, #1e1812 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: sh1-body 7s ease-in-out infinite alternate;
}
.scn-shelby-claims-helplessness .hand-spread {
  position: absolute; bottom: 42%; left: 52%; width: 6%; height: 8%;
  background: #1a140e; border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%;
  transform-origin: 50% 100%;
  animation: sh1-hand 4s ease-in-out infinite alternate;
}
@keyframes sh1-wall { 0% { opacity: .7 } 50% { opacity: .9 } 100% { opacity: .75 } }
@keyframes sh1-pane { 0% { opacity: .2 } 50% { opacity: .4 } 100% { opacity: .25 } }
@keyframes sh1-glass { 0% { opacity: .3 } 50% { opacity: .6 } 100% { opacity: .35 } }
@keyframes sh1-body { 0% { transform: translateX(0) rotate(-2deg) } 50% { transform: translateX(4px) rotate(2deg) } 100% { transform: translateX(0) rotate(0) } }
@keyframes sh1-hand { 0% { transform: rotate(0) scale(1) } 50% { transform: rotate(-10deg) scale(1.1) } 100% { transform: rotate(0) scale(1) } }

/* Scene: mrs-shelby-questions-faith */
.scn-mrs-shelby-questions-faith {
  background: linear-gradient(180deg, #1e1c1a 0%, #2a2520 40%, #181612 100%), radial-gradient(ellipse at 50% 100%, #2a2520 0%, transparent 80%);
}
.scn-mrs-shelby-questions-faith .wall-bg {
  position: absolute; inset: 0 0 25% 0;
  background: linear-gradient(90deg, #1a1810 0%, #2a251e 50%, #1a1810 100%);
  animation: mqf-wall 14s ease-in-out infinite alternate;
}
.scn-mrs-shelby-questions-faith .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 25%;
  background: linear-gradient(180deg, #2a241d 0%, #1a1813 100%);
  border-radius: 0 0 20% 20% / 0 0 10% 10%;
  box-shadow: inset 0 10px 20px rgba(0,0,0,.6);
}
.scn-mrs-shelby-questions-faith .window-frame {
  position: absolute; top: 8%; left: 10%; width: 20%; height: 45%;
  border: 3px solid #3a3228; border-radius: 2px;
  background: transparent; box-shadow: inset 0 0 0 1px #2a241d;
}
.scn-mrs-shelby-questions-faith .window-pane {
  position: absolute; top: 9%; left: 11%; width: 18%; height: 43%;
  background: radial-gradient(ellipse at 30% 50%, rgba(80,90,110,.2) 0%, rgba(20,20,30,.35) 80%);
  animation: mqf-pane 11s ease-in-out infinite alternate;
}
.scn-mrs-shelby-questions-faith .candle {
  position: absolute; bottom: 28%; left: 22%; width: 3%; height: 14%;
  background: linear-gradient(180deg, #d4a060 0%, #a07030 50%, #604020 100%);
  border-radius: 30% 30% 10% 10% / 40% 40% 20% 20%;
  animation: mqf-candle 5s ease-in-out infinite alternate;
}
.scn-mrs-shelby-questions-faith .candle-glow {
  position: absolute; bottom: 26%; left: 20%; width: 8%; height: 24%;
  background: radial-gradient(ellipse, #f0c080 0%, rgba(240,192,128,.3) 50%, transparent 100%);
  filter: blur(6px); animation: mqf-glow 3.5s ease-in-out infinite alternate;
}
.scn-mrs-shelby-questions-faith .figure-woman {
  position: absolute; bottom: 23%; left: 50%; width: 12%; height: 52%;
  background: linear-gradient(180deg, #2e2820 0%, #1a1812 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: mqf-body 8s ease-in-out infinite alternate;
}
.scn-mrs-shelby-questions-faith .cross {
  position: absolute; bottom: 32%; left: 52%; width: 2%; height: 20%;
  background: #4a3a30; border-radius: 20%;
  box-shadow: 0 0 6px 2px rgba(200,180,120,.3);
  animation: mqf-cross 6s ease-in-out infinite alternate;
}
.scn-mrs-shelby-questions-faith .cross::before {
  content: ''; position: absolute; top: 40%; left: -150%; width: 400%; height: 20%;
  background: #4a3a30; border-radius: 20%;
}
.scn-mrs-shelby-questions-faith .child-silhouette {
  position: absolute; bottom: 26%; left: 54%; width: 6%; height: 18%;
  background: linear-gradient(180deg, #2a241d 0%, #1a1812 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%;
  animation: mqf-child 5s ease-in-out infinite alternate;
}
@keyframes mqf-wall { 0% { opacity: .7 } 50% { opacity: .9 } 100% { opacity: .75 } }
@keyframes mqf-pane { 0% { opacity: .2 } 50% { opacity: .4 } 100% { opacity: .25 } }
@keyframes mqf-candle { 0% { transform: scaleY(1) } 50% { transform: scaleY(1.04) } 100% { transform: scaleY(.95) } }
@keyframes mqf-glow { 0% { opacity: .5; transform: scale(1) } 50% { opacity: .75; transform: scale(1.08) } 100% { opacity: .55; transform: scale(.95) } }
@keyframes mqf-body { 0% { transform: translateX(0) rotate(-1deg) } 50% { transform: translateX(2px) rotate(1deg) } 100% { transform: translateX(0) rotate(0) } }
@keyframes mqf-cross { 0% { opacity: .6; box-shadow: 0 0 6px 2px rgba(200,180,120,.2) } 50% { opacity: .9; box-shadow: 0 0 10px 4px rgba(200,180,120,.4) } 100% { opacity: .65; box-shadow: 0 0 6px 2px rgba(200,180,120,.2) } }
@keyframes mqf-child { 0% { transform: translateY(0) } 50% { transform: translateY(-2px) } 100% { transform: translateY(0) } }

/* Scene: shelby-reveals-mortgage */
.scn-shelby-reveals-mortgage {
  background: linear-gradient(180deg, #141210 0%, #1c1a16 40%, #0e0c0a 100%), radial-gradient(ellipse at 50% 100%, #1c1a16 0%, transparent 80%);
}
.scn-shelby-reveals-mortgage .wall-bg {
  position: absolute; inset: 0 0 25% 0;
  background: linear-gradient(90deg, #161410 0%, #201c18 50%, #161410 100%);
  animation: srm-wall 16s ease-in-out infinite alternate;
}
.scn-shelby-reveals-mortgage .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 25%;
  background: linear-gradient(180deg, #1c1814 0%, #0e0c0a 100%);
  border-radius: 0 0 20% 20% / 0 0 10% 10%;
  box-shadow: inset 0 10px 20px rgba(0,0,0,.7);
}
.scn-shelby-reveals-mortgage .window-frame {
  position: absolute; top: 12%; right: 15%; width: 20%; height: 42%;
  border: 3px solid #2a241e; border-radius: 2px;
  background: transparent; box-shadow: inset 0 0 0 1px #1a1612;
}
.scn-shelby-reveals-mortgage .window-pane {
  position: absolute; top: 13%; right: 16%; width: 18%; height: 40%;
  background: radial-gradient(ellipse at 70% 50%, rgba(60,70,90,.15) 0%, rgba(10,10,15,.4) 80%);
  animation: srm-pane 13s ease-in-out infinite alternate;
}
.scn-shelby-reveals-mortgage .desk {
  position: absolute; bottom: 18%; left: 25%; width: 40%; height: 10%;
  background: linear-gradient(180deg, #2a221c 0%, #1a140e 100%);
  border-radius: 4px; box-shadow: 0 6px 12px rgba(0,0,0,.5);
}
.scn-shelby-reveals-mortgage .document {
  position: absolute; bottom: 22%; left: 40%; width: 12%; height: 14%;
  background: linear-gradient(135deg, #d4c8a8 0%, #b8a880 100%);
  border-radius: 2px; box-shadow: 0 2px 4px rgba(0,0,0,.3);
  transform-origin: 50% 100%;
  animation: srm-doc 6s ease-in-out infinite alternate;
}
.scn-shelby-reveals-mortgage .figure-man {
  position: absolute; bottom: 20%; left: 45%; width: 16%; height: 58%;
  background: linear-gradient(180deg, #2a241e 0%, #1a1612 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: srm-body 9s ease-in-out infinite alternate;
}
.scn-shelby-reveals-mortgage .head-down {
  position: absolute; bottom: 65%; left: 47%; width: 8%; height: 12%;
  background: #1a140e; border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: 50% 100%;
  animation: srm-head 4s ease-in-out infinite alternate;
}
@keyframes srm-wall { 0% { opacity: .6 } 50% { opacity: .8 } 100% { opacity: .65 } }
@keyframes srm-pane { 0% { opacity: .15 } 50% { opacity: .35 } 100% { opacity: .2 } }
@keyframes srm-doc { 0% { transform: rotate(-3deg) } 50% { transform: rotate(2deg) } 100% { transform: rotate(-1deg) } }
@keyframes srm-body { 0% { transform: translateX(0) translateY(0) } 50% { transform: translateX(2px) translateY(-2px) } 100% { transform: translateX(0) translateY(0) } }
@keyframes srm-head { 0% { transform: rotate(-5deg) } 50% { transform: rotate(10deg) } 100% { transform: rotate(0) } }

/* legree-conscience-ghost */
.scn-legree-conscience-ghost {
  background: linear-gradient(180deg, #0d0d1a 0%, #1a1228 40%, #2a1a3a 100%),
              radial-gradient(ellipse at 50% 20%, #3a2a4a 0%, transparent 60%);
}
.scn-legree-conscience-ghost .room-bg {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, #14101e 0%, #1a1428 50%, #0f0c1a 100%);
  animation: lcg-darkpulse 12s ease-in-out infinite alternate;
}
.scn-legree-conscience-ghost .wall-left {
  position: absolute; left: 0; top: 10%; width: 30%; height: 80%;
  background: linear-gradient(135deg, #1e1a2a, #140e1e);
  border-radius: 0 40% 40% 0; box-shadow: inset -6px 0 12px rgba(0,0,0,0.6);
}
.scn-legree-conscience-ghost .wall-right {
  position: absolute; right: 0; top: 10%; width: 30%; height: 80%;
  background: linear-gradient(225deg, #1e1a2a, #140e1e);
  border-radius: 40% 0 0 40%; box-shadow: inset 6px 0 12px rgba(0,0,0,0.6);
}
.scn-legree-conscience-ghost .floor {
  position: absolute; bottom: 0; left: 10%; right: 10%; height: 20%;
  background: linear-gradient(180deg, #1a1428, #0c0812);
  border-radius: 20% 20% 0 0; box-shadow: inset 0 8px 20px rgba(0,0,0,0.5);
}
.scn-legree-conscience-ghost .ghost-shroud {
  position: absolute; bottom: 20%; left: 50%; transform: translateX(-50%);
  width: 80px; height: 120px;
  background: radial-gradient(ellipse at 40% 20%, rgba(200,180,220,0.25) 0%, rgba(160,140,180,0.15) 60%, transparent 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%; filter: blur(2px);
  animation: lcg-shroud 8s ease-in-out infinite alternate;
}
.scn-legree-conscience-ghost .ghost-eyes {
  position: absolute; bottom: 50%; left: 50%; transform: translate(-50%, -50%);
  width: 40px; height: 20px; display: flex; justify-content: space-between;
}
.scn-legree-conscience-ghost .ghost-eyes::before,
.scn-legree-conscience-ghost .ghost-eyes::after {
  content: ''; width: 12px; height: 14px;
  background: radial-gradient(circle, #e0d0f0 0%, #b098c8 80%);
  border-radius: 50%; box-shadow: 0 0 16px 4px rgba(200,180,220,0.5);
  animation: lcg-blink 4s ease-in-out infinite;
}
.scn-legree-conscience-ghost .shadow-cast {
  position: absolute; bottom: 20%; left: 40%; width: 100px; height: 40px;
  background: radial-gradient(ellipse, rgba(0,0,0,0.6) 0%, transparent 100%);
  transform: skewX(-10deg); filter: blur(6px);
}
.scn-legree-conscience-ghost .faint-light {
  position: absolute; bottom: 30%; right: 15%; width: 10px; height: 10px;
  background: radial-gradient(circle, #c8a8d8 0%, transparent 80%);
  border-radius: 50%; box-shadow: 0 0 40px 20px rgba(180,150,200,0.15);
  animation: lcg-glimmer 6s ease-in-out infinite alternate;
}
@keyframes lcg-darkpulse {
  0% { opacity: 0.7; } 50% { opacity: 0.85; } 100% { opacity: 0.7; }
}
@keyframes lcg-shroud {
  0% { transform: translateX(-50%) translateY(0) scaleY(1) rotate(0deg); opacity: 0.4; }
  50% { transform: translateX(-50%) translateY(-8px) scaleY(1.05) rotate(2deg); opacity: 0.6; }
  100% { transform: translateX(-50%) translateY(0) scaleY(1) rotate(-1deg); opacity: 0.45; }
}
@keyframes lcg-blink {
  0%, 100% { transform: scaleY(1); } 45% { transform: scaleY(1); } 50% { transform: scaleY(0.1); } 55% { transform: scaleY(1); }
}
@keyframes lcg-glimmer {
  0% { opacity: 0.2; transform: scale(0.8); }
  50% { opacity: 0.5; transform: scale(1.2); }
  100% { opacity: 0.25; transform: scale(0.9); }
}

/* legrees-nightmare */
.scn-legrees-nightmare {
  background: linear-gradient(180deg, #0a0a12 0%, #14142a 40%, #1a1a3a 100%),
              radial-gradient(ellipse at 30% 50%, #2a2a4e 0%, transparent 70%);
}
.scn-legrees-nightmare .night-bg {
  position: absolute; inset: 0;
  background: linear-gradient(135deg, #0e0e1e, #161632, #0a0a18);
  animation: ln-darkwave 18s ease-in-out infinite alternate;
}
.scn-legrees-nightmare .bed-frame {
  position: absolute; bottom: 5%; left: 10%; right: 10%; height: 30%;
  background: linear-gradient(180deg, #2a1a1e 0%, #1a0e12 100%);
  border-radius: 8px; box-shadow: 0 4px 12px rgba(0,0,0,0.7);
}
.scn-legrees-nightmare .shroud-hold {
  position: absolute; bottom: 35%; left: 40%; width: 90px; height: 100px;
  background: radial-gradient(ellipse at 50% 20%, rgba(220,210,230,0.3) 0%, rgba(180,170,200,0.1) 80%);
  border-radius: 40% 60% 30% 50% / 60% 40% 50% 30%; filter: blur(1px);
  animation: ln-shroud 6s ease-in-out infinite alternate;
}
.scn-legrees-nightmare .cassy-figure {
  position: absolute; bottom: 30%; left: 35%; width: 30px; height: 50px;
  background: linear-gradient(180deg, #1a1824 0%, #12101a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center;
  animation: ln-figure 7s ease-in-out infinite;
}
.scn-legrees-nightmare .hand-grip {
  position: absolute; bottom: 38%; left: 44%; width: 10px; height: 20px;
  background: linear-gradient(180deg, #2a2030, #1a1420);
  border-radius: 30% 30% 20% 20% / 40% 40% 30% 30%;
  animation: ln-hand 6s ease-in-out infinite alternate;
}
.scn-legrees-nightmare .moon-glow {
  position: absolute; top: 8%; right: 12%; width: 60px; height: 60px;
  background: radial-gradient(circle, rgba(160,180,220,0.15) 0%, transparent 80%);
  border-radius: 50%; filter: blur(10px);
  animation: ln-moonpulse 8s ease-in-out infinite alternate;
}
.scn-legrees-nightmare .floor-shadow {
  position: absolute; bottom: 5%; left: 30%; width: 120px; height: 30px;
  background: radial-gradient(ellipse, rgba(0,0,0,0.5) 0%, transparent 100%);
  filter: blur(8px);
}
@keyframes ln-darkwave {
  0% { opacity: 0.8; } 50% { opacity: 0.95; } 100% { opacity: 0.85; }
}
@keyframes ln-shroud {
  0% { transform: translateY(0) rotate(-3deg) scaleX(1); opacity: 0.4; }
  50% { transform: translateY(-10px) rotate(2deg) scaleX(1.1); opacity: 0.7; }
  100% { transform: translateY(-3px) rotate(1deg) scaleX(0.95); opacity: 0.5; }
}
@keyframes ln-figure {
  0% { transform: translateY(0) rotate(0deg); }
  50% { transform: translateY(-4px) rotate(2deg); }
  100% { transform: translateY(0) rotate(-1deg); }
}
@keyframes ln-hand {
  0% { transform: translate(0, 0) rotate(0deg); }
  50% { transform: translate(5px, -2px) rotate(5deg); }
  100% { transform: translate(2px, 0) rotate(-2deg); }
}
@keyframes ln-moonpulse {
  0% { opacity: 0.15; transform: scale(0.9); }
  50% { opacity: 0.3; transform: scale(1.2); }
  100% { opacity: 0.2; transform: scale(1); }
}

/* legree-after-ghost */
.scn-legree-after-ghost {
  background: linear-gradient(180deg, #1a120e 0%, #2a1a14 40%, #1e1210 100%),
              radial-gradient(ellipse at 60% 60%, #3a2a1e 0%, transparent 60%);
}
.scn-legree-after-ghost .tavern-wall {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, #1c1410, #241a14);
  animation: lag-wallflick 10s ease-in-out infinite alternate;
}
.scn-legree-after-ghost .table {
  position: absolute; bottom: 10%; left: 15%; right: 15%; height: 20%;
  background: linear-gradient(180deg, #3a2a1a 0%, #1e140e 100%);
  border-radius: 8px 8px 0 0; box-shadow: 0 4px 12px rgba(0,0,0,0.6);
}
.scn-legree-after-ghost .bottle {
  position: absolute; bottom: 18%; left: 25%; width: 18px; height: 30px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a10 100%);
  border-radius: 30% 30% 10% 10% / 40% 40% 10% 10%;
  animation: lag-bottle 4s ease-in-out infinite;
}
.scn-legree-after-ghost .glass {
  position: absolute; bottom: 16%; left: 35%; width: 20px; height: 16px;
  background: radial-gradient(ellipse at 50% 40%, rgba(200,180,160,0.2) 0%, transparent 100%);
  border: 1px solid rgba(200,180,160,0.15); border-radius: 0 0 20% 20%;
  box-shadow: inset 0 -2px 4px rgba(0,0,0,0.3);
}
.scn-legree-after-ghost .legree-silhouette {
  position: absolute; bottom: 20%; left: 50%; transform: translateX(-50%);
  width: 40px; height: 60px;
  background: linear-gradient(180deg, #1a1614 0%, #0e0c0a 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%;
  animation: lag-slump 6s ease-in-out infinite alternate;
}
.scn-legree-after-ghost .candle-stick {
  position: absolute; bottom: 30%; right: 20%; width: 8px; height: 30px;
  background: linear-gradient(180deg, #4a3a2a, #2a1a10);
  border-radius: 10%;
}
.scn-legree-after-ghost .candle-flame {
  position: absolute; bottom: 42%; right: 20%; transform: translateX(-50%);
  width: 10px; height: 18px;
  background: radial-gradient(ellipse at 50% 80%, #ffc860 0%, #e08030 50%, transparent 100%);
  border-radius: 50% 50% 20% 20% / 80% 80% 20% 20%;
  filter: blur(1px);
  animation: lag-flame 2s ease-in-out infinite alternate;
}
.scn-legree-after-ghost .shadow-pool {
  position: absolute; bottom: 10%; left: 20%; width: 120px; height: 30px;
  background: radial-gradient(ellipse, rgba(0,0,0,0.6) 0%, transparent 100%);
  filter: blur(6px);
}
@keyframes lag-wallflick {
  0% { opacity: 0.85; } 50% { opacity: 0.95; } 100% { opacity: 0.9; }
}
@keyframes lag-bottle {
  0% { transform: translateY(0) rotate(0deg); }
  50% { transform: translateY(-2px) rotate(3deg); }
  100% { transform: translateY(0) rotate(-2deg); }
}
@keyframes lag-slump {
  0% { transform: translateX(-50%) translateY(0) rotate(0deg); }
  50% { transform: translateX(-50%) translateY(-3px) rotate(4deg); }
  100% { transform: translateX(-50%) translateY(1px) rotate(-2deg); }
}
@keyframes lag-flame {
  0% { transform: translateX(-50%) scaleY(1) translateY(0); opacity: 0.8; }
  50% { transform: translateX(-50%) scaleY(1.2) translateY(-3px); opacity: 1; }
  100% { transform: translateX(-50%) scaleY(0.8) translateY(2px); opacity: 0.7; }
}

/* fugitives-depart */
.scn-fugitives-depart {
  background: linear-gradient(180deg, #1a1a3e 0%, #3a3a6e 30%, #b0a0c0 60%, #e8d8b0 80%, #c8b878 100%),
              radial-gradient(ellipse at 50% 0%, #ffd8a0 0%, transparent 70%);
}
.scn-fugitives-depart .dawn-sky {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(180deg, #2a2a5e 0%, #6a5a8e 40%, #d0b090 70%, #f0d8a0 100%);
  animation: fd-skyglow 20s ease-in-out infinite alternate;
}
.scn-fugitives-depart .horizon-glow {
  position: absolute; bottom: 40%; left: 0; right: 0; height: 20%;
  background: linear-gradient(180deg, rgba(240,216,160,0.6) 0%, transparent 100%);
  filter: blur(12px);
  animation: fd-horizon 15s ease-in-out infinite alternate;
}
.scn-fugitives-depart .ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 40%;
  background: linear-gradient(180deg, #4a3a2e 0%, #2a1e14 100%);
  border-radius: 40% 60% 0 0 / 30% 40% 0 0;
}
.scn-fugitives-depart .road-path {
  position: absolute; bottom: 15%; left: 20%; right: 20%; height: 25%;
  background: linear-gradient(180deg, #6a5a4a, #3a2a1e);
  border-radius: 20% 20% 0 0;
  clip-path: polygon(15% 0%, 85% 0%, 70% 100%, 30% 100%);
  box-shadow: inset 0 8px 20px rgba(0,0,0,0.4);
}
.scn-fugitives-depart .figure-one {
  position: absolute; bottom: 30%; left: 35%; width: 24px; height: 50px;
  background: linear-gradient(180deg, #1a1a2a 0%, #0e0e1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center;
  animation: fd-walk1 6s ease-in-out infinite;
}
.scn-fugitives-depart .figure-two {
  position: absolute; bottom: 28%; left: 48%; width: 22px; height: 48px;
  background: linear-gradient(180deg, #1a1a2a 0%, #0e0e1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center;
  animation: fd-walk2 7s ease-in-out infinite 0.5s;
}
.scn-fugitives-depart .tree-silhouettes {
  position: absolute; bottom: 40%; left: 5%; right: 5%; height: 60%;
  background: linear-gradient(180deg, transparent 0%, #1a1a2a 100%);
  mask-image: radial-gradient(circle at 20% 80%, black 0%, transparent 50%);
  opacity: 0.6;
  animation: fd-treesway 25s linear infinite alternate;
}
.scn-fugitives-depart .morning-star {
  position: absolute; top: 12%; right: 20%; width: 8px; height: 8px;
  background: radial-gradient(circle, #fff0c0 0%, transparent 100%);
  border-radius: 50%;
  box-shadow: 0 0 20px 10px rgba(255,240,192,0.3);
  animation: fd-star 4s ease-in-out infinite alternate;
}
@keyframes fd-skyglow {
  0% { opacity: 0.8; } 50% { opacity: 1; } 100% { opacity: 0.85; }
}
@keyframes fd-horizon {
  0% { opacity: 0.5; transform: scaleY(1); }
  50% { opacity: 0.8; transform: scaleY(1.2); }
  100% { opacity: 0.6; transform: scaleY(0.9); }
}
@keyframes fd-walk1 {
  0% { transform: translateX(0) translateY(0) rotate(0deg); }
  25% { transform: translateX(4px) translateY(-2px) rotate(3deg); }
  50% { transform: translateX(8px) translateY(0) rotate(-2deg); }
  75% { transform: translateX(12px) translateY(-1px) rotate(2deg); }
  100% { transform: translateX(16px) translateY(0) rotate(0deg); }
}
@keyframes fd-walk2 {
  0% { transform: translateX(0) translateY(0) rotate(0deg); }
  25% { transform: translateX(4px) translateY(-1px) rotate(-2deg); }
  50% { transform: translateX(8px) translateY(-2px) rotate(3deg); }
  75% { transform: translateX(12px) translateY(-1px) rotate(-1deg); }
  100% { transform: translateX(16px) translateY(0) rotate(0deg); }
}
@keyframes fd-treesway {
  0% { transform: translateX(0) rotate(0deg); }
  50% { transform: translateX(-3px) rotate(1deg); }
  100% { transform: translateX(3px) rotate(-1deg); }
}
@keyframes fd-star {
  0% { opacity: 0.3; transform: scale(0.7); }
  50% { opacity: 0.7; transform: scale(1); }
  100% { opacity: 0.4; transform: scale(0.8); }
}

/* steamboat-cotton – dusk calm */
.scn-steamboat-cotton {
  background:
    linear-gradient(180deg, #3a2a5e 0%, #7a5e3e 40%, #b08a5e 70%, #8a6a3e 100%),
    radial-gradient(ellipse at 30% 70%, #d4a050 0%, transparent 60%);
}
.scn-steamboat-cotton .sky-dusk {
  position: absolute; inset: 0 0 50% 0;
  background: linear-gradient(180deg, #2a1a40 0%, #6a4a30 70%, transparent 100%);
  animation: sc-sky 12s ease-in-out infinite alternate;
}
.scn-steamboat-cotton .river {
  position: absolute; bottom: 0; left: 0; right: 0; height: 50%;
  background: linear-gradient(0deg, #1a2a3a 0%, #2a3a4a 100%);
  animation: sc-river 20s ease-in-out infinite alternate;
}
.scn-steamboat-cotton .boat-hull {
  position: absolute; bottom: 25%; left: 20%; width: 60%; height: 12%;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a1a 100%);
  border-radius: 0 0 40% 40% / 0 0 80% 80%;
  box-shadow: 0 -4px 8px rgba(0,0,0,0.3);
  animation: sc-boat-bob 6s ease-in-out infinite;
}
.scn-steamboat-cotton .deck-cotton-1 {
  position: absolute; bottom: 37%; left: 25%; width: 14%; height: 8%;
  background: radial-gradient(ellipse, #c0b090 0%, #8a7a6a 100%);
  border-radius: 20% 20% 10% 10%;
  box-shadow: inset 0 2px 4px rgba(255,255,255,0.2);
  animation: sc-bob-delay 6s ease-in-out infinite alternate;
}
.scn-steamboat-cotton .deck-cotton-2 {
  position: absolute; bottom: 37%; left: 50%; width: 12%; height: 10%;
  background: radial-gradient(ellipse, #c0b090 0%, #8a7a6a 100%);
  border-radius: 20% 20% 10% 10%;
  box-shadow: inset 0 2px 4px rgba(255,255,255,0.2);
  animation: sc-bob-delay 6s ease-in-out infinite alternate-reverse;
}
.scn-steamboat-cotton .smokestack {
  position: absolute; bottom: 45%; left: 40%; width: 6%; height: 15%;
  background: linear-gradient(180deg, #3a3a3a 0%, #1a1a1a 100%);
  border-radius: 10% 10% 5% 5%;
}
.scn-steamboat-cotton .smoke-puff-1 {
  position: absolute; bottom: 58%; left: 38%; width: 10%; height: 8%;
  background: radial-gradient(ellipse, rgba(100,100,100,0.6) 0%, transparent 100%);
  filter: blur(8px);
  animation: sc-smoke 15s linear infinite;
}
.scn-steamboat-cotton .smoke-puff-2 {
  position: absolute; bottom: 55%; left: 45%; width: 8%; height: 6%;
  background: radial-gradient(ellipse, rgba(100,100,100,0.6) 0%, transparent 100%);
  filter: blur(8px);
  animation: sc-smoke 15s linear infinite 5s;
}
@keyframes sc-sky { 0% { opacity:0.7 } 50% { opacity:1 } 100% { opacity:0.8 } }
@keyframes sc-river { 0% { transform: translateY(0) scaleY(1) } 50% { transform: translateY(-4px) scaleY(1.02) } 100% { transform: translateY(0) scaleY(1) } }
@keyframes sc-boat-bob { 0% { transform: translateY(0) } 25% { transform: translateY(-3px) } 50% { transform: translateY(0) } 75% { transform: translateY(2px) } 100% { transform: translateY(0) } }
@keyframes sc-bob-delay { 0% { transform: translateY(0) } 50% { transform: translateY(-2px) } 100% { transform: translateY(0) } }
@keyframes sc-smoke { 0% { transform: translateY(0) scale(1); opacity:0.6 } 50% { transform: translateY(-30px) scale(1.5); opacity:0.3 } 100% { transform: translateY(-60px) scale(2); opacity:0 } }

/* tom-parole – sunlit calm */
.scn-tom-parole {
  background:
    linear-gradient(180deg, #87ceeb 0%, #b0e0e6 50%, #f0e68c 100%),
    radial-gradient(ellipse at 50% 30%, #fff8dc 0%, transparent 60%);
}
.scn-tom-parole .sky-sunny {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #b0e0e6 0%, #f0e68c 100%);
  animation: tp-sky 10s ease-in-out infinite alternate;
}
.scn-tom-parole .ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #6b8e23 0%, #3a5f0b 100%);
  border-radius: 20% 20% 0 0;
}
.scn-tom-parole .fence-left {
  position: absolute; bottom: 35%; left: 5%; width: 3%; height: 30%;
  background: linear-gradient(180deg, #8b7355 0%, #5c4033 100%);
  border-radius: 4px;
  box-shadow: 4px 0 0 #4a3728;
}
.scn-tom-parole .fence-right {
  position: absolute; bottom: 35%; right: 5%; width: 3%; height: 30%;
  background: linear-gradient(180deg, #8b7355 0%, #5c4033 100%);
  border-radius: 4px;
  box-shadow: -4px 0 0 #4a3728;
}
.scn-tom-parole .cabin-wall {
  position: absolute; bottom: 20%; left: 25%; width: 25%; height: 50%;
  background: linear-gradient(180deg, #deb887 0%, #a0522d 100%);
  border-radius: 4px 4px 0 0;
  box-shadow: 0 4px 8px rgba(0,0,0,0.2);
}
.scn-tom-parole .cabin-door {
  position: absolute; bottom: 20%; left: 32%; width: 8%; height: 30%;
  background: linear-gradient(180deg, #5c4033 0%, #3a2a1a 100%);
  border-radius: 2px 2px 4px 4px;
  box-shadow: inset 0 -4px 0 #2a1a0a;
}
.scn-tom-parole .tom-silhouette {
  position: absolute; bottom: 28%; left: 40%; width: 8%; height: 20%;
  background: linear-gradient(180deg, #1a1a1a 0%, #0a0a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: tp-tom 6s ease-in-out infinite;
}
.scn-tom-parole .cloud-drift-a {
  position: absolute; top: 10%; left: 5%; width: 20%; height: 8%;
  background: radial-gradient(ellipse, rgba(255,255,255,0.7) 0%, transparent 100%);
  filter: blur(6px);
  animation: tp-drift 40s linear infinite;
}
.scn-tom-parole .cloud-drift-b {
  position: absolute; top: 15%; right: 10%; width: 15%; height: 6%;
  background: radial-gradient(ellipse, rgba(255,255,255,0.5) 0%, transparent 100%);
  filter: blur(6px);
  animation: tp-drift 40s linear infinite 15s reverse;
}
@keyframes tp-sky { 0% { opacity:0.9 } 50% { opacity:1 } 100% { opacity:0.95 } }
@keyframes tp-tom { 0% { transform: translateX(0) rotate(0) } 25% { transform: translateX(-2px) rotate(-2deg) } 50% { transform: translateX(0) rotate(0) } 75% { transform: translateX(2px) rotate(2deg) } 100% { transform: translateX(0) rotate(0) } }
@keyframes tp-drift { 0% { transform: translateX(0) } 100% { transform: translateX(120vw) } }

/* tom-reading-bible – sunlit calm interior */
.scn-tom-reading-bible {
  background:
    linear-gradient(180deg, #c0d6e4 0%, #e0e8f0 100%),
    radial-gradient(ellipse at 50% 50%, #f8f8fa 0%, transparent 60%);
}
.scn-tom-reading-bible .bale-left {
  position: absolute; bottom: 10%; left: 0; width: 20%; height: 60%;
  background: linear-gradient(180deg, #c8b8a0 0%, #a89880 100%);
  border-radius: 8px;
  box-shadow: 4px 0 8px rgba(0,0,0,0.2);
  animation: tr-bale-sway 8s ease-in-out infinite alternate;
}
.scn-tom-reading-bible .bale-right {
  position: absolute; bottom: 10%; right: 0; width: 20%; height: 60%;
  background: linear-gradient(180deg, #c8b8a0 0%, #a89880 100%);
  border-radius: 8px;
  box-shadow: -4px 0 8px rgba(0,0,0,0.2);
  animation: tr-bale-sway 8s ease-in-out infinite alternate-reverse;
}
.scn-tom-reading-bible .bale-top {
  position: absolute; top: 5%; left: 15%; width: 70%; height: 12%;
  background: linear-gradient(180deg, #d0c0a8 0%, #b8a88a 100%);
  border-radius: 8px;
  box-shadow: 0 4px 8px rgba(0,0,0,0.15);
}
.scn-tom-reading-bible .tom-seated {
  position: absolute; bottom: 15%; left: 40%; width: 12%; height: 35%;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: tr-tom-seat 10s ease-in-out infinite;
}
.scn-tom-reading-bible .bible-open {
  position: absolute; bottom: 28%; left: 46%; width: 6%; height: 4%;
  background: linear-gradient(180deg, #f0e0c0 0%, #d0c0a0 100%);
  border-radius: 2px;
  transform: skewX(-10deg);
  animation: tr-bible 10s ease-in-out infinite;
}
.scn-tom-reading-bible .light-beam {
  position: absolute; top: 0; left: 44%; width: 12%; height: 70%;
  background: linear-gradient(180deg, rgba(255,255,200,0.4) 0%, transparent 100%);
  filter: blur(6px);
  animation: tr-light 8s ease-in-out infinite;
}
.scn-tom-reading-bible .dust-motes-1 {
  position: absolute; top: 20%; left: 45%; width: 2%; height: 2%;
  background: rgba(255,255,200,0.6);
  border-radius: 50%;
  filter: blur(2px);
  animation: tr-dust 12s linear infinite;
}
.scn-tom-reading-bible .dust-motes-2 {
  position: absolute; top: 30%; left: 48%; width: 1.5%; height: 1.5%;
  background: rgba(255,255,200,0.5);
  border-radius: 50%;
  filter: blur(2px);
  animation: tr-dust 12s linear infinite 6s;
}
@keyframes tr-bale-sway { 0% { transform: translateY(0) } 50% { transform: translateY(-2px) } 100% { transform: translateY(0) } }
@keyframes tr-tom-seat { 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 tr-bible { 0% { transform: skewX(-10deg) translateY(0) } 50% { transform: skewX(-12deg) translateY(-1px) } 100% { transform: skewX(-10deg) translateY(0) } }
@keyframes tr-light { 0% { opacity:0.7 } 50% { opacity:1 } 100% { opacity:0.8 } }
@keyframes tr-dust { 0% { transform: translateY(0) translateX(0) scale(1); opacity:0.6 } 50% { transform: translateY(-20px) translateX(5px) scale(0.8); opacity:0.3 } 100% { transform: translateY(-40px) translateX(-5px) scale(0.5); opacity:0 } }

/* tom-watching-plantations – sunlit wide (mood dark accents) */
.scn-tom-watching-plantations {
  background:
    linear-gradient(180deg, #87ceeb 0%, #b0e0e6 40%, #f0e68c 100%),
    radial-gradient(ellipse at 20% 60%, #fff8dc 0%, transparent 70%);
}
.scn-tom-watching-plantations .sky-wide {
  position: absolute; inset: 0 0 20% 0;
  background: linear-gradient(180deg, #87ceeb 0%, #f0e68c 100%);
  animation: tw-sky 15s ease-in-out infinite alternate;
}
.scn-tom-watching-plantations .river-band {
  position: absolute; bottom: 20%; left: 0; right: 0; height: 10%;
  background: linear-gradient(180deg, #4a6a8a 0%, #3a5a7a 100%);
  animation: tw-river 25s ease-in-out infinite;
}
.scn-tom-watching-plantations .field-huts {
  position: absolute; bottom: 10%; left: 5%; width: 90%; height: 15%;
  background: repeating-linear-gradient(90deg, #8a7a6a 0%, #8a7a6a 3%, transparent 3%, transparent 5%, #7a6a5a 5%, #7a6a5a 8%, transparent 8%, transparent 10%);
  border-radius: 0 0 20% 20%;
  animation: tw-field 30s linear infinite alternate;
}
.scn-tom-watching-plantations .hut-rows {
  position: absolute; bottom: 5%; left: 0; right: 0; height: 10%;
  background: repeating-linear-gradient(90deg, #5c4a3a 0%, #5c4a3a 2%, transparent 2%, transparent 4%, #4a3a2a 4%, #4a3a2a 6%, transparent 6%, transparent 8%);
  border-radius: 0 0 20% 20%;
  animation: tw-huts 30s linear infinite alternate-reverse;
}
.scn-tom-watching-plantations .deck-railing {
  position: absolute; bottom: 30%; left: 0; right: 0; height: 2%;
  background: linear-gradient(90deg, #3a2a1a 0%, #4a3a2a 50%, #3a2a1a 100%);
  box-shadow: 0 -2px 4px rgba(0,0,0,0.3);
}
.scn-tom-watching-plantations .tom-figure {
  position: absolute; bottom: 32%; left: 20%; width: 6%; height: 18%;
  background: linear-gradient(180deg, #1a1a1a 0%, #0a0a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: tw-tom 12s ease-in-out infinite;
}
.scn-tom-watching-plantations .bird-flock-1 {
  position: absolute; top: 15%; left: 10%; width: 5%; height: 3%;
  background: radial-gradient(circle, #2a2a2a 0%, transparent 100%);
  filter: blur(2px);
  animation: tw-birds 30s linear infinite;
}
.scn-tom-watching-plantations .bird-flock-2 {
  position: absolute; top: 10%; right: 20%; width: 4%; height: 2%;
  background: radial-gradient(circle, #2a2a2a 0%, transparent 100%);
  filter: blur(2px);
  animation: tw-birds 30s linear infinite 15s reverse;
}
@keyframes tw-sky { 0% { opacity:0.85 } 50% { opacity:1 } 100% { opacity:0.9 } }
@keyframes tw-river { 0% { transform: translateY(0) } 50% { transform: translateY(2px) } 100% { transform: translateY(0) } }
@keyframes tw-field { 0% { transform: translateX(0) } 100% { transform: translateX(-10%) } }
@keyframes tw-huts { 0% { transform: translateX(0) } 100% { transform: translateX(10%) } }
@keyframes tw-tom { 0% { transform: translateX(0) rotate(0) } 25% { transform: translateX(-3px) rotate(-2deg) } 50% { transform: translateX(0) rotate(0) } 75% { transform: translateX(3px) rotate(2deg) } 100% { transform: translateX(0) rotate(0) } }
@keyframes tw-birds { 0% { transform: translateX(0) translateY(0) } 25% { transform: translateX(20px) translateY(-5px) } 50% { transform: translateX(40px) translateY(0) } 75% { transform: translateX(20px) translateY(5px) } 100% { transform: translateX(0) translateY(0) } }

/* shelby-signs-bill-of-sale */
.scn-shelby-signs-bill-of-sale {
  background:
    linear-gradient(180deg, #1a1010 0%, #2a1c14 40%, #1a0e08 100%),
    radial-gradient(ellipse at 50% 60%, #3a2a1a 0%, #0a0604 70%);
}
.scn-shelby-signs-bill-of-sale .wall {
  position:absolute; inset:0 0 35% 0;
  background: linear-gradient(180deg, #2a1c14 0%, #1a0e08 100%);
  animation: ssb-shadow 12s ease-in-out infinite alternate;
}
.scn-shelby-signs-bill-of-sale .desk {
  position:absolute; bottom:15%; left:10%; right:10%; height:20%;
  background: linear-gradient(180deg, #4a3020 0%, #2a1a10 100%);
  border-radius: 4% 4% 0 0;
  box-shadow: inset 0 -8px 20px rgba(0,0,0,0.7);
  animation: ssb-desk 20s ease-in-out infinite;
}
.scn-shelby-signs-bill-of-sale .candle {
  position:absolute; bottom:40%; left:50%; width:12px; height:28px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #d4a050 0%, #8a6030 100%);
  border-radius: 30% 30% 10% 10%;
  box-shadow: 0 -8px 30px 8px rgba(200,150,60,0.5);
  animation: ssb-candle 3s ease-in-out infinite alternate;
}
.scn-shelby-signs-bill-of-sale .paper {
  position:absolute; bottom:25%; left:40%; width:30%; height:8%;
  background: linear-gradient(135deg, #c8b88a 0%, #a09070 50%, #807050 100%);
  border-radius: 2px;
  box-shadow: 0 2px 6px rgba(0,0,0,0.6);
  transform: rotate(-2deg);
  animation: ssb-paper 8s ease-in-out infinite;
}
.scn-shelby-signs-bill-of-sale .hand-left {
  position:absolute; bottom:22%; left:30%; width:20px; height:30px;
  background: radial-gradient(ellipse 60% 50% at 40% 30%, #c8a080 0%, #6a4030 100%);
  border-radius: 50% 40% 30% 50%;
  transform-origin: bottom left;
  animation: ssb-hand-left 4s ease-in-out infinite;
}
.scn-shelby-signs-bill-of-sale .hand-right {
  position:absolute; bottom:22%; left:50%; width:22px; height:28px;
  background: radial-gradient(ellipse 60% 50% at 50% 30%, #b89070 0%, #5a3520 100%);
  border-radius: 40% 50% 50% 30%;
  transform-origin: bottom right;
  animation: ssb-hand-right 3.5s ease-in-out infinite alternate;
}
.scn-shelby-signs-bill-of-sale .coins {
  position:absolute; bottom:18%; left:55%; width:25px; height:12px;
  background: radial-gradient(circle at 30% 40%, #d4b060 0%, #a08030 60%, #604010 100%);
  border-radius: 50%;
  box-shadow: 0 2px 8px rgba(0,0,0,0.5);
  animation: ssb-coins 6s ease-in-out infinite;
}
@keyframes ssb-shadow {
  0% { opacity:0.6; } 50% { opacity:0.8; } 100% { opacity:0.7; }
}
@keyframes ssb-desk {
  0% { transform: translateY(0); } 50% { transform: translateY(-1px); } 100% { transform: translateY(0); }
}
@keyframes ssb-candle {
  0% { transform: translateX(-50%) scaleY(1); opacity:0.9; box-shadow: 0 -6px 20px 6px rgba(200,150,60,0.4); }
  50% { transform: translateX(-50%) scaleY(1.05); opacity:1; box-shadow: 0 -10px 35px 10px rgba(200,150,60,0.6); }
  100% { transform: translateX(-50%) scaleY(0.95); opacity:0.85; box-shadow: 0 -4px 15px 4px rgba(200,150,60,0.3); }
}
@keyframes ssb-paper {
  0% { transform: rotate(-2deg) translateY(0); } 50% { transform: rotate(-1deg) translateY(-1px); } 100% { transform: rotate(-2deg) translateY(1px); }
}
@keyframes ssb-hand-left {
  0% { transform: rotate(0deg) translate(0,0); } 25% { transform: rotate(-5deg) translate(-2px, -1px); } 50% { transform: rotate(0deg) translate(0,0); } 75% { transform: rotate(3deg) translate(1px, 1px); } 100% { transform: rotate(0deg) translate(0,0); }
}
@keyframes ssb-hand-right {
  0% { transform: rotate(5deg) translate(0,0); } 30% { transform: rotate(0deg) translate(-1px, -2px); } 60% { transform: rotate(-3deg) translate(2px, 0); } 100% { transform: rotate(5deg) translate(0,0); }
}
@keyframes ssb-coins {
  0% { transform: translateX(0) rotate(0deg); opacity:0.7; } 50% { transform: translateX(3px) rotate(4deg); opacity:0.9; } 100% { transform: translateX(-2px) rotate(-3deg); opacity:0.7; }
}

/* haley-dismisses-concerns */
.scn-haley-dismisses-concerns {
  background:
    linear-gradient(180deg, #1e1410 0%, #2a1a14 40%, #0e0806 100%),
    radial-gradient(ellipse at 45% 50%, #3a2420 0%, #080404 70%);
}
.scn-haley-dismisses-concerns .bg-wall {
  position:absolute; inset:0 0 30% 0;
  background: linear-gradient(180deg, #2a1a14 0%, #1a0e0a 100%);
  animation: hdc-wall 10s ease-in-out infinite alternate;
}
.scn-haley-dismisses-concerns .floor {
  position:absolute; bottom:0; left:0; right:0; height:30%;
  background: linear-gradient(0deg, #1a0e0a 0%, #2a1a14 100%);
  border-radius: 0 0 40% 40% / 0 0 20% 20%;
}
.scn-haley-dismisses-concerns .haley-figure {
  position:absolute; bottom:20%; left:35%; width:30px; height:60px;
  background: linear-gradient(180deg, #0e0a06 0%, #1a0e08 60%, #0a0604 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%;
  transform-origin: bottom center;
  animation: hdc-figure 6s ease-in-out infinite;
}
.scn-haley-dismisses-concerns .valise {
  position:absolute; bottom:18%; left:20%; width:30px; height:20px;
  background: linear-gradient(135deg, #3a2a1a 0%, #1a0e08 100%);
  border-radius: 10% 10% 20% 20%;
  box-shadow: 2px 4px 6px rgba(0,0,0,0.6);
  transform: rotate(-5deg);
  animation: hdc-valise 8s ease-in-out infinite alternate;
}
.scn-haley-dismisses-concerns .arm {
  position:absolute; bottom:38%; left:48%; width:18px; height:30px;
  background: linear-gradient(180deg, #1a0e08 0%, #0a0604 100%);
  border-radius: 30% 30% 20% 20%;
  transform-origin: bottom left;
  animation: hdc-arm 3s ease-in-out infinite alternate;
}
.scn-haley-dismisses-concerns .coat {
  position:absolute; bottom:40%; left:30%; width:28px; height:20px;
  background: linear-gradient(180deg, #2a1a14 0%, #1a0e08 100%);
  border-radius: 40% 40% 10% 10%;
  transform: rotate(10deg);
  animation: hdc-coat 7s ease-in-out infinite;
}
@keyframes hdc-wall {
  0% { opacity:0.5; } 50% { opacity:0.7; } 100% { opacity:0.6; }
}
@keyframes hdc-figure {
  0% { transform: translateX(0) rotate(0deg); } 25% { transform: translateX(-2px) rotate(-1deg); } 50% { transform: translateX(0) rotate(1deg); } 75% { transform: translateX(2px) rotate(0deg); } 100% { transform: translateX(0) rotate(0deg); }
}
@keyframes hdc-valise {
  0% { transform: rotate(-5deg) translateY(0); } 50% { transform: rotate(-3deg) translateY(-2px); } 100% { transform: rotate(-5deg) translateY(1px); }
}
@keyframes hdc-arm {
  0% { transform: rotate(30deg) scaleY(1); } 50% { transform: rotate(45deg) scaleY(1.1); } 100% { transform: rotate(30deg) scaleY(0.9); }
}
@keyframes hdc-coat {
  0% { transform: rotate(10deg) translateY(0); opacity:0.8; } 50% { transform: rotate(12deg) translateY(-1px); opacity:1; } 100% { transform: rotate(8deg) translateY(1px); opacity:0.8; }
}

/* mrs-shelby-queries-husband */
.scn-mrs-shelby-queries-husband {
  background:
    linear-gradient(180deg, #1c1412 0%, #2a1e1a 40%, #0e0a08 100%),
    radial-gradient(ellipse at 60% 40%, #3a2a22 0%, #080404 70%);
}
.scn-mrs-shelby-queries-husband .bg-wall {
  position:absolute; inset:0 0 25% 0;
  background: linear-gradient(180deg, #2a1e1a 0%, #1a100e 100%);
  animation: msq-wall 9s ease-in-out infinite alternate;
}
.scn-mrs-shelby-queries-husband .chair {
  position:absolute; bottom:15%; left:40%; width:50px; height:45px;
  background: linear-gradient(180deg, #4a3228 0%, #2a1a14 100%);
  border-radius: 20% 20% 10% 10%;
  box-shadow: inset 0 -4px 10px rgba(0,0,0,0.5);
  animation: msq-chair 12s ease-in-out infinite;
}
.scn-mrs-shelby-queries-husband .shelby-figure {
  position:absolute; bottom:28%; left:43%; width:25px; height:40px;
  background: linear-gradient(180deg, #0e0a08 0%, #1a100e 50%, #080604 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%;
  transform-origin: bottom center;
  animation: msq-shelby 5s ease-in-out infinite;
}
.scn-mrs-shelby-queries-husband .mirror-frame {
  position:absolute; bottom:30%; right:15%; width:40px; height:55px;
  border: 4px solid #4a3228;
  border-radius: 10% 10% 5% 5%;
  background: radial-gradient(ellipse at 50% 50%, #c8b8a8 0%, #a09080 60%, #706050 100%);
  box-shadow: 0 0 10px rgba(0,0,0,0.6);
  animation: msq-mirror 8s ease-in-out infinite alternate;
}
.scn-mrs-shelby-queries-husband .mrs-shelby-figure {
  position:absolute; bottom:28%; right:20%; width:22px; height:45px;
  background: linear-gradient(180deg, #0e0a08 0%, #1a100e 50%, #080604 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%;
  transform-origin: bottom center;
  animation: msq-mrs 6s ease-in-out infinite;
}
.scn-mrs-shelby-queries-husband .letter {
  position:absolute; bottom:22%; left:50%; width:30px; height:8px;
  background: linear-gradient(135deg, #c8b88a 0%, #a09070 100%);
  border-radius: 2px;
  transform: rotate(-10deg);
  box-shadow: 0 2px 4px rgba(0,0,0,0.4);
  animation: msq-letter 7s ease-in-out infinite;
}
.scn-mrs-shelby-queries-husband .reflection {
  position:absolute; bottom:33%; right:15%; width:30px; height:40px;
  background: radial-gradient(circle at 30% 40%, rgba(255,255,200,0.15) 0%, transparent 70%);
  border-radius: 10%;
  filter: blur(4px);
  animation: msq-reflect 9s ease-in-out infinite alternate;
}
@keyframes msq-wall {
  0% { opacity:0.6; } 50% { opacity:0.8; } 100% { opacity:0.7; }
}
@keyframes msq-chair {
  0% { transform: translateY(0); } 50% { transform: translateY(-1px); } 100% { transform: translateY(0); }
}
@keyframes msq-shelby {
  0% { transform: rotate(0deg) translateY(0); } 25% { transform: rotate(-2deg) translateY(-1px); } 50% { transform: rotate(1deg) translateY(0); } 75% { transform: rotate(-1deg) translateY(1px); } 100% { transform: rotate(0deg) translateY(0); }
}
@keyframes msq-mirror {
  0% { opacity:0.7; box-shadow: 0 0 5px rgba(0,0,0,0.5); } 50% { opacity:0.9; box-shadow: 0 0 15px rgba(0,0,0,0.7); } 100% { opacity:0.8; box-shadow: 0 0 10px rgba(0,0,0,0.6); }
}
@keyframes msq-mrs {
  0% { transform: rotate(0deg) translateX(0); } 30% { transform: rotate(2deg) translateX(1px); } 60% { transform: rotate(-1deg) translateX(-1px); } 100% { transform: rotate(0deg) translateX(0); }
}
@keyframes msq-letter {
  0% { transform: rotate(-10deg) translateY(0); } 50% { transform: rotate(-8deg) translateY(-1px); } 100% { transform: rotate(-10deg) translateY(1px); }
}
@keyframes msq-reflect {
  0% { opacity:0.1; } 50% { opacity:0.3; } 100% { opacity:0.2; }
}

/* haley-identified */
.scn-haley-identified {
  background:
    linear-gradient(180deg, #1a1210 0%, #2a1e18 40%, #0e0806 100%),
    radial-gradient(ellipse at 50% 55%, #3a2a20 0%, #080404 70%);
}
.scn-haley-identified .bg-wall {
  position:absolute; inset:0 0 20% 0;
  background: linear-gradient(180deg, #2a1e18 0%, #1a100c 100%);
  animation: hi-wall 11s ease-in-out infinite alternate;
}
.scn-haley-identified .table {
  position:absolute; bottom:12%; left:15%; right:15%; height:18%;
  background: linear-gradient(180deg, #4a3224 0%, #2a1a10 100%);
  border-radius: 8% 8% 0 0;
  box-shadow: inset 0 -6px 15px rgba(0,0,0,0.6);
  animation: hi-table 15s ease-in-out infinite;
}
.scn-haley-identified .haley-figure {
  position:absolute; bottom:20%; left:25%; width:28px; height:55px;
  background: linear-gradient(180deg, #0e0a06 0%, #1a0e0a 60%, #080404 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%;
  transform-origin: bottom center;
  animation: hi-haley 4s ease-in-out infinite;
}
.scn-haley-identified .shelby-figure {
  position:absolute; bottom:20%; right:25%; width:28px; height:55px;
  background: linear-gradient(180deg, #0e0a06 0%, #1a0e0a 60%, #080404 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%;
  transform-origin: bottom center;
  animation: hi-shelby 5s ease-in-out infinite alternate;
}
.scn-haley-identified .parchment {
  position:absolute; bottom:18%; left:40%; width:20%; height:6%;
  background: linear-gradient(135deg, #c8b88a 0%, #a09070 50%, #807050 100%);
  border-radius: 2px;
  transform: rotate(-3deg);
  box-shadow: 0 2px 6px rgba(0,0,0,0.5);
  animation: hi-parchment 6s ease-in-out infinite;
}
.scn-haley-identified .candle {
  position:absolute; bottom:32%; left:48%; width:10px; height:24px;
  background: linear-gradient(180deg, #d4a050 0%, #8a6030 100%);
  border-radius: 30% 30% 10% 10%;
  box-shadow: 0 -6px 25px 6px rgba(200,150,60,0.5);
  animation: hi-candle 3.5s ease-in-out infinite alternate;
}
.scn-haley-identified .inkwell {
  position:absolute; bottom:16%; left:55%; width:14px; height:12px;
  background: radial-gradient(circle at 40% 30%, #1a0e08 0%, #0a0604 100%);
  border-radius: 50% 50% 20% 20%;
  box-shadow: 0 2px 4px rgba(0,0,0,0.4);
  animation: hi-inkwell 7s ease-in-out infinite alternate;
}
@keyframes hi-wall {
  0% { opacity:0.5; } 50% { opacity:0.7; } 100% { opacity:0.6; }
}
@keyframes hi-table {
  0% { transform: translateY(0); } 50% { transform: translateY(-1px); } 100% { transform: translateY(0); }
}
@keyframes hi-haley {
  0% { transform: rotate(0deg) translateY(0); } 30% { transform: rotate(2deg) translateY(-1px); } 60% { transform: rotate(-1deg) translateY(0); } 100% { transform: rotate(0deg) translateY(0); }
}
@keyframes hi-shelby {
  0% { transform: rotate(-2deg) translateX(0); } 50% { transform: rotate(0deg) translateX(-1px); } 100% { transform: rotate(2deg) translateX(0); }
}
@keyframes hi-parchment {
  0% { transform: rotate(-3deg) translateY(0); } 50% { transform: rotate(-1deg) translateY(-1px); } 100% { transform: rotate(-3deg) translateY(1px); }
}
@keyframes hi-candle {
  0% { transform: scaleY(1); opacity:0.85; box-shadow: 0 -4px 15px 4px rgba(200,150,60,0.3); }
  50% { transform: scaleY(1.04); opacity:1; box-shadow: 0 -8px 30px 8px rgba(200,150,60,0.5); }
  100% { transform: scaleY(0.96); opacity:0.8; box-shadow: 0 -2px 10px 2px rgba(200,150,60,0.2); }
}
@keyframes hi-inkwell {
  0% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-1px) rotate(5deg); } 100% { transform: translateY(0) rotate(0deg); }
}

.scn-tom-refuses-to-flee { background: linear-gradient(135deg, #2a1a0a 0%, #4a2a1a 30%, #6a3a1a 60%, #2a1a0a 100%), radial-gradient(ellipse at 60% 80%, #8a4a2a 0%, transparent 60%); }
.scn-tom-refuses-to-flee .bg-wall { position:absolute; inset:0; background: linear-gradient(180deg, #3a2a1a 0%, #2a1a0a 100%); opacity:.8; animation: trf-wall 10s ease-in-out infinite alternate; }
.scn-tom-refuses-to-flee .fire { position:absolute; bottom:20%; left:30%; width:60px; height:80px; background: radial-gradient(ellipse at 50% 0%, #ffa040 0%, #d06020 40%, #803010 70%, transparent 100%); border-radius: 50% 50% 30% 30%; animation: trf-fire 0.8s ease-in-out infinite alternate; }
.scn-tom-refuses-to-flee .tom-figure { position:absolute; bottom:24%; left:55%; width:20px; height:50px; background: linear-gradient(180deg, #1a1a0a 0%, #0a0a05 100%); border-radius: 45% 45% 40% 40% / 65% 65% 35% 35%; transform-origin: bottom center; animation: trf-figure 4s ease-in-out infinite; }
.scn-tom-refuses-to-flee .stool { position:absolute; bottom:22%; left:50%; width:20px; height:8px; background: #3a2a1a; border-radius:4px; box-shadow: 0 0 4px rgba(0,0,0,.5); animation: trf-stool 6s ease-in-out infinite; }
.scn-tom-refuses-to-flee .window { position:absolute; bottom:40%; right:10%; width:30px; height:40px; background: linear-gradient(180deg, #4a6a8a 0%, #2a3a4a 100%); border: 2px solid #2a1a0a; border-radius:2px; animation: trf-window 12s ease-in-out infinite alternate; }
.scn-tom-refuses-to-flee .shadow { position:absolute; bottom:20%; left:40%; width:80px; height:30px; background: radial-gradient(ellipse, #1a0a00 0%, transparent 70%); opacity:.3; animation: trf-shadow 4s ease-in-out infinite alternate; }
.scn-tom-refuses-to-flee .ember { position:absolute; bottom:25%; width:4px; height:4px; border-radius:50%; background:#ff8020; box-shadow: 0 0 6px #ff8020; }
.scn-tom-refuses-to-flee .ember-a { left:28%; animation: trf-ember-a 1.2s ease-in-out infinite; }
.scn-tom-refuses-to-flee .ember-b { left:35%; animation: trf-ember-b 1.8s ease-in-out infinite; animation-delay:0.6s; }
@keyframes trf-wall { 0% { opacity:.75 } 50% { opacity:.85 } 100% { opacity:.8 } }
@keyframes trf-fire { 0% { transform: scaleY(1) translateY(0); opacity:.9 } 50% { transform: scaleY(1.08) translateY(-3px); opacity:1 } 100% { transform: scaleY(0.95) translateY(1px); opacity:.85 } }
@keyframes trf-figure { 0% { transform: translateX(0) rotate(0deg) } 25% { transform: translateX(-1px) rotate(-1deg) } 50% { transform: translateX(1px) rotate(1deg) } 75% { transform: translateX(-1px) rotate(-1deg) } 100% { transform: translateX(0) rotate(0deg) } }
@keyframes trf-stool { 0%,100% { transform: translateX(0) scale(1) } 50% { transform: translateX(2px) scale(1.02) } }
@keyframes trf-window { 0% { background: #4a6a8a; box-shadow: inset 0 0 4px #2a3a4a } 50% { background: #5a7a9a; box-shadow: inset 0 0 8px #2a3a4a } 100% { background: #3a5a7a; box-shadow: inset 0 0 2px #2a3a4a } }
@keyframes trf-shadow { 0% { opacity:.2; transform: scaleX(.9) } 50% { opacity:.4; transform: scaleX(1.1) } 100% { opacity:.3; transform: scaleX(1) } }
@keyframes trf-ember-a { 0% { transform: translateY(0) scale(1); opacity:1 } 50% { transform: translateY(-15px) scale(.6); opacity:.5 } 100% { transform: translateY(-30px) scale(0); opacity:0 } }
@keyframes trf-ember-b { 0% { transform: translateY(0) scale(1); opacity:1 } 50% { transform: translateY(-12px) scale(.7); opacity:.6 } 100% { transform: translateY(-25px) scale(0); opacity:0 } }

.scn-tom-vows-loyalty { background: linear-gradient(135deg, #3a2a1a 0%, #4a3a2a 40%, #2a1a0a 100%), radial-gradient(ellipse at 30% 70%, #6a3a1a 0%, transparent 70%); }
.scn-tom-vows-loyalty .bg-room { position:absolute; inset:0; background: linear-gradient(180deg, #2a1a0a 0%, #1a0a00 100%); animation: tvl-room 15s ease-in-out infinite alternate; }
.scn-tom-vows-loyalty .hearth { position:absolute; bottom:15%; left:15%; width:100px; height:60px; background: radial-gradient(ellipse at 50% 0%, #b04020 0%, #802010 40%, #4a1a0a 100%); border-radius: 40% 40% 10% 10%; animation: tvl-hearth 2s ease-in-out infinite alternate; }
.scn-tom-vows-loyalty .tom-figure { position:absolute; bottom:22%; left:45%; width:22px; height:55px; background: linear-gradient(180deg, #1a1a0a 0%, #0a0a00 100%); border-radius: 45% 45% 40% 40% / 65% 65% 35% 35%; transform-origin: bottom center; animation: tvl-tom 5s ease-in-out infinite; }
.scn-tom-vows-loyalty .master-figure { position:absolute; bottom:22%; left:60%; width:24px; height:50px; background: linear-gradient(180deg, #2a2a1a 0%, #1a1a0a 100%); border-radius: 40% 40% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: tvl-master 3s ease-in-out infinite; }
.scn-tom-vows-loyalty .table { position:absolute; bottom:20%; left:50%; width:40px; height:10px; background: #3a2a1a; border-radius: 4px; box-shadow: 0 2px 6px rgba(0,0,0,.5); transform: translateX(-50%); animation: tvl-table 8s ease-in-out infinite; }
.scn-tom-vows-loyalty .cup { position:absolute; bottom:23%; left:52%; width:8px; height:10px; background: #4a3a2a; border-radius: 0 0 4px 4px; animation: tvl-cup 6s ease-in-out infinite; }
.scn-tom-vows-loyalty .firelight { position:absolute; inset:0; background: radial-gradient(ellipse at 20% 50%, rgba(255,160,80,.15) 0%, transparent 70%); animation: tvl-firelight 4s ease-in-out infinite alternate; }
@keyframes tvl-room { 0% { opacity:.8 } 50% { opacity:.9 } 100% { opacity:.85 } }
@keyframes tvl-hearth { 0% { transform: scaleY(1); opacity:.9 } 50% { transform: scaleY(1.06); opacity:1 } 100% { transform: scaleY(.94); opacity:.85 } }
@keyframes tvl-tom { 0% { transform: translateX(0) rotate(0deg) } 25% { transform: translateX(-1px) rotate(-1deg) } 50% { transform: translateX(1px) rotate(1deg) } 75% { transform: translateX(-1px) rotate(-1deg) } 100% { transform: translateX(0) rotate(0deg) } }
@keyframes tvl-master { 0%,100% { transform: translateX(0) scaleY(1) } 50% { transform: translateX(1px) scaleY(1.01) } }
@keyframes tvl-table { 0%,100% { transform: translateX(-50%) } 50% { transform: translateX(-50%) translateY(-1px) } }
@keyframes tvl-cup { 0% { transform: translateX(0) rotate(0deg) } 50% { transform: translateX(1px) rotate(2deg) } 100% { transform: translateX(0) rotate(0deg) } }
@keyframes tvl-firelight { 0% { opacity:.4 } 50% { opacity:.6 } 100% { opacity:.5 } }

.scn-eliza-bids-farewell { background: linear-gradient(135deg, #2a1a0a 0%, #4a2a1a 40%, #6a3a1a 60%, #2a1a0a 100%), radial-gradient(ellipse at 80% 90%, #8a4a2a 0%, transparent 70%); }
.scn-eliza-bids-farewell .bg-interior { position:absolute; inset:0; background: linear-gradient(180deg, #1a1008 0%, #2a1a0a 100%); animation: ebf-bg 8s ease-in-out infinite alternate; }
.scn-eliza-bids-farewell .door-frame { position:absolute; bottom:10%; left:20%; width:80px; height:140px; background: linear-gradient(90deg, #3a2a1a 0%, #2a1a0a 100%); border: 3px solid #1a0a00; border-radius: 4px 4px 0 0; animation: ebf-door 6s ease-in-out infinite; }
.scn-eliza-bids-farewell .eliza-figure { position:absolute; bottom:22%; left:30%; width:20px; height:55px; background: linear-gradient(180deg, #1a1a0a 0%, #0a0a00 100%); border-radius: 45% 45% 40% 40% / 65% 65% 35% 35%; transform-origin: bottom center; animation: ebf-eliza 3s ease-in-out infinite; }
.scn-eliza-bids-farewell .child-figure { position:absolute; bottom:28%; left:33%; width:14px; height:30px; background: linear-gradient(180deg, #1a1a0a 0%, #0a0a00 100%); border-radius: 45% 45% 40% 40% / 60% 60% 40% 40%; animation: ebf-child 4s ease-in-out infinite; animation-delay:0.3s; }
.scn-eliza-bids-farewell .fire { position:absolute; bottom:18%; left:50%; width:50px; height:70px; background: radial-gradient(ellipse at 50% 0%, #ffa040 0%, #d06020 40%, #803010 70%, transparent 100%); border-radius: 50% 50% 30% 30%; animation: ebf-fire 0.6s ease-in-out infinite alternate; }
.scn-eliza-bids-farewell .night-window { position:absolute; bottom:40%; right:15%; width:25px; height:35px; background: linear-gradient(180deg, #1a2a3a 0%, #0a1a2a 100%); border: 2px solid #2a1a0a; border-radius:2px; animation: ebf-night 10s ease-in-out infinite alternate; }
.scn-eliza-bids-farewell .shawl { position:absolute; bottom:30%; left:28%; width:16px; height:8px; background: #3a2a1a; border-radius: 50% 50% 40% 40%; transform-origin: top left; animation: ebf-shawl 3s ease-in-out infinite; }
@keyframes ebf-bg { 0% { opacity:.8 } 50% { opacity:.9 } 100% { opacity:.85 } }
@keyframes ebf-door { 0% { transform: scaleX(1) } 50% { transform: scaleX(1.02) } 100% { transform: scaleX(1) } }
@keyframes ebf-eliza { 0% { transform: translateX(0) rotate(0deg) } 20% { transform: translateX(-2px) rotate(-2deg) } 40% { transform: translateX(2px) rotate(2deg) } 60% { transform: translateX(-1px) rotate(-1deg) } 80% { transform: translateX(1px) rotate(1deg) } 100% { transform: translateX(0) rotate(0deg) } }
@keyframes ebf-child { 0%,100% { transform: translateY(0) scale(1) } 50% { transform: translateY(-2px) scale(1.01) } }
@keyframes ebf-fire { 0% { transform: scaleY(1) translateY(0); opacity:.85 } 50% { transform: scaleY(1.12) translateY(-4px); opacity:1 } 100% { transform: scaleY(.92) translateY(2px); opacity:.8 } }
@keyframes ebf-night { 0% { background: #1a2a3a } 50% { background: #0a1a2a; box-shadow: inset 0 0 2px #2a3a4a } 100% { background: #2a3a4a } }
@keyframes ebf-shawl { 0% { transform: rotate(0deg) } 25% { transform: rotate(3deg) } 50% { transform: rotate(-2deg) } 75% { transform: rotate(4deg) } 100% { transform: rotate(0deg) } }

.scn-morning-discovery { background: linear-gradient(135deg, #c8b090 0%, #e0d0b0 30%, #f0e0c0 60%, #d0c0a0 100%), radial-gradient(ellipse at 80% 30%, #fff8e0 0%, transparent 70%); }
.scn-morning-discovery .bg-room-morning { position:absolute; inset:0; background: linear-gradient(180deg, #f0e0c0 0%, #e0d0b0 50%, #c0a080 100%); animation: md-room 12s ease-in-out infinite alternate; }
.scn-morning-discovery .window-bright { position:absolute; top:10%; left:15%; width:80px; height:100px; background: linear-gradient(180deg, #fff8e0 0%, #f0e0c0 100%); border: 4px solid #c0a080; border-radius:4px; box-shadow: inset 0 0 20px #fff; animation: md-window 6s ease-in-out infinite alternate; }
.scn-morning-discovery .bed { position:absolute; bottom:15%; left:40%; width:120px; height:50px; background: linear-gradient(180deg, #c0a080 0%, #a08060 100%); border-radius: 10% 10% 20% 20%; box-shadow: 0 4px 8px rgba(0,0,0,.2); animation: md-bed 8s ease-in-out infinite; }
.scn-morning-discovery .mrs-figure { position:absolute; bottom:20%; left:55%; width:22px; height:55px; background: linear-gradient(180deg, #8a7a6a 0%, #5a4a3a 100%); border-radius: 45% 45% 40% 40% / 65% 65% 35% 35%; transform-origin: bottom center; animation: md-mrs 4s ease-in-out infinite; }
.scn-morning-discovery .bell-pull { position:absolute; top:30%; right:20%; width:6px; height:20px; background: #8a7a6a; border-radius: 2px; animation: md-bell 3s ease-in-out infinite; transform-origin: top; }
.scn-morning-discovery .shadow-tense { position:absolute; bottom:0; left:0; right:0; height:30%; background: linear-gradient(180deg, transparent 0%, rgba(0,0,0,.15) 100%); animation: md-shadow 5s ease-in-out infinite alternate; }
.scn-morning-discovery .linen { position:absolute; bottom:18%; left:45%; width:30px; height:10px; background: #e0d0b0; border-radius: 4px; animation: md-linen 7s ease-in-out infinite; }
@keyframes md-room { 0% { opacity:.9 } 50% { opacity:1 } 100% { opacity:.95 } }
@keyframes md-window { 0% { box-shadow: inset 0 0 10px #ffe; background: #fff8e0 } 50% { box-shadow: inset 0 0 30px #fff; background: #fffae0 } 100% { box-shadow: inset 0 0 15px #ffe; background: #f0e0c0 } }
@keyframes md-bed { 0%,100% { transform: translateY(0) } 50% { transform: translateY(-2px) } }
@keyframes md-mrs { 0% { transform: translateX(0) rotate(0deg) } 20% { transform: translateX(-1px) rotate(-2deg) } 40% { transform: translateX(1px) rotate(2deg) } 60% { transform: translateX(-1px) rotate(-1deg) } 80% { transform: translateX(1px) rotate(1deg) } 100% { transform: translateX(0) rotate(0deg) } }
@keyframes md-bell { 0% { transform: rotate(0deg) } 25% { transform: rotate(8deg) } 50% { transform: rotate(-6deg) } 75% { transform: rotate(4deg) } 100% { transform: rotate(0deg) } }
@keyframes md-shadow { 0% { opacity:.1 } 50% { opacity:.2 } 100% { opacity:.15 } }
@keyframes md-linen { 0%,100% { transform: translateX(0) scale(1) } 50% { transform: translateX(2px) scale(1.02) } }

.scn-pension-bertolini-arrival {
  background: linear-gradient(135deg, #3e2a1a 0%, #5a3a22 40%, #4a2e1a 100%),
              radial-gradient(ellipse at 30% 70%, #7a5a2a 0%, transparent 60%);
}
.scn-pension-bertolini-arrival .wall {
  position: absolute;
  inset: 0 0 30% 0;
  background: linear-gradient(180deg, #2e1a0e 0%, #4a2e1a 100%);
  animation: ba-wall 20s ease-in-out infinite alternate;
}
.scn-pension-bertolini-arrival .floor {
  position: absolute;
  bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #2a1a0a 0%, #1a0e06 100%);
  border-radius: 40% 0 0 0 / 20% 0 0 0;
  box-shadow: inset 0 8px 12px rgba(0,0,0,0.6);
}
.scn-pension-bertolini-arrival .table {
  position: absolute;
  bottom: 25%; left: 50%; width: 60%; height: 10%;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #5a3a1a 0%, #3a2010 100%);
  border-radius: 4% 4% 0 0;
  box-shadow: 0 -4px 8px rgba(0,0,0,0.5);
  animation: ba-table 15s ease-in-out infinite;
}
.scn-pension-bertolini-arrival .chair-left {
  position: absolute;
  bottom: 20%; left: 25%; width: 18%; height: 25%;
  background: linear-gradient(180deg, #3e2a14 0%, #2a1a0a 100%);
  border-radius: 30% 30% 10% 10% / 40% 40% 20% 20%;
  transform: rotate(-2deg);
  box-shadow: 2px 4px 6px rgba(0,0,0,0.4);
  animation: ba-chair 8s ease-in-out infinite alternate;
}
.scn-pension-bertolini-arrival .chair-right {
  position: absolute;
  bottom: 20%; right: 25%; width: 18%; height: 25%;
  background: linear-gradient(180deg, #3e2a14 0%, #2a1a0a 100%);
  border-radius: 30% 30% 10% 10% / 40% 40% 20% 20%;
  transform: rotate(2deg);
  box-shadow: -2px 4px 6px rgba(0,0,0,0.4);
  animation: ba-chair 9s ease-in-out infinite alternate;
}
.scn-pension-bertolini-arrival .figure-left {
  position: absolute;
  bottom: 30%; left: 30%; width: 10%; height: 35%;
  background: linear-gradient(180deg, #1a1210 0%, #0e0a08 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 30% 30%;
  transform: rotate(-5deg);
  animation: ba-figure 6s ease-in-out infinite;
}
.scn-pension-bertolini-arrival .figure-right {
  position: absolute;
  bottom: 30%; right: 30%; width: 10%; height: 35%;
  background: linear-gradient(180deg, #1a1210 0%, #0e0a08 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 30% 30%;
  transform: rotate(5deg);
  animation: ba-figure 7s ease-in-out infinite reverse;
}
.scn-pension-bertolini-arrival .candle {
  position: absolute;
  bottom: 32%; left: 50%; width: 4%; height: 6%;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #f0d080 0%, #c0a060 100%);
  border-radius: 10% 10% 40% 40%;
  box-shadow: 0 0 20px 8px rgba(240,208,128,0.6), 0 0 40px 16px rgba(240,208,128,0.3);
  animation: ba-candle 3s ease-in-out infinite alternate;
}
.scn-pension-bertolini-arrival .window-glow {
  position: absolute;
  top: 10%; right: 10%; width: 25%; height: 30%;
  background: radial-gradient(ellipse at center, #2a4a6a 0%, transparent 70%);
  border-radius: 10%;
  filter: blur(8px);
  animation: ba-window 12s ease-in-out infinite alternate;
}
@keyframes ba-wall { 0%,100% { opacity:0.9; } 50% { opacity:1; } }
@keyframes ba-table { 0%,100% { transform: translateX(-50%) translateY(0); } 50% { transform: translateX(-50%) translateY(-2px); } }
@keyframes ba-chair { 0% { transform: rotate(-2deg) translateY(0); } 50% { transform: rotate(-1deg) translateY(-3px); } 100% { transform: rotate(-2deg) translateY(0); } }
@keyframes ba-figure { 0% { transform: rotate(-5deg) translateY(0); } 50% { transform: rotate(-4deg) translateY(-2px); } 100% { transform: rotate(-5deg) translateY(0); } }
@keyframes ba-candle { 0% { opacity:0.8; box-shadow: 0 0 16px 6px rgba(240,208,128,0.5); } 50% { opacity:1; box-shadow: 0 0 28px 12px rgba(240,208,128,0.8); } 100% { opacity:0.9; box-shadow: 0 0 20px 8px rgba(240,208,128,0.6); } }
@keyframes ba-window { 0%,100% { opacity:0.3; } 50% { opacity:0.6; } }

.scn-trader-haley-introduced {
  background: linear-gradient(180deg, #1a120e 0%, #2a1e16 50%, #1a0e0a 100%),
              radial-gradient(ellipse at 50% 80%, #3a2a1a 0%, transparent 70%);
}
.scn-trader-haley-introduced .bg-shadow {
  position: absolute;
  inset: 0;
  background: linear-gradient(180deg, #0e0a08 0%, #1a120e 40%, transparent 80%);
  animation: th-shadow 14s ease-in-out infinite alternate;
}
.scn-trader-haley-introduced .room-wall {
  position: absolute;
  bottom: 20%; left: 0; right: 0; height: 30%;
  background: linear-gradient(0deg, #3a2a1a 0%, #2a1a0e 100%);
  border-radius: 60% 60% 0 0 / 40% 40% 0 0;
  box-shadow: inset 0 8px 16px rgba(0,0,0,0.8);
}
.scn-trader-haley-introduced .silhouette-head {
  position: absolute;
  bottom: 40%; left: 35%; width: 25%; height: 35%;
  background: linear-gradient(180deg, #0e0a08 0%, #1a120e 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 30% 30%;
  transform: rotate(15deg);
  filter: blur(1px);
  box-shadow: inset 0 -4px 8px rgba(0,0,0,0.6);
  animation: th-head 4s ease-in-out infinite;
}
.scn-trader-haley-introduced .shoulders {
  position: absolute;
  bottom: 28%; left: 30%; width: 40%; height: 20%;
  background: linear-gradient(180deg, #1a140e 0%, #0e0a08 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 20% 20%;
  transform: rotate(2deg);
  animation: th-shoulders 5s ease-in-out infinite;
}
.scn-trader-haley-introduced .hand-hand {
  position: absolute;
  bottom: 25%; left: 55%; width: 14%; height: 18%;
  background: linear-gradient(180deg, #3a2a1a 0%, #2a1a0e 100%);
  border-radius: 40% 30% 20% 20%;
  transform: rotate(-20deg);
  box-shadow: 2px 2px 6px rgba(0,0,0,0.5);
  animation: th-hand 3s ease-in-out infinite alternate;
}
.scn-trader-haley-introduced .ring-1 {
  position: absolute;
  bottom: 30%; left: 58%; width: 6%; height: 5%;
  background: radial-gradient(circle, #a08050 0%, #705030 100%);
  border-radius: 50%;
  box-shadow: 0 0 6px 2px rgba(128,96,48,0.6);
  animation: th-ring 4s ease-in-out infinite;
}
.scn-trader-haley-introduced .ring-2 {
  position: absolute;
  bottom: 28%; left: 54%; width: 5%; height: 4%;
  background: radial-gradient(circle, #b89060 0%, #806040 100%);
  border-radius: 50%;
  box-shadow: 0 0 4px 2px rgba(128,96,48,0.5);
  animation: th-ring 4.5s ease-in-out infinite reverse;
}
.scn-trader-haley-introduced .wine-glass {
  position: absolute;
  bottom: 30%; left: 20%; width: 8%; height: 14%;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0e 100%);
  border-radius: 40% 40% 10% 10% / 60% 60% 20% 20%;
  transform: rotate(10deg);
  box-shadow: inset 0 -4px 8px rgba(0,0,0,0.4);
  animation: th-glass 7s ease-in-out infinite alternate;
}
@keyframes th-shadow { 0%,100% { opacity:0.8; } 50% { opacity:1; } }
@keyframes th-head { 0% { transform: rotate(15deg) translateX(0); } 50% { transform: rotate(12deg) translateX(2px); } 100% { transform: rotate(15deg) translateX(0); } }
@keyframes th-shoulders { 0% { transform: rotate(2deg) translateY(0); } 50% { transform: rotate(3deg) translateY(-2px); } 100% { transform: rotate(2deg) translateY(0); } }
@keyframes th-hand { 0% { transform: rotate(-20deg) translateX(0); } 50% { transform: rotate(-18deg) translateX(-3px); } 100% { transform: rotate(-20deg) translateX(0); } }
@keyframes th-ring { 0% { opacity:0.7; transform: scale(1); } 50% { opacity:1; transform: scale(1.1); } 100% { opacity:0.7; transform: scale(1); } }
@keyframes th-glass { 0% { opacity:0.6; transform: rotate(10deg); } 50% { opacity:0.9; transform: rotate(8deg); } 100% { opacity:0.6; transform: rotate(10deg); } }

.scn-item-gaudy-watch-chain {
  background: linear-gradient(135deg, #1a1410 0%, #2a1e16 50%, #1a0e0a 100%),
              radial-gradient(ellipse at 40% 50%, #3a2a1a 0%, transparent 60%);
}
.scn-item-gaudy-watch-chain .bg-deep {
  position: absolute;
  inset: 0;
  background: radial-gradient(ellipse at 60% 40%, #2a1a0e 0%, transparent 70%);
  animation: wc-deep 18s ease-in-out infinite alternate;
}
.scn-item-gaudy-watch-chain .hand-back {
  position: absolute;
  bottom: 20%; left: 30%; width: 35%; height: 40%;
  background: linear-gradient(180deg, #3a2a1a 0%, #2a1a0e 100%);
  border-radius: 50% 40% 30% 30% / 40% 30% 20% 20%;
  transform: rotate(10deg);
  box-shadow: inset -4px 4px 10px rgba(0,0,0,0.6);
  animation: wc-hand 6s ease-in-out infinite;
}
.scn-item-gaudy-watch-chain .watch-chain {
  position: absolute;
  bottom: 35%; left: 45%; width: 8%; height: 30%;
  background: linear-gradient(180deg, #b09060 0%, #806040 100%);
  border-radius: 40% 40% 40% 40% / 20% 20% 60% 60%;
  transform: rotate(-15deg);
  box-shadow: 0 0 8px 2px rgba(128,96,48,0.4);
  animation: wc-chain 4s ease-in-out infinite alternate;
}
.scn-item-gaudy-watch-chain .seal-1 {
  position: absolute;
  bottom: 30%; left: 48%; width: 8%; height: 8%;
  background: radial-gradient(circle, #804020 0%, #602818 100%);
  border-radius: 50%;
  box-shadow: 0 0 6px 2px rgba(128,64,32,0.5);
  animation: wc-seal 3.5s ease-in-out infinite;
}
.scn-item-gaudy-watch-chain .seal-2 {
  position: absolute;
  bottom: 28%; left: 44%; width: 7%; height: 7%;
  background: radial-gradient(circle, #a06030 0%, #804020 100%);
  border-radius: 50%;
  box-shadow: 0 0 5px 2px rgba(160,96,48,0.4);
  animation: wc-seal 4.2s ease-in-out infinite reverse;
}
.scn-item-gaudy-watch-chain .seal-3 {
  position: absolute;
  bottom: 26%; left: 52%; width: 9%; height: 9%;
  background: radial-gradient(circle, #c08040 0%, #a06030 100%);
  border-radius: 50%;
  box-shadow: 0 0 8px 3px rgba(192,128,64,0.5);
  animation: wc-seal 3.8s ease-in-out infinite;
}
.scn-item-gaudy-watch-chain .ring-thumb {
  position: absolute;
  bottom: 32%; left: 34%; width: 8%; height: 6%;
  background: radial-gradient(circle, #b08050 0%, #806040 100%);
  border-radius: 50%;
  transform: rotate(20deg);
  box-shadow: 0 0 6px 2px rgba(128,96,48,0.6);
  animation: wc-ring 5s ease-in-out infinite alternate;
}
.scn-item-gaudy-watch-chain .sparkle {
  position: absolute;
  bottom: 38%; left: 46%; width: 3%; height: 3%;
  background: radial-gradient(circle, #f0d080 0%, transparent 100%);
  border-radius: 50%;
  filter: blur(2px);
  box-shadow: 0 0 12px 8px rgba(240,208,128,0.4);
  animation: wc-sparkle 2s ease-in-out infinite;
}
@keyframes wc-deep { 0%,100% { opacity:0.8; } 50% { opacity:1; } }
@keyframes wc-hand { 0% { transform: rotate(10deg) translateX(0); } 50% { transform: rotate(12deg) translateX(-2px); } 100% { transform: rotate(10deg) translateX(0); } }
@keyframes wc-chain { 0% { transform: rotate(-15deg) translateY(0); } 50% { transform: rotate(-13deg) translateY(-3px); } 100% { transform: rotate(-15deg) translateY(0); } }
@keyframes wc-seal { 0% { transform: scale(1) rotate(0deg); } 50% { transform: scale(1.1) rotate(10deg); } 100% { transform: scale(1) rotate(0deg); } }
@keyframes wc-ring { 0% { transform: rotate(20deg) scale(1); } 50% { transform: rotate(25deg) scale(1.05); } 100% { transform: rotate(20deg) scale(1); } }
@keyframes wc-sparkle { 0%,100% { opacity:0.3; } 50% { opacity:1; } }

.scn-mr-shelby-gentlemanly-air {
  background: linear-gradient(180deg, #3a2a1a 0%, #4a3422 40%, #2a1a0e 100%),
              radial-gradient(ellipse at 30% 60%, #5a3a22 0%, transparent 60%);
}
.scn-mr-shelby-gentlemanly-air .bg-room {
  position: absolute;
  inset: 0 0 15% 0;
  background: linear-gradient(180deg, #2e1e12 0%, #4a3422 100%);
  animation: ms-room 20s ease-in-out infinite alternate;
}
.scn-mr-shelby-gentlemanly-air .bookshelf {
  position: absolute;
  left: 5%; top: 10%; width: 20%; height: 50%;
  background: linear-gradient(180deg, #5a3a22 0%, #3a2212 100%);
  border-radius: 4% 4% 0 0;
  box-shadow: 2px 0 8px rgba(0,0,0,0.6);
  animation: ms-shelf 16s ease-in-out infinite;
}
.scn-mr-shelby-gentlemanly-air .fireplace {
  position: absolute;
  bottom: 25%; left: 50%; width: 30%; height: 30%;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #4a3220 0%, #2a1a0e 100%);
  border-radius: 20% 20% 10% 10% / 30% 30% 20% 20%;
  box-shadow: inset 0 -8px 12px rgba(0,0,0,0.5);
}
.scn-mr-shelby-gentlemanly-air .armchair {
  position: absolute;
  bottom: 12%; left: 60%; width: 25%; height: 35%;
  background: linear-gradient(180deg, #5a3a22 0%, #3a2010 100%);
  border-radius: 40% 40% 20% 20% / 50% 50% 30% 30%;
  transform: rotate(5deg);
  box-shadow: -4px 4px 10px rgba(0,0,0,0.5);
  animation: ms-chair 8s ease-in-out infinite alternate;
}
.scn-mr-shelby-gentlemanly-air .gentleman-body {
  position: absolute;
  bottom: 20%; left: 18%; width: 15%; height: 40%;
  background: linear-gradient(180deg, #1a1410 0%, #0e0a08 100%);
  border-radius: 40% 40% 20% 20% / 50% 50% 30% 30%;
  transform: rotate(-5deg);
  box-shadow: inset 0 -4px 8px rgba(0,0,0,0.4);
  animation: ms-body 7s ease-in-out infinite;
}
.scn-mr-shelby-gentlemanly-air .gentleman-head {
  position: absolute;
  bottom: 55%; left: 21%; width: 12%; height: 16%;
  background: linear-gradient(180deg, #1a1210 0%, #0e0a08 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 30% 30%;
  transform: rotate(8deg);
  box-shadow: inset 0 -2px 4px rgba(0,0,0,0.3);
  animation: ms-head 4s ease-in-out infinite;
}
.scn-mr-shelby-gentlemanly-air .collar {
  position: absolute;
  bottom: 52%; left: 20%; width: 8%; height: 8%;
  background: linear-gradient(180deg, #c0a080 0%, #a08060 100%);
  border-radius: 20% 20% 10% 10% / 30% 30% 20% 20%;
  transform: rotate(10deg);
  box-shadow: 0 0 6px 2px rgba(160,128,96,0.4);
  animation: ms-collar 6s ease-in-out infinite;
}
.scn-mr-shelby-gentlemanly-air .fire-glow {
  position: absolute;
  bottom: 22%; left: 50%; width: 12%; height: 14%;
  transform: translateX(-50%);
  background: radial-gradient(ellipse at center, #d08040 0%, transparent 70%);
  border-radius: 50%;
  filter: blur(6px);
  animation: ms-fire 3s ease-in-out infinite alternate;
}
.scn-mr-shelby-gentlemanly-air .mug {
  position: absolute;
  bottom: 25%; left: 35%; width: 6%; height: 10%;
  background: linear-gradient(180deg, #a08050 0%, #806030 100%);
  border-radius: 20% 20% 10% 10% / 30% 30% 20% 20%;
  transform: rotate(-10deg);
  box-shadow: 2px 2px 6px rgba(0,0,0,0.4);
  animation: ms-mug 10s ease-in-out infinite;
}
@keyframes ms-room { 0%,100% { opacity:0.9; } 50% { opacity:1; } }
@keyframes ms-shelf { 0% { transform: translateX(0); } 50% { transform: translateX(-2px); } 100% { transform: translateX(0); } }
@keyframes ms-chair { 0% { transform: rotate(5deg) translateY(0); } 50% { transform: rotate(4deg) translateY(-3px); } 100% { transform: rotate(5deg) translateY(0); } }
@keyframes ms-body { 0% { transform: rotate(-5deg) translateX(0); } 50% { transform: rotate(-4deg) translateX(3px); } 100% { transform: rotate(-5deg) translateX(0); } }
@keyframes ms-head { 0% { transform: rotate(8deg) translateX(0); } 50% { transform: rotate(6deg) translateX(2px); } 100% { transform: rotate(8deg) translateX(0); } }
@keyframes ms-collar { 0% { opacity:0.8; transform: rotate(10deg); } 50% { opacity:1; transform: rotate(12deg); } 100% { opacity:0.8; transform: rotate(10deg); } }
@keyframes ms-fire { 0% { opacity:0.6; transform: scale(1); } 50% { opacity:1; transform: scale(1.1); } 100% { opacity:0.6; transform: scale(1); } }
@keyframes ms-mug { 0% { transform: rotate(-10deg) translateY(0); } 50% { transform: rotate(-8deg) translateY(-2px); } 100% { transform: rotate(-10deg) translateY(0); } }

.scn-eliza-reaches-river {
  background: linear-gradient(180deg, #4a90d9 0%, #f5d98a 40%, #e8b84a 100%), radial-gradient(ellipse at 50% 0%, #ffe080 0%, transparent 60%);
}
.scn-eliza-reaches-river .sky {
  position:absolute; inset:0 0 50% 0;
  background: linear-gradient(180deg, #69c4ff 0%, #f5d98a 100%);
  animation: err-sky 16s ease-in-out infinite alternate;
}
.scn-eliza-reaches-river .sun {
  position:absolute; top:10%; left:70%; width:60px; height:60px;
  background: radial-gradient(circle, #fff5b0 0%, #ffd060 40%, transparent 70%);
  border-radius:50%; box-shadow: 0 0 80px 30px rgba(255,208,96,0.5);
  animation: err-sun 12s ease-in-out infinite alternate;
}
.scn-eliza-reaches-river .river {
  position:absolute; bottom:0; left:0; right:0; height:50%;
  background: linear-gradient(180deg, #2a6b8a 0%, #1a4055 100%);
  animation: err-river 8s ease-in-out infinite alternate;
}
.scn-eliza-reaches-river .ice-cake-1 {
  position:absolute; bottom:35%; left:15%; width:70px; height:20px;
  background: linear-gradient(135deg, #e0e8f0 0%, #b0c8d8 100%);
  border-radius:30% 40% 20% 30%; box-shadow: inset 0 -4px 6px rgba(0,0,0,0.2);
  transform: rotate(-5deg); animation: err-ice1 7s ease-in-out infinite;
}
.scn-eliza-reaches-river .ice-cake-2 {
  position:absolute; bottom:30%; left:55%; width:90px; height:25px;
  background: linear-gradient(135deg, #d8e4f0 0%, #a8c4d4 100%);
  border-radius:40% 30% 30% 40%; box-shadow: inset 0 -3px 5px rgba(0,0,0,0.2);
  transform: rotate(3deg); animation: err-ice2 9s ease-in-out infinite;
}
.scn-eliza-reaches-river .bank {
  position:absolute; bottom:0; left:0; right:0; height:18%;
  background: linear-gradient(180deg, #6a5a3a 0%, #3a2a1a 100%);
  border-radius: 0 0 10% 10%; box-shadow: inset 0 8px 20px rgba(0,0,0,0.5);
}
.scn-eliza-reaches-river .figure {
  position:absolute; bottom:15%; left:30%; width:20px; height:40px;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center; animation: err-walk 4s ease-in-out infinite;
}
@keyframes err-sky { 0% { opacity:0.9 } 50% { opacity:1 } 100% { opacity:0.8 } }
@keyframes err-sun { 0% { transform: scale(0.95) } 50% { transform: scale(1.05) } 100% { transform: scale(0.95) } }
@keyframes err-river { 0% { background-position: 0% 0% } 50% { background-position: 10% 0% } 100% { background-position: 0% 0% } }
@keyframes err-ice1 { 0% { transform: translate(0,0) rotate(-5deg) } 50% { transform: translate(4px,-3px) rotate(-2deg) } 100% { transform: translate(0,0) rotate(-5deg) } }
@keyframes err-ice2 { 0% { transform: translate(0,0) rotate(3deg) } 50% { transform: translate(-6px,2px) rotate(6deg) } 100% { transform: translate(0,0) rotate(3deg) } }
@keyframes err-walk { 0% { transform: translateX(0) translateY(0) rotate(-2deg) } 25% { transform: translateX(8px) translateY(-1px) rotate(2deg) } 50% { transform: translateX(16px) translateY(0) rotate(-1deg) } 75% { transform: translateX(24px) translateY(-1px) rotate(1deg) } 100% { transform: translateX(32px) translateY(0) rotate(0) } }

.scn-the-swollen-river {
  background: linear-gradient(180deg, #1c2b4a 0%, #3a4a6a 30%, #5a6a8a 60%, #4a5a7a 100%), radial-gradient(ellipse at 50% 100%, #3a4a6a 0%, transparent 70%);
}
.scn-the-swollen-river .sky {
  position:absolute; inset:0 0 45% 0;
  background: linear-gradient(180deg, #2a3a5a 0%, #4a5a7a 50%, #6a7a9a 100%);
  animation: swr-sky 20s ease-in-out infinite alternate;
}
.scn-the-swollen-river .water {
  position:absolute; bottom:0; left:0; right:0; height:45%;
  background: linear-gradient(180deg, #1a2a3a 0%, #0a1a2a 100%);
  animation: swr-water 10s ease-in-out infinite alternate;
}
.scn-the-swollen-river .bend {
  position:absolute; bottom:10%; left:0; width:100%; height:30%;
  background: linear-gradient(135deg, #2a3a4a 0%, #0a1a2a 100%);
  border-radius: 0 50% 0 0; box-shadow: inset 0 10px 20px rgba(0,0,0,0.6);
}
.scn-the-swollen-river .ice-pile-1 {
  position:absolute; bottom:38%; left:10%; width:100px; height:30px;
  background: linear-gradient(145deg, #c0d0e0 0%, #809aa0 100%);
  border-radius: 40% 60% 30% 50%; box-shadow: inset 0 -5px 8px rgba(0,0,0,0.3);
  animation: swr-ice1 6s ease-in-out infinite;
}
.scn-the-swollen-river .ice-pile-2 {
  position:absolute; bottom:35%; left:50%; width:120px; height:35px;
  background: linear-gradient(145deg, #b0c8d8 0%, #708890 100%);
  border-radius: 50% 40% 60% 30%; box-shadow: inset 0 -4px 6px rgba(0,0,0,0.3);
  animation: swr-ice2 8s ease-in-out infinite reverse;
}
.scn-the-swollen-river .ice-cake-3 {
  position:absolute; bottom:28%; right:15%; width:60px; height:22px;
  background: linear-gradient(180deg, #d0e0f0 0%, #90a8b8 100%);
  border-radius: 30% 40% 20% 50%; box-shadow: inset 0 -3px 5px rgba(0,0,0,0.2);
  transform: rotate(12deg); animation: swr-ice3 12s ease-in-out infinite;
}
.scn-the-swollen-river .tree-silhouette {
  position:absolute; bottom:40%; left:5%; width:8px; height:50px;
  background: linear-gradient(90deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 50% 50% 0 0; transform: rotate(-10deg); box-shadow: 0 0 4px rgba(0,0,0,0.5);
  animation: swr-tree 15s ease-in-out infinite alternate;
}
.scn-the-swollen-river .driftwood {
  position:absolute; bottom:30%; left:30%; width:30px; height:6px;
  background: #3a2a1a; border-radius: 30% 70% 50% 50%;
  animation: swr-drift 18s linear infinite;
}
@keyframes swr-sky { 0% { opacity:0.8 } 50% { opacity:1 } 100% { opacity:0.7 } }
@keyframes swr-water { 0% { background-position: 0% 0% } 50% { background-position: 8% 0% } 100% { background-position: 0% 0% } }
@keyframes swr-ice1 { 0% { transform: translate(0,0) rotate(0) } 50% { transform: translate(5px,-4px) rotate(10deg) } 100% { transform: translate(0,0) rotate(0) } }
@keyframes swr-ice2 { 0% { transform: translate(0,0) rotate(0) } 50% { transform: translate(-8px,3px) rotate(-8deg) } 100% { transform: translate(0,0) rotate(0) } }
@keyframes swr-ice3 { 0% { transform: translate(0,0) rotate(12deg) } 50% { transform: translate(-3px,-2px) rotate(18deg) } 100% { transform: translate(0,0) rotate(12deg) } }
@keyframes swr-tree { 0% { transform: rotate(-10deg) scaleY(1) } 50% { transform: rotate(-8deg) scaleY(0.98) } 100% { transform: rotate(-10deg) scaleY(1) } }
@keyframes swr-drift { 0% { transform: translateX(0) } 100% { transform: translateX(-100px) } }

.scn-eliza-inquires-at-tavern {
  background: linear-gradient(180deg, #1a2a3a 0%, #2a3a5a 30%, #4a5a7a 60%, #2a3a4a 100%), radial-gradient(ellipse at 50% 0%, #6a7a9a 0%, transparent 50%);
}
.scn-eliza-inquires-at-tavern .sky-dusk {
  position:absolute; inset:0 0 40% 0;
  background: linear-gradient(180deg, #2a3a5a 0%, #4a5a7a 50%, #6a7a9a 100%);
  animation: eit-sky 18s ease-in-out infinite alternate;
}
.scn-eliza-inquires-at-tavern .tavern {
  position:absolute; bottom:30%; left:35%; width:160px; height:120px;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 8% 8% 4% 4%; box-shadow: 0 10px 20px rgba(0,0,0,0.6);
}
.scn-eliza-inquires-at-tavern .door-glow {
  position:absolute; bottom:28%; left:38%; width:30px; height:50px;
  background: radial-gradient(ellipse, #d09050 0%, #a06830 70%, transparent 100%);
  border-radius: 20% 20% 10% 10%; box-shadow: 0 0 30px 10px rgba(200,140,80,0.7);
  animation: eit-door 4s ease-in-out infinite alternate;
}
.scn-eliza-inquires-at-tavern .window-light {
  position:absolute; bottom:40%; left:38%; width:20px; height:16px;
  background: radial-gradient(circle, #ffe080 0%, #c09040 70%);
  border-radius: 10% 10% 20% 20%; box-shadow: 0 0 20px 8px rgba(255,224,128,0.5);
  animation: eit-window 3s ease-in-out infinite alternate;
}
.scn-eliza-inquires-at-tavern .figure-eliza {
  position:absolute; bottom:24%; left:36%; width:18px; height:36px;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center; animation: eit-walk 4s ease-in-out infinite;
}
.scn-eliza-inquires-at-tavern .sign {
  position:absolute; bottom:50%; left:40%; width:12px; height:20px;
  background: #5a4a2a; border-radius: 10% 10% 0 0; box-shadow: 0 2px 4px rgba(0,0,0,0.3);
  animation: eit-swing 5s ease-in-out infinite;
}
.scn-eliza-inquires-at-tavern .ground {
  position:absolute; bottom:0; left:0; right:0; height:25%;
  background: linear-gradient(180deg, #2a2a1a 0%, #1a1a0a 100%);
  border-radius: 0 0 10% 10%;
}
@keyframes eit-sky { 0% { opacity:0.8 } 50% { opacity:1 } 100% { opacity:0.7 } }
@keyframes eit-door { 0% { box-shadow: 0 0 20px 6px rgba(200,140,80,0.5); opacity:0.8 } 50% { box-shadow: 0 0 40px 15px rgba(200,140,80,0.9); opacity:1 } 100% { box-shadow: 0 0 25px 8px rgba(200,140,80,0.6); opacity:0.85 } }
@keyframes eit-window { 0% { opacity:0.7 } 50% { opacity:1 } 100% { opacity:0.75 } }
@keyframes eit-walk { 0% { transform: translateX(0) translateY(0) rotate(-1deg) } 25% { transform: translateX(6px) translateY(-1px) rotate(2deg) } 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 eit-swing { 0% { transform: rotate(-5deg) } 50% { transform: rotate(5deg) } 100% { transform: rotate(-5deg) } }

.scn-hostess-offers-shelter {
  background: linear-gradient(180deg, #1a1a2a 0%, #2a1a1a 30%, #1a0a0a 100%), radial-gradient(ellipse at 50% 50%, #4a2a1a 0%, transparent 70%);
}
.scn-hostess-offers-shelter .room-bg {
  position:absolute; inset:0;
  background: linear-gradient(180deg, #1a1a2a 0%, #2a1a1a 50%, #1a0a0a 100%);
  animation: hos-room 10s ease-in-out infinite alternate;
}
.scn-hostess-offers-shelter .fire-glow {
  position:absolute; bottom:30%; left:20%; width:100px; height:80px;
  background: radial-gradient(ellipse at 50% 100%, #ff8040 0%, #d06020 40%, #802010 80%, transparent 100%);
  border-radius: 50% 50% 0 0; box-shadow: 0 0 80px 40px rgba(255,128,64,0.4);
  animation: hos-fire 1.5s ease-in-out infinite alternate;
}
.scn-hostess-offers-shelter .hostess {
  position:absolute; bottom:28%; left:28%; width:22px; height:44px;
  background: linear-gradient(180deg, #3a2a2a 0%, #1a1a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center; animation: hos-hostess 6s ease-in-out infinite;
}
.scn-hostess-offers-shelter .eliza-silhouette {
  position:absolute; bottom:25%; left:38%; width:18px; height:38px;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center; animation: hos-eliza 4s ease-in-out infinite;
}
.scn-hostess-offers-shelter .table {
  position:absolute; bottom:22%; left:25%; width:60px; height:10px;
  background: #3a2a1a; border-radius: 10% 10% 0 0; box-shadow: 0 4px 6px rgba(0,0,0,0.5);
}
.scn-hostess-offers-shelter .window-night {
  position:absolute; top:10%; right:15%; width:40px; height:50px;
  background: linear-gradient(180deg, #1a2a3a 0%, #0a1a2a 100%);
  border: 2px solid #2a2a2a; border-radius: 8% 8% 4% 4%; box-shadow: inset 0 0 10px rgba(0,0,0,0.5);
  animation: hos-night 12s ease-in-out infinite alternate;
}
.scn-hostess-offers-shelter .shadows {
  position:absolute; bottom:0; left:0; right:0; height:30%;
  background: linear-gradient(180deg, transparent 0%, #0a0a0a 100%);
  animation: hos-shadows 8s ease-in-out infinite alternate;
}
@keyframes hos-room { 0% { opacity:0.9 } 50% { opacity:1 } 100% { opacity:0.8 } }
@keyframes hos-fire { 0% { transform: scaleY(1) scaleX(1); box-shadow: 0 0 60px 30px rgba(255,128,64,0.3) } 50% { transform: scaleY(1.1) scaleX(0.95); box-shadow: 0 0 100px 50px rgba(255,128,64,0.6) } 100% { transform: scaleY(0.95) scaleX(1.05); box-shadow: 0 0 70px 35px rgba(255,128,64,0.4) } }
@keyframes hos-hostess { 0% { transform: translateX(0) rotate(-2deg) } 50% { transform: translateX(4px) rotate(2deg) } 100% { transform: translateX(0) rotate(-2deg) } }
@keyframes hos-eliza { 0% { transform: translateX(0) translateY(0) rotate(-1deg) } 25% { transform: translateX(-3px) translateY(-1px) rotate(1deg) } 50% { transform: translateX(0) translateY(0) rotate(-1deg) } 75% { transform: translateX(3px) translateY(-1px) rotate(1deg) } 100% { transform: translateX(0) translateY(0) rotate(0) } }
@keyframes hos-night { 0% { opacity:0.6 } 50% { opacity:0.8 } 100% { opacity:0.6 } }
@keyframes hos-shadows { 0% { opacity:0.7 } 50% { opacity:1 } 100% { opacity:0.7 } }

/* slavery-and-christianity */
.scn-slavery-and-christianity {
  background: linear-gradient(180deg, #ffd7a0 0%, #ffb060 40%, #ff8830 100%), radial-gradient(ellipse at 50% 100%, #ff8830 0%, transparent 70%);
}
.scn-slavery-and-christianity .sky { position:absolute; inset:0 0 50% 0; background: linear-gradient(180deg, #ffe0b0 0%, #ffc080 70%, #ffd0a0 100%); animation: sl1-sky 12s ease-in-out infinite alternate; }
.scn-slavery-and-christianity .sun { position:absolute; top:15%; left:70%; width:60px; height:60px; background: radial-gradient(circle, #fff0d0 0%, #ffc040 40%, transparent 70%); border-radius:50%; box-shadow: 0 0 80px 30px #ffa040; animation: sl1-sun 20s ease-in-out infinite alternate; }
.scn-slavery-and-christianity .hill { position:absolute; bottom:30%; left:0; right:0; height:20%; background: linear-gradient(180deg, #8a7a5a 0%, #4a3a2a 100%); border-radius: 60% 40% 0 0 / 100% 70% 0 0; box-shadow: inset 0 5px 15px rgba(0,0,0,.5); animation: sl1-hill 15s ease-in-out infinite alternate; }
.scn-slavery-and-christianity .cross { position:absolute; bottom:30%; left:40%; width:30px; height:50px; background: #4a3020; border-radius:2px; box-shadow: 0 0 8px rgba(0,0,0,.3); transform: translateX(-50%); }
.scn-slavery-and-christianity .cross::before { content:''; position:absolute; top:-8px; left:50%; width:60px; height:8px; background:#4a3020; border-radius:2px; transform:translateX(-50%); }
.scn-slavery-and-christianity .figure { position:absolute; bottom:28%; left:50%; width:30px; height:50px; background: linear-gradient(180deg, #1a1a1a 0%, #0a0a0a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform:translateX(-50%); animation: sl1-figure 4s ease-in-out infinite; }
.scn-slavery-and-christianity .chains { position:absolute; bottom:28%; left:50%; width:20px; height:30px; transform:translateX(-50%); background: repeating-linear-gradient(0deg, #8a7a6a 0px, #8a7a6a 2px, transparent 2px, transparent 4px); animation: sl1-chains 3s ease-in-out infinite; }
.scn-slavery-and-christianity .ground { position:absolute; bottom:0; left:0; right:0; height:28%; background: linear-gradient(180deg, #6a5a4a 0%, #3a2a1a 100%); border-radius: 0 0 30% 30% / 0 0 10% 10%; }
@keyframes sl1-sky { 0% { opacity:.8 } 50% { opacity:1 } 100% { opacity:.7 } }
@keyframes sl1-sun { 0% { transform: translate(0,0) scale(1) } 50% { transform: translate(10px,-5px) scale(1.1) } 100% { transform: translate(-5px,5px) scale(.95) } }
@keyframes sl1-hill { 0% { transform: translateY(0) } 50% { transform: translateY(-4px) } 100% { transform: translateY(2px) } }
@keyframes sl1-figure { 0% { transform: translateX(-50%) rotate(0deg) } 25% { transform: translateX(-50%) rotate(2deg) translateY(-1px) } 50% { transform: translateX(-50%) rotate(0deg) translateY(0) } 75% { transform: translateX(-50%) rotate(-2deg) translateY(1px) } 100% { transform: translateX(-50%) rotate(0deg) } }
@keyframes sl1-chains { 0% { transform: translateX(-50%) rotate(0deg) } 50% { transform: translateX(-50%) rotate(8deg) } 100% { transform: translateX(-50%) rotate(0deg) } }

/* appeal-to-americans */
.scn-appeal-to-americans {
  background: linear-gradient(180deg, #ffe0a0 0%, #ffc060 30%, #d09040 100%), radial-gradient(ellipse at 50% 0%, #ffe0a0 0%, transparent 60%);
}
.scn-appeal-to-americans .sky { position:absolute; inset:0 0 45% 0; background: linear-gradient(180deg, #ffd890 0%, #ffb850 70%, #ffa030 100%); animation: ap1-sky 10s ease-in-out infinite alternate; }
.scn-appeal-to-americans .sun { position:absolute; top:20%; left:80%; width:50px; height:50px; background: radial-gradient(circle, #fff0c0 0%, #ffcc40 40%, transparent 70%); border-radius:50%; box-shadow: 0 0 60px 20px #ffb040; animation: ap1-sun 18s ease-in-out infinite alternate; }
.scn-appeal-to-americans .podium { position:absolute; bottom:30%; left:50%; width:20px; height:40px; background: #5a3a2a; transform:translateX(-50%); border-radius:2px; box-shadow: 0 4px 8px rgba(0,0,0,.3); }
.scn-appeal-to-americans .speaker { position:absolute; bottom:30%; left:50%; width:30px; height:60px; transform:translateX(-50%); background: linear-gradient(180deg, #2a1a1a 0%, #0a0a0a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: ap1-speak 3s ease-in-out infinite; }
.scn-appeal-to-americans .speaker::before { content:''; position:absolute; top:20%; right:-15px; width:15px; height:8px; background:#2a1a1a; border-radius:50% 0 0 50%; transform:rotate(20deg); transform-origin: right center; animation: ap1-arm 3s ease-in-out infinite; }
.scn-appeal-to-americans .crowd { position:absolute; bottom:30%; left:10%; right:10%; height:40px; background: repeating-linear-gradient(90deg, #1a1a1a 0px, #1a1a1a 8px, transparent 8px, transparent 15px); border-radius:40% 40% 0 0; animation: ap1-crowd 8s ease-in-out infinite; }
.scn-appeal-to-americans .flag { position:absolute; top:10%; left:20%; width:60px; height:40px; background: linear-gradient(90deg, #d0a0a0 0%, #c08888 30%, #d0a0a0 60%, #c08888 100%); border-radius:2px; box-shadow: 0 2px 6px rgba(0,0,0,.2); animation: ap1-flag 6s ease-in-out infinite; transform-origin: left center; }
@keyframes ap1-sky { 0% { opacity:.9 } 50% { opacity:1 } 100% { opacity:.8 } }
@keyframes ap1-sun { 0% { transform: scale(1) translate(0,0) } 50% { transform: scale(1.05) translate(-5px,3px) } 100% { transform: scale(.95) translate(5px,-2px) } }
@keyframes ap1-speak { 0% { transform: translateX(-50%) rotate(0deg) } 25% { transform: translateX(-50%) rotate(1deg) } 50% { transform: translateX(-50%) rotate(-1deg) } 75% { transform: translateX(-50%) rotate(2deg) } 100% { transform: translateX(-50%) rotate(0deg) } }
@keyframes ap1-arm { 0% { transform: rotate(20deg) } 50% { transform: rotate(40deg) } 100% { transform: rotate(20deg) } }
@keyframes ap1-crowd { 0% { transform: translateY(0) scale(1) } 50% { transform: translateY(-2px) scale(1.02) } 100% { transform: translateY(0) scale(1) } }
@keyframes ap1-flag { 0% { transform: rotate(0deg) scaleX(1) } 25% { transform: rotate(8deg) scaleX(1.05) } 50% { transform: rotate(-4deg) scaleX(1) } 75% { transform: rotate(6deg) scaleX(1.03) } 100% { transform: rotate(0deg) scaleX(1) } }

/* free-states-responsibility */
.scn-free-states-responsibility {
  background: linear-gradient(180deg, #f0e0c0 0%, #d0b080 40%, #a08060 100%), radial-gradient(ellipse at 30% 50%, #f0e0c0 0%, transparent 50%);
}
.scn-free-states-responsibility .sky { position:absolute; inset:0 0 40% 0; background: linear-gradient(180deg, #f0d8a0 0%, #d0b070 70%, #c0a060 100%); animation: fr1-sky 14s ease-in-out infinite alternate; }
.scn-free-states-responsibility .sun { position:absolute; top:10%; left:20%; width:70px; height:70px; background: radial-gradient(circle, #fff0c0 0%, #ffcc40 30%, transparent 60%); border-radius:50%; box-shadow: 0 0 90px 30px #ffb040; animation: fr1-sun 25s ease-in-out infinite alternate; }
.scn-free-states-responsibility .justice { position:absolute; bottom:30%; left:50%; width:40px; height:80px; transform:translateX(-50%); background: linear-gradient(180deg, #2a2a2a 0%, #0a0a0a 100%); border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%; box-shadow: 0 0 10px rgba(0,0,0,.3); animation: fr1-justice 6s ease-in-out infinite; }
.scn-free-states-responsibility .justice::before { content:''; position:absolute; top:20%; left:50%; width:30px; height:4px; background:#1a1a1a; border-radius:2px; transform:translateX(-50%); box-shadow: 0 -8px 0 #1a1a1a; }
.scn-free-states-responsibility .scale-left { position:absolute; bottom:45%; left:40%; width:30px; height:20px; background: #4a3a2a; border-radius: 0 0 50% 50%; transform:rotate(-10deg); transform-origin: top center; animation: fr1-scale-left 4s ease-in-out infinite; }
.scn-free-states-responsibility .scale-right { position:absolute; bottom:45%; right:40%; width:30px; height:20px; background: #4a3a2a; border-radius: 0 0 50% 50%; transform:rotate(10deg); transform-origin: top center; animation: fr1-scale-right 4s ease-in-out infinite; }
.scn-free-states-responsibility .beam { position:absolute; bottom:47%; left:35%; right:35%; height:4px; background: #4a3a2a; border-radius:2px; animation: fr1-beam 4s ease-in-out infinite; }
.scn-free-states-responsibility .weight { position:absolute; bottom:42%; left:38%; width:12px; height:12px; background: #2a1a1a; border-radius:50%; box-shadow: 0 0 4px rgba(0,0,0,.4); animation: fr1-weight 4s ease-in-out infinite; }
@keyframes fr1-sky { 0% { opacity:.85 } 50% { opacity:1 } 100% { opacity:.75 } }
@keyframes fr1-sun { 0% { transform: translate(0,0) scale(1) } 50% { transform: translate(8px, -6px) scale(1.08) } 100% { transform: translate(-4px,4px) scale(.92) } }
@keyframes fr1-justice { 0% { transform: translateX(-50%) rotate(0deg) } 25% { transform: translateX(-50%) rotate(1deg) } 50% { transform: translateX(-50%) rotate(-1deg) } 75% { transform: translateX(-50%) rotate(2deg) } 100% { transform: translateX(-50%) rotate(0deg) } }
@keyframes fr1-scale-left { 0% { transform: rotate(-10deg) } 50% { transform: rotate(5deg) } 100% { transform: rotate(-10deg) } }
@keyframes fr1-scale-right { 0% { transform: rotate(10deg) } 50% { transform: rotate(-5deg) } 100% { transform: rotate(10deg) } }
@keyframes fr1-beam { 0% { transform: rotate(0deg) } 50% { transform: rotate(3deg) } 100% { transform: rotate(0deg) } }
@keyframes fr1-weight { 0% { transform: translate(0,0) } 50% { transform: translate(2px, -2px) } 100% { transform: translate(0,0) } }

/* individual-action */
.scn-individual-action {
  background: linear-gradient(180deg, #c0e0ff 0%, #80c0ff 40%, #4090d0 100%), radial-gradient(ellipse at 50% 100%, #80c0ff 0%, transparent 60%);
}
.scn-individual-action .sky { position:absolute; inset:0 0 50% 0; background: linear-gradient(180deg, #d0e8ff 0%, #a0d0ff 70%, #80b8ff 100%); animation: in1-sky 20s ease-in-out infinite alternate; }
.scn-individual-action .sun { position:absolute; top:30%; left:20%; width:40px; height:40px; background: radial-gradient(circle, #fff0c0 0%, #ffd060 30%, transparent 60%); border-radius:50%; box-shadow: 0 0 60px 20px #ffd060; animation: in1-sun 30s ease-in-out infinite alternate; }
.scn-individual-action .tree { position:absolute; bottom:30%; left:30%; width:60px; height:120px; background: linear-gradient(180deg, #4a6a3a 0%, #2a4a1a 100%); border-radius: 40% 40% 10% 10% / 80% 80% 20% 20%; animation: in1-tree 12s ease-in-out infinite; }
.scn-individual-action .figure { position:absolute; bottom:28%; left:45%; width:20px; height:40px; background: linear-gradient(180deg, #3a2a1a 0%, #1a0a0a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform:translateX(-50%); animation: in1-figure 6s ease-in-out infinite; }
.scn-individual-action .book { position:absolute; bottom:28%; left:45%; width:18px; height:24px; transform:translateX(-50%); background: #8a7a5a; border-radius:2px; box-shadow: 0 0 6px rgba(0,0,0,.2); animation: in1-book 6s ease-in-out infinite; }
.scn-individual-action .lantern { position:absolute; bottom:32%; left:55%; width:10px; height:10px; background: radial-gradient(circle, #fff0c0 0%, #ffd060 40%, transparent 60%); border-radius:50%; box-shadow: 0 0 30px 10px #ffd060; animation: in1-lantern 3s ease-in-out infinite alternate; }
.scn-individual-action .ground { position:absolute; bottom:0; left:0; right:0; height:28%; background: linear-gradient(180deg, #6a8a5a 0%, #3a5a2a 100%); border-radius: 40% 60% 0 0 / 20% 30% 0 0; }
@keyframes in1-sky { 0% { opacity:.9 } 50% { opacity:1 } 100% { opacity:.8 } }
@keyframes in1-sun { 0% { transform: translate(0,0) scale(1) } 50% { transform: translate(5px, -3px) scale(1.05) } 100% { transform: translate(-3px,2px) scale(.95) } }
@keyframes in1-tree { 0% { transform: rotate(0deg) } 50% { transform: rotate(2deg) scale(1.02) } 100% { transform: rotate(0deg) } }
@keyframes in1-figure { 0% { transform: translateX(-50%) rotate(0deg) } 25% { transform: translateX(-50%) rotate(-1deg) translateY(-1px) } 50% { transform: translateX(-50%) rotate(0deg) translateY(0) } 75% { transform: translateX(-50%) rotate(1deg) translateY(1px) } 100% { transform: translateX(-50%) rotate(0deg) } }
@keyframes in1-book { 0% { transform: translateX(-50%) rotate(0deg) } 50% { transform: translateX(-50%) rotate(5deg) } 100% { transform: translateX(-50%) rotate(0deg) } }
@keyframes in1-lantern { 0% { opacity:.7; box-shadow: 0 0 20px 5px #ffd060 } 50% { opacity:1; box-shadow: 0 0 40px 15px #ffd060 } 100% { opacity:.8; box-shadow: 0 0 25px 8px #ffd060 } }

/* Scene: sam-feigns-piety */
.scn-sam-feigns-piety {
  background: linear-gradient(180deg, #fce8c0 0%, #f0d0a0 40%, #d4a86a 100%), radial-gradient(ellipse at 50% 0%, #fff8e7 0%, transparent 70%);
}
.scn-sam-feigns-piety .sun { position:absolute; top:5%; left:70%; width:60px; height:60px; background:radial-gradient(circle, #fff5c0 0%, #ffd080 40%, transparent 70%); border-radius:50%; box-shadow:0 0 40px 20px rgba(255,200,100,0.4); animation:sp-sun-pulse 3s ease-in-out infinite; }
.scn-sam-feigns-piety .wall { position:absolute; top:20%; left:5%; right:5%; height:50%; background:linear-gradient(180deg, #f5e6cc 0%, #e8d0a8 100%); border-radius:10px; box-shadow:inset 0 4px 20px rgba(0,0,0,0.1); animation:sp-wall-breathe 6s ease-in-out infinite alternate; }
.scn-sam-feigns-piety .floor { position:absolute; bottom:0; left:0; right:0; height:30%; background:linear-gradient(180deg, #d4a86a 0%, #b8844a 100%); border-radius:20% 20% 0 0; }
.scn-sam-feigns-piety .sam-body { position:absolute; bottom:28%; left:40%; width:40px; height:60px; background:linear-gradient(180deg, #8b6b4b 0%, #5a3e2a 100%); border-radius:40% 40% 30% 30% / 60% 60% 30% 30%; transform-origin:bottom center; animation:sp-sway 2s ease-in-out infinite; }
.scn-sam-feigns-piety .sam-head { position:absolute; bottom:68%; left:42%; width:30px; height:34px; background:radial-gradient(circle at 50% 30%, #c9965a 0%, #8b6b4b 100%); border-radius:50%; transform-origin:bottom center; animation:sp-head-bob 2s ease-in-out infinite; }
.scn-sam-feigns-piety .hands-clasped { position:absolute; bottom:38%; left:47%; width:20px; height:18px; background:linear-gradient(180deg, #c9965a 0%, #8b6b4b 100%); border-radius:50% 50% 40% 40%; animation:sp-pray 1.5s ease-in-out infinite; }
.scn-sam-feigns-piety .halo { position:absolute; top:18%; left:40%; width:60px; height:20px; background:radial-gradient(ellipse, rgba(255,230,150,0.5) 0%, transparent 70%); border-radius:50%; filter:blur(4px); animation:sp-glow 2s ease-in-out infinite alternate; }
.scn-sam-feigns-piety .shadow { position:absolute; bottom:0; left:35%; width:70px; height:10px; background:rgba(60,40,20,0.3); border-radius:50%; filter:blur(3px); animation:sp-shadow-pulse 2s ease-in-out infinite; }
@keyframes sp-sun-pulse { 0% { transform:scale(1); opacity:0.8; } 50% { transform:scale(1.1); opacity:1; } 100% { transform:scale(1); opacity:0.85; } }
@keyframes sp-wall-breathe { 0% { opacity:0.9; } 50% { opacity:1; } 100% { opacity:0.9; } }
@keyframes sp-sway { 0% { transform:rotate(-2deg); } 50% { transform:rotate(2deg); } 100% { transform:rotate(-2deg); } }
@keyframes sp-head-bob { 0% { transform:rotate(-5deg) translateY(0); } 50% { transform:rotate(5deg) translateY(-2px); } 100% { transform:rotate(-5deg) translateY(0); } }
@keyframes sp-pray { 0% { transform:translateY(0) scale(1); } 50% { transform:translateY(-4px) scale(1.1); } 100% { transform:translateY(0) scale(1); } }
@keyframes sp-glow { 0% { opacity:0.3; } 100% { opacity:0.7; } }
@keyframes sp-shadow-pulse { 0% { transform:scaleX(1); opacity:0.3; } 50% { transform:scaleX(0.8); opacity:0.5; } 100% { transform:scaleX(1); opacity:0.3; } }

/* Scene: sam-signals-andy */
.scn-sam-signals-andy {
  background: linear-gradient(180deg, #fbe6b0 0%, #f0c880 50%, #d4a050 100%), radial-gradient(ellipse at 60% 20%, #fff8e0 0%, transparent 70%);
}
.scn-sam-signals-andy .sky { position:absolute; inset:0 0 40% 0; background:linear-gradient(180deg, #b8d8f0 0%, #a0c8e8 100%); animation:sa-sky-shift 10s ease-in-out infinite alternate; }
.scn-sam-signals-andy .fence { position:absolute; bottom:30%; left:0; right:0; height:15%; background:linear-gradient(90deg, #8a6a44 0%, #a07a54 20%, #8a6a44 40%, #a07a54 60%, #8a6a44 80%, #a07a54 100%); clip-path:polygon(0% 100%, 2% 0%, 8% 0%, 10% 100%, 18% 100%, 20% 0%, 26% 0%, 28% 100%, 36% 100%, 38% 0%, 44% 0%, 46% 100%, 54% 100%, 56% 0%, 62% 0%, 64% 100%, 72% 100%, 74% 0%, 80% 0%, 82% 100%, 90% 100%, 92% 0%, 98% 0%, 100% 100%); box-shadow:0 -2px 6px rgba(0,0,0,0.2); }
.scn-sam-signals-andy .sam-profile { position:absolute; bottom:32%; left:20%; width:30px; height:70px; background:linear-gradient(-90deg, #5a3e2a 0%, #8b6b4b 100%); border-radius:50% 40% 30% 40% / 60% 50% 40% 50%; transform-origin:bottom left; animation:sa-look 2s ease-in-out infinite; }
.scn-sam-signals-andy .sam-eye { position:absolute; bottom:66%; left:30%; width:12px; height:12px; background:radial-gradient(circle, #fff 0%, #000 60%); border-radius:50%; box-shadow:0 0 8px 2px rgba(255,255,200,0.6); animation:sa-eye-roll 1.2s ease-in-out infinite; }
.scn-sam-signals-andy .andy-profile { position:absolute; bottom:32%; right:25%; width:28px; height:60px; background:linear-gradient(90deg, #4a3228 0%, #6a4a38 100%); border-radius:40% 50% 40% 30% / 50% 60% 40% 50%; transform-origin:bottom right; animation:sa-nod 3s ease-in-out infinite; }
.scn-sam-signals-andy .tree { position:absolute; bottom:30%; right:10%; width:20px; height:100px; background:linear-gradient(180deg, #5a3e2a 0%, #3a2a1a 100%); border-radius:20% 20% 0 0; transform-origin:bottom center; animation:sa-tree-sway 6s ease-in-out infinite alternate; }
.scn-sam-signals-andy .tree::after { content:''; position:absolute; top:-20px; left:-25px; width:60px; height:40px; background:radial-gradient(ellipse, #6a8a4a 0%, #4a6a2a 100%); border-radius:50%; filter:blur(2px); }
.scn-sam-signals-andy .sunburst { position:absolute; top:8%; left:50%; width:80px; height:80px; background:radial-gradient(circle, rgba(255,240,180,0.6) 0%, transparent 70%); border-radius:50%; animation:sa-sun-flare 4s ease-in-out infinite alternate; }
@keyframes sa-sky-shift { 0% { opacity:0.7; } 100% { opacity:1; } }
@keyframes sa-look { 0% { transform:rotate(0deg); } 30% { transform:rotate(10deg); } 60% { transform:rotate(0deg); } 100% { transform:rotate(0deg); } }
@keyframes sa-eye-roll { 0% { transform:translate(0,0) scale(1); } 30% { transform:translate(4px,-3px) scale(1.2); } 60% { transform:translate(0,0) scale(1); } 100% { transform:translate(0,0) scale(1); } }
@keyframes sa-nod { 0% { transform:rotate(0deg); } 25% { transform:rotate(-5deg); } 50% { transform:rotate(0deg); } 75% { transform:rotate(5deg); } 100% { transform:rotate(0deg); } }
@keyframes sa-tree-sway { 0% { transform:rotate(-2deg); } 50% { transform:rotate(2deg); } 100% { transform:rotate(-2deg); } }
@keyframes sa-sun-flare { 0% { opacity:0.5; transform:scale(1); } 100% { opacity:0.9; transform:scale(1.2); } }

/* Scene: sam-and-andy-collude */
.scn-sam-and-andy-collude {
  background: linear-gradient(180deg, #f8e0b0 0%, #e8c890 40%, #c8a060 100%), radial-gradient(ellipse at 50% 0%, #fff5e0 0%, transparent 80%);
}
.scn-sam-and-andy-collude .sky { position:absolute; inset:0 0 50% 0; background:linear-gradient(180deg, #b0d0f0 0%, #90b8e0 100%); animation:ac-sky-shift 8s ease-in-out infinite alternate; }
.scn-sam-and-andy-collude .ground { position:absolute; bottom:0; left:0; right:0; height:50%; background:linear-gradient(180deg, #8a9a5a 0%, #6a7a3a 100%); border-radius:50% 50% 0 0 / 20% 20% 0 0; }
.scn-sam-and-andy-collude .sam-body { position:absolute; bottom:30%; left:25%; width:40px; height:65px; background:linear-gradient(180deg, #8b6b4b 0%, #5a3e2a 100%); border-radius:45% 40% 30% 35% / 60% 55% 35% 40%; transform-origin:bottom center; animation:ac-sam-lean 2.5s ease-in-out infinite; }
.scn-sam-and-andy-collude .sam-body::before { content:''; position:absolute; top:-40px; left:5px; width:28px; height:32px; background:radial-gradient(circle at 50% 30%, #c9965a 0%, #8b6b4b 100%); border-radius:50%; }
.scn-sam-and-andy-collude .andy-body { position:absolute; bottom:30%; right:30%; width:35px; height:60px; background:linear-gradient(180deg, #6a4a38 0%, #4a3228 100%); border-radius:40% 45% 30% 35% / 55% 60% 30% 40%; transform-origin:bottom center; animation:ac-andy-lean 2.5s ease-in-out infinite 0.3s; }
.scn-sam-and-andy-collude .andy-body::before { content:''; position:absolute; top:-38px; left:3px; width:26px; height:30px; background:radial-gradient(circle at 50% 30%, #a0785a 0%, #6a4a38 100%); border-radius:50%; }
.scn-sam-and-andy-collude .horse-silhouette { position:absolute; bottom:30%; right:5%; width:60px; height:40px; background:linear-gradient(180deg, #3a2a1a 0%, #1a0a00 100%); border-radius:40% 60% 20% 20% / 60% 80% 20% 20%; clip-path:polygon(0% 60%, 15% 30%, 30% 20%, 55% 10%, 70% 20%, 85% 30%, 100% 60%, 80% 80%, 60% 90%, 40% 90%, 20% 80%); box-shadow:0 4px 8px rgba(0,0,0,0.3); animation:ac-horse-move 4s ease-in-out infinite alternate; }
.scn-sam-and-andy-collude .fence-rail { position:absolute; bottom:38%; left:10%; right:10%; height:6px; background:linear-gradient(90deg, #8a6a44 0%, #a07a54 50%, #8a6a44 100%); border-radius:2px; filter:drop-shadow(0 2px 4px rgba(0,0,0,0.2)); }
.scn-sam-and-andy-collude .whisper-lines { position:absolute; bottom:55%; left:35%; width:30px; height:8px; background:repeating-linear-gradient(90deg, transparent, transparent 4px, rgba(255,230,150,0.4) 4px, rgba(255,230,150,0.4) 8px); border-radius:4px; animation:ac-whisper 1s linear infinite; }
@keyframes ac-sky-shift { 0% { opacity:0.7; } 100% { opacity:1; } }
@keyframes ac-sam-lean { 0% { transform:rotate(-4deg) translateY(0); } 50% { transform:rotate(4deg) translateY(-3px); } 100% { transform:rotate(-4deg) translateY(0); } }
@keyframes ac-andy-lean { 0% { transform:rotate(3deg) translateY(0); } 50% { transform:rotate(-3deg) translateY(-2px); } 100% { transform:rotate(3deg) translateY(0); } }
@keyframes ac-horse-move { 0% { transform:translateX(0) scaleX(1); } 50% { transform:translateX(-20px) scaleX(-1); } 100% { transform:translateX(0) scaleX(1); } }
@keyframes ac-whisper { 0% { opacity:0; } 50% { opacity:1; } 100% { opacity:0; } }

/* Scene: haley-thrown-from-horse */
.scn-haley-thrown-from-horse {
  background: linear-gradient(180deg, #fce8c0 0%, #f0d0a0 40%, #d4a86a 100%), radial-gradient(ellipse at 80% 30%, #fff8e0 0%, transparent 70%);
}
.scn-haley-thrown-from-horse .sky { position:absolute; inset:0 0 40% 0; background:linear-gradient(180deg, #b8d8f0 0%, #a0c8e8 100%); animation:ht-sky-pulse 6s ease-in-out infinite alternate; }
.scn-haley-thrown-from-horse .verandah { position:absolute; bottom:20%; left:5%; right:5%; height:25%; background:linear-gradient(180deg, #c8a86a 0%, #a0804a 100%); border-radius:10px 10px 0 0; box-shadow:0 -4px 12px rgba(0,0,0,0.2); }
.scn-haley-thrown-from-horse .verandah::before { content:''; position:absolute; top:-12px; left:10%; right:10%; height:12px; background:linear-gradient(180deg, #a0804a 0%, #c8a86a 100%); border-radius:4px; }
.scn-haley-thrown-from-horse .horse-rearing { position:absolute; bottom:20%; left:30%; width:80px; height:70px; background:linear-gradient(180deg, #3a2a1a 0%, #1a0a00 100%); border-radius:30% 40% 10% 10% / 50% 60% 10% 10%; clip-path:polygon(0% 80%, 10% 40%, 25% 20%, 50% 5%, 70% 15%, 85% 40%, 100% 80%, 80% 90%, 60% 95%, 40% 95%, 20% 90%); transform-origin:bottom center; animation:ht-horse-rear 0.8s ease-in-out infinite; }
.scn-haley-thrown-from-horse .haley-flying { position:absolute; bottom:55%; left:55%; width:30px; height:50px; background:linear-gradient(180deg, #a0785a 0%, #6a4a38 100%); border-radius:40% 40% 30% 30% / 50% 50% 30% 30%; transform-origin:center center; animation:ht-haley-fly 0.8s ease-in-out infinite; }
.scn-haley-thrown-from-horse .haley-flying::after { content:''; position:absolute; top:-30px; left:2px; width:26px; height:28px; background:radial-gradient(circle at 50% 30%, #a0785a 0%, #6a4a38 100%); border-radius:50%; }
.scn-haley-thrown-from-horse .coffee-cup { position:absolute; bottom:60%; left:70%; width:14px; height:18px; background:linear-gradient(180deg, #f0d0a0 0%, #c8a060 100%); border-radius:0 0 30% 30%; box-shadow:0 2px 4px rgba(0,0,0,0.3); animation:ht-cup-spin 0.8s ease-in-out infinite; }
.scn-haley-thrown-from-horse .dust-cloud { position:absolute; bottom:15%; left:25%; width:60px; height:20px; background:radial-gradient(ellipse, rgba(200,180,140,0.6) 0%, transparent 70%); border-radius:50%; filter:blur(3px); animation:ht-dust-puff 1.6s ease-in-out infinite; }
.scn-haley-thrown-from-horse .shadow { position:absolute; bottom:0; left:35%; width:80px; height:8px; background:rgba(60,40,20,0.3); border-radius:50%; filter:blur(2px); animation:ht-shadow-pulse 0.8s ease-in-out infinite; }
@keyframes ht-sky-pulse { 0% { opacity:0.7; } 50% { opacity:1; } 100% { opacity:0.7; } }
@keyframes ht-horse-rear { 0% { transform:rotate(-5deg) scale(1); } 30% { transform:rotate(10deg) scaleY(1.05); } 60% { transform:rotate(-3deg) scaleY(0.95); } 100% { transform:rotate(-5deg) scale(1); } }
@keyframes ht-haley-fly { 0% { transform:translate(0,0) rotate(20deg); } 30% { transform:translate(10px,-20px) rotate(-10deg); } 60% { transform:translate(20px,-5px) rotate(15deg); } 100% { transform:translate(0,0) rotate(20deg); } }
@keyframes ht-cup-spin { 0% { transform:rotate(0deg) translateY(0); } 30% { transform:rotate(45deg) translateY(-10px); } 60% { transform:rotate(-30deg) translateY(-5px); } 100% { transform:rotate(0deg) translateY(0); } }
@keyframes ht-dust-puff { 0% { transform:scale(1); opacity:0.4; } 50% { transform:scale(1.5); opacity:1; } 100% { transform:scale(1); opacity:0.4; } }
@keyframes ht-shadow-pulse { 0% { transform:scaleX(1); opacity:0.3; } 30% { transform:scaleX(0.7); opacity:0.5; } 60% { transform:scaleX(1.2); opacity:0.2; } 100% { transform:scaleX(1); opacity:0.3; } }

.scn-tom-remains-behind {
  background: linear-gradient(180deg, #2a2a5e 0%, #4a4a7e 30%, #7a6a4a 70%, #b08a5a 100%), radial-gradient(ellipse at 50% 0%, #d0b070 0%, transparent 60%);
}
.scn-tom-remains-behind .sky {
  position: absolute; inset: 0 0 50% 0;
  background: linear-gradient(180deg, #1a1a4e 0%, #4a3a3a 50%, #b0804a 100%);
  opacity: 0.8;
  animation: trb-sky 20s ease-in-out infinite alternate;
}
.scn-tom-remains-behind .hills {
  position: absolute; bottom: 30%; left: 0; right: 0; height: 20%;
  background: linear-gradient(180deg, #2a3a2a 0%, #1a2a1a 100%);
  border-radius: 50% 50% 0 0 / 80% 80% 0 0;
  box-shadow: inset 0 8px 20px rgba(0,0,0,0.5);
  animation: trb-hills 15s ease-in-out infinite alternate;
}
.scn-tom-remains-behind .tree {
  position: absolute; bottom: 28%; left: 60%; width: 12px; height: 50px;
  background: linear-gradient(180deg, #1a1a0a 0%, #0a0a00 100%);
  border-radius: 50% 50% 20% 20% / 30% 30% 60% 60%;
  transform-origin: bottom center;
  animation: trb-tree 8s ease-in-out infinite;
}
.scn-tom-remains-behind .kneeling-figure {
  position: absolute; bottom: 26%; left: 45%; width: 20px; height: 30px;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: trb-kneel 4s ease-in-out infinite;
}
.scn-tom-remains-behind .standing-figure {
  position: absolute; bottom: 20%; left: 30%; width: 22px; height: 45px;
  background: linear-gradient(180deg, #2a1a1a 0%, #0a0a0a 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: trb-stand 6s ease-in-out infinite;
}
.scn-tom-remains-behind .prayer-glow {
  position: absolute; bottom: 32%; left: 44%; width: 30px; height: 30px;
  background: radial-gradient(circle, #d0b070 0%, rgba(208,176,112,0.3) 50%, transparent 100%);
  border-radius: 50%;
  box-shadow: 0 0 40px 20px rgba(208,176,112,0.4), 0 0 80px 40px rgba(208,176,112,0.2);
  animation: trb-glow 2s ease-in-out infinite alternate;
}
.scn-tom-remains-behind .cloud {
  position: absolute; border-radius: 50%; filter: blur(5px);
}
.scn-tom-remains-behind .cloud-a {
  top: 10%; left: 10%; width: 70px; height: 16px;
  background: rgba(255,255,255,0.3);
  animation: trb-drift-a 40s linear infinite;
}
.scn-tom-remains-behind .cloud-b {
  top: 18%; right: 15%; width: 50px; height: 12px;
  background: rgba(255,255,255,0.2);
  animation: trb-drift-b 55s linear infinite reverse;
}
@keyframes trb-sky { 0% { opacity:0.7 } 50% { opacity:0.9 } 100% { opacity:0.6 } }
@keyframes trb-hills { 0% { transform: translateY(0) } 50% { transform: translateY(-4px) } 100% { transform: translateY(0) } }
@keyframes trb-tree { 0%,100% { transform: rotate(0deg) } 50% { transform: rotate(3deg) } }
@keyframes trb-kneel { 0%,100% { transform: translateY(0) rotate(-2deg) } 50% { transform: translateY(-2px) rotate(2deg) } }
@keyframes trb-stand { 0%,100% { transform: translateX(0) } 50% { transform: translateX(5px) } }
@keyframes trb-glow { 0% { opacity:0.6; transform: scale(0.9) } 50% { opacity:1; transform: scale(1.1) } 100% { opacity:0.7; transform: scale(0.95) } }
@keyframes trb-drift-a { 0% { transform: translateX(-30px) } 100% { transform: translateX(120vw) } }
@keyframes trb-drift-b { 0% { transform: translateX(0) } 100% { transform: translateX(-100vw) } }

.scn-legree-hatred {
  background: linear-gradient(180deg, #0a0a12 0%, #1a1a2e 30%, #0e0e1a 100%), radial-gradient(ellipse at 50% 80%, #2a2a4e 0%, transparent 70%);
}
.scn-legree-hatred .bg-deep {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, transparent 60%, #05050a 100%);
  animation: lh-deep 20s ease-in-out infinite alternate;
}
.scn-legree-hatred .wall {
  position: absolute; bottom: 20%; left: 10%; right: 10%; height: 60%;
  background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 50%, #0a0a1a 100%);
  border-radius: 10% 10% 0 0 / 30% 30% 0 0;
  box-shadow: inset 0 -20px 30px rgba(0,0,0,0.8);
}
.scn-legree-hatred .table {
  position: absolute; bottom: 15%; left: 50%; width: 60px; height: 8px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #3a2a1a 0%, #1a100a 100%);
  border-radius: 2px;
  box-shadow: 0 4px 6px rgba(0,0,0,0.6);
  animation: lh-table 10s ease-in-out infinite alternate;
}
.scn-legree-hatred .candle {
  position: absolute; bottom: 23%; left: 50%; width: 6px; height: 16px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #4a3a1a 0%, #1a1008 100%);
  border-radius: 20% 20% 10% 10% / 40% 40% 20% 20%;
  animation: lh-candle 3s ease-in-out infinite;
}
.scn-legree-hatred .candle-glow {
  position: absolute; bottom: 22%; left: 50%; width: 40px; height: 40px;
  transform: translate(-50%, -50%);
  background: radial-gradient(circle, #b08040 0%, rgba(176,128,64,0.4) 50%, transparent 100%);
  border-radius: 50%;
  box-shadow: 0 0 30px 15px rgba(176,128,64,0.3), 0 0 60px 30px rgba(176,128,64,0.2);
  animation: lh-flicker 2s ease-in-out infinite alternate;
}
.scn-legree-hatred .figure {
  position: absolute; bottom: 18%; left: 40%; width: 24px; height: 50px;
  background: linear-gradient(180deg, #0a0a1a 0%, #000005 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: lh-figure 8s ease-in-out infinite;
}
.scn-legree-hatred .shadow {
  position: absolute; bottom: 10%; left: 35%; width: 50px; height: 20px;
  background: radial-gradient(ellipse, rgba(0,0,0,0.6) 0%, transparent 100%);
  border-radius: 50%;
  animation: lh-shadow 8s ease-in-out infinite;
}
@keyframes lh-deep { 0% { opacity:0.5 } 50% { opacity:0.8 } 100% { opacity:0.6 } }
@keyframes lh-table { 0%,100% { transform: translateX(-50%) rotate(0deg) } 50% { transform: translateX(-50%) rotate(1deg) } }
@keyframes lh-candle { 0%,100% { transform: translateX(-50%) scaleY(1) } 50% { transform: translateX(-50%) scaleY(0.95) } }
@keyframes lh-flicker { 0% { opacity:0.7; transform: translate(-50%,-50%) scale(0.95) } 50% { opacity:1; transform: translate(-50%,-50%) scale(1.05) } 100% { opacity:0.8; transform: translate(-50%,-50%) scale(0.98) } }
@keyframes lh-figure { 0%,100% { transform: translateY(0) rotate(0deg) } 50% { transform: translateY(-2px) rotate(2deg) } }
@keyframes lh-shadow { 0%,100% { transform: scale(1) } 50% { transform: scale(1.1) } }

.scn-legree-plans-vengeance {
  background: linear-gradient(180deg, #2a2a3e 0%, #3a3a4e 30%, #5a4a3a 60%, #7a6a4a 100%), radial-gradient(ellipse at 50% 100%, #6a5a3a 0%, transparent 70%);
}
.scn-legree-plans-vengeance .sky {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(180deg, #3a3a5e 0%, #5a4a3a 40%, #7a6a4a 100%);
  opacity: 0.9;
  animation: lpv-sky 15s ease-in-out infinite alternate;
}
.scn-legree-plans-vengeance .clouds {
  position: absolute; top: 5%; left: 0; right: 0; height: 30%;
  background: repeating-linear-gradient(90deg, rgba(255,255,255,0.08) 0px, rgba(255,255,255,0) 30px, rgba(255,255,255,0.05) 60px);
  filter: blur(4px);
  animation: lpv-clouds 25s linear infinite;
}
.scn-legree-plans-vengeance .ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 40%;
  background: linear-gradient(180deg, #3a3a2a 0%, #2a2a1a 100%);
  border-radius: 0 0 20% 20% / 0 0 10% 10%;
  box-shadow: inset 0 10px 20px rgba(0,0,0,0.4);
}
.scn-legree-plans-vengeance .figure {
  position: absolute; bottom: 20%; left: 40%; width: 30px; height: 65px;
  background: linear-gradient(180deg, #0a0a1a 0%, #05050a 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: lpv-figure 4s ease-in-out infinite;
}
.scn-legree-plans-vengeance .whip {
  position: absolute; bottom: 35%; left: 45%; width: 80px; height: 4px;
  background: linear-gradient(90deg, #2a1a0a 0%, #0a0a0a 100%);
  border-radius: 2px;
  transform-origin: left center;
  animation: lpv-whip 1.5s ease-in-out infinite;
}
.scn-legree-plans-vengeance .figure-shadow {
  position: absolute; bottom: 10%; left: 35%; width: 60px; height: 25px;
  background: radial-gradient(ellipse, rgba(0,0,0,0.5) 0%, transparent 100%);
  border-radius: 50%;
  animation: lpv-fshadow 4s ease-in-out infinite;
}
.scn-legree-plans-vengeance .wind-lines {
  position: absolute; top: 15%; left: -20%; width: 140%; height: 100%;
  background: repeating-linear-gradient(45deg, transparent, transparent 10px, rgba(255,255,255,0.03) 10px, transparent 20px);
  animation: lpv-wind 8s linear infinite;
}
@keyframes lpv-sky { 0% { opacity:0.8 } 50% { opacity:1 } 100% { opacity:0.7 } }
@keyframes lpv-clouds { 0% { transform: translateX(0) } 100% { transform: translateX(-40%) } }
@keyframes lpv-figure { 0%,100% { transform: translateY(0) rotate(-3deg) } 50% { transform: translateY(-5px) rotate(3deg) } }
@keyframes lpv-whip { 0%,100% { transform: rotate(-20deg) } 50% { transform: rotate(20deg) } }
@keyframes lpv-fshadow { 0%,100% { transform: scale(1) } 50% { transform: scale(1.15) } }
@keyframes lpv-wind { 0% { opacity:0.3 } 50% { opacity:0.6 } 100% { opacity:0.2 } }

.scn-second-hunt-begins {
  background: linear-gradient(180deg, #4a6a9a 0%, #7a9aba 40%, #b0c8d8 100%), radial-gradient(ellipse at 80% 20%, #d0e0f0 0%, transparent 70%);
}
.scn-second-hunt-begins .sky {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #5a7aaa 0%, #8aaaca 50%, #cadaea 100%);
  animation: shb-sky 12s ease-in-out infinite alternate;
}
.scn-second-hunt-begins .sun {
  position: absolute; top: 5%; right: 10%; width: 50px; height: 50px;
  background: radial-gradient(circle, #ffe080 0%, #f0c060 50%, transparent 100%);
  border-radius: 50%;
  box-shadow: 0 0 60px 30px rgba(255,224,128,0.4), 0 0 120px 60px rgba(255,224,128,0.2);
  animation: shb-sun 8s ease-in-out infinite alternate;
}
.scn-second-hunt-begins .ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #6a7a4a 0%, #4a5a2a 100%);
  border-radius: 20% 20% 0 0 / 40% 40% 0 0;
  box-shadow: inset 0 10px 20px rgba(0,0,0,0.3);
}
.scn-second-hunt-begins .horse {
  position: absolute; bottom: 10%; width: 40px; height: 50px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 50% 50% 30% 30% / 60% 40% 40% 60%;
  transform-origin: bottom center;
}
.scn-second-hunt-begins .horse-1 {
  left: 15%; animation: shb-gallop 0.8s ease-in-out infinite;
}
.scn-second-hunt-begins .horse-2 {
  left: 40%; width: 45px; height: 55px; animation: shb-gallop 0.9s ease-in-out infinite 0.2s;
}
.scn-second-hunt-begins .horse-3 {
  left: 65%; width: 38px; height: 48px; animation: shb-gallop 0.85s ease-in-out infinite 0.4s;
}
.scn-second-hunt-begins .dust {
  position: absolute; bottom: 5%; left: 10%; right: 10%; height: 20px;
  background: radial-gradient(ellipse, rgba(200,180,120,0.4) 0%, transparent 100%);
  filter: blur(6px);
  animation: shb-dust 1.5s ease-in-out infinite alternate;
}
.scn-second-hunt-begins .tree {
  position: absolute; bottom: 15%; right: 5%; width: 10px; height: 60px;
  background: linear-gradient(180deg, #2a3a1a 0%, #1a2a0a 100%);
  border-radius: 50% 50% 20% 20% / 30% 30% 60% 60%;
  transform-origin: bottom center;
  animation: shb-tree 10s ease-in-out infinite;
}
@keyframes shb-sky { 0% { opacity:0.8 } 50% { opacity:1 } 100% { opacity:0.7 } }
@keyframes shb-sun { 0%,100% { transform: scale(0.95) } 50% { transform: scale(1.05) } }
@keyframes shb-gallop { 0% { transform: translateY(0) rotate(-2deg) } 25% { transform: translateY(-4px) rotate(0deg) } 50% { transform: translateY(0) rotate(2deg) } 75% { transform: translateY(-3px) rotate(0deg) } 100% { transform: translateY(0) rotate(-2deg) } }
@keyframes shb-dust { 0% { opacity:0.3; transform: scaleY(1) } 100% { opacity:0.6; transform: scaleY(1.5) } }
@keyframes shb-tree { 0%,100% { transform: rotate(0deg) } 50% { transform: rotate(2deg) } }

/* legree-threatens-tom - dark mood, dim interior */
.scn-legree-threatens-tom {
  background:
    radial-gradient(ellipse at 40% 50%, #2a1a0a 0%, #1a0a00 50%, #0a0500 100%),
    linear-gradient(180deg, #0d0800 0%, #1a0f05 40%, #0d0800 100%);
}
.scn-legree-threatens-tom .wall-left {
  position: absolute; inset: 0 60% 0 0;
  background: linear-gradient(90deg, #1a0f05 0%, #2a1a0a 50%, #1f1207 100%);
  animation: leg-wl 20s ease-in-out infinite alternate;
}
.scn-legree-threatens-tom .wall-right {
  position: absolute; inset: 0 0 0 40%;
  background: linear-gradient(270deg, #1a0f05 0%, #2a1a0a 50%, #1f1207 100%);
  animation: leg-wr 20s ease-in-out infinite alternate;
}
.scn-legree-threatens-tom .floor {
  position: absolute; inset: 65% 0 0 0;
  background: linear-gradient(180deg, #1f1207 0%, #0d0800 100%);
  box-shadow: inset 0 20px 30px rgba(0,0,0,0.6);
}
.scn-legree-threatens-tom .figure-legree {
  position: absolute; bottom: 30%; left: 25%; width: 80px; height: 130px;
  background: linear-gradient(180deg, #0a0500 0%, #1a0a00 40%, #0d0800 100%);
  border-radius: 30% 30% 20% 20% / 40% 40% 20% 20%;
  transform-origin: bottom center;
  box-shadow: -10px 0 20px rgba(0,0,0,0.5);
  animation: leg-fig-l 6s ease-in-out infinite;
}
.scn-legree-threatens-tom .figure-tom {
  position: absolute; bottom: 28%; left: 55%; width: 50px; height: 70px;
  background: linear-gradient(180deg, #1a120a 0%, #0d0800 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  transform-origin: bottom center;
  box-shadow: 5px 0 15px rgba(0,0,0,0.4);
  animation: leg-fig-t 8s ease-in-out infinite;
}
.scn-legree-threatens-tom .shadow-legree {
  position: absolute; bottom: 28%; left: 20%; width: 100px; height: 60px;
  background: radial-gradient(ellipse, rgba(0,0,0,0.6) 0%, transparent 70%);
  transform: skewX(-10deg);
  animation: leg-shadow 6s ease-in-out infinite;
}
.scn-legree-threatens-tom .chain {
  position: absolute; bottom: 32%; left: 48%; width: 60px; height: 4px;
  background: repeating-linear-gradient(90deg, #3a2a1a 0px, #3a2a1a 8px, transparent 8px, transparent 12px);
  border-radius: 2px;
  animation: leg-chain 3s ease-in-out infinite;
}
.scn-legree-threatens-tom .dust-mote {
  position: absolute; top: 30%; left: 35%; width: 4px; height: 4px;
  background: rgba(200,180,150,0.3); border-radius: 50%;
  filter: blur(2px);
  animation: leg-dust 15s linear infinite;
}
@keyframes leg-wl { 0%,100% { opacity: 0.9 } 50% { opacity: 1 } }
@keyframes leg-wr { 0%,100% { opacity: 0.9 } 50% { opacity: 1 } }
@keyframes leg-fig-l {
  0%,100% { transform: translateX(0) rotate(0deg); }
  25% { transform: translateX(-3px) rotate(-2deg); }
  50% { transform: translateX(0) rotate(1deg); }
  75% { transform: translateX(2px) rotate(0deg); }
}
@keyframes leg-fig-t {
  0%,100% { transform: translateX(0) scaleY(1); }
  40% { transform: translateX(2px) scaleY(0.97); }
  70% { transform: translateX(-1px) scaleY(1.02); }
}
@keyframes leg-shadow {
  0%,100% { opacity: 0.7; transform: skewX(-10deg) scaleX(1); }
  50% { opacity: 0.9; transform: skewX(-12deg) scaleX(1.05); }
}
@keyframes leg-chain {
  0%,100% { transform: translateY(0) rotate(0deg); }
  30% { transform: translateY(1px) rotate(2deg); }
  60% { transform: translateY(-1px) rotate(-1deg); }
}
@keyframes leg-dust {
  0% { transform: translate(0, 0) scale(1); opacity: 0.3; }
  25% { transform: translate(5px, -3px) scale(1.2); opacity: 0.5; }
  50% { transform: translate(-2px, 8px) scale(0.8); opacity: 0.2; }
  75% { transform: translate(3px, 2px) scale(1.1); opacity: 0.4; }
  100% { transform: translate(0, 0) scale(1); opacity: 0.3; }
}

/* tom-responds-with-love - warm mood, dim interior */
.scn-tom-responds-with-love {
  background:
    radial-gradient(ellipse at 50% 40%, #4a3020 0%, #2a1a10 50%, #1a0a00 100%),
    linear-gradient(180deg, #3a2515 0%, #2a1a10 40%, #1a0a05 100%);
}
.scn-tom-responds-with-love .bg-warm {
  position: absolute; inset: 0;
  background: radial-gradient(ellipse at 50% 60%, rgba(200,160,100,0.08) 0%, transparent 70%);
  animation: tomw-bg 12s ease-in-out infinite alternate;
}
.scn-tom-responds-with-love .figure-tom-kneeling {
  position: absolute; bottom: 25%; left: 45%; width: 50px; height: 80px;
  background: linear-gradient(180deg, #2a1a0a 0%, #1a0a00 50%, #0d0500 100%);
  border-radius: 30% 30% 25% 25% / 40% 40% 30% 30%;
  transform-origin: bottom center;
  box-shadow: 0 0 30px rgba(200,160,80,0.15);
  animation: tomw-fig 6s ease-in-out infinite;
}
.scn-tom-responds-with-love .glow-heart {
  position: absolute; bottom: 40%; left: 48%; width: 16px; height: 16px;
  background: radial-gradient(circle, rgba(255,200,100,0.8) 0%, rgba(255,180,80,0.3) 50%, transparent 100%);
  border-radius: 50%;
  box-shadow: 0 0 30px 10px rgba(255,200,100,0.3), 0 0 60px 20px rgba(255,180,80,0.1);
  animation: tomw-heart 4s ease-in-out infinite alternate;
}
.scn-tom-responds-with-love .light-ray {
  position: absolute; bottom: 35%; left: 40%; width: 80px; height: 100px;
  background: linear-gradient(135deg, rgba(255,220,160,0.06) 0%, transparent 100%);
  transform: rotate(-15deg);
  animation: tomw-ray 8s ease-in-out infinite;
}
.scn-tom-responds-with-love .figure-legree-shadow {
  position: absolute; bottom: 28%; left: 20%; width: 70px; height: 110px;
  background: linear-gradient(180deg, rgba(10,5,0,0.5) 0%, transparent 100%);
  border-radius: 20% 20% 15% 15% / 30% 30% 20% 20%;
  filter: blur(4px);
  animation: tomw-shad 10s ease-in-out infinite;
}
.scn-tom-responds-with-love .ground {
  position: absolute; inset: 70% 0 0 0;
  background: linear-gradient(180deg, #1f1207 0%, #0d0500 100%);
  box-shadow: inset 0 10px 20px rgba(0,0,0,0.5);
}
.scn-tom-responds-with-love .ember-a {
  position: absolute; top: 45%; left: 30%; width: 3px; height: 3px;
  background: rgba(255,200,100,0.6); border-radius: 50%;
  filter: blur(1px);
  animation: tomw-emb-a 5s ease-in-out infinite;
}
.scn-tom-responds-with-love .ember-b {
  position: absolute; top: 50%; left: 35%; width: 2px; height: 2px;
  background: rgba(255,180,80,0.4); border-radius: 50%;
  filter: blur(1px);
  animation: tomw-emb-b 7s ease-in-out infinite 1s;
}
@keyframes tomw-bg { 0%,100% { opacity: 0.6 } 50% { opacity: 1 } }
@keyframes tomw-fig {
  0%,100% { transform: translateX(0) rotate(0deg) scaleY(1); }
  30% { transform: translateX(2px) rotate(2deg) scaleY(0.98); }
  60% { transform: translateX(-1px) rotate(-1deg) scaleY(1.02); }
}
@keyframes tomw-heart {
  0% { transform: scale(0.8); opacity: 0.7; box-shadow: 0 0 20px 5px rgba(255,200,100,0.2); }
  50% { transform: scale(1.2); opacity: 1; box-shadow: 0 0 40px 15px rgba(255,200,100,0.4); }
  100% { transform: scale(0.9); opacity: 0.8; box-shadow: 0 0 25px 8px rgba(255,200,100,0.3); }
}
@keyframes tomw-ray {
  0%,100% { opacity: 0.4; transform: rotate(-15deg) scaleX(1); }
  50% { opacity: 0.7; transform: rotate(-12deg) scaleX(1.1); }
}
@keyframes tomw-shad {
  0%,100% { opacity: 0.5; transform: translateX(0) scaleY(1); }
  40% { opacity: 0.7; transform: translateX(3px) scaleY(0.95); }
  80% { opacity: 0.4; transform: translateX(-2px) scaleY(1.05); }
}
@keyframes tomw-emb-a {
  0% { transform: translateY(0) scale(1); opacity: 0.6; }
  25% { transform: translateY(-8px) scale(0.8); opacity: 0.3; }
  50% { transform: translateY(4px) scale(1.2); opacity: 0.8; }
  75% { transform: translateY(-3px) scale(0.9); opacity: 0.5; }
  100% { transform: translateY(0) scale(1); opacity: 0.6; }
}
@keyframes tomw-emb-b {
  0% { transform: translateY(0) scale(1); opacity: 0.4; }
  20% { transform: translateY(-5px) scale(1.1); opacity: 0.7; }
  40% { transform: translateY(3px) scale(0.7); opacity: 0.2; }
  60% { transform: translateY(-6px) scale(1.3); opacity: 0.9; }
  80% { transform: translateY(2px) scale(0.8); opacity: 0.3; }
  100% { transform: translateY(0) scale(1); opacity: 0.4; }
}

/* legree-strikes-tom - dark mood, dim interior */
.scn-legree-strikes-tom {
  background:
    radial-gradient(ellipse at 50% 30%, #2a0a05 0%, #1a0500 50%, #0a0200 100%),
    linear-gradient(180deg, #150500 0%, #1a0a00 40%, #0a0200 100%);
}
.scn-legree-strikes-tom .bg-strike {
  position: absolute; inset: 0;
  background: radial-gradient(ellipse at 40% 50%, rgba(60,20,10,0.3) 0%, transparent 70%);
  animation: legs-bg 4s ease-in-out infinite alternate;
}
.scn-legree-strikes-tom .figure-legree-arm {
  position: absolute; bottom: 35%; left: 25%; width: 90px; height: 120px;
  background: linear-gradient(180deg, #0a0500 0%, #1a0a00 40%, #0d0500 100%);
  border-radius: 30% 30% 20% 20% / 50% 50% 25% 25%;
  transform-origin: bottom right;
  animation: legs-arm 3s ease-in-out infinite;
}
.scn-legree-strikes-tom .figure-tom-falling {
  position: absolute; bottom: 20%; left: 50%; width: 45px; height: 65px;
  background: linear-gradient(180deg, #150a05 0%, #0a0200 100%);
  border-radius: 40% 40% 20% 20% / 50% 50% 25% 25%;
  transform-origin: bottom center;
  animation: legs-tom 3s ease-in-out infinite;
}
.scn-legree-strikes-tom .strike-impact {
  position: absolute; bottom: 40%; left: 48%; width: 30px; height: 30px;
  background: radial-gradient(circle, rgba(180,80,40,0.6) 0%, rgba(200,100,50,0.3) 40%, transparent 100%);
  border-radius: 50%;
  box-shadow: 0 0 20px 5px rgba(200,80,40,0.3);
  animation: legs-impact 1.5s ease-in-out infinite;
}
.scn-legree-strikes-tom .shadow-floor {
  position: absolute; bottom: 18%; left: 35%; width: 120px; height: 40px;
  background: radial-gradient(ellipse, rgba(0,0,0,0.7) 0%, transparent 70%);
  animation: legs-shad 3s ease-in-out infinite;
}
.scn-legree-strikes-tom .debris-a {
  position: absolute; bottom: 30%; left: 52%; width: 4px; height: 4px;
  background: rgba(100,60,30,0.6); border-radius: 50%;
  animation: legs-deb-a 2s ease-in-out infinite;
}
.scn-legree-strikes-tom .debris-b {
  position: absolute; bottom: 35%; left: 55%; width: 3px; height: 3px;
  background: rgba(80,50,20,0.5); border-radius: 50%;
  animation: legs-deb-b 2.3s ease-in-out infinite 0.5s;
}
.scn-legree-strikes-tom .blood-drip {
  position: absolute; bottom: 22%; left: 52%; width: 2px; height: 8px;
  background: #5e1a1d;
  border-radius: 1px;
  animation: legs-drip 4s ease-in-out infinite;
}
@keyframes legs-bg { 0%,100% { opacity: 0.7 } 50% { opacity: 1 } }
@keyframes legs-arm {
  0%,100% { transform: rotate(0deg) translateX(0); }
  20% { transform: rotate(-15deg) translateX(-5px); }
  40% { transform: rotate(20deg) translateX(8px); }
  60% { transform: rotate(-10deg) translateX(-3px); }
  80% { transform: rotate(5deg) translateX(2px); }
}
@keyframes legs-tom {
  0%,100% { transform: rotate(0deg) translateY(0) scaleY(1); }
  20% { transform: rotate(-5deg) translateY(-3px) scaleY(0.95); }
  40% { transform: rotate(10deg) translateY(5px) scaleY(1.05); }
  60% { transform: rotate(-3deg) translateY(2px) scaleY(0.98); }
  80% { transform: rotate(2deg) translateY(-1px) scaleY(1.02); }
}
@keyframes legs-impact {
  0%,100% { transform: scale(0.5); opacity: 0.3; }
  30% { transform: scale(1.5); opacity: 0.8; }
  50% { transform: scale(0.8); opacity: 0.5; }
  70% { transform: scale(1.2); opacity: 0.6; }
}
@keyframes legs-shad {
  0%,100% { transform: scaleX(1) scaleY(1); opacity: 0.7; }
  40% { transform: scaleX(1.1) scaleY(0.9); opacity: 0.9; }
  80% { transform: scaleX(0.9) scaleY(1.1); opacity: 0.5; }
}
@keyframes legs-deb-a {
  0% { transform: translate(0, 0) scale(1); opacity: 0.6; }
  25% { transform: translate(8px, 5px) scale(1.3); opacity: 0.8; }
  50% { transform: translate(-3px, 12px) scale(0.7); opacity: 0.3; }
  75% { transform: translate(5px, 3px) scale(1.1); opacity: 0.5; }
  100% { transform: translate(0, 0) scale(1); opacity: 0.6; }
}
@keyframes legs-deb-b {
  0% { transform: translate(0, 0) scale(1); opacity: 0.5; }
  30% { transform: translate(-5px, 8px) scale(0.8); opacity: 0.7; }
  60% { transform: translate(3px, 2px) scale(1.2); opacity: 0.3; }
  100% { transform: translate(0, 0) scale(1); opacity: 0.5; }
}
@keyframes legs-drip {
  0%,100% { transform: translateY(0) scaleY(1); opacity: 0.6; }
  30% { transform: translateY(10px) scaleY(1.5); opacity: 0.9; }
  60% { transform: translateY(5px) scaleY(0.8); opacity: 0.4; }
}

/* toms-suffering - dark mood, dim interior */
.scn-toms-suffering {
  background:
    radial-gradient(ellipse at 50% 20%, #1a0a05 0%, #0d0500 50%, #050200 100%),
    linear-gradient(180deg, #1a0500 0%, #0d0200 40%, #050100 100%);
}
.scn-toms-suffering .bg-suffering {
  position: absolute; inset: 0;
  background: radial-gradient(ellipse at 50% 80%, rgba(40,20,10,0.2) 0%, transparent 70%);
  animation: toms-bg 20s ease-in-out infinite alternate;
}
.scn-toms-suffering .figure-tom-bowed {
  position: absolute; bottom: 20%; left: 45%; width: 50px; height: 75px;
  background: linear-gradient(180deg, #1a0a05 0%, #0a0200 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  transform-origin: bottom center;
  box-shadow: 0 0 20px rgba(200,160,80,0.05);
  animation: toms-fig 12s ease-in-out infinite;
}
.scn-toms-suffering .light-above {
  position: absolute; top: 5%; left: 40%; width: 80px; height: 60px;
  background: radial-gradient(ellipse, rgba(255,220,160,0.1) 0%, rgba(255,200,140,0.05) 40%, transparent 100%);
  border-radius: 50%;
  filter: blur(10px);
  animation: toms-light 8s ease-in-out infinite alternate;
}
.scn-toms-suffering .cross-shadow {
  position: absolute; bottom: 22%; left: 42%; width: 60px; height: 80px;
  background: linear-gradient(135deg, rgba(200,160,100,0.03) 0%, transparent 100%);
  transform: rotate(30deg);
  filter: blur(3px);
  animation: toms-cross 15s ease-in-out infinite;
}
.scn-toms-suffering .ground-dark {
  position: absolute; inset: 75% 0 0 0;
  background: linear-gradient(180deg, #0a0200 0%, #050100 100%);
  box-shadow: inset 0 15px 25px rgba(0,0,0,0.7);
}
.scn-toms-suffering .tear-a {
  position: absolute; bottom: 35%; left: 47%; width: 3px; height: 5px;
  background: rgba(200,180,160,0.4);
  border-radius: 50% 50% 50% 50% / 60% 60% 40% 40%;
  animation: toms-tear-a 5s ease-in-out infinite;
}
.scn-toms-suffering .tear-b {
  position: absolute; bottom: 38%; left: 44%; width: 2px; height: 4px;
  background: rgba(200,180,160,0.3);
  border-radius: 50% 50% 50% 50% / 60% 60% 40% 40%;
  animation: toms-tear-b 6s ease-in-out infinite 1s;
}
.scn-toms-suffering .hope-glow {
  position: absolute; top: 10%; left: 48%; width: 10px; height: 10px;
  background: radial-gradient(circle, rgba(255,220,160,0.4) 0%, transparent 100%);
  border-radius: 50%;
  box-shadow: 0 0 40px 10px rgba(255,220,160,0.1);
  animation: toms-hope 6s ease-in-out infinite alternate;
}
@keyframes toms-bg { 0%,100% { opacity: 0.8 } 50% { opacity: 1 } }
@keyframes toms-fig {
  0%,100% { transform: translateX(0) rotate(0deg) scaleY(1); }
  25% { transform: translateX(2px) rotate(3deg) scaleY(0.96); }
  50% { transform: translateX(-1px) rotate(-2deg) scaleY(1.04); }
  75% { transform: translateX(1px) rotate(1deg) scaleY(0.98); }
}
@keyframes toms-light {
  0% { transform: scale(0.8); opacity: 0.4; filter: blur(8px); }
  50% { transform: scale(1.2); opacity: 0.7; filter: blur(12px); }
  100% { transform: scale(0.9); opacity: 0.5; filter: blur(10px); }
}
@keyframes toms-cross {
  0%,100% { transform: rotate(30deg) scaleX(1); opacity: 0.4; }
  50% { transform: rotate(35deg) scaleX(1.1); opacity: 0.6; }
}
@keyframes toms-tear-a {
  0% { transform: translateY(0) scaleY(1); opacity: 0.4; }
  20% { transform: translateY(8px) scaleY(1.5); opacity: 0.7; }
  40% { transform: translateY(16px) scaleY(0.8); opacity: 0.3; }
  60% { transform: translateY(4px) scaleY(1.2); opacity: 0.5; }
  80% { transform: translateY(12px) scaleY(0.6); opacity: 0.2; }
  100% { transform: translateY(0) scaleY(1); opacity: 0.4; }
}
@keyframes toms-tear-b {
  0% { transform: translateY(0) scaleY(1); opacity: 0.3; }
  25% { transform: translateY(10px) scaleY(1.3); opacity: 0.6; }
  50% { transform: translateY(5px) scaleY(0.7); opacity: 0.2; }
  75% { transform: translateY(14px) scaleY(1.1); opacity: 0.5; }
  100% { transform: translateY(0) scaleY(1); opacity: 0.3; }
}
@keyframes toms-hope {
  0% { transform: scale(0.6); opacity: 0.3; box-shadow: 0 0 20px 5px rgba(255,220,160,0.05); }
  50% { transform: scale(1.4); opacity: 0.6; box-shadow: 0 0 50px 15px rgba(255,220,160,0.15); }
  100% { transform: scale(0.8); opacity: 0.4; box-shadow: 0 0 30px 8px rgba(255,220,160,0.08); }
}

.scn-st-clare-parallel {
  background: linear-gradient(180deg, #b8d4e8 0%, #e6f0fa 40%, #f5e8c8 70%, #d4c4a0 100%);
  overflow: hidden;
}
.scn-st-clare-parallel .sky {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(180deg, #a0c8e8 0%, #c8e0f0 60%, transparent 100%);
  animation: scp-sky 20s ease-in-out infinite alternate;
}
.scn-st-clare-parallel .sun {
  position: absolute; top: 8%; left: 70%; width: 50px; height: 50px;
  background: radial-gradient(circle, #fff8e0 0%, #ffe080 40%, transparent 70%);
  border-radius: 50%;
  box-shadow: 0 0 60px 20px rgba(255,224,128,0.3);
  animation: scp-sun 25s ease-in-out infinite alternate;
}
.scn-st-clare-parallel .tree {
  position: absolute; bottom: 35%; left: 20%; width: 120px; height: 140px;
  background: linear-gradient(180deg, #4a7a4a 0%, #2a5a2a 60%, #1a3a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: scp-tree 12s ease-in-out infinite;
}
.scn-st-clare-parallel .figure-left {
  position: absolute; bottom: 32%; left: 42%; width: 20px; height: 40px;
  background: linear-gradient(180deg, #4a3a3a 0%, #2a1a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: scp-figure-left 8s ease-in-out infinite;
}
.scn-st-clare-parallel .figure-right {
  position: absolute; bottom: 32%; right: 35%; width: 22px; height: 42px;
  background: linear-gradient(180deg, #3a3a4a 0%, #1a1a2a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: scp-figure-right 8s ease-in-out infinite;
}
.scn-st-clare-parallel .leaf-a, .scn-st-clare-parallel .leaf-b {
  position: absolute; width: 8px; height: 8px;
  background: radial-gradient(circle, #6aaa6a, #3a7a3a);
  border-radius: 50%;
  filter: blur(1px);
}
.scn-st-clare-parallel .leaf-a { top: 45%; left: 10%; animation: scp-leaf-a 14s infinite; }
.scn-st-clare-parallel .leaf-b { top: 50%; right: 15%; animation: scp-leaf-b 16s 2s infinite; }
.scn-st-clare-parallel .ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 35%;
  background: linear-gradient(180deg, #8a9a6a 0%, #6a7a4a 60%, #4a5a3a 100%);
  border-radius: 30% 70% 0 0 / 60% 80% 0 0;
}
@keyframes scp-sky { 0% { opacity:0.85 } 50% { opacity:1 } 100% { opacity:0.9 } }
@keyframes scp-sun { 0% { transform: translate(0,0) scale(0.95); box-shadow: 0 0 40px 10px rgba(255,224,128,0.2); } 50% { transform: translate(-5px,3px) scale(1.05); box-shadow: 0 0 70px 25px rgba(255,224,128,0.4); } 100% { transform: translate(3px,-2px) scale(1); box-shadow: 0 0 50px 15px rgba(255,224,128,0.3); } }
@keyframes scp-tree { 0% { transform: rotate(0deg) scale(1); } 50% { transform: rotate(1deg) scale(1.01); } 100% { transform: rotate(-0.5deg) scale(0.98); } }
@keyframes scp-figure-left { 0% { transform: translate(0,0) rotate(-2deg); } 50% { transform: translate(2px,-1px) rotate(2deg); } 100% { transform: translate(0,0) rotate(0); } }
@keyframes scp-figure-right { 0% { transform: translate(0,0) rotate(1deg); } 50% { transform: translate(-1px,-2px) rotate(-1deg); } 100% { transform: translate(0,0) rotate(0); } }
@keyframes scp-leaf-a { 0% { transform: translate(0,0) rotate(0deg); opacity:0.6; } 50% { transform: translate(30px, -15px) rotate(180deg); opacity:0.9; } 100% { transform: translate(60px, -30px) rotate(360deg); opacity:0.4; } }
@keyframes scp-leaf-b { 0% { transform: translate(0,0) rotate(0deg); opacity:0.5; } 50% { transform: translate(-25px, -20px) rotate(-150deg); opacity:0.8; } 100% { transform: translate(-50px, -40px) rotate(-300deg); opacity:0.3; } }

.scn-anecdote-of-freedom {
  background: linear-gradient(180deg, #e8d4a8 0%, #f0e0c0 40%, #d8c8a8 100%);
}
.scn-anecdote-of-freedom .wall {
  position: absolute; inset: 10% 10% 20% 10%; background: linear-gradient(135deg, #c8b898 0%, #b8a888 100%); border-radius: 4px; box-shadow: inset 0 2px 12px rgba(0,0,0,0.1); animation: aof-wall 30s ease-in-out infinite alternate;
}
.scn-anecdote-of-freedom .window {
  position: absolute; top: 15%; right: 20%; width: 60px; height: 80px; background: linear-gradient(180deg, #b0d0e8, #d0e8f8); border: 6px solid #6a5a4a; border-radius: 4px; box-shadow: inset 0 0 20px rgba(200,230,255,0.4); animation: aof-window 12s ease-in-out infinite alternate;
}
.scn-anecdote-of-freedom .light-beam {
  position: absolute; top: 15%; right: 20%; width: 120px; height: 200px; background: linear-gradient(135deg, rgba(255,240,200,0.3) 0%, transparent 100%); transform-origin: top left; transform: rotate(-20deg); animation: aof-beam 20s ease-in-out infinite alternate;
}
.scn-anecdote-of-freedom .master {
  position: absolute; bottom: 25%; right: 35%; width: 25px; height: 50px; background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: aof-master 10s ease-in-out infinite;
}
.scn-anecdote-of-freedom .servant {
  position: absolute; bottom: 22%; left: 35%; width: 22px; height: 48px; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: aof-servant 10s ease-in-out infinite;
}
.scn-anecdote-of-freedom .hand-paper {
  position: absolute; bottom: 35%; left: 42%; width: 10px; height: 14px; background: #c8b888; border-radius: 2px; box-shadow: 0 0 6px 2px rgba(200,184,136,0.4); animation: aof-hand 10s ease-in-out infinite;
}
.scn-anecdote-of-freedom .mot-a, .scn-anecdote-of-freedom .mot-b {
  position: absolute; width: 3px; height: 3px; background: rgba(200,180,140,0.6); border-radius: 50%; filter: blur(1px);
}
.scn-anecdote-of-freedom .mot-a { top: 30%; left: 30%; animation: aof-mot-a 8s linear infinite; }
.scn-anecdote-of-freedom .mot-b { top: 40%; right: 25%; animation: aof-mot-b 10s 3s linear infinite; }
@keyframes aof-wall { 0% { background: linear-gradient(135deg, #c8b898 0%, #b8a888 100%); } 50% { background: linear-gradient(135deg, #d0c0a0 0%, #c0b090 100%); } 100% { background: linear-gradient(135deg, #c0b090 0%, #b0a080 100%); } }
@keyframes aof-window { 0% { background: linear-gradient(180deg, #b0d0e8, #d0e8f8); box-shadow: inset 0 0 20px rgba(200,230,255,0.4); } 50% { background: linear-gradient(180deg, #c0e0f0, #e0f8ff); box-shadow: inset 0 0 30px rgba(220,240,255,0.6); } 100% { background: linear-gradient(180deg, #a0c8e0, #c0d8e8); box-shadow: inset 0 0 15px rgba(180,210,240,0.3); } }
@keyframes aof-beam { 0% { opacity:0.5; transform: rotate(-20deg) scaleY(1); } 50% { opacity:0.8; transform: rotate(-15deg) scaleY(1.1); } 100% { opacity:0.4; transform: rotate(-25deg) scaleY(0.9); } }
@keyframes aof-master { 0% { transform: translate(0,0) rotate(0deg); } 50% { transform: translate(-2px,-1px) rotate(-2deg); } 100% { transform: translate(2px,0) rotate(1deg); } }
@keyframes aof-servant { 0% { transform: translate(0,0) rotate(2deg); } 50% { transform: translate(1px,-2px) rotate(-1deg); } 100% { transform: translate(-1px,0) rotate(0); } }
@keyframes aof-hand { 0% { transform: translate(0,0) scale(1); opacity:0.8; } 50% { transform: translate(2px,-1px) scale(1.05); opacity:1; } 100% { transform: translate(0,0) scale(0.95); opacity:0.9; } }
@keyframes aof-mot-a { 0% { transform: translate(0,0); opacity:0; } 10% { opacity:0.8; } 50% { transform: translate(10px, -8px); opacity:0.5; } 100% { transform: translate(25px, -20px); opacity:0; } }
@keyframes aof-mot-b { 0% { transform: translate(0,0); opacity:0; } 10% { opacity:0.6; } 50% { transform: translate(-8px, -10px); opacity:0.4; } 100% { transform: translate(-20px, -25px); opacity:0; } }

.scn-authors-motivation {
  background: linear-gradient(180deg, #d0d8e0 0%, #e8edf2 40%, #f8f4e8 70%, #e8e0d0 100%);
}
.scn-authors-motivation .room-back {
  position: absolute; inset: 15% 20% 10% 20%; background: linear-gradient(180deg, #b8c8d8 0%, #d8e0e8 100%); border-radius: 8px; box-shadow: inset 0 4px 20px rgba(0,0,0,0.05); animation: am-room 25s ease-in-out infinite alternate;
}
.scn-authors-motivation .desk {
  position: absolute; bottom: 20%; left: 40%; width: 100px; height: 14px; background: linear-gradient(180deg, #7a6a5a 0%, #5a4a3a 100%); border-radius: 2px; box-shadow: 0 4px 8px rgba(0,0,0,0.2); animation: am-desk 20s ease-in-out infinite;
}
.scn-authors-motivation .chair {
  position: absolute; bottom: 16%; left: 38%; width: 40px; height: 30px; background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%); border-radius: 50% 50% 20% 20% / 60% 60% 20% 20%; transform-origin: bottom center; animation: am-chair 15s ease-in-out infinite;
}
.scn-authors-motivation .figure {
  position: absolute; bottom: 18%; left: 42%; width: 24px; height: 50px; background: linear-gradient(180deg, #4a3a3a 0%, #2a1a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: am-figure 18s ease-in-out infinite;
}
.scn-authors-motivation .book-open {
  position: absolute; bottom: 21%; left: 45%; width: 30px; height: 20px; background: linear-gradient(135deg, #b8a888 0%, #a89878 100%); border-radius: 2px; box-shadow: 0 2px 6px rgba(0,0,0,0.3); animation: am-book 22s ease-in-out infinite;
}
.scn-authors-motivation .stack {
  position: absolute; bottom: 21%; left: 38%; width: 20px; height: 10px; background: linear-gradient(180deg, #a09078 0%, #908068 100%); border-radius: 1px; box-shadow: 0 2px 4px rgba(0,0,0,0.2); animation: am-stack 22s ease-in-out infinite;
}
.scn-authors-motivation .window-arch {
  position: absolute; top: 10%; left: 50%; transform: translateX(-50%); width: 80px; height: 100px; background: radial-gradient(ellipse at 50% 30%, #d0e8f8 0%, #b8d0e8 60%, transparent 100%); border-radius: 40% 40% 10% 10%; animation: am-arch 30s ease-in-out infinite alternate;
}
.scn-authors-motivation .sun-ray {
  position: absolute; top: 8%; left: 45%; width: 100px; height: 200px; background: linear-gradient(135deg, rgba(255,240,200,0.25) 0%, transparent 100%); transform-origin: top left; transform: rotate(-30deg); animation: am-ray 20s ease-in-out infinite alternate;
}
@keyframes am-room { 0% { background: linear-gradient(180deg, #b8c8d8 0%, #d8e0e8 100%); } 50% { background: linear-gradient(180deg, #c8d8e8 0%, #e8edf2 100%); } 100% { background: linear-gradient(180deg, #a8b8c8 0%, #c8d0d8 100%); } }
@keyframes am-desk { 0% { transform: translateX(0) scaleX(1); } 50% { transform: translateX(2px) scaleX(1.01); } 100% { transform: translateX(-1px) scaleX(0.98); } }
@keyframes am-chair { 0% { transform: rotate(0deg) scaleY(1); } 50% { transform: rotate(2deg) scaleY(1.02); } 100% { transform: rotate(-1deg) scaleY(0.98); } }
@keyframes am-figure { 0% { transform: translate(0,0) rotate(-1deg); } 50% { transform: translate(1px,-2px) rotate(2deg); } 100% { transform: translate(-1px,0) rotate(0); } }
@keyframes am-book { 0% { transform: translate(0,0) rotate(0deg); } 50% { transform: translate(1px,0.5px) rotate(2deg); } 100% { transform: translate(-0.5px,0) rotate(-1deg); } }
@keyframes am-stack { 0% { transform: translate(0,0) rotate(0deg); } 50% { transform: translate(-0.5px,-0.3px) rotate(1deg); } 100% { transform: translate(0.5px,0) rotate(-0.5deg); } }
@keyframes am-arch { 0% { background: radial-gradient(ellipse at 50% 30%, #d0e8f8 0%, #b8d0e8 60%, transparent 100%); } 50% { background: radial-gradient(ellipse at 50% 30%, #e0f0ff 0%, #c8dff0 60%, transparent 100%); } 100% { background: radial-gradient(ellipse at 50% 30%, #c0d8e8 0%, #a8c0d8 60%, transparent 100%); } }
@keyframes am-ray { 0% { opacity:0.3; transform: rotate(-30deg) scaleY(1); } 50% { opacity:0.6; transform: rotate(-25deg) scaleY(1.1); } 100% { opacity:0.2; transform: rotate(-35deg) scaleY(0.9); } }

.scn-appeal-to-south {
  background: linear-gradient(180deg, #e8e0c0 0%, #f8f0d8 30%, #f0e8c8 60%, #d8c8a8 100%);
}
.scn-appeal-to-south .sky-bright {
  position: absolute; inset: 0 0 50% 0; background: linear-gradient(180deg, #f8f4e0 0%, #f0e8c8 60%, transparent 100%); animation: ats-sky 15s ease-in-out infinite alternate;
}
.scn-appeal-to-south .sun-hard {
  position: absolute; top: 5%; left: 65%; width: 60px; height: 60px; background: radial-gradient(circle, #fff8e0 0%, #ffe080 30%, transparent 70%); border-radius: 50%; box-shadow: 0 0 80px 30px rgba(255,224,128,0.4); animation: ats-sun 10s ease-in-out infinite alternate;
}
.scn-appeal-to-south .platform {
  position: absolute; bottom: 20%; left: 30%; right: 30%; height: 12px; background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%); border-radius: 4px; box-shadow: 0 6px 14px rgba(0,0,0,0.3); animation: ats-platform 12s ease-in-out infinite;
}
.scn-appeal-to-south .speaker {
  position: absolute; bottom: 22%; left: 50%; transform: translateX(-50%); width: 30px; height: 60px; background: linear-gradient(180deg, #3a2a1a 0%, #1a0a00 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: ats-speaker 5s ease-in-out infinite;
}
.scn-appeal-to-south .sharp {
  position: absolute; bottom: 20%; left: 40%; right: 40%; height: 40px; background: linear-gradient(135deg, rgba(0,0,0,0.2) 0%, transparent 100%); transform: skewX(-20deg); animation: ats-shadow 8s ease-in-out infinite alternate;
}
.scn-appeal-to-south .crowd {
  position: absolute; bottom: 10%; height: 18px; background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%); border-radius: 50% 50% 0 0 / 80% 80% 0 0;
}
.scn-appeal-to-south .row1 { left: 15%; right: 15%; animation: ats-crowd1 12s ease-in-out infinite; }
.scn-appeal-to-south .row2 { left: 20%; right: 20%; bottom: 5%; height: 14px; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); animation: ats-crowd2 14s 2s ease-in-out infinite; }
.scn-appeal-to-south .heat-wave {
  position: absolute; top: 30%; left: 0; right: 0; height: 20px; background: radial-gradient(ellipse at 50% 50%, rgba(255,200,100,0.15) 0%, transparent 70%); filter: blur(8px); animation: ats-heat 6s ease-in-out infinite;
}
@keyframes ats-sky { 0% { background: linear-gradient(180deg, #f8f4e0 0%, #f0e8c8 60%, transparent 100%); } 50% { background: linear-gradient(180deg, #f0ecd8 0%, #e8e0c0 60%, transparent 100%); } 100% { background: linear-gradient(180deg, #f8f0d8 0%, #f0e0c0 60%, transparent 100%); } }
@keyframes ats-sun { 0% { transform: scale(0.95); box-shadow: 0 0 60px 20px rgba(255,224,128,0.3); } 50% { transform: scale(1.05); box-shadow: 0 0 100px 40px rgba(255,224,128,0.5); } 100% { transform: scale(0.98); box-shadow: 0 0 70px 25px rgba(255,224,128,0.35); } }
@keyframes ats-platform { 0% { transform: scaleX(1); } 50% { transform: scaleX(1.02); } 100% { transform: scaleX(0.98); } }
@keyframes ats-speaker { 0% { transform: translateX(-50%) rotate(0deg); } 25% { transform: translateX(-50%) rotate(2deg) scaleY(1.02); } 50% { transform: translateX(-48%) rotate(-1deg); } 75% { transform: translateX(-52%) rotate(1deg) scaleY(0.98); } 100% { transform: translateX(-50%) rotate(0); } }
@keyframes ats-shadow { 0% { opacity:0.5; transform: skewX(-20deg) translateX(0); } 50% { opacity:0.8; transform: skewX(-15deg) translateX(5px); } 100% { opacity:0.4; transform: skewX(-25deg) translateX(-5px); } }
@keyframes ats-crowd1 { 0% { transform: translateX(0) scaleY(1); } 50% { transform: translateX(2px) scaleY(1.02); } 100% { transform: translateX(-2px) scaleY(0.98); } }
@keyframes ats-crowd2 { 0% { transform: translateX(0) scaleY(1); } 50% { transform: translateX(-3px) scaleY(1.04); } 100% { transform: translateX(3px) scaleY(0.96); } }
@keyframes ats-heat { 0% { transform: translateY(0) scaleX(1); opacity:0.4; } 50% { transform: translateY(-5px) scaleX(1.1); opacity:0.7; } 100% { transform: translateY(3px) scaleX(0.9); opacity:0.3; } }

/* eliza-observes – dim interior, calm, warm low light */
.scn-eliza-observes {
  background: linear-gradient(180deg, #3a2a1a 0%, #1a1a0a 100%), radial-gradient(ellipse at 50% 100%, #2a1a0a 0%, transparent 70%);
}
.scn-eliza-observes .wall           { position:absolute; inset:0; background:linear-gradient(180deg, #3a2a1a, #1a1a0a); animation: eo-wall 20s ease-in-out infinite; }
.scn-eliza-observes .bed            { position:absolute; bottom:8%; left:15%; right:15%; height:40%; background:linear-gradient(180deg, #5a3a2a, #2a1a0a); border-radius:12% 12% 6% 6%; box-shadow:0 -8px 20px rgba(0,0,0,.6); }
.scn-eliza-observes .blanket        { position:absolute; bottom:10%; left:18%; right:18%; height:30%; background:linear-gradient(180deg, #6a4a2a, #3a2a1a); border-radius:30% 30% 10% 10%; animation: eo-blanket 6s ease-in-out infinite; }
.scn-eliza-observes .pillow         { position:absolute; bottom:38%; left:40%; width:28%; height:12%; background:radial-gradient(ellipse, #8a6a4a, #5a3a2a); border-radius:50%; box-shadow:0 -4px 8px rgba(0,0,0,.4); }
.scn-eliza-observes .figure-rachel  { position:absolute; bottom:24%; left:50%; width:20%; height:45%; background:linear-gradient(180deg, #4a3a2a, #2a1a0a); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin:bottom center; animation: eo-rachel 8s ease-in-out infinite; }
.scn-eliza-observes .candle         { position:absolute; bottom:42%; left:30%; width:4%; height:15%; background:linear-gradient(180deg, #c0a060, #806030); border-radius:2px; box-shadow:0 0 8px 2px #f0c060; animation: eo-flame 1.5s ease-in-out infinite; }
.scn-eliza-observes .candleglow     { position:absolute; bottom:30%; left:25%; width:20%; height:30%; background:radial-gradient(circle, #f0c060 0%, transparent 70%); filter:blur(10px); animation: eo-glow 3s ease-in-out infinite alternate; }

@keyframes eo-wall     { 0%,100% { opacity:.7 } 50% { opacity:1 } }
@keyframes eo-blanket  { 0%,100% { transform:translateY(0) } 50% { transform:translateY(-4px) } }
@keyframes eo-rachel   { 0% { transform:translateX(-50%) rotate(0) } 25% { transform:translateX(-48%) rotate(2deg) } 75% { transform:translateX(-52%) rotate(-1deg) } 100% { transform:translateX(-50%) rotate(0) } }
@keyframes eo-flame    { 0% { transform:scaleY(1) translateY(0); opacity:.9 } 50% { transform:scaleY(1.4) translateY(-6px); opacity:1 } 100% { transform:scaleY(.9) translateY(2px); opacity:.8 } }
@keyframes eo-glow     { 0% { opacity:.4; transform:scale(.9) } 100% { opacity:.7; transform:scale(1.1) } }

/* eliza-dreams-of-home – warm interior, soft amber light */
.scn-eliza-dreams-of-home {
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%), radial-gradient(ellipse at 50% 60%, #6a4a2a 0%, transparent 60%);
}
.scn-eliza-dreams-of-home .room-bg   { position:absolute; inset:0; background:linear-gradient(135deg, #3a2a1a, #1a0a00); animation: edh-bg 15s ease-in-out infinite; }
.scn-eliza-dreams-of-home .table     { position:absolute; bottom:12%; left:25%; right:25%; height:28%; background:linear-gradient(180deg, #6a4a2a, #3a2a1a); border-radius:10% 10% 4% 4%; box-shadow:0 -6px 12px rgba(0,0,0,.5); }
.scn-eliza-dreams-of-home .teacup    { position:absolute; bottom:32%; left:40%; width:8%; height:10%; background:linear-gradient(180deg, #d0b090, #a08060); border-radius:30% 30% 40% 40%; box-shadow:inset 0 -4px 6px #402010; animation: edh-cup 6s ease-in-out infinite; }
.scn-eliza-dreams-of-home .highchair { position:absolute; bottom:8%; left:55%; width:14%; height:30%; background:linear-gradient(180deg, #8a6a4a, #4a2a1a); border-radius:10% 10% 6% 6%; }
.scn-eliza-dreams-of-home .eliza     { position:absolute; bottom:15%; left:35%; width:18%; height:40%; background:linear-gradient(180deg, #5a3a2a, #2a1a0a); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin:bottom center; animation: edh-figure 10s ease-in-out infinite; }
.scn-eliza-dreams-of-home .baby      { position:absolute; bottom:28%; left:32%; width:8%; height:12%; background:radial-gradient(ellipse, #7a5a3a, #3a2010); border-radius:50%; box-shadow:0 2px 6px rgba(0,0,0,.4); animation: edh-baby 4s ease-in-out infinite; }
.scn-eliza-dreams-of-home .rachel-wing { position:absolute; bottom:40%; right:10%; width:30%; height:20%; background:linear-gradient(180deg, #7a5a3a, #5a3a2a); border-radius:50% 50% 30% 30% / 40% 40% 60% 60%; transform:rotate(-10deg); animation: edh-wing 12s ease-in-out infinite; }
.scn-eliza-dreams-of-home .lamplight { position:absolute; bottom:50%; left:20%; width:40%; height:40%; background:radial-gradient(circle, #f0c060 0%, transparent 60%); filter:blur(15px); animation: edh-light 4s ease-in-out infinite alternate; }

@keyframes edh-bg     { 0%,100% { opacity:.8 } 50% { opacity:1 } }
@keyframes edh-cup    { 0%,100% { transform:translateY(0) } 50% { transform:translateY(-2px) rotate(2deg) } }
@keyframes edh-figure { 0% { transform:translateX(-50%) rotate(0) } 25% { transform:translateX(-48%) rotate(2deg) } 75% { transform:translateX(-52%) rotate(-1deg) } 100% { transform:translateX(-50%) rotate(0) } }
@keyframes edh-baby   { 0%,100% { transform:translateY(0) scale(1) } 50% { transform:translateY(-3px) scale(1.05) } }
@keyframes edh-wing   { 0%,100% { transform:rotate(-10deg) scaleX(1) } 50% { transform:rotate(-5deg) scaleX(1.1) } }
@keyframes edh-light   { 0% { opacity:.3; transform:scale(.9) } 100% { opacity:.6; transform:scale(1.1) } }

/* eliza-dream-of-land – moonlit, calm, cool blue-silver */
.scn-eliza-dream-of-land {
  background: linear-gradient(180deg, #1a1a3e 0%, #2a2a5e 40%, #3a3a6e 100%), radial-gradient(ellipse at 50% 20%, #4a4a7e 0%, transparent 60%);
}
.scn-eliza-dream-of-land .sky     { position:absolute; inset:0 0 40% 0; background:linear-gradient(180deg, #2a2a5e, transparent); animation: edl-sky 25s ease-in-out infinite; }
.scn-eliza-dream-of-land .water   { position:absolute; bottom:0; left:0; right:0; height:45%; background:linear-gradient(180deg, #3a4a6e, #1a2a4e); border-radius:40% 60% 0 0 / 60% 80% 0 0; box-shadow:inset 0 8px 20px #0a0a2a; animation: edl-water 12s ease-in-out infinite alternate; }
.scn-eliza-dream-of-land .shore   { position:absolute; bottom:30%; left:10%; right:10%; height:12%; background:linear-gradient(180deg, #4a5a3a, #2a3a1a); border-radius:30% 70% 0 0 / 60% 80% 0 0; }
.scn-eliza-dream-of-land .house   { position:absolute; bottom:32%; left:40%; width:20%; height:25%; background:linear-gradient(180deg, #5a4a3a, #2a1a0a); border-radius:8% 8% 4% 4%; box-shadow:0 -4px 12px rgba(0,0,0,.5); animation: edl-house 10s ease-in-out infinite; }
.scn-eliza-dream-of-land .tree    { position:absolute; bottom:28%; left:65%; width:15%; height:35%; background:linear-gradient(180deg, #2a3a1a, #1a2a0a); border-radius:40% 60% 10% 10% / 70% 80% 10% 10%; box-shadow:inset -6px 0 10px #0a100a; animation: edl-tree 20s ease-in-out infinite; }
.scn-eliza-dream-of-land .boy     { position:absolute; bottom:25%; left:35%; width:8%; height:16%; background:linear-gradient(180deg, #3a3a5a, #1a1a3a); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; animation: edl-boy 5s ease-in-out infinite; }
.scn-eliza-dream-of-land .husband { position:absolute; bottom:20%; left:30%; width:10%; height:22%; background:linear-gradient(180deg, #2a2a4a, #0a0a2a); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin:bottom center; animation: edl-husband 8s ease-in-out infinite; }
.scn-eliza-dream-of-land .moon    { position:absolute; top:10%; left:70%; width:12%; height:12%; background:radial-gradient(circle, #d0d0f0, #8080b0); border-radius:50%; box-shadow:0 0 30px 10px #a0a0d0; animation: edl-moon 30s ease-in-out infinite alternate; }

@keyframes edl-sky     { 0%,100% { opacity:.7 } 50% { opacity:1 } }
@keyframes edl-water   { 0% { transform:translateY(0) } 50% { transform:translateY(-5px) } 100% { transform:translateY(3px) } }
@keyframes edl-house   { 0%,100% { transform:translateY(0) } 50% { transform:translateY(-3px) } }
@keyframes edl-tree    { 0%,100% { transform:rotate(-2deg) } 50% { transform:rotate(2deg) } }
@keyframes edl-boy     { 0% { transform:translateX(0) translateY(0) } 25% { transform:translateX(10px) translateY(-2px) } 50% { transform:translateX(20px) translateY(0) } 75% { transform:translateX(10px) translateY(-1px) } 100% { transform:translateX(0) translateY(0) } }
@keyframes edl-husband { 0% { transform:translateX(0) rotate(0) } 25% { transform:translateX(5px) rotate(2deg) } 75% { transform:translateX(-5px) rotate(-1deg) } 100% { transform:translateX(0) rotate(0) } }
@keyframes edl-moon    { 0% { transform:translateY(0); opacity:.9 } 50% { transform:translateY(-8px); opacity:1 } 100% { transform:translateY(4px); opacity:.8 } }

/* george-arrives – candlelit kitchen, warm amber, busy figures */
.scn-george-arrives {
  background: linear-gradient(180deg, #4a2a1a 0%, #2a1a0a 100%), radial-gradient(ellipse at 50% 70%, #6a3a1a 0%, transparent 50%);
}
.scn-george-arrives .wall      { position:absolute; inset:0; background:linear-gradient(180deg, #3a2a1a, #1a0a00); animation: ga-wall 20s ease-in-out infinite; }
.scn-george-arrives .table     { position:absolute; bottom:8%; left:10%; right:10%; height:35%; background:linear-gradient(180deg, #6a4a2a, #3a2a1a); border-radius:10% 10% 4% 4%; box-shadow:0 -6px 12px rgba(0,0,0,.5); }
.scn-george-arrives .candle    { position:absolute; bottom:38%; left:50%; width:4%; height:18%; background:linear-gradient(180deg, #c0a060, #806030); border-radius:2px; box-shadow:0 0 8px 2px #f0c060; animation: ga-flame 1.8s ease-in-out infinite; }
.scn-george-arrives .candleglow { position:absolute; bottom:28%; left:40%; width:30%; height:40%; background:radial-gradient(circle, #f0c060 0%, transparent 70%); filter:blur(12px); animation: ga-glow 3s ease-in-out infinite alternate; }
.scn-george-arrives .mother    { position:absolute; bottom:18%; left:30%; width:22%; height:50%; background:linear-gradient(180deg, #5a3a2a, #2a1a0a); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin:bottom center; animation: ga-mother 10s ease-in-out infinite; }
.scn-george-arrives .child-1   { position:absolute; bottom:12%; left:55%; width:10%; height:25%; background:linear-gradient(180deg, #4a3a2a, #2a1a0a); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; animation: ga-child1 7s ease-in-out infinite; }
.scn-george-arrives .child-2   { position:absolute; bottom:10%; left:70%; width:8%; height:20%; background:linear-gradient(180deg, #4a3a2a, #2a1a0a); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; animation: ga-child2 9s ease-in-out infinite 2s; }
.scn-george-arrives .steam     { position:absolute; bottom:35%; left:40%; width:20%; height:15%; background:radial-gradient(ellipse, rgba(255,255,255,.15), transparent); border-radius:50%; filter:blur(6px); animation: ga-steam 8s ease-in-out infinite; }

@keyframes ga-wall    { 0%,100% { opacity:.8 } 50% { opacity:1 } }
@keyframes ga-flame   { 0% { transform:scaleY(1) translateY(0); opacity:.9 } 50% { transform:scaleY(1.5) translateY(-8px); opacity:1 } 100% { transform:scaleY(.8) translateY(2px); opacity:.7 } }
@keyframes ga-glow    { 0% { opacity:.3; transform:scale(.9) } 100% { opacity:.6; transform:scale(1.15) } }
@keyframes ga-mother  { 0% { transform:translateX(-50%) rotate(0) } 25% { transform:translateX(-48%) rotate(2deg) } 75% { transform:translateX(-52%) rotate(-1deg) } 100% { transform:translateX(-50%) rotate(0) } }
@keyframes ga-child1  { 0% { transform:translateX(0) rotate(0) } 25% { transform:translateX(5px) rotate(3deg) } 75% { transform:translateX(-5px) rotate(-2deg) } 100% { transform:translateX(0) rotate(0) } }
@keyframes ga-child2  { 0% { transform:translateX(0) rotate(0) } 25% { transform:translateX(4px) rotate(-2deg) } 75% { transform:translateX(-4px) rotate(3deg) } 100% { transform:translateX(0) rotate(0) } }
@keyframes ga-steam   { 0% { transform:translateY(0) scaleX(1); opacity:.3 } 50% { transform:translateY(-15px) scaleX(1.3); opacity:.1 } 100% { transform:translateY(0) scaleX(1); opacity:.3 } }

.scn-toms-burial {
  background: linear-gradient(180deg, #9ac0d4 0%, #f5d8a0 40%, #d4a76a 100%), radial-gradient(ellipse at 50% 100%, #c89050 0%, transparent 70%);
}
.scn-toms-burial .sky { position:absolute; inset:0 0 40% 0; background: linear-gradient(180deg, #b8d8e8 0%, #f5e0b0 100%); animation: tb-sky 12s ease-in-out infinite alternate; }
.scn-toms-burial .hills { position:absolute; bottom:35%; left:0; right:0; height:30%; background: linear-gradient(180deg, #6b8f3a 0%, #4a6a2a 100%); border-radius: 50% 30% 0 0 / 60% 40% 0 0; box-shadow: inset 0 8px 20px rgba(0,0,0,0.3); animation: tb-hills 18s ease-in-out infinite alternate; }
.scn-toms-burial .grave-mound { position:absolute; bottom:28%; left:45%; width:60px; height:40px; background: linear-gradient(180deg, #7a5a3a 0%, #4a2a1a 100%); border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%; transform: translateX(-50%); box-shadow: 0 4px 10px rgba(0,0,0,0.5); animation: tb-mound 10s ease-in-out infinite; }
.scn-toms-burial .figure-left { position:absolute; bottom:24%; left:38%; width:16px; height:40px; background: linear-gradient(180deg, #3a2a1a 0%, #1a120a 100%); border-radius: 40% 40% 30% 30% / 60% 60% 30% 30%; transform-origin: bottom center; animation: tb-shovel-left 4s ease-in-out infinite; }
.scn-toms-burial .figure-right { position:absolute; bottom:24%; left:52%; width:16px; height:40px; background: linear-gradient(180deg, #3a2a1a 0%, #1a120a 100%); border-radius: 40% 40% 30% 30% / 60% 60% 30% 30%; transform-origin: bottom center; animation: tb-shovel-right 4s ease-in-out infinite .2s; }
.scn-toms-burial .coin-sparkle { position:absolute; bottom:30%; left:56%; width:6px; height:6px; background: radial-gradient(circle, #ffd700 0%, #b8860b 70%); border-radius: 50%; box-shadow: 0 0 12px 4px rgba(255,215,0,0.7); animation: tb-coin 3s ease-in-out infinite alternate; }
.scn-toms-burial .turf { position:absolute; bottom:31%; left:47%; width:30px; height:8px; background: linear-gradient(180deg, #5a7a3a 0%, #3a5a1a 100%); border-radius: 20% 20% 50% 50%; box-shadow: 0 2px 4px rgba(0,0,0,0.3); animation: tb-turf 6s ease-in-out infinite; }
@keyframes tb-sky { 0% { opacity:0.8 } 50% { opacity:1 } 100% { opacity:0.9 } }
@keyframes tb-hills { 0% { transform: translateY(0) } 50% { transform: translateY(-2px) } 100% { transform: translateY(0) } }
@keyframes tb-mound { 0%,100% { transform: translateX(-50%) scale(1) } 50% { transform: translateX(-50%) scale(1.02) } }
@keyframes tb-shovel-left { 0% { transform: translateX(0) translateY(0) rotate(-5deg) } 25% { transform: translateX(2px) translateY(-3px) rotate(0deg) } 50% { transform: translateX(0) translateY(0) rotate(5deg) } 75% { transform: translateX(-2px) translateY(-3px) rotate(0deg) } 100% { transform: translateX(0) translateY(0) rotate(-5deg) } }
@keyframes tb-shovel-right { 0% { transform: translateX(0) translateY(0) rotate(5deg) } 25% { transform: translateX(-2px) translateY(-3px) rotate(0deg) } 50% { transform: translateX(0) translateY(0) rotate(-5deg) } 75% { transform: translateX(2px) translateY(-3px) rotate(0deg) } 100% { transform: translateX(0) translateY(0) rotate(5deg) } }
@keyframes tb-coin { 0% { box-shadow: 0 0 8px 2px rgba(255,215,0,0.5); opacity:0.7 } 50% { box-shadow: 0 0 20px 6px rgba(255,215,0,0.9); opacity:1 } 100% { box-shadow: 0 0 10px 3px rgba(255,215,0,0.6); opacity:0.8 } }
@keyframes tb-turf { 0%,100% { transform: translateY(0) } 50% { transform: translateY(-1px) } }

.scn-no-monument {
  background: linear-gradient(180deg, #a0c8d8 0%, #f0d0a0 30%, #c89050 100%), radial-gradient(ellipse at 50% 0%, #fff5e0 0%, transparent 60%);
}
.scn-no-monument .sky { position:absolute; inset:0 0 45% 0; background: linear-gradient(180deg, #b8d8e8 0%, #f5e0b0 100%); animation: nm-sky 15s ease-in-out infinite alternate; }
.scn-no-monument .sunrays { position:absolute; top:5%; left:20%; width:150%; height:60%; background: linear-gradient(135deg, rgba(255,255,200,0.3) 0%, transparent 50%, rgba(255,255,200,0.1) 100%); border-radius: 50%; filter: blur(20px); animation: nm-rays 20s ease-in-out infinite alternate; }
.scn-no-monument .hills-no { position:absolute; bottom:35%; left:0; right:0; height:30%; background: linear-gradient(180deg, #6b8f3a 0%, #4a6a2a 100%); border-radius: 40% 60% 0 0 / 80% 50% 0 0; box-shadow: inset 0 8px 20px rgba(0,0,0,0.2); animation: nm-hills 18s ease-in-out infinite alternate; }
.scn-no-monument .grave-mound-no { position:absolute; bottom:28%; left:50%; width:80px; height:45px; background: linear-gradient(180deg, #7a5a3a 0%, #4a2a1a 100%); border-radius: 50% 50% 20% 20% / 60% 60% 30% 30%; transform: translateX(-50%); box-shadow: 0 6px 12px rgba(0,0,0,0.4); animation: nm-mound 12s ease-in-out infinite; }
.scn-no-monument .flowers { position:absolute; bottom:29%; left:48%; width:30px; height:20px; background: radial-gradient(circle at 30% 50%, #c89050, #e0b080 30%, transparent 60%); border-radius: 50%; filter: blur(2px); animation: nm-flowers 8s ease-in-out infinite alternate; }
.scn-no-monument .figure-standing { position:absolute; bottom:24%; left:42%; width:18px; height:42px; background: linear-gradient(180deg, #3a2a1a 0%, #1a120a 100%); border-radius: 40% 40% 30% 30% / 60% 60% 30% 30%; transform-origin: bottom center; animation: nm-stand 6s ease-in-out infinite; }
@keyframes nm-sky { 0% { opacity:0.85 } 50% { opacity:1 } 100% { opacity:0.9 } }
@keyframes nm-rays { 0% { transform: rotate(0deg) scale(1) } 50% { transform: rotate(5deg) scale(1.05) } 100% { transform: rotate(-5deg) scale(0.95) } }
@keyframes nm-hills { 0% { transform: translateY(0) } 50% { transform: translateY(-2px) } 100% { transform: translateY(0) } }
@keyframes nm-mound { 0%,100% { transform: translateX(-50%) scale(1) } 50% { transform: translateX(-50%) scale(1.01) translateY(-1px) } }
@keyframes nm-flowers { 0% { opacity:0.7; transform: translateY(0) } 50% { opacity:1; transform: translateY(-2px) } 100% { opacity:0.8; transform: translateY(0) } }
@keyframes nm-stand { 0% { transform: translateX(0) translateY(0) rotate(-1deg) } 50% { transform: translateX(1px) translateY(-2px) rotate(1deg) } 100% { transform: translateX(0) translateY(0) rotate(-1deg) } }

.scn-ghost-stories-rife {
  background: linear-gradient(180deg, #1a1a2e 0%, #2a1a3e 30%, #1a0a20 100%), radial-gradient(ellipse at 50% 0%, #3a2a4e 0%, transparent 60%);
}
.scn-ghost-stories-rife .wall-bg { position:absolute; inset:0; background: linear-gradient(180deg, #2a1a2e 0%, #1a0a1a 100%); animation: gs-wall 12s ease-in-out infinite alternate; }
.scn-ghost-stories-rife .floor { position:absolute; bottom:0; left:0; right:0; height:25%; background: linear-gradient(180deg, #3a2a2a 0%, #1a120a 100%); border-radius: 20% 20% 0 0; box-shadow: inset 0 8px 20px rgba(0,0,0,0.6); animation: gs-floor 10s ease-in-out infinite alternate; }
.scn-ghost-stories-rife .staircase { position:absolute; bottom:26%; left:30%; width:40%; height:50%; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius: 10% 10% 0 0; clip-path: polygon(0% 0%, 100% 0%, 85% 100%, 15% 100%); box-shadow: 0 -4px 10px rgba(0,0,0,0.5); animation: gs-stairs 15s ease-in-out infinite alternate; }
.scn-ghost-stories-rife .lantern-glow { position:absolute; bottom:45%; left:15%; width:12px; height:18px; background: radial-gradient(circle, #f0c060 0%, #b08030 70%); border-radius: 20% 20% 10% 10%; box-shadow: 0 0 24px 8px rgba(240,192,96,0.6), 0 0 48px 16px rgba(240,192,96,0.3); animation: gs-lantern 3s ease-in-out infinite alternate; }
.scn-ghost-stories-rife .servant-figure { position:absolute; bottom:20%; left:55%; width:16px; height:38px; background: linear-gradient(180deg, #2a1a0a 0%, #0a0602 100%); border-radius: 40% 40% 30% 30% / 60% 60% 30% 30%; transform-origin: bottom center; animation: gs-servant 5s ease-in-out infinite; }
.scn-ghost-stories-rife .ghost-figure { position:absolute; bottom:50%; left:35%; width:20px; height:50px; background: linear-gradient(180deg, rgba(220,220,240,0.3) 0%, rgba(200,200,220,0.1) 100%); border-radius: 40% 40% 30% 30% / 60% 60% 30% 30%; filter: blur(2px); box-shadow: 0 0 20px 5px rgba(200,200,240,0.2); animation: gs-ghost 8s ease-in-out infinite alternate; }
.scn-ghost-stories-rife .shadowy-shape { position:absolute; bottom:20%; left:20%; width:40px; height:60px; background: radial-gradient(ellipse at 50% 100%, rgba(0,0,0,0.6) 0%, transparent 70%); border-radius: 50%; filter: blur(8px); animation: gs-shadow 12s ease-in-out infinite alternate; }
@keyframes gs-wall { 0% { opacity:0.9 } 50% { opacity:1 } 100% { opacity:0.95 } }
@keyframes gs-floor { 0% { transform: translateY(0) } 50% { transform: translateY(1px) } 100% { transform: translateY(0) } }
@keyframes gs-stairs { 0% { transform: translateY(0) } 50% { transform: translateY(-3px) } 100% { transform: translateY(0) } }
@keyframes gs-lantern { 0% { box-shadow: 0 0 20px 6px rgba(240,192,96,0.5), 0 0 40px 12px rgba(240,192,96,0.2); opacity:0.8 } 50% { box-shadow: 0 0 30px 10px rgba(240,192,96,0.8), 0 0 60px 20px rgba(240,192,96,0.4); opacity:1 } 100% { box-shadow: 0 0 22px 7px rgba(240,192,96,0.55), 0 0 45px 14px rgba(240,192,96,0.25); opacity:0.85 } }
@keyframes gs-servant { 0%,100% { transform: translateX(0) rotate(0deg) } 25% { transform: translateX(2px) rotate(2deg) } 75% { transform: translateX(-2px) rotate(-2deg) } }
@keyframes gs-ghost { 0% { transform: translateX(0) translateY(0) scale(1); opacity:0.4 } 50% { transform: translateX(5px) translateY(-10px) scale(1.03); opacity:0.7 } 100% { transform: translateX(-5px) translateY(-5px) scale(0.97); opacity:0.5 } }
@keyframes gs-shadow { 0% { transform: scale(1); opacity:0.3 } 50% { transform: scale(1.2); opacity:0.6 } 100% { transform: scale(0.9); opacity:0.4 } }

.scn-ghost-observed {
  background: linear-gradient(180deg, #0a0a1a 0%, #1a1a3e 40%, #2a2a4e 100%), radial-gradient(ellipse at 50% 0%, #3a3a5e 0%, transparent 60%);
}
.scn-ghost-observed .night-sky { position:absolute; inset:0 0 45% 0; background: linear-gradient(180deg, #0a0a1a 0%, #1a1a3e 100%); animation: go-sky 20s ease-in-out infinite alternate; }
.scn-ghost-observed .moon { position:absolute; top:8%; right:25%; width:30px; height:30px; background: radial-gradient(circle, #e0e8f0 0%, #c0c8d8 60%, transparent 100%); border-radius: 50%; box-shadow: 0 0 30px 10px rgba(200,210,230,0.4); animation: go-moon 10s ease-in-out infinite alternate; }
.scn-ghost-observed .clouds { position:absolute; top:12%; left:10%; width:100px; height:20px; background: linear-gradient(180deg, rgba(40,40,60,0.6) 0%, rgba(40,40,60,0.1) 100%); border-radius: 50%; filter: blur(6px); animation: go-cloud-drift 50s linear infinite; }
.scn-ghost-observed .hills-go { position:absolute; bottom:30%; left:0; right:0; height:30%; background: linear-gradient(180deg, #1a2a2a 0%, #0a1a1a 100%); border-radius: 40% 60% 0 0 / 80% 50% 0 0; box-shadow: inset 0 8px 20px rgba(0,0,0,0.5); animation: go-hills 18s ease-in-out infinite alternate; }
.scn-ghost-observed .ghost-figure-go { position:absolute; bottom:32%; left:45%; width:22px; height:55px; background: linear-gradient(180deg, rgba(220,225,240,0.4) 0%, rgba(200,205,220,0.1) 100%); border-radius: 40% 40% 30% 30% / 60% 60% 30% 30%; filter: blur(3px); box-shadow: 0 0 25px 8px rgba(200,210,230,0.3); animation: go-ghost-walk 12s ease-in-out infinite; }
.scn-ghost-observed .tree-silhouette { position:absolute; bottom:25%; left:15%; width:10px; height:80px; background: linear-gradient(180deg, #0a0a0a 0%, #050505 100%); border-radius: 20% 20% 0 0; box-shadow: 2px 0 0 #0a0a0a, -2px 0 0 #0a0a0a; animation: go-tree 14s ease-in-out infinite alternate; }
@keyframes go-sky { 0% { opacity:0.8 } 50% { opacity:1 } 100% { opacity:0.9 } }
@keyframes go-moon { 0% { box-shadow: 0 0 25px 8px rgba(200,210,230,0.3); opacity:0.8 } 50% { box-shadow: 0 0 40px 15px rgba(200,210,230,0.5); opacity:1 } 100% { box-shadow: 0 0 30px 10px rgba(200,210,230,0.35); opacity:0.85 } }
@keyframes go-cloud-drift { 0% { transform: translateX(-30px) } 100% { transform: translateX(110vw) } }
@keyframes go-hills { 0% { transform: translateY(0) } 50% { transform: translateY(-2px) } 100% { transform: translateY(0) } }
@keyframes go-ghost-walk { 0% { transform: translateX(0) translateY(0) rotate(0deg); opacity:0.4 } 25% { transform: translateX(10px) translateY(-2px) rotate(1deg); opacity:0.6 } 50% { transform: translateX(20px) translateY(0) rotate(0deg); opacity:0.5 } 75% { transform: translateX(30px) translateY(-2px) rotate(-1deg); opacity:0.7 } 100% { transform: translateX(40px) translateY(0) rotate(0deg); opacity:0.45 } }
@keyframes go-tree { 0%,100% { transform: rotate(0deg) } 50% { transform: rotate(2deg) } }

/* eva-illness-carry — tense, sunlit */
.scn-eva-illness-carry {
  background:
    linear-gradient(180deg, #fff5e6 0%, #fce4c4 30%, #d9b382 100%),
    radial-gradient(ellipse at 60% 20%, #fff8e8 0%, transparent 60%);
}
.scn-eva-illness-carry .window-beam {
  position:absolute; top:0; left:20%; width:50%; height:70%;
  background: linear-gradient(135deg, rgba(255,255,220,0.6) 0%, rgba(255,255,220,0) 100%);
  clip-path: polygon(0 0, 100% 0, 80% 100%, 20% 100%);
  animation: eic-beam 6s ease-in-out infinite alternate;
}
.scn-eva-illness-carry .father-hold {
  position:absolute; bottom:18%; left:30%; width:40px; height:80px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 30% 30% 20% 20% / 50% 50% 30% 30%;
  transform-origin: bottom center;
  animation: eic-father 4s ease-in-out infinite;
}
.scn-eva-illness-carry .child-limp {
  position:absolute; bottom:25%; left:35%; width:30px; height:30px;
  background: radial-gradient(ellipse 70% 60% at 50% 40%, #f0d8c8 0%, #d0b8a8 100%);
  border-radius: 50% 50% 30% 30% / 40% 40% 20% 20%;
  transform-origin: top center;
  animation: eic-child 4s ease-in-out infinite;
}
.scn-eva-illness-carry .sofa {
  position:absolute; bottom:10%; left:15%; width:70%; height:30%;
  background: linear-gradient(180deg, #8a7050 0%, #5a4030 100%);
  border-radius: 20% 20% 8% 8% / 40% 40% 15% 15%;
  box-shadow: 0 8px 20px rgba(0,0,0,0.4);
  animation: eic-sofa 12s ease-in-out infinite alternate;
}
.scn-eva-illness-carry .floor {
  position:absolute; bottom:0; left:0; right:0; height:12%;
  background: linear-gradient(180deg, #c8a878 0%, #a08058 100%);
  animation: eic-floor 8s ease-in-out infinite alternate;
}
.scn-eva-illness-carry .shadow-cast {
  position:absolute; bottom:12%; left:28%; width:60px; height:20px;
  background: radial-gradient(ellipse, rgba(0,0,0,0.35) 0%, transparent 100%);
  transform: skewX(-20deg);
  animation: eic-shadow 4s ease-in-out infinite;
}
.scn-eva-illness-carry .sun-dust {
  position:absolute; top:10%; left:30%; width:4px; height:4px;
  background: #ffe0a0; border-radius:50%; box-shadow: 0 0 12px 6px rgba(255,224,160,0.5);
  animation: eic-dust 7s linear infinite;
}
@keyframes eic-beam {
  0% { opacity:0.7; transform: translateY(0) scaleX(1); }
  50% { opacity:1; transform: translateY(-2px) scaleX(1.02); }
  100% { opacity:0.8; transform: translateY(0) scaleX(0.98); }
}
@keyframes eic-father {
  0% { transform: translateY(0) rotate(0deg); }
  50% { transform: translateY(-1px) rotate(1deg); }
  100% { transform: translateY(0) rotate(0deg); }
}
@keyframes eic-child {
  0% { transform: rotate(0deg); }
  50% { transform: rotate(-2deg); }
  100% { transform: rotate(0deg); }
}
@keyframes eic-sofa {
  0% { transform: translateY(0); }
  50% { transform: translateY(-1px); }
  100% { transform: translateY(0); }
}
@keyframes eic-floor {
  0% { opacity:0.8; }
  50% { opacity:1; }
  100% { opacity:0.85; }
}
@keyframes eic-shadow {
  0% { transform: skewX(-20deg) scaleX(1); opacity:0.5; }
  50% { transform: skewX(-20deg) scaleX(1.1); opacity:0.7; }
  100% { transform: skewX(-20deg) scaleX(1); opacity:0.5; }
}
@keyframes eic-dust {
  0% { transform: translate(0, 0); opacity:0; }
  50% { opacity:0.6; }
  100% { transform: translate(30px, -60px); opacity:0; }
}

/* children-conversation-sofa — warm, bright-interior */
.scn-children-conversation-sofa {
  background:
    linear-gradient(180deg, #fef9ef 0%, #f7e9d0 40%, #e5cfb0 100%),
    radial-gradient(ellipse at 50% 10%, #ffffff 0%, transparent 70%);
}
.scn-children-conversation-sofa .sofa-curve {
  position:absolute; bottom:10%; left:10%; width:80%; height:35%;
  background: linear-gradient(180deg, #c0a878 0%, #8a6a48 100%);
  border-radius: 30% 30% 10% 10% / 50% 50% 20% 20%;
  box-shadow: 0 6px 20px rgba(0,0,0,0.2);
  animation: ccs-sofa 10s ease-in-out infinite alternate;
}
.scn-children-conversation-sofa .child-left {
  position:absolute; bottom:25%; left:28%; width:28px; height:38px;
  background: linear-gradient(180deg, #c8a080 0%, #8a6040 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 25% 25%;
  transform-origin: bottom center;
  animation: ccs-child 5s ease-in-out infinite;
}
.scn-children-conversation-sofa .child-right {
  position:absolute; bottom:25%; right:28%; width:28px; height:38px;
  background: linear-gradient(180deg, #d0b090 0%, #906848 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 25% 25%;
  transform-origin: bottom center;
  animation: ccs-child 5s ease-in-out infinite reverse;
}
.scn-children-conversation-sofa .hands-join {
  position:absolute; bottom:38%; left:44%; width:12%; height:6px;
  background: #705840; border-radius: 50%;
  box-shadow: 0 2px 4px rgba(0,0,0,0.2);
  animation: ccs-hands 3s ease-in-out infinite alternate;
}
.scn-children-conversation-sofa .lamp-glow {
  position:absolute; top:10%; right:15%; width:20px; height:20px;
  background: radial-gradient(circle, #ffd880 0%, #e0a840 70%);
  border-radius:50%; box-shadow: 0 0 30px 15px rgba(255,216,128,0.6);
  animation: ccs-lamp 4s ease-in-out infinite alternate;
}
.scn-children-conversation-sofa .wall-panel {
  position:absolute; top:0; left:0; right:0; height:65%;
  background: linear-gradient(180deg, #f7ecd0 0%, #e8d4b0 100%);
  border-radius: 0 0 50% 50% / 0 0 30% 30%;
  animation: ccs-wall 12s ease-in-out infinite alternate;
}
.scn-children-conversation-sofa .carpet-oval {
  position:absolute; bottom:0; left:15%; width:70%; height:15%;
  background: radial-gradient(ellipse, #8a7050 0%, #5a4020 100%);
  border-radius:50%;
  animation: ccs-carpet 8s ease-in-out infinite alternate;
}
@keyframes ccs-sofa {
  0% { transform: translateY(0); }
  50% { transform: translateY(-1px); }
  100% { transform: translateY(0); }
}
@keyframes ccs-child {
  0% { transform: translateY(0) rotate(0deg); }
  50% { transform: translateY(-1px) rotate(1deg); }
  100% { transform: translateY(0) rotate(0deg); }
}
@keyframes ccs-hands {
  0% { transform: translateY(0) scaleY(1); }
  50% { transform: translateY(-1px) scaleY(1.2); }
  100% { transform: translateY(0) scaleY(1); }
}
@keyframes ccs-lamp {
  0% { box-shadow: 0 0 20px 10px rgba(255,216,128,0.4); opacity:0.8; }
  50% { box-shadow: 0 0 40px 20px rgba(255,216,128,0.7); opacity:1; }
  100% { box-shadow: 0 0 25px 12px rgba(255,216,128,0.5); opacity:0.9; }
}
@keyframes ccs-wall {
  0% { opacity:0.9; }
  50% { opacity:1; }
  100% { opacity:0.95; }
}
@keyframes ccs-carpet {
  0% { transform: scale(1); }
  50% { transform: scale(1.02); }
  100% { transform: scale(1); }
}

/* eva-decline-begin — dark mood, bright interior */
.scn-eva-decline-begin {
  background:
    linear-gradient(180deg, #f0ece0 0%, #d8d0c0 40%, #b8b0a0 100%),
    radial-gradient(ellipse at 50% 0%, #ffffff 0%, transparent 60%);
}
.scn-eva-decline-begin .window-fade {
  position:absolute; top:0; left:20%; width:60%; height:40%;
  background: linear-gradient(180deg, #c0d0e0 0%, #ffffff 100%);
  clip-path: polygon(10% 0, 90% 0, 80% 100%, 20% 100%);
  opacity:0.6;
  animation: edb-window 8s ease-in-out infinite alternate;
}
.scn-eva-decline-begin .bed-rect {
  position:absolute; bottom:10%; left:5%; width:90%; height:45%;
  background: linear-gradient(180deg, #c0b8a8 0%, #8a7a6a 100%);
  border-radius: 5% 5% 15% 15% / 10% 10% 30% 30%;
  box-shadow: inset 0 -20px 30px rgba(0,0,0,0.3);
  animation: edb-bed 12s ease-in-out infinite alternate;
}
.scn-eva-decline-begin .eva-figure {
  position:absolute; bottom:22%; left:30%; width:30px; height:30px;
  background: linear-gradient(180deg, #e8d0c0 0%, #c0a090 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 25% 25%;
  transform-origin: bottom center;
  animation: edb-eva 4s ease-in-out infinite;
}
.scn-eva-decline-begin .doctor-shape {
  position:absolute; bottom:35%; right:25%; width:24px; height:50px;
  background: linear-gradient(180deg, #3a4a5a 0%, #2a3a4a 100%);
  border-radius: 10% 10% 30% 30% / 20% 20% 40% 40%;
  transform-origin: bottom center;
  animation: edb-doctor 6s ease-in-out infinite;
}
.scn-eva-decline-begin .marie-shadow {
  position:absolute; bottom:30%; left:8%; width:28px; height:45px;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 20% 20% 30% 30% / 30% 30% 40% 40%;
  transform-origin: bottom center;
  animation: edb-marie 9s ease-in-out infinite;
}
.scn-eva-decline-begin .pillow {
  position:absolute; bottom:38%; left:28%; width:36px; height:14px;
  background: radial-gradient(ellipse, #f0e8d8 0%, #c8b8a0 100%);
  border-radius:50%;
  animation: edb-pillow 7s ease-in-out infinite alternate;
}
.scn-eva-decline-begin .clock-pendulum {
  position:absolute; top:15%; left:48%; width:6px; height:14px;
  background: #6a5a4a; border-radius: 10%;
  transform-origin: top center;
  animation: edb-clock 2s ease-in-out infinite;
}
@keyframes edb-window {
  0% { opacity:0.5; }
  50% { opacity:0.7; }
  100% { opacity:0.55; }
}
@keyframes edb-bed {
  0% { transform: translateY(0); }
  50% { transform: translateY(-1px); }
  100% { transform: translateY(0); }
}
@keyframes edb-eva {
  0% { transform: translateY(0) rotate(0deg); }
  50% { transform: translateY(-1px) rotate(-1deg); }
  100% { transform: translateY(0) rotate(0deg); }
}
@keyframes edb-doctor {
  0% { transform: translateY(0) rotate(0deg); }
  50% { transform: translateY(-1px) rotate(1deg); }
  100% { transform: translateY(0) rotate(0deg); }
}
@keyframes edb-marie {
  0% { transform: translateY(0) rotate(0deg); }
  50% { transform: translateY(-1px) rotate(-1deg); }
  100% { transform: translateY(0) rotate(0deg); }
}
@keyframes edb-pillow {
  0% { transform: scaleY(1); }
  50% { transform: scaleY(1.05); }
  100% { transform: scaleY(1); }
}
@keyframes edb-clock {
  0% { transform: rotate(-15deg); }
  50% { transform: rotate(15deg); }
  100% { transform: rotate(-15deg); }
}

/* legree-flees-to-parlor — tense, dim-interior */
.scn-legree-flees-to-parlor {
  background:
    linear-gradient(180deg, #2a1a10 0%, #3a2a1a 40%, #1a0a00 100%),
    radial-gradient(ellipse at 50% 60%, #5a3a1a 0%, transparent 70%);
}
.scn-legree-flees-to-parlor .wall-dark {
  position:absolute; top:0; left:0; right:0; height:100%;
  background: linear-gradient(180deg, #2a1a10 0%, #4a3a2a 100%);
  opacity:0.8;
  animation: lfp-wall 10s ease-in-out infinite alternate;
}
.scn-legree-flees-to-parlor .legree-stumble {
  position:absolute; bottom:20%; right:20%; width:30px; height:55px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0a00 100%);
  border-radius: 20% 20% 30% 30% / 30% 30% 40% 40%;
  transform-origin: bottom center;
  animation: lfp-legree 3s ease-in-out infinite;
}
.scn-legree-flees-to-parlor .cassy-still {
  position:absolute; bottom:20%; left:25%; width:26px; height:50px;
  background: linear-gradient(180deg, #a0a0a8 0%, #808088 100%);
  border-radius: 30% 30% 20% 20% / 50% 50% 30% 30%;
  transform-origin: bottom center;
  animation: lfp-cassy 5s ease-in-out infinite alternate;
}
.scn-legree-flees-to-parlor .table {
  position:absolute; bottom:15%; left:40%; width:25%; height:12%;
  background: linear-gradient(180deg, #5a4030 0%, #3a2010 100%);
  border-radius: 10% 10% 20% 20% / 20% 20% 30% 30%;
  box-shadow: 0 4px 10px rgba(0,0,0,0.5);
  animation: lfp-table 8s ease-in-out infinite alternate;
}
.scn-legree-flees-to-parlor .chair {
  position:absolute; bottom:18%; left:60%; width:16%; height:28%;
  background: linear-gradient(180deg, #4a3020 0%, #2a1000 100%);
  border-radius: 20% 20% 10% 10% / 30% 30% 15% 15%;
  box-shadow: 0 4px 8px rgba(0,0,0,0.4);
  animation: lfp-chair 6s ease-in-out infinite alternate;
}
.scn-legree-flees-to-parlor .candle-halo {
  position:absolute; top:30%; left:45%; width:12px; height:12px;
  background: radial-gradient(circle, #ffc060 0%, #d07020 70%);
  border-radius:50%; box-shadow: 0 0 30px 20px rgba(255,192,96,0.5);
  animation: lfp-candle 3s ease-in-out infinite alternate;
}
.scn-legree-flees-to-parlor .shadow-pool {
  position:absolute; bottom:0; left:0; right:0; height:20%;
  background: linear-gradient(180deg, transparent 0%, rgba(0,0,0,0.6) 100%);
  animation: lfp-shadow 7s ease-in-out infinite alternate;
}
@keyframes lfp-wall {
  0% { opacity:0.75; }
  50% { opacity:0.85; }
  100% { opacity:0.8; }
}
@keyframes lfp-legree {
  0% { transform: translateY(0) rotate(0deg); }
  50% { transform: translateY(-3px) rotate(3deg); }
  100% { transform: translateY(0) rotate(0deg); }
}
@keyframes lfp-cassy {
  0% { transform: translateY(0) rotate(0deg); }
  50% { transform: translateY(-1px) rotate(-1deg); }
  100% { transform: translateY(0) rotate(0deg); }
}
@keyframes lfp-table {
  0% { transform: translateY(0); }
  50% { transform: translateY(-1px); }
  100% { transform: translateY(0); }
}
@keyframes lfp-chair {
  0% { transform: translateY(0) rotate(0deg); }
  50% { transform: translateY(-1px) rotate(1deg); }
  100% { transform: translateY(0) rotate(0deg); }
}
@keyframes lfp-candle {
  0% { box-shadow: 0 0 20px 12px rgba(255,192,96,0.4); opacity:0.8; }
  50% { box-shadow: 0 0 40px 25px rgba(255,192,96,0.7); opacity:1; }
  100% { box-shadow: 0 0 25px 15px rgba(255,192,96,0.5); opacity:0.9; }
}
@keyframes lfp-shadow {
  0% { opacity:0.5; }
  50% { opacity:0.7; }
  100% { opacity:0.55; }
}

/* george-plans-to-invite-tom */
.scn-george-plans-to-invite-tom {
  background: 
    linear-gradient(180deg, #2a1508 0%, #4a2808 40%, #6a3a0e 70%, #5a2e0a 100%),
    radial-gradient(ellipse at 50% 90%, #b85a20 0%, transparent 60%);
}
.scn-george-plans-to-invite-tom .bg-flicker {
  position: absolute; inset: 0;
  background: radial-gradient(ellipse at 40% 80%, rgba(200,100,40,0.15) 0%, transparent 50%);
  animation: gpi-bg 4s ease-in-out infinite alternate;
}
.scn-george-plans-to-invite-tom .fireplace {
  position: absolute; bottom: 20%; left: 10%; width: 50%; height: 60%;
  background: linear-gradient(180deg, #3a1a08 0%, #1a0a02 100%);
  border-radius: 10% 10% 0 0 / 20% 20% 0 0;
  box-shadow: inset 0 0 20px rgba(0,0,0,0.6), 0 4px 12px rgba(0,0,0,0.5);
}
.scn-george-plans-to-invite-tom .fire {
  position: absolute; bottom: 30%; left: 25%; width: 30%; height: 40%;
  background: radial-gradient(ellipse at 50% 0%, #ff8c30 0%, #d05010 40%, #701800 80%, transparent 100%);
  border-radius: 50% / 70% 70% 30% 30%;
  opacity: 0.9;
  animation: gpi-fire 0.8s ease-in-out infinite alternate;
}
.scn-george-plans-to-invite-tom .george {
  position: absolute; bottom: 18%; left: 20%; width: 12%; height: 50%;
  background: linear-gradient(180deg, #1a0a02 0%, #0a0400 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: gpi-figure 5s ease-in-out infinite;
}
.scn-george-plans-to-invite-tom .chloe {
  position: absolute; bottom: 18%; left: 60%; width: 14%; height: 55%;
  background: linear-gradient(180deg, #1a0a02 0%, #0a0400 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: gpi-figure 6s ease-in-out infinite 0.5s;
}
.scn-george-plans-to-invite-tom .table {
  position: absolute; bottom: 20%; left: 40%; width: 25%; height: 10%;
  background: linear-gradient(180deg, #5a3a1a 0%, #3a1a08 100%);
  border-radius: 10% / 50%;
  box-shadow: 0 4px 8px rgba(0,0,0,0.5);
  animation: gpi-table 12s ease-in-out infinite;
}
.scn-george-plans-to-invite-tom .pie {
  position: absolute; bottom: 28%; left: 48%; width: 8%; height: 6%;
  background: radial-gradient(ellipse, #b87860 0%, #8a5040 60%, #5a2010 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  box-shadow: 0 2px 4px rgba(0,0,0,0.4);
  animation: gpi-pie 4s ease-in-out infinite alternate;
}
.scn-george-plans-to-invite-tom .smoke {
  position: absolute; bottom: 60%; left: 30%; width: 20%; height: 20%;
  background: radial-gradient(ellipse, rgba(200,120,60,0.2) 0%, transparent 70%);
  filter: blur(10px);
  animation: gpi-smoke 15s ease-in-out infinite;
}
@keyframes gpi-bg {
  0% { opacity: 0.8; transform: scale(1); }
  50% { opacity: 1; transform: scale(1.02); }
  100% { opacity: 0.85; transform: scale(0.98); }
}
@keyframes gpi-fire {
  0% { transform: scaleY(1) translateY(0); opacity: 0.9; }
  50% { transform: scaleY(1.1) translateY(-5px); opacity: 1; }
  100% { transform: scaleY(0.95) translateY(2px); opacity: 0.85; }
}
@keyframes gpi-figure {
  0% { transform: translateX(0) rotate(0); }
  25% { transform: translateX(3px) rotate(2deg); }
  50% { transform: translateX(0) rotate(-1deg); }
  75% { transform: translateX(-2px) rotate(1deg); }
  100% { transform: translateX(0) rotate(0); }
}
@keyframes gpi-table {
  0% { transform: translateY(0); }
  50% { transform: translateY(-2px); }
  100% { transform: translateY(0); }
}
@keyframes gpi-pie {
  0% { box-shadow: 0 2px 4px rgba(0,0,0,0.4); }
  50% { box-shadow: 0 4px 8px rgba(0,0,0,0.2), 0 0 12px rgba(200,100,40,0.3); }
  100% { box-shadow: 0 2px 4px rgba(0,0,0,0.4); }
}
@keyframes gpi-smoke {
  0% { transform: translateY(0) translateX(0) scale(1); opacity: 0.3; }
  50% { transform: translateY(-30px) translateX(10px) scale(1.5); opacity: 0.1; }
  100% { transform: translateY(-60px) translateX(-5px) scale(2); opacity: 0; }
}

/* aunt-chloe-saucy-with-missis */
.scn-aunt-chloe-saucy-with-missis {
  background: 
    linear-gradient(180deg, #2a1508 0%, #4a2808 40%, #6a3a0e 70%, #5a2e0a 100%),
    radial-gradient(ellipse at 30% 80%, #b85a20 0%, transparent 60%);
}
.scn-aunt-chloe-saucy-with-missis .bg-flicker {
  position: absolute; inset: 0;
  background: radial-gradient(ellipse at 60% 70%, rgba(200,100,40,0.2) 0%, transparent 50%);
  animation: acm-bg 4s ease-in-out infinite alternate;
}
.scn-aunt-chloe-saucy-with-missis .kitchen-hearth {
  position: absolute; bottom: 10%; left: 5%; width: 60%; height: 70%;
  background: linear-gradient(180deg, #3a1a08 0%, #1a0a02 100%);
  border-radius: 20% 20% 0 0 / 30% 30% 0 0;
  box-shadow: inset 0 0 30px rgba(0,0,0,0.7);
}
.scn-aunt-chloe-saucy-with-missis .fire {
  position: absolute; bottom: 30%; left: 15%; width: 25%; height: 35%;
  background: radial-gradient(ellipse at 50% 0%, #ff8c30 0%, #d05010 40%, #701800 80%, transparent 100%);
  border-radius: 50% / 60% 60% 40% 40%;
  animation: acm-fire 0.7s ease-in-out infinite alternate;
}
.scn-aunt-chloe-saucy-with-missis .chloe {
  position: absolute; bottom: 12%; left: 45%; width: 15%; height: 58%;
  background: linear-gradient(180deg, #1a0a02 0%, #0a0400 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: acm-chloe 6s ease-in-out infinite;
}
.scn-aunt-chloe-saucy-with-missis .missis {
  position: absolute; bottom: 15%; right: 10%; width: 12%; height: 50%;
  background: linear-gradient(180deg, #1a0a02 0%, #0a0400 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: acm-missis 7s ease-in-out infinite 0.3s;
}
.scn-aunt-chloe-saucy-with-missis .pot {
  position: absolute; bottom: 22%; left: 30%; width: 10%; height: 12%;
  background: radial-gradient(ellipse, #5a3a2a 0%, #3a1a08 100%);
  border-radius: 30% 30% 20% 20% / 40% 40% 30% 30%;
  box-shadow: inset 0 -4px 8px rgba(0,0,0,0.5);
  animation: acm-pot 8s ease-in-out infinite;
}
.scn-aunt-chloe-saucy-with-missis .bowl {
  position: absolute; bottom: 24%; left: 55%; width: 8%; height: 6%;
  background: radial-gradient(ellipse, #8a6040 0%, #5a3a20 100%);
  border-radius: 50% / 40% 40% 30% 30%;
  box-shadow: 0 2px 4px rgba(0,0,0,0.3);
  animation: acm-bowl 9s ease-in-out infinite 1s;
}
@keyframes acm-bg {
  0% { opacity: 0.8; }
  50% { opacity: 1; }
  100% { opacity: 0.85; }
}
@keyframes acm-fire {
  0% { transform: scaleY(1) rotate(0deg); }
  50% { transform: scaleY(1.15) rotate(3deg) translateY(-4px); }
  100% { transform: scaleY(0.9) rotate(-1deg) translateY(2px); }
}
@keyframes acm-chloe {
  0% { transform: translateX(0) rotate(0deg); }
  33% { transform: translateX(4px) rotate(2deg) translateY(-1px); }
  66% { transform: translateX(-3px) rotate(-1deg) translateY(1px); }
  100% { transform: translateX(0) rotate(0deg); }
}
@keyframes acm-missis {
  0% { transform: translateX(0) rotate(0deg); }
  25% { transform: translateX(2px) rotate(-2deg); }
  50% { transform: translateX(-1px) rotate(1deg); }
  75% { transform: translateX(3px) rotate(0deg); }
  100% { transform: translateX(0) rotate(0deg); }
}
@keyframes acm-pot {
  0% { transform: translateY(0) scale(1); }
  50% { transform: translateY(-2px) scale(1.02); }
  100% { transform: translateY(0) scale(1); }
}
@keyframes acm-bowl {
  0% { transform: rotate(0deg); }
  33% { transform: rotate(3deg); }
  66% { transform: rotate(-2deg); }
  100% { transform: rotate(0deg); }
}

/* mrs-shelby-laughs-at-chloe */
.scn-mrs-shelby-laughs-at-chloe {
  background: 
    linear-gradient(180deg, #2a1508 0%, #4a2808 40%, #6a3a0e 70%, #5a2e0a 100%),
    radial-gradient(ellipse at 70% 60%, #c86020 0%, transparent 60%);
}
.scn-mrs-shelby-laughs-at-chloe .bg-flicker {
  position: absolute; inset: 0;
  background: radial-gradient(ellipse at 40% 70%, rgba(200,100,40,0.12) 0%, transparent 50%);
  animation: msl-bg 5s ease-in-out infinite alternate;
}
.scn-mrs-shelby-laughs-at-chloe .parlor-fire {
  position: absolute; bottom: 15%; left: 5%; width: 35%; height: 65%;
  background: linear-gradient(180deg, #3a1a08 0%, #1a0a02 100%);
  border-radius: 40% 40% 0 0 / 50% 50% 0 0;
  box-shadow: inset 0 0 40px rgba(0,0,0,0.7);
}
.scn-mrs-shelby-laughs-at-chloe .fire {
  position: absolute; bottom: 30%; left: 10%; width: 20%; height: 30%;
  background: radial-gradient(ellipse at 50% 0%, #ff8c30 0%, #d05010 40%, #701800 80%, transparent 100%);
  border-radius: 50% / 60% 60% 40% 40%;
  animation: msl-fire 0.9s ease-in-out infinite alternate;
}
.scn-mrs-shelby-laughs-at-chloe .george {
  position: absolute; bottom: 12%; left: 50%; width: 14%; height: 55%;
  background: linear-gradient(180deg, #1a0a02 0%, #0a0400 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: msl-figure 5s ease-in-out infinite;
}
.scn-mrs-shelby-laughs-at-chloe .chloe {
  position: absolute; bottom: 12%; right: 15%; width: 16%; height: 60%;
  background: linear-gradient(180deg, #1a0a02 0%, #0a0400 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: msl-figure 6s ease-in-out infinite 0.4s;
}
.scn-mrs-shelby-laughs-at-chloe .sofa {
  position: absolute; bottom: 10%; left: 45%; width: 40%; height: 20%;
  background: linear-gradient(180deg, #4a2a18 0%, #2a1008 100%);
  border-radius: 30% 30% 10% 10% / 50% 50% 20% 20%;
  box-shadow: inset 0 -4px 8px rgba(0,0,0,0.5), 0 4px 12px rgba(0,0,0,0.4);
  animation: msl-sofa 10s ease-in-out infinite;
}
.scn-mrs-shelby-laughs-at-chloe .lamp {
  position: absolute; bottom: 45%; right: 25%; width: 6%; height: 8%;
  background: radial-gradient(ellipse, #f0c070 0%, #b88040 60%, transparent 100%);
  border-radius: 50%;
  box-shadow: 0 0 20px 6px rgba(240,192,112,0.4);
  animation: msl-lamp 4s ease-in-out infinite alternate;
}
@keyframes msl-bg {
  0% { opacity: 0.85; transform: scale(1); }
  50% { opacity: 1; transform: scale(1.01); }
  100% { opacity: 0.9; transform: scale(0.99); }
}
@keyframes msl-fire {
  0% { transform: scaleY(1) rotate(0deg); }
  33% { transform: scaleY(1.12) rotate(4deg) translateY(-3px); }
  66% { transform: scaleY(0.92) rotate(-2deg) translateY(2px); }
  100% { transform: scaleY(1) rotate(0deg); }
}
@keyframes msl-figure {
  0% { transform: translateX(0) rotate(0deg); }
  25% { transform: translateX(2px) rotate(1deg); }
  50% { transform: translateX(-1px) rotate(-2deg); }
  75% { transform: translateX(3px) rotate(0deg); }
  100% { transform: translateX(0) rotate(0deg); }
}
@keyframes msl-sofa {
  0% { transform: translateY(0); }
  50% { transform: translateY(-1px); }
  100% { transform: translateY(0); }
}
@keyframes msl-lamp {
  0% { box-shadow: 0 0 20px 6px rgba(240,192,112,0.4); opacity: 0.9; }
  50% { box-shadow: 0 0 30px 10px rgba(240,192,112,0.6); opacity: 1; }
  100% { box-shadow: 0 0 20px 6px rgba(240,192,112,0.4); opacity: 0.9; }
}

/* general-knox-pie-anecdote */
.scn-general-knox-pie-anecdote {
  background: 
    linear-gradient(180deg, #2a1508 0%, #4a2808 40%, #6a3a0e 70%, #5a2e0a 100%),
    radial-gradient(ellipse at 50% 50%, #b85a20 0%, transparent 70%);
}
.scn-general-knox-pie-anecdote .bg-flicker {
  position: absolute; inset: 0;
  background: radial-gradient(ellipse at 30% 70%, rgba(200,100,40,0.18) 0%, transparent 50%);
  animation: gkp-bg 3.5s ease-in-out infinite alternate;
}
.scn-general-knox-pie-anecdote .dining-wall {
  position: absolute; bottom: 5%; left: 0; right: 0; height: 80%;
  background: linear-gradient(180deg, #3a1a08 0%, #1a0a02 100%);
  border-radius: 0;
  box-shadow: inset 0 0 50px rgba(0,0,0,0.8);
}
.scn-general-knox-pie-anecdote .fire {
  position: absolute; bottom: 20%; left: 5%; width: 25%; height: 40%;
  background: radial-gradient(ellipse at 50% 0%, #ff8c30 0%, #d05010 40%, #701800 80%, transparent 100%);
  border-radius: 50% / 60% 60% 40% 40%;
  animation: gkp-fire 0.8s ease-in-out infinite alternate;
}
.scn-general-knox-pie-anecdote .table {
  position: absolute; bottom: 10%; left: 20%; width: 60%; height: 15%;
  background: linear-gradient(180deg, #5a3a1a 0%, #3a1a08 100%);
  border-radius: 10% 10% 5% 5% / 30% 30% 10% 10%;
  box-shadow: 0 6px 12px rgba(0,0,0,0.6);
  animation: gkp-table 14s ease-in-out infinite;
}
.scn-general-knox-pie-anecdote .pie {
  position: absolute; bottom: 22%; left: 45%; width: 10%; height: 7%;
  background: radial-gradient(ellipse, #b87860 0%, #8a5040 60%, #5a2010 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  box-shadow: 0 3px 6px rgba(0,0,0,0.5);
  animation: gkp-pie 4s ease-in-out infinite alternate;
}
.scn-general-knox-pie-anecdote .general {
  position: absolute; bottom: 10%; left: 35%; width: 18%; height: 60%;
  background: linear-gradient(180deg, #1a0a02 0%, #0a0400 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: gkp-general 5s ease-in-out infinite;
}
.scn-general-knox-pie-anecdote .door {
  position: absolute; bottom: 10%; right: 5%; width: 12%; height: 70%;
  background: linear-gradient(180deg, #4a2a18 0%, #2a1008 100%);
  border-radius: 5% 5% 0 0 / 10% 10% 0 0;
  box-shadow: inset 0 0 10px rgba(0,0,0,0.4);
  animation: gkp-door 8s ease-in-out infinite;
}
.scn-general-knox-pie-anecdote .chloe-hiding {
  position: absolute; bottom: 10%; right: 8%; width: 8%; height: 40%;
  background: linear-gradient(180deg, #1a0a02 0%, #0a0400 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  opacity: 0.7;
  animation: gkp-chloe 6s ease-in-out infinite 1s;
}
@keyframes gkp-bg {
  0% { opacity: 0.8; transform: scale(1); }
  50% { opacity: 1; transform: scale(1.03); }
  100% { opacity: 0.85; transform: scale(0.97); }
}
@keyframes gkp-fire {
  0% { transform: scaleY(1) rotate(0deg); }
  33% { transform: scaleY(1.1) rotate(5deg) translateY(-4px); }
  66% { transform: scaleY(0.9) rotate(-3deg) translateY(2px); }
  100% { transform: scaleY(1) rotate(0deg); }
}
@keyframes gkp-table {
  0% { transform: translateY(0); }
  50% { transform: translateY(-3px); }
  100% { transform: translateY(0); }
}
@keyframes gkp-pie {
  0% { box-shadow: 0 3px 6px rgba(0,0,0,0.5); transform: scale(1); }
  50% { box-shadow: 0 5px 12px rgba(200,100,40,0.4); transform: scale(1.02); }
  100% { box-shadow: 0 3px 6px rgba(0,0,0,0.5); transform: scale(1); }
}
@keyframes gkp-general {
  0% { transform: translateX(0) rotate(0deg); }
  25% { transform: translateX(2px) rotate(2deg); }
  50% { transform: translateX(-1px) rotate(-1deg); }
  75% { transform: translateX(3px) rotate(1deg); }
  100% { transform: translateX(0) rotate(0deg); }
}
@keyframes gkp-door {
  0% { transform: scaleX(1); }
  50% { transform: scaleX(0.95); }
  100% { transform: scaleX(1); }
}
@keyframes gkp-chloe {
  0% { transform: translateX(0) scale(1); opacity: 0.7; }
  50% { transform: translateX(-5px) scale(1.05); opacity: 0.9; }
  100% { transform: translateX(0) scale(1); opacity: 0.7; }
}

.scn-shelby-human-scruples {
  background: linear-gradient(135deg, #2a1e1a 0%, #3d2b24 40%, #1f1512 100%),
              radial-gradient(ellipse at 30% 40%, #4a352c 0%, transparent 60%);
}
.scn-shelby-human-scruples .wall { position:absolute; inset:0; background: linear-gradient(180deg, #2a1e1a 0%, #1f1512 100%); }
.scn-shelby-human-scruples .window-glow { position:absolute; top:8%; left:65%; width:80px; height:100px; background: radial-gradient(circle at center, #c89a6b 0%, #4a352c 70%, transparent 100%); border-radius: 4px; box-shadow: 0 0 40px 20px #6b4937; animation: sh-glow 4s ease-in-out infinite alternate; }
.scn-shelby-human-scruples .desk { position:absolute; bottom:18%; left:20%; right:20%; height:12%; background: linear-gradient(180deg, #4a352c 0%, #2a1e1a 100%); border-radius: 4px; box-shadow: inset 0 4px 8px #1f1512; }
.scn-shelby-human-scruples .lamp { position:absolute; top:45%; left:25%; width:12px; height:30px; background: linear-gradient(180deg, #c89a6b 0%, #8c6a4a 100%); border-radius: 50% 50% 0 0; box-shadow: 0 0 20px 10px #c89a6b, 0 0 40px 20px rgba(200,154,107,0.4); animation: sh-lamp 2s ease-in-out infinite alternate; }
.scn-shelby-human-scruples .shelby-figure { position:absolute; bottom:30%; left:28%; width:40px; height:60px; background: linear-gradient(180deg, #1f1512 0%, #0d0908 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: sh-fig1 6s ease-in-out infinite; }
.scn-shelby-human-scruples .haley-figure { position:absolute; bottom:30%; right:28%; width:42px; height:58px; background: linear-gradient(180deg, #2a1e1a 0%, #1a110e 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: sh-fig2 5s ease-in-out infinite; }
.scn-shelby-human-scruples .curtain { position:absolute; top:0; left:62%; width:26%; height:35%; background: linear-gradient(90deg, #2a1e1a 0%, #3d2b24 50%, #2a1e1a 100%); border-radius: 0 0 30% 30%; filter: blur(2px); animation: sh-curtain 8s ease-in-out infinite alternate; }
.scn-shelby-human-scruples .shadow { position:absolute; bottom:30%; left:20%; right:25%; height:20%; background: radial-gradient(ellipse at 50% 100%, rgba(0,0,0,0.3) 0%, transparent 70%); animation: sh-shadow 10s ease-in-out infinite; }
@keyframes sh-glow { 0% { opacity:0.7; transform:scale(0.95); } 50% { opacity:1; transform:scale(1.05); } 100% { opacity:0.8; transform:scale(0.98); } }
@keyframes sh-lamp { 0% { opacity:0.8; box-shadow: 0 0 15px 5px #c89a6b, 0 0 30px 15px rgba(200,154,107,0.3); } 50% { opacity:1; box-shadow: 0 0 25px 10px #d9a87a, 0 0 50px 25px rgba(217,168,122,0.5); } 100% { opacity:0.85; box-shadow: 0 0 18px 6px #c89a6b, 0 0 35px 18px rgba(200,154,107,0.35); } }
@keyframes sh-fig1 { 0% { transform: translateX(0) translateY(0) rotate(0deg); } 25% { transform: translateX(2px) translateY(-1px) rotate(1deg); } 50% { transform: translateX(0) translateY(0) rotate(-1deg); } 75% { transform: translateX(-2px) translateY(-1px) rotate(1deg); } 100% { transform: translateX(0) translateY(0) rotate(0deg); } }
@keyframes sh-fig2 { 0% { transform: translateX(0) translateY(0) rotate(0deg); } 33% { transform: translateX(-1px) translateY(-2px) rotate(1deg); } 66% { transform: translateX(1px) translateY(0) rotate(-1deg); } 100% { transform: translateX(0) translateY(0) rotate(0deg); } }
@keyframes sh-curtain { 0% { transform: translateX(0) scaleX(1); } 50% { transform: translateX(-5px) scaleX(1.02); } 100% { transform: translateX(5px) scaleX(0.98); } }
@keyframes sh-shadow { 0% { opacity:0.5; transform:translateY(0); } 50% { opacity:0.8; transform:translateY(-3px); } 100% { opacity:0.6; transform:translateY(2px); } }

.scn-haley-on-management {
  background: linear-gradient(180deg, #1f1512 0%, #2a1e1a 40%, #1a110e 100%),
              radial-gradient(ellipse at 60% 30%, #3d2b24 0%, transparent 70%);
}
.scn-haley-on-management .bg-mid { position:absolute; inset:0; background: linear-gradient(135deg, #2a1e1a 0%, #3d2b24 50%, #1f1512 100%); }
.scn-haley-on-management .table { position:absolute; bottom:20%; left:30%; right:30%; height:10%; background: linear-gradient(180deg, #4a352c 0%, #2a1e1a 100%); border-radius: 6px; box-shadow: inset 0 4px 8px #1a110e; }
.scn-haley-on-management .candle { position:absolute; top:50%; right:40%; width:10px; height:40px; background: linear-gradient(180deg, #c89a6b 0%, #8c6a4a 100%); border-radius: 50% 50% 0 0; box-shadow: 0 0 30px 15px #c89a6b; animation: hm-candle 2.5s ease-in-out infinite alternate; }
.scn-haley-on-management .haley-torso { position:absolute; bottom:30%; right:22%; width:45px; height:55px; background: linear-gradient(180deg, #2a1e1a 0%, #1a110e 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: hm-torso1 7s ease-in-out infinite; }
.scn-haley-on-management .haley-arm { position:absolute; bottom:40%; right:28%; width:30px; height:10px; background: #1a110e; border-radius: 50% 50% 40% 40%; transform-origin: left center; animation: hm-arm 3s ease-in-out infinite; }
.scn-haley-on-management .shelby-torso { position:absolute; bottom:30%; left:25%; width:40px; height:58px; background: linear-gradient(180deg, #1a110e 0%, #0d0908 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: hm-torso2 8s ease-in-out infinite; }
.scn-haley-on-management .smoke-a { position:absolute; top:34%; right:38%; width:20px; height:20px; background: radial-gradient(circle, rgba(200,154,107,0.4) 0%, rgba(200,154,107,0) 70%); border-radius: 50%; filter: blur(4px); animation: hm-smoke-a 12s linear infinite; }
.scn-haley-on-management .smoke-b { position:absolute; top:30%; right:36%; width:15px; height:15px; background: radial-gradient(circle, rgba(200,154,107,0.3) 0%, rgba(200,154,107,0) 70%); border-radius: 50%; filter: blur(3px); animation: hm-smoke-b 9s linear infinite; animation-delay: -4s; }
.scn-haley-on-management .dust { position:absolute; top:20%; left:10%; width:4px; height:4px; background: rgba(200,154,107,0.5); border-radius: 50%; box-shadow: 0 0 6px 2px rgba(200,154,107,0.3); animation: hm-dust 15s linear infinite; }
@keyframes hm-candle { 0% { transform: scaleY(0.95); opacity:0.8; } 50% { transform: scaleY(1.05); opacity:1; } 100% { transform: scaleY(0.98); opacity:0.9; } }
@keyframes hm-torso1 { 0% { transform: translateX(0) rotate(0deg); } 33% { transform: translateX(2px) rotate(1deg); } 66% { transform: translateX(-1px) rotate(-1deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes hm-arm { 0% { transform: translateX(0) translateY(0) rotate(-10deg); } 25% { transform: translateX(8px) translateY(2px) rotate(5deg); } 50% { transform: translateX(15px) translateY(0) rotate(-5deg); } 75% { transform: translateX(8px) translateY(-2px) rotate(10deg); } 100% { transform: translateX(0) translateY(0) rotate(-10deg); } }
@keyframes hm-torso2 { 0% { transform: translateX(0) translateY(0) rotate(0deg); } 50% { transform: translateX(-1px) translateY(-2px) rotate(-1deg); } 100% { transform: translateX(0) translateY(0) rotate(0deg); } }
@keyframes hm-smoke-a { 0% { transform: translate(0, 0) scale(1); opacity:0.6; } 50% { transform: translate(-20px, -30px) scale(2.5); opacity:0.2; } 100% { transform: translate(-40px, -60px) scale(4); opacity:0; } }
@keyframes hm-smoke-b { 0% { transform: translate(0, 0) scale(1); opacity:0.5; } 50% { transform: translate(15px, -20px) scale(2); opacity:0.2; } 100% { transform: translate(30px, -40px) scale(3.5); opacity:0; } }
@keyframes hm-dust { 0% { transform: translateY(0) scale(1); opacity:0.8; } 50% { transform: translateY(-80px) scale(2); opacity:0.2; } 100% { transform: translateY(-160px) scale(0.5); opacity:0; } }

.scn-haley-tragic-story {
  background: linear-gradient(180deg, #1a1310 0%, #2a1e1a 40%, #1f1512 100%),
              radial-gradient(ellipse at 50% 80%, #4a352c 0%, transparent 70%);
}
.scn-haley-tragic-story .fireplace { position:absolute; bottom:15%; left:20%; right:20%; height:40%; background: linear-gradient(180deg, #3d2b24 0%, #1f1512 100%); border-radius: 20% 20% 0 0; box-shadow: inset 0 -20px 40px #1a1310; }
.scn-haley-tragic-story .fire-glow { position:absolute; bottom:18%; left:30%; right:30%; height:20%; background: radial-gradient(ellipse at 50% 100%, #c89a6b 0%, #a56e3a 40%, transparent 70%); border-radius: 50%; box-shadow: 0 0 60px 30px #a56e3a; animation: ht-fire 2s ease-in-out infinite alternate; }
.scn-haley-tragic-story .shadow-woman { position:absolute; bottom:35%; left:35%; width:50px; height:70px; background: #1a1310; border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; filter: blur(3px); animation: ht-woman 5s ease-in-out infinite; }
.scn-haley-tragic-story .shadow-baby { position:absolute; bottom:42%; left:38%; width:20px; height:20px; background: #1a1310; border-radius: 50% 50% 40% 40%; filter: blur(2px); animation: ht-baby 5s ease-in-out infinite; }
.scn-haley-tragic-story .shadow-trader { position:absolute; bottom:30%; right:30%; width:55px; height:80px; background: #1a1310; border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; filter: blur(3px); animation: ht-trader 6s ease-in-out infinite; }
.scn-haley-tragic-story .floor { position:absolute; bottom:0; left:0; right:0; height:15%; background: linear-gradient(180deg, #1f1512 0%, #0d0908 100%); border-top: 2px solid #2a1e1a; }
.scn-haley-tragic-story .chair { position:absolute; bottom:15%; left:25%; width:30px; height:50px; background: #2a1e1a; border-radius: 10% 10% 0 0; box-shadow: 0 4px 8px #0d0908; }
@keyframes ht-fire { 0% { opacity:0.7; transform:scale(0.95); } 50% { opacity:1; transform:scale(1.05); } 100% { opacity:0.8; transform:scale(0.98); } }
@keyframes ht-woman { 0% { transform: translateX(0) translateY(0) rotate(0deg); } 25% { transform: translateX(-3px) translateY(2px) rotate(2deg); } 50% { transform: translateX(0) translateY(1px) rotate(-1deg); } 75% { transform: translateX(3px) translateY(0) rotate(-2deg); } 100% { transform: translateX(0) translateY(0) rotate(0deg); } }
@keyframes ht-baby { 0% { transform: translateX(0) translateY(0) scale(1); } 50% { transform: translateX(-2px) translateY(-3px) scale(0.9); } 100% { transform: translateX(0) translateY(0) scale(1); } }
@keyframes ht-trader { 0% { transform: translateX(0) translateY(0) rotate(0deg); } 33% { transform: translateX(2px) translateY(-2px) rotate(1deg); } 66% { transform: translateX(-2px) translateY(0) rotate(-1deg); } 100% { transform: translateX(0) translateY(0) rotate(0deg); } }

.scn-haley-boasts-of-humanity {
  background: linear-gradient(180deg, #2a1e1a 0%, #3d2b24 30%, #1f1512 100%),
              radial-gradient(ellipse at 40% 30%, #4a352c 0%, transparent 60%);
}
.scn-haley-boasts-of-humanity .bg-wall { position:absolute; inset:0; background: linear-gradient(135deg, #2a1e1a 0%, #4a352c 50%, #2a1e1a 100%); }
.scn-haley-boasts-of-humanity .table-round { position:absolute; bottom:18%; left:25%; right:25%; height:12%; background: linear-gradient(180deg, #5a4035 0%, #3d2b24 100%); border-radius: 50% 50% 10% 10%; box-shadow: inset 0 6px 12px #1f1512; }
.scn-haley-boasts-of-humanity .lamp-swing { position:absolute; top:30%; left:40%; width:14px; height:50px; background: linear-gradient(180deg, #c89a6b 0%, #8c6a4a 100%); border-radius: 50% 50% 0 0; transform-origin: top center; box-shadow: 0 0 30px 15px #c89a6b; animation: hb-lamp 4s ease-in-out infinite; }
.scn-haley-boasts-of-humanity .shelby-peeling { position:absolute; bottom:30%; left:20%; width:55px; height:65px; background: linear-gradient(180deg, #1f1512 0%, #0d0908 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: hb-shelby 6s ease-in-out infinite; }
.scn-haley-boasts-of-humanity .orange { position:absolute; bottom:35%; left:27%; width:18px; height:18px; background: radial-gradient(circle at 30% 30%, #e8a050 0%, #c07030 100%); border-radius: 50%; box-shadow: 0 2px 4px #1a1310; animation: hb-orange 2s ease-in-out infinite; }
.scn-haley-boasts-of-humanity .peel-curve { position:absolute; bottom:33%; left:29%; width:8px; height:30px; background: linear-gradient(180deg, #e8a050 0%, #c07030 100%); border-radius: 50% 50% 0 0; transform-origin: top center; animation: hb-peel 3s ease-in-out infinite; }
.scn-haley-boasts-of-humanity .haley-funny { position:absolute; bottom:30%; right:25%; width:48px; height:60px; background: linear-gradient(180deg, #2a1e1a 0%, #1a110e 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: hb-haley 4s ease-in-out infinite; }
.scn-haley-boasts-of-humanity .hat-flop { position:absolute; top:22%; right:28%; width:30px; height:10px; background: #1a110e; border-radius: 50% 50% 0 0; transform-origin: bottom center; animation: hb-hat 1.5s ease-in-out infinite alternate; }
@keyframes hb-lamp { 0% { transform: rotate(-5deg); } 50% { transform: rotate(5deg); } 100% { transform: rotate(-5deg); } }
@keyframes hb-shelby { 0% { transform: translateX(0) translateY(0) rotate(0deg); } 20% { transform: translateX(3px) translateY(-2px) rotate(3deg); } 40% { transform: translateX(0) translateY(1px) rotate(-2deg); } 60% { transform: translateX(-3px) translateY(-1px) rotate(2deg); } 80% { transform: translateX(2px) translateY(0) rotate(-1deg); } 100% { transform: translateX(0) translateY(0) rotate(0deg); } }
@keyframes hb-orange { 0% { transform: scale(1) translateY(0); } 50% { transform: scale(1.1) translateY(-3px); } 100% { transform: scale(1) translateY(0); } }
@keyframes hb-peel { 0% { transform: rotate(0deg) scaleY(1); } 25% { transform: rotate(20deg) scaleY(1.2); } 50% { transform: rotate(0deg) scaleY(1); } 75% { transform: rotate(-15deg) scaleY(1.1); } 100% { transform: rotate(0deg) scaleY(1); } }
@keyframes hb-haley { 0% { transform: translateX(0) translateY(0) rotate(0deg); } 25% { transform: translateX(-2px) translateY(-2px) rotate(2deg); } 50% { transform: translateX(0) translateY(0) rotate(-1deg); } 75% { transform: translateX(2px) translateY(-1px) rotate(1deg); } 100% { transform: translateX(0) translateY(0) rotate(0deg); } }
@keyframes hb-hat { 0% { transform: rotate(-10deg) scaleX(1); } 50% { transform: rotate(10deg) scaleX(1.1); } 100% { transform: rotate(-10deg) scaleX(1); } }

/* legree-summons-tom */
.scn-legree-summons-tom {
  background: linear-gradient(180deg, #f4c278 0%, #deb887 30%, #8b6f47 70%, #3a2a1a 100%) , radial-gradient(ellipse at 50% 0%, #fff7e0 0%, transparent 60%);
}
.scn-legree-summons-tom .sky {
  position: absolute; inset: 0 0 55% 0;
  background: linear-gradient(180deg, #f4c278 0%, #deb887 40%, transparent 100%);
  animation: lss-sky 14s ease-in-out infinite alternate;
}
.scn-legree-summons-tom .sun {
  position: absolute; top: 8%; left: 70%; width: 60px; height: 60px;
  background: radial-gradient(circle, #fff7e0 0%, #f4c278 40%, transparent 80%);
  border-radius: 50%;
  box-shadow: 0 0 40px 20px rgba(244,194,120,0.5);
  animation: lss-sun 20s ease-in-out infinite alternate;
}
.scn-legree-summons-tom .ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 55%;
  background: linear-gradient(180deg, #8b6f47 0%, #3a2a1a 100%);
  border-radius: 40% 60% 0 0 / 20% 30% 0 0;
  animation: lss-ground 10s ease-in-out infinite alternate;
}
.scn-legree-summons-tom .figure-left {
  position: absolute; bottom: 25%; left: 15%; width: 30px; height: 70px;
  background: linear-gradient(180deg, #2a1a0a 0%, #0a0500 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: lss-fig-l 4s ease-in-out infinite;
}
.scn-legree-summons-tom .figure-right {
  position: absolute; bottom: 25%; right: 15%; width: 34px; height: 74px;
  background: linear-gradient(180deg, #2a1a0a 0%, #0a0500 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: lss-fig-r 4.5s ease-in-out infinite;
}
.scn-legree-summons-tom .tom {
  position: absolute; bottom: 22%; left: 50%; width: 26px; height: 50px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0a00 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  transform: translateX(-50%);
  animation: lss-tom 6s ease-in-out infinite;
}
@keyframes lss-sky {
  0% { opacity: 0.8; }
  50% { opacity: 1; }
  100% { opacity: 0.7; }
}
@keyframes lss-sun {
  0% { transform: translateX(0) scale(1); }
  50% { transform: translateX(-10px) scale(1.05); }
  100% { transform: translateX(5px) scale(0.95); }
}
@keyframes lss-ground {
  0% { transform: translateY(0); }
  50% { transform: translateY(-4px); }
  100% { transform: translateY(2px); }
}
@keyframes lss-fig-l {
  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 lss-fig-r {
  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 lss-tom {
  0% { transform: translateX(-50%) translateY(0) rotate(0deg); }
  33% { transform: translateX(-50%) translateY(-2px) rotate(-3deg); }
  66% { transform: translateX(-50%) translateY(1px) rotate(2deg); }
  100% { transform: translateX(-50%) translateY(0) rotate(0deg); }
}

/* tom-accepts-message */
.scn-tom-accepts-message {
  background: linear-gradient(180deg, #f0d9b5 0%, #e0c9a5 40%, #c4a17a 70%, #9b7b5a 100%), radial-gradient(ellipse at 50% 20%, #fff8e7 0%, transparent 70%);
}
.scn-tom-accepts-message .sky {
  position: absolute; inset: 0 0 50% 0;
  background: linear-gradient(180deg, #f0d9b5 0%, #e0c9a5 60%, transparent 100%);
  animation: tam-sky 16s ease-in-out infinite alternate;
}
.scn-tom-accepts-message .rays {
  position: absolute; top: 5%; left: 45%; width: 80px; height: 200px;
  background: linear-gradient(180deg, rgba(255,230,180,0.6) 0%, transparent 100%);
  border-radius: 50%;
  filter: blur(12px);
  transform-origin: top center;
  animation: tam-rays 12s ease-in-out infinite alternate;
}
.scn-tom-accepts-message .ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 50%;
  background: linear-gradient(180deg, #c4a17a 0%, #7a5a3a 100%);
  border-radius: 30% 70% 0 0 / 50% 50% 0 0;
  animation: tam-ground 8s ease-in-out infinite alternate;
}
.scn-tom-accepts-message .tom {
  position: absolute; bottom: 20%; left: 50%; width: 30px; height: 50px;
  background: linear-gradient(180deg, #5a3a1a 0%, #2a1a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform: translateX(-50%);
  transform-origin: bottom center;
  animation: tam-tom 10s ease-in-out infinite;
}
.scn-tom-accepts-message .hands {
  position: absolute; bottom: 32%; left: 50%; width: 20px; height: 30px;
  background: radial-gradient(ellipse, #b08050 0%, #8a6040 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%;
  transform: translateX(-50%);
  animation: tam-hands 6s ease-in-out infinite;
}
.scn-tom-accepts-message .basket {
  position: absolute; bottom: 15%; left: 40%; width: 28px; height: 18px;
  background: linear-gradient(180deg, #9b7b5a 0%, #5a3a1a 100%);
  border-radius: 20% 20% 30% 30%;
  animation: tam-basket 14s ease-in-out infinite alternate;
}
.scn-tom-accepts-message .glow {
  position: absolute; bottom: 40%; left: 50%; width: 40px; height: 60px;
  background: radial-gradient(circle, rgba(255,230,180,0.5) 0%, transparent 70%);
  transform: translateX(-50%);
  animation: tam-glow 4s ease-in-out infinite alternate;
}
@keyframes tam-sky {
  0% { opacity: 0.9; }
  50% { opacity: 1; }
  100% { opacity: 0.8; }
}
@keyframes tam-rays {
  0% { transform: rotate(-5deg) scaleY(1); }
  50% { transform: rotate(3deg) scaleY(1.1); }
  100% { transform: rotate(-2deg) scaleY(0.95); }
}
@keyframes tam-ground {
  0% { transform: translateY(0); }
  50% { transform: translateY(-3px); }
  100% { transform: translateY(2px); }
}
@keyframes tam-tom {
  0% { transform: translateX(-50%) translateY(0) rotate(0deg); }
  20% { transform: translateX(-50%) translateY(-2px) rotate(-2deg); }
  40% { transform: translateX(-50%) translateY(-4px) rotate(3deg); }
  60% { transform: translateX(-50%) translateY(-2px) rotate(-1deg); }
  80% { transform: translateX(-50%) translateY(0) rotate(1deg); }
  100% { transform: translateX(-50%) translateY(0) rotate(0deg); }
}
@keyframes tam-hands {
  0% { transform: translateX(-50%) scaleY(1) rotate(0deg); }
  30% { transform: translateX(-50%) scaleY(1.1) rotate(5deg); }
  60% { transform: translateX(-50%) scaleY(0.95) rotate(-3deg); }
  100% { transform: translateX(-50%) scaleY(1) rotate(0deg); }
}
@keyframes tam-basket {
  0% { transform: translateX(0) translateY(0); }
  50% { transform: translateX(2px) translateY(-1px); }
  100% { transform: translateX(-2px) translateY(1px); }
}
@keyframes tam-glow {
  0% { opacity: 0.3; transform: translateX(-50%) scale(0.9); }
  50% { opacity: 0.7; transform: translateX(-50%) scale(1.1); }
  100% { opacity: 0.4; transform: translateX(-50%) scale(1); }
}

/* tom-dragged-away */
.scn-tom-dragged-away {
  background: linear-gradient(180deg, #e8c478 0%, #c8a050 40%, #8a6a3a 70%, #4a2a1a 100%), radial-gradient(ellipse at 60% 30%, #fff0c0 0%, transparent 60%);
}
.scn-tom-dragged-away .sky {
  position: absolute; inset: 0 0 45% 0;
  background: linear-gradient(180deg, #e8c478 0%, #c8a050 50%, transparent 100%);
  animation: tdr-sky 10s ease-in-out infinite alternate;
}
.scn-tom-dragged-away .ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 45%;
  background: linear-gradient(180deg, #8a6a3a 0%, #3a2a1a 100%);
  border-radius: 50% 50% 0 0 / 40% 40% 0 0;
  animation: tdr-ground 6s ease-in-out infinite alternate;
}
.scn-tom-dragged-away .tom-body {
  position: absolute; bottom: 20%; left: 30%; width: 40px; height: 60px;
  background: linear-gradient(180deg, #5a3a1a 0%, #1a0a00 100%);
  border-radius: 40% 40% 50% 50% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: tdr-tombody 3s ease-in-out infinite;
}
.scn-tom-dragged-away .tom-arm {
  position: absolute; bottom: 35%; left: 22%; width: 16px; height: 50px;
  background: linear-gradient(180deg, #5a3a1a 0%, #2a1a0a 100%);
  border-radius: 30% 30% 20% 20%;
  transform-origin: top center;
  transform: rotate(30deg);
  animation: tdr-tomarm 2.5s ease-in-out infinite;
}
.scn-tom-dragged-away .quimbo-arm {
  position: absolute; bottom: 25%; right: 25%; width: 20px; height: 70px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0a00 100%);
  border-radius: 30% 30% 20% 20%;
  transform-origin: top right;
  transform: rotate(-40deg);
  animation: tdr-quimboarm 3s ease-in-out infinite;
}
.scn-tom-dragged-away .dust {
  position: absolute; bottom: 10%; left: 20%; width: 100px; height: 20px;
  background: radial-gradient(ellipse, rgba(200,160,80,0.5) 0%, transparent 70%);
  filter: blur(6px);
  animation: tdr-dust 4s ease-in-out infinite;
}
.scn-tom-dragged-away .shadow {
  position: absolute; bottom: 0; left: 15%; width: 120px; height: 30px;
  background: rgba(0,0,0,0.3);
  border-radius: 50%;
  filter: blur(8px);
  animation: tdr-shadow 5s ease-in-out infinite alternate;
}
@keyframes tdr-sky {
  0% { opacity: 0.8; }
  50% { opacity: 1; }
  100% { opacity: 0.6; }
}
@keyframes tdr-ground {
  0% { transform: translateY(0); }
  50% { transform: translateY(-2px); }
  100% { transform: translateY(1px); }
}
@keyframes tdr-tombody {
  0% { transform: translateX(0) rotate(0deg); }
  25% { transform: translateX(5px) rotate(5deg); }
  50% { transform: translateX(10px) rotate(10deg); }
  75% { transform: translateX(15px) rotate(5deg); }
  100% { transform: translateX(20px) rotate(0deg); }
}
@keyframes tdr-tomarm {
  0% { transform: rotate(30deg) scaleY(1); }
  25% { transform: rotate(40deg) scaleY(1.1); }
  50% { transform: rotate(20deg) scaleY(0.95); }
  75% { transform: rotate(50deg) scaleY(1.05); }
  100% { transform: rotate(30deg) scaleY(1); }
}
@keyframes tdr-quimboarm {
  0% { transform: rotate(-40deg) translateX(0); }
  25% { transform: rotate(-30deg) translateX(-5px); }
  50% { transform: rotate(-50deg) translateX(5px); }
  75% { transform: rotate(-35deg) translateX(-3px); }
  100% { transform: rotate(-40deg) translateX(0); }
}
@keyframes tdr-dust {
  0% { transform: translateX(0) scale(1); opacity: 0.3; }
  50% { transform: translateX(10px) scale(1.5); opacity: 0.6; }
  100% { transform: translateX(20px) scale(1); opacity: 0.2; }
}
@keyframes tdr-shadow {
  0% { transform: translateX(0) scaleX(1); }
  50% { transform: translateX(15px) scaleX(1.2); }
  100% { transform: translateX(25px) scaleX(0.9); }
}

/* legree-confronts-tom */
.scn-legree-confronts-tom {
  background: linear-gradient(180deg, #2a1a0a 0%, #1a0a00 40%, #0a0500 70%, #000000 100%), radial-gradient(ellipse at 60% 20%, #5a3a1a 0%, transparent 70%);
}
.scn-legree-confronts-tom .wall-back {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, #2a1a0a 0%, #1a0a00 60%, #0a0500 100%);
  animation: lct-wall 20s ease-in-out infinite alternate;
}
.scn-legree-confronts-tom .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 35%;
  background: linear-gradient(180deg, #1a0a00 0%, #0a0500 100%);
  border-radius: 10% 10% 0 0;
  box-shadow: inset 0 10px 20px rgba(0,0,0,0.5);
  animation: lct-floor 8s ease-in-out infinite alternate;
}
.scn-legree-confronts-tom .window {
  position: absolute; top: 15%; left: 65%; width: 40px; height: 60px;
  background: radial-gradient(circle, #f4c278 0%, #8a6a3a 60%, transparent 100%);
  border-radius: 10%;
  box-shadow: 0 0 30px 10px #f4c278, 0 0 60px 20px rgba(244,194,120,0.3);
  animation: lct-window 6s ease-in-out infinite alternate;
}
.scn-legree-confronts-tom .legree {
  position: absolute; bottom: 30%; right: 20%; width: 40px; height: 80px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0a00 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: lct-legree 4s ease-in-out infinite;
}
.scn-legree-confronts-tom .tom {
  position: absolute; bottom: 25%; left: 40%; width: 30px; height: 55px;
  background: linear-gradient(180deg, #4a2a1a 0%, #1a0a00 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: lct-tom 5s ease-in-out infinite;
}
.scn-legree-confronts-tom .collar {
  position: absolute; bottom: 45%; left: 42%; width: 20px; height: 10px;
  background: #5a3a1a;
  border-radius: 20%;
  box-shadow: 0 2px 4px rgba(0,0,0,0.8);
  animation: lct-collar 3s ease-in-out infinite;
}
@keyframes lct-wall {
  0% { opacity: 0.9; }
  50% { opacity: 1; }
  100% { opacity: 0.8; }
}
@keyframes lct-floor {
  0% { transform: translateY(0); }
  50% { transform: translateY(-1px); }
  100% { transform: translateY(2px); }
}
@keyframes lct-window {
  0% { box-shadow: 0 0 20px 6px #f4c278, 0 0 40px 12px rgba(244,194,120,0.3); opacity: 0.7; }
  50% { box-shadow: 0 0 40px 14px #f4c278, 0 0 80px 24px rgba(244,194,120,0.6); opacity: 1; }
  100% { box-shadow: 0 0 25px 8px #f4c278, 0 0 50px 16px rgba(244,194,120,0.4); opacity: 0.8; }
}
@keyframes lct-legree {
  0% { transform: translateY(0) rotate(0deg); }
  20% { transform: translateY(-2px) rotate(2deg); }
  40% { transform: translateY(1px) rotate(-3deg); }
  60% { transform: translateY(-1px) rotate(1deg); }
  80% { transform: translateY(2px) rotate(-1deg); }
  100% { transform: translateY(0) rotate(0deg); }
}
@keyframes lct-tom {
  0% { transform: translateY(0) scale(1); }
  30% { transform: translateY(-3px) scale(0.95); }
  60% { transform: translateY(2px) scale(1.02); }
  100% { transform: translateY(0) scale(1); }
}
@keyframes lct-collar {
  0% { transform: translateX(0) scaleX(1); }
  30% { transform: translateX(-2px) scaleX(1.1); }
  60% { transform: translateX(2px) scaleX(0.9); }
  100% { transform: translateX(0) scaleX(1); }
}

.scn-topsy-with-miss-ophelia {
  background: linear-gradient(180deg, #f9e5c8 0%, #e0c8a0 50%, #c8a878 100%), radial-gradient(ellipse at 50% 100%, #d6b88a 0%, transparent 70%);
}
.scn-topsy-with-miss-ophelia .room-bg {
  position:absolute; inset:0; background: linear-gradient(135deg, rgba(255,235,200,0.25) 0%, rgba(200,160,100,0.1) 100%);
}
.scn-topsy-with-miss-ophelia .window {
  position:absolute; top:10%; left:70%; width:20%; height:35%;
  background: radial-gradient(ellipse at 50% 50%, #ffe9c0 0%, #f0d090 40%, transparent 70%);
  border-radius: 20% / 10%; box-shadow: 0 0 60px 30px rgba(240,200,120,0.3);
  animation: tmo-window 8s ease-in-out infinite alternate;
}
.scn-topsy-with-miss-ophelia .table {
  position:absolute; bottom:20%; left:30%; width:30%; height:4%;
  background: linear-gradient(180deg, #a08050 0%, #705030 100%);
  border-radius: 8px; box-shadow: 0 6px 12px rgba(0,0,0,0.3);
  animation: tmo-table 12s ease-in-out infinite;
}
.scn-topsy-with-miss-ophelia .figure-ophelia {
  position:absolute; bottom:20%; left:35%; width:8%; height:30%;
  background: linear-gradient(180deg, #b0a090 0%, #7a6a5a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center; box-shadow: inset -6px 0 8px rgba(0,0,0,0.4);
  animation: tmo-fig1 10s ease-in-out infinite;
}
.scn-topsy-with-miss-ophelia .figure-topsy {
  position:absolute; bottom:20%; left:44%; width:6%; height:18%;
  background: linear-gradient(180deg, #6a5a4a 0%, #3a2a1a 100%);
  border-radius: 50% 50% 40% 40% / 50% 50% 30% 30%;
  transform-origin: bottom center; box-shadow: inset -4px 0 6px rgba(0,0,0,0.5);
  animation: tmo-fig2 6s ease-in-out infinite;
}
.scn-topsy-with-miss-ophelia .chair {
  position:absolute; bottom:20%; left:54%; width:8%; height:22%;
  background: linear-gradient(180deg, #8a6a40 0%, #5a3a20 100%);
  border-radius: 10% 10% 5% 5%; box-shadow: 0 4px 8px rgba(0,0,0,0.3);
}
.scn-topsy-with-miss-ophelia .sunbeam {
  position:absolute; top:8%; left:68%; width:30%; height:60%;
  background: linear-gradient(180deg, rgba(255,230,160,0.15) 0%, transparent 100%);
  clip-path: polygon(0% 0%, 100% 0%, 85% 100%, 15% 100%);
  animation: tmo-beam 14s ease-in-out infinite alternate;
}
.scn-topsy-with-miss-ophelia .carpet {
  position:absolute; bottom:18%; left:20%; width:60%; height:6%;
  background: linear-gradient(90deg, #9a8a6a 0%, #bca87a 30%, #8a6a4a 70%, #9a8a6a 100%);
  border-radius: 50% / 100% 100% 0 0; opacity:0.7;
}
@keyframes tmo-window { 0% { opacity:0.8; transform: scale(1); } 50% { opacity:1; transform: scale(1.02); } 100% { opacity:0.85; transform: scale(1); } }
@keyframes tmo-table { 0% { transform: translateY(0) } 50% { transform: translateY(-2px) } 100% { transform: translateY(0) } }
@keyframes tmo-fig1 { 0% { transform: translateX(0) rotate(-2deg) } 50% { transform: translateX(3px) rotate(1deg) } 100% { transform: translateX(0) rotate(0) } }
@keyframes tmo-fig2 { 0% { transform: translateX(0) translateY(0) } 25% { transform: translateX(4px) translateY(-1px) } 50% { transform: translateX(0) translateY(0) } 75% { transform: translateX(-3px) translateY(-1px) } 100% { transform: translateX(0) translateY(0) } }
@keyframes tmo-beam { 0% { opacity:0.3; transform: translateX(-2px); } 50% { opacity:0.6; transform: translateX(2px); } 100% { opacity:0.4; transform: translateX(-1px); } }

.scn-cassys-son-found {
  background: linear-gradient(180deg, #b8d4e8 0%, #e0f0f8 40%, #d0e0f0 100%), radial-gradient(ellipse at 50% 0%, #ffe8b0 0%, transparent 60%);
}
.scn-cassys-son-found .sky {
  position:absolute; inset:0 0 45% 0; background: linear-gradient(180deg, #d8e8f0 0%, #b8c8d8 100%);
}
.scn-cassys-son-found .hills {
  position:absolute; bottom:40%; left:0; right:0; height:15%;
  background: linear-gradient(180deg, #7a9a6a 0%, #4a6a3a 100%);
  border-radius: 60% 40% 0 0 / 100% 80% 0 0; box-shadow: inset 0 6px 12px rgba(0,0,0,0.3);
}
.scn-cassys-son-found .path {
  position:absolute; bottom:30%; left:45%; width:10%; height:15%;
  background: linear-gradient(180deg, #c8b890 0%, #a09070 100%);
  clip-path: polygon(30% 0%, 70% 0%, 60% 100%, 40% 100%);
}
.scn-cassys-son-found .figure {
  position:absolute; bottom:30%; left:48%; width:5%; height:20%;
  background: linear-gradient(180deg, #3a3a2a 0%, #1a1a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: csf-walk 10s ease-in-out infinite alternate;
}
.scn-cassys-son-found .house {
  position:absolute; bottom:38%; left:55%; width:10%; height:10%;
  background: linear-gradient(180deg, #b09878 0%, #806040 100%);
  border-radius: 10% 10% 4% 4%; box-shadow: 0 4px 8px rgba(0,0,0,0.3);
  animation: csf-house 20s ease-in-out infinite;
}
.scn-cassys-son-found .tree {
  position:absolute; bottom:40%; left:30%; width:6%; height:18%;
  background: linear-gradient(180deg, #4a6a2a 0%, #2a4a1a 100%);
  border-radius: 50% 50% 10% 10% / 80% 80% 20% 20%;
  animation: csf-tree 14s ease-in-out infinite alternate;
}
.scn-cassys-son-found .sun-glow {
  position:absolute; top:5%; left:20%; width:12%; height:12%;
  background: radial-gradient(circle, #ffe8a0 0%, #ffd070 40%, transparent 80%);
  border-radius: 50%; box-shadow: 0 0 80px 40px rgba(255,200,80,0.3);
  animation: csf-sun 16s ease-in-out infinite alternate;
}
.scn-cassys-son-found .cloud {
  position:absolute; top:12%; left:60%; width:15%; height:5%;
  background: rgba(255,255,255,0.5); border-radius: 50%; filter: blur(10px);
  animation: csf-cloud 30s linear infinite;
}
@keyframes csf-walk { 0% { transform: translateX(0) translateY(0) rotate(-2deg) } 50% { transform: translateX(8px) translateY(-3px) rotate(2deg) } 100% { transform: translateX(16px) translateY(0) rotate(-1deg) } }
@keyframes csf-house { 0% { transform: scale(1) } 50% { transform: scale(1.03) translateY(-2px) } 100% { transform: scale(1) } }
@keyframes csf-tree { 0% { transform: rotate(-3deg) } 50% { transform: rotate(2deg) } 100% { transform: rotate(-1deg) } }
@keyframes csf-sun { 0% { opacity:0.6; transform: scale(0.95); } 50% { opacity:1; transform: scale(1.05); } 100% { opacity:0.7; transform: scale(1); } }
@keyframes csf-cloud { 0% { transform: translateX(0); } 100% { transform: translateX(-200px); } }

.scn-george-shelby-returns-home {
  background: linear-gradient(180deg, #d0e0f0 0%, #f0f8ff 30%, #d8e8f0 100%), radial-gradient(ellipse at 50% 0%, #fff0c0 0%, transparent 50%);
}
.scn-george-shelby-returns-home .sky {
  position:absolute; inset:0 0 40% 0; background: linear-gradient(180deg, #e0f0ff 0%, #c0d8e8 100%);
  animation: gsr-sky 20s ease-in-out infinite alternate;
}
.scn-george-shelby-returns-home .lawn {
  position:absolute; bottom:0; left:0; right:0; height:40%;
  background: linear-gradient(180deg, #8ab878 0%, #6a9858 100%);
  border-radius: 30% 70% 0 0 / 20% 40% 0 0;
}
.scn-george-shelby-returns-home .house {
  position:absolute; bottom:30%; left:50%; width:18%; height:18%;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #b8a080 0%, #908060 100%);
  border-radius: 8% 8% 4% 4%; box-shadow: 0 8px 16px rgba(0,0,0,0.2);
  animation: gsr-house 12s ease-in-out infinite;
}
.scn-george-shelby-returns-home .figure {
  position:absolute; bottom:28%; left:42%; width:5%; height:18%;
  background: linear-gradient(180deg, #4a4a3a 0%, #2a2a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: gsr-figure 14s ease-in-out infinite alternate;
}
.scn-george-shelby-returns-home .gate {
  position:absolute; bottom:30%; left:46%; width:1.5%; height:12%;
  background: #8a7a5a; border-radius: 2px; box-shadow: 6px 0 0 #8a7a5a, 12px 0 0 #8a7a5a;
}
.scn-george-shelby-returns-home .tree {
  position:absolute; bottom:33%; left:25%; width:8%; height:25%;
  background: linear-gradient(180deg, #3a6a2a 0%, #2a4a1a 100%);
  border-radius: 50% 50% 10% 10% / 90% 90% 10% 10%;
  animation: gsr-tree 18s ease-in-out infinite alternate;
}
.scn-george-shelby-returns-home .path {
  position:absolute; bottom:28%; left:40%; width:12%; height:4%;
  background: linear-gradient(90deg, #c8b890 0%, #a09070 100%);
  border-radius: 50% / 100% 100% 0 0;
}
.scn-george-shelby-returns-home .bird {
  position:absolute; top:15%; left:30%; width:4%; height:3%;
  background: #3a3a2a; border-radius: 50% 50% 0 0; box-shadow: 6px 0 0 #3a3a2a;
  animation: gsr-bird 25s ease-in-out infinite;
}
@keyframes gsr-sky { 0% { opacity:0.85; } 50% { opacity:1; } 100% { opacity:0.9; } }
@keyframes gsr-house { 0% { transform: translateX(-50%) scale(1); } 50% { transform: translateX(-50%) scale(1.02) translateY(-2px); } 100% { transform: translateX(-50%) scale(1); } }
@keyframes gsr-figure { 0% { transform: translateX(0) translateY(0) rotate(-1deg) } 50% { transform: translateX(10px) translateY(-2px) rotate(2deg) } 100% { transform: translateX(20px) translateY(0) rotate(0) } }
@keyframes gsr-tree { 0% { transform: rotate(-4deg) } 50% { transform: rotate(3deg) } 100% { transform: rotate(-2deg) } }
@keyframes gsr-bird { 0% { transform: translate(0,0) rotate(0) } 25% { transform: translate(20px,-10px) rotate(-10deg) } 50% { transform: translate(40px,0) rotate(5deg) } 75% { transform: translate(60px,-8px) rotate(-5deg) } 100% { transform: translate(80px,0) rotate(0) } }

.scn-chloe-preparing {
  background: radial-gradient(ellipse at 50% 80%, #d8753a 0%, #8a3a1a 40%, #2a1a0a 100%), linear-gradient(180deg, #1a0a00 0%, #2a1a0a 50%, #3a2a1a 100%);
}
.scn-chloe-preparing .room-bg {
  position:absolute; inset:0; background: linear-gradient(180deg, transparent 0%, rgba(0,0,0,0.4) 100%);
}
.scn-chloe-preparing .fireplace {
  position:absolute; bottom:15%; left:10%; width:20%; height:40%;
  background: linear-gradient(180deg, #4a2a1a 0%, #1a0a00 100%);
  border-radius: 20% 20% 5% 5%; box-shadow: inset 0 0 30px rgba(200,80,30,0.4);
  animation: cp-fire 4s ease-in-out infinite alternate;
}
.scn-chloe-preparing .table {
  position:absolute; bottom:20%; left:40%; width:30%; height:6%;
  background: linear-gradient(180deg, #b08860 0%, #806040 100%);
  border-radius: 8px; box-shadow: 0 6px 12px rgba(0,0,0,0.5);
}
.scn-chloe-preparing .figure-chloe {
  position:absolute; bottom:18%; left:50%; width:10%; height:28%;
  background: linear-gradient(180deg, #a08070 0%, #604030 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center; box-shadow: inset -6px 0 10px rgba(0,0,0,0.4);
  animation: cp-chloe 12s ease-in-out infinite;
}
.scn-chloe-preparing .chair {
  position:absolute; bottom:20%; left:60%; width:8%; height:20%;
  background: linear-gradient(180deg, #6a4a2a 0%, #4a2a1a 100%);
  border-radius: 10% 10% 5% 5%; box-shadow: 0 4px 8px rgba(0,0,0,0.4);
}
.scn-chloe-preparing .dishes {
  position:absolute; bottom:22%; left:42%; width:4%; height:3%;
  background: #c8b8a0; border-radius: 50%; box-shadow: 8px 0 0 #c8b8a0, 16px 0 0 #c8b8a0;
  animation: cp-dishes 8s ease-in-out infinite alternate;
}
.scn-chloe-preparing .candle {
  position:absolute; bottom:24%; left:35%; width:2%; height:8%;
  background: linear-gradient(180deg, #f0e0c0 0%, #c8a880 100%);
  border-radius: 2px; box-shadow: 0 0 12px 4px rgba(255,200,100,0.5);
}
.scn-chloe-preparing .glow {
  position:absolute; bottom:15%; left:0; right:0; height:50%;
  background: radial-gradient(ellipse at 50% 100%, rgba(210,110,40,0.25) 0%, transparent 70%);
  animation: cp-glow 6s ease-in-out infinite alternate;
}
@keyframes cp-fire { 0% { box-shadow: inset 0 0 20px rgba(200,80,30,0.3); opacity:0.9; } 50% { box-shadow: inset 0 0 40px rgba(200,80,30,0.6); opacity:1; } 100% { box-shadow: inset 0 0 25px rgba(200,80,30,0.4); opacity:0.95; } }
@keyframes cp-chloe { 0% { transform: translateX(0) rotate(-2deg) } 50% { transform: translateX(3px) rotate(2deg) } 100% { transform: translateX(0) rotate(-1deg) } }
@keyframes cp-dishes { 0% { transform: translateY(0) } 50% { transform: translateY(-2px) } 100% { transform: translateY(0) } }
@keyframes cp-glow { 0% { opacity:0.5; } 50% { opacity:0.8; } 100% { opacity:0.6; } }

/* ----- scene: item-perfect-pound-cake (pc) ----- */
.scn-item-perfect-pound-cake { background: linear-gradient(180deg, #1f0f05 0%, #3a1f10 40%, #5a2f18 70%, #7a4525 100%), radial-gradient(ellipse at 50% 85%, #ff8c42 0%, transparent 65%); }
.scn-item-perfect-pound-cake .pc-wall   { position:absolute; inset:0 0 50% 0; background: linear-gradient(180deg, #2a1a0a 0%, #1f0f05 100%); animation: pc-wall 12s ease-in-out infinite alternate; }
.scn-item-perfect-pound-cake .pc-table  { position:absolute; bottom:0; left:5%; right:5%; height:45%; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius: 10% 10% 0 0 / 20% 20% 0 0; box-shadow: 0 -4px 12px rgba(0,0,0,.6); animation: pc-table 8s ease-in-out infinite; }
.scn-item-perfect-pound-cake .pc-plate  { position:absolute; bottom:30%; left:50%; width:40%; height:12%; transform:translateX(-50%); background: radial-gradient(ellipse, #8a7a5a 0%, #5a4a2a 70%); border-radius: 50%; box-shadow: 0 4px 8px rgba(0,0,0,.4); animation: pc-plate 6s ease-in-out infinite; }
.scn-item-perfect-pound-cake .pc-cake   { position:absolute; bottom:32%; left:50%; width:25%; height:20%; transform:translateX(-50%); background: linear-gradient(180deg, #c89050 0%, #a06830 50%, #804820 100%); border-radius: 40% 40% 20% 20% / 60% 60% 30% 30%; box-shadow: 0 6px 14px rgba(0,0,0,.5); animation: pc-cake 4s ease-in-out infinite; }
.scn-item-perfect-pound-cake .pc-steam  { position:absolute; bottom:52%; left:50%; width:12%; height:18%; transform:translateX(-50%); background: radial-gradient(ellipse, rgba(200,180,160,.3) 0%, transparent 70%); filter: blur(4px); animation: pc-steam 5s ease-in-out infinite; }
.scn-item-perfect-pound-cake .pc-fire   { position:absolute; bottom:0; left:10%; width:25%; height:35%; background: radial-gradient(ellipse at 50% 100%, #ff8c42 0%, #ff6630 30%, #cc3300 60%, transparent 80%); border-radius: 50%; opacity:.5; animation: pc-fire 3s ease-in-out infinite alternate; }
.scn-item-perfect-pound-cake .pc-hand   { position:absolute; bottom:42%; left:65%; width:10%; height:20%; background: linear-gradient(180deg, #3a2a1a 0%, #1f0f05 100%); border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%; transform-origin: bottom right; animation: pc-hand 6s ease-in-out infinite; }

@keyframes pc-wall   { 0% { opacity:.9 } 50% { opacity:1 } 100% { opacity:.85 } }
@keyframes pc-table  { 0% { transform: translateY(0) } 50% { transform: translateY(-2px) } 100% { transform: translateY(0) } }
@keyframes pc-plate  { 0% { transform: translateX(-50%) scale(1) } 50% { transform: translateX(-50%) scale(1.02) rotate(1deg) } 100% { transform: translateX(-50%) scale(1) } }
@keyframes pc-cake   { 0% { transform: translateX(-50%) translateY(0) rotate(0) } 50% { transform: translateX(-50%) translateY(-3px) rotate(-2deg) } 100% { transform: translateX(-50%) translateY(0) rotate(0) } }
@keyframes pc-steam  { 0% { transform: translateX(-50%) translateY(0) scale(1); opacity:.3 } 50% { transform: translateX(-50%) translateY(-20px) scale(1.5); opacity:.1 } 100% { transform: translateX(-50%) translateY(-40px) scale(2); opacity:0 } }
@keyframes pc-fire   { 0% { opacity:.3; transform: scaleX(.95) scaleY(1) } 50% { opacity:.6; transform: scaleX(1.05) scaleY(1.1) } 100% { opacity:.4; transform: scaleX(1) scaleY(.95) } }
@keyframes pc-hand   { 0% { transform: rotate(-10deg) translateX(0) } 50% { transform: rotate(5deg) translateX(4px) } 100% { transform: rotate(-10deg) translateX(0) } }

/* ----- scene: george-prefers-cabin-supper (gs) ----- */
.scn-george-prefers-cabin-supper { background: linear-gradient(180deg, #1f0f05 0%, #3a1f10 40%, #5a2f18 70%, #7a4525 100%), radial-gradient(ellipse at 50% 80%, #ff8c42 0%, transparent 70%); }
.scn-george-prefers-cabin-supper .gs-bg          { position:absolute; inset:0 0 40% 0; background: linear-gradient(180deg, #2a1a0a 0%, #1f0f05 100%); animation: gs-bg 15s ease-in-out infinite alternate; }
.scn-george-prefers-cabin-supper .gs-table       { position:absolute; bottom:0; left:5%; right:5%; height:50%; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius: 15% 15% 0 0 / 25% 25% 0 0; box-shadow: 0 -4px 12px rgba(0,0,0,.6); animation: gs-table 10s ease-in-out infinite; }
.scn-george-prefers-cabin-supper .gs-figure-left { position:absolute; bottom:30%; left:18%; width:14%; height:40%; background: linear-gradient(180deg, #2a1a0a 0%, #1a0a05 100%); border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%; transform-origin: bottom center; animation: gs-fig-l 2s ease-in-out infinite; }
.scn-george-prefers-cabin-supper .gs-figure-right{ position:absolute; bottom:30%; right:18%; width:16%; height:45%; background: linear-gradient(180deg, #3a2a1a 0%, #1f0f05 100%); border-radius: 50% 40% 30% 30% / 60% 50% 40% 40%; transform-origin: bottom center; animation: gs-fig-r 2.4s ease-in-out infinite; }
.scn-george-prefers-cabin-supper .gs-plate       { position:absolute; bottom:28%; left:45%; width:20%; height:8%; background: radial-gradient(ellipse, #8a7a5a 0%, #5a4a2a 70%); border-radius: 50%; box-shadow: 0 3px 6px rgba(0,0,0,.4); animation: gs-plate 4s ease-in-out infinite; }
.scn-george-prefers-cabin-supper .gs-cakes       { position:absolute; bottom:30%; left:38%; width:18%; height:14%; background: repeating-linear-gradient(0deg, #b88850 0px, #b88850 6px, #a07040 6px, #a07040 12px); border-radius: 30% 30% 20% 20%; box-shadow: 0 4px 8px rgba(0,0,0,.3); animation: gs-cakes 3s ease-in-out infinite; }
.scn-george-prefers-cabin-supper .gs-steam       { position:absolute; bottom:48%; left:42%; width:14%; height:20%; background: radial-gradient(ellipse, rgba(200,180,160,.3) 0%, transparent 70%); filter: blur(5px); animation: gs-steam 5s ease-in-out infinite; }
.scn-george-prefers-cabin-supper .gs-fire        { position:absolute; bottom:0; left:5%; width:30%; height:40%; background: radial-gradient(ellipse at 50% 100%, #ff8c42 0%, #ff6630 20%, #cc3300 50%, transparent 70%); border-radius: 50%; opacity:.6; animation: gs-fire 2.5s ease-in-out infinite alternate; }

@keyframes gs-bg   { 0% { opacity:.85 } 50% { opacity:1 } 100% { opacity:.9 } }
@keyframes gs-table{ 0% { transform: translateY(0) } 50% { transform: translateY(-1px) } 100% { transform: translateY(0) } }
@keyframes gs-fig-l{ 0% { transform: translateY(0) rotate(-3deg) } 50% { transform: translateY(-4px) rotate(3deg) } 100% { transform: translateY(0) rotate(-3deg) } }
@keyframes gs-fig-r{ 0% { transform: translateY(0) rotate(2deg) } 50% { transform: translateY(-5px) rotate(-2deg) } 100% { transform: translateY(0) rotate(2deg) } }
@keyframes gs-plate{ 0% { transform: scale(1) } 50% { transform: scale(1.02) rotate(1deg) } 100% { transform: scale(1) } }
@keyframes gs-cakes{ 0% { transform: translateY(0) } 50% { transform: translateY(-3px) } 100% { transform: translateY(0) } }
@keyframes gs-steam{ 0% { transform: translateY(0) scale(1); opacity:.4 } 50% { transform: translateY(-15px) scale(1.3); opacity:.1 } 100% { transform: translateY(-30px) scale(1.6); opacity:0 } }
@keyframes gs-fire { 0% { opacity:.4; transform: scaleX(.95) scaleY(1) } 50% { opacity:.7; transform: scaleX(1.1) scaleY(1.2) } 100% { opacity:.5; transform: scaleX(1) scaleY(.9) } }

/* ----- scene: aunt-chloe-guards-cake (gc) ----- */
.scn-aunt-chloe-guards-cake { background: linear-gradient(180deg, #1f0f05 0%, #3a1f10 40%, #5a2f18 70%, #7a4525 100%), radial-gradient(ellipse at 50% 80%, #ff8c42 0%, transparent 70%); }
.scn-aunt-chloe-guards-cake .gc-bg       { position:absolute; inset:0 0 50% 0; background: linear-gradient(180deg, #2a1a0a 0%, #1f0f05 100%); animation: gc-bg 12s ease-in-out infinite alternate; }
.scn-aunt-chloe-guards-cake .gc-table    { position:absolute; bottom:0; left:10%; right:10%; height:40%; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius: 10% 10% 0 0 / 20% 20% 0 0; box-shadow: 0 -4px 12px rgba(0,0,0,.6); animation: gc-table 8s ease-in-out infinite; }
.scn-aunt-chloe-guards-cake .gc-cake     { position:absolute; bottom:25%; left:50%; width:28%; height:24%; transform:translateX(-50%); background: linear-gradient(180deg, #c89050 0%, #a06830 50%, #804820 100%); border-radius: 40% 40% 20% 20% / 60% 60% 30% 30%; box-shadow: 0 6px 14px rgba(0,0,0,.5); animation: gc-cake 4s ease-in-out infinite; }
.scn-aunt-chloe-guards-cake .gc-knife    { position:absolute; bottom:30%; left:60%; width:4%; height:25%; background: linear-gradient(180deg, #8a7a5a 0%, #5a4a2a 100%); border-radius: 20% 20% 0 0; transform: rotate(15deg); transform-origin: bottom center; animation: gc-knife 3s ease-in-out infinite; }
.scn-aunt-chloe-guards-cake .gc-arm-aunt { position:absolute; bottom:35%; right:45%; width:12%; height:30%; background: linear-gradient(180deg, #3a2a1a 0%, #1f0f05 100%); border-radius: 30% 30% 20% 20% / 50% 50% 30% 30%; transform-origin: right bottom; animation: gc-arm-a 2s ease-in-out infinite; }
.scn-aunt-chloe-guards-cake .gc-arm-george{ position:absolute; bottom:32%; left:45%; width:10%; height:28%; background: linear-gradient(180deg, #2a1a0a 0%, #1a0a05 100%); border-radius: 30% 30% 20% 20% / 50% 50% 30% 30%; transform-origin: left bottom; animation: gc-arm-g 2.5s ease-in-out infinite; }
.scn-aunt-chloe-guards-cake .gc-fire     { position:absolute; bottom:0; left:5%; width:30%; height:40%; background: radial-gradient(ellipse at 50% 100%, #ff8c42 0%, #ff6630 20%, #cc3300 50%, transparent 70%); border-radius: 50%; opacity:.6; animation: gc-fire 3s ease-in-out infinite alternate; }
.scn-aunt-chloe-guards-cake .gc-glint    { position:absolute; bottom:40%; left:55%; width:6%; height:6%; background: radial-gradient(circle, #ffe080 0%, transparent 70%); border-radius: 50%; animation: gc-glint 2s ease-in-out infinite; }

@keyframes gc-bg    { 0% { opacity:.85 } 50% { opacity:1 } 100% { opacity:.9 } }
@keyframes gc-table { 0% { transform: translateY(0) } 50% { transform: translateY(-2px) } 100% { transform: translateY(0) } }
@keyframes gc-cake  { 0% { transform: translateX(-50%) translateY(0) rotate(0) } 50% { transform: translateX(-50%) translateY(-3px) rotate(-2deg) } 100% { transform: translateX(-50%) translateY(0) rotate(0) } }
@keyframes gc-knife { 0% { transform: rotate(15deg) } 50% { transform: rotate(20deg) } 100% { transform: rotate(15deg) } }
@keyframes gc-arm-a { 0% { transform: rotate(-10deg) } 50% { transform: rotate(0deg) } 100% { transform: rotate(-10deg) } }
@keyframes gc-arm-g { 0% { transform: rotate(10deg) } 50% { transform: rotate(0deg) } 100% { transform: rotate(10deg) } }
@keyframes gc-fire  { 0% { opacity:.4; transform: scaleX(.95) scaleY(1) } 50% { opacity:.7; transform: scaleX(1.1) scaleY(1.2) } 100% { opacity:.5; transform: scaleX(1) scaleY(.9) } }
@keyframes gc-glint { 0% { opacity:0; transform: scale(.5) } 50% { opacity:1; transform: scale(1.5) } 100% { opacity:0; transform: scale(.5) } }

/* ----- scene: aunt-chloe-dismisses-lincons (dl) ----- */
.scn-aunt-chloe-dismisses-lincons { background: linear-gradient(180deg, #1f0f05 0%, #3a1f10 40%, #5a2f18 70%, #7a4525 100%), radial-gradient(ellipse at 50% 80%, #ff8c42 0%, transparent 70%); }
.scn-aunt-chloe-dismisses-lincons .dl-bg       { position:absolute; inset:0 0 45% 0; background: linear-gradient(180deg, #2a1a0a 0%, #1f0f05 100%); animation: dl-bg 14s ease-in-out infinite alternate; }
.scn-aunt-chloe-dismisses-lincons .dl-table    { position:absolute; bottom:0; left:5%; right:5%; height:45%; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius: 15% 15% 0 0 / 25% 25% 0 0; box-shadow: 0 -4px 12px rgba(0,0,0,.6); animation: dl-table 8s ease-in-out infinite; }
.scn-aunt-chloe-dismisses-lincons .dl-aunt     { position:absolute; bottom:30%; left:15%; width:16%; height:45%; background: linear-gradient(180deg, #3a2a1a 0%, #1f0f05 100%); border-radius: 40% 50% 30% 30% / 60% 60% 40% 40%; transform-origin: bottom center; animation: dl-aunt 2s ease-in-out infinite; }
.scn-aunt-chloe-dismisses-lincons .dl-george   { position:absolute; bottom:30%; right:15%; width:14%; height:40%; background: linear-gradient(180deg, #2a1a0a 0%, #1a0a05 100%); border-radius: 50% 40% 30% 30% / 60% 50% 40% 40%; transform-origin: bottom center; animation: dl-george 2.5s ease-in-out infinite; }
.scn-aunt-chloe-dismisses-lincons .dl-cup      { position:absolute; bottom:28%; left:45%; width:10%; height:12%; background: linear-gradient(180deg, #6a4a2a 0%, #3a2010 100%); border-radius: 30% 30% 10% 10%; box-shadow: 0 3px 6px rgba(0,0,0,.4); animation: dl-cup 4s ease-in-out infinite; }
.scn-aunt-chloe-dismisses-lincons .dl-steam    { position:absolute; bottom:42%; left:44%; width:12%; height:18%; background: radial-gradient(ellipse, rgba(200,180,160,.3) 0%, transparent 70%); filter: blur(4px); animation: dl-steam 5s ease-in-out infinite; }
.scn-aunt-chloe-dismisses-lincons .dl-fire     { position:absolute; bottom:0; left:5%; width:30%; height:40%; background: radial-gradient(ellipse at 50% 100%, #ff8c42 0%, #ff6630 20%, #cc3300 50%, transparent 70%); border-radius: 50%; opacity:.6; animation: dl-fire 3s ease-in-out infinite alternate; }
.scn-aunt-chloe-dismisses-lincons .dl-sparkles { position:absolute; top:20%; left:20%; width:60%; height:60%; background: radial-gradient(circle at 30% 40%, #ffe080 2px, transparent 2px), radial-gradient(circle at 70% 60%, #ffe080 1.5px, transparent 1.5px), radial-gradient(circle at 50% 20%, #ffe080 1px, transparent 1px); background-size: 30px 30px, 25px 25px, 20px 20px; animation: dl-sparkles 6s linear infinite; }

@keyframes dl-bg       { 0% { opacity:.8 } 50% { opacity:1 } 100% { opacity:.85 } }
@keyframes dl-table    { 0% { transform: translateY(0) } 50% { transform: translateY(-1px) } 100% { transform: translateY(0) } }
@keyframes dl-aunt     { 0% { transform: translateY(0) rotate(-5deg) } 50% { transform: translateY(-3px) rotate(5deg) } 100% { transform: translateY(0) rotate(-5deg) } }
@keyframes dl-george   { 0% { transform: translateY(0) rotate(3deg) } 50% { transform: translateY(-2px) rotate(-3deg) } 100% { transform: translateY(0) rotate(3deg) } }
@keyframes dl-cup      { 0% { transform: translateY(0) rotate(0) } 50% { transform: translateY(-2px) rotate(2deg) } 100% { transform: translateY(0) rotate(0) } }
@keyframes dl-steam    { 0% { transform: translateY(0) scale(1); opacity:.3 } 50% { transform: translateY(-15px) scale(1.3); opacity:.1 } 100% { transform: translateY(-30px) scale(1.6); opacity:0 } }
@keyframes dl-fire     { 0% { opacity:.4; transform: scaleX(.95) scaleY(1) } 50% { opacity:.7; transform: scaleX(1.1) scaleY(1.2) } 100% { opacity:.5; transform: scaleX(1) scaleY(.9) } }
@keyframes dl-sparkles { 0% { background-position: 0 0, 0 0, 0 0; } 100% { background-position: 30px 30px, 25px 25px, 20px 20px; } }

.scn-dodo-picayune {
  background: linear-gradient(180deg, #87CEEB 0%, #E0F0FF 40%, #FFF5E0 100%), radial-gradient(ellipse at 70% 20%, #FFF7E0 0%, transparent 60%);
}
.scn-dodo-picayune .sky {
  position: absolute; inset: 0 0 45% 0;
  background: linear-gradient(180deg, rgba(255,240,200,0.6) 0%, transparent 100%);
  animation: dp-sky 8s ease-in-out infinite alternate;
}
.scn-dodo-picayune .hills {
  position: absolute; bottom: 25%; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #8FBC8F 0%, #6B8E23 100%);
  border-radius: 30% 60% 0 0 / 50% 40% 0 0;
  box-shadow: inset 0 10px 20px rgba(0,0,0,0.15);
  animation: dp-hills 12s ease-in-out infinite alternate;
}
.scn-dodo-picayune .sun {
  position: absolute; top: 8%; right: 15%; width: 60px; height: 60px;
  background: radial-gradient(circle, #FFFACD 0%, #FFD700 60%, transparent 100%);
  border-radius: 50%;
  box-shadow: 0 0 40px 20px rgba(255,215,0,0.4);
  animation: dp-sun 6s ease-in-out infinite alternate;
}
.scn-dodo-picayune .pony {
  position: absolute; bottom: 28%; left: 30%; width: 80px; height: 60px;
  background: linear-gradient(180deg, #8B4513 0%, #5C3317 100%);
  border-radius: 40% 50% 30% 30% / 50% 40% 30% 30%;
  box-shadow: 0 4px 8px rgba(0,0,0,0.3);
  animation: dp-pony 4s ease-in-out infinite;
}
.scn-dodo-picayune .figure {
  position: absolute; bottom: 28%; left: 20%; width: 20px; height: 40px;
  background: linear-gradient(180deg, #654321 0%, #3E2723 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: dp-figure 5s ease-in-out infinite;
}
.scn-dodo-picayune .cloud-a {
  position: absolute; top: 12%; left: 10%; width: 100px; height: 25px;
  background: linear-gradient(180deg, rgba(255,255,255,0.7) 0%, rgba(255,255,255,0.1) 100%);
  border-radius: 50%; filter: blur(6px);
  animation: dp-drift-a 40s linear infinite;
}
.scn-dodo-picayune .cloud-b {
  position: absolute; top: 18%; right: 5%; width: 80px; height: 20px;
  background: linear-gradient(180deg, rgba(255,255,255,0.5) 0%, rgba(255,255,255,0.05) 100%);
  border-radius: 50%; filter: blur(5px);
  animation: dp-drift-b 55s linear infinite reverse;
}
@keyframes dp-sky {
  0% { opacity: 0.7; }
  50% { opacity: 1; background-position: 0 0; }
  100% { opacity: 0.8; background-position: 10% 5%; }
}
@keyframes dp-hills {
  0% { transform: translateY(0); }
  50% { transform: translateY(-4px); }
  100% { transform: translateY(0); }
}
@keyframes dp-sun {
  0% { transform: scale(1); box-shadow: 0 0 40px 20px rgba(255,215,0,0.4); }
  50% { transform: scale(1.1); box-shadow: 0 0 60px 30px rgba(255,215,0,0.6); }
  100% { transform: scale(1); box-shadow: 0 0 40px 20px rgba(255,215,0,0.4); }
}
@keyframes dp-pony {
  0% { transform: translateX(0) rotate(0deg); }
  25% { transform: translateX(5px) rotate(-1deg); }
  50% { transform: translateX(0) rotate(1deg); }
  75% { transform: translateX(-3px) rotate(-1deg); }
  100% { transform: translateX(0) rotate(0deg); }
}
@keyframes dp-figure {
  0% { transform: translateX(0) translateY(0) rotate(0deg); }
  30% { transform: translateX(8px) translateY(-2px) rotate(2deg); }
  60% { transform: translateX(-4px) translateY(1px) rotate(-1deg); }
  100% { transform: translateX(0) translateY(0) rotate(0deg); }
}
@keyframes dp-drift-a {
  0% { transform: translateX(-30px); }
  100% { transform: translateX(150vw); }
}
@keyframes dp-drift-b {
  0% { transform: translateX(0); }
  100% { transform: translateX(-120vw); }
}

.scn-st-clare-brothers-argument {
  background: linear-gradient(180deg, #FFF8DC 0%, #FFE4B5 40%, #DEB887 80%), radial-gradient(ellipse at 70% 30%, #FFF0C0 0%, transparent 60%);
}
.scn-st-clare-brothers-argument .bg-sky {
  position: absolute; inset: 0 0 50% 0;
  background: linear-gradient(180deg, #FFD699 0%, #E0B865 100%);
  animation: sca-sky 10s ease-in-out infinite alternate;
}
.scn-st-clare-brothers-argument .bg-garden {
  position: absolute; bottom: 20%; left: 0; right: 0; height: 35%;
  background: linear-gradient(180deg, #7B8D3A 0%, #4A5D23 100%);
  border-radius: 60% 40% 0 0 / 40% 50% 0 0;
  box-shadow: inset 0 12px 24px rgba(0,0,0,0.25);
  animation: sca-garden 8s ease-in-out infinite alternate;
}
.scn-st-clare-brothers-argument .sun-harsh {
  position: absolute; top: 5%; right: 20%; width: 50px; height: 50px;
  background: radial-gradient(circle, #FFFFCC 0%, #FFD700 50%, transparent 100%);
  border-radius: 50%;
  box-shadow: 0 0 30px 15px rgba(255,215,0,0.5), 0 0 60px 30px rgba(255,215,0,0.2);
  animation: sca-sun 6s ease-in-out infinite alternate;
}
.scn-st-clare-brothers-argument .figure-left {
  position: absolute; bottom: 25%; left: 25%; width: 24px; height: 50px;
  background: linear-gradient(180deg, #2C1A0E 0%, #1A0F07 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: sca-fig-left 1.5s ease-in-out infinite;
}
.scn-st-clare-brothers-argument .figure-right {
  position: absolute; bottom: 25%; right: 30%; width: 26px; height: 52px;
  background: linear-gradient(180deg, #3B2314 0%, #1F1108 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: sca-fig-right 1.2s ease-in-out infinite;
}
.scn-st-clare-brothers-argument .shadow-sharp {
  position: absolute; bottom: 20%; left: 22%; right: 28%; height: 40%;
  background: linear-gradient(180deg, rgba(0,0,0,0.25) 0%, transparent 100%);
  clip-path: polygon(0 100%, 100% 100%, 80% 0, 20% 0);
  animation: sca-shadow 3s ease-in-out infinite alternate;
}
.scn-st-clare-brothers-argument .foliage {
  position: absolute; bottom: 30%; left: 5%; width: 60px; height: 80px;
  background: radial-gradient(ellipse at 50% 100%, #5A7A2E 0%, #2E4A16 100%);
  border-radius: 50% 50% 20% 20%;
  box-shadow: 0 4px 8px rgba(0,0,0,0.3);
  animation: sca-foliage 5s ease-in-out infinite;
}
@keyframes sca-sky {
  0% { opacity: 0.8; }
  50% { opacity: 1; }
  100% { opacity: 0.85; }
}
@keyframes sca-garden {
  0% { transform: translateY(0) scaleX(1); }
  50% { transform: translateY(-5px) scaleX(1.02); }
  100% { transform: translateY(0) scaleX(1); }
}
@keyframes sca-sun {
  0% { transform: scale(0.9); box-shadow: 0 0 20px 10px rgba(255,215,0,0.3); }
  50% { transform: scale(1.2); box-shadow: 0 0 50px 25px rgba(255,215,0,0.6); }
  100% { transform: scale(0.9); box-shadow: 0 0 20px 10px rgba(255,215,0,0.3); }
}
@keyframes sca-fig-left {
  0% { transform: translateX(0) rotate(0deg); }
  25% { transform: translateX(-8px) rotate(-8deg); }
  50% { transform: translateX(0) rotate(0deg); }
  75% { transform: translateX(6px) rotate(6deg); }
  100% { transform: translateX(0) rotate(0deg); }
}
@keyframes sca-fig-right {
  0% { transform: translateX(0) rotate(0deg); }
  30% { transform: translateX(10px) rotate(10deg); }
  60% { transform: translateX(-5px) rotate(-5deg); }
  100% { transform: translateX(0) rotate(0deg); }
}
@keyframes sca-shadow {
  0% { opacity: 0.5; transform: skewX(-2deg); }
  50% { opacity: 0.8; transform: skewX(3deg); }
  100% { opacity: 0.5; transform: skewX(-2deg); }
}
@keyframes sca-foliage {
  0% { transform: rotate(0deg); }
  25% { transform: rotate(3deg); }
  75% { transform: rotate(-2deg); }
  100% { transform: rotate(0deg); }
}

.scn-backgammon-verandah {
  background: linear-gradient(180deg, #FFF5E6 0%, #F0D9B5 40%, #C9A87C 80%), radial-gradient(ellipse at 50% 30%, #FFF8E0 0%, transparent 60%);
}
.scn-backgammon-verandah .verandah-floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 45%;
  background: linear-gradient(180deg, #A67B5B 0%, #8B6342 100%);
  border-radius: 10% 10% 0 0;
  box-shadow: inset 0 10px 20px rgba(0,0,0,0.2);
  animation: bgv-floor 6s ease-in-out infinite alternate;
}
.scn-backgammon-verandah .verandah-roof {
  position: absolute; top: 0; left: 10%; right: 10%; height: 25%;
  background: linear-gradient(180deg, #BFA785 0%, #9B805C 100%);
  border-radius: 10% 10% 50% 50% / 20% 20% 60% 60%;
  box-shadow: 0 8px 16px rgba(0,0,0,0.2);
  animation: bgv-roof 8s ease-in-out infinite alternate;
}
.scn-backgammon-verandah .table {
  position: absolute; bottom: 22%; left: 30%; right: 30%; height: 8%;
  background: linear-gradient(180deg, #6B4226 0%, #4A2E1A 100%);
  border-radius: 10px;
  box-shadow: 0 4px 8px rgba(0,0,0,0.3);
  animation: bgv-table 5s ease-in-out infinite;
}
.scn-backgammon-verandah .board {
  position: absolute; bottom: 24%; left: 35%; right: 35%; height: 6%;
  background: linear-gradient(180deg, #D2B48C 0%, #A0845C 100%);
  border-radius: 4px;
  box-shadow: inset 0 -2px 4px rgba(0,0,0,0.2);
  animation: bgv-board 7s ease-in-out infinite;
}
.scn-backgammon-verandah .figure-a {
  position: absolute; bottom: 18%; left: 20%; width: 22px; height: 40px;
  background: linear-gradient(180deg, #4A3A2A 0%, #2A1A0A 100%);
  border-radius: 50% 50% 20% 20% / 60% 60% 20% 20%;
  transform-origin: bottom center;
  animation: bgv-fig-a 4s ease-in-out infinite;
}
.scn-backgammon-verandah .figure-b {
  position: absolute; bottom: 18%; right: 20%; width: 22px; height: 40px;
  background: linear-gradient(180deg, #5A4A3A 0%, #3A2A1A 100%);
  border-radius: 50% 50% 20% 20% / 60% 60% 20% 20%;
  transform-origin: bottom center;
  animation: bgv-fig-b 4.5s ease-in-out infinite;
}
.scn-backgammon-verandah .plant {
  position: absolute; bottom: 15%; left: 5%; width: 40px; height: 60px;
  background: radial-gradient(ellipse at 50% 100%, #5A7A2E 0%, #2E4A16 100%);
  border-radius: 50% 50% 20% 20%;
  box-shadow: 0 4px 8px rgba(0,0,0,0.2);
  animation: bgv-plant 6s ease-in-out infinite;
}
.scn-backgammon-verandah .lantern {
  position: absolute; top: 15%; left: 50%; width: 12px; height: 18px;
  background: radial-gradient(circle, #FFD700 0%, #B8860B 100%);
  border-radius: 30%;
  box-shadow: 0 0 20px 8px rgba(255,215,0,0.4);
  animation: bgv-lantern 3s ease-in-out infinite alternate;
}
@keyframes bgv-floor {
  0% { opacity: 0.9; }
  50% { opacity: 1; }
  100% { opacity: 0.9; }
}
@keyframes bgv-roof {
  0% { transform: translateY(0); }
  50% { transform: translateY(-2px); }
  100% { transform: translateY(0); }
}
@keyframes bgv-table {
  0% { transform: scaleX(1); }
  50% { transform: scaleX(1.02); }
  100% { transform: scaleX(1); }
}
@keyframes bgv-board {
  0% { background-position: 0 0; }
  50% { background-position: 10% 0; }
  100% { background-position: 0 0; }
}
@keyframes bgv-fig-a {
  0% { transform: translateX(0) rotate(0deg); }
  30% { transform: translateX(3px) rotate(2deg); }
  60% { transform: translateX(-2px) rotate(-1deg); }
  100% { transform: translateX(0) rotate(0deg); }
}
@keyframes bgv-fig-b {
  0% { transform: translateX(0) rotate(0deg); }
  25% { transform: translateX(-4px) rotate(-2deg); }
  75% { transform: translateX(2px) rotate(1deg); }
  100% { transform: translateX(0) rotate(0deg); }
}
@keyframes bgv-plant {
  0% { transform: rotate(-2deg); }
  50% { transform: rotate(2deg); }
  100% { transform: rotate(-2deg); }
}
@keyframes bgv-lantern {
  0% { opacity: 0.7; box-shadow: 0 0 15px 5px rgba(255,215,0,0.3); }
  50% { opacity: 1; box-shadow: 0 0 30px 12px rgba(255,215,0,0.6); }
  100% { opacity: 0.8; box-shadow: 0 0 20px 8px rgba(255,215,0,0.4); }
}

.scn-children-return-ride {
  background: linear-gradient(180deg, #FFDAB9 0%, #FFA07A 30%, #FFE4B5 60%, #FFF8DC 100%), radial-gradient(ellipse at 60% 40%, #FFFACD 0%, transparent 60%);
}
.scn-children-return-ride .sky-warm {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(180deg, #FFDAB9 0%, #FFC085 100%);
  animation: crr-sky 8s ease-in-out infinite alternate;
}
.scn-children-return-ride .ground {
  position: absolute; bottom: 20%; left: 0; right: 0; height: 25%;
  background: linear-gradient(180deg, #C49A3C 0%, #8B6914 100%);
  border-radius: 40% 60% 0 0 / 50% 30% 0 0;
  box-shadow: inset 0 8px 16px rgba(0,0,0,0.2);
  animation: crr-ground 12s ease-in-out infinite alternate;
}
.scn-children-return-ride .horse-fore {
  position: absolute; bottom: 25%; left: 25%; width: 80px; height: 70px;
  background: linear-gradient(180deg, #5C3A1E 0%, #3A1F0A 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  box-shadow: 0 6px 12px rgba(0,0,0,0.3);
  animation: crr-horse-fore 2s ease-in-out infinite;
}
.scn-children-return-ride .rider-fore {
  position: absolute; bottom: 40%; left: 30%; width: 24px; height: 36px;
  background: linear-gradient(180deg, #4A3520 0%, #221007 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: crr-rider-fore 2s ease-in-out infinite;
}
.scn-children-return-ride .horse-aft {
  position: absolute; bottom: 25%; right: 20%; width: 70px; height: 60px;
  background: linear-gradient(180deg, #6B4423 0%, #4A2E15 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  box-shadow: 0 6px 12px rgba(0,0,0,0.3);
  animation: crr-horse-aft 2.5s ease-in-out infinite;
  animation-delay: 0.5s;
}
.scn-children-return-ride .rider-aft {
  position: absolute; bottom: 38%; right: 25%; width: 22px; height: 34px;
  background: linear-gradient(180deg, #5A4530 0%, #2A1A0A 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: crr-rider-aft 2.5s ease-in-out infinite;
  animation-delay: 0.5s;
}
.scn-children-return-ride .dust {
  position: absolute; bottom: 20%; left: 20%; right: 30%; height: 10%;
  background: radial-gradient(ellipse at 50% 100%, rgba(210,180,140,0.5) 0%, transparent 100%);
  filter: blur(4px);
  animation: crr-dust 3s ease-in-out infinite;
}
.scn-children-return-ride .sunbeam {
  position: absolute; top: 10%; left: 40%; width: 30px; height: 150px;
  background: linear-gradient(180deg, rgba(255,215,0,0.4) 0%, transparent 100%);
  clip-path: polygon(40% 0, 60% 0, 100% 100%, 0% 100%);
  animation: crr-sunbeam 5s ease-in-out infinite alternate;
}
@keyframes crr-sky {
  0% { opacity: 0.8; }
  50% { opacity: 1; }
  100% { opacity: 0.85; }
}
@keyframes crr-ground {
  0% { transform: translateY(0); }
  50% { transform: translateY(-2px) scaleX(1.01); }
  100% { transform: translateY(0); }
}
@keyframes crr-horse-fore {
  0% { transform: translateY(0) rotate(0deg); }
  25% { transform: translateY(-5px) rotate(-1deg); }
  50% { transform: translateY(0) rotate(0deg); }
  75% { transform: translateY(-3px) rotate(1deg); }
  100% { transform: translateY(0) rotate(0deg); }
}
@keyframes crr-rider-fore {
  0% { transform: translateY(0) rotate(0deg); }
  30% { transform: translateY(-6px) rotate(2deg); }
  60% { transform: translateY(0) rotate(-1deg); }
  100% { transform: translateY(0) rotate(0deg); }
}
@keyframes crr-horse-aft {
  0% { transform: translateY(0) rotate(0deg); }
  20% { transform: translateY(-4px) rotate(-1deg); }
  40% { transform: translateY(0) rotate(0deg); }
  60% { transform: translateY(-2px) rotate(1deg); }
  80% { transform: translateY(0) rotate(0deg); }
  100% { transform: translateY(0) rotate(0deg); }
}
@keyframes crr-rider-aft {
  0% { transform: translateY(0) rotate(0deg); }
  30% { transform: translateY(-5px) rotate(2deg); }
  60% { transform: translateY(0) rotate(-1deg); }
  100% { transform: translateY(0) rotate(0deg); }
}
@keyframes crr-dust {
  0% { opacity: 0.3; transform: translateX(0); }
  50% { opacity: 0.6; transform: translateX(10px); }
  100% { opacity: 0.3; transform: translateX(0); }
}
@keyframes crr-sunbeam {
  0% { opacity: 0.4; transform: rotate(-2deg); }
  50% { opacity: 0.8; transform: rotate(2deg); }
  100% { opacity: 0.4; transform: rotate(-2deg); }
}

.scn-haley-tale-of-tom-loker {
  background:
    linear-gradient(180deg, #2a1f1a 0%, #1e1511 50%, #140f0c 100%),
    radial-gradient(ellipse at 50% 45%, #4a3528 0%, transparent 70%);
}
.scn-haley-tale-of-tom-loker .bg { position:absolute; inset:0; background: linear-gradient(180deg, transparent 0%, rgba(20,15,12,.6) 100%); }
.scn-haley-tale-of-tom-loker .wall { position:absolute; bottom:55%; left:0; right:0; height:45%; background: linear-gradient(90deg, #2a1f1a 0%, #3a2a20 50%, #2a1f1a 100%); border-radius: 0 0 20% 20% / 0 0 10% 10%; }
.scn-haley-tale-of-tom-loker .table { position:absolute; bottom:18%; left:50%; width:110px; height:30px; transform:translateX(-50%); background: linear-gradient(180deg, #4a3528 0%, #2a1f1a 100%); border-radius:4px; box-shadow: 0 4px 8px rgba(0,0,0,.6); }
.scn-haley-tale-of-tom-loker .lamp { position:absolute; bottom:32%; left:50%; width:20px; height:20px; transform:translateX(-50%); background: radial-gradient(circle, #e8b060 0%, #c08040 50%, #804020 100%); border-radius:50%; box-shadow: 0 0 30px 10px rgba(200,130,60,.6), 0 0 60px 20px rgba(200,130,60,.3); animation: htm-glow 3s ease-in-out infinite alternate; }
.scn-haley-tale-of-tom-loker .figure { position:absolute; bottom:20%; left:42%; width:28px; height:60px; background: linear-gradient(180deg, #2a1f1a 0%, #1a1210 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: htm-figure 6s ease-in-out infinite; }
.scn-haley-tale-of-tom-loker .arm { position:absolute; bottom:40%; left:44%; width:10px; height:40px; background: linear-gradient(180deg, #2a1f1a 0%, #1a1210 100%); border-radius:40% 40% 20% 20%; transform-origin: 50% 0%; animation: htm-arm 2s ease-in-out infinite; }
.scn-haley-tale-of-tom-loker .chair { position:absolute; bottom:18%; left:58%; width:36px; height:50px; background: linear-gradient(180deg, #3a2a20 0%, #2a1f1a 100%); border-radius:10% 10% 5% 5% / 20% 20% 5% 5%; box-shadow: 0 6px 10px rgba(0,0,0,.5); animation: htm-chair 8s ease-in-out infinite; }
@keyframes htm-glow {
  0% { opacity:.7; box-shadow: 0 0 20px 8px rgba(200,130,60,.5), 0 0 40px 15px rgba(200,130,60,.2); }
  50% { opacity:1; box-shadow: 0 0 35px 12px rgba(200,130,60,.7), 0 0 70px 25px rgba(200,130,60,.4); }
  100% { opacity:.8; box-shadow: 0 0 25px 10px rgba(200,130,60,.6), 0 0 50px 20px rgba(200,130,60,.3); }
}
@keyframes htm-figure {
  0%,100% { transform: translateX(0) rotate(0); }
  25% { transform: translateX(-2px) rotate(-2deg); }
  50% { transform: translateX(0) rotate(1deg); }
  75% { transform: translateX(2px) rotate(0); }
}
@keyframes htm-arm {
  0%,100% { transform: rotate(-20deg) scaleY(1); }
  50% { transform: rotate(15deg) scaleY(1.1); }
}
@keyframes htm-chair {
  0%,100% { transform: rotate(0); }
  50% { transform: rotate(1deg) translateY(-1px); }
}

.scn-haley-compares-methods {
  background:
    linear-gradient(180deg, #1a1a2e 0%, #121024 50%, #0a0818 100%),
    radial-gradient(ellipse at 40% 50%, #2a2a4e 0%, transparent 70%);
}
.scn-haley-compares-methods .bg { position:absolute; inset:0; background: linear-gradient(180deg, transparent 60%, rgba(10,8,24,.6) 100%); }
.scn-haley-compares-methods .wall { position:absolute; bottom:55%; left:0; right:0; height:45%; background: linear-gradient(90deg, #1a1a2e 0%, #2a2a4e 50%, #1a1a2e 100%); border-radius: 0 0 30% 30% / 0 0 15% 15%; }
.scn-haley-compares-methods .table { position:absolute; bottom:18%; left:50%; width:120px; height:25px; transform:translateX(-50%); background: linear-gradient(180deg, #3a2a4a 0%, #2a1a3a 100%); border-radius:4px; box-shadow: 0 4px 10px rgba(0,0,0,.5); }
.scn-haley-compares-methods .candle { position:absolute; bottom:32%; left:50%; width:12px; height:24px; transform:translateX(-50%); background: linear-gradient(180deg, #c8b8a0 0%, #806050 100%); border-radius:4px; box-shadow: 0 0 20px 6px rgba(200,200,220,.3); animation: hcm-flicker 0.8s steps(2) infinite; }
.scn-haley-compares-methods .candle::after { content:''; position:absolute; top:-10px; left:50%; width:6px; height:10px; transform:translateX(-50%); background: radial-gradient(circle, #e8e0f0 0%, #b0a0c0 50%, transparent 100%); border-radius:50%; box-shadow: 0 0 15px 5px rgba(200,200,220,.5); animation: hcm-flame 1.2s ease-in-out infinite; }
.scn-haley-compares-methods .figure-a { position:absolute; bottom:20%; left:38%; width:30px; height:65px; background: linear-gradient(180deg, #2a2a4e 0%, #1a1a3e 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: hcm-figure-a 4s ease-in-out infinite; }
.scn-haley-compares-methods .figure-b { position:absolute; bottom:20%; right:38%; width:30px; height:65px; background: linear-gradient(180deg, #2a2a4e 0%, #1a1a3e 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: hcm-figure-b 5s ease-in-out infinite; }
.scn-haley-compares-methods .chair-a { position:absolute; bottom:18%; left:34%; width:40px; height:55px; background: linear-gradient(180deg, #3a3a5e 0%, #2a2a4e 100%); border-radius:10% 10% 5% 5% / 20% 20% 5% 5%; box-shadow: 0 6px 12px rgba(0,0,0,.4); }
.scn-haley-compares-methods .chair-b { position:absolute; bottom:18%; right:34%; width:40px; height:55px; background: linear-gradient(180deg, #3a3a5e 0%, #2a2a4e 100%); border-radius:10% 10% 5% 5% / 20% 20% 5% 5%; box-shadow: 0 6px 12px rgba(0,0,0,.4); }
@keyframes hcm-flicker {
  0% { opacity:.9; }
  100% { opacity:.7; }
}
@keyframes hcm-flame {
  0%,100% { transform: translateX(-50%) scaleY(1); }
  50% { transform: translateX(-50%) scaleY(1.3) scaleX(.8); }
}
@keyframes hcm-figure-a {
  0%,100% { transform: rotate(0); }
  30% { transform: rotate(-3deg) translateY(-2px); }
  60% { transform: rotate(2deg); }
}
@keyframes hcm-figure-b {
  0%,100% { transform: rotate(0); }
  40% { transform: rotate(3deg) translateY(-1px); }
  80% { transform: rotate(-2deg); }
}

.scn-haley-advocates-coaxing {
  background:
    linear-gradient(180deg, #2a1a1a 0%, #1a1010 50%, #0a0808 100%),
    radial-gradient(ellipse at 50% 60%, #4a2a2a 0%, transparent 70%);
}
.scn-haley-advocates-coaxing .bg { position:absolute; inset:0; background: linear-gradient(0deg, rgba(10,8,8,.5) 0%, transparent 50%); }
.scn-haley-advocates-coaxing .wall { position:absolute; bottom:55%; left:0; right:0; height:45%; background: linear-gradient(90deg, #2a1a1a 0%, #3a2a2a 50%, #2a1a1a 100%); border-radius: 0 0 25% 25% / 0 0 12% 12%; }
.scn-haley-advocates-coaxing .desk { position:absolute; bottom:15%; left:30%; width:100px; height:25px; background: linear-gradient(180deg, #4a2a2a 0%, #2a1a1a 100%); border-radius:4px; box-shadow: 0 4px 8px rgba(0,0,0,.6); }
.scn-haley-advocates-coaxing .lamp { position:absolute; bottom:28%; left:30%; width:18px; height:18px; transform:translateX(0); background: radial-gradient(circle, #d09060 0%, #b06840 50%, #804020 100%); border-radius:50%; box-shadow: 0 0 25px 8px rgba(200,100,60,.6), 0 0 50px 16px rgba(200,100,60,.3); animation: hac-glow 3.5s ease-in-out infinite alternate; }
.scn-haley-advocates-coaxing .figure-s { position:absolute; bottom:18%; left:20%; width:26px; height:60px; background: linear-gradient(180deg, #2a1a1a 0%, #1a1010 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: hac-figure-s 6s ease-in-out infinite; }
.scn-haley-advocates-coaxing .figure-g { position:absolute; bottom:18%; right:25%; width:28px; height:65px; background: linear-gradient(180deg, #2a1a1a 0%, #1a1010 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: hac-figure-g 4s ease-in-out infinite; }
.scn-haley-advocates-coaxing .hand { position:absolute; bottom:35%; left:48%; width:8px; height:30px; background: linear-gradient(180deg, #2a1a1a 0%, #1a1010 100%); border-radius:40% 40% 20% 20%; transform-origin: 50% 0%; animation: hac-hand 2.2s ease-in-out infinite; }
@keyframes hac-glow {
  0% { opacity:.6; box-shadow: 0 0 15px 5px rgba(200,100,60,.4), 0 0 35px 12px rgba(200,100,60,.2); }
  50% { opacity:1; box-shadow: 0 0 30px 10px rgba(200,100,60,.7), 0 0 60px 20px rgba(200,100,60,.45); }
  100% { opacity:.75; box-shadow: 0 0 20px 7px rgba(200,100,60,.5), 0 0 45px 15px rgba(200,100,60,.3); }
}
@keyframes hac-figure-s {
  0%,100% { transform: rotate(0); }
  30% { transform: rotate(-2deg) translateY(-2px); }
  70% { transform: rotate(1deg); }
}
@keyframes hac-figure-g {
  0%,100% { transform: rotate(0); }
  40% { transform: rotate(3deg) translateY(-1px); }
  80% { transform: rotate(-2deg) translateY(1px); }
}
@keyframes hac-hand {
  0%,100% { transform: rotate(-30deg) scaleY(1); }
  50% { transform: rotate(20deg) scaleY(1.15); }
}

.scn-shelby-questions-haley {
  background:
    linear-gradient(180deg, #1a1a2a 0%, #12101e 50%, #0a0812 100%),
    radial-gradient(ellipse at 50% 50%, #2a2a4a 0%, transparent 70%);
}
.scn-shelby-questions-haley .bg { position:absolute; inset:0; background: linear-gradient(180deg, transparent 40%, rgba(10,8,18,.5) 100%); }
.scn-shelby-questions-haley .wall { position:absolute; bottom:55%; left:0; right:0; height:45%; background: linear-gradient(90deg, #1a1a2a 0%, #2a2a4a 50%, #1a1a2a 100%); border-radius: 0 0 20% 20% / 0 0 10% 10%; }
.scn-shelby-questions-haley .desk { position:absolute; bottom:15%; left:25%; width:110px; height:22px; background: linear-gradient(180deg, #3a2a4a 0%, #2a1a3a 100%); border-radius:4px; box-shadow: 0 4px 10px rgba(0,0,0,.5); }
.scn-shelby-questions-haley .lamp { position:absolute; bottom:25%; left:40%; width:20px; height:20px; transform:translateX(-50%); background: radial-gradient(circle, #c8b8a0 0%, #a09080 50%, #605050 100%); border-radius:50%; box-shadow: 0 0 20px 8px rgba(200,180,160,.5), 0 0 45px 15px rgba(200,180,160,.2); animation: sqh-lamp 3s ease-in-out infinite alternate; }
.scn-shelby-questions-haley .figure-s { position:absolute; bottom:18%; left:20%; width:28px; height:62px; background: linear-gradient(180deg, #2a2a4e 0%, #1a1a3e 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: sqh-figure-s 5s ease-in-out infinite; }
.scn-shelby-questions-haley .figure-h { position:absolute; bottom:18%; right:20%; width:30px; height:68px; background: linear-gradient(180deg, #2a2a4e 0%, #1a1a3e 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: sqh-figure-h 6s ease-in-out infinite; }
.scn-shelby-questions-haley .chair { position:absolute; bottom:15%; left:15%; width:40px; height:55px; background: linear-gradient(180deg, #3a3a5e 0%, #2a2a4e 100%); border-radius:10% 10% 5% 5% / 20% 20% 5% 5%; box-shadow: 0 6px 12px rgba(0,0,0,.4); }
.scn-shelby-questions-haley .papers { position:absolute; bottom:18%; left:30%; width:20px; height:15px; background: linear-gradient(135deg, #e8e0d0 0%, #c8b8a0 100%); border-radius:2px; box-shadow: 0 2px 4px rgba(0,0,0,.3); animation: sqh-paper 10s ease-in-out infinite; }
@keyframes sqh-lamp {
  0% { opacity:.6; box-shadow: 0 0 15px 5px rgba(200,180,160,.4), 0 0 30px 12px rgba(200,180,160,.15); }
  50% { opacity:1; box-shadow: 0 0 25px 10px rgba(200,180,160,.6), 0 0 55px 20px rgba(200,180,160,.35); }
  100% { opacity:.75; box-shadow: 0 0 20px 7px rgba(200,180,160,.5), 0 0 40px 15px rgba(200,180,160,.25); }
}
@keyframes sqh-figure-s {
  0%,100% { transform: rotate(0); }
  30% { transform: rotate(-2deg) translateY(-2px); }
  70% { transform: rotate(1deg) translateY(1px); }
}
@keyframes sqh-figure-h {
  0%,100% { transform: rotate(0); }
  40% { transform: rotate(2deg) translateY(-1px); }
  80% { transform: rotate(-3deg) translateY(2px); }
}
@keyframes sqh-paper {
  0%,100% { transform: rotate(0); }
  50% { transform: rotate(3deg) translateY(-1px); }
}

.scn-negotiation-tom-sale {
  background: 
    linear-gradient(180deg, #1a1210 0%, #2d1e18 40%, #3d2a20 70%, #1f1410 100%),
    radial-gradient(ellipse at 50% 100%, #4a3020 0%, transparent 60%);
  position: relative;
  overflow: hidden;
}
.scn-negotiation-tom-sale .parlor-bg {
  position: absolute; inset: 0; 
  background: linear-gradient(135deg, rgba(60,40,30,0.3) 0%, transparent 50%, rgba(30,20,15,0.5) 100%);
  animation: nt-bg-pulse 8s ease-in-out infinite alternate;
}
.scn-negotiation-tom-sale .table {
  position: absolute; bottom: 18%; left: 15%; right: 15%; height: 8%;
  background: linear-gradient(180deg, #4a3528 0%, #2e1f16 100%);
  border-radius: 4px 4px 8px 8px;
  box-shadow: 0 4px 12px rgba(0,0,0,0.6);
  transform: perspective(400px) rotateX(8deg);
}
.scn-negotiation-tom-sale .chair-left {
  position: absolute; bottom: 18%; left: 8%; width: 14%; height: 50%;
  background: linear-gradient(180deg, #1f1511 0%, #0f0a08 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: nt-chair-sway 4s ease-in-out infinite;
}
.scn-negotiation-tom-sale .chair-right {
  position: absolute; bottom: 18%; right: 8%; width: 14%; height: 50%;
  background: linear-gradient(180deg, #2a1e18 0%, #18120e 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: nt-chair-sway 5s ease-in-out infinite reverse;
}
.scn-negotiation-tom-sale .wine-glass {
  position: absolute; bottom: 30%; left: 48%; width: 3%; height: 12%;
  background: radial-gradient(ellipse at 50% 20%, rgba(180,120,80,0.6) 0%, transparent 70%);
  border-radius: 50% 50% 40% 40% / 20% 20% 60% 60%;
  box-shadow: 0 0 10px 2px rgba(180,120,80,0.3);
  animation: nt-glass-shine 6s ease-in-out infinite;
}
.scn-negotiation-tom-sale .lamp {
  position: absolute; bottom: 20%; left: 78%; width: 6%; height: 20%;
  background: radial-gradient(circle at 50% 80%, #ffd070 0%, #b08040 40%, transparent 70%);
  border-radius: 30% 30% 20% 20%;
  box-shadow: 0 0 30px 10px rgba(255,208,112,0.3), 0 0 60px 20px rgba(200,130,50,0.15);
  animation: nt-lamp-flicker 2s ease-in-out infinite alternate;
}
.scn-negotiation-tom-sale .cast-shadow {
  position: absolute; bottom: 18%; left: 10%; right: 10%; height: 20%;
  background: linear-gradient(90deg, rgba(0,0,0,0.2) 0%, rgba(0,0,0,0.4) 50%, rgba(0,0,0,0.2) 100%);
  filter: blur(10px);
  animation: nt-shadow-drift 10s ease-in-out infinite alternate;
}
.scn-negotiation-tom-sale .curtain {
  position: absolute; top: 0; left: 0; right: 0; height: 15%;
  background: linear-gradient(180deg, #241813 0%, rgba(36,24,19,0) 100%);
  border-radius: 0 0 50% 50%;
  animation: nt-curtain-sway 7s ease-in-out infinite alternate;
}
@keyframes nt-bg-pulse {
  0% { opacity: 0.6; }
  50% { opacity: 0.8; }
  100% { opacity: 0.7; }
}
@keyframes nt-chair-sway {
  0% { transform: rotate(-1deg) translateY(0); }
  50% { transform: rotate(1deg) translateY(-2px); }
  100% { transform: rotate(-1deg) translateY(0); }
}
@keyframes nt-glass-shine {
  0% { opacity: 0.4; transform: rotate(0deg); }
  50% { opacity: 0.8; transform: rotate(3deg) translateY(-1px); }
  100% { opacity: 0.5; transform: rotate(0deg); }
}
@keyframes nt-lamp-flicker {
  0% { opacity: 0.8; box-shadow: 0 0 20px 8px rgba(255,208,112,0.2), 0 0 40px 15px rgba(200,130,50,0.1); }
  50% { opacity: 1; box-shadow: 0 0 35px 12px rgba(255,208,112,0.4), 0 0 70px 25px rgba(200,130,50,0.2); }
  100% { opacity: 0.85; box-shadow: 0 0 25px 10px rgba(255,208,112,0.25), 0 0 50px 18px rgba(200,130,50,0.12); }
}
@keyframes nt-shadow-drift {
  0% { transform: translateX(-5px) scaleX(1); }
  50% { transform: translateX(5px) scaleX(1.05); }
  100% { transform: translateX(-3px) scaleX(0.98); }
}
@keyframes nt-curtain-sway {
  0% { transform: translateY(0) scaleY(1); }
  50% { transform: translateY(2px) scaleY(1.02); }
  100% { transform: translateY(0) scaleY(1); }
}

.scn-haley-questions-piety {
  background: 
    linear-gradient(180deg, #1c1411 0%, #2e201a 40%, #3d2a20 70%, #1a1210 100%),
    radial-gradient(ellipse at 40% 50%, #4a3020 0%, transparent 70%);
  position: relative;
  overflow: hidden;
}
.scn-haley-questions-piety .parlor-bg {
  position: absolute; inset: 0; 
  background: linear-gradient(135deg, rgba(50,35,25,0.4) 0%, transparent 50%, rgba(20,15,10,0.6) 100%);
  animation: hp-bg-fade 9s ease-in-out infinite alternate;
}
.scn-haley-questions-piety .table {
  position: absolute; bottom: 20%; left: 10%; right: 10%; height: 7%;
  background: linear-gradient(180deg, #4a3528 0%, #2e1f16 100%);
  border-radius: 4px 4px 10px 10px;
  box-shadow: 0 4px 12px rgba(0,0,0,0.6);
  transform: perspective(500px) rotateX(5deg);
}
.scn-haley-questions-piety .chair-left {
  position: absolute; bottom: 20%; left: 5%; width: 16%; height: 55%;
  background: linear-gradient(180deg, #1f1511 0%, #0f0a08 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: hp-chair-left 4s ease-in-out infinite;
}
.scn-haley-questions-piety .bottle {
  position: absolute; bottom: 30%; left: 50%; width: 4%; height: 18%;
  background: linear-gradient(180deg, #5a3a2a 0%, #3a2218 100%);
  border-radius: 20% 20% 30% 30% / 40% 40% 20% 20%;
  box-shadow: 0 2px 8px rgba(0,0,0,0.5);
  transform: rotate(-10deg);
  animation: hp-bottle-rock 7s ease-in-out infinite;
}
.scn-haley-questions-piety .glass-hand {
  position: absolute; bottom: 40%; left: 60%; width: 5%; height: 10%;
  background: radial-gradient(ellipse at 50% 30%, rgba(200,140,90,0.5) 0%, transparent 70%);
  border-radius: 30% 30% 20% 20%;
  box-shadow: 0 0 15px 3px rgba(200,140,90,0.2);
  transform: rotate(15deg);
  animation: hp-glass-hand 5s ease-in-out infinite alternate;
}
.scn-haley-questions-piety .lamp {
  position: absolute; bottom: 22%; right: 10%; width: 5%; height: 18%;
  background: radial-gradient(circle at 50% 70%, #ffd070 0%, #b08040 40%, transparent 70%);
  border-radius: 30% 30% 20% 20%;
  box-shadow: 0 0 25px 8px rgba(255,208,112,0.3), 0 0 50px 18px rgba(200,130,50,0.12);
  animation: hp-lamp-flicker 2.5s ease-in-out infinite alternate;
}
.scn-haley-questions-piety .cast-shadow {
  position: absolute; bottom: 20%; left: 8%; right: 8%; height: 18%;
  background: linear-gradient(90deg, rgba(0,0,0,0.15) 0%, rgba(0,0,0,0.35) 50%, rgba(0,0,0,0.15) 100%);
  filter: blur(12px);
  animation: hp-shadow-move 12s ease-in-out infinite alternate;
}
.scn-haley-questions-piety .curtain {
  position: absolute; top: 0; left: 0; right: 0; height: 12%;
  background: linear-gradient(180deg, #201612 0%, rgba(32,22,18,0) 100%);
  border-radius: 0 0 40% 40%;
  animation: hp-curtain-breathe 8s ease-in-out infinite alternate;
}
@keyframes hp-bg-fade {
  0% { opacity: 0.5; }
  50% { opacity: 0.75; }
  100% { opacity: 0.6; }
}
@keyframes hp-chair-left {
  0% { transform: rotate(-2deg) translateY(0); }
  50% { transform: rotate(1deg) translateY(-3px); }
  100% { transform: rotate(-2deg) translateY(0); }
}
@keyframes hp-bottle-rock {
  0% { transform: rotate(-12deg) translateY(0); }
  50% { transform: rotate(-8deg) translateY(-2px); }
  100% { transform: rotate(-12deg) translateY(0); }
}
@keyframes hp-glass-hand {
  0% { transform: rotate(12deg) translateY(0); opacity: 0.6; }
  50% { transform: rotate(18deg) translateY(-2px); opacity: 0.9; }
  100% { transform: rotate(14deg) translateY(0); opacity: 0.7; }
}
@keyframes hp-lamp-flicker {
  0% { opacity: 0.75; box-shadow: 0 0 20px 6px rgba(255,208,112,0.2), 0 0 40px 12px rgba(200,130,50,0.08); }
  50% { opacity: 1; box-shadow: 0 0 30px 10px rgba(255,208,112,0.4), 0 0 60px 20px rgba(200,130,50,0.15); }
  100% { opacity: 0.8; box-shadow: 0 0 22px 8px rgba(255,208,112,0.25), 0 0 44px 14px rgba(200,130,50,0.1); }
}
@keyframes hp-shadow-move {
  0% { transform: translateX(-3px) scaleX(1); }
  50% { transform: translateX(4px) scaleX(1.03); }
  100% { transform: translateX(-2px) scaleX(0.98); }
}
@keyframes hp-curtain-breathe {
  0% { transform: translateY(0) scaleY(1); }
  50% { transform: translateY(1px) scaleY(1.01); }
  100% { transform: translateY(0) scaleY(1); }
}

.scn-haley-on-religion-in-trade {
  background: 
    linear-gradient(180deg, #1a1210 0%, #2c1e18 40%, #3b2a20 70%, #1e1410 100%),
    radial-gradient(ellipse at 60% 30%, #4a2e1e 0%, transparent 70%);
  position: relative;
  overflow: hidden;
}
.scn-haley-on-religion-in-trade .parlor-bg {
  position: absolute; inset: 0; 
  background: linear-gradient(135deg, rgba(50,35,25,0.3) 0%, transparent 50%, rgba(20,15,10,0.5) 100%);
  animation: hr-bg-fade 10s ease-in-out infinite alternate;
}
.scn-haley-on-religion-in-trade .table {
  position: absolute; bottom: 15%; left: 20%; right: 20%; height: 6%;
  background: linear-gradient(180deg, #4a3528 0%, #2e1f16 100%);
  border-radius: 4px 4px 8px 8px;
  box-shadow: 0 4px 12px rgba(0,0,0,0.6);
  transform: perspective(400px) rotateX(6deg);
}
.scn-haley-on-religion-in-trade .chair-left {
  position: absolute; bottom: 15%; left: 6%; width: 15%; height: 50%;
  background: linear-gradient(180deg, #1f1511 0%, #0f0a08 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: hr-chair-sway 4.5s ease-in-out infinite;
}
.scn-haley-on-religion-in-trade .figure-kneeling {
  position: absolute; bottom: 15%; left: 38%; width: 10%; height: 30%;
  background: linear-gradient(180deg, #1a1210 0%, #0e0a08 100%);
  border-radius: 40% 40% 20% 20% / 50% 50% 30% 30%;
  transform-origin: bottom center;
  opacity: 0.6;
  animation: hr-kneel 6s ease-in-out infinite;
}
.scn-haley-on-religion-in-trade .gesture-hand {
  position: absolute; bottom: 32%; left: 60%; width: 8%; height: 12%;
  background: linear-gradient(180deg, #1f1511 0%, #120c0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  transform: rotate(30deg) scale(1.2);
  animation: hr-gesture 3s ease-in-out infinite alternate;
}
.scn-haley-on-religion-in-trade .lamp {
  position: absolute; bottom: 18%; right: 12%; width: 5%; height: 18%;
  background: radial-gradient(circle at 50% 70%, #ffd070 0%, #b08040 40%, transparent 70%);
  border-radius: 30% 30% 20% 20%;
  box-shadow: 0 0 25px 8px rgba(255,208,112,0.3), 0 0 50px 18px rgba(200,130,50,0.12);
  animation: hr-lamp-flicker 2s ease-in-out infinite alternate;
}
.scn-haley-on-religion-in-trade .cast-shadow {
  position: absolute; bottom: 15%; left: 10%; right: 10%; height: 20%;
  background: linear-gradient(90deg, rgba(0,0,0,0.2) 0%, rgba(0,0,0,0.4) 50%, rgba(0,0,0,0.2) 100%);
  filter: blur(12px);
  animation: hr-shadow-drift 11s ease-in-out infinite alternate;
}
.scn-haley-on-religion-in-trade .curtain {
  position: absolute; top: 0; left: 0; right: 0; height: 14%;
  background: linear-gradient(180deg, #221813 0%, rgba(34,24,19,0) 100%);
  border-radius: 0 0 45% 45%;
  animation: hr-curtain-sway 9s ease-in-out infinite alternate;
}
@keyframes hr-bg-fade {
  0% { opacity: 0.55; }
  50% { opacity: 0.7; }
  100% { opacity: 0.6; }
}
@keyframes hr-chair-sway {
  0% { transform: rotate(-1.5deg) translateY(0); }
  50% { transform: rotate(1.5deg) translateY(-2px); }
  100% { transform: rotate(-1.5deg) translateY(0); }
}
@keyframes hr-kneel {
  0% { transform: translateY(0) rotate(-2deg); }
  50% { transform: translateY(3px) rotate(2deg); }
  100% { transform: translateY(0) rotate(-2deg); }
}
@keyframes hr-gesture {
  0% { transform: rotate(25deg) translateY(0); }
  50% { transform: rotate(40deg) translateY(-4px); }
  100% { transform: rotate(28deg) translateY(0); }
}
@keyframes hr-lamp-flicker {
  0% { opacity: 0.7; box-shadow: 0 0 18px 6px rgba(255,208,112,0.2), 0 0 36px 12px rgba(200,130,50,0.08); }
  50% { opacity: 1; box-shadow: 0 0 28px 10px rgba(255,208,112,0.4), 0 0 56px 20px rgba(200,130,50,0.15); }
  100% { opacity: 0.75; box-shadow: 0 0 20px 8px rgba(255,208,112,0.25), 0 0 40px 14px rgba(200,130,50,0.1); }
}
@keyframes hr-shadow-drift {
  0% { transform: translateX(-4px) scaleX(1); }
  50% { transform: translateX(3px) scaleX(1.04); }
  100% { transform: translateX(-2px) scaleX(0.98); }
}
@keyframes hr-curtain-sway {
  0% { transform: translateY(0) scaleY(1); }
  50% { transform: translateY(2px) scaleY(1.02); }
  100% { transform: translateY(0) scaleY(1); }
}

.scn-shelby-praises-tom {
  background: 
    linear-gradient(180deg, #2a1a15 0%, #3d2a20 40%, #4a3528 70%, #1f1410 100%),
    radial-gradient(ellipse at 30% 80%, #6a452e 0%, transparent 70%);
  position: relative;
  overflow: hidden;
}
.scn-shelby-praises-tom .parlor-bg-warm {
  position: absolute; inset: 0; 
  background: linear-gradient(135deg, rgba(80,50,30,0.3) 0%, transparent 50%, rgba(30,20,15,0.4) 100%);
  animation: st-bg-warm 12s ease-in-out infinite alternate;
}
.scn-shelby-praises-tom .fireplace {
  position: absolute; bottom: 10%; right: 8%; width: 20%; height: 30%;
  background: linear-gradient(180deg, #6a3a20 0%, #4a2815 100%);
  border-radius: 10% 10% 30% 30% / 20% 20% 40% 40%;
  box-shadow: inset 0 -10px 20px rgba(0,0,0,0.5), 0 0 40px 20px rgba(200,120,60,0.3);
  animation: st-fire-glow 3s ease-in-out infinite alternate;
}
.scn-shelby-praises-tom .chair-shelby {
  position: absolute; bottom: 12%; left: 8%; width: 18%; height: 55%;
  background: linear-gradient(180deg, #2a1e18 0%, #18120e 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: st-chair-shelby 4s ease-in-out infinite;
}
.scn-shelby-praises-tom .tom-silhouette {
  position: absolute; bottom: 12%; left: 35%; width: 12%; height: 60%;
  background: linear-gradient(180deg, #1a1210 0%, #0e0a08 100%);
  border-radius: 40% 40% 20% 20% / 50% 50% 30% 30%;
  opacity: 0.7;
  transform-origin: bottom center;
  animation: st-tom-stand 6s ease-in-out infinite;
}
.scn-shelby-praises-tom .fire-glow {
  position: absolute; bottom: 20%; right: 20%; width: 30%; height: 30%;
  background: radial-gradient(circle at 50% 100%, #ffa060 0%, rgba(255,160,96,0.3) 40%, transparent 70%);
  pointer-events: none;
  animation: st-fire-pulse 2s ease-in-out infinite alternate;
}
.scn-shelby-praises-tom .bookshelf {
  position: absolute; top: 10%; left: 2%; width: 12%; height: 40%;
  background: linear-gradient(180deg, #3a2a1a 0%, #2a1a10 100%);
  border-radius: 4px;
  box-shadow: inset 0 0 10px rgba(0,0,0,0.5);
}
.scn-shelby-praises-tom .cast-shadow-warm {
  position: absolute; bottom: 12%; left: 10%; right: 10%; height: 15%;
  background: linear-gradient(90deg, rgba(0,0,0,0.1) 0%, rgba(0,0,0,0.3) 50%, rgba(0,0,0,0.1) 100%);
  filter: blur(8px);
  animation: st-shadow-soft 14s ease-in-out infinite alternate;
}
.scn-shelby-praises-tom .curtain-warm {
  position: absolute; top: 0; left: 0; right: 0; height: 12%;
  background: linear-gradient(180deg, #2a1a14 0%, rgba(42,26,20,0) 100%);
  border-radius: 0 0 50% 50%;
  animation: st-curtain-gentle 10s ease-in-out infinite alternate;
}
@keyframes st-bg-warm {
  0% { opacity: 0.5; }
  50% { opacity: 0.7; }
  100% { opacity: 0.6; }
}
@keyframes st-fire-glow {
  0% { box-shadow: inset 0 -10px 20px rgba(0,0,0,0.5), 0 0 30px 15px rgba(200,120,60,0.2); }
  50% { box-shadow: inset 0 -10px 20px rgba(0,0,0,0.5), 0 0 50px 25px rgba(200,120,60,0.4); }
  100% { box-shadow: inset 0 -10px 20px rgba(0,0,0,0.5), 0 0 35px 18px rgba(200,120,60,0.25); }
}
@keyframes st-chair-shelby {
  0% { transform: rotate(-1deg) translateY(0); }
  50% { transform: rotate(1deg) translateY(-2px); }
  100% { transform: rotate(-1deg) translateY(0); }
}
@keyframes st-tom-stand {
  0% { transform: translateY(0) scale(1); }
  50% { transform: translateY(-2px) scale(1.02); }
  100% { transform: translateY(0) scale(1); }
}
@keyframes st-fire-pulse {
  0% { opacity: 0.6; transform: scale(0.95); }
  50% { opacity: 0.9; transform: scale(1.05); }
  100% { opacity: 0.7; transform: scale(0.98); }
}
@keyframes st-shadow-soft {
  0% { transform: translateX(-2px) scaleX(1); }
  50% { transform: translateX(3px) scaleX(1.02); }
  100% { transform: translateX(-1px) scaleX(0.99); }
}
@keyframes st-curtain-gentle {
  0% { transform: translateY(0) scaleY(1); }
  50% { transform: translateY(1px) scaleY(1.01); }
  100% { transform: translateY(0) scaleY(1); }
}

.scn-eliza-vows-to-save-harry {
  background: linear-gradient(180deg, #0e0e1f 0%, #1a1423 40%, #2c1e2c 100%), radial-gradient(ellipse at 50% 100%, #2c1e2c 0%, transparent 70%);
}
.scn-eliza-vows-to-save-harry .bg { position:absolute; inset:0 0 30% 0; background: linear-gradient(180deg, #12101a 0%, transparent 100%); animation: esv1-bg 14s ease-in-out infinite alternate; }
.scn-eliza-vows-to-save-harry .floor { position:absolute; bottom:0; left:0; right:0; height:30%; background: linear-gradient(180deg, #1a141a 0%, #0c0810 100%); border-top: 1px solid #2a1e2a; }
.scn-eliza-vows-to-save-harry .window { position:absolute; top:12%; right:10%; width:22%; height:28%; background: linear-gradient(135deg, #3a4a6a 0%, #1a2a4a 100%); border-radius:4px 4px 8px 8px; box-shadow: 0 0 12px 2px rgba(100,140,200,.15), inset 0 0 20px rgba(0,0,0,.6); animation: esv1-window 8s ease-in-out infinite alternate; }
.scn-eliza-vows-to-save-harry .bed { position:absolute; bottom:22%; left:8%; width:55%; height:18%; background: linear-gradient(180deg, #3a2a1a 0%, #1a1008 100%); border-radius: 8px; box-shadow: 0 4px 8px rgba(0,0,0,.5); }
.scn-eliza-vows-to-save-harry .child { position:absolute; bottom:26%; left:25%; width:14%; height:10%; background: radial-gradient(ellipse at 50% 40%, #6a5a4a 0%, #3a2a1a 100%); border-radius: 50% 50% 30% 30%; animation: esv1-child 6s ease-in-out infinite alternate; }
.scn-eliza-vows-to-save-harry .mother { position:absolute; bottom:30%; left:50%; width:16%; height:28%; background: linear-gradient(180deg, #2a1e2a 0%, #0e0a0e 100%); border-radius: 50% 50% 40% 40% / 60% 60% 30% 30%; transform-origin: bottom center; animation: esv1-mother 5s ease-in-out infinite alternate; }
.scn-eliza-vows-to-save-harry .paper { position:absolute; bottom:34%; left:62%; width:8%; height:6%; background: #d4c8a0; border-radius: 2px; box-shadow: 0 0 8px 2px rgba(212,200,160,.3); animation: esv1-paper 7s ease-in-out infinite alternate; }
.scn-eliza-vows-to-save-harry .desk { position:absolute; bottom:20%; left:58%; width:20%; height:20%; background: linear-gradient(180deg, #3a2a1a 0%, #1a1008 100%); border-radius:4px; box-shadow: 0 2px 6px rgba(0,0,0,.4); }
.scn-eliza-vows-to-save-harry .dust-mote { position:absolute; width:3px; height:3px; background:#e8e0d0; border-radius:50%; filter: blur(1px); opacity:0.3; }
.scn-eliza-vows-to-save-harry .mote-1 { top:40%; left:30%; animation: esv1-mote 18s linear infinite; }
.scn-eliza-vows-to-save-harry .mote-2 { top:50%; left:60%; animation: esv1-mote 22s linear infinite 4s; }
@keyframes esv1-bg { 0%{opacity:.7}50%{opacity:.9}100%{opacity:.8} }
@keyframes esv1-window { 0%{opacity:.5;box-shadow:0 0 8px 1px rgba(100,140,200,.1)}50%{opacity:.8;box-shadow:0 0 18px 4px rgba(100,140,200,.25)}100%{opacity:.6;box-shadow:0 0 12px 2px rgba(100,140,200,.15)} }
@keyframes esv1-child { 0%{transform:translateY(0)}50%{transform:translateY(-2px)}100%{transform:translateY(0)} }
@keyframes esv1-mother { 0%{transform:rotate(-2deg) translateX(-2px)}50%{transform:rotate(1deg) translateX(1px)}100%{transform:rotate(-3deg) translateX(-3px)} }
@keyframes esv1-paper { 0%{opacity:.6;transform:scaleY(1)}50%{opacity:1;transform:scaleY(1.05)}100%{opacity:.7;transform:scaleY(.98)} }
@keyframes esv1-mote { 0%{transform:translateY(0) translateX(0);opacity:.15}25%{transform:translateY(-20px) translateX(10px);opacity:.35}50%{transform:translateY(-40px) translateX(-5px);opacity:.2}75%{transform:translateY(-20px) translateX(15px);opacity:.4}100%{transform:translateY(0) translateX(0);opacity:.15} }

.scn-eliza-packs-and-wakens-harry {
  background: linear-gradient(180deg, #0a0a14 0%, #16101e 50%, #1e1424 100%), radial-gradient(ellipse at 50% 100%, #1e1424 0%, transparent 70%);
}
.scn-eliza-packs-and-wakens-harry .bg { position:absolute; inset:0 0 25% 0; background: linear-gradient(180deg, #121016 0%, transparent 100%); animation: esh2-bg 12s ease-in-out infinite alternate; }
.scn-eliza-packs-and-wakens-harry .floor { position:absolute; bottom:0; left:0; right:0; height:25%; background: linear-gradient(180deg, #14101a 0%, #08040c 100%); }
.scn-eliza-packs-and-wakens-harry .drawer { position:absolute; bottom:18%; left:18%; width:22%; height:16%; background: linear-gradient(180deg, #2a1c1a 0%, #160e0c 100%); border-radius: 4px; box-shadow: inset 0 -4px 6px rgba(0,0,0,.5); animation: esh2-drawer 4s ease-in-out infinite; }
.scn-eliza-packs-and-wakens-harry .bundle { position:absolute; bottom:22%; left:30%; width:12%; height:10%; background: radial-gradient(ellipse at 50% 50%, #5a4a3a 0%, #2a1e18 100%); border-radius: 30% 40% 40% 30%; animation: esh2-bundle 6s ease-in-out infinite alternate; }
.scn-eliza-packs-and-wakens-harry .mother-arms { position:absolute; bottom:28%; left:28%; width:20%; height:14%; background: linear-gradient(135deg, #2a1e22 0%, #0e0a0e 100%); border-radius: 30% 30% 40% 40%; transform-origin: right center; animation: esh2-arms 3s ease-in-out infinite alternate; }
.scn-eliza-packs-and-wakens-harry .bed { position:absolute; bottom:16%; right:6%; width:50%; height:16%; background: linear-gradient(180deg, #241a0e 0%, #140c06 100%); border-radius: 8px; box-shadow: 0 4px 10px rgba(0,0,0,.5); }
.scn-eliza-packs-and-wakens-harry .child { position:absolute; bottom:22%; right:18%; width:12%; height:10%; background: radial-gradient(ellipse at 50% 40%, #5a4a3a 0%, #2a1e18 100%); border-radius: 50% 50% 30% 30%; animation: esh2-child 5s ease-in-out infinite; }
.scn-eliza-packs-and-wakens-harry .lamp { position:absolute; bottom:34%; right:32%; width:6%; height:8%; background: radial-gradient(circle, #e0b060 0%, #a08040 60%, transparent 100%); border-radius: 50%; box-shadow: 0 0 24px 6px rgba(200,160,80,.4), 0 0 48px 12px rgba(200,160,80,.15); animation: esh2-lamp 3s ease-in-out infinite alternate; }
.scn-eliza-packs-and-wakens-harry .shadow-shift { position:absolute; bottom:0; left:0; right:0; height:30%; background: linear-gradient(180deg, transparent 0%, rgba(0,0,0,.4) 100%); animation: esh2-shadow 8s ease-in-out infinite alternate; }
@keyframes esh2-bg { 0%{opacity:.6}50%{opacity:.9}100%{opacity:.7} }
@keyframes esh2-drawer { 0%{transform:translateY(0)}50%{transform:translateY(-3px)}100%{transform:translateY(0)} }
@keyframes esh2-bundle { 0%{transform:scaleY(1) rotate(-2deg)}50%{transform:scaleY(1.08) rotate(1deg)}100%{transform:scaleY(.98) rotate(-3deg)} }
@keyframes esh2-arms { 0%{transform:rotate(-5deg) translateX(0)}50%{transform:rotate(3deg) translateX(4px)}100%{transform:rotate(-2deg) translateX(0)} }
@keyframes esh2-child { 0%{transform:translateY(0) rotate(0)}30%{transform:translateY(-4px) rotate(-2deg)}60%{transform:translateY(-2px) rotate(1deg)}100%{transform:translateY(0) rotate(0)} }
@keyframes esh2-lamp { 0%{opacity:.7;transform:scale(1)}50%{opacity:1;transform:scale(1.05)}100%{opacity:.8;transform:scale(.98)} }
@keyframes esh2-shadow { 0%{opacity:.3}50%{opacity:.6}100%{opacity:.4} }

.scn-eliza-whispers-to-harry {
  background: linear-gradient(180deg, #080812 0%, #0e0a18 40%, #140e1a 100%), radial-gradient(ellipse at 40% 60%, #140e1a 0%, transparent 70%);
}
.scn-eliza-whispers-to-harry .bg { position:absolute; inset:0; background: linear-gradient(135deg, #100c16 0%, #0a0810 100%); animation: ewh3-bg 16s ease-in-out infinite alternate; }
.scn-eliza-whispers-to-harry .mother-head { position:absolute; bottom:35%; left:35%; width:18%; height:22%; background: linear-gradient(180deg, #1e1620 0%, #0c0810 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom right; animation: ewh3-mother-head 4s ease-in-out infinite alternate; }
.scn-eliza-whispers-to-harry .child-head { position:absolute; bottom:30%; left:50%; width:14%; height:16%; background: linear-gradient(180deg, #3a2a22 0%, #1a100e 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom left; animation: ewh3-child-head 5s ease-in-out infinite alternate; }
.scn-eliza-whispers-to-harry .mother-hand { position:absolute; bottom:38%; left:46%; width:8%; height:6%; background: radial-gradient(ellipse at 50% 50%, #2a1e20 0%, #140c0e 100%); border-radius: 40% 40% 30% 30%; animation: ewh3-hand 3s ease-in-out infinite; }
.scn-eliza-whispers-to-harry .coat { position:absolute; bottom:24%; left:48%; width:10%; height:12%; background: #2a3a3a; border-radius: 30% 30% 20% 20%; box-shadow: 0 2px 4px rgba(0,0,0,.4); animation: ewh3-coat 6s ease-in-out infinite alternate; }
.scn-eliza-whispers-to-harry .light-slice { position:absolute; top:10%; left:20%; width:4%; height:60%; background: linear-gradient(180deg, rgba(200,180,120,.08) 0%, rgba(200,180,120,.03) 50%, transparent 100%); transform: rotate(8deg); transform-origin: top center; animation: ewh3-light 9s ease-in-out infinite alternate; }
.scn-eliza-whispers-to-harry .shadow-pulse { position:absolute; inset:0; background: radial-gradient(ellipse at 40% 50%, transparent 0%, rgba(0,0,0,.3) 100%); animation: ewh3-shadow 7s ease-in-out infinite alternate; }
@keyframes ewh3-bg { 0%{opacity:.8}50%{opacity:1}100%{opacity:.85} }
@keyframes ewh3-mother-head { 0%{transform:rotate(-3deg) translateY(0)}50%{transform:rotate(2deg) translateY(-3px)}100%{transform:rotate(-4deg) translateY(-1px)} }
@keyframes ewh3-child-head { 0%{transform:rotate(2deg) translateY(0)}50%{transform:rotate(-2deg) translateY(-2px)}100%{transform:rotate(1deg) translateY(0)} }
@keyframes ewh3-hand { 0%{transform:scale(1) translateX(0)}30%{transform:scale(1.06) translateX(2px)}60%{transform:scale(.98) translateX(-1px)}100%{transform:scale(1) translateX(0)} }
@keyframes ewh3-coat { 0%{transform:translateY(0) rotate(-1deg)}50%{transform:translateY(-3px) rotate(1deg)}100%{transform:translateY(0) rotate(-2deg)} }
@keyframes ewh3-light { 0%{opacity:.4;transform:rotate(6deg)}50%{opacity:.8;transform:rotate(10deg)}100%{opacity:.5;transform:rotate(7deg)} }
@keyframes ewh3-shadow { 0%{opacity:.4}50%{opacity:.7}100%{opacity:.5} }

.scn-eliza-glides-out {
  background: linear-gradient(180deg, #040618 0%, #0a0e2a 40%, #141840 100%), radial-gradient(ellipse at 50% 0%, #141840 0%, transparent 70%);
}
.scn-eliza-glides-out .door-frame { position:absolute; inset:0 35% 0 30%; background: #1a1410; border-left: 6px solid #2a1e1a; border-right: 6px solid #2a1e1a; box-shadow: inset 0 0 30px rgba(0,0,0,.6); animation: ego4-door 10s ease-in-out infinite alternate; }
.scn-eliza-glides-out .verandah { position:absolute; bottom:0; left:25%; right:25%; height:20%; background: linear-gradient(180deg, #1e1814 0%, #0e0a08 100%); border-top: 2px solid #2a221e; }
.scn-eliza-glides-out .mother-child { position:absolute; bottom:18%; left:46%; width:14%; height:28%; background: linear-gradient(180deg, #0e0e16 0%, #06060a 100%); border-radius: 50% 50% 40% 40% / 50% 50% 30% 30%; transform-origin: bottom center; animation: ego4-mother 6s ease-in-out infinite; }
.scn-eliza-glides-out .stars { position:absolute; top:0; left:0; right:0; bottom:40%; background-repeat: repeat; background-size: 200px 200px; }
.scn-eliza-glides-out .star-field-1 { background-image: radial-gradient(1px 1px at 10% 20%, #e8e8ff, transparent), radial-gradient(1px 1px at 30% 60%, #d0d0ff, transparent), radial-gradient(1.5px 1.5px at 50% 10%, #f0f0ff, transparent), radial-gradient(1px 1px at 80% 40%, #d8d8ff, transparent), radial-gradient(1.5px 1.5px at 90% 80%, #e0e0ff, transparent); animation: ego4-stars1 30s linear infinite; }
.scn-eliza-glides-out .star-field-2 { background-image: radial-gradient(1px 1px at 15% 40%, #d0d8ff, transparent), radial-gradient(1.5px 1.5px at 45% 70%, #f0f4ff, transparent), radial-gradient(1px 1px at 65% 20%, #d4d8ff, transparent), radial-gradient(1px 1px at 85% 55%, #dce0ff, transparent); animation: ego4-stars2 40s linear infinite reverse; opacity: 0.6; }
.scn-eliza-glides-out .frost { position:absolute; bottom:15%; left:30%; right:30%; height:8%; background: linear-gradient(180deg, rgba(200,210,230,.12) 0%, transparent 100%); border-radius: 0 0 50% 50%; filter: blur(2px); animation: ego4-frost 8s ease-in-out infinite alternate; }
.scn-eliza-glides-out .breath { position:absolute; bottom:36%; left:44%; width:8%; height:6%; background: radial-gradient(ellipse at 50% 50%, rgba(220,230,240,.15) 0%, transparent 100%); border-radius: 50%; filter: blur(3px); animation: ego4-breath 5s ease-in-out infinite alternate; }
@keyframes ego4-door { 0%{opacity:.9;box-shadow:inset 0 0 20px rgba(0,0,0,.5)}50%{opacity:1;box-shadow:inset 0 0 40px rgba(0,0,0,.7)}100%{opacity:.95;box-shadow:inset 0 0 25px rgba(0,0,0,.55)} }
@keyframes ego4-mother { 0%{transform:translateX(0) translateY(0) rotate(-1deg)}25%{transform:translateX(4px) translateY(-2px) rotate(0deg)}50%{transform:translateX(8px) translateY(-1px) rotate(1deg)}75%{transform:translateX(12px) translateY(-3px) rotate(0deg)}100%{transform:translateX(16px) translateY(0) rotate(-1deg)} }
@keyframes ego4-stars1 { 0%{transform:translateY(0) scale(1)}50%{transform:translateY(-5px) scale(1.02)}100%{transform:translateY(0) scale(1)} }
@keyframes ego4-stars2 { 0%{transform:translateY(0) scale(1)}50%{transform:translateY(3px) scale(.98)}100%{transform:translateY(0) scale(1)} }
@keyframes ego4-frost { 0%{opacity:.3;transform:scaleY(1)}50%{opacity:.6;transform:scaleY(1.2)}100%{opacity:.4;transform:scaleY(.9)} }
@keyframes ego4-breath { 0%{transform:translateY(0) scale(1);opacity:.3}50%{transform:translateY(-6px) scale(1.4);opacity:.6}100%{transform:translateY(-2px) scale(.9);opacity:.4} }

/* Scene: eliza-presses-onward */
.scn-eliza-presses-onward {
  background: linear-gradient(180deg, #0c0c2e 0%, #1a1a4e 40%, #0a0a2a 100%), radial-gradient(ellipse at 50% 100%, #2a2a5e 0%, transparent 70%);
}
.scn-eliza-presses-onward .sky-night {
  position: absolute; inset: 0 0 45% 0;
  background: linear-gradient(180deg, #0a0a2a 0%, #1a1a4e 100%);
  animation: epo-sky 14s ease-in-out infinite alternate;
}
.scn-eliza-presses-onward .stars {
  position: absolute; inset: 0 0 45% 0;
  background: radial-gradient(circle at 20% 15%, #fff 0%, transparent 1.5%),
              radial-gradient(circle at 40% 20%, #fff 0%, transparent 1%),
              radial-gradient(circle at 60% 10%, #fff 0%, transparent 1.2%),
              radial-gradient(circle at 80% 25%, #fff 0%, transparent 1.8%),
              radial-gradient(circle at 15% 40%, #fff 0%, transparent 0.8%),
              radial-gradient(circle at 70% 35%, #fff 0%, transparent 1.4%),
              radial-gradient(circle at 90% 5%, #fff 0%, transparent 1%);
  filter: blur(0.5px);
  animation: epo-twinkle 4s ease-in-out infinite alternate;
}
.scn-eliza-presses-onward .fence {
  position: absolute; bottom: 35%; left: 0; right: 0; height: 12%;
  background: linear-gradient(90deg, transparent 0%, #1a1a2a 10%, #1a1a2a 12%, transparent 12%, transparent 22%, #1a1a2a 24%, #1a1a2a 26%, transparent 26%, transparent 36%, #1a1a2a 38%, #1a1a2a 40%, transparent 40%, transparent 50%, #1a1a2a 52%, #1a1a2a 54%, transparent 54%, transparent 64%, #1a1a2a 66%, #1a1a2a 68%, transparent 68%, transparent 78%, #1a1a2a 80%, #1a1a2a 82%, transparent 82%, transparent 92%, #1a1a2a 94%, #1a1a2a 96%, transparent 96%);
  box-shadow: inset 0 2px 4px rgba(0,0,0,0.6);
  animation: epo-fence 20s linear infinite;
}
.scn-eliza-presses-onward .tree-a {
  position: absolute; bottom: 38%; left: 10%; width: 30px; height: 80px;
  background: linear-gradient(180deg, #0e0e1e 0%, #1a1a2e 60%, #2a2a3e 100%);
  border-radius: 30% 30% 10% 10% / 60% 60% 10% 10%;
  transform-origin: bottom center;
  animation: epo-tree 8s ease-in-out infinite;
}
.scn-eliza-presses-onward .tree-b {
  position: absolute; bottom: 38%; right: 15%; width: 40px; height: 90px;
  background: linear-gradient(180deg, #0e0e1e 0%, #1a1a2e 60%, #2a2a3e 100%);
  border-radius: 40% 30% 10% 10% / 70% 50% 10% 10%;
  transform-origin: bottom center;
  animation: epo-tree 9s ease-in-out infinite reverse;
}
.scn-eliza-presses-onward .ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 40%;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  box-shadow: inset 0 10px 30px rgba(0,0,0,0.7);
  animation: epo-ground 12s ease-in-out infinite alternate;
}
.scn-eliza-presses-onward .figure {
  position: absolute; bottom: 28%; left: 40%; width: 16px; height: 36px;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: epo-walk 4s ease-in-out infinite;
}
.scn-eliza-presses-onward .shadow {
  position: absolute; bottom: 28%; left: 40%; width: 30px; height: 8px;
  background: rgba(0,0,0,0.4);
  border-radius: 50%;
  filter: blur(4px);
  transform: translateX(4px);
  animation: epo-shadow 4s ease-in-out infinite;
}
@keyframes epo-sky { 0% { opacity: 0.7; } 50% { opacity: 1; } 100% { opacity: 0.8; } }
@keyframes epo-twinkle { 0% { opacity: 0.6; } 30% { opacity: 1; } 70% { opacity: 0.7; } 100% { opacity: 0.5; } }
@keyframes epo-fence { 0% { background-position: 0 0; } 100% { background-position: -100% 0; } }
@keyframes epo-tree { 0% { transform: rotate(0deg); } 25% { transform: rotate(2deg) translateY(-2px); } 50% { transform: rotate(-1deg) translateY(0); } 75% { transform: rotate(1deg) translateY(-3px); } 100% { transform: rotate(0deg); } }
@keyframes epo-ground { 0% { transform: translateY(0); } 50% { transform: translateY(-2px); } 100% { transform: translateY(0); } }
@keyframes epo-walk {
  0% { transform: translateX(0) rotate(-2deg); }
  25% { transform: translateX(8px) rotate(1deg) translateY(-1px); }
  50% { transform: translateX(16px) rotate(-1deg) translateY(0); }
  75% { transform: translateX(24px) rotate(2deg) translateY(-2px); }
  100% { transform: translateX(32px) rotate(0deg) translateY(0); }
}
@keyframes epo-shadow {
  0% { transform: translateX(4px) scale(1); }
  25% { transform: translateX(12px) scale(1.05); }
  50% { transform: translateX(20px) scale(1); }
  75% { transform: translateX(28px) scale(0.95); }
  100% { transform: translateX(36px) scale(1); }
}

/* Scene: eliza-walks-by-daylight */
.scn-eliza-walks-by-daylight {
  background: linear-gradient(180deg, #f8c8a0 0%, #f0a060 30%, #d08040 60%, #b06030 100%), radial-gradient(ellipse at 60% 20%, #f8d8b0 0%, transparent 60%);
}
.scn-eliza-walks-by-daylight .sky-dawn {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(180deg, #f8c8a0 0%, #f0a060 40%, #d08040 100%);
  animation: ewd-sky 12s ease-in-out infinite alternate;
}
.scn-eliza-walks-by-daylight .sun {
  position: absolute; top: 12%; right: 20%; width: 50px; height: 50px;
  background: radial-gradient(circle, #ffe080 0%, #f8a040 60%, transparent 100%);
  border-radius: 50%;
  box-shadow: 0 0 60px 20px #f8a040, 0 0 120px 40px rgba(248,160,64,0.3);
  animation: ewd-sun 18s ease-in-out infinite alternate;
}
.scn-eliza-walks-by-daylight .road {
  position: absolute; bottom: 25%; left: 10%; right: 10%; height: 18%;
  background: linear-gradient(180deg, #c09070 0%, #a07050 50%, #805030 100%);
  border-radius: 10% 10% 0 0 / 20% 20% 0 0;
  box-shadow: inset 0 4px 10px rgba(0,0,0,0.3);
  animation: ewd-road 8s ease-in-out infinite alternate;
}
.scn-eliza-walks-by-daylight .tree-road-a {
  position: absolute; bottom: 30%; left: 5%; width: 50px; height: 120px;
  background: linear-gradient(180deg, #3a2a1a 0%, #2a1a0a 60%, #1a0a00 100%);
  border-radius: 40% 30% 10% 10% / 70% 50% 10% 10%;
  transform-origin: bottom center;
  animation: ewd-tree 10s ease-in-out infinite;
}
.scn-eliza-walks-by-daylight .tree-road-b {
  position: absolute; bottom: 30%; right: 8%; width: 45px; height: 110px;
  background: linear-gradient(180deg, #3a2a1a 0%, #2a1a0a 60%, #1a0a00 100%);
  border-radius: 30% 40% 10% 10% / 50% 70% 10% 10%;
  transform-origin: bottom center;
  animation: ewd-tree 11s ease-in-out infinite reverse;
}
.scn-eliza-walks-by-daylight .figure-walk {
  position: absolute; bottom: 28%; left: 45%; width: 18px; height: 38px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0a00 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: ewd-walk 3.5s ease-in-out infinite;
}
.scn-eliza-walks-by-daylight .shadow-walk {
  position: absolute; bottom: 28%; left: 45%; width: 28px; height: 6px;
  background: rgba(0,0,0,0.3);
  border-radius: 50%;
  filter: blur(3px);
  transform: translateX(6px);
  animation: ewd-shadow 3.5s ease-in-out infinite;
}
.scn-eliza-walks-by-daylight .horse-cart {
  position: absolute; bottom: 30%; right: 15%; width: 60px; height: 30px;
  background: linear-gradient(180deg, #5a3a1a 0%, #3a1a00 100%);
  border-radius: 20% 20% 30% 30% / 30% 30% 40% 40%;
  box-shadow: 0 4px 8px rgba(0,0,0,0.4);
  animation: ewd-cart 7s ease-in-out infinite;
}
@keyframes ewd-sky { 0% { opacity: 0.8; background-position: 0 0; } 50% { opacity: 1; background-position: 10% 0; } 100% { opacity: 0.9; background-position: 0 0; } }
@keyframes ewd-sun { 0% { transform: translateX(0) scale(1); opacity: 0.9; } 50% { transform: translateX(10px) scale(1.02); opacity: 1; } 100% { transform: translateX(-10px) scale(0.98); opacity: 0.95; } }
@keyframes ewd-road { 0% { transform: translateY(0); } 50% { transform: translateY(-2px); } 100% { transform: translateY(0); } }
@keyframes ewd-tree { 0% { transform: rotate(0deg); } 30% { transform: rotate(2deg) translateY(-3px); } 60% { transform: rotate(-1deg) translateY(0); } 100% { transform: rotate(0deg); } }
@keyframes ewd-walk {
  0% { transform: translateX(0) rotate(-2deg); }
  25% { transform: translateX(6px) rotate(1deg) translateY(-2px); }
  50% { transform: translateX(12px) rotate(-1deg) translateY(0); }
  75% { transform: translateX(18px) rotate(2deg) translateY(-2px); }
  100% { transform: translateX(24px) rotate(0deg) translateY(0); }
}
@keyframes ewd-shadow {
  0% { transform: translateX(6px) scale(1); }
  25% { transform: translateX(12px) scale(1.04); }
  50% { transform: translateX(18px) scale(1); }
  75% { transform: translateX(24px) scale(0.96); }
  100% { transform: translateX(30px) scale(1); }
}
@keyframes ewd-cart { 0% { transform: translateX(0); } 25% { transform: translateX(5px) translateY(-2px); } 50% { transform: translateX(0) translateY(0); } 75% { transform: translateX(-5px) translateY(-1px); } 100% { transform: translateX(0); } }

/* Scene: eliza-rests-by-brook */
.scn-eliza-rests-by-brook {
  background: linear-gradient(180deg, #c8e8ff 0%, #a8d0f0 30%, #80b8e0 60%, #6090b0 100%), radial-gradient(ellipse at 50% 30%, #d0f0ff 0%, transparent 60%);
}
.scn-eliza-rests-by-brook .sky-sunny {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #c8e8ff 0%, #a8d0f0 100%);
  animation: erb-sky 15s ease-in-out infinite alternate;
}
.scn-eliza-rests-by-brook .sun-glare {
  position: absolute; top: 10%; left: 30%; width: 40px; height: 40px;
  background: radial-gradient(circle, #ffffc0 0%, #ffe080 40%, transparent 100%);
  border-radius: 50%;
  box-shadow: 0 0 80px 30px #ffe080, 0 0 160px 60px rgba(255,224,128,0.3);
  animation: erb-sun 20s ease-in-out infinite alternate;
}
.scn-eliza-rests-by-brook .trees-wood {
  position: absolute; bottom: 25%; left: 0; right: 0; height: 50%;
  background: linear-gradient(180deg, #3a6a3a 0%, #2a5a2a 40%, #1a3a1a 100%);
  border-radius: 60% 40% 0 0 / 80% 70% 0 0;
  box-shadow: inset 0 8px 20px rgba(0,0,0,0.4);
  animation: erb-trees 12s ease-in-out infinite alternate;
}
.scn-eliza-rests-by-brook .rock {
  position: absolute; bottom: 20%; left: 25%; width: 80px; height: 60px;
  background: linear-gradient(180deg, #6a5a4a 0%, #4a3a2a 100%);
  border-radius: 40% 30% 20% 20% / 50% 40% 20% 20%;
  box-shadow: 4px 4px 12px rgba(0,0,0,0.5);
  transform: rotate(-5deg);
  animation: erb-rock 9s ease-in-out infinite;
}
.scn-eliza-rests-by-brook .brook {
  position: absolute; bottom: 18%; left: 5%; right: 5%; height: 8%;
  background: linear-gradient(90deg, #a0d0e0 0%, #80b8d0 30%, #a0d0e0 50%, #6098b0 70%, #a0d0e0 100%);
  border-radius: 50% 50% 40% 40% / 30% 30% 20% 20%;
  filter: blur(2px);
  animation: erb-brook 6s ease-in-out infinite alternate;
}
.scn-eliza-rests-by-brook .figure-rest {
  position: absolute; bottom: 24%; left: 30%; width: 20px; height: 40px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0a00 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: erb-figure 5s ease-in-out infinite;
}
.scn-eliza-rests-by-brook .child {
  position: absolute; bottom: 24%; left: 35%; width: 14px; height: 28px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: erb-child 5s ease-in-out infinite 0.2s;
}
.scn-eliza-rests-by-brook .fence-wood {
  position: absolute; bottom: 30%; left: 0; right: 0; height: 10%;
  background: linear-gradient(90deg, transparent 0%, #5a3a1a 8%, #5a3a1a 10%, transparent 10%, transparent 20%, #5a3a1a 28%, #5a3a1a 30%, transparent 30%, transparent 40%, #5a3a1a 48%, #5a3a1a 50%, transparent 50%, transparent 60%, #5a3a1a 68%, #5a3a1a 70%, transparent 70%, transparent 80%, #5a3a1a 88%, #5a3a1a 90%, transparent 90%);
  box-shadow: inset 0 2px 4px rgba(0,0,0,0.5);
  animation: erb-fence 25s linear infinite;
}
.scn-eliza-rests-by-brook .breakfast {
  position: absolute; bottom: 24%; left: 26%; width: 12px; height: 6px;
  background: radial-gradient(circle, #e0a060 0%, #c08040 100%);
  border-radius: 50%;
  box-shadow: 0 0 8px 2px rgba(192,128,64,0.6);
  animation: erb-breakfast 4s ease-in-out infinite alternate;
}
@keyframes erb-sky { 0% { opacity: 0.9; } 50% { opacity: 1; } 100% { opacity: 0.85; } }
@keyframes erb-sun { 0% { transform: scale(1); opacity: 0.95; } 50% { transform: scale(1.03); opacity: 1; } 100% { transform: scale(0.97); opacity: 0.9; } }
@keyframes erb-trees { 0% { transform: translateY(0) scaleY(1); } 50% { transform: translateY(-5px) scaleY(1.02); } 100% { transform: translateY(0) scaleY(1); } }
@keyframes erb-rock { 0% { transform: rotate(-5deg) translateY(0); } 50% { transform: rotate(-3deg) translateY(-3px); } 100% { transform: rotate(-5deg) translateY(0); } }
@keyframes erb-brook { 0% { background-position: 0 0; } 50% { background-position: 20% 0; } 100% { background-position: 0 0; } }
@keyframes erb-figure { 0% { transform: translateX(0) rotate(-2deg); } 25% { transform: translateX(4px) rotate(1deg) translateY(-1px); } 50% { transform: translateX(0) rotate(0deg) translateY(0); } 75% { transform: translateX(-4px) rotate(-1deg) translateY(-1px); } 100% { transform: translateX(0) rotate(2deg); } }
@keyframes erb-child { 0% { transform: translateX(0) rotate(0deg); } 25% { transform: translateX(3px) rotate(2deg) translateY(-1px); } 50% { transform: translateX(0) rotate(0deg); } 75% { transform: translateX(-3px) rotate(-2deg) translateY(-1px); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes erb-fence { 0% { background-position: 0 0; } 100% { background-position: -100% 0; } }
@keyframes erb-breakfast { 0% { transform: scale(1); opacity: 0.8; } 50% { transform: scale(1.1); opacity: 1; } 100% { transform: scale(1); opacity: 0.9; } }

/* Scene: eliza-passes-unrecognized */
.scn-eliza-passes-unrecognized {
  background: linear-gradient(180deg, #f8e0c0 0%, #e8c8a0 40%, #c8a080 80%, #a08060 100%), radial-gradient(ellipse at 50% 20%, #fff0e0 0%, transparent 70%);
}
.scn-eliza-passes-unrecognized .sky-bright {
  position: absolute; inset: 0 0 35% 0;
  background: linear-gradient(180deg, #f8e0c0 0%, #e8c8a0 100%);
  animation: epu-sky 14s ease-in-out infinite alternate;
}
.scn-eliza-passes-unrecognized .sun-behind {
  position: absolute; top: 5%; left: 15%; width: 60px; height: 60px;
  background: radial-gradient(circle, #fff8e0 0%, #ffe080 50%, transparent 100%);
  border-radius: 50%;
  box-shadow: 0 0 100px 30px #ffe080, 0 0 200px 60px rgba(255,224,128,0.3);
  animation: epu-sun 22s ease-in-out infinite alternate;
}
.scn-eliza-passes-unrecognized .field-grass {
  position: absolute; bottom: 0; left: 0; right: 0; height: 60%;
  background: linear-gradient(180deg, #c8a060 0%, #a08040 30%, #806020 60%, #604010 100%);
  border-radius: 40% 30% 0 0 / 60% 50% 0 0;
  box-shadow: inset 0 10px 30px rgba(0,0,0,0.3);
  animation: epu-field 16s ease-in-out infinite alternate;
}
.scn-eliza-passes-unrecognized .road-dusty {
  position: absolute; bottom: 20%; left: 10%; right: 10%; height: 14%;
  background: linear-gradient(180deg, #d0b090 0%, #b09070 50%, #907050 100%);
  border-radius: 10% 10% 0 0 / 20% 20% 0 0;
  box-shadow: inset 0 4px 8px rgba(0,0,0,0.2);
  animation: epu-road 10s ease-in-out infinite alternate;
}
.scn-eliza-passes-unrecognized .figure-pass {
  position: absolute; bottom: 24%; left: 50%; 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 center;
  animation: epu-walk 4s ease-in-out infinite;
}
.scn-eliza-passes-unrecognized .shadow-pass {
  position: absolute; bottom: 24%; left: 50%; width: 30px; height: 6px;
  background: rgba(0,0,0,0.25);
  border-radius: 50%;
  filter: blur(3px);
  transform: translateX(8px);
  animation: epu-shadow 4s ease-in-out infinite;
}
.scn-eliza-passes-unrecognized .fence-distant {
  position: absolute; bottom: 32%; left: 0; right: 0; height: 8%;
  background: linear-gradient(90deg, transparent 0%, #8a6a4a 5%, #8a6a4a 7%, transparent 7%, transparent 15%, #8a6a4a 20%, #8a6a4a 22%, transparent 22%, transparent 30%, #8a6a4a 35%, #8a6a4a 37%, transparent 37%, transparent 45%, #8a6a4a 50%, #8a6a4a 52%, transparent 52%, transparent 60%, #8a6a4a 65%, #8a6a4a 67%, transparent 67%, transparent 75%, #8a6a4a 80%, #8a6a4a 82%, transparent 82%, transparent 90%, #8a6a4a 95%, #8a6a4a 97%, transparent 97%);
  opacity: 0.6;
  animation: epu-fence 30s linear infinite;
}
@keyframes epu-sky { 0% { opacity: 0.85; } 50% { opacity: 1; } 100% { opacity: 0.9; } }
@keyframes epu-sun { 0% { transform: translateX(0) scale(1); } 50% { transform: translateX(15px) scale(1.02); } 100% { transform: translateX(-15px) scale(0.98); } }
@keyframes epu-field { 0% { transform: translateY(0); } 50% { transform: translateY(-3px); } 100% { transform: translateY(0); } }
@keyframes epu-road { 0% { transform: translateY(0); } 50% { transform: translateY(-1px); } 100% { transform: translateY(0); } }
@keyframes epu-walk {
  0% { transform: translateX(0) rotate(-2deg); }
  25% { transform: translateX(8px) rotate(1deg) translateY(-2px); }
  50% { transform: translateX(16px) rotate(-1deg) translateY(0); }
  75% { transform: translateX(24px) rotate(2deg) translateY(-2px); }
  100% { transform: translateX(32px) rotate(0deg) translateY(0); }
}
@keyframes epu-shadow {
  0% { transform: translateX(8px) scale(1); }
  25% { transform: translateX(16px) scale(1.05); }
  50% { transform: translateX(24px) scale(1); }
  75% { transform: translateX(32px) scale(0.95); }
  100% { transform: translateX(40px) scale(1); }
}
@keyframes epu-fence { 0% { background-position: 0 0; } 100% { background-position: -100% 0; } }

/* Scene: plan-to-depart (tense, sunlit) */
.scn-plan-to-depart {
  background:
    linear-gradient(180deg, #4a7aa0 0%, #8ab8d0 30%, #f0c860 70%, #e8a040 100%),
    radial-gradient(ellipse at 50% 0%, #fff4d0 0%, transparent 60%);
}

.scn-plan-to-depart .sun {
  position: absolute;
  top: 8%;
  left: 70%;
  width: 60px;
  height: 60px;
  background: radial-gradient(circle, #fff8c0 0%, #f0c040 60%, transparent 100%);
  border-radius: 50%;
  box-shadow: 0 0 40px 20px #f0c040, 0 0 80px 40px rgba(240,192,64,0.3);
  animation: pd-sun 5s ease-in-out infinite alternate;
}

.scn-plan-to-depart .sky {
  position: absolute;
  inset: 0 0 55% 0;
  background: linear-gradient(180deg, transparent 0%, rgba(74,122,160,0.3) 100%);
  animation: pd-sky 12s ease-in-out infinite alternate;
}

.scn-plan-to-depart .ground {
  position: absolute;
  bottom: 0;
  left: 0;
  right: 0;
  height: 55%;
  background: linear-gradient(180deg, #a07030 0%, #6a4020 60%, #3a2010 100%);
  border-radius: 60% 40% 0 0 / 40% 30% 0 0;
  box-shadow: inset 0 15px 30px rgba(0,0,0,0.4);
  animation: pd-ground 18s ease-in-out infinite alternate;
}

.scn-plan-to-depart .road {
  position: absolute;
  bottom: 28%;
  left: 10%;
  right: 10%;
  height: 8%;
  background: linear-gradient(90deg, #8a6a40 0%, #b09050 30%, #8a6a40 70%, #6a5030 100%);
  border-radius: 4px;
  box-shadow: 0 4px 8px rgba(0,0,0,0.5);
  animation: pd-road 20s ease-in-out infinite alternate;
}

.scn-plan-to-depart .figure {
  position: absolute;
  bottom: 30%;
  left: 35%;
  width: 16px;
  height: 40px;
  background: linear-gradient(180deg, #2a1a0a 0%, #0a0800 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: pd-figure 3s ease-in-out infinite;
}

.scn-plan-to-depart .horse {
  position: absolute;
  bottom: 30%;
  left: 45%;
  width: 40px;
  height: 30px;
  background: linear-gradient(180deg, #4a3020 0%, #2a1a10 100%);
  border-radius: 60% 40% 30% 50% / 50% 40% 30% 60%;
  transform-origin: bottom center;
  animation: pd-horse 4s ease-in-out infinite;
}

.scn-plan-to-depart .tree {
  position: absolute;
  bottom: 35%;
  left: 20%;
  width: 20px;
  height: 60px;
  background: linear-gradient(180deg, #4a3020 0%, #2a1a10 100%);
  border-radius: 30% 30% 20% 20%;
  box-shadow: 0 4px 8px rgba(0,0,0,0.3);
  animation: pd-tree 6s ease-in-out infinite;
}

.scn-plan-to-depart .shadow {
  position: absolute;
  bottom: 26%;
  left: 30%;
  width: 50px;
  height: 8px;
  background: radial-gradient(ellipse at 50% 50%, rgba(0,0,0,0.3) 0%, transparent 100%);
  border-radius: 50%;
  animation: pd-shadow 8s ease-in-out infinite;
}

.scn-plan-to-depart .dust {
  position: absolute;
  bottom: 26%;
  left: 40%;
  width: 80px;
  height: 20px;
  background: radial-gradient(ellipse at 50% 50%, rgba(200,180,140,0.3) 0%, transparent 100%);
  filter: blur(6px);
  animation: pd-dust 5s ease-in-out infinite alternate;
}

@keyframes pd-sun {
  0% { transform: scale(1); opacity: 0.9; }
  50% { transform: scale(1.08); opacity: 1; }
  100% { transform: scale(0.95); opacity: 0.85; }
}

@keyframes pd-sky {
  0% { opacity: 0.6; }
  50% { opacity: 1; }
  100% { opacity: 0.7; }
}

@keyframes pd-ground {
  0% { transform: translateY(0); }
  50% { transform: translateY(-2px); }
  100% { transform: translateY(0); }
}

@keyframes pd-road {
  0% { opacity: 0.8; filter: brightness(1); }
  50% { opacity: 1; filter: brightness(1.1); }
  100% { opacity: 0.9; filter: brightness(0.9); }
}

@keyframes pd-figure {
  0% { transform: translateX(0) translateY(0) rotate(-2deg); }
  25% { transform: translateX(4px) translateY(-2px) rotate(2deg); }
  50% { transform: translateX(8px) translateY(0) rotate(-1deg); }
  75% { transform: translateX(12px) translateY(-1px) rotate(1deg); }
  100% { transform: translateX(16px) translateY(0) rotate(0deg); }
}

@keyframes pd-horse {
  0% { transform: translateX(0) rotate(-1deg); }
  30% { transform: translateX(3px) rotate(2deg); }
  60% { transform: translateX(6px) rotate(-2deg); }
  100% { transform: translateX(10px) rotate(1deg); }
}

@keyframes pd-tree {
  0% { transform: rotate(-1deg); }
  50% { transform: rotate(2deg); }
  100% { transform: rotate(-1deg); }
}

@keyframes pd-shadow {
  0% { transform: scaleX(1); opacity: 0.7; }
  50% { transform: scaleX(1.2); opacity: 0.9; }
  100% { transform: scaleX(0.9); opacity: 0.6; }
}

@keyframes pd-dust {
  0% { transform: translateX(0) scale(1); opacity: 0.3; }
  50% { transform: translateX(15px) scale(1.3); opacity: 0.6; }
  100% { transform: translateX(-5px) scale(0.9); opacity: 0.2; }
}

/* Scene: river-mississippi-chateaubriand (calm, sunlit) */
.scn-river-mississippi-chateaubriand {
  background:
    linear-gradient(180deg, #6a9ac0 0%, #a8d0e8 40%, #e0d8b0 70%, #d0b070 100%),
    radial-gradient(ellipse at 50% 0%, #fff8d0 0%, transparent 60%);
}

.scn-river-mississippi-chateaubriand .sky {
  position: absolute;
  inset: 0 0 50% 0;
  background: linear-gradient(180deg, rgba(106,154,192,0.5) 0%, transparent 100%);
  animation: rc-sky 20s ease-in-out infinite alternate;
}

.scn-river-mississippi-chateaubriand .sun-reflection {
  position: absolute;
  top: 12%;
  left: 45%;
  width: 40px;
  height: 40px;
  background: radial-gradient(circle, #fff8c8 0%, #f0d070 50%, transparent 100%);
  border-radius: 50%;
  box-shadow: 0 0 30px 15px #f0d070;
  animation: rc-sunref 8s ease-in-out infinite alternate;
}

.scn-river-mississippi-chateaubriand .river {
  position: absolute;
  bottom: 10%;
  left: 0;
  right: 0;
  height: 45%;
  background: linear-gradient(180deg, #6a9ac0 0%, #4a7aa0 40%, #3a5a80 100%);
  box-shadow: inset 0 10px 20px rgba(0,0,0,0.2);
  animation: rc-river 15s ease-in-out infinite alternate;
}

.scn-river-mississippi-chateaubriand .bank {
  position: absolute;
  bottom: 20%;
  left: 5%;
  right: 5%;
  height: 12%;
  background: linear-gradient(180deg, #a08050 0%, #705030 100%);
  border-radius: 30% 70% 0 0 / 40% 50% 0 0;
  box-shadow: 0 -4px 10px rgba(0,0,0,0.3);
  animation: rc-bank 25s ease-in-out infinite alternate;
}

.scn-river-mississippi-chateaubriand .rose {
  position: absolute;
  bottom: 35%;
  left: 60%;
  width: 14px;
  height: 14px;
  background: radial-gradient(circle, #d07050 0%, #a04030 60%, #5e1a1d 100%);
  border-radius: 50%;
  box-shadow: 0 0 10px 4px rgba(160,64,48,0.4);
  animation: rc-rose 6s ease-in-out infinite;
}

.scn-river-mississippi-chateaubriand .canoe {
  position: absolute;
  bottom: 22%;
  left: 30%;
  width: 50px;
  height: 10px;
  background: linear-gradient(180deg, #6a4020 0%, #4a2010 100%);
  border-radius: 40% 40% 30% 30%;
  box-shadow: 0 3px 6px rgba(0,0,0,0.4);
  animation: rc-canoe 12s ease-in-out infinite alternate;
}

.scn-river-mississippi-chateaubriand .mist {
  position: absolute;
  top: 15%;
  left: 20%;
  width: 120px;
  height: 30px;
  background: radial-gradient(ellipse at 50% 50%, rgba(255,255,255,0.3) 0%, transparent 100%);
  filter: blur(8px);
  animation: rc-mist 30s linear infinite alternate;
}

@keyframes rc-sky {
  0% { opacity: 0.6; }
  50% { opacity: 0.9; }
  100% { opacity: 0.7; }
}

@keyframes rc-sunref {
  0% { transform: scale(1) rotate(0deg); opacity: 0.8; }
  50% { transform: scale(1.05) rotate(3deg); opacity: 1; }
  100% { transform: scale(0.95) rotate(-2deg); opacity: 0.7; }
}

@keyframes rc-river {
  0% { background-position: 0% 0%; }
  50% { background-position: 5% 2%; }
  100% { background-position: -3% 1%; }
}

@keyframes rc-bank {
  0% { transform: translateY(0); }
  50% { transform: translateY(-2px); }
  100% { transform: translateY(0); }
}

@keyframes rc-rose {
  0% { transform: rotate(0deg) scale(1); }
  33% { transform: rotate(5deg) scale(1.1); }
  66% { transform: rotate(-3deg) scale(0.95); }
  100% { transform: rotate(2deg) scale(1); }
}

@keyframes rc-canoe {
  0% { transform: translateX(0) rotate(-1deg); }
  50% { transform: translateX(8px) rotate(2deg); }
  100% { transform: translateX(-5px) rotate(-2deg); }
}

@keyframes rc-mist {
  0% { transform: translateX(-30px) scale(1); opacity: 0.3; }
  50% { transform: translateX(30px) scale(1.2); opacity: 0.5; }
  100% { transform: translateX(-20px) scale(0.8); opacity: 0.2; }
}

/* Scene: river-dream-reality (calm, sunlit, dreamy) */
.scn-river-dream-reality {
  background:
    linear-gradient(180deg, #8ab8d0 0%, #c0d8e8 30%, #f0d8a0 60%, #e8b060 100%),
    radial-gradient(ellipse at 50% 0%, #fff0c0 0%, transparent 70%);
}

.scn-river-dream-reality .sky {
  position: absolute;
  inset: 0 0 45% 0;
  background: linear-gradient(180deg, rgba(255,240,192,0.2) 0%, transparent 100%);
  animation: rd-sky 18s ease-in-out infinite alternate;
}

.scn-river-dream-reality .sun-rays {
  position: absolute;
  top: 5%;
  left: 30%;
  width: 120px;
  height: 80px;
  background: linear-gradient(135deg, rgba(255,248,200,0.6) 0%, transparent 100%);
  clip-path: polygon(0% 0%, 100% 20%, 80% 100%, 20% 80%);
  filter: blur(4px);
  animation: rd-rays 10s ease-in-out infinite alternate;
}

.scn-river-dream-reality .river {
  position: absolute;
  bottom: 8%;
  left: 0;
  right: 0;
  height: 42%;
  background: linear-gradient(180deg, #4a7aa0 0%, #3a5a80 50%, #2a4a60 100%);
  box-shadow: inset 0 8px 16px rgba(0,0,0,0.2);
  animation: rd-river 20s ease-in-out infinite alternate;
}

.scn-river-dream-reality .mist {
  position: absolute;
  top: 25%;
  left: 10%;
  width: 200px;
  height: 40px;
  background: radial-gradient(ellipse at 50% 50%, rgba(200,220,240,0.3) 0%, transparent 100%);
  filter: blur(12px);
  animation: rd-mist 40s linear infinite alternate;
}

.scn-river-dream-reality .shore {
  position: absolute;
  bottom: 22%;
  left: 0;
  right: 0;
  height: 14%;
  background: linear-gradient(180deg, #b09060 0%, #806040 100%);
  border-radius: 20% 80% 0 0 / 30% 70% 0 0;
  animation: rd-shore 25s ease-in-out infinite alternate;
}

.scn-river-dream-reality .tree-silhouette {
  position: absolute;
  bottom: 28%;
  left: 75%;
  width: 30px;
  height: 80px;
  background: linear-gradient(180deg, #2a1a10 0%, #0a0800 100%);
  border-radius: 40% 60% 0 0 / 30% 50% 0 0;
  animation: rd-tree 8s ease-in-out infinite;
}

.scn-river-dream-reality .light-particles {
  position: absolute;
  top: 10%;
  left: 20%;
  width: 100px;
  height: 60px;
  background: 
    radial-gradient(circle at 30% 40%, rgba(255,248,200,0.5) 0%, transparent 30%),
    radial-gradient(circle at 70% 80%, rgba(255,248,200,0.4) 0%, transparent 40%),
    radial-gradient(circle at 50% 20%, rgba(255,248,200,0.3) 0%, transparent 50%);
  filter: blur(3px);
  animation: rd-particles 15s ease-in-out infinite alternate;
}

@keyframes rd-sky {
  0% { opacity: 0.7; }
  50% { opacity: 0.9; }
  100% { opacity: 0.6; }
}

@keyframes rd-rays {
  0% { transform: scale(1) rotate(0deg); opacity: 0.5; }
  50% { transform: scale(1.1) rotate(5deg); opacity: 0.8; }
  100% { transform: scale(0.95) rotate(-3deg); opacity: 0.4; }
}

@keyframes rd-river {
  0% { background-position: 0% 0%; }
  50% { background-position: 4% 2%; }
  100% { background-position: -2% 1%; }
}

@keyframes rd-mist {
  0% { transform: translateX(-40px) scale(1); opacity: 0.2; }
  50% { transform: translateX(40px) scale(1.2); opacity: 0.4; }
  100% { transform: translateX(-30px) scale(0.9); opacity: 0.15; }
}

@keyframes rd-shore {
  0% { transform: translateY(0); }
  50% { transform: translateY(-2px); }
  100% { transform: translateY(0); }
}

@keyframes rd-tree {
  0% { transform: rotate(-2deg); }
  50% { transform: rotate(3deg); }
  100% { transform: rotate(-1deg); }
}

@keyframes rd-particles {
  0% { transform: translateY(0) scale(1); opacity: 0.4; }
  50% { transform: translateY(-10px) scale(1.2); opacity: 0.7; }
  100% { transform: translateY(5px) scale(0.9); opacity: 0.3; }
}

/* Scene: river-freight-sorrow (dark mood, sunlit - sunset) */
.scn-river-freight-sorrow {
  background:
    linear-gradient(180deg, #5a2a3a 0%, #8a3a3a 30%, #c06040 60%, #d08050 80%, #b06040 100%),
    radial-gradient(ellipse at 50% 0%, #ffc080 0%, transparent 60%);
}

.scn-river-freight-sorrow .sky {
  position: absolute;
  inset: 0 0 40% 0;
  background: linear-gradient(180deg, rgba(255,192,128,0.3) 0%, transparent 100%);
  animation: rf-sky 20s ease-in-out infinite alternate;
}

.scn-river-freight-sorrow .sunset-glow {
  position: absolute;
  top: 10%;
  left: 40%;
  width: 80px;
  height: 80px;
  background: radial-gradient(circle, #ffb060 0%, #c06030 60%, transparent 100%);
  border-radius: 50%;
  box-shadow: 0 0 50px 20px #c06030;
  animation: rf-glow 12s ease-in-out infinite alternate;
}

.scn-river-freight-sorrow .river {
  position: absolute;
  bottom: 5%;
  left: 0;
  right: 0;
  height: 50%;
  background: linear-gradient(180deg, #8a3a3a 0%, #4a1a1a 60%, #2a0a0a 100%);
  box-shadow: inset 0 10px 20px rgba(0,0,0,0.3);
  animation: rf-river 18s ease-in-out infinite alternate;
}

.scn-river-freight-sorrow .ship {
  position: absolute;
  bottom: 18%;
  left: 20%;
  width: 70px;
  height: 25px;
  background: linear-gradient(180deg, #3a1a1a 0%, #1a0808 100%);
  border-radius: 20% 20% 10% 10%;
  box-shadow: 0 4px 8px rgba(0,0,0,0.5);
  animation: rf-ship 8s ease-in-out infinite alternate;
}

.scn-river-freight-sorrow .sails {
  position: absolute;
  bottom: 30%;
  left: 25%;
  width: 30px;
  height: 40px;
  background: linear-gradient(180deg, #4a2a2a 0%, #2a1010 100%);
  border-radius: 30% 30% 10% 10%;
  transform-origin: bottom center;
  animation: rf-sails 6s ease-in-out infinite alternate;
}

.scn-river-freight-sorrow .figures {
  position: absolute;
  bottom: 21%;
  left: 30%;
  width: 14px;
  height: 28px;
  background: linear-gradient(180deg, #1a0a0a 0%, #000000 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: rf-figures 7s ease-in-out infinite;
}

.scn-river-freight-sorrow .teardrops {
  position: absolute;
  top: 15%;
  left: 30%;
  width: 100px;
  height: 80px;
  background: 
    radial-gradient(circle at 20% 30%, rgba(160,180,200,0.3) 0%, transparent 20%),
    radial-gradient(circle at 60% 50%, rgba(160,180,200,0.2) 0%, transparent 30%),
    radial-gradient(circle at 80% 70%, rgba(160,180,200,0.15) 0%, transparent 40%);
  filter: blur(4px);
  animation: rf-tears 10s ease-in-out infinite alternate;
}

.scn-river-freight-sorrow .shadow {
  position: absolute;
  bottom: 15%;
  left: 15%;
  width: 100px;
  height: 10px;
  background: radial-gradient(ellipse at 50% 50%, rgba(0,0,0,0.4) 0%, transparent 100%);
  border-radius: 50%;
  animation: rf-shadow 9s ease-in-out infinite alternate;
}

@keyframes rf-sky {
  0% { opacity: 0.5; }
  50% { opacity: 0.8; }
  100% { opacity: 0.4; }
}

@keyframes rf-glow {
  0% { transform: scale(1); opacity: 0.7; }
  50% { transform: scale(1.05); opacity: 1; }
  100% { transform: scale(0.95); opacity: 0.6; }
}

@keyframes rf-river {
  0% { background-position: 0% 0%; }
  50% { background-position: 3% 1%; }
  100% { background-position: -2% 2%; }
}

@keyframes rf-ship {
  0% { transform: translateX(0) rotate(-2deg); }
  50% { transform: translateX(6px) rotate(3deg); }
  100% { transform: translateX(-3px) rotate(-1deg); }
}

@keyframes rf-sails {
  0% { transform: rotate(-3deg); }
  50% { transform: rotate(5deg); }
  100% { transform: rotate(-2deg); }
}

@keyframes rf-figures {
  0% { transform: translateY(0) rotate(-1deg); }
  33% { transform: translateY(-3px) rotate(2deg); }
  66% { transform: translateY(2px) rotate(-2deg); }
  100% { transform: translateY(0) rotate(0deg); }
}

@keyframes rf-tears {
  0% { transform: translateY(0) scale(1); opacity: 0.2; }
  50% { transform: translateY(20px) scale(1.1); opacity: 0.5; }
  100% { transform: translateY(-10px) scale(0.9); opacity: 0.1; }
}

@keyframes rf-shadow {
  0% { transform: scaleX(1); opacity: 0.3; }
  50% { transform: scaleX(1.3); opacity: 0.5; }
  100% { transform: scaleX(0.8); opacity: 0.2; }
}

/* Scene: hope-of-a-boat */
.scn-hope-of-a-boat { 
  background: linear-gradient(180deg, #3a2a4e 0%, #6a4a3a 40%, #8a6a4a 70%, #4a3a2a 100%), 
              radial-gradient(ellipse at 50% 100%, #8a5a3a 0%, transparent 80%); 
}
.scn-hope-of-a-boat .dusk-sky { 
  position: absolute; inset: 0 0 55% 0; 
  background: linear-gradient(180deg, #2a1a3a 0%, #6a4a3a 50%, #b08060 100%); 
  animation: hop-sky 14s ease-in-out infinite alternate; 
}
.scn-hope-of-a-boat .distant-shore { 
  position: absolute; bottom: 45%; left: 10%; right: 10%; height: 12%; 
  background: linear-gradient(180deg, #3a3a2a 0%, #1a1a0a 100%); 
  border-radius: 40% 60% 0 0 / 60% 80% 0 0; 
  box-shadow: inset 0 4px 10px rgba(0,0,0,0.6); 
  animation: hop-shore 20s ease-in-out infinite alternate; 
}
.scn-hope-of-a-boat .river { 
  position: absolute; bottom: 0; left: 0; right: 0; height: 55%; 
  background: linear-gradient(180deg, #4a4a5a 0%, #2a2a3a 50%, #1a1a2a 100%); 
  box-shadow: inset 0 6px 20px #1a1a2a; 
  animation: hop-water 8s ease-in-out infinite; 
}
.scn-hope-of-a-boat .boat { 
  position: absolute; bottom: 38%; left: 50%; width: 80px; height: 30px; 
  transform: translateX(-50%); 
  background: linear-gradient(90deg, #4a3a2a 0%, #3a2a1a 100%); 
  border-radius: 10% 10% 30% 30% / 50% 50% 20% 20%; 
  box-shadow: 0 4px 8px rgba(0,0,0,0.7); 
  animation: hop-boat 6s ease-in-out infinite; 
}
.scn-hope-of-a-boat .barrel-a { 
  position: absolute; bottom: 38%; left: 48%; width: 14px; height: 18px; 
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%); 
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%; 
  box-shadow: 0 2px 4px rgba(0,0,0,0.5); 
  animation: hop-barrel 6s ease-in-out infinite; 
}
.scn-hope-of-a-boat .barrel-b { 
  position: absolute; bottom: 38%; left: 53%; width: 14px; height: 18px; 
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%); 
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%; 
  box-shadow: 0 2px 4px rgba(0,0,0,0.5); 
  animation: hop-barrel 6s ease-in-out infinite -2s; 
}
.scn-hope-of-a-boat .figure-boat { 
  position: absolute; bottom: 38%; left: 46%; width: 12px; height: 22px; 
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%); 
  border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%; 
  transform-origin: bottom center; 
  animation: hop-figure 6s ease-in-out infinite; 
}
.scn-hope-of-a-boat .lantern-boat { 
  position: absolute; bottom: 45%; left: 52%; width: 6px; height: 6px; 
  background: radial-gradient(circle, #c08040 0%, #804020 70%); 
  border-radius: 50%; 
  box-shadow: 0 0 16px 4px #b08040, 0 0 32px 8px rgba(176,128,64,0.4); 
  animation: hop-lantern 3s ease-in-out infinite alternate; 
}
.scn-hope-of-a-boat .cloud-boat { 
  position: absolute; top: 15%; left: 20%; width: 90px; height: 20px; 
  background: linear-gradient(180deg, rgba(180,140,100,0.5) 0%, rgba(200,160,120,0.1) 100%); 
  border-radius: 50%; filter: blur(8px); 
  animation: hop-cloud 40s linear infinite; 
}
@keyframes hop-sky { 
  0% { opacity: 0.7; } 
  50% { opacity: 1; } 
  100% { opacity: 0.8; } 
}
@keyframes hop-shore { 
  0% { transform: translateY(0) scale(1); } 
  50% { transform: translateY(-2px) scale(1.02); } 
  100% { transform: translateY(0) scale(1); } 
}
@keyframes hop-water { 
  0% { background-position: 0 0; } 
  50% { background-position: 0 5px; } 
  100% { background-position: 0 0; } 
}
@keyframes hop-boat { 
  0% { transform: translateX(-50%) translateY(0) rotate(-1deg); } 
  50% { transform: translateX(-50%) translateY(-3px) rotate(1deg); } 
  100% { transform: translateX(-50%) translateY(0) rotate(-1deg); } 
}
@keyframes hop-barrel { 
  0% { transform: translateY(0) rotate(0deg); } 
  50% { transform: translateY(-2px) rotate(5deg); } 
  100% { transform: translateY(0) rotate(0deg); } 
}
@keyframes hop-figure { 
  0% { transform: translateX(0) translateY(0) rotate(-2deg); } 
  30% { transform: translateX(3px) translateY(-1px) rotate(2deg); } 
  60% { transform: translateX(-2px) translateY(0) rotate(-1deg); } 
  100% { transform: translateX(0) translateY(0) rotate(-2deg); } 
}
@keyframes hop-lantern { 
  0% { box-shadow: 0 0 12px 2px #b08040; opacity: 0.8; } 
  50% { box-shadow: 0 0 20px 6px #c09050; opacity: 1; } 
  100% { box-shadow: 0 0 14px 3px #b08040; opacity: 0.85; } 
}
@keyframes hop-cloud { 
  0% { transform: translateX(-40px); } 
  100% { transform: translateX(120vw); } 
}

/* Scene: eliza-watches-the-river */
.scn-eliza-watches-the-river { 
  background: linear-gradient(180deg, #1a1a2e 0%, #2a1a2e 40%, #1a1a1a 100%), 
              radial-gradient(ellipse at 50% 100%, #2a1a2e 0%, transparent 70%); 
}
.scn-eliza-watches-the-river .wall-dim { 
  position: absolute; inset: 0 0 30% 0; 
  background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%); 
  animation: elz-wall 15s ease-in-out infinite alternate; 
}
.scn-eliza-watches-the-river .floor-dim { 
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%; 
  background: linear-gradient(180deg, #1a1a1a 0%, #0a0a0a 100%); 
  box-shadow: inset 0 8px 20px rgba(0,0,0,0.8); 
}
.scn-eliza-watches-the-river .bed { 
  position: absolute; bottom: 20%; left: 20%; width: 60%; height: 25%; 
  background: linear-gradient(180deg, #3a2a2a 0%, #2a1a1a 100%); 
  border-radius: 4% 4% 2% 2%; 
  box-shadow: 0 4px 12px rgba(0,0,0,0.6); 
  animation: elz-bed 12s ease-in-out infinite; 
}
.scn-eliza-watches-the-river .window-dim { 
  position: absolute; top: 20%; right: 10%; width: 25%; height: 35%; 
  background: linear-gradient(180deg, #3a4a5a 0%, #2a3a4a 100%); 
  border-radius: 4% 4% 2% 2%; 
  box-shadow: inset 0 0 20px rgba(100,150,200,0.2); 
  animation: elz-window 8s ease-in-out infinite alternate; 
}
.scn-eliza-watches-the-river .curtain { 
  position: absolute; top: 20%; right: 10%; width: 4%; height: 35%; 
  background: linear-gradient(180deg, #5a4a4a 0%, #3a2a2a 100%); 
  border-radius: 10% 10% 0 0; 
  animation: elz-curtain 6s ease-in-out infinite; 
}
.scn-eliza-watches-the-river .figure-eliza { 
  position: absolute; bottom: 18%; left: 45%; width: 16px; height: 40px; 
  background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%); 
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; 
  transform-origin: bottom center; 
  animation: elz-figure 5s ease-in-out infinite; 
}
.scn-eliza-watches-the-river .lamp-dim { 
  position: absolute; bottom: 22%; left: 35%; width: 8px; height: 12px; 
  background: radial-gradient(circle, #c08060 0%, #804020 70%); 
  border-radius: 50% 50% 30% 30%; 
  box-shadow: 0 0 20px 6px #b07050, 0 0 40px 12px rgba(176,112,80,0.3); 
  animation: elz-lamp 3s ease-in-out infinite alternate; 
}
.scn-eliza-watches-the-river .child-sleeping { 
  position: absolute; bottom: 20%; left: 30%; width: 20px; height: 16px; 
  background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%); 
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; 
  animation: elz-child 7s ease-in-out infinite; 
}
@keyframes elz-wall { 
  0% { opacity: 0.8; } 
  50% { opacity: 0.9; } 
  100% { opacity: 0.75; } 
}
@keyframes elz-bed { 
  0% { transform: translateY(0); } 
  50% { transform: translateY(-1px); } 
  100% { transform: translateY(0); } 
}
@keyframes elz-window { 
  0% { background: linear-gradient(180deg, #3a4a5a 0%, #2a3a4a 100%); } 
  50% { background: linear-gradient(180deg, #4a5a6a 0%, #3a4a5a 100%); } 
  100% { background: linear-gradient(180deg, #3a4a5a 0%, #2a3a4a 100%); } 
}
@keyframes elz-curtain { 
  0% { transform: translateX(0) skewX(0deg); } 
  50% { transform: translateX(-2px) skewX(-3deg); } 
  100% { transform: translateX(0) skewX(0deg); } 
}
@keyframes elz-figure { 
  0% { transform: translateY(0) rotate(-1deg); } 
  40% { transform: translateY(-1px) rotate(1deg); } 
  70% { transform: translateY(0) rotate(-1deg); } 
  100% { transform: translateY(0) rotate(-1deg); } 
}
@keyframes elz-lamp { 
  0% { opacity: 0.85; box-shadow: 0 0 16px 4px #b07050; } 
  50% { opacity: 1; box-shadow: 0 0 24px 8px #c08060; } 
  100% { opacity: 0.9; box-shadow: 0 0 18px 5px #b07050; } 
}
@keyframes elz-child { 
  0% { transform: scale(1) translateY(0); } 
  50% { transform: scale(0.95) translateY(1px); } 
  100% { transform: scale(1) translateY(0); } 
}

/* Scene: quaker-kitchen-peaches */
.scn-quaker-kitchen-peaches { 
  background: linear-gradient(180deg, #f0e0c0 0%, #d8c8a0 30%, #c0b080 60%, #a09060 100%), 
              radial-gradient(ellipse at 50% 100%, #e0d0b0 0%, transparent 70%); 
}
.scn-quaker-kitchen-peaches .wall-kitchen { 
  position: absolute; inset: 0 0 35% 0; 
  background: linear-gradient(180deg, #f0e8d0 0%, #d8d0b0 100%); 
  animation: quk-wall 20s ease-in-out infinite alternate; 
}
.scn-quaker-kitchen-peaches .floor-kitchen { 
  position: absolute; bottom: 0; left: 0; right: 0; height: 35%; 
  background: linear-gradient(180deg, #a09060 0%, #807040 100%); 
  box-shadow: inset 0 6px 20px rgba(0,0,0,0.2); 
}
.scn-quaker-kitchen-peaches .table-kitchen { 
  position: absolute; bottom: 25%; left: 35%; width: 30%; height: 8%; 
  background: linear-gradient(180deg, #b09060 0%, #907050 100%); 
  border-radius: 2% 2% 4% 4%; 
  box-shadow: 0 4px 8px rgba(0,0,0,0.3); 
  animation: quk-table 15s ease-in-out infinite; 
}
.scn-quaker-kitchen-peaches .chair-kitchen { 
  position: absolute; bottom: 25%; right: 25%; width: 12%; height: 20%; 
  background: linear-gradient(180deg, #a08050 0%, #806040 100%); 
  border-radius: 10% 10% 2% 2%; 
  box-shadow: 0 2px 6px rgba(0,0,0,0.3); 
  animation: quk-chair 12s ease-in-out infinite; 
}
.scn-quaker-kitchen-peaches .figure-quaker { 
  position: absolute; bottom: 30%; right: 20%; width: 14px; height: 28px; 
  background: linear-gradient(180deg, #4a3a2a 0%, #3a2a1a 100%); 
  border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%; 
  transform-origin: bottom center; 
  animation: quk-figure 8s ease-in-out infinite; 
}
.scn-quaker-kitchen-peaches .pan { 
  position: absolute; bottom: 34%; right: 25%; width: 22px; height: 8px; 
  background: linear-gradient(180deg, #c0c0c0 0%, #a0a0a0 100%); 
  border-radius: 10% 10% 20% 20%; 
  box-shadow: inset 0 2px 4px #e0e0e0; 
  animation: quk-pan 10s ease-in-out infinite; 
}
.scn-quaker-kitchen-peaches .peach-a { 
  position: absolute; bottom: 35%; right: 28%; width: 6px; height: 7px; 
  background: radial-gradient(circle, #e0a060 0%, #c08040 70%); 
  border-radius: 50%; 
  animation: quk-peach 6s ease-in-out infinite; 
}
.scn-quaker-kitchen-peaches .peach-b { 
  position: absolute; bottom: 35%; right: 30%; width: 6px; height: 7px; 
  background: radial-gradient(circle, #e0a060 0%, #c08040 70%); 
  border-radius: 50%; 
  animation: quk-peach 6s ease-in-out infinite -3s; 
}
.scn-quaker-kitchen-peaches .window-sun { 
  position: absolute; top: 15%; left: 20%; width: 30%; height: 30%; 
  background: linear-gradient(180deg, #f0e8d0 0%, #e0d8c0 100%); 
  border-radius: 4% 4% 2% 2%; 
  box-shadow: inset 0 0 40px rgba(255,230,180,0.4); 
  animation: quk-window 18s ease-in-out infinite alternate; 
}
@keyframes quk-wall { 
  0% { opacity: 0.9; } 
  50% { opacity: 1; } 
  100% { opacity: 0.85; } 
}
@keyframes quk-table { 
  0% { transform: translateY(0); } 
  50% { transform: translateY(-1px); } 
  100% { transform: translateY(0); } 
}
@keyframes quk-chair { 
  0% { transform: translateY(0) rotate(-1deg); } 
  50% { transform: translateY(-1px) rotate(1deg); } 
  100% { transform: translateY(0) rotate(-1deg); } 
}
@keyframes quk-figure { 
  0% { transform: translateY(0) rotate(0deg); } 
  40% { transform: translateY(-1px) rotate(2deg); } 
  80% { transform: translateY(0) rotate(0deg); } 
  100% { transform: translateY(0) rotate(0deg); } 
}
@keyframes quk-pan { 
  0% { transform: translateX(0); } 
  50% { transform: translateX(2px); } 
  100% { transform: translateX(0); } 
}
@keyframes quk-peach { 
  0% { opacity: 0.9; transform: scale(1); } 
  50% { opacity: 1; transform: scale(1.1); } 
  100% { opacity: 0.9; transform: scale(1); } 
}
@keyframes quk-window { 
  0% { background: linear-gradient(180deg, #f0e8d0 0%, #e0d8c0 100%); box-shadow: inset 0 0 30px rgba(255,230,180,0.3); } 
  50% { background: linear-gradient(180deg, #fff0d0 0%, #f0e0c0 100%); box-shadow: inset 0 0 60px rgba(255,240,200,0.6); } 
  100% { background: linear-gradient(180deg, #f0e8d0 0%, #e0d8c0 100%); box-shadow: inset 0 0 30px rgba(255,230,180,0.3); } 
}

/* Scene: rachel-chair-music */
.scn-rachel-chair-music { 
  background: linear-gradient(180deg, #d0c0a0 0%, #c0b090 30%, #a09070 60%, #908060 100%), 
              radial-gradient(ellipse at 50% 100%, #c0b090 0%, transparent 70%); 
}
.scn-rachel-chair-music .floor-warm { 
  position: absolute; bottom: 0; left: 0; right: 0; height: 35%; 
  background: linear-gradient(180deg, #b0a080 0%, #908060 100%); 
  box-shadow: inset 0 6px 20px rgba(0,0,0,0.15); 
  animation: rcm-floor 20s ease-in-out infinite alternate; 
}
.scn-rachel-chair-music .wall-warm { 
  position: absolute; inset: 0 0 35% 0; 
  background: linear-gradient(180deg, #e0d8c0 0%, #c8c0a8 100%); 
  animation: rcm-wall 18s ease-in-out infinite alternate; 
}
.scn-rachel-chair-music .rocking-chair { 
  position: absolute; bottom: 20%; left: 50%; width: 40px; height: 50px; 
  transform: translateX(-50%); 
  background: linear-gradient(180deg, #8a7a5a 0%, #6a5a3a 100%); 
  border-radius: 40% 40% 20% 20% / 60% 60% 30% 30%; 
  box-shadow: 0 6px 12px rgba(0,0,0,0.4); 
  animation: rcm-chair 5s ease-in-out infinite; 
}
.scn-rachel-chair-music .figure-rachel { 
  position: absolute; bottom: 25%; left: 50%; width: 18px; height: 32px; 
  transform: translateX(-50%); 
  background: linear-gradient(180deg, #4a3a2a 0%, #3a2a1a 100%); 
  border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%; 
  transform-origin: bottom center; 
  animation: rcm-figure 5s ease-in-out infinite; 
}
.scn-rachel-chair-music .child-left { 
  position: absolute; bottom: 18%; left: 42%; width: 12px; height: 18px; 
  background: linear-gradient(180deg, #5a4a3a 0%, #4a3a2a 100%); 
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; 
  animation: rcm-child 8s ease-in-out infinite; 
}
.scn-rachel-chair-music .child-right { 
  position: absolute; bottom: 18%; right: 42%; width: 12px; height: 18px; 
  background: linear-gradient(180deg, #5a4a3a 0%, #4a3a2a 100%); 
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; 
  animation: rcm-child 8s ease-in-out infinite -4s; 
}
.scn-rachel-chair-music .lamp-warm { 
  position: absolute; bottom: 30%; left: 30%; width: 8px; height: 14px; 
  background: radial-gradient(circle, #e0b060 0%, #a08040 70%); 
  border-radius: 50% 50% 30% 30%; 
  box-shadow: 0 0 20px 6px #d0a050, 0 0 40px 12px rgba(208,160,80,0.3); 
  animation: rcm-lamp 3s ease-in-out infinite alternate; 
}
.scn-rachel-chair-music .music-arc { 
  position: absolute; top: 40%; left: 50%; width: 60px; height: 20px; 
  transform: translateX(-50%); 
  background: radial-gradient(ellipse at 50% 100%, rgba(200,180,120,0.4) 0%, transparent 70%); 
  border-radius: 50%; 
  filter: blur(4px); 
  animation: rcm-music 6s ease-in-out infinite; 
}
@keyframes rcm-floor { 
  0% { opacity: 0.9; } 
  50% { opacity: 1; } 
  100% { opacity: 0.85; } 
}
@keyframes rcm-wall { 
  0% { opacity: 0.85; } 
  50% { opacity: 1; } 
  100% { opacity: 0.9; } 
}
@keyframes rcm-chair { 
  0% { transform: translateX(-50%) translateY(0) rotate(-3deg); } 
  50% { transform: translateX(-50%) translateY(-2px) rotate(3deg); } 
  100% { transform: translateX(-50%) translateY(0) rotate(-3deg); } 
}
@keyframes rcm-figure { 
  0% { transform: translateX(-50%) translateY(0) rotate(-2deg); } 
  50% { transform: translateX(-50%) translateY(-1px) rotate(2deg); } 
  100% { transform: translateX(-50%) translateY(0) rotate(-2deg); } 
}
@keyframes rcm-child { 
  0% { transform: translateY(0) rotate(-5deg); } 
  50% { transform: translateY(-1px) rotate(5deg); } 
  100% { transform: translateY(0) rotate(-5deg); } 
}
@keyframes rcm-lamp { 
  0% { box-shadow: 0 0 16px 4px #d0a050; opacity: 0.9; } 
  50% { box-shadow: 0 0 24px 8px #e0b060; opacity: 1; } 
  100% { box-shadow: 0 0 18px 5px #d0a050; opacity: 0.85; } 
}
@keyframes rcm-music { 
  0% { transform: translateX(-50%) scaleX(1) scaleY(1); opacity: 0.5; } 
  50% { transform: translateX(-50%) scaleX(1.2) scaleY(0.8); opacity: 0.8; } 
  100% { transform: translateX(-50%) scaleX(1) scaleY(1); opacity: 0.5; } 
}

/* elizas-fears-mentioned */
.scn-elizas-fears-mentioned {
  background: linear-gradient(180deg, #2a1f1a 0%, #1a1210 40%, #0f0a08 100%), radial-gradient(ellipse at 50% 30%, #3a2a1f 0%, transparent 70%);
}
.scn-elizas-fears-mentioned .floor {
  position: absolute; bottom:0; left:0; right:0; height:20%;
  background: linear-gradient(180deg, #2a1f1a 0%, #3a2a1a 100%);
}
.scn-elizas-fears-mentioned .wall-left {
  position: absolute; top:0; left:0; width:30%; height:80%;
  background: linear-gradient(180deg, #1a1210 0%, #0f0a08 100%);
}
.scn-elizas-fears-mentioned .wall-right {
  position: absolute; top:0; right:0; width:30%; height:80%;
  background: linear-gradient(180deg, #1a1210 0%, #0f0a08 100%);
}
.scn-elizas-fears-mentioned .table {
  position: absolute; bottom:20%; left:50%; width:40%; height:8%;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #4a3a2a 0%, #3a2a1a 100%);
  border-radius: 4px; box-shadow: 0 -4px 10px rgba(0,0,0,.5);
}
.scn-elizas-fears-mentioned .lamp {
  position: absolute; bottom:28%; left:50%; width:6%; height:12%;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #8a6a4a 0%, #5a4030 100%);
  border-radius: 50% 50% 20% 20%;
  box-shadow: 0 0 20px 10px rgba(200,160,100,.3);
  animation: efn-lamp 3s ease-in-out infinite;
}
.scn-elizas-fears-mentioned .glow {
  position: absolute; bottom:28%; left:50%; width:12%; height:20%;
  transform: translateX(-50%);
  background: radial-gradient(circle, rgba(200,160,100,.6) 0%, transparent 70%);
  pointer-events: none;
  animation: efn-glow 4s ease-in-out infinite;
}
.scn-elizas-fears-mentioned .figure1 {
  position: absolute; bottom:20%; left:35%; width:8%; height:40%;
  background: linear-gradient(180deg, #1a1210 0%, #0f0a08 100%);
  border-radius: 50% 50% 30% 30% / 50% 50% 30% 30%;
  transform-origin: bottom center;
  animation: efn-fig1 6s ease-in-out infinite;
}
.scn-elizas-fears-mentioned .figure2 {
  position: absolute; bottom:20%; right:35%; width:8%; height:40%;
  background: linear-gradient(180deg, #1a1210 0%, #0f0a08 100%);
  border-radius: 50% 50% 30% 30% / 50% 50% 30% 30%;
  transform-origin: bottom center;
  animation: efn-fig2 6s ease-in-out infinite 1s;
}
@keyframes efn-glow { 0%{opacity:.7; transform:scale(1)} 50%{opacity:1; transform:scale(1.05)} 100%{opacity:.8; transform:scale(.98)} }
@keyframes efn-fig1 { 0%{transform:translateY(0) rotate(0deg)} 50%{transform:translateY(-2px) rotate(1deg)} 100%{transform:translateY(0) rotate(-1deg)} }
@keyframes efn-fig2 { 0%{transform:translateY(0) rotate(0deg)} 50%{transform:translateY(-1px) rotate(-1deg)} 100%{transform:translateY(0) rotate(1deg)} }
@keyframes efn-lamp { 0%{box-shadow:0 0 15px 5px rgba(200,160,100,.3)} 50%{box-shadow:0 0 25px 10px rgba(200,160,100,.5)} 100%{box-shadow:0 0 15px 5px rgba(200,160,100,.3)} }

/* shelby-reveals-sale */
.scn-shelby-reveals-sale {
  background: linear-gradient(180deg, #2a1f1a 0%, #1a1210 30%, #0f0a08 100%), radial-gradient(ellipse at 50% 25%, #3a2a1f 0%, transparent 60%);
}
.scn-shelby-reveals-sale .floor {
  position: absolute; bottom:0; left:0; right:0; height:25%;
  background: linear-gradient(180deg, #2a1f1a 0%, #3a2a1a 100%);
}
.scn-shelby-reveals-sale .wall-left {
  position: absolute; top:0; left:0; width:25%; height:75%;
  background: linear-gradient(180deg, #1a1210 0%, #0f0a08 100%);
}
.scn-shelby-reveals-sale .wall-right {
  position: absolute; top:0; right:0; width:25%; height:75%;
  background: linear-gradient(180deg, #1a1210 0%, #0f0a08 100%);
}
.scn-shelby-reveals-sale .table {
  position: absolute; bottom:25%; left:50%; width:45%; height:10%;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #4a3a2a 0%, #3a2a1a 100%);
  border-radius: 6px; box-shadow: 0 -4px 12px rgba(0,0,0,.5);
}
.scn-shelby-reveals-sale .lamp {
  position: absolute; bottom:35%; left:50%; width:5%; height:14%;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #8a6a4a 0%, #5a4030 100%);
  border-radius: 50% 50% 20% 20%;
  box-shadow: 0 0 18px 8px rgba(200,160,100,.3);
  animation: ssr-lamp 3.5s ease-in-out infinite;
}
.scn-shelby-reveals-sale .glow {
  position: absolute; bottom:35%; left:50%; width:14%; height:22%;
  transform: translateX(-50%);
  background: radial-gradient(circle, rgba(200,160,100,.6) 0%, transparent 70%);
  pointer-events: none;
  animation: ssr-glow 4.5s ease-in-out infinite;
}
.scn-shelby-reveals-sale .figure1 {
  position: absolute; bottom:25%; left:30%; width:9%; height:38%;
  background: linear-gradient(180deg, #1a1210 0%, #0f0a08 100%);
  border-radius: 50% 50% 30% 30% / 50% 50% 30% 30%;
  transform-origin: bottom center;
  animation: ssr-fig1 7s ease-in-out infinite;
}
.scn-shelby-reveals-sale .figure2 {
  position: absolute; bottom:25%; right:30%; width:9%; height:38%;
  background: linear-gradient(180deg, #1a1210 0%, #0f0a08 100%);
  border-radius: 50% 50% 30% 30% / 50% 50% 30% 30%;
  transform-origin: bottom center;
  animation: ssr-fig2 7s ease-in-out infinite 2s;
}
@keyframes ssr-glow { 0%{opacity:.6; transform:scale(1)} 50%{opacity:1; transform:scale(1.03)} 100%{opacity:.7; transform:scale(.97)} }
@keyframes ssr-fig1 { 0%{transform:translateY(0) rotate(-1deg)} 50%{transform:translateY(-3px) rotate(1deg)} 100%{transform:translateY(0) rotate(-1deg)} }
@keyframes ssr-fig2 { 0%{transform:translateY(0) rotate(0deg)} 50%{transform:translateY(-2px) rotate(-2deg)} 100%{transform:translateY(0) rotate(0deg)} }
@keyframes ssr-lamp { 0%{box-shadow:0 0 12px 4px rgba(200,160,100,.3)} 50%{box-shadow:0 0 22px 8px rgba(200,160,100,.5)} 100%{box-shadow:0 0 12px 4px rgba(200,160,100,.3)} }

/* mrs-shelby-horrified */
.scn-mrs-shelby-horrified {
  background: linear-gradient(180deg, #2a1f1a 0%, #1a1210 35%, #0f0a08 100%), radial-gradient(ellipse at 50% 40%, #3a2a1f 0%, transparent 65%);
}
.scn-mrs-shelby-horrified .floor {
  position: absolute; bottom:0; left:0; right:0; height:22%;
  background: linear-gradient(180deg, #2a1f1a 0%, #3a2a1a 100%);
}
.scn-mrs-shelby-horrified .wall-left {
  position: absolute; top:0; left:0; width:28%; height:78%;
  background: linear-gradient(180deg, #1a1210 0%, #0f0a08 100%);
}
.scn-mrs-shelby-horrified .wall-right {
  position: absolute; top:0; right:0; width:28%; height:78%;
  background: linear-gradient(180deg, #1a1210 0%, #0f0a08 100%);
}
.scn-mrs-shelby-horrified .table {
  position: absolute; bottom:22%; left:50%; width:35%; height:8%;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #4a3a2a 0%, #3a2a1a 100%);
  border-radius: 4px; box-shadow: 0 -4px 10px rgba(0,0,0,.5);
}
.scn-mrs-shelby-horrified .lamp {
  position: absolute; bottom:30%; left:50%; width:6%; height:13%;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #8a6a4a 0%, #5a4030 100%);
  border-radius: 50% 50% 20% 20%;
  box-shadow: 0 0 20px 10px rgba(200,160,100,.3);
  animation: msh-lamp 4s ease-in-out infinite;
}
.scn-mrs-shelby-horrified .glow {
  position: absolute; bottom:30%; left:50%; width:13%; height:21%;
  transform: translateX(-50%);
  background: radial-gradient(circle, rgba(200,160,100,.6) 0%, transparent 70%);
  pointer-events: none;
  animation: msh-glow 3.5s ease-in-out infinite;
}
.scn-mrs-shelby-horrified .figure1 {
  position: absolute; bottom:22%; left:40%; width:7%; height:42%;
  background: linear-gradient(180deg, #1a1210 0%, #0f0a08 100%);
  border-radius: 50% 50% 30% 30% / 50% 50% 30% 30%;
  transform-origin: bottom center;
  animation: msh-fig1 5s ease-in-out infinite;
}
.scn-mrs-shelby-horrified .figure2 {
  position: absolute; bottom:22%; right:40%; width:7%; height:42%;
  background: linear-gradient(180deg, #1a1210 0%, #0f0a08 100%);
  border-radius: 50% 50% 30% 30% / 50% 50% 30% 30%;
  transform-origin: bottom center;
  animation: msh-fig2 5s ease-in-out infinite 2.5s;
}
@keyframes msh-glow { 0%{opacity:.7; transform:scale(1)} 50%{opacity:1; transform:scale(1.04)} 100%{opacity:.8; transform:scale(.96)} }
@keyframes msh-fig1 { 0%{transform:translateY(0) rotate(2deg)} 50%{transform:translateY(-4px) rotate(-1deg)} 100%{transform:translateY(0) rotate(2deg)} }
@keyframes msh-fig2 { 0%{transform:translateY(0) rotate(-1deg)} 50%{transform:translateY(-3px) rotate(1deg)} 100%{transform:translateY(0) rotate(-1deg)} }
@keyframes msh-lamp { 0%{box-shadow:0 0 16px 6px rgba(200,160,100,.3)} 50%{box-shadow:0 0 28px 12px rgba(200,160,100,.5)} 100%{box-shadow:0 0 16px 6px rgba(200,160,100,.3)} }

/* shelby-defends-sale */
.scn-shelby-defends-sale {
  background: linear-gradient(180deg, #2a1f1a 0%, #1a1210 30%, #0f0a08 100%), radial-gradient(ellipse at 50% 28%, #3a2a1f 0%, transparent 60%);
}
.scn-shelby-defends-sale .floor {
  position: absolute; bottom:0; left:0; right:0; height:20%;
  background: linear-gradient(180deg, #2a1f1a 0%, #3a2a1a 100%);
}
.scn-shelby-defends-sale .wall-left {
  position: absolute; top:0; left:0; width:30%; height:80%;
  background: linear-gradient(180deg, #1a1210 0%, #0f0a08 100%);
}
.scn-shelby-defends-sale .wall-right {
  position: absolute; top:0; right:0; width:30%; height:80%;
  background: linear-gradient(180deg, #1a1210 0%, #0f0a08 100%);
}
.scn-shelby-defends-sale .table {
  position: absolute; bottom:20%; left:50%; width:42%; height:9%;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #4a3a2a 0%, #3a2a1a 100%);
  border-radius: 5px; box-shadow: 0 -4px 10px rgba(0,0,0,.5);
}
.scn-shelby-defends-sale .lamp {
  position: absolute; bottom:29%; left:50%; width:5%; height:13%;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #8a6a4a 0%, #5a4030 100%);
  border-radius: 50% 50% 20% 20%;
  box-shadow: 0 0 20px 10px rgba(200,160,100,.3);
  animation: sds-lamp 3s ease-in-out infinite;
}
.scn-shelby-defends-sale .glow {
  position: absolute; bottom:29%; left:50%; width:14%; height:22%;
  transform: translateX(-50%);
  background: radial-gradient(circle, rgba(200,160,100,.6) 0%, transparent 70%);
  pointer-events: none;
  animation: sds-glow 4s ease-in-out infinite;
}
.scn-shelby-defends-sale .figure1 {
  position: absolute; bottom:20%; left:32%; width:8%; height:40%;
  background: linear-gradient(180deg, #1a1210 0%, #0f0a08 100%);
  border-radius: 50% 50% 30% 30% / 50% 50% 30% 30%;
  transform-origin: bottom center;
  animation: sds-fig1 6s ease-in-out infinite;
}
.scn-shelby-defends-sale .figure2 {
  position: absolute; bottom:20%; right:32%; width:8%; height:40%;
  background: linear-gradient(180deg, #1a1210 0%, #0f0a08 100%);
  border-radius: 50% 50% 30% 30% / 50% 50% 30% 30%;
  transform-origin: bottom center;
  animation: sds-fig2 6s ease-in-out infinite 1.5s;
}
@keyframes sds-glow { 0%{opacity:.6; transform:scale(1)} 50%{opacity:1; transform:scale(1.05)} 100%{opacity:.7; transform:scale(.98)} }
@keyframes sds-fig1 { 0%{transform:translateY(0) rotate(0deg)} 50%{transform:translateY(-3px) rotate(2deg)} 100%{transform:translateY(0) rotate(0deg)} }
@keyframes sds-fig2 { 0%{transform:translateY(0) rotate(0deg)} 50%{transform:translateY(-2px) rotate(-2deg)} 100%{transform:translateY(0) rotate(0deg)} }
@keyframes sds-lamp { 0%{box-shadow:0 0 14px 5px rgba(200,160,100,.3)} 50%{box-shadow:0 0 24px 10px rgba(200,160,100,.5)} 100%{box-shadow:0 0 14px 5px rgba(200,160,100,.3)} }

/* ===== eliza-alarm (tense, sunlit) ===== */
.scn-eliza-alarm {
  background:
    linear-gradient(180deg, #fce6b3 0%, #e8c88a 40%, #d4a66a 100%),
    radial-gradient(ellipse at 30% 80%, #d4a66a 0%, transparent 60%);
}
.scn-eliza-alarm .bg-wall {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, #e2c491 0%, #c8a572 100%);
}
.scn-eliza-alarm .window-light {
  position: absolute; top: 15%; right: 10%;
  width: 80px; height: 100px;
  background: radial-gradient(circle, #fff8d6 0%, #ffe68a 60%, transparent 100%);
  border-radius: 8px 8px 4px 4px;
  box-shadow: 0 0 40px 15px rgba(255,230,138,0.4);
  animation: ela-flicker 2.5s ease-in-out infinite alternate;
}
.scn-eliza-alarm .porch {
  position: absolute; bottom: 0; left: 0; right: 40%;
  height: 35%;
  background: linear-gradient(180deg, #8b6f4a 0%, #5a4228 100%);
  border-radius: 0 30% 0 0 / 0 50% 0 0;
  box-shadow: inset 0 10px 20px rgba(0,0,0,0.3);
}
.scn-eliza-alarm .fig-rachel {
  position: absolute; bottom: 30%; left: 22%;
  width: 24px; height: 70px;
  background: linear-gradient(180deg, #4a3a28 0%, #2a1e12 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: ela-turn 4s ease-in-out infinite;
}
.scn-eliza-alarm .fig-eliza {
  position: absolute; bottom: 28%; left: 45%;
  width: 22px; height: 65px;
  background: linear-gradient(180deg, #5c4a34 0%, #3a2a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: ela-tremble 0.8s ease-in-out infinite;
}
.scn-eliza-alarm .table {
  position: absolute; bottom: 20%; left: 35%;
  width: 60px; height: 10px;
  background: linear-gradient(180deg, #a08050 0%, #70502a 100%);
  border-radius: 2px;
  box-shadow: 0 4px 8px rgba(0,0,0,0.3);
}
.scn-eliza-alarm .shadow {
  position: absolute; bottom: 15%; right: 8%;
  width: 80px; height: 100px;
  background: radial-gradient(ellipse at 50% 100%, rgba(30,20,10,0.5) 0%, transparent 70%);
  filter: blur(8px);
  animation: ela-shadow-crawl 6s ease-in-out infinite alternate;
}
@keyframes ela-flicker {
  0%, 100% { opacity: 0.75; transform: scale(1); }
  50% { opacity: 1; transform: scale(1.03); }
}
@keyframes ela-tremble {
  0%, 100% { transform: translate(0,0) rotate(0deg); }
  25% { transform: translate(-1px,1px) rotate(0.8deg); }
  75% { transform: translate(1px,-1px) rotate(-0.8deg); }
}
@keyframes ela-turn {
  0%, 100% { transform: translateX(0) rotate(0deg); }
  50% { transform: translateX(3px) rotate(3deg); }
}
@keyframes ela-shadow-crawl {
  0% { transform: translateX(0) scaleY(1); }
  100% { transform: translateX(-15px) scaleY(1.3); }
}

/* ===== joyful-news (warm, sunlit) ===== */
.scn-joyful-news {
  background:
    linear-gradient(135deg, #fff5c3 0%, #ffe68a 50%, #ffd166 100%),
    radial-gradient(circle at 70% 30%, #ffffff 0%, transparent 50%);
}
.scn-joyful-news .bg-sky {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, #fffaee 0%, #ffe68a 100%);
}
.scn-joyful-news .sunburst {
  position: absolute; top: 10%; left: 50%; transform: translateX(-50%);
  width: 200px; height: 200px;
  background: radial-gradient(circle, rgba(255,215,0,0.3) 0%, transparent 70%);
  border-radius: 50%;
  animation: joy-rotate 20s linear infinite, joy-pulse 4s ease-in-out infinite alternate;
}
.scn-joyful-news .fig-rachel {
  position: absolute; bottom: 25%; left: 30%;
  width: 26px; height: 72px;
  background: linear-gradient(180deg, #6b5040 0%, #4a3426 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: joy-bounce 2s ease-in-out infinite;
}
.scn-joyful-news .fig-george {
  position: absolute; bottom: 24%; left: 55%;
  width: 24px; height: 68px;
  background: linear-gradient(180deg, #5a4228 0%, #3a2a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: joy-walk 5s ease-in-out infinite;
}
.scn-joyful-news .cloud {
  position: absolute; top: 15%; right: 5%;
  width: 90px; height: 22px;
  background: linear-gradient(180deg, rgba(255,255,255,0.7) 0%, rgba(255,255,255,0.2) 100%);
  border-radius: 50%;
  filter: blur(6px);
  animation: joy-drift 40s linear infinite;
}
.scn-joyful-news .joy-sparkles {
  position: absolute; top: 30%; left: 20%; right: 20%; bottom: 40%;
  background: radial-gradient(circle at 30% 40%, #ffd700 0%, transparent 10%),
              radial-gradient(circle at 70% 60%, #fff4c0 0%, transparent 8%),
              radial-gradient(circle at 50% 80%, #ffec80 0%, transparent 6%);
  background-size: 100px 100px;
  animation: joy-sparkle 3s ease-in-out infinite alternate;
}
@keyframes joy-rotate {
  0% { transform: translateX(-50%) rotate(0deg); }
  100% { transform: translateX(-50%) rotate(360deg); }
}
@keyframes joy-pulse {
  0% { opacity: 0.6; }
  50% { opacity: 1; transform: translateX(-50%) scale(1.05); }
  100% { opacity: 0.7; }
}
@keyframes joy-bounce {
  0%, 100% { transform: translateY(0) rotate(-2deg); }
  50% { transform: translateY(-10px) rotate(3deg); }
}
@keyframes joy-walk {
  0% { transform: translateX(0) rotate(0deg); }
  25% { transform: translateX(8px) rotate(2deg); }
  50% { transform: translateX(16px) rotate(0deg); }
  75% { transform: translateX(24px) rotate(-2deg); }
  100% { transform: translateX(32px) rotate(0deg); }
}
@keyframes joy-drift {
  0% { transform: translateX(0); }
  100% { transform: translateX(-120vw); }
}
@keyframes joy-sparkle {
  0% { opacity: 0.3; transform: scale(0.8); }
  100% { opacity: 1; transform: scale(1.2); }
}

/* ===== ruth-joy-burst (warm, sunlit) ===== */
.scn-ruth-joy-burst {
  background:
    linear-gradient(180deg, #f3d9a0 0%, #dbb76a 40%, #b89450 100%),
    radial-gradient(ellipse at 70% 50%, #fff7c0 0%, transparent 60%);
}
.scn-ruth-joy-burst .bg-porch {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, #eace92 0%, #c9a462 100%);
}
.scn-ruth-joy-burst .pillar {
  position: absolute; bottom: 0; left: 15%;
  width: 14px; height: 80%;
  background: linear-gradient(180deg, #a8865a 0%, #7a5e36 100%);
  border-radius: 4px 4px 0 0;
  box-shadow: 2px 0 8px rgba(0,0,0,0.2);
}
.scn-ruth-joy-burst .fig-ruth {
  position: absolute; bottom: 20%; left: 35%;
  width: 24px; height: 74px;
  background: linear-gradient(180deg, #6b4a30 0%, #4a3020 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: rjb-throw 2.5s ease-in-out infinite;
}
.scn-ruth-joy-burst .fig-rachel {
  position: absolute; bottom: 22%; left: 55%;
  width: 22px; height: 68px;
  background: linear-gradient(180deg, #5a3d28 0%, #3a2818 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: rjb-tilt 3.5s ease-in-out infinite;
}
.scn-ruth-joy-burst .knitting {
  position: absolute; bottom: 14%; left: 30%;
  width: 20px; height: 10px;
  background: linear-gradient(90deg, #d4b888 0%, #b89860 100%);
  border-radius: 2px;
  box-shadow: 0 2px 4px rgba(0,0,0,0.2);
  animation: rjb-fall 2s ease-in-out infinite;
}
.scn-ruth-joy-burst .sunlight {
  position: absolute; top: 0; left: 30%; width: 40px; height: 100%;
  background: linear-gradient(180deg, rgba(255,245,180,0.4) 0%, transparent 100%);
  filter: blur(8px);
  animation: rjb-sweep 6s ease-in-out infinite alternate;
}
.scn-ruth-joy-burst .rug {
  position: absolute; bottom: 0; left: 25%; right: 25%; height: 8%;
  background: linear-gradient(180deg, #8a6a44 0%, #5a3e20 100%);
  border-radius: 30% 30% 0 0;
  box-shadow: inset 0 4px 8px rgba(0,0,0,0.2);
  animation: rjb-pulse 4s ease-in-out infinite alternate;
}
@keyframes rjb-throw {
  0%, 100% { transform: translateY(0) rotate(-3deg); }
  50% { transform: translateY(-12px) rotate(5deg); }
}
@keyframes rjb-tilt {
  0%, 100% { transform: translateX(0) rotate(0deg); }
  50% { transform: translateX(4px) rotate(2deg); }
}
@keyframes rjb-fall {
  0% { transform: translateY(0) rotate(0deg); opacity: 1; }
  50% { transform: translateY(15px) rotate(30deg); opacity: 0.6; }
  100% { transform: translateY(0) rotate(0deg); opacity: 1; }
}
@keyframes rjb-sweep {
  0% { transform: translateX(-10px) skewX(3deg); opacity: 0.6; }
  100% { transform: translateX(10px) skewX(-3deg); opacity: 1; }
}
@keyframes rjb-pulse {
  0% { transform: scaleX(1); }
  100% { transform: scaleX(1.05); }
}

/* ===== decide-to-tell (warm, sunlit) ===== */
.scn-decide-to-tell {
  background:
    linear-gradient(180deg, #f0d9a8 0%, #dabf7a 40%, #c4a25a 100%),
    radial-gradient(ellipse at 50% 40%, #fff5cc 0%, transparent 60%);
}
.scn-decide-to-tell .bg-room {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, #e7ce94 0%, #c9ab6a 100%);
}
.scn-decide-to-tell .window {
  position: absolute; top: 10%; right: 8%;
  width: 90px; height: 110px;
  background: linear-gradient(180deg, #fff3cc 0%, #f9e29a 100%);
  border: 4px solid #7a5e36;
  border-radius: 6px;
  box-shadow: inset 0 0 20px rgba(255,230,120,0.5), 0 0 30px rgba(255,230,120,0.3);
  animation: dtt-window-glow 5s ease-in-out infinite alternate;
}
.scn-decide-to-tell .curtain {
  position: absolute; top: 8%; right: 6%;
  width: 20px; height: 120px;
  background: linear-gradient(180deg, #c8a060 0%, #a07a40 100%);
  border-radius: 0 0 30% 0;
  transform-origin: top left;
  animation: dtt-sway 6s ease-in-out infinite alternate;
}
.scn-decide-to-tell .fig-rachel {
  position: absolute; bottom: 22%; left: 25%;
  width: 24px; height: 70px;
  background: linear-gradient(180deg, #58402c 0%, #3a2818 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: dtt-hush 3s ease-in-out infinite;
}
.scn-decide-to-tell .fig-ruth {
  position: absolute; bottom: 20%; left: 45%;
  width: 22px; height: 66px;
  background: linear-gradient(180deg, #6a4e38 0%, #4a3420 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: dtt-lean 3.5s ease-in-out infinite;
}
.scn-decide-to-tell .table {
  position: absolute; bottom: 10%; left: 35%;
  width: 80px; height: 8px;
  background: linear-gradient(180deg, #a08050 0%, #70502a 100%);
  border-radius: 2px;
  box-shadow: 0 4px 6px rgba(0,0,0,0.2);
}
.scn-decide-to-tell .sunbeam {
  position: absolute; top: 0; left: 35%; width: 35px; height: 100%;
  background: linear-gradient(180deg, rgba(255,245,180,0.3) 0%, transparent 100%);
  filter: blur(6px);
  animation: dtt-beam 8s ease-in-out infinite alternate;
}
@keyframes dtt-window-glow {
  0% { opacity: 0.7; box-shadow: inset 0 0 15px rgba(255,230,120,0.4), 0 0 20px rgba(255,230,120,0.2); }
  50% { opacity: 1; box-shadow: inset 0 0 30px rgba(255,230,120,0.7), 0 0 40px rgba(255,230,120,0.4); }
  100% { opacity: 0.8; box-shadow: inset 0 0 20px rgba(255,230,120,0.5), 0 0 30px rgba(255,230,120,0.3); }
}
@keyframes dtt-sway {
  0% { transform: rotate(0deg) translateX(0); }
  50% { transform: rotate(3deg) translateX(2px); }
  100% { transform: rotate(-3deg) translateX(-2px); }
}
@keyframes dtt-hush {
  0%, 100% { transform: translateX(0) rotate(0deg); }
  25% { transform: translateX(-2px) rotate(-5deg); }
  75% { transform: translateX(2px) rotate(5deg); }
}
@keyframes dtt-lean {
  0%, 100% { transform: translateX(0) rotate(0deg); }
  50% { transform: translateX(6px) rotate(4deg); }
}
@keyframes dtt-beam {
  0% { transform: translateX(-5px) skewX(2deg); opacity: 0.5; }
  100% { transform: translateX(5px) skewX(-2deg); opacity: 1; }
}

.scn-cassys-plan {
  background: linear-gradient(180deg, #1a0a2e 0%, #3a1a3a 30%, #6a2a2a 60%, #c05030 100%), 
              radial-gradient(ellipse at 50% 100%, #e06a30 0%, transparent 70%);
}
.scn-cassys-plan .sky {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #1a0a2e 0%, #2a1a3a 50%, transparent 100%);
  animation: cp-sky 15s ease-in-out infinite alternate;
}
.scn-cassys-plan .sun-glow {
  position: absolute; bottom: 30%; left: 50%; width: 120px; height: 100px;
  transform: translateX(-50%);
  background: radial-gradient(circle, #ff8a40 0%, #e06a30 40%, transparent 70%);
  filter: blur(8px);
  animation: cp-glow 12s ease-in-out infinite alternate;
}
.scn-cassys-plan .archway {
  position: absolute; bottom: 10%; left: 50%; width: 80px; height: 120px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #1a0a1a 0%, #0a0a0a 100%);
  border-radius: 40% 40% 0 0 / 60% 60% 0 0;
  box-shadow: inset 0 0 30px rgba(0,0,0,0.8);
  animation: cp-arch 20s ease-in-out infinite;
}
.scn-cassys-plan .figure-left {
  position: absolute; bottom: 15%; left: 44%; width: 20px; height: 40px;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a0a 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  transform-origin: bottom center;
  animation: cp-figleft 4s ease-in-out infinite;
}
.scn-cassys-plan .figure-right {
  position: absolute; bottom: 15%; right: 44%; width: 18px; height: 36px;
  background: linear-gradient(180deg, #3a2a2a 0%, #1a1a1a 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  transform-origin: bottom center;
  animation: cp-figright 4s ease-in-out infinite 0.5s;
}
.scn-cassys-plan .hand {
  position: absolute; bottom: 30%; left: 49%; width: 10px; height: 6px;
  background: #2a1a1a;
  border-radius: 20% 80% 50% 50% / 40% 60% 40% 60%;
  transform: rotate(160deg);
  animation: cp-hand 5s ease-in-out infinite;
}
.scn-cassys-plan .lantern {
  position: absolute; bottom: 40%; left: 54%; width: 8px; height: 8px;
  background: radial-gradient(circle, #ffd080 0%, #c07030 70%);
  border-radius: 50%;
  box-shadow: 0 0 20px 6px rgba(255,208,128,0.5), 0 0 40px 12px rgba(192,112,48,0.3);
  animation: cp-lantern 3s ease-in-out infinite alternate;
}
.scn-cassys-plan .shadows {
  position: absolute; inset: 0;
  background: radial-gradient(ellipse at 50% 70%, transparent 30%, rgba(0,0,0,0.6) 100%);
  animation: cp-shadows 10s ease-in-out infinite alternate;
}
@keyframes cp-sky { 0% { opacity:0.8 } 50% { opacity:1 } 100% { opacity:0.7 } }
@keyframes cp-glow { 0% { opacity:0.6; transform: translateX(-50%) scale(0.9) } 50% { opacity:1; transform: translateX(-50%) scale(1.1) } 100% { opacity:0.7; transform: translateX(-50%) scale(0.95) } }
@keyframes cp-arch { 0%,100% { transform: translateX(-50%) } 50% { transform: translateX(-50%) translateY(-2px) } }
@keyframes cp-figleft { 0%,100% { transform: rotate(-1deg) } 25% { transform: rotate(1deg) translateX(2px) } 75% { transform: rotate(-1deg) translateX(-1px) } }
@keyframes cp-figright { 0%,100% { transform: rotate(1deg) } 25% { transform: rotate(-1deg) translateX(-2px) } 75% { transform: rotate(1deg) translateX(1px) } }
@keyframes cp-hand { 0% { transform: rotate(160deg) } 50% { transform: rotate(150deg) scale(1.1) } 100% { transform: rotate(160deg) } }
@keyframes cp-lantern { 0% { box-shadow: 0 0 15px 4px rgba(255,208,128,0.4); } 50% { box-shadow: 0 0 30px 8px rgba(255,208,128,0.7); } 100% { box-shadow: 0 0 20px 5px rgba(255,208,128,0.5); } }
@keyframes cp-shadows { 0% { opacity:0.5 } 50% { opacity:0.8 } 100% { opacity:0.6 } }

.scn-escape-interrupted {
  background: linear-gradient(180deg, #0E1116 0%, #1A2A2A 50%, #0a1a1a 100%), 
              radial-gradient(ellipse at 50% 100%, #1a3a3a 0%, transparent 80%);
}
.scn-escape-interrupted .night-sky {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(180deg, #0a1620 0%, #162a30 50%, transparent 100%);
  animation: ei-sky 20s ease-in-out infinite alternate;
}
.scn-escape-interrupted .moon {
  position: absolute; top: 8%; right: 20%; width: 40px; height: 40px;
  background: radial-gradient(circle, #d4e8f0 0%, #8ab0c8 60%);
  border-radius: 50%;
  box-shadow: 0 0 40px 10px rgba(138,176,200,0.4), 0 0 80px 20px rgba(138,176,200,0.2);
  animation: ei-moon 30s ease-in-out infinite;
}
.scn-escape-interrupted .swamp-ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 50%;
  background: linear-gradient(180deg, #1a3a2a 0%, #0a1a0a 100%);
  border-radius: 30% 70% 0 0 / 20% 80% 0 0;
  box-shadow: inset 0 10px 30px rgba(0,0,0,0.5);
  animation: ei-ground 18s ease-in-out infinite alternate;
}
.scn-escape-interrupted .reeds-back {
  position: absolute; bottom: 30%; left: 0; right: 0; height: 35%;
  background: repeating-linear-gradient(90deg, transparent 0px, #2a4a3a 2px, transparent 4px);
  background-size: 60% 100%;
  opacity: 0.4;
  filter: blur(2px);
  animation: ei-reeds 8s ease-in-out infinite alternate;
}
.scn-escape-interrupted .reeds-front {
  position: absolute; bottom: 20%; left: 0; right: 0; height: 40%;
  background: repeating-linear-gradient(90deg, transparent 0px, #3a5a4a 3px, transparent 7px);
  background-size: 40% 100%;
  opacity: 0.6;
  filter: blur(1px);
  animation: ei-reeds 10s ease-in-out infinite alternate-reverse;
}
.scn-escape-interrupted .figure-cassy {
  position: absolute; bottom: 24%; left: 35%; width: 22px; height: 42px;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: ei-cassy 6s ease-in-out infinite;
}
.scn-escape-interrupted .figure-emmeline {
  position: absolute; bottom: 22%; left: 50%; width: 18px; height: 36px;
  background: linear-gradient(180deg, #3a2a2a 0%, #1a1a1a 100%);
  border-radius: 50% 50% 30% 30% / 50% 50% 30% 30%;
  transform-origin: bottom center;
  animation: ei-emmeline 6s ease-in-out infinite 0.5s;
}
.scn-escape-interrupted .stiletto {
  position: absolute; bottom: 38%; left: 42%; width: 2px; height: 14px;
  background: linear-gradient(180deg, #c0c8d0 0%, #808898 100%);
  border-radius: 10% 10% 50% 50%;
  box-shadow: 0 0 8px 2px rgba(192,200,208,0.6);
  transform: rotate(30deg);
  animation: ei-stiletto 0.8s ease-in-out infinite alternate;
}
.scn-escape-interrupted .reflection {
  position: absolute; bottom: 8%; left: 30%; right: 30%; height: 10%;
  background: linear-gradient(180deg, rgba(208,224,232,0.1) 0%, transparent 100%);
  filter: blur(4px);
  animation: ei-reflection 12s ease-in-out infinite;
}
@keyframes ei-sky { 0% { opacity:0.7 } 50% { opacity:1 } 100% { opacity:0.8 } }
@keyframes ei-moon { 0% { transform: translate(0) } 50% { transform: translate(4px, -2px) } 100% { transform: translate(-2px, 1px) } }
@keyframes ei-ground { 0% { transform: translateY(0) } 50% { transform: translateY(-2px) } 100% { transform: translateY(1px) } }
@keyframes ei-reeds { 0% { opacity:0.3; transform: translateX(0) } 50% { opacity:0.5; transform: translateX(-5px) } 100% { opacity:0.4; transform: translateX(3px) } }
@keyframes ei-cassy { 0%,100% { transform: rotate(-2deg) } 50% { transform: rotate(2deg) translateY(-1px) } }
@keyframes ei-emmeline { 0%,100% { transform: rotate(1deg) } 50% { transform: rotate(-1deg) translateY(-1px) } }
@keyframes ei-stiletto { 0% { opacity:0.8; transform: rotate(30deg) scale(1) } 25% { opacity:1; transform: rotate(25deg) scale(1.2) } 75% { opacity:1; transform: rotate(35deg) scale(0.9) } 100% { opacity:0.6; transform: rotate(30deg) scale(1) } }
@keyframes ei-reflection { 0% { opacity:0.1 } 50% { opacity:0.3 } 100% { opacity:0.1 } }

.scn-legree-organizes-hunt {
  background: linear-gradient(180deg, #0a0a12 0%, #1a1a2e 50%, #2a1a1a 100%), 
              radial-gradient(ellipse at 50% 100%, #1a1a2e 0%, transparent 60%);
}
.scn-legree-organizes-hunt .night-sky-wide {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #080c14 0%, #141a2a 50%, transparent 100%);
  animation: loh-sky 25s ease-in-out infinite alternate;
}
.scn-legree-organizes-hunt .moon-bright {
  position: absolute; top: 5%; left: 10%; width: 50px; height: 50px;
  background: radial-gradient(circle, #e0e8f0 0%, #a0b8c8 50%);
  border-radius: 50%;
  box-shadow: 0 0 60px 15px rgba(160,184,200,0.4), 0 0 120px 30px rgba(160,184,200,0.2);
  animation: loh-moon 35s linear infinite;
}
.scn-legree-organizes-hunt .quarters {
  position: absolute; bottom: 20%; left: 10%; width: 35%; height: 50%;
  background: linear-gradient(180deg, #2a1a1a 0%, #1a0a0a 100%);
  border-radius: 5% 5% 0 0;
  box-shadow: inset 0 8px 20px rgba(0,0,0,0.7);
  animation: loh-quarters 20s ease-in-out infinite alternate;
}
.scn-legree-organizes-hunt .legee-figure {
  position: absolute; bottom: 22%; left: 50%; width: 28px; height: 50px;
  background: linear-gradient(180deg, #2a1a1a 0%, #0a0a0a 100%);
  border-radius: 50% 50% 40% 40% / 70% 70% 30% 30%;
  transform-origin: bottom center;
  animation: loh-legree 5s ease-in-out infinite;
}
.scn-legree-organizes-hunt .dog-fury {
  position: absolute; bottom: 18%; left: 35%; width: 18px; height: 22px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a1a0a 100%);
  border-radius: 40% 60% 30% 30% / 50% 50% 30% 30%;
  transform: rotate(-10deg);
  animation: loh-dog1 6s ease-in-out infinite;
}
.scn-legree-organizes-hunt .dog-tiger {
  position: absolute; bottom: 16%; left: 28%; width: 20px; height: 24px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 40% 60% 30% 30% / 50% 50% 30% 30%;
  transform: rotate(5deg);
  animation: loh-dog2 6s ease-in-out infinite 1s;
}
.scn-legree-organizes-hunt .sambo {
  position: absolute; bottom: 20%; left: 62%; width: 20px; height: 38px;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: loh-sambo 5s ease-in-out infinite 0.5s;
}
.scn-legree-organizes-hunt .quimbo {
  position: absolute; bottom: 20%; left: 70%; width: 18px; height: 36px;
  background: linear-gradient(180deg, #2a1a1a 0%, #0a0a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: loh-quimbo 5s ease-in-out infinite 1s;
}
.scn-legree-organizes-hunt .torch-1 {
  position: absolute; bottom: 40%; left: 55%; width: 6px; height: 6px;
  background: radial-gradient(circle, #ffa53a 0%, #c06a20 60%);
  border-radius: 50%;
  box-shadow: 0 0 20px 8px rgba(255,165,58,0.5), 0 0 40px 15px rgba(192,106,32,0.3);
  animation: loh-torch1 3s ease-in-out infinite alternate;
}
.scn-legree-organizes-hunt .torch-2 {
  position: absolute; bottom: 40%; left: 75%; width: 5px; height: 5px;
  background: radial-gradient(circle, #ffa53a 0%, #c06a20 60%);
  border-radius: 50%;
  box-shadow: 0 0 16px 6px rgba(255,165,58,0.4), 0 0 30px 10px rgba(192,106,32,0.2);
  animation: loh-torch2 3s ease-in-out infinite alternate 0.5s;
}
@keyframes loh-sky { 0% { opacity:0.7 } 50% { opacity:1 } 100% { opacity:0.8 } }
@keyframes loh-moon { 0% { transform: translate(0) } 50% { transform: translate(2px, -1px) } 100% { transform: translate(-1px, 1px) } }
@keyframes loh-quarters { 0% { transform: translateY(0) } 50% { transform: translateY(-1px) } 100% { transform: translateY(1px) } }
@keyframes loh-legree { 0%,100% { transform: rotate(-1deg) } 40% { transform: rotate(2deg) } 80% { transform: rotate(-2deg) } }
@keyframes loh-dog1 { 0% { transform: rotate(-10deg) } 30% { transform: rotate(0deg) translateX(4px) } 70% { transform: rotate(-5deg) } 100% { transform: rotate(-10deg) } }
@keyframes loh-dog2 { 0% { transform: rotate(5deg) } 30% { transform: rotate(-2deg) translateX(-3px) } 70% { transform: rotate(8deg) } 100% { transform: rotate(5deg) } }
@keyframes loh-sambo { 0%,100% { transform: rotate(-2deg) } 50% { transform: rotate(2deg) } }
@keyframes loh-quimbo { 0%,100% { transform: rotate(1deg) } 50% { transform: rotate(-1deg) } }
@keyframes loh-torch1 { 0% { box-shadow: 0 0 15px 5px rgba(255,165,58,0.4) } 50% { box-shadow: 0 0 25px 10px rgba(255,165,58,0.7) } 100% { box-shadow: 0 0 18px 6px rgba(255,165,58,0.5) } }
@keyframes loh-torch2 { 0% { box-shadow: 0 0 12px 4px rgba(255,165,58,0.3) } 50% { box-shadow: 0 0 22px 8px rgba(255,165,58,0.6) } 100% { box-shadow: 0 0 15px 5px rgba(255,165,58,0.4) } }

.scn-hunt-begins {
  background: linear-gradient(180deg, #0a0a1a 0%, #1a1a2e 50%, #0a0a0a 100%), 
              radial-gradient(ellipse at 50% 100%, #0a1a1a 0%, transparent 70%);
}
.scn-hunt-begins .bg-night {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #0a0e1a 0%, #141a2a 50%, transparent 100%);
  animation: hb-bg 30s ease-in-out infinite alternate;
}
.scn-hunt-begins .moon-dim {
  position: absolute; top: 10%; right: 25%; width: 35px; height: 35px;
  background: radial-gradient(circle, #c0d0e0 0%, #788898 60%);
  border-radius: 50%;
  box-shadow: 0 0 30px 8px rgba(120,136,152,0.3), 0 0 60px 15px rgba(120,136,152,0.15);
  animation: hb-moon 40s linear infinite alternate;
}
.scn-hunt-begins .ground-mid {
  position: absolute; bottom: 0; left: 0; right: 0; height: 40%;
  background: linear-gradient(180deg, #1a2a1a 0%, #0a0a0a 100%);
  border-radius: 50% 50% 0 0 / 20% 20% 0 0;
  box-shadow: inset 0 8px 20px rgba(0,0,0,0.6);
  animation: hb-ground 22s ease-in-out infinite alternate;
}
.scn-hunt-begins .dog-runner-1 {
  position: absolute; bottom: 18%; left: 20%; width: 24px; height: 16px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 50% 50% 10% 10%;
  transform: rotate(-15deg);
  filter: blur(1px);
  animation: hb-dog1 3s ease-in-out infinite;
}
.scn-hunt-begins .dog-runner-2 {
  position: absolute; bottom: 20%; left: 10%; width: 22px; height: 14px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a1a0a 100%);
  border-radius: 50% 50% 10% 10%;
  transform: rotate(10deg);
  filter: blur(1px);
  animation: hb-dog2 3s ease-in-out infinite 0.5s;
}
.scn-hunt-begins .sambo-rifle {
  position: absolute; bottom: 22%; right: 25%; width: 22px; height: 40px;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: hb-sambo 4s ease-in-out infinite;
}
.scn-hunt-begins .sambo-rifle::after {
  content: '';
  position: absolute; top: 10%; left: 50%; width: 30px; height: 3px;
  background: #2a2a2a;
  transform: translateX(-50%) rotate(20deg);
  border-radius: 10% 40% 40% 10%;
  animation: hb-rifle 4s ease-in-out infinite;
}
.scn-hunt-begins .legree-watch {
  position: absolute; bottom: 22%; right: 15%; width: 26px; height: 48px;
  background: linear-gradient(180deg, #2a1a1a 0%, #0a0a0a 100%);
  border-radius: 50% 50% 40% 40% / 70% 70% 30% 30%;
  transform-origin: bottom center;
  animation: hb-legree 5s ease-in-out infinite 1s;
}
.scn-hunt-begins .swamp-edge {
  position: absolute; bottom: 12%; left: 0; right: 0; height: 25%;
  background: linear-gradient(180deg, transparent 0%, #1a2a1a 40%, #0a1a0a 100%);
  border-radius: 30% 70% 0 0 / 10% 90% 0 0;
  filter: blur(3px);
  animation: hb-swamp 20s ease-in-out infinite alternate;
}
@keyframes hb-bg { 0% { opacity:0.8 } 50% { opacity:1 } 100% { opacity:0.75 } }
@keyframes hb-moon { 0% { transform: translate(0) } 50% { transform: translate(3px, -2px) } 100% { transform: translate(-1px, 1px) } }
@keyframes hb-ground { 0% { transform: translateY(0) } 50% { transform: translateY(-3px) } 100% { transform: translateY(1px) } }
@keyframes hb-dog1 { 0% { transform: rotate(-15deg) translateX(0) } 30% { transform: rotate(-5deg) translateX(10px) } 60% { transform: rotate(-20deg) translateX(20px) } 100% { transform: rotate(-15deg) translateX(30px) } }
@keyframes hb-dog2 { 0% { transform: rotate(10deg) translateX(0) } 30% { transform: rotate(0deg) translateX(8px) } 60% { transform: rotate(15deg) translateX(16px) } 100% { transform: rotate(10deg) translateX(24px) } }
@keyframes hb-sambo { 0%,100% { transform: rotate(-2deg) } 50% { transform: rotate(2deg) } }
@keyframes hb-rifle { 0%,100% { transform: translateX(-50%) rotate(20deg) } 50% { transform: translateX(-50%) rotate(15deg) } }
@keyframes hb-legree { 0%,100% { transform: rotate(-1deg) } 40% { transform: rotate(3deg) } 80% { transform: rotate(-2deg) } }
@keyframes hb-swamp { 0% { opacity:0.4; transform: translateY(0) } 50% { opacity:0.7; transform: translateY(-1px) } 100% { opacity:0.5; transform: translateY(2px) } }

.scn-mrs-shelby-invites-dinner {
  background: 
    linear-gradient(180deg, #b7d7e0 0%, #f6e3c5 60%, #e8c49a 100%),
    radial-gradient(ellipse at 50% 20%, #ffe680 0%, transparent 60%);
}
.scn-mrs-shelby-invites-dinner .sky {
  position: absolute; inset: 0 0 60% 0;
  background: linear-gradient(180deg, #c3e0ec 0%, transparent 100%);
  animation: ms-sky 14s ease-in-out infinite alternate;
}
.scn-mrs-shelby-invites-dinner .sun-glow {
  position: absolute; top: 12%; left: 60%; width: 80px; height: 80px;
  background: radial-gradient(circle, #ffea80 0%, transparent 70%);
  border-radius: 50%;
  animation: ms-sun 6s ease-in-out infinite alternate;
}
.scn-mrs-shelby-invites-dinner .stable {
  position: absolute; bottom: 32%; left: 8%; width: 120px; height: 100px;
  background: linear-gradient(180deg, #a6794a 0%, #7a5a2e 100%);
  border-radius: 8% 8% 4% 4%;
  box-shadow: 0 6px 12px rgba(0,0,0,0.4);
}
.scn-mrs-shelby-invites-dinner .stable::before {
  content: ''; position: absolute; top: -20px; left: 10%; width: 80%; height: 30px;
  background: linear-gradient(180deg, #8a6a3a 0%, #6a4a1a 100%);
  clip-path: polygon(0% 100%, 50% 0%, 100% 100%);
}
.scn-mrs-shelby-invites-dinner .horse {
  position: absolute; bottom: 30%; right: 20%; width: 70px; height: 50px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 50% 50% 40% 40% / 40% 40% 60% 60%;
  transform-origin: bottom center;
  animation: ms-horse 4s ease-in-out infinite;
}
.scn-mrs-shelby-invites-dinner .figure-haley {
  position: absolute; bottom: 28%; left: 35%; width: 24px; height: 70px;
  background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%);
  border-radius: 50% 50% 40% 40% / 40% 40% 60% 60%;
  transform-origin: bottom center;
  animation: ms-haley 3s ease-in-out infinite;
}
.scn-mrs-shelby-invites-dinner .figure-sam {
  position: absolute; bottom: 28%; left: 55%; width: 20px; height: 55px;
  background: linear-gradient(180deg, #2a1a1a 0%, #0a0a0a 100%);
  border-radius: 50% 40% 40% 40% / 50% 50% 40% 40%;
  transform-origin: bottom center;
  animation: ms-sam 4s ease-in-out infinite;
}
.scn-mrs-shelby-invites-dinner .ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #8cb26a 0%, #6a8a4a 100%);
  border-radius: 20% 20% 0 0;
  box-shadow: inset 0 8px 16px rgba(0,0,0,0.2);
}

@keyframes ms-sky { 0% { opacity: 0.7 } 50% { opacity: 1 } 100% { opacity: 0.8 } }
@keyframes ms-sun { 0% { transform: scale(0.9); opacity: 0.8 } 50% { transform: scale(1.1); opacity: 1 } 100% { transform: scale(0.95); opacity: 0.85 } }
@keyframes ms-horse { 0%,100% { transform: translateX(0) rotate(0deg) } 25% { transform: translateX(4px) rotate(1deg) } 75% { transform: translateX(-2px) rotate(-1deg) } }
@keyframes ms-haley { 0%,100% { transform: translateY(0) rotate(0) } 30% { transform: translateY(-2px) rotate(2deg) } 70% { transform: translateY(0) rotate(-1deg) } }
@keyframes ms-sam { 0%,100% { transform: translateY(0) scaleY(1) } 50% { transform: translateY(-1px) scaleY(0.95) } }

/* -------- sam-gloats-over-haley -------- */
.scn-sam-gloats-over-haley {
  background: 
    linear-gradient(180deg, #a8cfe0 0%, #f0d9b5 70%, #d9b87a 100%),
    radial-gradient(ellipse at 30% 80%, #ffe080 0%, transparent 50%);
}
.scn-sam-gloats-over-haley .sky {
  position: absolute; inset: 0 0 55% 0;
  background: linear-gradient(180deg, #c0e0f0 0%, transparent 100%);
  animation: sg-sky 20s ease-in-out infinite alternate;
}
.scn-sam-gloats-over-haley .house {
  position: absolute; bottom: 30%; right: 10%; width: 130px; height: 110px;
  background: linear-gradient(180deg, #f5e6d0 0%, #d4b89a 100%);
  border-radius: 8% 8% 4% 4%;
  box-shadow: 0 6px 12px rgba(0,0,0,0.3);
}
.scn-sam-gloats-over-haley .house::before {
  content: ''; position: absolute; top: -20px; left: 10%; width: 80%; height: 28px;
  background: linear-gradient(180deg, #b0865a 0%, #8a5a2a 100%);
  clip-path: polygon(0% 100%, 50% 0%, 100% 100%);
}
.scn-sam-gloats-over-haley .window {
  position: absolute; bottom: 40%; right: 35%; width: 22px; height: 28px;
  background: radial-gradient(circle, #ffe070 0%, #e8b040 80%);
  border-radius: 10% 10% 5% 5%;
  box-shadow: 0 0 20px 6px #ffd060, 0 0 40px 12px rgba(255,208,96,0.4);
  animation: sg-window 4s ease-in-out infinite alternate;
}
.scn-sam-gloats-over-haley .figure-haley-inside {
  position: absolute; bottom: 33%; right: 36%; width: 16px; height: 50px;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 50% 50% 40% 40% / 40% 40% 60% 60%;
  transform-origin: bottom center;
  animation: sg-haley-in 6s ease-in-out infinite;
}
.scn-sam-gloats-over-haley .figure-sam {
  position: absolute; bottom: 28%; left: 15%; width: 20px; height: 55px;
  background: linear-gradient(180deg, #2a1a1a 0%, #0a0a0a 100%);
  border-radius: 50% 40% 40% 40% / 50% 50% 40% 40%;
  transform-origin: bottom center;
  animation: sg-sam 5s ease-in-out infinite;
}
.scn-sam-gloats-over-haley .horse {
  position: absolute; bottom: 30%; left: 35%; width: 60px; height: 45px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 50% 50% 40% 40% / 40% 40% 60% 60%;
  animation: sg-horse 3.5s ease-in-out infinite;
}
.scn-sam-gloats-over-haley .tree {
  position: absolute; bottom: 30%; left: 5%; width: 40px; height: 90px;
  background: linear-gradient(180deg, #3a5a2a 0%, #2a4a1a 100%);
  border-radius: 50% 50% 10% 10% / 60% 60% 10% 10%;
  box-shadow: inset -4px 0 8px rgba(0,0,0,0.3);
  animation: sg-tree 12s ease-in-out infinite alternate;
}
.scn-sam-gloats-over-haley .ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #9ab86a 0%, #7a9a4a 100%);
  border-radius: 20% 20% 0 0;
  box-shadow: inset 0 8px 16px rgba(0,0,0,0.15);
}

@keyframes sg-sky { 0% { opacity: 0.6 } 50% { opacity: 1 } 100% { opacity: 0.7 } }
@keyframes sg-window { 0% { box-shadow: 0 0 16px 3px #ffd060, 0 0 32px 8px rgba(255,208,96,0.3); opacity: 0.85 } 100% { box-shadow: 0 0 28px 8px #ffe080, 0 0 48px 16px rgba(255,224,128,0.5); opacity: 1 } }
@keyframes sg-haley-in { 0%,100% { transform: translateX(0) rotate(0) } 25% { transform: translateX(2px) rotate(2deg) } 75% { transform: translateX(-1px) rotate(-1deg) } }
@keyframes sg-sam { 0%,100% { transform: translateY(0) rotate(0) } 40% { transform: translateY(-1px) rotate(1deg) } 80% { transform: translateY(0) rotate(-2deg) } }
@keyframes sg-horse { 0%,100% { transform: translateX(0) } 30% { transform: translateX(5px) } 70% { transform: translateX(-3px) } }
@keyframes sg-tree { 0% { transform: rotate(0deg) } 50% { transform: rotate(1deg) } 100% { transform: rotate(-1deg) } }

/* -------- sam-on-bobservation -------- */
.scn-sam-on-bobservation {
  background: 
    linear-gradient(180deg, #b5d6e0 0%, #f0dbb0 60%, #d6b880 100%),
    radial-gradient(ellipse at 50% 25%, #ffe070 0%, transparent 70%);
}
.scn-sam-on-bobservation .sky {
  position: absolute; inset: 0 0 50% 0;
  background: linear-gradient(180deg, #c8e4f0 0%, transparent 100%);
  animation: sb-sky 16s ease-in-out infinite alternate;
}
.scn-sam-on-bobservation .sun {
  position: absolute; top: 10%; left: 45%; width: 60px; height: 60px;
  background: radial-gradient(circle, #fff0a0 0%, transparent 70%);
  border-radius: 50%;
  animation: sb-sun 8s ease-in-out infinite alternate;
}
.scn-sam-on-bobservation .fence {
  position: absolute; bottom: 22%; left: 0; right: 0; height: 8px;
  background: linear-gradient(90deg, #6a4a2a 0%, #8a5a3a 50%, #6a4a2a 100%);
  box-shadow: 0 -20px 0 #6a4a2a, 0 -40px 0 #6a4a2a;
  animation: sb-fence 6s ease-in-out infinite alternate;
}
.scn-sam-on-bobservation .horse-head {
  position: absolute; bottom: 30%; left: 20%; width: 30px; height: 40px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 50% 50% 30% 30% / 40% 40% 60% 60%;
  transform-origin: bottom center;
  animation: sb-horsehead 4s ease-in-out infinite;
}
.scn-sam-on-bobservation .figure-sam {
  position: absolute; bottom: 22%; left: 40%; width: 20px; height: 55px;
  background: linear-gradient(180deg, #2a1a1a 0%, #0a0a0a 100%);
  border-radius: 50% 40% 40% 40% / 50% 50% 40% 40%;
  transform-origin: bottom center;
  animation: sb-sam 5s ease-in-out infinite;
}
.scn-sam-on-bobservation .figure-andy {
  position: absolute; bottom: 22%; right: 30%; width: 18px; height: 50px;
  background: linear-gradient(180deg, #2a2a1a 0%, #0a0a0a 100%);
  border-radius: 40% 50% 40% 40% / 50% 50% 40% 40%;
  transform-origin: bottom center;
  animation: sb-andy 4.5s ease-in-out infinite;
}
.scn-sam-on-bobservation .ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 25%;
  background: linear-gradient(180deg, #8cb26a 0%, #5a7a3a 100%);
  border-radius: 30% 30% 0 0;
  box-shadow: inset 0 6px 12px rgba(0,0,0,0.2);
}

@keyframes sb-sky { 0% { opacity: 0.7 } 50% { opacity: 1 } 100% { opacity: 0.8 } }
@keyframes sb-sun { 0% { transform: scale(0.9); opacity: 0.8 } 50% { transform: scale(1.1); opacity: 1 } 100% { transform: scale(1); opacity: 0.9 } }
@keyframes sb-fence { 0% { transform: translateY(0) } 50% { transform: translateY(-2px) } 100% { transform: translateY(0) } }
@keyframes sb-horsehead { 0%,100% { transform: translateY(0) rotate(0) } 25% { transform: translateY(-2px) rotate(2deg) } 75% { transform: translateY(1px) rotate(-1deg) } }
@keyframes sb-sam { 0%,100% { transform: translateY(0) rotate(0deg) } 30% { transform: translateY(-2px) rotate(3deg) } 70% { transform: translateY(0) rotate(-2deg) } }
@keyframes sb-andy { 0%,100% { transform: translateY(0) scaleY(1) } 40% { transform: translateY(-1px) scaleY(0.95) } 80% { transform: translateY(0) scaleY(1) } }

/* -------- andy-claims-credit -------- */
.scn-andy-claims-credit {
  background: 
    linear-gradient(180deg, #b0d0e0 0%, #f0d8a8 65%, #d4b070 100%),
    radial-gradient(ellipse at 60% 20%, #ffe070 0%, transparent 60%);
}
.scn-andy-claims-credit .sky {
  position: absolute; inset: 0 0 55% 0;
  background: linear-gradient(180deg, #c0dff0 0%, transparent 100%);
  animation: ac-sky 18s ease-in-out infinite alternate;
}
.scn-andy-claims-credit .sun {
  position: absolute; top: 8%; left: 55%; width: 70px; height: 70px;
  background: radial-gradient(circle, #ffe890 0%, transparent 70%);
  border-radius: 50%;
  animation: ac-sun 7s ease-in-out infinite alternate;
}
.scn-andy-claims-credit .path {
  position: absolute; bottom: 0; left: 20%; right: 20%; height: 30%;
  background: linear-gradient(180deg, #d4b070 0%, #b08040 100%);
  border-radius: 20% 20% 0 0;
}
.scn-andy-claims-credit .figure-sam {
  position: absolute; bottom: 22%; left: 30%; width: 20px; height: 55px;
  background: linear-gradient(180deg, #2a1a1a 0%, #0a0a0a 100%);
  border-radius: 50% 40% 40% 40% / 50% 50% 40% 40%;
  transform-origin: bottom center;
  animation: ac-walk 7s linear infinite, ac-body 3s ease-in-out infinite;
}
.scn-andy-claims-credit .figure-andy {
  position: absolute; bottom: 22%; left: 50%; width: 18px; height: 50px;
  background: linear-gradient(180deg, #2a2a1a 0%, #0a0a0a 100%);
  border-radius: 40% 50% 40% 40% / 50% 50% 40% 40%;
  transform-origin: bottom center;
  animation: ac-walk 7s linear infinite -1.5s, ac-body 3.2s ease-in-out infinite -0.8s;
}
.scn-andy-claims-credit .hat {
  position: absolute; bottom: 74%; left: 32%; width: 14px; height: 10px;
  background: linear-gradient(180deg, #5a3a1a 0%, #3a1a0a 100%);
  border-radius: 50% 50% 20% 20% / 80% 80% 20% 20%;
  transform-origin: bottom center;
  animation: ac-hat 2.5s ease-in-out infinite alternate;
}
.scn-andy-claims-credit .dust {
  position: absolute; bottom: 18%; left: 40%; width: 30px; height: 20px;
  background: radial-gradient(circle, rgba(180,140,80,0.6) 0%, transparent 70%);
  filter: blur(4px);
  animation: ac-dust 6s ease-in-out infinite;
}

@keyframes ac-sky { 0% { opacity: 0.6 } 50% { opacity: 1 } 100% { opacity: 0.75 } }
@keyframes ac-sun { 0% { transform: scale(0.95); opacity: 0.85 } 50% { transform: scale(1.05); opacity: 1 } 100% { transform: scale(1); opacity: 0.9 } }
@keyframes ac-walk { 0% { transform: translateX(0) } 100% { transform: translateX(120px) } }
@keyframes ac-body { 0%,100% { transform: rotate(0deg) } 25% { transform: rotate(2deg) } 75% { transform: rotate(-2deg) } }
@keyframes ac-hat { 0% { transform: rotate(-3deg) } 100% { transform: rotate(3deg) } }
@keyframes ac-dust { 0%,100% { transform: translateY(0) scale(1); opacity: 0.5 } 50% { transform: translateY(-10px) scale(1.5); opacity: 0.2 } }

.scn-aunt-chloe-on-jinnys-cooking {
  background: linear-gradient(180deg, #2a0a0a 0%, #4a1a0a 40%, #7a3a1a 100%), radial-gradient(ellipse at 50% 70%, #b06030 0%, transparent 60%);
}
.scn-aunt-chloe-on-jinnys-cooking .hearth {
  position: absolute; bottom: 20%; left: 30%; width: 40%; height: 35%;
  background: #3a1a0a; border-radius: 10% / 20% 20% 0 0;
}
.scn-aunt-chloe-on-jinnys-cooking .fire {
  position: absolute; bottom: 25%; left: 45%; width: 12%; height: 18%;
  background: radial-gradient(ellipse, #ffa050 0%, #e06020 50%, transparent 100%);
  animation: acj-flicker 1.5s ease-in-out infinite alternate;
}
.scn-aunt-chloe-on-jinnys-cooking .pot {
  position: absolute; bottom: 32%; left: 43%; width: 14%; height: 10%;
  background: #3a2a1a; border-radius: 10%;
}
.scn-aunt-chloe-on-jinnys-cooking .figure-chloe {
  position: absolute; bottom: 20%; left: 25%; width: 20%; height: 40%;
  background: linear-gradient(180deg, #5a3a2a 0%, #2a1a0a 100%);
  border-radius: 40% 40% 20% 20%;
  animation: acj-bob-chloe 4s ease-in-out infinite;
}
.scn-aunt-chloe-on-jinnys-cooking .figure-jinny {
  position: absolute; bottom: 20%; left: 55%; width: 15%; height: 30%;
  background: linear-gradient(180deg, #4a2a1a 0%, #1a0a0a 100%);
  border-radius: 40% 40% 20% 20%;
  animation: acj-bob-jinny 3.5s ease-in-out infinite;
}
.scn-aunt-chloe-on-jinnys-cooking .glow {
  position: absolute; bottom: 20%; left: 40%; width: 20%; height: 30%;
  background: radial-gradient(ellipse, rgba(255,160,80,0.3) 0%, transparent 70%);
  pointer-events: none;
}
.scn-aunt-chloe-on-jinnys-cooking .steam {
  position: absolute; bottom: 38%; left: 45%; width: 10%; height: 20%;
  background: linear-gradient(180deg, rgba(255,200,150,0.4) 0%, transparent 100%);
  filter: blur(4px);
  animation: acj-steam 3s ease-in-out infinite;
}
@keyframes acj-flicker {
  0% { opacity: 0.8; transform: scaleY(1); }
  50% { opacity: 1; transform: scaleY(1.1); }
  100% { opacity: 0.9; transform: scaleY(0.9); }
}
@keyframes acj-steam {
  0% { transform: translateY(0) scale(1); opacity: 0.6; }
  50% { transform: translateY(-15px) scale(1.2); opacity: 0.3; }
  100% { transform: translateY(-30px) scale(0.8); opacity: 0; }
}
@keyframes acj-bob-chloe {
  0% { transform: translateY(0) rotate(0deg); }
  50% { transform: translateY(-2px) rotate(1deg); }
  100% { transform: translateY(0) rotate(0deg); }
}
@keyframes acj-bob-jinny {
  0% { transform: translateY(0); }
  50% { transform: translateY(-3px); }
  100% { transform: translateY(0); }
}

.scn-aunt-chloe-laments-ignorance {
  background: linear-gradient(180deg, #2a0a05 0%, #4a1a0a 40%, #7a3a1a 80%, #2a0a05 100%), radial-gradient(ellipse at 50% 60%, #c07030 0%, transparent 50%);
}
.scn-aunt-chloe-laments-ignorance .wall {
  position: absolute; inset: 0;
  background: linear-gradient(90deg, #3a1a0a 0%, #5a2a1a 50%, #3a1a0a 100%);
}
.scn-aunt-chloe-laments-ignorance .fireplace {
  position: absolute; bottom: 20%; left: 25%; width: 50%; height: 40%;
  background: #2a0a05; border-radius: 10% / 20% 20% 0 0;
}
.scn-aunt-chloe-laments-ignorance .table {
  position: absolute; bottom: 25%; left: 40%; width: 20%; height: 5%;
  background: #6a3a1a; border-radius: 5%;
}
.scn-aunt-chloe-laments-ignorance .pie {
  position: absolute; bottom: 30%; left: 47%; width: 10%; height: 8%;
  background: radial-gradient(ellipse, #c08040 0%, #8a5020 100%);
  border-radius: 50%;
  animation: acl-pie 3s ease-in-out infinite;
}
.scn-aunt-chloe-laments-ignorance .figure-aunt {
  position: absolute; bottom: 20%; left: 30%; width: 18%; height: 45%;
  background: linear-gradient(180deg, #5a3a2a 0%, #2a1a0a 100%);
  border-radius: 30% 30% 20% 20%; transform: translateX(-50%);
  animation: acl-bob 4s ease-in-out infinite;
}
.scn-aunt-chloe-laments-ignorance .glow {
  position: absolute; bottom: 20%; left: 20%; width: 60%; height: 40%;
  background: radial-gradient(ellipse at 50% 60%, rgba(255,160,80,0.2) 0%, transparent 60%);
  pointer-events: none;
  animation: acl-glow 5s ease-in-out infinite alternate;
}
.scn-aunt-chloe-laments-ignorance .flame {
  position: absolute; bottom: 27%; left: 42%; width: 16%; height: 14%;
  background: radial-gradient(ellipse, #ffa050 0%, #e06020 50%, transparent 100%);
  animation: acl-flame 1.2s ease-in-out infinite alternate;
}
@keyframes acl-pie {
  0% { transform: scale(1) rotate(0deg); }
  50% { transform: scale(1.05) rotate(3deg); }
  100% { transform: scale(1) rotate(0deg); }
}
@keyframes acl-bob {
  0% { transform: translateX(-50%) translateY(0); }
  50% { transform: translateX(-50%) translateY(-3px); }
  100% { transform: translateX(-50%) translateY(0); }
}
@keyframes acl-glow {
  0% { opacity: 0.5; }
  50% { opacity: 0.8; }
  100% { opacity: 0.5; }
}
@keyframes acl-flame {
  0% { transform: scaleY(1); opacity: 0.8; }
  50% { transform: scaleY(1.3); opacity: 1; }
  100% { transform: scaleY(0.7); opacity: 0.9; }
}

.scn-george-jokes-about-pies {
  background: linear-gradient(180deg, #2a0a0a 0%, #4a1a0a 60%, #3a0a05 100%), radial-gradient(ellipse at 50% 50%, #b06030 0%, transparent 70%);
}
.scn-george-jokes-about-pies .backdrop {
  position: absolute; inset: 0;
  background: radial-gradient(ellipse at 30% 40%, #5a1a0a 0%, transparent 70%);
}
.scn-george-jokes-about-pies .table {
  position: absolute; bottom: 25%; left: 35%; width: 30%; height: 6%;
  background: #6a3a1a; border-radius: 5px;
}
.scn-george-jokes-about-pies .pie-plate {
  position: absolute; bottom: 30%; left: 45%; width: 12%; height: 8%;
  background: #a06030; border-radius: 50%;
  box-shadow: 0 2px 4px rgba(0,0,0,0.5);
  animation: gj-wobble 2.5s ease-in-out infinite;
}
.scn-george-jokes-about-pies .figure-george {
  position: absolute; bottom: 20%; left: 40%; width: 16%; height: 45%;
  background: linear-gradient(180deg, #4a2a1a 0%, #2a1a0a 100%);
  border-radius: 40% 40% 20% 20%; transform-origin: bottom;
  animation: gj-point 3s ease-in-out infinite;
}
.scn-george-jokes-about-pies .hand {
  position: absolute; bottom: 35%; left: 48%; width: 8%; height: 15%;
  background: #3a2010; border-radius: 30%;
  transform: rotate(20deg);
  animation: gj-point 3s ease-in-out infinite;
}
.scn-george-jokes-about-pies .firelight {
  position: absolute; bottom: 10%; left: 20%; width: 60%; height: 70%;
  background: radial-gradient(ellipse at 50% 100%, rgba(200,100,30,0.15) 0%, transparent 70%);
  pointer-events: none;
  animation: gj-pulse 4s ease-in-out infinite alternate;
}
.scn-george-jokes-about-pies .shadow {
  position: absolute; bottom: 20%; left: 35%; width: 30%; height: 5%;
  background: rgba(0,0,0,0.3);
  border-radius: 50%;
  animation: gj-shadow 3s ease-in-out infinite;
}
@keyframes gj-wobble {
  0% { transform: rotate(0deg); }
  50% { transform: rotate(5deg); }
  100% { transform: rotate(0deg); }
}
@keyframes gj-point {
  0% { transform: rotate(20deg) translateY(0); }
  50% { transform: rotate(30deg) translateY(-2px); }
  100% { transform: rotate(20deg) translateY(0); }
}
@keyframes gj-pulse {
  0% { opacity: 0.7; }
  50% { opacity: 1; }
  100% { opacity: 0.7; }
}
@keyframes gj-shadow {
  0% { transform: scaleX(1); }
  50% { transform: scaleX(0.8); }
  100% { transform: scaleX(1); }
}

.scn-aunt-chloe-chuckles-at-george {
  background: linear-gradient(180deg, #1a0505 0%, #3a1005 50%, #5a1a05 80%, #1a0505 100%), radial-gradient(ellipse at 60% 80%, #c06020 0%, transparent 60%);
}
.scn-aunt-chloe-chuckles-at-george .room {
  position: absolute; inset: 0;
  background: linear-gradient(90deg, #2a0a05 0%, #3a1005 50%, #2a0a05 100%);
}
.scn-aunt-chloe-chuckles-at-george .fireplace {
  position: absolute; bottom: 20%; left: 30%; width: 40%; height: 40%;
  background: #1a0505; border-radius: 20% 20% 0 0;
}
.scn-aunt-chloe-chuckles-at-george .figure-chloe {
  position: absolute; bottom: 20%; left: 25%; width: 20%; height: 45%;
  background: linear-gradient(180deg, #5a3a2a 0%, #2a1a0a 100%);
  border-radius: 40% 40% 20% 20%; transform-origin: bottom;
  animation: acc-bob-chloe 4s ease-in-out infinite;
}
.scn-aunt-chloe-chuckles-at-george .figure-george {
  position: absolute; bottom: 20%; left: 55%; width: 15%; height: 40%;
  background: linear-gradient(180deg, #4a2a1a 0%, #1a0a0a 100%);
  border-radius: 40% 40% 20% 20%; transform-origin: bottom;
  animation: acc-bob-george 3.5s ease-in-out infinite;
}
.scn-aunt-chloe-chuckles-at-george .chair {
  position: absolute; bottom: 20%; left: 50%; width: 25%; height: 20%;
  background: #3a1a0a; border-radius: 10% 10% 0 0;
}
.scn-aunt-chloe-chuckles-at-george .glow {
  position: absolute; bottom: 15%; left: 20%; width: 60%; height: 60%;
  background: radial-gradient(ellipse at 50% 60%, rgba(200,100,30,0.2) 0%, transparent 60%);
  pointer-events: none;
  animation: acc-glow 5s ease-in-out infinite alternate;
}
.scn-aunt-chloe-chuckles-at-george .flame {
  position: absolute; bottom: 28%; left: 42%; width: 16%; height: 14%;
  background: radial-gradient(ellipse, #ffa050 0%, #e06020 50%, transparent 100%);
  animation: acc-flame 1.5s ease-in-out infinite alternate;
}
@keyframes acc-bob-chloe {
  0% { transform: translateY(0) rotate(0deg); }
  50% { transform: translateY(-2px) rotate(2deg); }
  100% { transform: translateY(0) rotate(0deg); }
}
@keyframes acc-bob-george {
  0% { transform: translateY(0) rotate(0deg); }
  50% { transform: translateY(-3px) rotate(-1deg); }
  100% { transform: translateY(0) rotate(0deg); }
}
@keyframes acc-flame {
  0% { transform: scaleY(1); opacity: 0.8; }
  50% { transform: scaleY(1.2); opacity: 1; }
  100% { transform: scaleY(0.8); opacity: 0.9; }
}
@keyframes acc-glow {
  0% { opacity: 0.6; }
  50% { opacity: 0.9; }
  100% { opacity: 0.6; }
}

/* tom-beaten-near-death */
.scn-tom-beaten-near-death {
  background: linear-gradient(180deg, #1a1015 0%, #0d080a 100%), radial-gradient(ellipse at 50% 30%, #2a1a1a 0%, transparent 70%);
  position: relative;
  overflow: hidden;
  width: 100%;
  height: 100%;
}
.scn-tom-beaten-near-death .bg {
  position: absolute;
  inset: 0 0 30% 0;
  background: linear-gradient(180deg, #1a0e12 0%, #14080a 100%);
}
.scn-tom-beaten-near-death .floor {
  position: absolute;
  bottom: 0; left: 0; right: 0;
  height: 30%;
  background: linear-gradient(0deg, #2a1a16 0%, #1c0f0c 100%);
  border-radius: 20% 20% 0 0;
}
.scn-tom-beaten-near-death .legree {
  position: absolute;
  bottom: 20%;
  left: 25%;
  width: 40px;
  height: 110px;
  background: linear-gradient(180deg, #0f0a08 0%, #1a0f0c 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: tb-sway 5s ease-in-out infinite;
}
.scn-tom-beaten-near-death .tom {
  position: absolute;
  bottom: 16%;
  left: 40%;
  width: 80px;
  height: 30px;
  background: linear-gradient(180deg, #0f0a08 0%, #1a0f0c 100%);
  border-radius: 40% 40% 50% 50% / 60% 60% 40% 40%;
  transform-origin: center bottom;
  animation: tb-breathe 4s ease-in-out infinite;
}
.scn-tom-beaten-near-death .lamp {
  position: absolute;
  bottom: 40%;
  left: 15%;
  width: 12px;
  height: 12px;
  background: radial-gradient(circle, #d4a373 0%, #b08040 70%);
  border-radius: 50%;
  box-shadow: 0 0 20px 6px #c08040, 0 0 40px 12px rgba(192,128,64,0.4);
  animation: tb-glow 3s ease-in-out infinite alternate;
}
.scn-tom-beaten-near-death .shadow {
  position: absolute;
  bottom: 15%;
  left: 25%;
  width: 70px;
  height: 10px;
  background: rgba(0,0,0,0.3);
  border-radius: 50%;
  filter: blur(3px);
  animation: tb-shadow 6s ease-in-out infinite;
}
@keyframes tb-sway { 0%{transform:translateX(0) rotate(0deg)} 50%{transform:translateX(2px) rotate(1deg)} 100%{transform:translateX(0) rotate(0deg)} }
@keyframes tb-breathe { 0%{transform:scaleY(1)} 50%{transform:scaleY(1.04)} 100%{transform:scaleY(1)} }
@keyframes tb-glow { 0%{opacity:0.6;box-shadow:0 0 10px #d4a373} 50%{opacity:1;box-shadow:0 0 30px #d4a373} 100%{opacity:0.7;box-shadow:0 0 15px #d4a373} }
@keyframes tb-shadow { 0%{opacity:0.3;transform:scaleX(1)} 50%{opacity:0.5;transform:scaleX(1.1)} 100%{opacity:0.3;transform:scaleX(1)} }

/* legree-conscience */
.scn-legree-conscience {
  background: linear-gradient(180deg, #0a0505 0%, #1a0510 100%), radial-gradient(ellipse at 50% 80%, #2c1313 0%, transparent 60%);
  position: relative;
  overflow: hidden;
  width: 100%;
  height: 100%;
}
.scn-legree-conscience .bg {
  position: absolute;
  inset: 0;
  background: linear-gradient(180deg, rgba(10,5,5,0.8) 0%, rgba(30,10,15,0.9) 100%);
}
.scn-legree-conscience .fire {
  position: absolute;
  bottom: 10%;
  left: 50%;
  width: 60px;
  height: 80px;
  transform: translateX(-50%);
  background: radial-gradient(ellipse 60% 50% at 50% 40%, #d4763a 0%, #a0421a 40%, transparent 70%);
  border-radius: 50% 50% 30% 30% / 80% 80% 20% 20%;
  animation: lc-firepulse 2s ease-in-out infinite alternate;
}
.scn-legree-conscience .figure {
  position: absolute;
  bottom: 15%;
  left: 50%;
  width: 40px;
  height: 100px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #0f0a08 0%, #1a0f0c 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: lc-figuretremble 4s ease-in-out infinite;
}
.scn-legree-conscience .glow {
  position: absolute;
  bottom: 10%;
  left: 50%;
  width: 120px;
  height: 120px;
  transform: translateX(-50%);
  background: radial-gradient(circle, rgba(212,118,58,0.3) 0%, transparent 70%);
  filter: blur(15px);
  animation: lc-glowpulse 3s ease-in-out infinite;
}
.scn-legree-conscience .ember-a {
  position: absolute;
  bottom: 35%;
  left: 20%;
  width: 6px;
  height: 6px;
  background: #d4763a;
  border-radius: 50%;
  box-shadow: 0 0 4px #d4763a;
  animation: lc-ember1 8s linear infinite;
}
.scn-legree-conscience .ember-b {
  position: absolute;
  bottom: 25%;
  right: 15%;
  width: 4px;
  height: 4px;
  background: #a0421a;
  border-radius: 50%;
  box-shadow: 0 0 3px #a0421a;
  animation: lc-ember2 10s linear infinite reverse;
}
@keyframes lc-firepulse { 0%{transform:translateX(-50%) scaleY(0.9);opacity:0.8} 50%{transform:translateX(-50%) scaleY(1.1);opacity:1} 100%{transform:translateX(-50%) scaleY(0.95);opacity:0.85} }
@keyframes lc-figuretremble { 0%{transform:translateX(-50%) rotate(-2deg)} 25%{transform:translateX(-50%) rotate(2deg) scaleX(0.98)} 50%{transform:translateX(-50%) rotate(-1deg)} 75%{transform:translateX(-50%) rotate(3deg) scaleX(1.02)} 100%{transform:translateX(-50%) rotate(0)} }
@keyframes lc-glowpulse { 0%{opacity:0.4;transform:translateX(-50%) scale(0.8)} 50%{opacity:0.8;transform:translateX(-50%) scale(1.2)} 100%{opacity:0.5;transform:translateX(-50%) scale(0.9)} }
@keyframes lc-ember1 { 0%{transform:translate(0,0);opacity:1} 50%{transform:translate(30px,-20px);opacity:0.6} 100%{transform:translate(60px,-40px);opacity:0} }
@keyframes lc-ember2 { 0%{transform:translate(0,0);opacity:1} 50%{transform:translate(-20px,-30px);opacity:0.5} 100%{transform:translate(-40px,-60px);opacity:0} }

/* sambo-and-quimbo-tend-tom */
.scn-sambo-and-quimbo-tend-tom {
  background: linear-gradient(180deg, #1a1015 0%, #0d080a 100%), radial-gradient(ellipse at 20% 60%, #2a1a1a 0%, transparent 60%);
  position: relative;
  overflow: hidden;
  width: 100%;
  height: 100%;
}
.scn-sambo-and-quimbo-tend-tom .bg {
  position: absolute;
  inset: 0;
  background: linear-gradient(180deg, #14080a 0%, #0a0505 100%);
}
.scn-sambo-and-quimbo-tend-tom .floor {
  position: absolute;
  bottom: 0; left: 0; right: 0;
  height: 40%;
  background: linear-gradient(0deg, #2a1a16 0%, #1c0f0c 100%);
  border-radius: 10% 10% 0 0;
}
.scn-sambo-and-quimbo-tend-tom .tom {
  position: absolute;
  bottom: 18%;
  left: 50%;
  width: 90px;
  height: 32px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #0f0a08 0%, #1a0f0c 100%);
  border-radius: 40% 40% 50% 50% / 60% 60% 40% 40%;
  animation: sq-tombreathe 4.5s ease-in-out infinite;
}
.scn-sambo-and-quimbo-tend-tom .sambo {
  position: absolute;
  bottom: 14%;
  left: 25%;
  width: 30px;
  height: 70px;
  background: linear-gradient(180deg, #0f0a08 0%, #1a0f0c 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: sq-sambo 6s ease-in-out infinite;
}
.scn-sambo-and-quimbo-tend-tom .quimbo {
  position: absolute;
  bottom: 14%;
  right: 25%;
  width: 30px;
  height: 70px;
  background: linear-gradient(180deg, #0f0a08 0%, #1a0f0c 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: sq-quimbo 6s ease-in-out infinite 1.5s;
}
.scn-sambo-and-quimbo-tend-tom .lamp {
  position: absolute;
  bottom: 50%;
  left: 10%;
  width: 14px;
  height: 14px;
  background: radial-gradient(circle, #d4a373 0%, #b08040 70%);
  border-radius: 50%;
  box-shadow: 0 0 20px 6px #c08040, 0 0 40px 12px rgba(192,128,64,0.4);
  animation: sq-glow 3.5s ease-in-out infinite alternate;
}
.scn-sambo-and-quimbo-tend-tom .bottle {
  position: absolute;
  bottom: 25%;
  left: 60%;
  width: 16px;
  height: 30px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a100a 100%);
  border-radius: 30% 30% 20% 20% / 40% 40% 30% 30%;
  transform-origin: bottom center;
  animation: sq-bottle 5s ease-in-out infinite;
}
@keyframes sq-tombreathe { 0%{transform:translateX(-50%) scaleY(1)} 50%{transform:translateX(-50%) scaleY(1.04) translateY(-2px)} 100%{transform:translateX(-50%) scaleY(1)} }
@keyframes sq-sambo { 0%{transform:translateX(0) rotate(0deg)} 25%{transform:translateX(3px) rotate(3deg)} 50%{transform:translateX(-2px) rotate(-2deg)} 75%{transform:translateX(2px) rotate(2deg)} 100%{transform:translateX(0) rotate(0deg)} }
@keyframes sq-quimbo { 0%{transform:translateX(0) rotate(0deg)} 25%{transform:translateX(-3px) rotate(-3deg)} 50%{transform:translateX(2px) rotate(2deg)} 75%{transform:translateX(-2px) rotate(-2deg)} 100%{transform:translateX(0) rotate(0deg)} }
@keyframes sq-glow { 0%{opacity:0.6;box-shadow:0 0 10px #d4a373} 50%{opacity:1;box-shadow:0 0 30px #d4a373} 100%{opacity:0.7;box-shadow:0 0 15px #d4a373} }
@keyframes sq-bottle { 0%{transform:rotate(-2deg)} 50%{transform:rotate(2deg)} 100%{transform:rotate(-2deg)} }

/* toms-last-testimony */
.scn-toms-last-testimony {
  background: linear-gradient(180deg, #2a1a12 0%, #1a0c08 100%), radial-gradient(ellipse at 50% 40%, #3a2a1a 0%, transparent 70%);
  position: relative;
  overflow: hidden;
  width: 100%;
  height: 100%;
}
.scn-toms-last-testimony .bg {
  position: absolute;
  inset: 0;
  background: linear-gradient(180deg, #2a1a12 0%, #140a08 100%);
}
.scn-toms-last-testimony .floor {
  position: absolute;
  bottom: 0; left: 0; right: 0;
  height: 35%;
  background: linear-gradient(0deg, #3a251a 0%, #1c0f0c 100%);
  border-radius: 15% 15% 0 0;
}
.scn-toms-last-testimony .tom {
  position: absolute;
  bottom: 20%;
  left: 50%;
  width: 45px;
  height: 70px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #0f0a08 0%, #1a0f0c 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: tl-tomup 8s ease-in-out infinite;
}
.scn-toms-last-testimony .sambo {
  position: absolute;
  bottom: 18%;
  left: 30%;
  width: 30px;
  height: 60px;
  background: linear-gradient(180deg, #0f0a08 0%, #1a0f0c 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: tl-sambow 6s ease-in-out infinite;
}
.scn-toms-last-testimony .quimbo {
  position: absolute;
  bottom: 18%;
  right: 30%;
  width: 30px;
  height: 60px;
  background: linear-gradient(180deg, #0f0a08 0%, #1a0f0c 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: tl-quimbow 6s ease-in-out infinite 2s;
}
.scn-toms-last-testimony .candle {
  position: absolute;
  bottom: 45%;
  left: 50%;
  width: 8px;
  height: 18px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #b08040 0%, #8a5a2a 100%);
  border-radius: 10% 10% 20% 20%;
  box-shadow: 0 0 6px #b08040;
}
.scn-toms-last-testimony .candle::after {
  content: '';
  position: absolute;
  top: -10px;
  left: 50%;
  width: 8px;
  height: 12px;
  transform: translateX(-50%);
  background: radial-gradient(ellipse 50% 60% at 50% 60%, #ffd580 0%, #d4763a 50%, transparent 100%);
  border-radius: 50%;
  animation: tl-candleflicker 1.5s ease-in-out infinite alternate;
}
.scn-toms-last-testimony .glow {
  position: absolute;
  bottom: 30%;
  left: 50%;
  width: 120px;
  height: 120px;
  transform: translateX(-50%);
  background: radial-gradient(circle, rgba(212,118,58,0.25) 0%, transparent 70%);
  filter: blur(20px);
  animation: tl-glow 4s ease-in-out infinite;
}
@keyframes tl-tomup { 0%{transform:translateX(-50%) translateY(0)} 50%{transform:translateX(-50%) translateY(-4px) scaleY(1.02)} 100%{transform:translateX(-50%) translateY(0)} }
@keyframes tl-sambow { 0%{transform:rotate(0deg) translateY(0)} 25%{transform:rotate(-8deg) translateY(2px)} 50%{transform:rotate(0deg) translateY(0)} 75%{transform:rotate(-8deg) translateY(2px)} 100%{transform:rotate(0deg) translateY(0)} }
@keyframes tl-quimbow { 0%{transform:rotate(0deg) translateY(0)} 25%{transform:rotate(8deg) translateY(2px)} 50%{transform:rotate(0deg) translateY(0)} 75%{transform:rotate(8deg) translateY(2px)} 100%{transform:rotate(0deg) translateY(0)} }
@keyframes tl-candleflicker { 0%{opacity:0.7;transform:translateX(-50%) scaleY(0.9) translateY(2px)} 50%{opacity:1;transform:translateX(-50%) scaleY(1.1)} 100%{opacity:0.8;transform:translateX(-50%) scaleY(0.95) translateY(1px)} }
@keyframes tl-glow { 0%{opacity:0.4;transform:translateX(-50%) scale(0.8)} 50%{opacity:0.8;transform:translateX(-50%) scale(1.2)} 100%{opacity:0.5;transform:translateX(-50%) scale(0.9)} }

.scn-aunt-chloe-pride-in-cookery {
  background: linear-gradient(180deg, #1a0e0a 0%, #3d2010 50%, #6b3a1a 100%), radial-gradient(ellipse at 50% 70%, #c86530 0%, transparent 60%);
}
.scn-aunt-chloe-pride-in-cookery .fire-glow {
  position: absolute; inset: 55% 0 0 0; background: radial-gradient(ellipse at 30% 100%, #e88430 0%, transparent 70%); animation: ac-fire 4s ease-in-out infinite alternate; opacity: 0.7;
}
.scn-aunt-chloe-pride-in-cookery .table {
  position: absolute; bottom: 8%; left: 20%; right: 20%; height: 18%; background: linear-gradient(180deg, #5a3a2a 0%, #3a1a0a 100%); border-radius: 10% 10% 5% 5%; box-shadow: 0 -6px 20px rgba(0,0,0,0.4); animation: ac-table 6s ease-in-out infinite;
}
.scn-aunt-chloe-pride-in-cookery .pot {
  position: absolute; bottom: 24%; left: 35%; width: 40px; height: 30px; background: radial-gradient(circle at 40% 40%, #6b4a3a, #3a1a0a); border-radius: 30% 30% 20% 20%; box-shadow: 0 6px 12px rgba(0,0,0,0.5); animation: ac-pot 3s ease-in-out infinite alternate;
}
.scn-aunt-chloe-pride-in-cookery .figure {
  position: absolute; bottom: 12%; left: 50%; width: 70px; height: 120px; transform: translateX(-50%); background: linear-gradient(180deg, #3d2b1a 0%, #1a0e0a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; box-shadow: 0 8px 16px rgba(0,0,0,0.6); animation: ac-figure 5s ease-in-out infinite;
}
.scn-aunt-chloe-pride-in-cookery .turban {
  position: absolute; bottom: 82%; left: 50%; width: 50px; height: 25px; transform: translateX(-50%); background: radial-gradient(circle at 30% 30%, #f0d5b0 0%, #c8a070 100%); border-radius: 50% 50% 20% 20%; box-shadow: 0 2px 6px rgba(0,0,0,0.4); animation: ac-turban 4s ease-in-out infinite alternate;
}
.scn-aunt-chloe-pride-in-cookery .stir {
  position: absolute; bottom: 30%; left: 42%; width: 8px; height: 50px; background: linear-gradient(180deg, #8b6b4b 0%, #5a3a2a 100%); border-radius: 50% 50% 20% 20%; transform-origin: top center; animation: ac-stir 2s ease-in-out infinite alternate;
}
.scn-aunt-chloe-pride-in-cookery .spark {
  position: absolute; bottom: 56%; left: 28%; width: 4px; height: 4px; background: #ffc080; border-radius: 50%; box-shadow: 0 0 8px 4px rgba(255,192,128,0.6); animation: ac-spark 2.5s ease-in-out infinite alternate, ac-float 6s linear infinite;
}
@keyframes ac-fire {
  0% { opacity: 0.6; transform: scaleY(1); }
  50% { opacity: 1; transform: scaleY(1.08); }
  100% { opacity: 0.7; transform: scaleY(0.95); }
}
@keyframes ac-table {
  0%,100% { transform: translateY(0); }
  50% { transform: translateY(-2px); }
}
@keyframes ac-pot {
  0% { transform: rotate(-2deg) scale(1); }
  50% { transform: rotate(1deg) scale(1.02); }
  100% { transform: rotate(-1deg) scale(0.98); }
}
@keyframes ac-figure {
  0%,100% { transform: translateX(-50%) rotate(0deg); }
  25% { transform: translateX(-50%) translateY(-1px) rotate(1deg); }
  50% { transform: translateX(-48%) translateY(0) rotate(-1deg); }
  75% { transform: translateX(-52%) translateY(-1px) rotate(1deg); }
}
@keyframes ac-turban {
  0% { transform: translateX(-50%) rotate(-3deg); }
  100% { transform: translateX(-50%) rotate(3deg); }
}
@keyframes ac-stir {
  0% { transform: rotate(-15deg) translateY(0); }
  50% { transform: rotate(15deg) translateY(-3px); }
  100% { transform: rotate(-10deg) translateY(0); }
}
@keyframes ac-spark {
  0% { opacity: 0; transform: scale(0.5); }
  50% { opacity: 1; transform: scale(1.2); }
  100% { opacity: 0.3; transform: scale(0.8); }
}
@keyframes ac-float {
  0% { transform: translateY(0); }
  100% { transform: translateY(-40px); }
}

.scn-item-corn-cake-mystery {
  background: linear-gradient(180deg, #1a0e0a 0%, #3d2010 50%, #6b3a1a 100%), radial-gradient(ellipse at 50% 80%, #c86530 0%, transparent 60%);
}
.scn-item-corn-cake-mystery .table {
  position: absolute; bottom: 8%; left: 15%; right: 15%; height: 16%; background: linear-gradient(180deg, #5a3a2a 0%, #3a1a0a 100%); border-radius: 15% 15% 5% 5%; box-shadow: 0 -4px 12px rgba(0,0,0,0.4); animation: cc-table 5s ease-in-out infinite;
}
.scn-item-corn-cake-mystery .corncake {
  position: absolute; bottom: 22%; left: 50%; width: 80px; height: 40px; transform: translateX(-50%); background: radial-gradient(circle at 50% 40%, #d4a04a 0%, #b07820 70%, #6b3a1a 100%); border-radius: 40% 40% 30% 30%; box-shadow: 0 8px 20px rgba(0,0,0,0.5); animation: cc-corncake 4s ease-in-out infinite alternate;
}
.scn-item-corn-cake-mystery .steam {
  position: absolute; bottom: 34%; left: 50%; width: 30px; height: 60px; transform: translateX(-50%); background: linear-gradient(180deg, rgba(255,200,150,0.2) 0%, transparent 100%); border-radius: 50%; filter: blur(8px); animation: cc-steam 6s ease-in-out infinite, cc-steam2 6s ease-in-out infinite alternate;
}
.scn-item-corn-cake-mystery .steam::after {
  content: ''; position: absolute; top: 0; left: -20px; width: 40px; height: 50px; background: linear-gradient(180deg, rgba(255,200,150,0.15) 0%, transparent 100%); border-radius: 50%; filter: blur(6px); animation: cc-steam 8s ease-in-out infinite reverse, cc-steam2 8s ease-in-out infinite alternate;
}
.scn-item-corn-cake-mystery .halo {
  position: absolute; bottom: 22%; left: 50%; width: 120px; height: 60px; transform: translateX(-50%); background: radial-gradient(circle, #f0c080 0%, transparent 70%); opacity: 0.5; animation: cc-halo 3s ease-in-out infinite alternate;
}
.scn-item-corn-cake-mystery .sparkle {
  position: absolute; bottom: 28%; left: 45%; width: 6px; height: 6px; background: #ffd080; border-radius: 50%; box-shadow: 10px -5px 8px 2px #ffc060, -15px 10px 10px 4px #ffb040; animation: cc-sparkle 2s ease-in-out infinite alternate;
}
.scn-item-corn-cake-mystery .laugh {
  position: absolute; bottom: 12%; left: 30%; width: 50px; height: 40px; background: radial-gradient(ellipse at 50% 50%, #3d2b1a 0%, transparent 100%); border-radius: 50%; animation: cc-laugh 3s ease-in-out infinite;
}
@keyframes cc-table {
  0%,100% { transform: translateY(0); }
  50% { transform: translateY(-2px); }
}
@keyframes cc-corncake {
  0% { transform: translateX(-50%) rotate(-2deg) scale(1); }
  50% { transform: translateX(-50%) rotate(2deg) scale(1.03); }
  100% { transform: translateX(-50%) rotate(-1deg) scale(0.98); }
}
@keyframes cc-steam {
  0% { transform: translateX(-50%) translateY(0) scale(1); opacity: 0.6; }
  50% { transform: translateX(-50%) translateY(-20px) scale(1.3); opacity: 0.9; }
  100% { transform: translateX(-50%) translateY(-40px) scale(1.5); opacity: 0; }
}
@keyframes cc-steam2 {
  0% { transform: rotate(-5deg); }
  100% { transform: rotate(5deg); }
}
@keyframes cc-halo {
  0% { opacity: 0.3; transform: translateX(-50%) scale(1); }
  100% { opacity: 0.7; transform: translateX(-50%) scale(1.15); }
}
@keyframes cc-sparkle {
  0% { opacity: 0; transform: scale(0.5); }
  100% { opacity: 1; transform: scale(1.2); }
}
@keyframes cc-laugh {
  0%,100% { transform: scaleY(1) rotate(0deg); }
  25% { transform: scaleY(1.1) rotate(5deg); }
  50% { transform: scaleY(0.9) rotate(-5deg); }
  75% { transform: scaleY(1.05) rotate(3deg); }
}

.scn-cabin-interior-description {
  background: linear-gradient(180deg, #1a0e0a 0%, #3d2010 50%, #6b3a1a 100%), radial-gradient(ellipse at 30% 60%, #c86530 0%, transparent 70%);
}
.scn-cabin-interior-description .wall {
  position: absolute; inset: 0 0 20% 0; background: linear-gradient(180deg, #6b4a3a 0%, #3a2a1a 100%); border-radius: 0 0 30% 30% / 0 0 20% 20%; box-shadow: inset 0 -20px 40px rgba(0,0,0,0.5);
}
.scn-cabin-interior-description .bed-frame {
  position: absolute; bottom: 20%; left: 8%; width: 30%; height: 40%; background: linear-gradient(180deg, #5a3a2a 0%, #2a1a0a 100%); border-radius: 5% 5% 0 0; box-shadow: 4px 0 12px rgba(0,0,0,0.4);
}
.scn-cabin-interior-description .mattress {
  position: absolute; bottom: 20%; left: 9%; width: 28%; height: 32%; background: linear-gradient(180deg, #b08a6a 0%, #7a5a3a 100%); border-radius: 20% 20% 10% 10% / 40% 40% 20% 20%; box-shadow: inset 0 10px 20px rgba(0,0,0,0.3); animation: ci-mattress 8s ease-in-out infinite alternate;
}
.scn-cabin-interior-description .spread {
  position: absolute; bottom: 22%; left: 10%; width: 26%; height: 20%; background: linear-gradient(135deg, #f5e6d0 0%, #dcc8b0 100%); border-radius: 10% 10% 30% 30% / 20% 20% 50% 50%; box-shadow: 0 4px 8px rgba(0,0,0,0.2); animation: ci-spread 10s ease-in-out infinite alternate;
}
.scn-cabin-interior-description .carpet {
  position: absolute; bottom: 5%; left: 10%; right: 20%; height: 15%; background: linear-gradient(90deg, #5a3a2a 0%, #4a2a1a 50%, #5a3a2a 100%); border-radius: 20% 20% 0 0 / 50% 50% 0 0; box-shadow: 0 -4px 12px rgba(0,0,0,0.3); animation: ci-carpet 6s ease-in-out infinite alternate;
}
.scn-cabin-interior-description .fireplace {
  position: absolute; bottom: 18%; right: 8%; width: 20%; height: 35%; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius: 10% 10% 5% 5%; box-shadow: -2px 0 8px rgba(0,0,0,0.5);
}
.scn-cabin-interior-description .fire {
  position: absolute; bottom: 20%; right: 12%; width: 12%; height: 25%; background: radial-gradient(ellipse at 50% 60%, #e88430 0%, #c86530 50%, transparent 100%); animation: ci-fire 3s ease-in-out infinite alternate, ci-fire2 5s ease-in-out infinite;
}
@keyframes ci-mattress {
  0% { transform: scaleY(1); }
  100% { transform: scaleY(1.02); }
}
@keyframes ci-spread {
  0% { transform: translateY(0) rotate(0deg); }
  50% { transform: translateY(-2px) rotate(0.5deg); }
  100% { transform: translateY(0) rotate(-0.5deg); }
}
@keyframes ci-carpet {
  0% { opacity: 0.8; }
  100% { opacity: 1; }
}
@keyframes ci-fire {
  0% { opacity: 0.6; transform: scaleY(0.9); }
  50% { opacity: 1; transform: scaleY(1.1); }
  100% { opacity: 0.7; transform: scaleY(1); }
}
@keyframes ci-fire2 {
  0% { transform: translateX(0); }
  50% { transform: translateX(3px); }
  100% { transform: translateX(-2px); }
}

.scn-item-george-washington-print {
  background: linear-gradient(180deg, #1a0e0a 0%, #3d2010 50%, #6b3a1a 100%), radial-gradient(ellipse at 50% 60%, #c86530 0%, transparent 70%);
}
.scn-item-george-washington-print .wall {
  position: absolute; inset: 20% 0 0 0; background: linear-gradient(180deg, #6b4a3a 0%, #3a2a1a 100%); border-radius: 20% 20% 0 0 / 10% 10% 0 0; box-shadow: inset 0 20px 40px rgba(0,0,0,0.4);
}
.scn-item-george-washington-print .frame {
  position: absolute; top: 10%; left: 30%; right: 30%; bottom: 40%; background: linear-gradient(135deg, #8b6b4b 0%, #5a3a2a 100%); border-radius: 5%; box-shadow: 0 10px 30px rgba(0,0,0,0.6); animation: gw-frame 6s ease-in-out infinite alternate;
}
.scn-item-george-washington-print .portrait {
  position: absolute; top: 13%; left: 33%; right: 33%; bottom: 43%; background: radial-gradient(circle at 50% 30%, #2b1a0f 0%, #1a0e0a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; box-shadow: inset 0 -8px 16px rgba(0,0,0,0.5); animation: gw-portrait 8s ease-in-out infinite;
}
.scn-item-george-washington-print .fireplace {
  position: absolute; bottom: 0; left: 20%; right: 20%; height: 25%; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius: 20% 20% 0 0 / 40% 40% 0 0; box-shadow: 0 -8px 20px rgba(0,0,0,0.5);
}
.scn-item-george-washington-print .fire {
  position: absolute; bottom: 8%; left: 30%; right: 30%; height: 18%; background: radial-gradient(ellipse at 50% 80%, #e88430 0%, #c86530 50%, transparent 100%); animation: gw-fire 3.5s ease-in-out infinite alternate;
}
.scn-item-george-washington-print .print-shadow {
  position: absolute; top: 14%; left: 32%; right: 32%; bottom: 44%; background: radial-gradient(ellipse, rgba(0,0,0,0.4) 0%, transparent 70%); animation: gw-shadow 5s ease-in-out infinite alternate;
}
.scn-item-george-washington-print .candle {
  position: absolute; bottom: 22%; left: 45%; width: 6px; height: 30px; background: linear-gradient(180deg, #e0c080 0%, #c8a060 100%); border-radius: 20% 20% 10% 10%; box-shadow: 0 0 20px 8px rgba(255,200,100,0.3); animation: gw-candle 4s ease-in-out infinite alternate;
}
@keyframes gw-frame {
  0% { transform: translateY(0) rotate(0deg); }
  50% { transform: translateY(-3px) rotate(0.5deg); }
  100% { transform: translateY(0) rotate(-0.5deg); }
}
@keyframes gw-portrait {
  0% { opacity: 0.85; }
  50% { opacity: 1; }
  100% { opacity: 0.9; }
}
@keyframes gw-fire {
  0% { opacity: 0.5; transform: scaleY(0.65) translateY(0); }
  50% { opacity: 1; transform: scaleY(1.1) translateY(-2px); }
  100% { opacity: 0.7; transform: scaleY(0.85) translateY(1px); }
}
@keyframes gw-shadow {
  0% { opacity: 0.3; }
  100% { opacity: 0.6; }
}
@keyframes gw-candle {
  0% { transform: rotate(-2deg); box-shadow: 0 0 15px 6px rgba(255,200,100,0.2); }
  50% { transform: rotate(3deg); box-shadow: 0 0 25px 10px rgba(255,200,100,0.5); }
  100% { transform: rotate(-1deg); box-shadow: 0 0 18px 7px rgba(255,200,100,0.3); }
}

/* haley-confronts-shelby */
.scn-haley-confronts-shelby {
  background:
    radial-gradient(ellipse at 25% 30%, rgba(255,255,200,0.5) 0%, transparent 50%),
    linear-gradient(180deg, #f2e3c6 0%, #d9c9a8 40%, #e8d8b8 100%);
}
.scn-haley-confronts-shelby .wall-bg {
  position:absolute; inset:0 0 30% 0;
  background: linear-gradient(180deg, #f2e3c6, #e0d0b0);
  animation: hcs-wall 12s ease-in-out infinite alternate;
}
.scn-haley-confronts-shelby .floor {
  position:absolute; bottom:0; left:0; right:0; height:30%;
  background: linear-gradient(180deg, #b8a080 0%, #7a6040 100%);
  box-shadow: inset 0 6px 12px rgba(0,0,0,0.3);
  border-top: 2px solid #9a7a5a;
  animation: hcs-floor 8s ease-in-out infinite alternate;
}
.scn-haley-confronts-shelby .window {
  position:absolute; top:18%; left:22%; width:28%; height:35%;
  background: linear-gradient(135deg, #c8e0f0 0%, #e0f0ff 50%, #b0c8d8 100%);
  border: 6px solid #a08060; border-radius: 4px;
  box-shadow: inset 0 0 20px rgba(255,255,180,0.6), 0 4px 12px rgba(0,0,0,0.2);
  animation: hcs-window 10s ease-in-out infinite alternate;
}
.scn-haley-confronts-shelby .table {
  position:absolute; bottom:28%; left:35%; width:30%; height:8%;
  background: linear-gradient(180deg, #8a6a50 0%, #5a4030 100%);
  border-radius: 4px; box-shadow: 0 6px 12px rgba(0,0,0,0.3);
  animation: hcs-table 5s ease-in-out infinite;
}
.scn-haley-confronts-shelby .figure-a {
  position:absolute; bottom:30%; left:25%; width:40px; height:80px;
  background: linear-gradient(180deg, #705040 0%, #402820 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%;
  transform-origin: bottom center;
  animation: hcs-fig-a 4s ease-in-out infinite;
}
.scn-haley-confronts-shelby .figure-b {
  position:absolute; bottom:30%; right:25%; width:40px; height:80px;
  background: linear-gradient(180deg, #5a4a3a 0%, #302018 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%;
  transform-origin: bottom center;
  animation: hcs-fig-b 4.5s ease-in-out infinite;
}
.scn-haley-confronts-shelby .shadow {
  position:absolute; bottom:30%; left:25%; width:40px; height:6px;
  background: rgba(0,0,0,0.15); border-radius: 50%; filter: blur(3px);
  animation: hcs-shadow 4s ease-in-out infinite;
}
@keyframes hcs-wall { 0% { opacity:0.9 } 50% { opacity:1 } 100% { opacity:0.95 } }
@keyframes hcs-floor { 0% { transform:translateY(0) } 50% { transform:translateY(-2px) } 100% { transform:translateY(0) } }
@keyframes hcs-window { 0% { opacity:0.85; transform:scale(1) } 50% { opacity:1; transform:scale(1.02) } 100% { opacity:0.9; transform:scale(1) } }
@keyframes hcs-table { 0%,100% { transform:translateY(0) } 50% { transform:translateY(-2px) } }
@keyframes hcs-fig-a { 0% { transform:translateY(0) rotate(-1deg) } 50% { transform:translateY(-2px) rotate(2deg) } 100% { transform:translateY(0) rotate(-1deg) } }
@keyframes hcs-fig-b { 0% { transform:translateY(0) rotate(1deg) } 50% { transform:translateY(-1px) rotate(-1deg) } 100% { transform:translateY(0) rotate(1deg) } }
@keyframes hcs-shadow { 0% { transform:scaleX(1) opacity:0.3 } 50% { transform:scaleX(1.1) opacity:0.5 } 100% { transform:scaleX(1) opacity:0.3 } }

/* shelby-rebukes-haley */
.scn-shelby-rebukes-haley {
  background:
    radial-gradient(ellipse at 30% 20%, rgba(255,255,210,0.4) 0%, transparent 60%),
    linear-gradient(180deg, #f0dfc0 0%, #d4c4a0 30%, #e0d0b0 100%);
}
.scn-shelby-rebukes-haley .wall-bg {
  position:absolute; inset:0 0 30% 0;
  background: linear-gradient(180deg, #f0dfc0, #dcccb0);
  animation: srh-wall 14s ease-in-out infinite alternate;
}
.scn-shelby-rebukes-haley .floor {
  position:absolute; bottom:0; left:0; right:0; height:30%;
  background: linear-gradient(180deg, #b09878 0%, #786048 100%);
  box-shadow: inset 0 6px 12px rgba(0,0,0,0.3);
  border-top: 2px solid #907050;
  animation: srh-floor 6s ease-in-out infinite alternate;
}
.scn-shelby-rebukes-haley .window {
  position:absolute; top:15%; left:20%; width:30%; height:38%;
  background: linear-gradient(135deg, #c8e0f0 0%, #e0f0ff 50%, #b0c8d8 100%);
  border: 6px solid #9a7a5a; border-radius: 4px;
  box-shadow: inset 0 0 20px rgba(255,255,180,0.5), 0 4px 12px rgba(0,0,0,0.2);
  animation: srh-window 12s ease-in-out infinite alternate;
}
.scn-shelby-rebukes-haley .table {
  position:absolute; bottom:28%; left:35%; width:30%; height:8%;
  background: linear-gradient(180deg, #7a6040 0%, #4a3820 100%);
  border-radius: 4px; box-shadow: 0 6px 12px rgba(0,0,0,0.3);
  animation: srh-table 5s ease-in-out infinite;
}
.scn-shelby-rebukes-haley .chair {
  position:absolute; bottom:28%; left:28%; width:30px; height:40px;
  background: linear-gradient(180deg, #6a5040 0%, #402818 100%);
  border-radius: 10% 10% 20% 20%; box-shadow: 0 4px 8px rgba(0,0,0,0.3);
  animation: srh-chair 7s ease-in-out infinite;
}
.scn-shelby-rebukes-haley .figure-a {
  position:absolute; bottom:30%; right:25%; width:40px; height:80px;
  background: linear-gradient(180deg, #5a4a3a 0%, #302018 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%;
  transform-origin: bottom center;
  animation: srh-fig-a 4s ease-in-out infinite;
}
.scn-shelby-rebukes-haley .figure-b {
  position:absolute; bottom:28%; left:26%; width:50px; height:60px;
  background: linear-gradient(180deg, #705040 0%, #402820 100%);
  border-radius: 50% 50% 40% 40% / 40% 40% 60% 60%;
  transform-origin: bottom center;
  animation: srh-fig-b 4.2s ease-in-out infinite;
}
.scn-shelby-rebukes-haley .shadow {
  position:absolute; bottom:30%; right:25%; width:40px; height:6px;
  background: rgba(0,0,0,0.15); border-radius: 50%; filter: blur(3px);
  animation: srh-shadow 4s ease-in-out infinite;
}
@keyframes srh-wall { 0% { opacity:0.9 } 50% { opacity:1 } 100% { opacity:0.95 } }
@keyframes srh-floor { 0% { transform:translateY(0) } 50% { transform:translateY(-2px) } 100% { transform:translateY(0) } }
@keyframes srh-window { 0% { opacity:0.8; transform:scale(1) } 50% { opacity:1; transform:scale(1.03) } 100% { opacity:0.85; transform:scale(1) } }
@keyframes srh-table { 0%,100% { transform:translateY(0) } 50% { transform:translateY(-2px) } }
@keyframes srh-chair { 0% { transform:translateY(0) rotate(-1deg) } 50% { transform:translateY(-2px) rotate(1deg) } 100% { transform:translateY(0) rotate(-1deg) } }
@keyframes srh-fig-a { 0% { transform:translateY(0) rotate(1deg) } 50% { transform:translateY(-2px) rotate(-2deg) } 100% { transform:translateY(0) rotate(1deg) } }
@keyframes srh-fig-b { 0% { transform:translateY(0) rotate(-2deg) scaleY(1) } 50% { transform:translateY(-1px) rotate(2deg) scaleY(0.98) } 100% { transform:translateY(0) rotate(-2deg) scaleY(1) } }
@keyframes srh-shadow { 0% { transform:scaleX(1) opacity:0.3 } 50% { transform:scaleX(1.2) opacity:0.5 } 100% { transform:scaleX(1) opacity:0.3 } }

/* shelby-offers-assistance */
.scn-shelby-offers-assistance {
  background:
    radial-gradient(ellipse at 35% 25%, rgba(255,255,200,0.45) 0%, transparent 55%),
    linear-gradient(180deg, #f0dfc0 0%, #d4c4a0 30%, #e0d0b0 100%);
}
.scn-shelby-offers-assistance .wall-bg {
  position:absolute; inset:0 0 30% 0;
  background: linear-gradient(180deg, #f0dfc0, #dcccb0);
  animation: soa-wall 13s ease-in-out infinite alternate;
}
.scn-shelby-offers-assistance .floor {
  position:absolute; bottom:0; left:0; right:0; height:30%;
  background: linear-gradient(180deg, #b09878 0%, #786048 100%);
  box-shadow: inset 0 6px 12px rgba(0,0,0,0.3);
  border-top: 2px solid #907050;
  animation: soa-floor 7s ease-in-out infinite alternate;
}
.scn-shelby-offers-assistance .window {
  position:absolute; top:15%; left:20%; width:30%; height:38%;
  background: linear-gradient(135deg, #c8e0f0 0%, #e0f0ff 50%, #b0c8d8 100%);
  border: 6px solid #9a7a5a; border-radius: 4px;
  box-shadow: inset 0 0 20px rgba(255,255,180,0.5), 0 4px 12px rgba(0,0,0,0.2);
  animation: soa-window 11s ease-in-out infinite alternate;
}
.scn-shelby-offers-assistance .table {
  position:absolute; bottom:28%; left:35%; width:30%; height:8%;
  background: linear-gradient(180deg, #7a6040 0%, #4a3820 100%);
  border-radius: 4px; box-shadow: 0 6px 12px rgba(0,0,0,0.3);
  animation: soa-table 5s ease-in-out infinite;
}
.scn-shelby-offers-assistance .chair {
  position:absolute; bottom:28%; right:28%; width:30px; height:40px;
  background: linear-gradient(180deg, #6a5040 0%, #402818 100%);
  border-radius: 10% 10% 20% 20%; box-shadow: 0 4px 8px rgba(0,0,0,0.3);
  animation: soa-chair 8s ease-in-out infinite;
}
.scn-shelby-offers-assistance .figure-a {
  position:absolute; bottom:30%; left:25%; width:40px; height:80px;
  background: linear-gradient(180deg, #5a4a3a 0%, #302018 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%;
  transform-origin: bottom center;
  animation: soa-fig-a 4s ease-in-out infinite;
}
.scn-shelby-offers-assistance .figure-b {
  position:absolute; bottom:30%; right:25%; width:40px; height:80px;
  background: linear-gradient(180deg, #705040 0%, #402820 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%;
  transform-origin: bottom center;
  animation: soa-fig-b 4.3s ease-in-out infinite;
}
.scn-shelby-offers-assistance .hand {
  position:absolute; bottom:32%; left:34%; width:12px; height:8px;
  background: #5a4a3a; border-radius: 50% 50% 0 0;
  transform-origin: bottom center;
  animation: soa-hand 4s ease-in-out infinite;
}
.scn-shelby-offers-assistance .shadow {
  position:absolute; bottom:30%; left:25%; width:40px; height:6px;
  background: rgba(0,0,0,0.15); border-radius: 50%; filter: blur(3px);
  animation: soa-shadow 4s ease-in-out infinite;
}
@keyframes soa-wall { 0% { opacity:0.9 } 50% { opacity:1 } 100% { opacity:0.95 } }
@keyframes soa-floor { 0% { transform:translateY(0) } 50% { transform:translateY(-2px) } 100% { transform:translateY(0) } }
@keyframes soa-window { 0% { opacity:0.85; transform:scale(1) } 50% { opacity:1; transform:scale(1.02) } 100% { opacity:0.9; transform:scale(1) } }
@keyframes soa-table { 0%,100% { transform:translateY(0) } 50% { transform:translateY(-2px) } }
@keyframes soa-chair { 0% { transform:translateY(0) rotate(1deg) } 50% { transform:translateY(-2px) rotate(-1deg) } 100% { transform:translateY(0) rotate(1deg) } }
@keyframes soa-fig-a { 0% { transform:translateY(0) rotate(-1deg) } 50% { transform:translateY(-2px) rotate(2deg) } 100% { transform:translateY(0) rotate(-1deg) } }
@keyframes soa-fig-b { 0% { transform:translateY(0) rotate(1deg) } 50% { transform:translateY(-1px) rotate(-2deg) } 100% { transform:translateY(0) rotate(1deg) } }
@keyframes soa-hand { 0% { transform:translateY(0) rotate(-5deg) } 50% { transform:translateY(-2px) rotate(5deg) } 100% { transform:translateY(0) rotate(-5deg) } }
@keyframes soa-shadow { 0% { transform:scaleX(1) opacity:0.3 } 50% { transform:scaleX(1.15) opacity:0.5 } 100% { transform:scaleX(1) opacity:0.3 } }

/* mrs-shelby-leaves-table */
.scn-mrs-shelby-leaves-table {
  background:
    radial-gradient(ellipse at 40% 20%, rgba(255,255,210,0.4) 0%, transparent 55%),
    linear-gradient(180deg, #f0dfc0 0%, #d4c4a0 30%, #e0d0b0 100%);
}
.scn-mrs-shelby-leaves-table .wall-bg {
  position:absolute; inset:0 0 30% 0;
  background: linear-gradient(180deg, #f0dfc0, #dcccb0);
  animation: msl-wall 15s ease-in-out infinite alternate;
}
.scn-mrs-shelby-leaves-table .floor {
  position:absolute; bottom:0; left:0; right:0; height:30%;
  background: linear-gradient(180deg, #b09878 0%, #786048 100%);
  box-shadow: inset 0 6px 12px rgba(0,0,0,0.3);
  border-top: 2px solid #907050;
  animation: msl-floor 9s ease-in-out infinite alternate;
}
.scn-mrs-shelby-leaves-table .window {
  position:absolute; top:15%; left:20%; width:30%; height:38%;
  background: linear-gradient(135deg, #c8e0f0 0%, #e0f0ff 50%, #b0c8d8 100%);
  border: 6px solid #9a7a5a; border-radius: 4px;
  box-shadow: inset 0 0 20px rgba(255,255,180,0.5), 0 4px 12px rgba(0,0,0,0.2);
  animation: msl-window 10s ease-in-out infinite alternate;
}
.scn-mrs-shelby-leaves-table .table {
  position:absolute; bottom:28%; left:35%; width:30%; height:8%;
  background: linear-gradient(180deg, #7a6040 0%, #4a3820 100%);
  border-radius: 4px; box-shadow: 0 6px 12px rgba(0,0,0,0.3);
  animation: msl-table 5s ease-in-out infinite;
}
.scn-mrs-shelby-leaves-table .sideboard {
  position:absolute; bottom:28%; right:10%; width:40px; height:60px;
  background: linear-gradient(180deg, #8a7050 0%, #5a4030 100%);
  border-radius: 4px; box-shadow: 0 4px 8px rgba(0,0,0,0.3);
  animation: msl-sideboard 8s ease-in-out infinite;
}
.scn-mrs-shelby-leaves-table .figure-a {
  position:absolute; bottom:30%; left:15%; width:36px; height:80px;
  background: linear-gradient(180deg, #5a4a3a 0%, #302018 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: msl-fig-a 4s ease-in-out infinite;
}
.scn-mrs-shelby-leaves-table .cup {
  position:absolute; bottom:32%; left:44%; width:10px; height:8px;
  background: #d0c0a0; border-radius: 0 0 4px 4px; box-shadow: 0 2px 4px rgba(0,0,0,0.2);
  animation: msl-cup 6s ease-in-out infinite;
}
.scn-mrs-shelby-leaves-table .shadow {
  position:absolute; bottom:30%; left:15%; width:36px; height:6px;
  background: rgba(0,0,0,0.15); border-radius: 50%; filter: blur(3px);
  animation: msl-shadow 4s ease-in-out infinite;
}
@keyframes msl-wall { 0% { opacity:0.9 } 50% { opacity:1 } 100% { opacity:0.95 } }
@keyframes msl-floor { 0% { transform:translateY(0) } 50% { transform:translateY(-2px) } 100% { transform:translateY(0) } }
@keyframes msl-window { 0% { opacity:0.85; transform:scale(1) } 50% { opacity:1; transform:scale(1.02) } 100% { opacity:0.9; transform:scale(1) } }
@keyframes msl-table { 0%,100% { transform:translateY(0) } 50% { transform:translateY(-1px) } }
@keyframes msl-sideboard { 0% { transform:translateY(0) } 50% { transform:translateY(-2px) } 100% { transform:translateY(0) } }
@keyframes msl-fig-a { 0% { transform:translateY(0) rotate(-2deg) } 50% { transform:translateY(-1px) rotate(0) } 100% { transform:translateY(0) rotate(2deg) } }
@keyframes msl-cup { 0% { transform:translateY(0) scale(1) } 50% { transform:translateY(-1px) scale(1.05) } 100% { transform:translateY(0) scale(1) } }
@keyframes msl-shadow { 0% { transform:scaleX(1) opacity:0.3 } 50% { transform:scaleX(1.1) opacity:0.5 } 100% { transform:scaleX(1) opacity:0.3 } }

.scn-morning-chores { background: linear-gradient(180deg, #fdf5e6 0%, #faf0e6 30%, #deb887 100%), radial-gradient(ellipse at 30% 80%, #ffe4b5 0%, transparent 60%); }
.scn-morning-chores .wall-back { position:absolute; inset:0 0 40% 0; background: linear-gradient(180deg, #fff8dc 0%, #f5deb3 100%); }
.scn-morning-chores .floor { position:absolute; bottom:0; left:0; right:0; height:40%; background: linear-gradient(180deg, #d2b48c 0%, #8b4513 100%); }
.scn-morning-chores .window { position:absolute; top:10%; left:10%; width:30%; height:40%; background: linear-gradient(180deg, #add8e6 0%, #87ceeb 100%); border: 6px solid #deb887; border-radius: 4px; }
.scn-morning-chores .sunbeam { position:absolute; top:0; left:0; width:100%; height:100%; background: linear-gradient(135deg, rgba(255,255,224,0.6) 0%, rgba(255,255,224,0) 100%); animation: mc-beam 12s ease-in-out infinite alternate; }
.scn-morning-chores .table { position:absolute; bottom:20%; left:40%; width:120px; height:20px; background: linear-gradient(180deg, #d2691e 0%, #8b4513 100%); border-radius: 4px; }
.scn-morning-chores .rachel { position:absolute; bottom:20%; left:35%; width:24px; height:60px; background: linear-gradient(180deg, #f5deb3 0%, #deb887 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: mc-rachel 5s ease-in-out infinite; }
.scn-morning-chores .john { position:absolute; bottom:20%; left:55%; width:22px; height:55px; background: linear-gradient(180deg, #e6c280 0%, #cdaa7d 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: mc-john 6s ease-in-out infinite; }
.scn-morning-chores .simeon { position:absolute; bottom:20%; left:65%; width:20px; height:50px; background: linear-gradient(180deg, #d2b48c 0%, #a0522d 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: mc-simeon 4s ease-in-out infinite; }
.scn-morning-chores .mary { position:absolute; bottom:20%; left:45%; width:20px; height:50px; background: linear-gradient(180deg, #f0c8a0 0%, #d2a679 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: mc-mary 7s ease-in-out infinite; }
@keyframes mc-beam { 0% { transform: translateX(-10%) rotate(0deg); opacity:0.5 } 50% { transform: translateX(10%) rotate(2deg); opacity:0.9 } 100% { transform: translateX(20%) rotate(-1deg); opacity:0.6 } }
@keyframes mc-rachel { 0% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-4px) rotate(2deg); } 100% { transform: translateY(0) rotate(-1deg); } }
@keyframes mc-john { 0% { transform: translateY(0) rotate(0deg); } 30% { transform: translateY(-2px) rotate(5deg); } 70% { transform: translateY(0) rotate(-5deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes mc-simeon { 0% { transform: translateY(0) scale(1); } 50% { transform: translateY(-3px) scale(1.05); } 100% { transform: translateY(0) scale(1); } }
@keyframes mc-mary { 0% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-2px) rotate(-3deg); } 100% { transform: translateY(0) rotate(0deg); } }

.scn-rachel-cestus { background: linear-gradient(180deg, #fdf5e6 0%, #f5deb3 50%, #deb887 100%), radial-gradient(ellipse at 50% 30%, #fff5e6 0%, transparent 70%); }
.scn-rachel-cestus .bg-warm { position:absolute; inset:0; background: linear-gradient(180deg, #fff8dc 0%, #f5deb3 100%); }
.scn-rachel-cestus .floor { position:absolute; bottom:0; left:0; right:0; height:30%; background: linear-gradient(180deg, #d2b48c 0%, #8b4513 100%); }
.scn-rachel-cestus .window-light { position:absolute; top:10%; right:5%; width:25%; height:35%; background: linear-gradient(180deg, #add8e6 0%, #87ceeb 100%); border: 4px solid #deb887; border-radius: 4px; animation: rc-window 15s ease-in-out infinite alternate; }
.scn-rachel-cestus .rachel-aura { position:absolute; bottom:25%; left:50%; width:120px; height:140px; transform: translateX(-50%); background: radial-gradient(circle, rgba(255,255,224,0.8) 0%, rgba(255,235,200,0.3) 50%, transparent 100%); animation: rc-aura 6s ease-in-out infinite alternate; }
.scn-rachel-cestus .rachel-figure { position:absolute; bottom:20%; left:50%; width:30px; height:80px; transform: translateX(-50%); background: linear-gradient(180deg, #f5deb3 0%, #deb887 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: rc-figure 4s ease-in-out infinite; }
.scn-rachel-cestus .cestus-belt { position:absolute; bottom:38%; left:50%; width:24px; height:8px; transform: translateX(-50%); background: linear-gradient(180deg, #daa520 0%, #b8860b 100%); border-radius: 4px; box-shadow: 0 0 16px 4px rgba(218,165,32,0.6); animation: rc-belt 3s ease-in-out infinite alternate; }
.scn-rachel-cestus .shadows-mild { position:absolute; inset:0; background: radial-gradient(ellipse at 30% 70%, rgba(0,0,0,0.2) 0%, transparent 60%); }
@keyframes rc-window { 0% { opacity:0.7 } 50% { opacity:1 } 100% { opacity:0.8 } }
@keyframes rc-aura { 0% { transform: translateX(-50%) scale(0.9); opacity:0.7 } 50% { transform: translateX(-50%) scale(1.1); opacity:1 } 100% { transform: translateX(-50%) scale(0.95); opacity:0.8 } }
@keyframes rc-figure { 0% { transform: translateX(-50%) rotate(0deg); } 50% { transform: translateX(-50%) translateY(-3px) rotate(2deg); } 100% { transform: translateX(-50%) rotate(-1deg); } }
@keyframes rc-belt { 0% { box-shadow: 0 0 12px 2px rgba(218,165,32,0.5); } 50% { box-shadow: 0 0 24px 6px rgba(218,165,32,0.8); } 100% { box-shadow: 0 0 16px 4px rgba(218,165,32,0.6); } }

.scn-harmonious-kitchen { background: linear-gradient(180deg, #fdf5e6 0%, #faf0e6 30%, #deb887 100%), radial-gradient(ellipse at 50% 100%, #f5deb3 0%, transparent 70%); }
.scn-harmonious-kitchen .walls-back { position:absolute; inset:0 0 30% 0; background: linear-gradient(180deg, #fff8dc 0%, #f5deb3 100%); }
.scn-harmonious-kitchen .floor-wide { position:absolute; bottom:0; left:0; right:0; height:30%; background: linear-gradient(180deg, #d2b48c 0%, #8b4513 100%); }
.scn-harmonious-kitchen .table-long { position:absolute; bottom:15%; left:10%; width:80%; height:15%; background: linear-gradient(180deg, #d2691e 0%, #8b4513 100%); border-radius: 4px; }
.scn-harmonious-kitchen .fireplace { position:absolute; top:15%; right:5%; width:20%; height:40%; background: linear-gradient(180deg, #a0522d 0%, #5c4033 100%); border-radius: 4px 4px 0 0; }
.scn-harmonious-kitchen .pot-swing { position:absolute; top:35%; right:10%; width:10%; height:15%; background: linear-gradient(180deg, #696969 0%, #333 100%); border-radius: 50%; transform-origin: top center; animation: hk-pot 4s ease-in-out infinite alternate; }
.scn-harmonious-kitchen .figures-group { position:absolute; bottom:20%; left:20%; width:60%; height:20%; background: radial-gradient(ellipse at 50% 50%, rgba(245,222,179,0.8) 0%, transparent 70%); animation: hk-figures 8s ease-in-out infinite; }
.scn-harmonious-kitchen .window-bay { position:absolute; top:10%; left:5%; width:30%; height:30%; background: linear-gradient(180deg, #add8e6 0%, #87ceeb 100%); border: 4px solid #deb887; border-radius: 4px; animation: hk-window 12s ease-in-out infinite alternate; }
.scn-harmonious-kitchen .light-ambient { position:absolute; inset:0; background: radial-gradient(ellipse at 60% 40%, rgba(255,255,224,0.2) 0%, transparent 60%); animation: hk-light 10s ease-in-out infinite alternate; }
@keyframes hk-pot { 0% { transform: rotate(-10deg); } 50% { transform: rotate(5deg); } 100% { transform: rotate(-10deg); } }
@keyframes hk-figures { 0% { transform: translateY(0); opacity:0.8 } 50% { transform: translateY(-2px); opacity:1 } 100% { transform: translateY(0); opacity:0.9 } }
@keyframes hk-window { 0% { opacity:0.6 } 50% { opacity:1 } 100% { opacity:0.7 } }
@keyframes hk-light { 0% { opacity:0.5 } 50% { opacity:0.8 } 100% { opacity:0.6 } }

.scn-breakfast-table { background: linear-gradient(180deg, #fdf5e6 0%, #faf0e6 30%, #deb887 100%), radial-gradient(ellipse at 50% 30%, #fff5e6 0%, transparent 70%); }
.scn-breakfast-table .wall-bg { position:absolute; inset:0 0 30% 0; background: linear-gradient(180deg, #fff8dc 0%, #f5deb3 100%); }
.scn-breakfast-table .window-hearth { position:absolute; top:10%; left:10%; width:20%; height:30%; background: linear-gradient(180deg, #add8e6 0%, #87ceeb 100%); border: 4px solid #deb887; border-radius: 4px; animation: bt-window 12s ease-in-out infinite alternate; }
.scn-breakfast-table .stove { position:absolute; bottom:20%; left:10%; width:20%; height:30%; background: linear-gradient(180deg, #696969 0%, #333 100%); border-radius: 4px; }
.scn-breakfast-table .griddle { position:absolute; bottom:35%; left:12%; width:16%; height:5%; background: linear-gradient(180deg, #555 0%, #222 100%); border-radius: 2px; animation: bt-griddle 3s ease-in-out infinite alternate; }
.scn-breakfast-table .cakes-stack { position:absolute; bottom:40%; left:15%; width:8%; height:8%; background: radial-gradient(circle, #daa520 0%, #b8860b 100%); border-radius: 50%; box-shadow: 0 4px 8px rgba(0,0,0,0.2); animation: bt-cakes 5s ease-in-out infinite; }
.scn-breakfast-table .table { position:absolute; bottom:12%; left:25%; width:60%; height:10%; background: linear-gradient(180deg, #d2691e 0%, #8b4513 100%); border-radius: 4px; }
.scn-breakfast-table .rachel-seated { position:absolute; bottom:12%; left:40%; width:30px; height:60px; background: linear-gradient(180deg, #f5deb3 0%, #deb887 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: bt-rachel 6s ease-in-out infinite; }
.scn-breakfast-table .coffee-pot { position:absolute; bottom:20%; left:45%; width:10%; height:15%; background: linear-gradient(180deg, #8b4513 0%, #5c4033 100%); border-radius: 4px; }
.scn-breakfast-table .plate { position:absolute; bottom:15%; left:30%; width:15%; height:4%; background: radial-gradient(circle, #f5f5dc 0%, #ddd 100%); border-radius: 50%; }
@keyframes bt-window { 0% { opacity:0.7 } 50% { opacity:1 } 100% { opacity:0.8 } }
@keyframes bt-griddle { 0% { background: linear-gradient(180deg, #555 0%, #222 100%); } 50% { background: linear-gradient(180deg, #888 0%, #444 100%); } 100% { background: linear-gradient(180deg, #555 0%, #222 100%); } }
@keyframes bt-cakes { 0% { transform: translateY(0) scale(1); } 50% { transform: translateY(-10px) scale(1.1); } 100% { transform: translateY(0) scale(1); } }
@keyframes bt-rachel { 0% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-2px) rotate(2deg); } 100% { transform: translateY(0) rotate(-1deg); } }

/* --- Scene: elizas-flight-discovered (tense, interior) --- */
.scn-elizas-flight-discovered {
  background: linear-gradient(180deg, #8b6f4e 0%, #6b4f2e 100%),
              radial-gradient(circle at 50% 30%, #d4a76a 0%, transparent 50%);
}
.scn-elizas-flight-discovered .s1-wall {
  position:absolute; inset:0 0 30% 0;
  background: linear-gradient(90deg, #7a5c3a, #5c3e1e);
}
.scn-elizas-flight-discovered .s1-floor {
  position:absolute; bottom:0; left:0; right:0; height:30%;
  background: linear-gradient(180deg, #4a3a2a, #3a2a1a);
}
.scn-elizas-flight-discovered .s1-chest {
  position:absolute; bottom:30%; left:30%; width:120px; height:80px;
  background: linear-gradient(180deg, #6a4a3a, #4a2a1a);
  border-radius:4px; box-shadow:0 8px 12px rgba(0,0,0,.5);
  animation: efd-chest 6s ease-in-out infinite;
}
.scn-elizas-flight-discovered .s1-drawer {
  position:absolute; left:33%; width:40px; height:20px;
  background: linear-gradient(180deg, #7a5a3a, #5a3a1a);
  border:1px solid #3a2a1a;
}
.scn-elizas-flight-discovered .s1-top {
  bottom:46%; animation: efd-drawer1 4s ease-in-out infinite alternate;
}
.scn-elizas-flight-discovered .s1-bottom {
  bottom:36%; animation: efd-drawer2 5s ease-in-out infinite alternate;
}
.scn-elizas-flight-discovered .s1-window {
  position:absolute; top:15%; right:25%; width:50px; height:70px;
  background: radial-gradient(circle at 50% 50%, #ffe0a0 0%, #d4a76a 100%);
  border:4px solid #4a2a1a;
  box-shadow:0 0 30px 10px rgba(255,224,160,.3);
  animation: efd-glow 3s ease-in-out infinite alternate;
}
.scn-elizas-flight-discovered .s1-figure {
  position:absolute; bottom:30%; left:55%; width:20px; height:30px;
  background: linear-gradient(180deg, #2a1a0a, #1a0a00);
  border-radius:50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: efd-figure 8s ease-in-out infinite;
}
.scn-elizas-flight-discovered .s1-shadow {
  position:absolute; bottom:28%; left:50%; width:80px; height:10px;
  background:rgba(0,0,0,.4); border-radius:50%; filter:blur(6px);
  animation: efd-shadow 6s ease-in-out infinite alternate;
}
@keyframes efd-chest { 0%,100% { transform: translateY(0); } 50% { transform: translateY(-2px); } }
@keyframes efd-drawer1 { 0% { transform: translateX(0); } 50% { transform: translateX(8px); } 100% { transform: translateX(0); } }
@keyframes efd-drawer2 { 0% { transform: translateX(0); } 30% { transform: translateX(12px); } 70% { transform: translateX(8px); } 100% { transform: translateX(0); } }
@keyframes efd-glow { 0% { opacity:0.8;box-shadow:0 0 20px 5px rgba(255,224,160,.3); } 100% { opacity:1;box-shadow:0 0 40px 15px rgba(255,224,160,.5); } }
@keyframes efd-figure { 0% { transform:translateY(0) rotate(-2deg); } 25% { transform:translateY(-3px) rotate(1deg); } 50% { transform:translateY(1px) rotate(-1deg); } 75% { transform:translateY(-2px) rotate(2deg); } 100% { transform:translateY(0) rotate(0); } }
@keyframes efd-shadow { 0% { opacity:0.3; transform:scaleX(1); } 50% { opacity:0.6; transform:scaleX(1.2); } 100% { opacity:0.3; transform:scaleX(1); } }
/* --- end Scene 1 --- */

/* --- Scene: shelby-worries-about-honor (tense, interior) --- */
.scn-shelby-worries-about-honor {
  background: linear-gradient(180deg, #7a5c3a 0%, #5a3e22 100%),
              radial-gradient(ellipse at 50% 80%, #d4a76a 0%, transparent 60%);
}
.scn-shelby-worries-about-honor .s2-wall {
  position:absolute; inset:0 0 30% 0;
  background: linear-gradient(90deg, #6b4f30, #4a3520);
}
.scn-shelby-worries-about-honor .s2-rug {
  position:absolute; bottom:0; left:10%; right:10%; height:30%;
  background: linear-gradient(180deg, #4a3a2a, #2a1a0a);
  border-radius:50% 50% 0 0;
}
.scn-shelby-worries-about-honor .s2-door {
  position:absolute; top:10%; right:10%; width:50px; height:100px;
  background: linear-gradient(180deg, #5a3e22, #3a2210);
  border:2px solid #2a1a0a;
  animation: swh-door 10s ease-in-out infinite;
}
.scn-shelby-worries-about-honor .s2-shelby {
  position:absolute; bottom:35%; right:12%; width:20px; height:40px;
  background: linear-gradient(180deg, #1a1a2a, #0a0a1a);
  border-radius:50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: swh-shelby 6s ease-in-out infinite;
}
.scn-shelby-worries-about-honor .s2-mrs {
  position:absolute; bottom:35%; left:40%; width:18px; height:36px;
  background: linear-gradient(180deg, #2a1a2a, #1a0a1a);
  border-radius:50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: swh-mrs 8s ease-in-out infinite;
}
.scn-shelby-worries-about-honor .s2-lamp {
  position:absolute; bottom:40%; left:55%; width:30px; height:40px;
  background: linear-gradient(180deg, #8b6f4e, #6b4f2e);
  border-radius:40% 40% 20% 20%;
  box-shadow:0 0 20px 5px #d4a76a;
  animation: swh-lamp 4s ease-in-out infinite alternate;
}
.scn-shelby-worries-about-honor .s2-beam {
  position:absolute; bottom:45%; left:55%; width:100px; height:120px;
  background: radial-gradient(ellipse at 30% 30%, rgba(212,167,106,0.3), transparent);
  transform-origin: left bottom;
  animation: swh-beam 5s ease-in-out infinite alternate;
}
@keyframes swh-door { 0% { transform: rotateY(0deg); } 50% { transform: rotateY(-20deg); } 100% { transform: rotateY(0deg); } }
@keyframes swh-shelby { 0% { transform: translateX(0) rotate(0); } 30% { transform: translateX(-10px) rotate(5deg); } 60% { transform: translateX(-5px) rotate(-3deg); } 100% { transform: translateX(0) rotate(0); } }
@keyframes swh-mrs { 0% { transform: translateY(0); } 50% { transform: translateY(-2px) scale(1.02); } 100% { transform: translateY(0); } }
@keyframes swh-lamp { 0% { opacity:0.7; box-shadow:0 0 15px 3px #d4a76a; } 100% { opacity:1; box-shadow:0 0 30px 8px #d4a76a; } }
@keyframes swh-beam { 0% { opacity:0.2; transform: scaleY(0.8) rotate(-3deg); } 50% { opacity:0.5; transform: scaleY(1.2) rotate(2deg); } 100% { opacity:0.2; transform: scaleY(0.8) rotate(-3deg); } }
/* --- end Scene 2 --- */

/* --- Scene: imps-gossip-about-haley (funny, sunlit) --- */
.scn-imps-gossip-about-haley {
  background: linear-gradient(180deg, #87CEEB 0%, #4682B4 100%),
              radial-gradient(circle at 70% 30%, #FFD700 0%, transparent 50%);
}
.scn-imps-gossip-about-haley .s3-sky {
  position:absolute; inset:0;
  background: linear-gradient(180deg, #B0E0E6, #87CEEB);
}
.scn-imps-gossip-about-haley .s3-roof {
  position:absolute; bottom:50%; left:0; right:0; height:20%;
  background: linear-gradient(180deg, #8B4513, #5C3010);
  border-radius:10% 10% 0 0;
}
.scn-imps-gossip-about-haley .s3-rail {
  position:absolute; bottom:45%; left:5%; right:5%; height:5%;
  background: linear-gradient(180deg, #A0522D, #8B4513);
}
.scn-imps-gossip-about-haley .s3-imp {
  position:absolute; bottom:47%; width:16px; height:20px;
  background: linear-gradient(180deg, #2F1B0E, #1A0E06);
  border-radius:50% 50% 30% 30%;
  animation: igh-imp 2s ease-in-out infinite;
}
.scn-imps-gossip-about-haley .s3-imp1 { left:20%; animation-delay:0s; }
.scn-imps-gossip-about-haley .s3-imp2 { left:45%; animation-delay:0.5s; }
.scn-imps-gossip-about-haley .s3-imp3 { left:70%; animation-delay:1s; }
.scn-imps-gossip-about-haley .s3-sun {
  position:absolute; top:5%; right:15%; width:40px; height:40px;
  background: radial-gradient(circle, #FFD700 0%, #FFA500 100%);
  border-radius:50%; box-shadow:0 0 60px 20px rgba(255,215,0,0.4);
  animation: igh-sun 12s ease-in-out infinite alternate;
}
.scn-imps-gossip-about-haley .s3-bush {
  position:absolute; bottom:40%; left:10%; width:40px; height:20px;
  background: radial-gradient(ellipse at 50% 100%, #228B22, #006400);
  border-radius:50%; filter:blur(2px);
  animation: igh-bush 5s ease-in-out infinite;
}
.scn-imps-gossip-about-haley .s3-grass {
  position:absolute; bottom:45%; left:15%; width:80px; height:10px;
  background: linear-gradient(180deg, #32CD32, #228B22);
  border-radius:0 0 50% 50%;
  animation: igh-grass 3s ease-in-out infinite;
}
@keyframes igh-imp { 0% { transform: translateY(0) rotate(-5deg); } 25% { transform: translateY(-5px) rotate(5deg); } 50% { transform: translateY(2px) rotate(-3deg); } 75% { transform: translateY(-3px) rotate(3deg); } 100% { transform: translateY(0) rotate(-5deg); } }
@keyframes igh-sun { 0% { transform: scale(1); opacity:0.9; } 50% { transform: scale(1.1); opacity:1; } 100% { transform: scale(0.95); opacity:0.8; } }
@keyframes igh-bush { 0% { transform: rotate(-2deg); } 50% { transform: rotate(2deg); } 100% { transform: rotate(-2deg); } }
@keyframes igh-grass { 0% { transform: scaleX(1) translateY(0); } 50% { transform: scaleX(1.1) translateY(-1px); } 100% { transform: scaleX(1) translateY(0); } }
/* --- end Scene 3 --- */

/* --- Scene: haley-swears-at-news (funny, sunlit) --- */
.scn-haley-swears-at-news {
  background: linear-gradient(180deg, #87CEEB 0%, #6BB3D9 100%),
              radial-gradient(ellipse at 50% 100%, #4A90D9 0%, transparent 70%);
}
.scn-haley-swears-at-news .s4-sky {
  position:absolute; inset:0;
  background: linear-gradient(180deg, #B0E0E6 0%, #87CEEB 50%, #5BA3D9 100%);
}
.scn-haley-swears-at-news .s4-ground {
  position:absolute; bottom:0; left:0; right:0; height:40%;
  background: linear-gradient(180deg, #8B7355, #5C4033);
}
.scn-haley-swears-at-news .s4-haley {
  position:absolute; bottom:40%; left:35%; width:25px; height:50px;
  background: linear-gradient(180deg, #2F1B0E, #1A0E06);
  border-radius:50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: hsn-haley 3s ease-in-out infinite;
}
.scn-haley-swears-at-news .s4-horse {
  position:absolute; bottom:42%; left:30%; width:50px; height:30px;
  background: linear-gradient(180deg, #5C4033, #3A2719);
  border-radius:30% 30% 20% 20%;
  transform-origin: left bottom;
  animation: hsn-horse 4s ease-in-out infinite;
}
.scn-haley-swears-at-news .s4-news {
  position:absolute; bottom:40%; left:55%; width:18px; height:35px;
  background: linear-gradient(180deg, #3A2719, #1A0E06);
  border-radius:50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: hsn-news 5s ease-in-out infinite;
}
.scn-haley-swears-at-news .s4-dust {
  position:absolute; bottom:40%; left:28%; width:20px; height:10px;
  background:rgba(255,255,255,0.3); border-radius:50%; filter:blur(4px);
  animation: hsn-dust 2s ease-in-out infinite;
}
@keyframes hsn-haley { 0% { transform: translateY(0) rotate(0); } 20% { transform: translateY(-2px) rotate(5deg); } 40% { transform: translateY(0) rotate(-3deg); } 60% { transform: translateY(-1px) rotate(2deg); } 80% { transform: translateY(1px) rotate(-1deg); } 100% { transform: translateY(0) rotate(0); } }
@keyframes hsn-horse { 0% { transform: translateX(0) scaleX(1); } 30% { transform: translateX(2px) scaleX(1.02); } 70% { transform: translateX(-1px) scaleX(0.98); } 100% { transform: translateX(0) scaleX(1); } }
@keyframes hsn-news { 0% { transform: translateX(0); } 50% { transform: translateX(3px); } 100% { transform: translateX(0); } }
@keyframes hsn-dust { 0% { opacity:0.3; transform: scale(0.8); } 50% { opacity:0.6; transform: scale(1.2); } 100% { opacity:0.3; transform: scale(0.8); } }
/* --- end Scene 4 --- */

.scn-eliza-overhears-conversation {
  background: linear-gradient(180deg, #1a1210 0%, #2a1e1a 30%, #1a1412 70%, #0e0a08 100%),
              radial-gradient(ellipse at 50% 30%, #3a2a22 0%, transparent 60%);
}
.scn-eliza-overhears-conversation .floor { position: absolute; bottom: 0; left: 0; right: 0; height: 30%; background: linear-gradient(180deg, #2a1e1a 0%, #1a1210 100%); }
.scn-eliza-overhears-conversation .wall-left { position: absolute; top: 0; left: 0; width: 30%; height: 70%; background: linear-gradient(180deg, #1a1412 0%, #120e0c 100%); }
.scn-eliza-overhears-conversation .wall-right { position: absolute; top: 0; right: 0; width: 30%; height: 70%; background: linear-gradient(180deg, #1a1412 0%, #120e0c 100%); }
.scn-eliza-overhears-conversation .doorway { position: absolute; top: 10%; left: 50%; width: 40%; height: 60%; transform: translateX(-50%); background: linear-gradient(180deg, #4a3a2e 0%, #3a2a1e 100%); border: 4px solid #120e0c; box-shadow: inset 0 0 40px rgba(0,0,0,0.6); }
.scn-eliza-overhears-conversation .door-slab { position: absolute; top: 10%; left: 50%; width: 40%; height: 60%; transform: translateX(-50%) rotateY(15deg); transform-origin: left center; background: linear-gradient(180deg, #2a1e1a 0%, #1a1412 100%); border-right: 3px solid rgba(255,255,255,0.05); animation: eoc-door 8s ease-in-out infinite alternate; }
.scn-eliza-overhears-conversation .figure-trader { position: absolute; top: 30%; left: 55%; width: 24px; height: 50px; background: linear-gradient(180deg, #0a0808 0%, #1a1210 100%); border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%; transform-origin: bottom center; animation: eoc-trader 12s ease-in-out infinite; }
.scn-eliza-overhears-conversation .figure-eliza-eavesdrop { position: absolute; bottom: 20%; left: 25%; width: 20px; height: 45px; background: linear-gradient(180deg, #1a1412 0%, #0e0a08 100%); border-radius: 45% 45% 35% 35% / 65% 65% 35% 35%; transform-origin: bottom center; animation: eoc-eavesdrop 4s ease-in-out infinite; }
.scn-eliza-overhears-conversation .lamp-glow { position: absolute; top: 35%; left: 65%; width: 12px; height: 12px; background: radial-gradient(circle, #c08850 0%, #8a5a2a 50%, transparent 100%); border-radius: 50%; box-shadow: 0 0 30px 10px rgba(192, 136, 80, 0.4); animation: eoc-lamp 3s ease-in-out infinite alternate; }
@keyframes eoc-door { 0% { transform: translateX(-50%) rotateY(15deg); } 50% { transform: translateX(-50%) rotateY(5deg); } 100% { transform: translateX(-50%) rotateY(20deg); } }
@keyframes eoc-trader { 0%, 100% { transform: translateX(0) translateY(0) rotate(-2deg); } 25% { transform: translateX(2px) translateY(-1px) rotate(2deg); } 50% { transform: translateX(0) translateY(0) rotate(0); } 75% { transform: translateX(-2px) translateY(1px) rotate(-1deg); } }
@keyframes eoc-eavesdrop { 0%, 100% { transform: translateX(0) translateY(0) rotate(-3deg); } 50% { transform: translateX(2px) translateY(-2px) rotate(4deg); } }
@keyframes eoc-lamp { 0% { opacity: 0.6; transform: scale(0.9); } 50% { opacity: 1; transform: scale(1.1); } 100% { opacity: 0.7; transform: scale(0.95); } }

.scn-eliza-distracted-with-fear {
  background: linear-gradient(180deg, #f5ede0 0%, #e8dac8 40%, #d4bfa8 100%),
              radial-gradient(ellipse at 70% 60%, #fdf8f0 0%, transparent 50%);
}
.scn-eliza-distracted-with-fear .floor { position: absolute; bottom: 0; left: 0; right: 0; height: 25%; background: linear-gradient(180deg, #d4bfa8 0%, #b8a088 100%); }
.scn-eliza-distracted-with-fear .wall { position: absolute; top: 0; left: 0; right: 0; height: 75%; background: linear-gradient(180deg, #e8dac8 0%, #d4bfa8 100%); }
.scn-eliza-distracted-with-fear .window-bright { position: absolute; top: 8%; right: 10%; width: 30%; height: 45%; background: linear-gradient(180deg, #fdf8f0 0%, #e8e0d0 100%); border: 6px solid #c8b098; box-shadow: inset 0 0 30px rgba(255, 255, 255, 0.8), 0 0 60px rgba(255, 255, 255, 0.4); }
.scn-eliza-distracted-with-fear .sunbeam { position: absolute; top: 8%; right: 10%; width: 30%; height: 60%; background: linear-gradient(180deg, rgba(255, 255, 255, 0.4) 0%, rgba(255, 255, 255, 0.05) 100%); transform: skewX(-10deg); filter: blur(8px); animation: edf-sunbeam 6s ease-in-out infinite alternate; }
.scn-eliza-distracted-with-fear .workstand { position: absolute; bottom: 20%; left: 30%; width: 40px; height: 60px; background: linear-gradient(180deg, #a08870 0%, #806850 100%); border-radius: 4px; transform-origin: bottom center; animation: edf-stand 2s ease-in-out infinite; }
.scn-eliza-distracted-with-fear .pitcher-falling { position: absolute; bottom: 35%; left: 45%; width: 20px; height: 25px; background: linear-gradient(180deg, #f0e8d8 0%, #d4c4b0 100%); border-radius: 0 0 30% 30% / 0 0 50% 50%; transform-origin: center bottom; animation: edf-pitcher 1.5s ease-in infinite; }
.scn-eliza-distracted-with-fear .nightgown { position: absolute; top: 15%; left: 50%; width: 30px; height: 50px; background: linear-gradient(180deg, #fdf8f0 0%, #e8e0d0 100%); border-radius: 50% 50% 20% 20% / 80% 80% 20% 20%; transform-origin: center top; animation: edf-gown 3s ease-in-out infinite; }
.scn-eliza-distracted-with-fear .shadow-figure { position: absolute; bottom: 15%; right: 20%; width: 15px; height: 40px; background: linear-gradient(180deg, #c8b098 0%, #a08870 100%); border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%; transform-origin: bottom center; animation: edf-shadow 5s ease-in-out infinite; }
@keyframes edf-sunbeam { 0% { opacity: 0.7; transform: skewX(-10deg) scaleX(1); } 50% { opacity: 1; transform: skewX(-5deg) scaleX(1.1); } 100% { opacity: 0.8; transform: skewX(-15deg) scaleX(0.95); } }
@keyframes edf-stand { 0%, 100% { transform: rotate(0deg) translateY(0); } 25% { transform: rotate(8deg) translateY(-2px); } 50% { transform: rotate(-5deg) translateY(0); } 75% { transform: rotate(4deg) translateY(-1px); } }
@keyframes edf-pitcher { 0% { transform: rotate(0deg) translateY(0); opacity: 1; } 50% { transform: rotate(90deg) translateY(10px); opacity: 0.8; } 100% { transform: rotate(180deg) translateY(30px); opacity: 0; } }
@keyframes edf-gown { 0%, 100% { transform: rotate(-5deg) translateX(0); } 25% { transform: rotate(10deg) translateX(5px); } 50% { transform: rotate(-15deg) translateX(-5px); } 75% { transform: rotate(8deg) translateX(3px); } }
@keyframes edf-shadow { 0%, 100% { transform: translateX(0) scaleY(1); } 50% { transform: translateX(-5px) scaleY(1.05); } }

.scn-eliza-confesses-fears {
  background: linear-gradient(180deg, #f0e8dc 0%, #e0d0bc 40%, #c8b4a0 100%),
              radial-gradient(ellipse at 40% 50%, #faf4ec 0%, transparent 60%);
}
.scn-eliza-confesses-fears .floor { position: absolute; bottom: 0; left: 0; right: 0; height: 20%; background: linear-gradient(180deg, #c8b4a0 0%, #b09c88 100%); }
.scn-eliza-confesses-fears .wall { position: absolute; top: 0; left: 0; right: 0; height: 80%; background: linear-gradient(180deg, #e0d0bc 0%, #c8b4a0 100%); }
.scn-eliza-confesses-fears .window { position: absolute; top: 5%; left: 60%; width: 25%; height: 40%; background: linear-gradient(180deg, #faf4ec 0%, #e8dcc8 100%); border: 6px solid #b8a088; box-shadow: inset 0 0 20px rgba(255, 255, 255, 0.6); }
.scn-eliza-confesses-fears .sofa { position: absolute; bottom: 15%; left: 10%; width: 50%; height: 35%; background: linear-gradient(180deg, #5e1a1d 0%, #3a0e10 100%); border-radius: 20% 20% 8% 8% / 40% 40% 10% 10%; box-shadow: inset 0 8px 20px rgba(0,0,0,0.4); }
.scn-eliza-confesses-fears .mistress-seated { position: absolute; bottom: 25%; left: 18%; width: 30px; height: 45px; background: linear-gradient(180deg, #f0e8dc 0%, #d4c4b0 100%); border-radius: 45% 45% 35% 35% / 65% 65% 35% 35%; transform-origin: bottom center; animation: ecf-mistress 10s ease-in-out infinite; }
.scn-eliza-confesses-fears .eliza-kneeling { position: absolute; bottom: 12%; left: 45%; width: 22px; height: 50px; background: linear-gradient(180deg, #2a1e1a 0%, #1a1210 100%); border-radius: 45% 45% 35% 35% / 65% 65% 35% 35%; transform-origin: bottom center; animation: ecf-eliza 2s ease-in-out infinite; }
.scn-eliza-confesses-fears .carpet { position: absolute; bottom: 10%; left: 5%; width: 70%; height: 15%; background: linear-gradient(180deg, #8a6a4a 0%, #6a4a2a 100%); border-radius: 50% 50% 10% 10% / 100% 100% 20% 20%; opacity: 0.6; }
.scn-eliza-confesses-fears .dust-motes { position: absolute; top: 10%; left: 20%; width: 100%; height: 80%; background: radial-gradient(circle at 30% 40%, rgba(255, 255, 255, 0.3) 0%, transparent 50%); filter: blur(4px); animation: ecf-dust 12s linear infinite; }
@keyframes ecf-mistress { 0%, 100% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-1px) rotate(2deg); } }
@keyframes ecf-eliza { 0%, 100% { transform: translateX(0) translateY(0) rotate(-2deg); } 25% { transform: translateX(3px) translateY(-2px) rotate(3deg); } 50% { transform: translateX(-2px) translateY(0) rotate(-4deg); } 75% { transform: translateX(2px) translateY(-1px) rotate(2deg); } }
@keyframes ecf-dust { 0% { transform: translateY(0) translateX(0); opacity: 0.6; } 50% { transform: translateY(-10px) translateX(5px); opacity: 1; } 100% { transform: translateY(0) translateX(10px); opacity: 0.6; } }

.scn-mrs-shelby-reassures-eliza {
  background: linear-gradient(180deg, #faf4ec 0%, #f0e8dc 40%, #e0d0bc 100%),
              radial-gradient(ellipse at 50% 40%, #fff8f0 0%, transparent 60%);
}
.scn-mrs-shelby-reassures-eliza .floor { position: absolute; bottom: 0; left: 0; right: 0; height: 20%; background: linear-gradient(180deg, #e0d0bc 0%, #c8b4a0 100%); }
.scn-mrs-shelby-reassures-eliza .wall { position: absolute; top: 0; left: 0; right: 0; height: 80%; background: linear-gradient(180deg, #f0e8dc 0%, #e0d0bc 100%); }
.scn-mrs-shelby-reassures-eliza .window-soft { position: absolute; top: 5%; left: 60%; width: 25%; height: 40%; background: linear-gradient(180deg, #fff8f0 0%, #f0e8dc 100%); border: 6px solid #c8b4a0; box-shadow: inset 0 0 30px rgba(255, 255, 255, 0.8); }
.scn-mrs-shelby-reassures-eliza .sofa { position: absolute; bottom: 15%; left: 10%; width: 50%; height: 35%; background: linear-gradient(180deg, #702243 0%, #4a1426 100%); border-radius: 20% 20% 8% 8% / 40% 40% 10% 10%; box-shadow: inset 0 8px 20px rgba(0,0,0,0.3); }
.scn-mrs-shelby-reassures-eliza .mistress-reaching { position: absolute; bottom: 25%; left: 18%; width: 30px; height: 45px; background: linear-gradient(180deg, #faf4ec 0%, #e0d0bc 100%); border-radius: 45% 45% 35% 35% / 65% 65% 35% 35%; transform-origin: bottom center; animation: msr-mistress 6s ease-in-out infinite; }
.scn-mrs-shelby-reassures-eliza .eliza-looking-up { position: absolute; bottom: 12%; left: 45%; width: 22px; height: 50px; background: linear-gradient(180deg, #2a1e1a 0%, #1a1210 100%); border-radius: 45% 45% 35% 35% / 65% 65% 35% 35%; transform-origin: bottom center; animation: msr-eliza 4s ease-in-out infinite; }
.scn-mrs-shelby-reassures-eliza .warm-aura { position: absolute; bottom: 10%; left: 30%; width: 40%; height: 40%; background: radial-gradient(ellipse at 50% 50%, rgba(255, 220, 180, 0.3) 0%, transparent 70%); filter: blur(20px); animation: msr-aura 8s ease-in-out infinite alternate; }
.scn-mrs-shelby-reassures-eliza .dust-motes-soft { position: absolute; top: 5%; left: 10%; width: 80%; height: 90%; background: radial-gradient(circle at 40% 30%, rgba(255, 255, 255, 0.2) 0%, transparent 50%); filter: blur(6px); animation: msr-dust 15s linear infinite; }
@keyframes msr-mistress { 0%, 100% { transform: translateY(0) rotate(0deg) scaleY(1); } 25% { transform: translateY(-2px) rotate(-5deg) scaleY(1.02); } 50% { transform: translateY(0) rotate(-2deg) scaleY(1); } 75% { transform: translateY(-1px) rotate(2deg) scaleY(1.01); } }
@keyframes msr-eliza { 0%, 100% { transform: translateY(0) rotate(0deg) scaleY(1); } 30% { transform: translateY(-3px) rotate(5deg) scaleY(1.03); } 60% { transform: translateY(-1px) rotate(2deg) scaleY(1.01); } }
@keyframes msr-aura { 0% { opacity: 0.6; transform: scale(1); } 50% { opacity: 1; transform: scale(1.05); } 100% { opacity: 0.8; transform: scale(0.95); } }
@keyframes msr-dust { 0% { transform: translateY(0) translateX(0); opacity: 0.5; } 33% { transform: translateY(-5px) translateX(3px); opacity: 0.8; } 66% { transform: translateY(-2px) translateX(-2px); opacity: 0.6; } 100% { transform: translateY(0) translateX(0); opacity: 0.5; } }

.scn-eliza-taps-at-toms-window {
  background: linear-gradient(180deg, #0a0a2e 0%, #1a1a4e 50%, #2a2a5e 100%), radial-gradient(ellipse at 50% 20%, #3a4a6a 0%, transparent 60%);
}
.scn-eliza-taps-at-toms-window .sky {
  position:absolute; inset:0 0 40% 0; background: linear-gradient(180deg, #0a0a3e 0%, #1a1a5e 100%); animation: etw-sky 8s ease-in-out infinite alternate;
}
.scn-eliza-taps-at-toms-window .stars {
  position:absolute; inset:0 0 50% 0; background: radial-gradient(1px 1px at 20% 30%, #fff, transparent), radial-gradient(1px 1px at 60% 20%, #fff, transparent), radial-gradient(1px 1px at 80% 40%, #fff, transparent); animation: etw-stars 4s ease-in-out infinite;
}
.scn-eliza-taps-at-toms-window .moon {
  position:absolute; top:10%; right:20%; width:40px; height:40px; background: radial-gradient(circle at 30% 30%, #e0e8ff 0%, #8090b0 100%); border-radius:50%; box-shadow: 0 0 30px 10px rgba(128,144,176,0.5); animation: etw-moon 10s ease-in-out infinite alternate;
}
.scn-eliza-taps-at-toms-window .house-wall {
  position:absolute; bottom:0; left:20%; right:20%; height:60%; background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%); border-radius: 10% 10% 0 0; box-shadow: inset 0 -10px 20px rgba(0,0,0,0.8);
}
.scn-eliza-taps-at-toms-window .window-frame {
  position:absolute; bottom:30%; left:35%; width:80px; height:100px; background: #1a1a2a; border: 4px solid #3a3a4a; border-radius: 4px;
}
.scn-eliza-taps-at-toms-window .window-glow {
  position:absolute; bottom:30%; left:35%; width:80px; height:100px; background: radial-gradient(circle at 50% 50%, rgba(200,180,150,0.4) 0%, transparent 70%); animation: etw-glow 3s ease-in-out infinite alternate;
}
.scn-eliza-taps-at-toms-window .figure-tom {
  position:absolute; bottom:30%; left:40%; width:30px; height:70px; background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: etw-tom 2s ease-in-out infinite alternate;
}
.scn-eliza-taps-at-toms-window .figure-eliza {
  position:absolute; bottom:20%; left:50%; width:25px; height:60px; background: linear-gradient(180deg, #1a1a3a 0%, #0a0a1a 100%); border-radius: 50% 50% 30% 30% / 50% 50% 30% 30%; transform-origin: bottom center; animation: etw-eliza 1.5s ease-in-out infinite alternate;
}
.scn-eliza-taps-at-toms-window .shrub {
  position:absolute; bottom:0; left:30%; width:60px; height:40px; background: radial-gradient(ellipse at 50% 100%, #1a3a1a 0%, #0a1a0a 100%); border-radius: 50%; filter: blur(3px); animation: etw-shrub 6s ease-in-out infinite alternate;
}
@keyframes etw-sky { 0% { opacity:0.9 } 50% { opacity:1 } 100% { opacity:0.8 } }
@keyframes etw-stars { 0% { opacity:0.6 } 50% { opacity:1 } 100% { opacity:0.7 } }
@keyframes etw-moon { 0% { transform: translate(0,0) scale(1) } 50% { transform: translate(-5px, -5px) scale(1.05) } 100% { transform: translate(0,0) scale(1) } }
@keyframes etw-glow { 0% { opacity:0.3; box-shadow: 0 0 10px 2px rgba(200,180,150,0.2) } 50% { opacity:0.6; box-shadow: 0 0 20px 5px rgba(200,180,150,0.4) } 100% { opacity:0.4; box-shadow: 0 0 15px 3px rgba(200,180,150,0.3) } }
@keyframes etw-tom { 0% { transform: translate(0,0) rotate(0deg) } 50% { transform: translate(2px, -2px) rotate(3deg) } 100% { transform: translate(0,0) rotate(0deg) } }
@keyframes etw-eliza { 0% { transform: translate(0,0) scaleY(1) } 50% { transform: translate(3px, -1px) scaleY(1.02) rotate(2deg) } 100% { transform: translate(0,0) scaleY(1) } }
@keyframes etw-shrub { 0% { transform: scale(1) } 50% { transform: scale(1.1) } 100% { transform: scale(1) } }

.scn-eliza-tells-of-sale {
  background: linear-gradient(180deg, #2a1a0a 0%, #1a0a0a 50%, #0a0500 100%), radial-gradient(ellipse at 50% 80%, #4a2a1a 0%, transparent 70%);
}
.scn-eliza-tells-of-sale .bg-interior {
  position:absolute; inset:0; background: linear-gradient(180deg, transparent 0%, #1a0a05 100%); animation: ets-bg 6s ease-in-out infinite alternate;
}
.scn-eliza-tells-of-sale .fire-place {
  position:absolute; bottom:10%; left:35%; width:120px; height:80px; background: linear-gradient(180deg, #3a2a1a 0%, #2a1a0a 100%); border-radius: 20% 20% 0 0; box-shadow: inset 0 8px 12px rgba(0,0,0,0.6);
}
.scn-eliza-tells-of-sale .fire-glow {
  position:absolute; bottom:15%; left:38%; width:80px; height:60px; background: radial-gradient(circle at 50% 100%, #ff6a20 0%, #ff8930 30%, #ffa040 50%, transparent 70%); border-radius: 30% 30% 0 0; box-shadow: 0 0 50px 20px rgba(255,106,32,0.6); animation: ets-fire 0.8s ease-in-out infinite alternate;
}
.scn-eliza-tells-of-sale .curtain {
  position:absolute; top:0; right:0; width:30%; height:100%; background: linear-gradient(180deg, #2a1a2a 0%, #1a0a1a 100%); transform-origin: right center; animation: ets-curtain 6s ease-in-out infinite alternate;
}
.scn-eliza-tells-of-sale .door {
  position:absolute; bottom:0; left:10%; width:12%; height:80%; background: linear-gradient(180deg, #1a0a00 0%, #0a0500 100%); border-radius: 10% 10% 0 0; border-left: 4px solid #2a1a0a; animation: ets-door 10s ease-in-out infinite alternate;
}
.scn-eliza-tells-of-sale .figure-eliza {
  position:absolute; bottom:5%; left:10%; width:20px; height:50px; background: linear-gradient(180deg, #1a0a05 0%, #0a0500 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: ets-eliza 1.2s ease-in-out infinite alternate;
}
.scn-eliza-tells-of-sale .figure-chloe {
  position:absolute; bottom:10%; right:40%; width:28px; height:65px; background: linear-gradient(180deg, #2a1a0a 0%, #1a0a00 100%); border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%; transform-origin: bottom center; animation: ets-chloe 1.5s ease-in-out infinite alternate;
}
.scn-eliza-tells-of-sale .figure-tom {
  position:absolute; bottom:5%; left:45%; width:30px; height:60px; background: linear-gradient(180deg, #1a0a05 0%, #0a0500 100%); border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%; transform-origin: bottom center; animation: ets-tom 2s ease-in-out infinite alternate;
}
.scn-eliza-tells-of-sale .table {
  position:absolute; bottom:0; left:30%; width:40%; height:15%; background: linear-gradient(180deg, #2a1a0a 0%, #1a0a00 100%); border-radius: 10%; box-shadow: 0 -4px 8px rgba(0,0,0,0.5);
}
@keyframes ets-bg { 0% { opacity:0.9 } 50% { opacity:1 } 100% { opacity:0.85 } }
@keyframes ets-fire { 0% { transform: scaleY(1) scaleX(1); opacity:0.9 } 25% { transform: scaleY(1.2) scaleX(1.1); opacity:1 } 50% { transform: scaleY(0.9) scaleX(0.95); opacity:0.85 } 75% { transform: scaleY(1.1) scaleX(1.05); opacity:0.95 } 100% { transform: scaleY(1) scaleX(1); opacity:0.9 } }
@keyframes ets-curtain { 0% { transform: scaleX(1) } 50% { transform: scaleX(0.9) } 100% { transform: scaleX(1) } }
@keyframes ets-door { 0% { transform: translateX(0) } 50% { transform: translateX(-5px) } 100% { transform: translateX(0) } }
@keyframes ets-eliza { 0% { transform: translate(0,0) rotate(2deg) } 50% { transform: translate(3px, -2px) rotate(-2deg) } 100% { transform: translate(0,0) rotate(2deg) } }
@keyframes ets-chloe { 0% { transform: translate(0,0) scaleY(1) } 50% { transform: translate(-2px, -3px) scaleY(1.05) rotate(3deg) } 100% { transform: translate(0,0) scaleY(1) } }
@keyframes ets-tom { 0% { transform: translate(0,0) } 50% { transform: translate(2px, -1px) rotate(-2deg) } 100% { transform: translate(0,0) } }

.scn-tom-collapses-at-news {
  background: linear-gradient(180deg, #0a0500 0%, #050200 50%, #000000 100%), radial-gradient(ellipse at 50% 60%, #1a0a05 0%, transparent 80%);
}
.scn-tom-collapses-at-news .bg-dark {
  position:absolute; inset:0; background: linear-gradient(180deg, transparent 0%, #050200 100%); animation: tcn-bg 10s ease-in-out infinite alternate;
}
.scn-tom-collapses-at-news .fire-glow {
  position:absolute; bottom:10%; left:35%; width:90px; height:70px; background: radial-gradient(circle at 50% 80%, #3a1a0a 0%, #2a0a00 40%, transparent 70%); box-shadow: 0 0 30px 10px rgba(42,10,0,0.4); animation: tcn-fire 3s ease-in-out infinite alternate;
}
.scn-tom-collapses-at-news .figure-tom {
  position:absolute; bottom:0; left:45%; width:30px; height:70px; background: linear-gradient(180deg, #0a0500 0%, #050200 100%); border-radius: 40% 40% 20% 20% / 50% 50% 20% 20%; transform-origin: bottom center; animation: tcn-tom 4s ease-in-out infinite;
}
.scn-tom-collapses-at-news .figure-eliza {
  position:absolute; bottom:5%; left:30%; width:20px; height:55px; background: linear-gradient(180deg, #0a0500 0%, #050200 100%); border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%; transform-origin: bottom center; animation: tcn-eliza 2.5s ease-in-out infinite alternate;
}
.scn-tom-collapses-at-news .figure-chloe {
  position:absolute; bottom:5%; right:35%; width:25px; height:60px; background: linear-gradient(180deg, #0a0500 0%, #050200 100%); border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%; transform-origin: bottom center; animation: tcn-chloe 3s ease-in-out infinite alternate;
}
.scn-tom-collapses-at-news .bench {
  position:absolute; bottom:0; left:40%; width:25%; height:5%; background: #1a0a05; border-radius: 2px; box-shadow: 0 -2px 4px rgba(0,0,0,0.8);
}
.scn-tom-collapses-at-news .hearth {
  position:absolute; bottom:10%; left:35%; width:20%; height:8%; background: #2a1a0a; border-radius: 20% 20% 0 0; box-shadow: inset 0 4px 8px rgba(0,0,0,0.6);
}
@keyframes tcn-bg { 0% { opacity:0.9 } 50% { opacity:1 } 100% { opacity:0.8 } }
@keyframes tcn-fire { 0% { opacity:0.5; transform: scale(1) } 50% { opacity:0.8; transform: scale(1.1) } 100% { opacity:0.5; transform: scale(1) } }
@keyframes tcn-tom { 0% { transform: translate(0,0) rotate(0deg) scaleY(1) } 25% { transform: translate(0, -5px) rotate(10deg) scaleY(0.9) } 50% { transform: translate(2px, -10px) rotate(20deg) scaleY(0.8) } 75% { transform: translate(1px, -8px) rotate(15deg) scaleY(0.85) } 100% { transform: translate(0,0) rotate(0deg) scaleY(1) } }
@keyframes tcn-eliza { 0% { transform: translate(0,0) rotate(0deg) } 50% { transform: translate(2px, -1px) rotate(-3deg) } 100% { transform: translate(0,0) rotate(0deg) } }
@keyframes tcn-chloe { 0% { transform: translate(0,0) } 50% { transform: translate(-2px, -2px) rotate(2deg) } 100% { transform: translate(0,0) } }

.scn-eliza-recounts-missis-plea {
  background: linear-gradient(180deg, #2a1a0a 0%, #1a0a0a 50%, #0a0500 100%), radial-gradient(ellipse at 50% 80%, #4a2a1a 0%, transparent 70%);
}
.scn-eliza-recounts-missis-plea .bg-interior {
  position:absolute; inset:0; background: linear-gradient(180deg, transparent 0%, #1a0a05 100%); animation: erm-bg 8s ease-in-out infinite alternate;
}
.scn-eliza-recounts-missis-plea .fire-glow {
  position:absolute; bottom:10%; left:30%; width:100px; height:80px; background: radial-gradient(circle at 50% 100%, #ff7a20 0%, #ff9930 30%, #ffb040 50%, transparent 70%); box-shadow: 0 0 60px 25px rgba(255,122,32,0.5); animation: erm-fire 1s ease-in-out infinite alternate;
}
.scn-eliza-recounts-missis-plea .figure-eliza {
  position:absolute; bottom:5%; left:20%; width:22px; height:55px; background: linear-gradient(180deg, #1a0a05 0%, #0a0500 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: erm-eliza 1.4s ease-in-out infinite alternate;
}
.scn-eliza-recounts-missis-plea .figure-chloe {
  position:absolute; bottom:10%; right:35%; width:26px; height:60px; background: linear-gradient(180deg, #2a1a0a 0%, #1a0a00 100%); border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%; transform-origin: bottom center; animation: erm-chloe 1.8s ease-in-out infinite alternate;
}
.scn-eliza-recounts-missis-plea .figure-tom {
  position:absolute; bottom:5%; left:50%; width:28px; height:60px; background: linear-gradient(180deg, #1a0a05 0%, #0a0500 100%); border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%; transform-origin: bottom center; animation: erm-tom 2.2s ease-in-out infinite alternate;
}
.scn-eliza-recounts-missis-plea .table {
  position:absolute; bottom:0; left:25%; width:50%; height:12%; background: linear-gradient(180deg, #2a1a0a 0%, #1a0a00 100%); border-radius: 10%; box-shadow: 0 -4px 8px rgba(0,0,0,0.5);
}
.scn-eliza-recounts-missis-plea .lamp {
  position:absolute; bottom:12%; left:45%; width:10px; height:15px; background: radial-gradient(circle at 50% 30%, #ffd060 0%, #ffa030 100%); border-radius: 30% 30% 10% 10%; box-shadow: 0 0 20px 8px rgba(255,160,48,0.6); animation: erm-lamp 2s ease-in-out infinite alternate;
}
@keyframes erm-bg { 0% { opacity:0.9 } 50% { opacity:1 } 100% { opacity:0.85 } }
@keyframes erm-fire { 0% { transform: scaleY(1) scaleX(1); opacity:0.9 } 25% { transform: scaleY(1.15) scaleX(1.05); opacity:1 } 50% { transform: scaleY(0.95) scaleX(0.9); opacity:0.85 } 75% { transform: scaleY(1.1) scaleX(1.02); opacity:0.95 } 100% { transform: scaleY(1) scaleX(1); opacity:0.9 } }
@keyframes erm-eliza { 0% { transform: translate(0,0) rotate(0deg) } 50% { transform: translate(3px, -2px) rotate(3deg) } 100% { transform: translate(0,0) rotate(0deg) } }
@keyframes erm-chloe { 0% { transform: translate(0,0) scaleY(1) } 50% { transform: translate(-2px, -3px) scaleY(1.05) rotate(-2deg) } 100% { transform: translate(0,0) scaleY(1) } }
@keyframes erm-tom { 0% { transform: translate(0,0) rotate(0deg) } 50% { transform: translate(2px, -1px) rotate(-3deg) } 100% { transform: translate(0,0) rotate(0deg) } }
@keyframes erm-lamp { 0% { opacity:0.7; box-shadow: 0 0 15px 5px rgba(255,160,48,0.4) } 50% { opacity:1; box-shadow: 0 0 25px 10px rgba(255,160,48,0.7) } 100% { opacity:0.75; box-shadow: 0 0 18px 6px rgba(255,160,48,0.5) } }

/* shelby-sollioquy-on-debt – dim interior, dark mood */
.scn-shelby-sollioquy-on-debt {
  background: 
    linear-gradient(180deg, #1a1420 0%, #2c1d2e 30%, #1e1328 60%, #0f0b14 100%),
    radial-gradient(ellipse at 70% 60%, rgba(80, 60, 40, 0.3) 0%, transparent 60%);
}
.scn-shelby-sollioquy-on-debt .wall-left {
  position: absolute; left: 0; top: 0; width: 40%; height: 100%;
  background: linear-gradient(180deg, #2a1f2e 0%, #1a121e 100%);
  box-shadow: inset -12px 0 20px rgba(0,0,0,0.5);
  animation: ssod-wall 12s ease-in-out infinite alternate;
}
.scn-shelby-sollioquy-on-debt .wall-right {
  position: absolute; right: 0; top: 0; width: 40%; height: 100%;
  background: linear-gradient(180deg, #1e1428 0%, #0f0b14 100%);
  box-shadow: inset 12px 0 20px rgba(0,0,0,0.6);
  animation: ssod-wall 14s ease-in-out infinite alternate-reverse;
}
.scn-shelby-sollioquy-on-debt .floor {
  position: absolute; bottom: 0; left: 0; width: 100%; height: 25%;
  background: linear-gradient(180deg, #2a1e1a 0%, #1a100e 100%);
  box-shadow: inset 0 8px 15px rgba(0,0,0,0.4);
}
.scn-shelby-sollioquy-on-debt .door {
  position: absolute; bottom: 25%; left: 50%; width: 90px; height: 140px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #3a2a20 0%, #1e1410 100%);
  border-radius: 4% 4% 2% 2%;
  box-shadow: 0 4px 12px rgba(0,0,0,0.7), inset 0 0 8px rgba(60,40,20,0.3);
  animation: ssod-door 8s ease-in-out infinite;
}
.scn-shelby-sollioquy-on-debt .steps {
  position: absolute; bottom: 25%; left: 38%; width: 24%; height: 8px;
  background: linear-gradient(180deg, #4a3528 0%, #2a1c14 100%);
  border-radius: 10%;
  box-shadow: 0 4px 6px rgba(0,0,0,0.5);
  animation: ssod-steps 6s ease-in-out infinite alternate;
}
.scn-shelby-sollioquy-on-debt .figure {
  position: absolute; bottom: 28%; left: 45%; width: 22px; height: 50px;
  background: linear-gradient(180deg, #1a141e 0%, #0a0810 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.6);
  animation: ssod-figure 5s ease-in-out infinite;
}
.scn-shelby-sollioquy-on-debt .lamp {
  position: absolute; bottom: 50%; right: 28%; width: 12px; height: 16px;
  background: radial-gradient(circle, #f0c068 0%, #c09040 60%, transparent 100%);
  border-radius: 50%;
  box-shadow: 0 0 30px 8px rgba(192, 144, 64, 0.4), 0 0 60px 16px rgba(192, 144, 64, 0.2);
  animation: ssod-lamp 4s ease-in-out infinite alternate;
}

@keyframes ssod-wall {
  0% { opacity: 0.9; }
  50% { opacity: 1; }
  100% { opacity: 0.85; }
}
@keyframes ssod-door {
  0%, 100% { transform: translateX(-50%) scaleX(1); }
  50% { transform: translateX(-50%) scaleX(0.98); }
}
@keyframes ssod-steps {
  0% { transform: translateY(0); }
  50% { transform: translateY(-3px); }
  100% { transform: translateY(0); }
}
@keyframes ssod-figure {
  0% { transform: translateX(0) rotate(-2deg); }
  25% { transform: translateX(3px) rotate(1deg); }
  50% { transform: translateX(0) rotate(-1deg); }
  75% { transform: translateX(-3px) rotate(2deg); }
  100% { transform: translateX(0) rotate(0deg); }
}
@keyframes ssod-lamp {
  0% { box-shadow: 0 0 20px 5px rgba(192,144,64,0.3); opacity: 0.8; }
  50% { box-shadow: 0 0 40px 12px rgba(192,144,64,0.5); opacity: 1; }
  100% { box-shadow: 0 0 25px 8px rgba(192,144,64,0.35); opacity: 0.9; }
}

/* simeon-arrival – sunlit, calm, warm palette */
.scn-simeon-arrival {
  background:
    linear-gradient(180deg, #b4d4e8 0%, #d4e8f4 40%, #f4e8c0 70%, #e0c888 100%),
    radial-gradient(ellipse at 20% 10%, rgba(255,255,240,0.4) 0%, transparent 60%);
}
.scn-simeon-arrival .sky {
  position: absolute; inset: 0 0 35% 0;
  background: linear-gradient(180deg, #a4c8e0 0%, #c8dced 50%, #e8f0f8 100%);
  animation: sa-sky 20s ease-in-out infinite alternate;
}
.scn-simeon-arrival .ground {
  position: absolute; bottom: 0; left: 0; width: 100%; height: 35%;
  background: linear-gradient(180deg, #b8b078 0%, #8a8640 100%);
  border-radius: 60% 40% 0 0 / 40% 30% 0 0;
  box-shadow: inset 0 10px 25px rgba(0,0,0,0.15);
  animation: sa-ground 16s ease-in-out infinite alternate;
}
.scn-simeon-arrival .building {
  position: absolute; bottom: 30%; left: 20%; width: 35%; height: 55%;
  background: linear-gradient(180deg, #e8d8b0 0%, #c8b090 100%);
  border-radius: 4% 4% 0 0;
  box-shadow: 0 6px 18px rgba(0,0,0,0.2), inset 0 -8px 15px rgba(0,0,0,0.1);
  animation: sa-building 12s ease-in-out infinite alternate;
}
.scn-simeon-arrival .door {
  position: absolute; bottom: 30%; left: 32%; width: 50px; height: 80px;
  background: linear-gradient(180deg, #5a3e2a 0%, #3a2818 100%);
  border-radius: 6% 6% 2% 2%;
  box-shadow: 0 4px 10px rgba(0,0,0,0.3);
  animation: sa-door 10s ease-in-out infinite;
}
.scn-simeon-arrival .figure {
  position: absolute; bottom: 32%; left: 55%; width: 24px; height: 55px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1c10 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  box-shadow: 4px 0 8px rgba(0,0,0,0.2);
  animation: sa-figure 6s ease-in-out infinite;
}
.scn-simeon-arrival .hat {
  position: absolute; bottom: 78%; left: 55.5%; width: 28px; height: 12px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1e140a 100%);
  border-radius: 70% 70% 20% 20% / 80% 80% 10% 10%;
  transform-origin: bottom center;
  box-shadow: 0 2px 4px rgba(0,0,0,0.3);
  animation: sa-hat 3s ease-in-out infinite alternate;
}
.scn-simeon-arrival .sun {
  position: absolute; top: 8%; right: 18%; width: 50px; height: 50px;
  background: radial-gradient(circle, #fff0b0 0%, #ffe880 40%, #ffd060 70%, transparent 100%);
  border-radius: 50%;
  box-shadow: 0 0 30px 10px rgba(255,208,96,0.3), 0 0 60px 20px rgba(255,208,96,0.1);
  animation: sa-sun 8s ease-in-out infinite alternate;
}

@keyframes sa-sky {
  0% { opacity: 0.85; }
  50% { opacity: 1; }
  100% { opacity: 0.9; }
}
@keyframes sa-ground {
  0% { transform: scaleY(1); }
  50% { transform: scaleY(0.98); }
  100% { transform: scaleY(1); }
}
@keyframes sa-building {
  0% { transform: scale(1); opacity: 0.95; }
  50% { transform: scale(1.005); opacity: 1; }
  100% { transform: scale(0.995); opacity: 0.97; }
}
@keyframes sa-door {
  0%, 100% { transform: scaleX(1); }
  50% { transform: scaleX(0.97); }
}
@keyframes sa-figure {
  0% { transform: translateX(0) rotate(-1deg); }
  25% { transform: translateX(5px) rotate(2deg); }
  50% { transform: translateX(10px) rotate(-1deg); }
  75% { transform: translateX(15px) rotate(1deg); }
  100% { transform: translateX(20px) rotate(0deg); }
}
@keyframes sa-hat {
  0% { transform: translateX(0) rotate(-2deg); }
  50% { transform: translateX(2px) rotate(2deg); }
  100% { transform: translateX(0) rotate(-2deg); }
}
@keyframes sa-sun {
  0% { box-shadow: 0 0 20px 5px rgba(255,208,96,0.2); opacity: 0.9; }
  50% { box-shadow: 0 0 40px 15px rgba(255,208,96,0.4); opacity: 1; }
  100% { box-shadow: 0 0 25px 8px rgba(255,208,96,0.3); opacity: 0.95; }
}
/* end per-scene blocks */

/* auto-stub: parent tag-classes flagged by CSS audit */
.bright { position: absolute; pointer-events: none; }
.clothes { position: absolute; pointer-events: none; }
.dawn { position: absolute; pointer-events: none; }
.debris { position: absolute; pointer-events: none; }
.dog { position: absolute; pointer-events: none; }
.ice { position: absolute; pointer-events: none; }
.leaf { position: absolute; pointer-events: none; }
.overcast { position: absolute; pointer-events: none; }
.peach { position: absolute; pointer-events: none; }
.ring { position: absolute; pointer-events: none; }
.scn { position: absolute; pointer-events: none; }
.seal { position: absolute; pointer-events: none; }
.seated { position: absolute; pointer-events: none; }
.standing { position: absolute; pointer-events: none; }
.torch { position: absolute; pointer-events: none; }
.tree-road { position: absolute; pointer-events: none; }

/* ============ tier A ============ */
/* per-scene blocks (EXP step_scenes) */
.scn-senator-bird-home {
  background:
    linear-gradient(180deg, #2a1e14 0%, #1c130c 40%, #0e0a06 100%),
    radial-gradient(ellipse at 60% 70%, #3a2a1a 0%, transparent 70%);
}
.scn-senator-bird-home .sbh-wall { position:absolute; inset:0 0 40% 0; background: linear-gradient(180deg, #3a2a1a 0%, #1c130c 100%); box-shadow: inset 0 0 60px rgba(0,0,0,0.7); }
.scn-senator-bird-home .sbh-floor { position:absolute; bottom:0; left:0; right:0; height:40%; background: linear-gradient(180deg, #1c130c 0%, #0e0a06 100%); border-radius: 20% 20% 0 0 / 10% 10% 0 0; }
.scn-senator-bird-home .sbh-fireplace { position:absolute; bottom:42%; left:20%; width:30%; height:35%; background: linear-gradient(90deg, #2a1e14 0%, #4a3a2a 30%, #2a1e14 100%); border-radius: 10% 10% 5% 5%; box-shadow: inset 0 -10px 20px rgba(0,0,0,0.5); }
.scn-senator-bird-home .sbh-fire-glow { position:absolute; bottom:44%; left:28%; width:10%; height:20%; background: radial-gradient(ellipse, #c8553d 0%, #8a4020 40%, transparent 70%); border-radius: 50%; box-shadow: 0 0 40px 20px #c8553d; animation: sbh-fire 2s ease-in-out infinite alternate; }
.scn-senator-bird-home .sbh-chair { position:absolute; bottom:38%; right:22%; width:18%; height:30%; background: linear-gradient(180deg, #3a2a1a 0%, #1c130c 100%); border-radius: 20% 20% 10% 10% / 30% 30% 15% 15%; transform: rotate(-2deg); }
.scn-senator-bird-home .sbh-senator { position:absolute; bottom:40%; right:20%; width:8%; height:25%; background: linear-gradient(180deg, #2a1e14 0%, #1a1210 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: sbh-figure 6s ease-in-out infinite; }
.scn-senator-bird-home .sbh-wife { position:absolute; bottom:40%; left:38%; width:7%; height:22%; background: linear-gradient(180deg, #3a2a1a 0%, #1c130c 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: sbh-figure 6s ease-in-out infinite alternate; }
.scn-senator-bird-home .sbh-lamp { position:absolute; bottom:55%; left:50%; width:4%; height:8%; background: radial-gradient(circle, #b08040 0%, #6a4a20 100%); border-radius: 50%; box-shadow: 0 0 30px 10px #b08040; animation: sbh-lamp 3s ease-in-out infinite alternate; }
@keyframes sbh-fire { 0% { transform: scale(1); opacity:0.8; } 50% { transform: scale(1.2); opacity:1; } 100% { transform: scale(0.9); opacity:0.6; } }
@keyframes sbh-figure { 0% { transform: translateX(0) rotate(0deg); } 50% { transform: translateX(4px) rotate(2deg); } 100% { transform: translateX(-2px) rotate(-1deg); } }
@keyframes sbh-lamp { 0% { box-shadow: 0 0 20px 5px #b08040; } 50% { box-shadow: 0 0 40px 15px #c09050; } 100% { box-shadow: 0 0 25px 8px #b08040; } }

.scn-prue-the-rusk-woman {
  background:
    linear-gradient(180deg, #1a1a2e 0%, #2a1a2a 50%, #0e0e1a 100%),
    radial-gradient(ellipse at 50% 60%, #3a1a2a 0%, transparent 70%);
}
.scn-prue-the-rusk-woman .cellar-wall {
  position: absolute; inset: 0; background: linear-gradient(180deg, #1c1c2a 0%, #0a0a12 100%);
}
.scn-prue-the-rusk-woman .light {
  position: absolute; top: 20%; left: 40%; width: 8%; height: 8%;
  background: radial-gradient(circle, #8a6040 0%, #504020 50%, transparent 100%);
  border-radius: 50%;
  animation: prw-light 4s ease-in-out infinite alternate;
}
.scn-prue-the-rusk-woman .bottle {
  position: absolute; bottom: 30%; left: 25%; width: 4%; height: 12%;
  background: linear-gradient(180deg, #3a4a30 0%, #1a2a10 100%);
  border-radius: 30% 30% 10% 10% / 50% 50% 10% 10%;
  box-shadow: 0 4px 6px rgba(0,0,0,0.8);
  animation: prw-bottle 5s ease-in-out infinite;
}
.scn-prue-the-rusk-woman .figure-prue {
  position: absolute; bottom: 15%; left: 35%; width: 10%; height: 35%;
  background: linear-gradient(180deg, #2a1a1a 0%, #1a0a0a 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: prw-prue 6s ease-in-out infinite;
}
.scn-prue-the-rusk-woman .figure-tom {
  position: absolute; bottom: 15%; left: 55%; width: 12%; height: 40%;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 45% 45% 30% 30% / 65% 65% 30% 30%;
  transform-origin: bottom center;
  animation: prw-tom 8s ease-in-out infinite alternate;
}
.scn-prue-the-rusk-woman .shadow {
  position: absolute; bottom: 0; left: 20%; right: 20%; height: 20%;
  background: linear-gradient(180deg, rgba(0,0,0,0.6) 0%, transparent 100%);
  animation: prw-shadow 10s ease-in-out infinite;
}

@keyframes prw-light {
  0% { opacity: 0.6; transform: scale(1); }
  50% { opacity: 1; transform: scale(1.2); }
  100% { opacity: 0.7; transform: scale(0.9); }
}
@keyframes prw-bottle {
  0% { transform: translate(0,0) rotate(0deg); }
  30% { transform: translate(2px,-3px) rotate(10deg); }
  60% { transform: translate(-1px,1px) rotate(-5deg); }
  100% { transform: translate(0,0) rotate(0deg); }
}
@keyframes prw-prue {
  0% { transform: translateX(0) translateY(0) rotate(0deg); }
  25% { transform: translateX(3px) translateY(-2px) rotate(2deg); }
  50% { transform: translateX(-2px) translateY(1px) rotate(-3deg); }
  75% { transform: translateX(1px) translateY(-1px) rotate(1deg); }
  100% { transform: translateX(0) translateY(0) rotate(0deg); }
}
@keyframes prw-tom {
  0% { transform: translateX(0) rotate(0deg); }
  50% { transform: translateX(5px) rotate(3deg); }
  100% { transform: translateX(0) rotate(0deg); }
}
@keyframes prw-shadow {
  0% { opacity: 0.8; }
  50% { opacity: 1; }
  100% { opacity: 0.7; }
}

/* Scene: st-clare-confession-slavery */

.scn-sam-reports {
  background: linear-gradient(180deg, #1a1a3e 0%, #2c2244 50%, #4a3a6e 100%), radial-gradient(ellipse at 50% 100%, #4a3a6e 0%, transparent 70%);
}
.scn-sam-reports .sr-bg { position:absolute; inset:0; background: linear-gradient(135deg, #2a2044 0%, #1a1030 100%); }
.scn-sam-reports .sr-floor { position:absolute; bottom:0; left:0; right:0; height:35%; background: linear-gradient(180deg, #3a2a1a 0%, #2a1a0a 100%); border-radius: 20% 20% 0 0 / 40% 40% 0 0; }
.scn-sam-reports .sr-window { position:absolute; top:15%; right:12%; width:30%; height:45%; border-radius: 4px; background: linear-gradient(180deg, #1a2040 0%, #2a3050 70%, #3a4060 100%); box-shadow: inset 0 0 12px rgba(0,0,0,.6), 0 0 4px rgba(200,180,120,.3); }
.scn-sam-reports .sr-stars-a { position:absolute; top:18%; right:15%; width:4px; height:4px; background:#f0e8a0; border-radius:50%; box-shadow: 0 6px 0 0 #f0e8a0, 20px -8px 0 0 #e8d080, -12px 14px 0 0 #f0e8a0; animation: sr-twinkle 5s ease-in-out infinite; }
.scn-sam-reports .sr-stars-b { position:absolute; top:24%; right:22%; width:3px; height:3px; background:#e0d0a0; border-radius:50%; box-shadow: 10px 20px 0 0 #e0d0a0, -10px -12px 0 0 #f0e8a0; animation: sr-twinkle 7s ease-in-out infinite 2s; }
.scn-sam-reports .sr-figure { position:absolute; bottom:28%; left:20%; width:24px; height:50px; background: linear-gradient(180deg, #3a2a1a 0%, #2a1a0a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: sr-bow 6s ease-in-out infinite; }
.scn-sam-reports .sr-candle { position:absolute; bottom:30%; left:28%; width:6px; height:14px; background: linear-gradient(180deg, #e8c070 0%, #b89050 100%); border-radius: 2px 2px 4px 4px; }
.scn-sam-reports .sr-glow { position:absolute; bottom:30%; left:28%; width:12px; height:12px; background: radial-gradient(circle, #ffd080 0%, transparent 70%); border-radius: 50%; box-shadow: 0 0 20px 8px #ffd080; animation: sr-flicker 1.5s ease-in-out infinite alternate; }
@keyframes sr-twinkle { 0%,100% { opacity:0.3; transform:scale(1) } 50% { opacity:1; transform:scale(1.3) } }
@keyframes sr-bow { 0%,100% { transform: translateY(0) rotate(0deg) } 25% { transform: translateY(-2px) rotate(-2deg) } 50% { transform: translateY(0) rotate(0deg) } 75% { transform: translateY(-1px) rotate(2deg) } }
@keyframes sr-flicker { 0% { opacity:0.7; box-shadow: 0 0 10px 3px #ffd080 } 100% { opacity:1; box-shadow: 0 0 30px 12px #ffd080 } }

.scn-sam-speechifies {
  background: linear-gradient(180deg, #2a1a08 0%, #3a2a12 50%, #2a1a08 100%), radial-gradient(ellipse at 50% 80%, #4a3a1a 0%, transparent 70%);
}
.scn-sam-speechifies .ss-bg { position:absolute; inset:0; background: linear-gradient(135deg, #3a2a10 0%, #1a0a00 100%); }
.scn-sam-speechifies .ss-hearth { position:absolute; bottom:20%; left:10%; width:25%; height:30%; background: linear-gradient(180deg, #5a3a1a 0%, #3a2a0a 100%); border-radius: 30% 30% 0 0 / 50% 50% 0 0; box-shadow: inset 0 -8px 12px rgba(0,0,0,.6); }
.scn-sam-speechifies .ss-flame { position:absolute; bottom:35%; left:17%; width:8%; height:20%; background: radial-gradient(ellipse, #ffa040 0%, #ff8030 30%, #b05020 70%); border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%; box-shadow: 0 0 20px 6px #ff8030; animation: ss-burn 1s ease-in-out infinite alternate; }
.scn-sam-speechifies .ss-figure { position:absolute; bottom:25%; right:30%; width:30px; height:55px; background: linear-gradient(180deg, #2a1a08 0%, #1a0a00 100%); border-radius: 50% 50% 30% 30% / 70% 70% 30% 30%; transform-origin: bottom center; animation: ss-gesture 3s ease-in-out infinite; }
.scn-sam-speechifies .ss-hat { position:absolute; bottom:67%; right:31%; width:22px; height:12px; background: linear-gradient(180deg, #4a3a1a 0%, #2a1a08 100%); border-radius: 50% 50% 20% 20% / 60% 60% 40% 40%; animation: ss-tilt 2s ease-in-out infinite; }
.scn-sam-speechifies .ss-audience { position:absolute; bottom:20%; left:50%; width:40%; height:25%; background: radial-gradient(ellipse at 50% 100%, #2a1a08 0%, transparent 80%); animation: ss-laugh 4s ease-in-out infinite; }
.scn-sam-speechifies .ss-steam { position:absolute; top:30%; left:15%; width:8px; height:8px; background: rgba(200,180,100,.3); border-radius:50%; filter: blur(3px); animation: ss-float 8s linear infinite; }
@keyframes ss-burn { 0% { transform: scaleY(0.8) scaleX(1); opacity:0.8 } 50% { transform: scaleY(1.1) scaleX(1.05); opacity:1 } 100% { transform: scaleY(0.9) scaleX(1); opacity:0.9 } }
@keyframes ss-gesture { 0%,100% { transform: rotate(-3deg) translateY(0) } 25% { transform: rotate(2deg) translateY(-2px) } 50% { transform: rotate(-1deg) translateY(0) } 75% { transform: rotate(3deg) translateY(-1px) } }
@keyframes ss-tilt { 0%,100% { transform: rotate(-5deg) } 50% { transform: rotate(5deg) } }
@keyframes ss-laugh { 0%,100% { opacity:0.3 } 50% { opacity:0.8; transform: scaleY(1.05) } }
@keyframes ss-float { 0% { transform: translateY(0) translateX(0); opacity:0.3 } 50% { opacity:0.8; transform: translateY(-40px) translateX(10px) } 100% { transform: translateY(-80px) translateX(-5px); opacity:0 } }

.scn-senator-bird-home {
  background: linear-gradient(180deg, #3a2a12 0%, #2a1a08 40%, #1a0a00 100%), radial-gradient(ellipse at 50% 20%, #4a3a1a 0%, transparent 70%);
}
.scn-senator-bird-home .sb-bg { position:absolute; inset:0; background: linear-gradient(135deg, #4a3a20 0%, #2a1a08 100%); }
.scn-senator-bird-home .sb-fireplace { position:absolute; bottom:30%; left:10%; width:20%; height:40%; background: linear-gradient(180deg, #5a4a2a 0%, #3a2a0a 100%); border-radius: 10% 10% 5% 5% / 20% 20% 5% 5%; box-shadow: inset 0 -6px 10px rgba(0,0,0,.5); }
.scn-senator-bird-home .sb-chair { position:absolute; bottom:25%; left:35%; width:18%; height:30%; background: linear-gradient(180deg, #6a5a3a 0%, #4a3a1a 100%); border-radius: 30% 30% 10% 10% / 40% 40% 10% 10%; }
.scn-senator-bird-home .sb-figure { position:absolute; bottom:28%; left:37%; width:14px; height:32px; background: linear-gradient(180deg, #3a2a1a 0%, #2a1a0a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: sb-gaze 10s ease-in-out infinite; }
.scn-senator-bird-home .sb-child1 { position:absolute; bottom:22%; left:55%; width:10px; height:20px; background: linear-gradient(180deg, #4a3a2a 0%, #3a2a1a 100%); border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%; animation: sb-bounce 3s ease-in-out infinite; }
.scn-senator-bird-home .sb-child2 { position:absolute; bottom:20%; left:65%; width:8px; height:16px; background: linear-gradient(180deg, #4a3a2a 0%, #3a2a1a 100%); border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%; animation: sb-bounce 3.7s ease-in-out infinite 0.5s; }
.scn-senator-bird-home .sb-cat { position:absolute; bottom:18%; left:70%; width:14px; height:6px; background: #3a2a1a; border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%; transform: rotate(-10deg); }
.scn-senator-bird-home .sb-shadows { position:absolute; bottom:0; left:0; right:0; height:40%; background: linear-gradient(180deg, transparent 0%, rgba(0,0,0,.4) 100%); pointer-events:none; }
@keyframes sb-gaze { 0%,100% { transform: rotate(0deg) } 25% { transform: rotate(-5deg) translateY(-1px) } 50% { transform: rotate(0deg) } 75% { transform: rotate(5deg) translateY(-1px) } }
@keyframes sb-bounce { 0%,100% { transform: translateY(0) } 50% { transform: translateY(-3px) } }

.scn-eliza-at-birds {
  background: linear-gradient(180deg, #4a3020 0%, #3a2010 50%, #2a1000 100%), radial-gradient(ellipse at 50% 20%, #6a4a2a 0%, transparent 60%);
}
.scn-eliza-at-birds .eb-bg { position:absolute; inset:0; background: linear-gradient(135deg, #5a4030 0%, #2a1a0a 100%); }
.scn-eliza-at-birds .eb-sofa { position:absolute; bottom:20%; left:20%; width:55%; height:35%; background: linear-gradient(180deg, #6a5040 0%, #4a3020 100%); border-radius: 20% 20% 10% 10% / 30% 30% 10% 10%; box-shadow: 0 -4px 8px rgba(0,0,0,.3); }
.scn-eliza-at-birds .eb-mother { position:absolute; bottom:30%; left:30%; width:20px; height:40px; background: linear-gradient(180deg, #3a2a1a 0%, #2a1a0a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: eb-sleep 10s ease-in-out infinite; }
.scn-eliza-at-birds .eb-child { position:absolute; bottom:30%; left:43%; width:10px; height:16px; background: linear-gradient(180deg, #4a3a2a 0%, #3a2a1a 100%); border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%; transform-origin: bottom; animation: eb-nestle 8s ease-in-out infinite; }
.scn-eliza-at-birds .eb-blanket { position:absolute; bottom:25%; left:28%; width:30%; height:8%; background: linear-gradient(90deg, #4a3020 0%, #6a5040 100%); border-radius: 40% 40% 20% 20% / 60% 60% 40% 40%; animation: eb-breathe 5s ease-in-out infinite; }
.scn-eliza-at-birds .eb-fire { position:absolute; bottom:35%; right:15%; width:12%; height:20%; background: radial-gradient(ellipse, #ff8030 0%, #c06020 40%, #502010 70%); border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%; box-shadow: 0 0 15px 5px #ff8030; animation: eb-glowing 2s ease-in-out infinite alternate; }
.scn-eliza-at-birds .eb-glow { position:absolute; bottom:20%; right:10%; width:40%; height:50%; background: radial-gradient(ellipse, rgba(255,128,48,0.2) 0%, transparent 70%); pointer-events:none; animation: eb-pulse 3s ease-in-out infinite; }
@keyframes eb-sleep { 0%,100% { transform: scaleY(1) } 50% { transform: scaleY(1.01) } }
@keyframes eb-nestle { 0%,100% { transform: translateY(0) rotate(0deg) } 50% { transform: translateY(-1px) rotate(3deg) } }
@keyframes eb-breathe { 0%,100% { transform: scaleY(1) } 50% { transform: scaleY(1.02) } }
@keyframes eb-glowing { 0% { opacity:0.7; box-shadow: 0 0 10px 3px #ff8030 } 100% { opacity:1; box-shadow: 0 0 25px 10px #ff8030 } }
@keyframes eb-pulse { 0%,100% { opacity:0.3 } 50% { opacity:0.6 } }

.scn-haley-stunned {
  background: linear-gradient(180deg, #1e1a30 0%, #2c2440 40%, #4a3a5a 70%, #6a4a3a 100%),
              radial-gradient(ellipse at 50% 100%, #6a4a3a 0%, transparent 80%);
}
.scn-haley-stunned .sky-dusk {
  position: absolute; inset: 0 0 45% 0;
  background: linear-gradient(180deg, #2a2545 0%, #4a3a5a 50%, #6a4a3a 100%);
  animation: hs-sky 15s ease-in-out infinite alternate;
}
.scn-haley-stunned .riverbank {
  position: absolute; bottom: 10%; left: 0; right: 0; height: 50%;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a120a 100%);
  border-radius: 30% 70% 0 0 / 60% 80% 0 0;
  box-shadow: inset 0 10px 25px rgba(0,0,0,0.6);
  animation: hs-bank 20s ease-in-out infinite alternate;
}
.scn-haley-stunned .haley-silhouette {
  position: absolute; bottom: 30%; left: 35%; width: 20px; height: 48px;
  background: linear-gradient(180deg, #0e0e1a 0%, #0a0a10 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: hs-haley 6s ease-in-out infinite;
}
.scn-haley-stunned .eliza-jump {
  position: absolute; bottom: 35%; left: 60%; width: 16px; height: 36px;
  background: linear-gradient(180deg, #1a1a2e 0%, #0a0a1a 100%);
  border-radius: 40% 40% 50% 50% / 50% 50% 40% 40%;
  transform-origin: bottom left;
  animation: hs-eliza 3s ease-in-out infinite alternate;
  opacity: 0.8;
}
.scn-haley-stunned .tree-left {
  position: absolute; bottom: 25%; left: 8%; width: 12px; height: 70px;
  background: linear-gradient(180deg, #1a1a1a 0%, #0d0d0d 100%);
  border-radius: 30%;
  transform: rotate(-5deg);
  animation: hs-tree 10s ease-in-out infinite alternate;
}
.scn-haley-stunned .tree-right {
  position: absolute; bottom: 20%; right: 10%; width: 14px; height: 80px;
  background: linear-gradient(180deg, #1a1a1a 0%, #0d0d0d 100%);
  border-radius: 30%;
  transform: rotate(4deg);
  animation: hs-tree 12s ease-in-out infinite alternate reverse;
}
.scn-haley-stunned .cloud-hs {
  position: absolute; top: 15%; left: 20%; width: 70px; height: 16px;
  background: linear-gradient(90deg, rgba(80,70,100,0.6) 0%, rgba(60,50,80,0.2) 100%);
  border-radius: 50%;
  filter: blur(5px);
  animation: hs-cloud 40s linear infinite;
}
@keyframes hs-sky {
  0% { opacity: 0.7; }
  50% { opacity: 1; }
  100% { opacity: 0.8; }
}
@keyframes hs-bank {
  0% { transform: translateY(0); }
  50% { transform: translateY(-2px); }
  100% { transform: translateY(0); }
}
@keyframes hs-haley {
  0% { transform: translateX(0) translateY(0) rotate(0deg); }
  30% { transform: translateX(-2px) translateY(-3px) rotate(-2deg); }
  60% { transform: translateX(3px) translateY(-1px) rotate(1deg); }
  100% { transform: translateX(0) translateY(0) rotate(0deg); }
}
@keyframes hs-eliza {
  0% { transform: translateX(0) translateY(0) rotate(0deg) scaleY(1); }
  50% { transform: translateX(10px) translateY(-15px) rotate(-10deg) scaleY(1.1); }
  100% { transform: translateX(20px) translateY(0) rotate(0deg) scaleY(1); }
}
@keyframes hs-tree {
  0% { transform: rotate(-5deg); }
  50% { transform: rotate(-3deg); }
  100% { transform: rotate(-5deg); }
}
@keyframes hs-cloud {
  0% { transform: translateX(-80px); }
  100% { transform: translateX(120vw); }
}

.scn-haley-tom-loker-marks {
  background: linear-gradient(180deg, #1a1210 0%, #2a1e1a 40%, #1a1210 100%),
              radial-gradient(ellipse at 50% 30%, #4a3020 0%, transparent 70%);
}
.scn-haley-tom-loker-marks .tavern-wall {
  position: absolute; inset: 0;
  background: linear-gradient(135deg, #2a1e1a 0%, #1a1210 100%);
  opacity: 0.9;
  animation: htl-wall 20s ease-in-out infinite alternate;
}
.scn-haley-tom-loker-marks .tavern-table {
  position: absolute; bottom: 20%; left: 15%; right: 15%; height: 20%;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a100a 100%);
  border-radius: 20% 20% 10% 10% / 40% 40% 20% 20%;
  box-shadow: 0 4px 12px rgba(0,0,0,0.8);
  animation: htl-table 15s ease-in-out infinite alternate;
}
.scn-haley-tom-loker-marks .candle {
  position: absolute; bottom: 40%; left: 45%; width: 6px; height: 14px;
  background: linear-gradient(180deg, #ffd080 0%, #b06030 100%);
  border-radius: 30%;
  box-shadow: 0 0 20px 6px #ffa050, 0 0 40px 12px rgba(255,160,80,0.4);
  animation: htl-candle 3s ease-in-out infinite alternate;
}
.scn-haley-tom-loker-marks .haley-figure {
  position: absolute; bottom: 25%; left: 20%; width: 18px; height: 40px;
  background: linear-gradient(180deg, #2a1e1a 0%, #1a1210 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: htl-figure 8s ease-in-out infinite;
}
.scn-haley-tom-loker-marks .loker-figure {
  position: absolute; bottom: 25%; left: 45%; width: 22px; height: 44px;
  background: linear-gradient(180deg, #2a221a 0%, #1a1410 100%);
  border-radius: 50% 50% 40% 40% / 55% 55% 40% 40%;
  transform-origin: bottom center;
  animation: htl-figure 10s ease-in-out infinite alternate;
}
.scn-haley-tom-loker-marks .marks-figure {
  position: absolute; bottom: 25%; right: 20%; width: 16px; height: 38px;
  background: linear-gradient(180deg, #1e1810 0%, #0e0a08 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: htl-figure 7s ease-in-out infinite reverse;
}
.scn-haley-tom-loker-marks .mug-left {
  position: absolute; bottom: 28%; left: 28%; width: 10px; height: 12px;
  background: #4a3020;
  border-radius: 10%;
  box-shadow: 0 2px 4px rgba(0,0,0,0.6);
  animation: htl-mug 5s ease-in-out infinite alternate;
}
.scn-haley-tom-loker-marks .mug-right {
  position: absolute; bottom: 28%; right: 28%; width: 10px; height: 12px;
  background: #4a3020;
  border-radius: 10%;
  box-shadow: 0 2px 4px rgba(0,0,0,0.6);
  animation: htl-mug 6s ease-in-out infinite alternate-reverse;
}
@keyframes htl-wall {
  0% { opacity: 0.85; }
  50% { opacity: 1; }
  100% { opacity: 0.9; }
}
@keyframes htl-table {
  0% { transform: scaleY(1); }
  50% { transform: scaleY(0.98); }
  100% { transform: scaleY(1); }
}
@keyframes htl-candle {
  0% { box-shadow: 0 0 15px 4px #ffa050, 0 0 30px 8px rgba(255,160,80,0.3); transform: scaleY(1); }
  50% { box-shadow: 0 0 25px 8px #ffc080, 0 0 50px 15px rgba(255,192,128,0.5); transform: scaleY(1.05); }
  100% { box-shadow: 0 0 18px 5px #ffa050, 0 0 35px 10px rgba(255,160,80,0.35); transform: scaleY(1); }
}
@keyframes htl-figure {
  0% { transform: translateX(0) rotate(0deg); }
  50% { transform: translateX(2px) rotate(2deg); }
  100% { transform: translateX(0) rotate(0deg); }
}
@keyframes htl-mug {
  0% { transform: translateY(0) rotate(0deg); }
  50% { transform: translateY(-1px) rotate(5deg); }
  100% { transform: translateY(0) rotate(0deg); }
}

.scn-marks-loker-list {
  background: linear-gradient(180deg, #1a1410 0%, #2a1e18 40%, #1a1410 100%),
              radial-gradient(ellipse at 70% 30%, #3a2820 0%, transparent 80%);
}
.scn-marks-loker-list .bg-dim {
  position: absolute; inset: 0;
  background: linear-gradient(135deg, #1a1410 0%, #0e0a08 100%);
  opacity: 0.85;
  animation: ml-bg 30s ease-in-out infinite alternate;
}
.scn-marks-loker-list .table-close {
  position: absolute; bottom: 10%; left: 10%; right: 10%; height: 25%;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a100a 100%);
  border-radius: 5% 5% 0 0 / 10% 10% 0 0;
  box-shadow: inset 0 4px 8px rgba(0,0,0,0.8);
  animation: ml-table 12s ease-in-out infinite alternate;
}
.scn-marks-loker-list .list-paper {
  position: absolute; bottom: 30%; left: 35%; right: 25%; height: 20%;
  background: linear-gradient(180deg, #c8b090 0%, #a08060 100%);
  border-radius: 2% 5% 5% 2%;
  box-shadow: 0 2px 6px rgba(0,0,0,0.5);
  transform: rotate(-3deg);
  animation: ml-paper 8s ease-in-out infinite alternate;
}
.scn-marks-loker-list .marks-hand {
  position: absolute; bottom: 28%; left: 55%; width: 12px; height: 18px;
  background: linear-gradient(180deg, #6a5040 0%, #4a3020 100%);
  border-radius: 40% 40% 20% 20% / 30% 30% 40% 40%;
  transform-origin: bottom center;
  animation: ml-hand 4s ease-in-out infinite;
}
.scn-marks-loker-list .marks-head {
  position: absolute; bottom: 48%; left: 50%; width: 28px; height: 30px;
  background: linear-gradient(180deg, #6a5040 0%, #3a2a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: ml-head 6s ease-in-out infinite alternate;
}
.scn-marks-loker-list .loker-head {
  position: absolute; bottom: 50%; right: 20%; width: 30px; height: 32px;
  background: linear-gradient(180deg, #5a4a3a 0%, #2a1e1a 100%);
  border-radius: 50% 50% 40% 40% / 55% 55% 45% 45%;
  transform-origin: bottom center;
  animation: ml-loker 10s ease-in-out infinite alternate;
}
@keyframes ml-bg {
  0% { opacity: 0.8; }
  50% { opacity: 1; }
  100% { opacity: 0.85; }
}
@keyframes ml-table {
  0% { transform: scaleY(1); }
  50% { transform: scaleY(0.97); }
  100% { transform: scaleY(1); }
}
@keyframes ml-paper {
  0% { transform: rotate(-3deg) translateY(0); }
  50% { transform: rotate(-1deg) translateY(-2px); }
  100% { transform: rotate(-3deg) translateY(0); }
}
@keyframes ml-hand {
  0% { transform: translateX(0) rotate(0deg); }
  50% { transform: translateX(3px) rotate(5deg); }
  100% { transform: translateX(0) rotate(0deg); }
}
@keyframes ml-head {
  0% { transform: rotate(-2deg); }
  50% { transform: rotate(2deg); }
  100% { transform: rotate(-2deg); }
}
@keyframes ml-loker {
  0% { transform: rotate(0deg); }
  50% { transform: rotate(-3deg); }
  100% { transform: rotate(0deg); }
}

.scn-author-interjection {
  background: linear-gradient(180deg, #8a9aa0 0%, #b0c0c8 40%, #c8d8dc 100%),
              radial-gradient(ellipse at 50% 0%, #e0e8ec 0%, transparent 70%);
}
.scn-author-interjection .overcast-sky {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(180deg, #8a9aa0 0%, #c8d8dc 100%);
  animation: ai-sky 20s ease-in-out infinite alternate;
}
.scn-author-interjection .road {
  position: absolute; bottom: 15%; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #6a7a6a 0%, #4a5a4a 100%);
  border-radius: 10% 10% 0 0 / 20% 20% 0 0;
  box-shadow: inset 0 8px 20px rgba(0,0,0,0.2);
  animation: ai-road 25s ease-in-out infinite alternate;
}
.scn-author-interjection .sam-figure {
  position: absolute; bottom: 20%; left: 30%; width: 18px; height: 40px;
  background: linear-gradient(180deg, #3a4a3a 0%, #1a2a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: ai-walk 5s ease-in-out infinite;
}
.scn-author-interjection .andy-figure {
  position: absolute; bottom: 20%; left: 40%; width: 18px; height: 42px;
  background: linear-gradient(180deg, #4a5a4a 0%, #2a3a2a 100%);
  border-radius: 50% 50% 40% 40% / 55% 55% 40% 40%;
  transform-origin: bottom center;
  animation: ai-walk 6s ease-in-out infinite alternate-reverse;
}
.scn-author-interjection .cloud-ai-a {
  position: absolute; top: 10%; left: 10%; width: 90px; height: 22px;
  background: linear-gradient(90deg, rgba(200,210,215,0.7) 0%, rgba(180,190,195,0.3) 100%);
  border-radius: 50%;
  filter: blur(6px);
  animation: ai-cloud-a 50s linear infinite;
}
.scn-author-interjection .cloud-ai-b {
  position: absolute; top: 5%; right: 15%; width: 70px; height: 18px;
  background: linear-gradient(90deg, rgba(190,200,205,0.6) 0%, rgba(170,180,185,0.2) 100%);
  border-radius: 50%;
  filter: blur(5px);
  animation: ai-cloud-b 60s linear infinite reverse;
}
.scn-author-interjection .grass {
  position: absolute; bottom: 5%; left: 0; right: 0; height: 15%;
  background: linear-gradient(180deg, #5a7a4a 0%, #3a5a2a 100%);
  border-radius: 60% 40% 0 0 / 30% 20% 0 0;
  box-shadow: inset 0 -6px 12px rgba(0,0,0,0.1);
  animation: ai-grass 18s ease-in-out infinite alternate;
}
@keyframes ai-sky {
  0% { opacity: 0.8; }
  50% { opacity: 1; }
  100% { opacity: 0.9; }
}
@keyframes ai-road {
  0% { transform: scaleY(1); }
  50% { transform: scaleY(0.98); }
  100% { transform: scaleY(1); }
}
@keyframes ai-walk {
  0% { transform: translateX(0) translateY(0) rotate(0deg); }
  25% { transform: translateX(5px) translateY(-2px) rotate(3deg); }
  50% { transform: translateX(10px) translateY(0) rotate(0deg); }
  75% { transform: translateX(15px) translateY(-2px) rotate(-3deg); }
  100% { transform: translateX(20px) translateY(0) rotate(0deg); }
}
@keyframes ai-cloud-a {
  0% { transform: translateX(-100px); }
  100% { transform: translateX(120vw); }
}
@keyframes ai-cloud-b {
  0% { transform: translateX(0); }
  100% { transform: translateX(-100vw); }
}
@keyframes ai-grass {
  0% { transform: scaleY(1); }
  50% { transform: scaleY(1.02); }
  100% { transform: scaleY(1); }
}

.scn-st-clare-mansion {
  background:
    linear-gradient(180deg, #f7e8c0 0%, #e0c898 50%, #c8a868 100%),
    radial-gradient(ellipse at 50% 30%, #fff6e0 0%, transparent 70%);
  background-blend-mode: overlay;
}
.scn-st-clare-mansion .sky {
  position: absolute; inset: 0 0 60% 0;
  background: linear-gradient(180deg, #b8d8f0 0%, #87ceeb 50%, #f0e68c 100%);
  animation: scm-sky 20s ease-in-out infinite alternate;
}
.scn-st-clare-mansion .archway {
  position: absolute; bottom: 20%; left: 50%; transform: translateX(-50%);
  width: 200px; height: 300px;
  background: 
    linear-gradient(135deg, #c8a868 0%, #b89450 50%, #a07840 100%);
  border-radius: 50% 50% 0 0 / 60% 60% 0 0;
  box-shadow: inset 0 0 40px rgba(0,0,0,0.3);
}
.scn-st-clare-mansion .curtain-left,
.scn-st-clare-mansion .curtain-right {
  position: absolute; top: 5%; width: 40px; height: 200px;
  background: linear-gradient(180deg, #d4b070 0%, #b89450 50%, #8c6a30 100%);
  border-radius: 0 40% 40% 0 / 0 60% 60% 0;
  transform-origin: top center;
}
.scn-st-clare-mansion .curtain-left {
  left: 50%; margin-left: -120px;
  animation: scm-curtainL 8s ease-in-out infinite alternate;
}
.scn-st-clare-mansion .curtain-right {
  right: 50%; margin-right: -120px;
  border-radius: 40% 0 0 40% / 60% 0 0 60%;
  animation: scm-curtainR 8s ease-in-out infinite alternate;
}
.scn-st-clare-mansion .pillar-left,
.scn-st-clare-mansion .pillar-right {
  position: absolute; bottom: 20%; width: 20px; height: 280px;
  background: linear-gradient(90deg, #d4b890 0%, #f0e0c0 50%, #d4b890 100%);
  box-shadow: 2px 0 8px rgba(0,0,0,0.2), -2px 0 8px rgba(0,0,0,0.2);
}
.scn-st-clare-mansion .pillar-left { left: 30%; }
.scn-st-clare-mansion .pillar-right { right: 30%; }
.scn-st-clare-mansion .sunbeam {
  position: absolute; top: 10%; left: 40%; width: 120px; height: 200px;
  background: linear-gradient(180deg, rgba(255,255,200,0.4) 0%, transparent 100%);
  clip-path: polygon(30% 0%, 70% 0%, 100% 100%, 0% 100%);
  animation: scm-sunbeam 12s ease-in-out infinite alternate;
}
.scn-st-clare-mansion .carriage {
  position: absolute; bottom: 10%; left: 30%; width: 100px; height: 60px;
  background: linear-gradient(180deg, #6a4a3a 0%, #3a2a1a 100%);
  border-radius: 10% 10% 30% 30% / 20% 20% 40% 40%;
  box-shadow: 0 8px 16px rgba(0,0,0,0.5);
  animation: scm-carriage 6s ease-in-out infinite;
}
.scn-st-clare-mansion .eva {
  position: absolute; bottom: 10%; left: 36%; width: 20px; height: 40px;
  background: linear-gradient(180deg, #f0d0a0 0%, #c8a070 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: scm-eva 4s ease-in-out infinite;
}
@keyframes scm-sky { 0% { opacity:0.8; } 50% { opacity:1; } 100% { opacity:0.7; } }
@keyframes scm-curtainL { 0% { transform: rotate(-2deg); } 50% { transform: rotate(2deg); } 100% { transform: rotate(-2deg); } }
@keyframes scm-curtainR { 0% { transform: rotate(2deg); } 50% { transform: rotate(-2deg); } 100% { transform: rotate(2deg); } }
@keyframes scm-sunbeam { 0% { opacity:0.4; transform: skewX(-5deg); } 50% { opacity:0.7; transform: skewX(0deg); } 100% { opacity:0.5; transform: skewX(5deg); } }
@keyframes scm-carriage { 0% { transform: translateY(0) rotate(0deg); } 25% { transform: translateY(-3px) rotate(-1deg); } 50% { transform: translateY(0) rotate(1deg); } 75% { transform: translateY(-2px) rotate(-0.5deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes scm-eva { 0% { transform: translateY(0); } 50% { transform: translateY(-2px); } 100% { transform: translateY(0); } }

.scn-st-clare-marie-spat {
  background:
    linear-gradient(180deg, #f5e6c8 0%, #e8d0a0 50%, #d0b080 100%),
    radial-gradient(ellipse at 70% 40%, #fff0d0 0%, transparent 60%);
}
.scn-st-clare-marie-spat .room {
  position: absolute; inset: 0;
  background: linear-gradient(135deg, #d0b890 0%, #c0a070 50%, #b09060 100%);
}
.scn-st-clare-marie-spat .table {
  position: absolute; bottom: 30%; left: 50%; transform: translateX(-50%);
  width: 180px; height: 20px;
  background: linear-gradient(180deg, #8a6a40 0%, #6a4a2a 100%);
  border-radius: 10px; box-shadow: 0 4px 12px rgba(0,0,0,0.4);
}
.scn-st-clare-marie-spat .shadow {
  position: absolute; bottom: 28%; left: 20%; width: 60%; height: 30px;
  background: linear-gradient(90deg, rgba(0,0,0,0.3) 0%, rgba(0,0,0,0.05) 100%);
  animation: sms-shadow 5s ease-in-out infinite alternate;
}
.scn-st-clare-marie-spat .lamp {
  position: absolute; top: 15%; left: 70%; width: 30px; height: 50px;
  background: radial-gradient(circle at 50% 30%, #ffd080 0%, #b08040 60%, #5a3a1a 100%);
  border-radius: 20% 20% 0 0 / 30% 30% 0 0;
  box-shadow: 0 0 30px 10px rgba(255,208,128,0.5);
  animation: sms-lamp 3s ease-in-out infinite alternate;
}
.scn-st-clare-marie-spat .figure-stclare {
  position: absolute; bottom: 30%; left: 30%; width: 30px; height: 100px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: sms-figure1 2s ease-in-out infinite alternate;
}
.scn-st-clare-marie-spat .figure-marie {
  position: absolute; bottom: 30%; right: 30%; width: 28px; height: 90px;
  background: linear-gradient(180deg, #6a4a3a 0%, #3a2a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: sms-figure2 2.5s ease-in-out infinite alternate;
}
.scn-st-clare-marie-spat .vase {
  position: absolute; bottom: 30%; left: 52%; width: 20px; height: 40px;
  background: linear-gradient(180deg, #a08060 0%, #806040 100%);
  border-radius: 20% 20% 10% 10%;
  animation: sms-vase 4s ease-in-out infinite;
}
@keyframes sms-shadow { 0% { opacity:0.3; } 50% { opacity:0.6; } 100% { opacity:0.4; } }
@keyframes sms-lamp { 0% { opacity:0.7; box-shadow: 0 0 20px 5px rgba(255,208,128,0.3); } 50% { opacity:1; box-shadow: 0 0 40px 15px rgba(255,208,128,0.6); } 100% { opacity:0.8; box-shadow: 0 0 25px 8px rgba(255,208,128,0.4); } }
@keyframes sms-figure1 { 0% { transform: translateX(0) rotate(-3deg); } 50% { transform: translateX(5px) rotate(3deg); } 100% { transform: translateX(0) rotate(-2deg); } }
@keyframes sms-figure2 { 0% { transform: translateX(0) rotate(2deg); } 50% { transform: translateX(-5px) rotate(-2deg); } 100% { transform: translateX(0) rotate(1deg); } }
@keyframes sms-vase { 0% { transform: translateX(0); } 50% { transform: translateX(-2px); } 100% { transform: translateX(0); } }

.scn-the-keys-ceremony {
  background:
    linear-gradient(180deg, #f0e8d8 0%, #e0d0b0 50%, #c8b090 100%),
    radial-gradient(ellipse at 50% 60%, #fff8e0 0%, transparent 60%);
}
.scn-the-keys-ceremony .bg-room {
  position: absolute; inset: 0;
  background: linear-gradient(135deg, #d8c8a8 0%, #c8b898 50%, #b8a888 100%);
}
.scn-the-keys-ceremony .table-keys {
  position: absolute; bottom: 25%; left: 40%; width: 120px; height: 15px;
  background: linear-gradient(180deg, #8a6a40 0%, #6a4a2a 100%);
  border-radius: 8px; box-shadow: 0 4px 10px rgba(0,0,0,0.3);
}
.scn-the-keys-ceremony .hand {
  position: absolute; bottom: 28%; left: 38%; width: 25px; height: 35px;
  background: linear-gradient(180deg, #e0c8a0 0%, #c8a880 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: tk-hand 6s ease-in-out infinite;
}
.scn-the-keys-ceremony .keys {
  position: absolute; bottom: 28%; left: 42%; width: 10px; height: 8px;
  background: #d4b030;
  border-radius: 4px; box-shadow: 0 0 8px rgba(212,176,48,0.5);
  animation: tk-keys 6s ease-in-out infinite;
}
.scn-the-keys-ceremony .light-ray {
  position: absolute; top: 10%; left: 30%; width: 100px; height: 180px;
  background: linear-gradient(180deg, rgba(255,255,200,0.3) 0%, transparent 100%);
  clip-path: polygon(30% 0%, 70% 0%, 100% 100%, 0% 100%);
  animation: tk-ray 15s ease-in-out infinite alternate;
}
.scn-the-keys-ceremony .chair {
  position: absolute; bottom: 30%; right: 30%; width: 40px; height: 60px;
  background: linear-gradient(180deg, #6a4a3a 0%, #3a2a1a 100%);
  border-radius: 10% 10% 20% 20%;
  box-shadow: 0 4px 8px rgba(0,0,0,0.3);
}
@keyframes tk-hand { 0% { transform: translateY(0) rotate(0deg); } 25% { transform: translateY(-3px) rotate(-5deg); } 50% { transform: translateY(0) rotate(0deg); } 75% { transform: translateY(-2px) rotate(3deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes tk-keys { 0% { opacity:0.8; transform: scale(1); } 50% { opacity:1; transform: scale(1.1); } 100% { opacity:0.9; transform: scale(1); } }
@keyframes tk-ray { 0% { opacity:0.3; transform: skewX(-10deg); } 50% { opacity:0.6; transform: skewX(0deg); } 100% { opacity:0.4; transform: skewX(10deg); } }

.scn-maries-complaints {
  background:
    linear-gradient(180deg, #f5e8d0 0%, #e0d0b0 50%, #d0c0a0 100%),
    radial-gradient(ellipse at 50% 50%, #fff0d0 0%, transparent 70%);
}
.scn-maries-complaints .room-warm {
  position: absolute; inset: 0;
  background: linear-gradient(135deg, #d8c0a0 0%, #c8b090 50%, #b8a080 100%);
}
.scn-maries-complaints .divan {
  position: absolute; bottom: 20%; left: 20%; width: 160px; height: 50px;
  background: linear-gradient(180deg, #a08060 0%, #806040 100%);
  border-radius: 30% 30% 20% 20% / 40% 40% 30% 30%;
  box-shadow: 0 8px 16px rgba(0,0,0,0.4);
}
.scn-maries-complaints .marie-reclining {
  position: absolute; bottom: 22%; left: 28%; width: 40px; height: 80px;
  background: linear-gradient(180deg, #6a4a3a 0%, #3a2a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform: rotate(-10deg);
  transform-origin: bottom center;
  animation: mc-marie 5s ease-in-out infinite alternate;
}
.scn-maries-complaints .mammy {
  position: absolute; bottom: 25%; left: 12%; width: 30px; height: 60px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%;
  animation: mc-mammy 4s ease-in-out infinite alternate;
}
.scn-maries-complaints .fan {
  position: absolute; bottom: 35%; left: 30%; width: 20px; height: 10px;
  background: linear-gradient(90deg, #d4b070 0%, #c8a060 50%, #b89050 100%);
  border-radius: 0 0 50% 50% / 0 0 100% 100%;
  transform-origin: bottom center;
  animation: mc-fan 2s ease-in-out infinite alternate;
}
.scn-maries-complaints .window-light {
  position: absolute; top: 10%; right: 10%; width: 80px; height: 120px;
  background: linear-gradient(180deg, rgba(200,230,255,0.4) 0%, transparent 100%);
  border: 2px solid rgba(200,230,255,0.2);
  border-radius: 4px;
  animation: mc-window 12s ease-in-out infinite alternate;
}
@keyframes mc-marie { 0% { transform: rotate(-10deg) translateY(0); } 50% { transform: rotate(-8deg) translateY(2px); } 100% { transform: rotate(-12deg) translateY(-1px); } }
@keyframes mc-mammy { 0% { transform: translateX(0); } 50% { transform: translateX(3px); } 100% { transform: translateX(-2px); } }
@keyframes mc-fan { 0% { transform: rotate(-20deg); } 50% { transform: rotate(20deg); } 100% { transform: rotate(-15deg); } }
@keyframes mc-window { 0% { opacity:0.3; } 50% { opacity:0.6; } 100% { opacity:0.4; } }

.scn-uncle-tom-cabin-interior {
  background: linear-gradient(180deg, #3a1e0e 0%, #5a2a14 30%, #7a3a1a 70%, #4a200e 100%),
              radial-gradient(ellipse at 50% 80%, #b85a2a 0%, transparent 60%);
}
.scn-uncle-tom-cabin-interior .wall {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #2a1408 0%, #3a1e0e 50%, transparent 100%);
}
.scn-uncle-tom-cabin-interior .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #4a2812 0%, #2a1408 100%);
  border-radius: 20% 20% 0 0;
}
.scn-uncle-tom-cabin-interior .fire {
  position: absolute; bottom: 28%; left: 20%; width: 40px; height: 60px;
  background: radial-gradient(circle at 50% 60%, #ff8c30 0%, #c85a20 40%, transparent 70%);
  border-radius: 50% 50% 30% 30%;
  animation: uti-fire 2s ease-in-out infinite alternate;
}
.scn-uncle-tom-cabin-interior .hearth {
  position: absolute; bottom: 24%; left: 16%; width: 80px; height: 30px;
  background: linear-gradient(180deg, #6a3a1a 0%, #4a2812 100%);
  border-radius: 10% 10% 20% 20%;
  box-shadow: inset 0 -6px 10px rgba(0,0,0,.5);
}
.scn-uncle-tom-cabin-interior .table {
  position: absolute; bottom: 20%; left: 55%; width: 80px; height: 40px;
  background: linear-gradient(180deg, #7a4a2a 0%, #5a301a 100%);
  border-radius: 6% 6% 4% 4%;
  transform: rotate(-2deg);
  box-shadow: 0 4px 8px rgba(0,0,0,.4);
}
.scn-uncle-tom-cabin-interior .chair {
  position: absolute; bottom: 14%; left: 60%; width: 30px; height: 50px;
  background: linear-gradient(180deg, #5a301a 0%, #3a1a0a 100%);
  border-radius: 10% 10% 30% 30%;
}
.scn-uncle-tom-cabin-interior .figure {
  position: absolute; bottom: 16%; left: 50%; width: 20px; height: 60px;
  background: linear-gradient(180deg, #2a1408 0%, #1a0a04 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  transform-origin: bottom center;
  animation: uti-figure 6s ease-in-out infinite;
}
.scn-uncle-tom-cabin-interior .window {
  position: absolute; top: 10%; right: 10%; width: 50px; height: 60px;
  background: linear-gradient(180deg, #1a2a3a 0%, #0a101a 100%);
  border: 4px solid #4a2812;
  border-radius: 4%;
  box-shadow: inset 0 0 20px rgba(0,0,0,.6);
}
.scn-uncle-tom-cabin-interior .shadow {
  position: absolute; inset: 0;
  background: radial-gradient(ellipse at 20% 70%, transparent 0%, rgba(0,0,0,.4) 80%);
  pointer-events: none;
}
@keyframes uti-fire {
  0% { transform: scaleY(1) scaleX(1); opacity: .8; filter: blur(2px); }
  50% { transform: scaleY(1.2) scaleX(.95); opacity: 1; filter: blur(3px); }
  100% { transform: scaleY(1.05) scaleX(1.02); opacity: .85; filter: blur(2px); }
}
@keyframes uti-figure {
  0% { transform: translateX(0) rotate(0deg); }
  50% { transform: translateX(4px) rotate(1deg); }
  100% { transform: translateX(-2px) rotate(-0.5deg); }
}

.scn-aunt-chloe-cooking {
  background: linear-gradient(180deg, #2a1408 0%, #4a2812 40%, #6a3a1a 80%, #3a1e0e 100%),
              radial-gradient(ellipse at 30% 60%, #c85a20 0%, transparent 70%);
}
.scn-aunt-chloe-cooking .bg-wall {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #3a1e0e 0%, #2a1408 100%);
}
.scn-aunt-chloe-cooking .stove {
  position: absolute; bottom: 25%; left: 15%; width: 80px; height: 50px;
  background: linear-gradient(180deg, #5a301a 0%, #3a1a0a 100%);
  border-radius: 10% 10% 6% 6%;
  box-shadow: inset 0 6px 10px rgba(0,0,0,.4);
}
.scn-aunt-chloe-cooking .fire-low {
  position: absolute; bottom: 28%; left: 18%; width: 30px; height: 20px;
  background: radial-gradient(circle at 50% 80%, #ff8c30 0%, #c85a20 50%, transparent 80%);
  border-radius: 50%;
  animation: acc-fire 1.5s ease-in-out infinite alternate;
}
.scn-aunt-chloe-cooking .kettle {
  position: absolute; bottom: 32%; left: 22%; width: 30px; height: 25px;
  background: radial-gradient(ellipse at 50% 60%, #6a3a1a 0%, #3a1a0a 100%);
  border-radius: 40% 40% 20% 20%;
  box-shadow: 0 4px 6px rgba(0,0,0,.5);
}
.scn-aunt-chloe-cooking .aunt {
  position: absolute; bottom: 20%; left: 40%; width: 22px; height: 70px;
  background: linear-gradient(180deg, #4a2812 0%, #2a1408 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  animation: acc-aunt 8s ease-in-out infinite;
}
.scn-aunt-chloe-cooking .table-board {
  position: absolute; bottom: 18%; left: 55%; width: 70px; height: 20px;
  background: linear-gradient(180deg, #7a4a2a 0%, #5a301a 100%);
  border-radius: 5%;
  transform: rotate(-1deg);
}
.scn-aunt-chloe-cooking .shelf {
  position: absolute; top: 12%; right: 10%; width: 40px; height: 8px;
  background: linear-gradient(90deg, #5a301a, #3a1a0a);
  border-radius: 2px;
  box-shadow: 0 2px 4px rgba(0,0,0,.3);
}
.scn-aunt-chloe-cooking .glow {
  position: absolute; bottom: 25%; left: 15%; width: 100px; height: 100px;
  background: radial-gradient(circle, rgba(255,140,48,.2) 0%, transparent 70%);
  animation: acc-glow 3s ease-in-out infinite alternate;
}
@keyframes acc-fire {
  0% { transform: scaleY(1); opacity: .8; }
  50% { transform: scaleY(1.3); opacity: 1; }
  100% { transform: scaleY(.9); opacity: .7; }
}
@keyframes acc-aunt {
  0% { transform: translateX(0) rotate(0deg); }
  25% { transform: translateX(5px) rotate(2deg); }
  50% { transform: translateX(0) rotate(0deg); }
  75% { transform: translateX(-3px) rotate(-1deg); }
  100% { transform: translateX(0); }
}
@keyframes acc-glow {
  0% { opacity: .5; transform: scale(1); }
  100% { opacity: .8; transform: scale(1.2); }
}

.scn-meeting-prep {
  background: linear-gradient(180deg, #2a1408 0%, #4a2812 50%, #3a1e0e 100%),
              radial-gradient(ellipse at 40% 50%, #b85a2a 0%, transparent 80%);
}
.scn-meeting-prep .room-bg {
  position: absolute; inset: 0 0 25% 0;
  background: linear-gradient(180deg, #3a1e0e 0%, #2a1408 100%);
}
.scn-meeting-prep .bed-frame {
  position: absolute; bottom: 20%; left: 20%; width: 120px; height: 60px;
  background: linear-gradient(180deg, #5a301a 0%, #3a1a0a 100%);
  border-radius: 4%;
  box-shadow: inset 0 -4px 8px rgba(0,0,0,.5);
}
.scn-meeting-prep .mattress {
  position: absolute; bottom: 24%; left: 22%; width: 100px; height: 30px;
  background: linear-gradient(180deg, #7a4a2a 0%, #5a301a 100%);
  border-radius: 6% 6% 12% 12%;
}
.scn-meeting-prep .aunt-push {
  position: absolute; bottom: 18%; left: 50%; width: 24px; height: 50px;
  background: linear-gradient(180deg, #4a2812 0%, #2a1408 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: mtp-push 4s ease-in-out infinite;
}
.scn-meeting-prep .child-1 {
  position: absolute; bottom: 22%; left: 65%; width: 16px; height: 30px;
  background: linear-gradient(180deg, #5a301a 0%, #3a1a0a 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  animation: mtp-child 3s ease-in-out infinite;
}
.scn-meeting-prep .child-2 {
  position: absolute; bottom: 24%; left: 72%; width: 14px; height: 28px;
  background: linear-gradient(180deg, #5a301a 0%, #3a1a0a 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  animation: mtp-child 3.2s ease-in-out infinite 0.5s;
}
.scn-meeting-prep .lamp {
  position: absolute; bottom: 40%; left: 35%; width: 12px; height: 16px;
  background: radial-gradient(circle at 50% 80%, #ffd080 0%, #c85a20 60%, transparent 100%);
  border-radius: 20% 20% 30% 30%;
  box-shadow: 0 0 24px 8px rgba(255,208,128,.4);
  animation: mtp-lamp 2s ease-in-out infinite alternate;
}
.scn-meeting-prep .shadow-move {
  position: absolute; inset: 0;
  background: radial-gradient(ellipse at 60% 50%, transparent 30%, rgba(0,0,0,.5) 100%);
  pointer-events: none;
}
@keyframes mtp-push {
  0% { transform: translateX(0) rotate(0deg); }
  50% { transform: translateX(8px) rotate(3deg); }
  100% { transform: translateX(-2px) rotate(-1deg); }
}
@keyframes mtp-child {
  0% { transform: translateY(0) rotate(0deg); }
  50% { transform: translateY(-3px) rotate(2deg); }
  100% { transform: translateY(0) rotate(-1deg); }
}
@keyframes mtp-lamp {
  0% { opacity: .7; transform: scaleY(1); }
  100% { opacity: 1; transform: scaleY(1.1); }
}

.scn-meeting-singing {
  background: linear-gradient(180deg, #2a1408 0%, #4a2812 40%, #6a3a1a 80%, #3a1e0e 100%),
              radial-gradient(ellipse at 50% 60%, #d86a20 0%, transparent 70%);
}
.scn-meeting-singing .wall-music {
  position: absolute; inset: 0 0 20% 0;
  background: linear-gradient(180deg, #3a1e0e 0%, #2a1408 100%);
}
.scn-meeting-singing .floor-music {
  position: absolute; bottom: 0; left: 0; right: 0; height: 20%;
  background: linear-gradient(180deg, #4a2812 0%, #2a1408 100%);
  border-radius: 30% 30% 0 0;
}
.scn-meeting-singing .fire-music {
  position: absolute; bottom: 22%; left: 10%; width: 50px; height: 70px;
  background: radial-gradient(circle at 50% 70%, #ff8c30 0%, #c85a20 40%, transparent 75%);
  border-radius: 50% 50% 30% 30%;
  animation: mts-fire 2.5s ease-in-out infinite alternate;
}
.scn-meeting-singing .crowd-left {
  position: absolute; bottom: 15%; left: 25%; width: 60px; height: 100px;
  background: linear-gradient(180deg, #4a2812 0%, #2a1408 100%);
  border-radius: 20% 20% 10% 10% / 40% 40% 20% 20%;
  opacity: .7;
  animation: mts-crowd 5s ease-in-out infinite;
}
.scn-meeting-singing .crowd-right {
  position: absolute; bottom: 15%; right: 20%; width: 70px; height: 110px;
  background: linear-gradient(180deg, #4a2812 0%, #2a1408 100%);
  border-radius: 20% 20% 10% 10% / 40% 40% 20% 20%;
  opacity: .6;
  animation: mts-crowd 5s ease-in-out infinite 1s;
}
.scn-meeting-singing .singer {
  position: absolute; bottom: 20%; left: 48%; width: 24px; height: 80px;
  background: linear-gradient(180deg, #5a301a 0%, #3a1a0a 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  transform-origin: bottom center;
  animation: mts-singer 4s ease-in-out infinite;
}
.scn-meeting-singing .glow-music {
  position: absolute; bottom: 20%; left: 35%; width: 200px; height: 150px;
  background: radial-gradient(ellipse, rgba(255,140,48,.15) 0%, transparent 70%);
  animation: mts-glow 6s ease-in-out infinite alternate;
}
.scn-meeting-singing .note-shape {
  position: absolute; top: 10%; left: 60%; width: 10px; height: 14px;
  background: radial-gradient(circle at 50% 30%, #8a4a2a 0%, transparent 100%);
  border-radius: 50% 50% 30% 30%;
  box-shadow: 0 0 6px 2px rgba(0,0,0,.3);
  animation: mts-note 8s linear infinite;
}
.scn-meeting-singing .window-night {
  position: absolute; top: 8%; right: 12%; width: 40px; height: 50px;
  background: linear-gradient(180deg, #1a2a3a 0%, #0a101a 100%);
  border: 3px solid #4a2812;
  border-radius: 4%;
  box-shadow: inset 0 0 10px rgba(0,0,0,.5);
}
@keyframes mts-fire {
  0% { transform: scaleY(1) scaleX(1); opacity: .8; }
  50% { transform: scaleY(1.15) scaleX(.95); opacity: 1; }
  100% { transform: scaleY(1.05) scaleX(1.02); opacity: .85; }
}
@keyframes mts-crowd {
  0% { transform: translateY(0); }
  50% { transform: translateY(-2px); }
  100% { transform: translateY(1px); }
}
@keyframes mts-singer {
  0% { transform: translateX(0) rotate(0deg); }
  25% { transform: translateX(3px) rotate(1deg); }
  50% { transform: translateX(-1px) rotate(-0.5deg); }
  75% { transform: translateX(2px) rotate(1.5deg); }
  100% { transform: translateX(0); }
}
@keyframes mts-glow {
  0% { opacity: .3; transform: scale(1); }
  100% { opacity: .6; transform: scale(1.1); }
}
@keyframes mts-note {
  0% { transform: translateY(0) rotate(0deg); opacity: 0; }
  20% { opacity: .6; }
  80% { opacity: .6; }
  100% { transform: translateY(-40px) rotate(10deg); opacity: 0; }
}

.scn-eliza-overhears {
  background: linear-gradient(180deg, #2a1f14 0%, #1a120a 40%), radial-gradient(ellipse at 50% 80%, #3a2a1a 0%, transparent 60%);
}
.scn-eliza-overhears .door {
  position: absolute; inset: 10% 10% 10% auto; width: 30%; height: 80%;
  background: linear-gradient(90deg, #4a3a2a 0%, #3a2a1a 100%);
  border-radius: 2% 0 0 2%; box-shadow: -8px 0 20px rgba(0,0,0,.6);
}
.scn-eliza-overhears .door-crack {
  position: absolute; inset: 10% auto 10% 40%; width: 2px; height: 80%;
  background: radial-gradient(ellipse at center, #d4a050 0%, #8a6030 70%, transparent 100%);
  filter: blur(1px); animation: eo-crack 2s ease-in-out infinite alternate;
}
.scn-eliza-overhears .figure-eliza {
  position: absolute; bottom: 10%; left: 15%; width: 20px; height: 60px;
  background: linear-gradient(180deg, #1a1210 0%, #0e0a08 100%);
  border-radius: 30% 30% 40% 40% / 50% 50% 30% 30%;
  transform-origin: bottom center; animation: eo-figure 4s ease-in-out infinite;
}
.scn-eliza-overhears .wall-shadow {
  position: absolute; inset: 0 0 0 0; background: radial-gradient(ellipse at 30% 50%, transparent 30%, rgba(0,0,0,.3) 60%);
}
.scn-eliza-overhears .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 10%;
  background: linear-gradient(0deg, #2a1f14 0%, #1a120a 100%);
  box-shadow: inset 0 4px 8px rgba(0,0,0,.3);
}
.scn-eliza-overhears .candle {
  position: absolute; bottom: 12%; left: 38%; width: 6px; height: 12px;
  background: linear-gradient(0deg, #8a5a30 0%, #5a3a1a 100%);
  border-radius: 2px; box-shadow: 0 0 12px 4px #d4a050, 0 0 24px 8px rgba(212,160,80,.4);
  animation: eo-candle 3s ease-in-out infinite alternate;
}
@keyframes eo-crack {
  0% { opacity: .6; transform: scaleX(1); }
  50% { opacity: 1; transform: scaleX(1.2); }
  100% { opacity: .7; transform: scaleX(.9); }
}
@keyframes eo-figure {
  0% { transform: translateX(0) rotate(-2deg); }
  50% { transform: translateX(2px) rotate(1deg); }
  100% { transform: translateX(0) rotate(0); }
}
@keyframes eo-candle {
  0% { box-shadow: 0 0 10px 3px #d4a050, 0 0 20px 6px rgba(212,160,80,.3); }
  50% { box-shadow: 0 0 14px 5px #e0b060, 0 0 28px 10px rgba(224,176,96,.4); }
  100% { box-shadow: 0 0 8px 2px #c09040, 0 0 16px 4px rgba(192,144,64,.3); }
}

.scn-eliza-fears-harry {
  background: linear-gradient(180deg, #1e1814 0%, #120e0a 40%, #0a0602 100%), radial-gradient(ellipse at 50% 30%, #3a2820 0%, transparent 70%);
}
.scn-eliza-fears-harry .chair-eliza {
  position: absolute; bottom: 8%; left: 20%; width: 40px; height: 50px;
  background: linear-gradient(180deg, #3a2a20 0%, #1f1610 100%);
  border-radius: 30% 30% 10% 10% / 40% 40% 20% 20%;
  box-shadow: 4px 0 12px rgba(0,0,0,.5);
  transform-origin: bottom center; animation: ef-chair 5s ease-in-out infinite;
}
.scn-eliza-fears-harry .mistress-standing {
  position: absolute; bottom: 8%; left: 55%; width: 25px; height: 70px;
  background: linear-gradient(180deg, #2a2220 0%, #1a1210 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  box-shadow: -2px 0 10px rgba(0,0,0,.4);
  animation: ef-mistress 6s ease-in-out infinite alternate;
}
.scn-eliza-fears-harry .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 8%;
  background: linear-gradient(0deg, #1a1410 0%, #0e0a06 100%);
}
.scn-eliza-fears-harry .wall-bg {
  position: absolute; inset: 0 0 8% 0;
  background: radial-gradient(ellipse at 40% 20%, #4a3528 0%, #1a120c 100%);
  opacity: .5;
}
.scn-eliza-fears-harry .hearth-glow {
  position: absolute; bottom: 8%; left: 70%; width: 60px; height: 40px;
  background: radial-gradient(ellipse at 50% 100%, #c06030 0%, #802010 40%, transparent 70%);
  border-radius: 50%; filter: blur(6px);
  animation: ef-hearth 4s ease-in-out infinite alternate;
}
.scn-eliza-fears-harry .harry-child {
  position: absolute; bottom: 12%; left: 35%; width: 14px; height: 24px;
  background: linear-gradient(180deg, #1a120e 0%, #0e0a08 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%;
  animation: ef-child 3s ease-in-out infinite;
}
@keyframes ef-chair {
  0% { transform: translateY(0) rotate(0); }
  50% { transform: translateY(-2px) rotate(1deg); }
  100% { transform: translateY(0) rotate(0); }
}
@keyframes ef-mistress {
  0% { transform: translateX(0) rotate(0); }
  50% { transform: translateX(2px) rotate(-1deg); }
  100% { transform: translateX(0) rotate(0); }
}
@keyframes ef-hearth {
  0% { opacity: .6; transform: scale(1); }
  50% { opacity: 1; transform: scale(1.2); }
  100% { opacity: .7; transform: scale(.9); }
}
@keyframes ef-child {
  0% { transform: translateY(0) rotate(-2deg); }
  50% { transform: translateY(-1px) rotate(1deg); }
  100% { transform: translateY(0) rotate(0); }
}

.scn-mrs-shelby-reassures-eliza {
  background: linear-gradient(180deg, #2a2420 0%, #1a1410 40%, #0e0a08 100%), radial-gradient(ellipse at 60% 30%, #4a3a30 0%, transparent 70%);
}
.scn-mrs-shelby-reassures-eliza .mistress-hand {
  position: absolute; bottom: 20%; left: 40%; width: 30px; height: 40px;
  background: linear-gradient(180deg, #3a2e2a 0%, #1f1612 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%;
  clip-path: polygon(0 20%, 100% 0, 100% 80%, 0 100%);
  transform-origin: bottom left; animation: ms-hand 8s ease-in-out infinite;
}
.scn-mrs-shelby-reassures-eliza .eliza-seated {
  position: absolute; bottom: 8%; left: 15%; width: 28px; height: 50px;
  background: linear-gradient(180deg, #1e1816 0%, #120e0c 100%);
  border-radius: 30% 30% 40% 40% / 50% 50% 30% 30%;
  box-shadow: 2px 0 8px rgba(0,0,0,.3);
  animation: ms-eliza 6s ease-in-out infinite;
}
.scn-mrs-shelby-reassures-eliza .armchair {
  position: absolute; bottom: 8%; left: 12%; width: 44px; height: 54px;
  background: linear-gradient(180deg, #4a3a32 0%, #2a1e1a 100%);
  border-radius: 40% 40% 20% 20% / 40% 40% 30% 30%;
  box-shadow: inset 0 0 12px rgba(0,0,0,.4);
}
.scn-mrs-shelby-reassures-eliza .lamp-soft {
  position: absolute; bottom: 30%; left: 55%; width: 8px; height: 14px;
  background: linear-gradient(0deg, #8a6a4a 0%, #4a2e1a 100%);
  border-radius: 2px; box-shadow: 0 0 20px 6px #c09060;
  animation: ms-lamp 7s ease-in-out infinite alternate;
}
.scn-mrs-shelby-reassures-eliza .wall-panel {
  position: absolute; inset: 0 0 8% 0;
  background: linear-gradient(90deg, #2a221e 0%, #1e1612 50%, #2a221e 100%);
  opacity: .6;
}
.scn-mrs-shelby-reassures-eliza .shadow-box {
  position: absolute; bottom: 8%; left: 30%; width: 20px; height: 30px;
  background: radial-gradient(ellipse, rgba(0,0,0,.3) 0%, transparent 70%);
  filter: blur(4px);
  animation: ms-shadow 10s ease-in-out infinite;
}
@keyframes ms-hand {
  0% { transform: translateY(0) rotate(0); }
  50% { transform: translateY(-3px) rotate(3deg); }
  100% { transform: translateY(0) rotate(0); }
}
@keyframes ms-eliza {
  0% { transform: translateY(0); }
  50% { transform: translateY(-2px); }
  100% { transform: translateY(0); }
}
@keyframes ms-lamp {
  0% { box-shadow: 0 0 16px 4px #c09060; opacity: .8; }
  50% { box-shadow: 0 0 24px 8px #d4a070; opacity: 1; }
  100% { box-shadow: 0 0 18px 5px #c09060; opacity: .9; }
}
@keyframes ms-shadow {
  0% { transform: scale(1); opacity: .5; }
  50% { transform: scale(1.1); opacity: .7; }
  100% { transform: scale(1); opacity: .5; }
}

.scn-shelby-dreads-telling-wife {
  background: linear-gradient(180deg, #1e1612 0%, #120a08 40%, #080402 100%), radial-gradient(ellipse at 30% 40%, #2a1e18 0%, transparent 70%);
}
.scn-shelby-dreads-telling-wife .desk {
  position: absolute; bottom: 8%; left: 25%; width: 50px; height: 30px;
  background: linear-gradient(180deg, #3a2a22 0%, #1f1410 100%);
  border-radius: 4% 4% 2% 2%; box-shadow: 0 4px 10px rgba(0,0,0,.5);
  transform: perspective(200px) rotateX(10deg);
}
.scn-shelby-dreads-telling-wife .chair-shelby {
  position: absolute; bottom: 8%; left: 20%; width: 30px; height: 60px;
  background: linear-gradient(180deg, #2a1e1a 0%, #120a08 100%);
  border-radius: 30% 30% 20% 20% / 50% 50% 30% 30%;
  transform-origin: bottom center; animation: sd-chair 4s ease-in-out infinite;
}
.scn-shelby-dreads-telling-wife .door-ajar {
  position: absolute; inset: 10% auto 10% 15%; width: 20%; height: 80%;
  background: linear-gradient(90deg, #4a3a30 0%, #2a1e18 100%);
  border-radius: 0 2% 2% 0; box-shadow: 4px 0 20px rgba(0,0,0,.5);
  animation: sd-door 8s ease-in-out infinite alternate;
}
.scn-shelby-dreads-telling-wife .shadow-wife {
  position: absolute; bottom: 8%; left: 40%; width: 22px; height: 70px;
  background: linear-gradient(180deg, #0e0a08 0%, #060402 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  opacity: .6; filter: blur(1px);
  animation: sd-shadow 6s ease-in-out infinite alternate;
}
.scn-shelby-dreads-telling-wife .wall-dark {
  position: absolute; inset: 0 0 8% 0;
  background: radial-gradient(ellipse at 30% 20%, #2a1e18 0%, #0a0604 100%);
}
.scn-shelby-dreads-telling-wife .lamp-flicker {
  position: absolute; bottom: 30%; left: 50%; width: 6px; height: 18px;
  background: linear-gradient(0deg, #6a4a2e 0%, #3a2212 100%);
  border-radius: 2px; box-shadow: 0 0 14px 4px #a07040, 0 0 28px 8px rgba(160,112,64,.4);
  animation: sd-lamp 2s ease-in-out infinite alternate;
}
@keyframes sd-chair {
  0% { transform: translateY(0) rotate(0); }
  50% { transform: translateY(-2px) rotate(1deg); }
  100% { transform: translateY(0) rotate(0); }
}
@keyframes sd-door {
  0% { transform: translateX(0); opacity: .9; }
  50% { transform: translateX(3px); opacity: 1; }
  100% { transform: translateX(0); opacity: .9; }
}
@keyframes sd-shadow {
  0% { transform: translateY(0) scaleX(1); opacity: .6; }
  50% { transform: translateY(-2px) scaleX(1.1); opacity: .8; }
  100% { transform: translateY(0) scaleX(1); opacity: .6; }
}
@keyframes sd-lamp {
  0% { box-shadow: 0 0 10px 3px #a07040; transform: rotate(-2deg); }
  50% { box-shadow: 0 0 16px 5px #b08050; transform: rotate(2deg); }
  100% { box-shadow: 0 0 12px 4px #a07040; transform: rotate(0); }
}

.scn-st-clare-marie-bicker {
  background: linear-gradient(180deg, #f5e6d0 0%, #d4b896 50%, #b89a7a 100%),
              radial-gradient(ellipse at 30% 50%, #fff8e7 0%, transparent 60%);
}
.scn-st-clare-marie-bicker .wall-back {
  position: absolute; inset: 0 0 35% 0;
  background: linear-gradient(135deg, #e8d4b8 0%, #d4b896 80%);
}
.scn-st-clare-marie-bicker .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 35%;
  background: linear-gradient(0deg, #8b6f4e 0%, #a8886a 100%);
}
.scn-st-clare-marie-bicker .window-left {
  position: absolute; top: 10%; left: 10%; width: 18%; height: 40%;
  background: linear-gradient(135deg, #b0d4e8 0%, #8cb4d0 100%);
  border: 4px solid #6a4a2e; border-radius: 4px;
  box-shadow: inset 0 0 20px rgba(255,255,200,0.3);
}
.scn-st-clare-marie-bicker .window-right {
  position: absolute; top: 10%; right: 10%; width: 18%; height: 40%;
  background: linear-gradient(135deg, #b0d4e8 0%, #8cb4d0 100%);
  border: 4px solid #6a4a2e; border-radius: 4px;
  box-shadow: inset 0 0 20px rgba(255,255,200,0.3);
}
.scn-st-clare-marie-bicker .figure-left {
  position: absolute; bottom: 35%; left: 30%; width: 22px; height: 80px;
  background: linear-gradient(180deg, #3a2a1a 0%, #2a1a0a 100%);
  border-radius: 50% 50% 45% 45% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: scm-wag-left 2s ease-in-out infinite alternate;
}
.scn-st-clare-marie-bicker .figure-right {
  position: absolute; bottom: 35%; right: 30%; width: 24px; height: 82px;
  background: linear-gradient(180deg, #4a3a2a 0%, #3a2a1a 100%);
  border-radius: 50% 50% 45% 45% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: scm-wag-right 2.3s ease-in-out infinite alternate;
}
.scn-st-clare-marie-bicker .lamp-swing {
  position: absolute; top: 8%; left: 50%; width: 8px; height: 8px;
  background: radial-gradient(circle, #fff0c0 0%, #e0b060 100%);
  border-radius: 50%; box-shadow: 0 0 18px 6px #f0d090, 0 0 36px 12px rgba(240,208,144,0.5);
  transform-origin: top center;
  animation: scm-lamp 3s ease-in-out infinite;
}
.scn-st-clare-marie-bicker .shadow-bicker {
  position: absolute; bottom: 35%; left: 25%; right: 25%; height: 40px;
  background: radial-gradient(ellipse at 50% 100%, rgba(0,0,0,0.15) 0%, transparent 70%);
  animation: scm-shadow 2s ease-in-out infinite alternate;
}
.scn-st-clare-marie-bicker .dust-mote {
  position: absolute; top: 20%; left: 40%; width: 6px; height: 6px;
  background: rgba(255,255,220,0.6); border-radius: 50%;
  filter: blur(2px); animation: scm-dust 8s linear infinite;
}
@keyframes scm-wag-left {
  0% { transform: rotate(-3deg) translateX(0); }
  50% { transform: rotate(3deg) translateX(4px); }
  100% { transform: rotate(-2deg) translateX(-2px); }
}
@keyframes scm-wag-right {
  0% { transform: rotate(2deg) translateX(0); }
  50% { transform: rotate(-4deg) translateX(-5px); }
  100% { transform: rotate(3deg) translateX(3px); }
}
@keyframes scm-lamp {
  0% { transform: rotate(-8deg); }
  50% { transform: rotate(8deg); }
  100% { transform: rotate(-6deg); }
}
@keyframes scm-shadow {
  0% { opacity: 0.1; transform: scaleX(1); }
  100% { opacity: 0.3; transform: scaleX(1.1); }
}
@keyframes scm-dust {
  0% { transform: translate(0, 0) scale(1); opacity: 0.6; }
  50% { transform: translate(20px, -15px) scale(1.5); opacity: 0.3; }
  100% { transform: translate(40px, -30px) scale(1); opacity: 0; }
}

.scn-tom-contentment {
  background: linear-gradient(180deg, #87ceeb 0%, #f0e68c 60%, #d2b48c 100%),
              radial-gradient(ellipse at 70% 30%, #fff5d6 0%, transparent 50%);
}
.scn-tom-contentment .sky-sunny {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(180deg, #b0d4f0 0%, #e0f0ff 100%);
  animation: tc-sky 15s ease-in-out infinite alternate;
}
.scn-tom-contentment .field {
  position: absolute; bottom: 0; left: 0; right: 0; height: 55%;
  background: linear-gradient(180deg, #7aaa5a 0%, #5a8a3a 60%, #4a702a 100%);
  border-radius: 40% 30% 0 0 / 60% 40% 0 0;
  box-shadow: inset 0 8px 20px rgba(0,40,0,0.3);
}
.scn-tom-contentment .tree-shade {
  position: absolute; bottom: 30%; left: 60%; width: 120px; height: 160px;
  background: linear-gradient(180deg, #3a6a2a 0%, #2a5a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform: scaleX(0.8);
  box-shadow: 0 0 30px rgba(0,20,0,0.4);
  animation: tc-tree 20s ease-in-out infinite;
}
.scn-tom-contentment .eva-sitting {
  position: absolute; bottom: 25%; left: 35%; width: 20px; height: 50px;
  background: linear-gradient(180deg, #f0d8b0 0%, #d4b080 100%);
  border-radius: 50% 50% 45% 45% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: tc-eva 4s ease-in-out infinite;
}
.scn-tom-contentment .tom-seated {
  position: absolute; bottom: 22%; left: 45%; width: 28px; height: 65px;
  background: linear-gradient(180deg, #3a2a1a 0%, #2a1a0a 100%);
  border-radius: 45% 45% 40% 40% / 55% 55% 40% 40%;
  transform-origin: bottom center;
  animation: tc-tom 5s ease-in-out infinite;
}
.scn-tom-contentment .hat {
  position: absolute; bottom: 35%; left: 48%; width: 20px; height: 8px;
  background: #2a1a0a; border-radius: 50% 50% 30% 30%;
  transform: rotate(-5deg);
  animation: tc-hat 6s ease-in-out infinite;
}
.scn-tom-contentment .butterfly {
  position: absolute; top: 30%; left: 20%; width: 12px; height: 8px;
  background: radial-gradient(circle, #ffb347 0%, #ff8c00 100%);
  border-radius: 50% 50% 0 0;
  animation: tc-butterfly 7s linear infinite;
}
.scn-tom-contentment .grass-blade {
  position: absolute; bottom: 12%; left: 30%; width: 2px; height: 30px;
  background: #5a8a3a; border-radius: 0 0 50% 50%;
  transform-origin: bottom;
  animation: tc-grass 4s ease-in-out infinite;
}
@keyframes tc-sky {
  0% { opacity: 0.8; }
  50% { opacity: 1; }
  100% { opacity: 0.9; }
}
@keyframes tc-tree {
  0% { transform: scaleX(0.8) translateY(0); }
  50% { transform: scaleX(0.85) translateY(-3px); }
  100% { transform: scaleX(0.8) translateY(0); }
}
@keyframes tc-eva {
  0%,100% { transform: translateY(0) rotate(-2deg); }
  50% { transform: translateY(-2px) rotate(2deg); }
}
@keyframes tc-tom {
  0%,100% { transform: rotate(0) translateY(0); }
  50% { transform: rotate(1deg) translateY(-1px); }
}
@keyframes tc-hat {
  0%,100% { transform: rotate(-5deg) translate(0, 0); }
  50% { transform: rotate(-3deg) translate(2px, -1px); }
}
@keyframes tc-butterfly {
  0% { transform: translate(0, 0) rotate(0deg); }
  25% { transform: translate(30px, -20px) rotate(10deg); }
  50% { transform: translate(60px, -10px) rotate(0deg); }
  75% { transform: translate(90px, -30px) rotate(-5deg); }
  100% { transform: translate(120px, 0) rotate(0deg); opacity: 0; }
}
@keyframes tc-grass {
  0%,100% { transform: rotate(0); }
  50% { transform: rotate(8deg); }
}

.scn-sunday-morning {
  background: linear-gradient(180deg, #fff8e7 0%, #f0e0c0 40%, #d4b896 100%),
              radial-gradient(ellipse at 50% 0%, #ffffff 0%, transparent 60%);
}
.scn-sunday-morning .wall-light {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #f5e6d0 0%, #e8d4b8 100%);
}
.scn-sunday-morning .pew-row {
  position: absolute; bottom: 30%; left: 10%; right: 10%; height: 10px;
  background: #8b6f4e; border-radius: 2px;
  animation: sm-pew 6s ease-in-out infinite;
}
.scn-sunday-morning .window-arch {
  position: absolute; top: 10%; left: 30%; width: 40%; height: 50%;
  background: radial-gradient(ellipse at 50% 100%, #c5d8e8 0%, #a0b8d0 100%);
  border-radius: 50% 50% 0 0;
  border: 6px solid #6a4a2e;
  box-shadow: inset 0 0 40px rgba(255,255,200,0.5);
}
.scn-sunday-morning .sunbeam {
  position: absolute; top: 15%; left: 35%; width: 30%; height: 80%;
  background: linear-gradient(180deg, rgba(255,255,200,0.4) 0%, rgba(255,255,200,0) 100%);
  clip-path: polygon(20% 0%, 80% 0%, 100% 100%, 0% 100%);
  animation: sm-sunbeam 12s ease-in-out infinite alternate;
}
.scn-sunday-morning .hymn-book {
  position: absolute; bottom: 20%; left: 25%; width: 30px; height: 20px;
  background: #3a2a1a; border-radius: 2px;
  box-shadow: 2px 2px 0 #2a1a0a;
  animation: sm-hymn 8s ease-in-out infinite;
}
.scn-sunday-morning .figure-praying {
  position: absolute; bottom: 15%; left: 48%; width: 18px; height: 60px;
  background: linear-gradient(180deg, #2a1a0a 0%, #1a0a00 100%);
  border-radius: 50% 50% 45% 45% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: sm-pray 5s ease-in-out infinite;
}
.scn-sunday-morning .candle-flicker {
  position: absolute; bottom: 8%; left: 20%; width: 6px; height: 6px;
  background: radial-gradient(circle, #ffd080 0%, #f0a040 100%);
  border-radius: 50%;
  box-shadow: 0 0 12px 4px rgba(255,208,128,0.6);
  animation: sm-candle 2s ease-in-out infinite alternate;
}
@keyframes sm-pew {
  0%,100% { transform: translateY(0); }
  50% { transform: translateY(-1px); }
}
@keyframes sm-sunbeam {
  0% { opacity: 0.3; transform: scaleY(0.95); }
  50% { opacity: 0.7; transform: scaleY(1); }
  100% { opacity: 0.4; transform: scaleY(0.98); }
}
@keyframes sm-hymn {
  0%,100% { transform: rotate(-2deg) translate(0,0); }
  50% { transform: rotate(2deg) translate(2px,-1px); }
}
@keyframes sm-pray {
  0%,100% { transform: translateY(0) rotate(-1deg); }
  50% { transform: translateY(-3px) rotate(1deg); }
}
@keyframes sm-candle {
  0% { opacity: 0.8; transform: scale(0.9); }
  100% { opacity: 1; transform: scale(1.1); }
}

.scn-quaker-house-afternoon {
  background: linear-gradient(180deg, #2a1a0a 0%, #3a2a1a 60%, #4a3a2a 100%),
              radial-gradient(ellipse at 50% 100%, #8b4513 0%, transparent 70%);
}
.scn-quaker-house-afternoon .room-dark {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, #1a0a00 0%, #2a1a0a 80%);
}
.scn-quaker-house-afternoon .hearth-glow {
  position: absolute; bottom: 0; left: 20%; right: 20%; height: 40%;
  background: radial-gradient(ellipse at 50% 100%, #ff8c00 0%, #d06020 40%, #4a2a0a 80%);
  opacity: 0.6;
  animation: qh-hearth 4s ease-in-out infinite alternate;
}
.scn-quaker-house-afternoon .mantel {
  position: absolute; bottom: 40%; left: 10%; right: 10%; height: 8px;
  background: linear-gradient(90deg, #5a3a1a, #7a4a2a, #5a3a1a);
  border-radius: 2px;
}
.scn-quaker-house-afternoon .fire-basket {
  position: absolute; bottom: 8%; left: 35%; width: 30%; height: 20%;
  background: linear-gradient(180deg, #2a1a0a 0%, #1a0a00 100%);
  border-radius: 20% 20% 0 0;
  border: 4px solid #4a2a0a;
}
.scn-quaker-house-afternoon .george-kneeling {
  position: absolute; bottom: 20%; left: 15%; width: 24px; height: 65px;
  background: linear-gradient(180deg, #3a2a1a 0%, #2a1a0a 100%);
  border-radius: 45% 45% 40% 40% / 55% 55% 40% 40%;
  transform-origin: bottom center;
  animation: qh-george 6s ease-in-out infinite;
}
.scn-quaker-house-afternoon .eliza-sitting {
  position: absolute; bottom: 18%; left: 50%; width: 22px; height: 55px;
  background: linear-gradient(180deg, #4a3a2a 0%, #3a2a1a 100%);
  border-radius: 50% 50% 45% 45% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: qh-eliza 7s ease-in-out infinite;
}
.scn-quaker-house-afternoon .child-lap {
  position: absolute; bottom: 25%; left: 55%; width: 14px; height: 20px;
  background: linear-gradient(180deg, #5a4a3a 0%, #4a3a2a 100%);
  border-radius: 50% 50% 40% 40% / 40% 40% 30% 30%;
  animation: qh-child 8s ease-in-out infinite;
}
.scn-quaker-house-afternoon .shadow-dance {
  position: absolute; bottom: 20%; left: 10%; right: 10%; height: 40%;
  background: radial-gradient(ellipse at 50% 0%, rgba(0,0,0,0.3) 0%, transparent 80%);
  animation: qh-shadow 5s ease-in-out infinite alternate;
}
.scn-quaker-house-afternoon .spark-rise {
  position: absolute; bottom: 25%; left: 40%; width: 4px; height: 4px;
  background: radial-gradient(circle, #ffa040 0%, #ff6600 100%);
  border-radius: 50%;
  animation: qh-spark 3s ease-in-out infinite;
}
@keyframes qh-hearth {
  0% { opacity: 0.4; transform: scaleY(0.95); }
  50% { opacity: 0.7; transform: scaleY(1.05); }
  100% { opacity: 0.5; transform: scaleY(1); }
}
@keyframes qh-george {
  0%,100% { transform: rotate(-2deg) translateY(0); }
  50% { transform: rotate(2deg) translateY(-2px); }
}
@keyframes qh-eliza {
  0%,100% { transform: rotate(0) translate(0,0); }
  50% { transform: rotate(3deg) translate(2px,-1px); }
}
@keyframes qh-child {
  0%,100% { transform: translate(0,0) rotate(0); }
  50% { transform: translate(2px,-1px) rotate(-2deg); }
}
@keyframes qh-shadow {
  0% { opacity: 0.2; transform: scaleY(0.9); }
  100% { opacity: 0.4; transform: scaleY(1.1); }
}
@keyframes qh-spark {
  0% { transform: translateY(0) scale(1); opacity: 1; }
  50% { transform: translateY(-30px) scale(2); opacity: 0.8; }
  100% { transform: translateY(-60px) scale(0.5); opacity: 0; }
}

.scn-kentucky-back-home { background: linear-gradient(135deg, #f5e6c8 0%, #c8a882 50%, #a67c52 100%), radial-gradient(ellipse at 20% 80%, #d4b896 0%, transparent 70%); }
.scn-kentucky-back-home .bg-wall { position:absolute; inset:0; background: linear-gradient(180deg, #e8d5b0 0%, #c8a070 100%); }
.scn-kentucky-back-home .window-out { position:absolute; top:12%; left:12%; width:30%; height:40%; background: linear-gradient(180deg, #87ceeb 0%, #f0e68c 100%); border-radius:4%; box-shadow: inset 0 0 20px rgba(255,255,200,0.5), 0 8px 12px rgba(0,0,0,0.3); animation: ky-window 6s ease-in-out infinite alternate; }
.scn-kentucky-back-home .window-sash { position:absolute; top:12%; left:12%; width:30%; height:40%; border: 6px solid #5e3a20; border-radius:4%; box-sizing:border-box; background:transparent; }
.scn-kentucky-back-home .column-left { position:absolute; top:0; left:8%; width:4%; height:100%; background: linear-gradient(180deg, #d4b896 0%, #b89670 100%); box-shadow: 2px 0 6px rgba(0,0,0,0.2); }
.scn-kentucky-back-home .column-right { position:absolute; top:0; right:8%; width:4%; height:100%; background: linear-gradient(180deg, #d4b896 0%, #b89670 100%); box-shadow: -2px 0 6px rgba(0,0,0,0.2); }
.scn-kentucky-back-home .figure-mr { position:absolute; bottom:18%; left:38%; width:24px; height:60px; background: linear-gradient(180deg, #2a1e14 0%, #1a100a 100%); border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%; transform-origin: bottom center; animation: ky-mr 4s ease-in-out infinite; }
.scn-kentucky-back-home .figure-mrs { position:absolute; bottom:18%; right:38%; width:22px; height:56px; background: linear-gradient(180deg, #4a3a2a 0%, #2a1e14 100%); border-radius: 45% 45% 35% 35% / 55% 55% 35% 35%; transform-origin: bottom center; animation: ky-mrs 3s ease-in-out infinite; }
.scn-kentucky-back-home .cigar-smoke { position:absolute; bottom:38%; left:42%; width:8px; height:8px; background: radial-gradient(circle, rgba(255,255,255,0.6) 0%, transparent 70%); border-radius:50%; filter: blur(4px); animation: ky-smoke 8s ease-out infinite; }
@keyframes ky-window { 0% { opacity:.9; transform:scaleY(1); } 50% { opacity:1; transform:scaleY(1.02); } 100% { opacity:.95; transform:scaleY(1); } }
@keyframes ky-mr { 0% { transform: translate(0,0) rotate(0deg); } 25% { transform: translate(2px,-1px) rotate(2deg); } 50% { transform: translate(-1px,0) rotate(-1deg); } 75% { transform: translate(1px,-0.5px) rotate(1deg); } 100% { transform: translate(0,0) rotate(0deg); } }
@keyframes ky-mrs { 0% { transform: translate(0,0) rotate(0deg); } 30% { transform: translate(-1px,0) rotate(-1deg); } 60% { transform: translate(1px,-0.5px) rotate(1deg); } 100% { transform: translate(0,0) rotate(0deg); } }
@keyframes ky-smoke { 0% { transform: translateY(0) scale(0.5); opacity:.8; } 50% { transform: translateY(-20px) scale(2); opacity:.4; } 100% { transform: translateY(-40px) scale(3); opacity:0; } }

.scn-chloe-plans-hire { background: linear-gradient(180deg, #d9b382 0%, #b5875a 40%, #8b6436 100%), radial-gradient(ellipse at 50% 30%, #f0d4a0 0%, transparent 60%); }
.scn-chloe-plans-hire .bg-room { position:absolute; inset:0; background: linear-gradient(180deg, #cba87a 0%, #a0784e 100%); }
.scn-chloe-plans-hire .hearth { position:absolute; bottom:12%; left:8%; width:30%; height:50%; background: linear-gradient(180deg, #5c3a20 0%, #3a2010 100%); border-radius: 20% 20% 40% 40%; box-shadow: inset 0 -20px 30px rgba(0,0,0,0.6); }
.scn-chloe-plans-hire .fire { position:absolute; bottom:22%; left:15%; width:16%; height:18%; background: radial-gradient(ellipse at 50% 100%, #ff8c00 0%, #ff4500 40%, transparent 70%); border-radius:50%; filter: blur(10px); animation: ch-fire 5s ease-in-out infinite alternate; }
.scn-chloe-plans-hire .table { position:absolute; bottom:20%; right:20%; width:40%; height:6%; background: linear-gradient(180deg, #6a4a2a 0%, #4a2a10 100%); border-radius: 10% 10% 20% 20%; box-shadow: 0 4px 8px rgba(0,0,0,0.4); }
.scn-chloe-plans-hire .chloe { position:absolute; bottom:20%; left:20%; width:20px; height:50px; background: linear-gradient(180deg, #2a1e14 0%, #1a0e08 100%); border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%; transform-origin: bottom center; animation: ch-chloe 3s ease-in-out infinite; }
.scn-chloe-plans-hire .missis { position:absolute; bottom:22%; right:25%; width:22px; height:54px; background: linear-gradient(180deg, #4a3a2a 0%, #3a2a1a 100%); border-radius: 45% 45% 35% 35% / 55% 55% 35% 35%; transform-origin: bottom center; animation: ch-missis 4s ease-in-out infinite; }
.scn-chloe-plans-hire .chair { position:absolute; bottom:18%; right:15%; width:30px; height:40px; background: linear-gradient(180deg, #5a3a1a 0%, #3a2010 100%); border-radius: 30% 30% 20% 20%; box-shadow: 2px 2px 6px rgba(0,0,0,0.4); }
.scn-chloe-plans-hire .warm-glow { position:absolute; bottom:0; left:0; width:100%; height:40%; background: radial-gradient(ellipse at 20% 100%, rgba(255,160,60,0.3) 0%, transparent 70%); animation: ch-glow 6s ease-in-out infinite alternate; }
@keyframes ch-fire { 0% { opacity:.7; transform:scale(0.9); } 50% { opacity:1; transform:scale(1.1); } 100% { opacity:.8; transform:scale(1.0); } }
@keyframes ch-chloe { 0% { transform: translate(0,0); } 25% { transform: translate(2px,-1px); } 50% { transform: translate(-1px,0); } 75% { transform: translate(1px,-0.5px); } 100% { transform: translate(0,0); } }
@keyframes ch-missis { 0% { transform: translate(0,0) rotate(0); } 30% { transform: translate(-1px,0) rotate(-1deg); } 60% { transform: translate(1px,0) rotate(1deg); } 100% { transform: translate(0,0) rotate(0); } }
@keyframes ch-glow { 0% { opacity:.5; } 50% { opacity:.8; } 100% { opacity:.6; } }

.scn-eva-tom-sunset { background: linear-gradient(180deg, #4a2060 0%, #c04050 30%, #ffa040 60%, #ffd060 80%, #f0e090 100%), radial-gradient(ellipse at 50% 0%, #ffd060 0%, transparent 60%); }
.scn-eva-tom-sunset .sky-sunset { position:absolute; inset:0; background: linear-gradient(180deg, #4a2060 0%, #d04050 40%, #ffa040 70%, #ffe080 100%); }
.scn-eva-tom-sunset .sun { position:absolute; top:8%; left:45%; width:60px; height:60px; background: radial-gradient(circle, #fff0a0 0%, #ffa040 50%, transparent 70%); border-radius:50%; box-shadow: 0 0 60px 30px rgba(255,160,64,0.6); animation: et-sun 8s ease-in-out infinite alternate; }
.scn-eva-tom-sunset .cloud-a { position:absolute; top:15%; left:10%; width:120px; height:20px; background: linear-gradient(180deg, rgba(200,100,120,0.5) 0%, rgba(200,100,120,0.1) 100%); border-radius:50%; filter: blur(8px); animation: et-cloud-a 50s linear infinite; }
.scn-eva-tom-sunset .cloud-b { position:absolute; top:25%; right:8%; width:80px; height:15px; background: linear-gradient(180deg, rgba(240,160,80,0.4) 0%, rgba(240,160,80,0.05) 100%); border-radius:50%; filter: blur(6px); animation: et-cloud-b 60s linear infinite reverse; }
.scn-eva-tom-sunset .horizon { position:absolute; bottom:30%; left:0; right:0; height:30%; background: linear-gradient(180deg, #3a1a30 0%, #1a0a10 100%); border-radius: 40% 60% 0 0 / 80% 70% 0 0; box-shadow: inset 0 8px 20px rgba(0,0,0,0.4); }
.scn-eva-tom-sunset .tom-sil { position:absolute; bottom:32%; left:30%; width:30px; height:70px; background: #1a0a10; border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%; transform-origin: bottom center; animation: et-tom 6s ease-in-out infinite; }
.scn-eva-tom-sunset .eva-sil { position:absolute; bottom:34%; left:38%; width:18px; height:50px; background: #1a0a10; border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%; transform-origin: bottom center; animation: et-eva 5s ease-in-out infinite; }
.scn-eva-tom-sunset .tree-sil { position:absolute; bottom:30%; right:15%; width:20px; height:90px; background: linear-gradient(180deg, #1a0a10 0%, #0a0508 100%); border-radius: 30% 30% 10% 10%; box-shadow: 0 0 10px rgba(0,0,0,0.3); }
@keyframes et-sun { 0% { transform: translateY(0) scale(1); opacity:.9; } 50% { transform: translateY(-5px) scale(1.05); opacity:1; } 100% { transform: translateY(2px) scale(0.95); opacity:.85; } }
@keyframes et-cloud-a { 0% { transform: translateX(0); } 100% { transform: translateX(130vw); } }
@keyframes et-cloud-b { 0% { transform: translateX(0); } 100% { transform: translateX(-110vw); } }
@keyframes et-tom { 0% { transform: translate(0,0); } 25% { transform: translate(2px,-1px); } 50% { transform: translate(-1px,0); } 75% { transform: translate(1px,-0.5px); } 100% { transform: translate(0,0); } }
@keyframes et-eva { 0% { transform: translate(0,0) rotate(0); } 30% { transform: translate(1px,-1px) rotate(2deg); } 60% { transform: translate(-1px,0) rotate(-1deg); } 100% { transform: translate(0,0) rotate(0); } }

.scn-evas-decline { background: linear-gradient(180deg, #c0c8d0 0%, #a0a8b0 50%, #808890 100%), radial-gradient(ellipse at 80% 20%, #f0e0c0 0%, transparent 50%); }
.scn-evas-decline .bg-darkroom { position:absolute; inset:0; background: linear-gradient(180deg, #b0b8c0 0%, #9098a0 100%); }
.scn-evas-decline .bed { position:absolute; bottom:18%; left:20%; width:60%; height:40%; background: linear-gradient(180deg, #e0d0b0 0%, #c0a880 100%); border-radius: 10% 10% 30% 30%; box-shadow: inset 0 -10px 20px rgba(0,0,0,0.2); }
.scn-evas-decline .eva-figure { position:absolute; bottom:22%; left:35%; width:20px; height:40px; background: linear-gradient(180deg, #f0e0c0 0%, #d0b090 100%); border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%; transform-origin: bottom center; animation: ed-eva 4s ease-in-out infinite alternate; }
.scn-evas-decline .lamp { position:absolute; top:20%; right:20%; width:14px; height:30px; background: linear-gradient(180deg, #c0a080 0%, #806040 100%); border-radius: 20% 20% 10% 10%; box-shadow: 0 0 20px rgba(240,200,160,0.5); }
.scn-evas-decline .lamp-glow { position:absolute; top:10%; right:15%; width:40px; height:40px; background: radial-gradient(circle, rgba(240,200,160,0.4) 0%, transparent 70%); border-radius:50%; filter: blur(10px); animation: ed-glow 5s ease-in-out infinite alternate; }
.scn-evas-decline .window-bright { position:absolute; top:8%; left:8%; width:25%; height:35%; background: linear-gradient(180deg, #e0f0ff 0%, #c0d8f0 100%); border-radius:4%; box-shadow: inset 0 0 30px rgba(255,255,255,0.6); animation: ed-window 7s ease-in-out infinite alternate; }
.scn-evas-decline .chair-shadow { position:absolute; bottom:20%; right:10%; width:22px; height:44px; background: linear-gradient(180deg, #606868 0%, #404848 100%); border-radius: 30% 30% 20% 20%; opacity:0.6; }
@keyframes ed-eva { 0% { transform: translate(0,0) scaleY(1); } 50% { transform: translate(1px,0) scaleY(1.02); } 100% { transform: translate(-1px,0) scaleY(1); } }
@keyframes ed-glow { 0% { opacity:.6; transform:scale(0.9); } 50% { opacity:1; transform:scale(1.1); } 100% { opacity:.7; transform:scale(1.0); } }
@keyframes ed-window { 0% { opacity:.9; } 50% { opacity:1; } 100% { opacity:.85; } }

.scn-sam-schemes { background: linear-gradient(180deg, #3a2a1a 0%, #5a3a2a 30%, #7a5a3a 100%), radial-gradient(ellipse at 40% 60%, #c08040 0%, transparent 70%); }
.scn-sam-schemes .wall { position:absolute; inset:0 0 30% 0; background: linear-gradient(180deg, #8a6a4a 0%, #6a4a2a 100%); border-radius: 0 0 10% 10%; }
.scn-sam-schemes .floor { position:absolute; bottom:0; left:0; right:0; height:30%; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); }
.scn-sam-schemes .window { position:absolute; top:20%; right:25%; width:60px; height:80px; background: radial-gradient(circle at 50% 50%, #e0c080 0%, #a08040 70%); border:6px solid #5a3a2a; border-radius:10% / 8%; box-shadow: 0 0 30px 10px rgba(224,192,128,.5), inset 0 0 20px rgba(255,220,160,.3); animation: ss-glow 4s ease-in-out infinite alternate; }
.scn-sam-schemes .table { position:absolute; bottom:20%; left:30%; width:100px; height:40px; background: linear-gradient(180deg, #6a4a2a 0%, #3a2a1a 100%); border-radius:4px; transform: perspective(300px) rotateX(5deg); }
.scn-sam-schemes .figure { position:absolute; bottom:18%; left:35%; width:40px; height:80px; background: linear-gradient(180deg, #2a1a0a 0%, #0a0a00 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: ss-think 6s ease-in-out infinite; }
.scn-sam-schemes .hat { position:absolute; bottom:65%; left:36%; width:50px; height:18px; background: linear-gradient(180deg, #3a2a1a 0%, #1a0a00 100%); border-radius: 50% 50% 10% 10%; transform: rotate(-5deg); animation: ss-hat-tip 8s ease-in-out infinite; }
.scn-sam-schemes .shadow { position:absolute; bottom:12%; left:34%; width:60px; height:15px; background: rgba(0,0,0,.4); border-radius:50%; filter: blur(4px); animation: ss-shadow 6s ease-in-out infinite; }
@keyframes ss-glow { 0% { box-shadow: 0 0 20px 5px rgba(224,192,128,.4); opacity:.8 } 50% { box-shadow: 0 0 40px 15px rgba(255,200,100,.7); opacity:1 } 100% { box-shadow: 0 0 25px 8px rgba(224,192,128,.5); opacity:.9 } }
@keyframes ss-think { 0% { transform: translateY(0) rotate(0) } 25% { transform: translateY(-3px) rotate(2deg) } 50% { transform: translateY(0) rotate(-1deg) } 75% { transform: translateY(-2px) rotate(3deg) } 100% { transform: translateY(0) rotate(0) } }
@keyframes ss-hat-tip { 0% { transform: rotate(-5deg) } 50% { transform: rotate(10deg) } 100% { transform: rotate(-5deg) } }
@keyframes ss-shadow { 0% { transform: scaleX(1); opacity:.4 } 50% { transform: scaleX(1.2); opacity:.3 } 100% { transform: scaleX(1); opacity:.4 } }

.scn-haley-horse-chase { background: linear-gradient(180deg, #7ab8d4 0%, #c2e0f0 40%, #e6f2fa 100%), radial-gradient(ellipse at 80% 90%, #f0d080 0%, transparent 60%); }
.scn-haley-horse-chase .sky { position:absolute; inset:0 0 40% 0; background: linear-gradient(180deg, #4a8aaa 0%, #8ac4e0 100%); animation: hh-sky 20s ease-in-out infinite alternate; }
.scn-haley-horse-chase .ground { position:absolute; bottom:0; left:0; right:0; height:40%; background: linear-gradient(180deg, #6a8a4a 0%, #3a5a2a 100%); border-radius: 60% 40% 0 0 / 30% 20% 0 0; }
.scn-haley-horse-chase .horse { position:absolute; bottom:20%; left:25%; width:120px; height:70px; background: linear-gradient(180deg, #d0d0d0 0%, #a0a0a0 100%); border-radius: 40% 60% 30% 40% / 60% 40% 50% 30%; transform: scaleX(-1); animation: hh-gallop 2s steps(6) infinite; }
.scn-haley-horse-chase .rider { position:absolute; bottom:55%; left:28%; width:30px; height:40px; background: linear-gradient(180deg, #7a4a2a 0%, #4a2a1a 100%); border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%; transform-origin: bottom center; animation: hh-bounce 1s ease-in-out infinite; }
.scn-haley-horse-chase .dust-a { position:absolute; bottom:18%; left:10%; width:40px; height:15px; background: rgba(180,150,100,.5); border-radius:50%; filter: blur(5px); animation: hh-dust 3s ease-out infinite; animation-delay:0s; }
.scn-haley-horse-chase .dust-b { position:absolute; bottom:18%; left:30%; width:50px; height:20px; background: rgba(180,150,100,.4); border-radius:50%; filter: blur(6px); animation: hh-dust 3.5s ease-out infinite; animation-delay:0.5s; }
.scn-haley-horse-chase .dust-c { position:absolute; bottom:18%; left:50%; width:30px; height:12px; background: rgba(180,150,100,.3); border-radius:50%; filter: blur(4px); animation: hh-dust 2.5s ease-out infinite; animation-delay:1s; }
@keyframes hh-sky { 0% { opacity:.7 } 50% { opacity:1 } 100% { opacity:.8 } }
@keyframes hh-gallop { 0% { transform: scaleX(-1) translateY(0) } 50% { transform: scaleX(-1) translateY(-5px) } 100% { transform: scaleX(-1) translateY(0) } }
@keyframes hh-bounce { 0% { transform: translateY(0) rotate(0) } 25% { transform: translateY(-4px) rotate(5deg) } 50% { transform: translateY(0) rotate(0) } 75% { transform: translateY(-3px) rotate(-5deg) } 100% { transform: translateY(0) rotate(0) } }
@keyframes hh-dust { 0% { transform: translateY(0) scale(1); opacity:.5 } 50% { transform: translateY(-20px) scale(1.5); opacity:.2 } 100% { transform: translateY(-40px) scale(2); opacity:0 } }

.scn-sam-andy-brag { background: linear-gradient(180deg, #f0e0c0 0%, #d4c0a0 50%, #b8a080 100%), radial-gradient(ellipse at 50% 120%, #e0d0b0 0%, transparent 70%); }
.scn-sam-andy-brag .sky { position:absolute; inset:0 0 50% 0; background: linear-gradient(180deg, #c0e0f0 0%, #f0f5e0 100%); animation: sb-sky 12s ease-in-out infinite alternate; }
.scn-sam-andy-brag .porch { position:absolute; bottom:0; left:0; right:0; height:50%; background: linear-gradient(180deg, #a08060 0%, #806040 100%); border-radius: 10% 10% 0 0 / 20% 20% 0 0; box-shadow: inset 0 10px 30px rgba(0,0,0,.3); }
.scn-sam-andy-brag .railing { position:absolute; bottom:40%; left:0; right:0; height:8px; background: linear-gradient(90deg, #604020 0%, #806040 40%, #604020 100%); }
.scn-sam-andy-brag .sam { position:absolute; bottom:15%; left:30%; width:45px; height:75px; background: linear-gradient(180deg, #2a1a0a 0%, #0a0a00 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: sb-gesture 5s ease-in-out infinite; }
.scn-sam-andy-brag .andy { position:absolute; bottom:15%; right:30%; width:40px; height:70px; background: linear-gradient(180deg, #4a2a1a 0%, #2a1a0a 100%); border-radius: 50% 50% 40% 40% / 55% 55% 45% 45%; transform-origin: bottom center; animation: sb-nod 3.5s ease-in-out infinite; animation-delay:1s; }
.scn-sam-andy-brag .cloud-a { position:absolute; top:10%; left:20%; width:80px; height:20px; background: rgba(255,255,255,.5); border-radius:50%; filter: blur(8px); animation: sb-drift-a 30s linear infinite; }
.scn-sam-andy-brag .cloud-b { position:absolute; top:20%; right:10%; width:60px; height:15px; background: rgba(255,255,255,.4); border-radius:50%; filter: blur(6px); animation: sb-drift-b 40s linear infinite reverse; }
@keyframes sb-sky { 0% { opacity:.8 } 50% { opacity:1 } 100% { opacity:.75 } }
@keyframes sb-gesture { 0% { transform: translateY(0) rotate(-2deg) } 25% { transform: translateY(-2px) rotate(5deg) } 50% { transform: translateY(0) rotate(-3deg) } 75% { transform: translateY(-1px) rotate(7deg) } 100% { transform: translateY(0) rotate(-2deg) } }
@keyframes sb-nod { 0% { transform: translateY(0) rotate(0) } 25% { transform: translateY(-2px) rotate(3deg) } 50% { transform: translateY(0) rotate(0) } 75% { transform: translateY(-1px) rotate(-2deg) } 100% { transform: translateY(0) rotate(0) } }
@keyframes sb-drift-a { 0% { transform: translateX(-40px) } 100% { transform: translateX(120vw) } }
@keyframes sb-drift-b { 0% { transform: translateX(0) } 100% { transform: translateX(-100vw) } }

.scn-eliza-flight-night { background: linear-gradient(180deg, #0a0a20 0%, #1a1a40 40%, #2a2a60 100%), radial-gradient(ellipse at 30% 80%, #3a3a70 0%, transparent 80%); }
.scn-eliza-flight-night .night-sky { position:absolute; inset:0 0 30% 0; background: linear-gradient(180deg, #0a0a2a 0%, #2a2a60 100%); animation: ef-twinkle 15s ease-in-out infinite; }
.scn-eliza-flight-night .stars-a { position:absolute; top:5%; left:10%; width:120px; height:80px; background: radial-gradient(circle at 20% 30%, #ffffff 0%, transparent 20%), radial-gradient(circle at 60% 70%, #ffffff 0%, transparent 15%), radial-gradient(circle at 80% 40%, #ffffff 0%, transparent 10%); filter: blur(1px); animation: ef-star-glow 3s ease-in-out infinite alternate; }
.scn-eliza-flight-night .stars-b { position:absolute; top:15%; right:15%; width:100px; height:70px; background: radial-gradient(circle at 10% 50%, #ffffff 0%, transparent 18%), radial-gradient(circle at 70% 20%, #ffffff 0%, transparent 12%); filter: blur(1px); animation: ef-star-glow 4s ease-in-out infinite alternate-reverse; }
.scn-eliza-flight-night .ground { position:absolute; bottom:0; left:0; right:0; height:30%; background: linear-gradient(180deg, #1a1a1a 0%, #0a0a0a 100%); border-radius: 30% 70% 0 0 / 50% 40% 0 0; }
.scn-eliza-flight-night .eliza { position:absolute; bottom:20%; left:40%; width:35px; height:80px; background: linear-gradient(180deg, #0a0a0a 0%, #1a1a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: ef-run 2s ease-in-out infinite; }
.scn-eliza-flight-night .child { position:absolute; bottom:45%; left:42%; width:18px; height:25px; background: linear-gradient(180deg, #1a1a1a 0%, #2a2a2a 100%); border-radius: 50% 50% 40% 40% / 50% 50% 40% 40%; animation: ef-cling 2s ease-in-out infinite; }
.scn-eliza-flight-night .river { position:absolute; bottom:5%; left:0; right:0; height:8%; background: linear-gradient(180deg, #2a3a5a 0%, #1a2a4a 100%); animation: ef-flow 6s linear infinite; }
@keyframes ef-twinkle { 0% { opacity:.6 } 50% { opacity:1 } 100% { opacity:.7 } }
@keyframes ef-star-glow { 0% { opacity:.5; transform: scale(1) } 50% { opacity:1; transform: scale(1.1) } 100% { opacity:.6; transform: scale(1.05) } }
@keyframes ef-run { 0% { transform: translateX(0) translateY(0) rotate(-3deg) } 25% { transform: translateX(5px) translateY(-2px) rotate(2deg) } 50% { transform: translateX(10px) translateY(0) rotate(-1deg) } 75% { transform: translateX(15px) translateY(-2px) rotate(3deg) } 100% { transform: translateX(20px) translateY(0) rotate(0) } }
@keyframes ef-cling { 0% { transform: translateX(0) translateY(0) rotate(0) } 50% { transform: translateX(2px) translateY(-1px) rotate(2deg) } 100% { transform: translateX(0) translateY(0) rotate(0) } }
@keyframes ef-flow { 0% { background-position: 0% 50% } 100% { background-position: 200% 50% } }

/* Scene: haley-tom-journey-begins */
.scn-haley-tom-journey-begins {
  background: linear-gradient(180deg, #2a2a3e 0%, #1f1f2e 40%, #15151e 100%), radial-gradient(ellipse at 50% 0%, #3a3a5e 0%, transparent 70%);
}
.scn-haley-tom-journey-begins .sky {
  position: absolute; inset: 0 0 60% 0;
  background: linear-gradient(180deg, #3a3a5e 0%, #2a2a3e 40%, transparent 100%);
  animation: htj-sky 10s ease-in-out infinite alternate;
}
.scn-haley-tom-journey-begins .road {
  position: absolute; bottom: 0; left: 0; right: 0; height: 60%;
  background: linear-gradient(180deg, #2a2a2a 0%, #3a3a2a 50%, #4a4a3a 100%);
  border-radius: 30% 70% 0 0 / 20% 60% 0 0;
  box-shadow: inset 0 10px 30px rgba(0,0,0,0.5);
  animation: htj-road 15s ease-in-out infinite alternate;
}
.scn-haley-tom-journey-begins .wagon {
  position: absolute; bottom: 35%; left: 30%; width: 120px; height: 60px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 10% 10% 20% 20%;
  box-shadow: 0 8px 16px rgba(0,0,0,0.6);
  animation: htj-wagon 6s ease-in-out infinite;
}
.scn-haley-tom-journey-begins .figure {
  position: absolute; bottom: 28%;
  width: 15px; height: 40px;
  background: linear-gradient(180deg, #1a1a1a 0%, #0a0a0a 100%);
  border-radius: 50% 50% 40% 40% / 70% 70% 40% 40%;
  transform-origin: bottom center;
}
.scn-haley-tom-journey-begins .figure-left {
  left: 33%;
  animation: htj-bob-left 4s ease-in-out infinite;
}
.scn-haley-tom-journey-begins .figure-right {
  left: 38%;
  animation: htj-bob-right 4s ease-in-out infinite 1s;
}
.scn-haley-tom-journey-begins .tree {
  position: absolute; bottom: 30%;
  width: 30px; height: 80px;
  background: linear-gradient(180deg, #3a4a2a 0%, #1a2a0a 100%);
  border-radius: 30% 30% 10% 10%;
  filter: drop-shadow(2px 0 4px rgba(0,0,0,0.3));
}
.scn-haley-tom-journey-begins .tree-1 {
  left: 12%; height: 90px;
  animation: htj-sway 12s ease-in-out infinite alternate;
}
.scn-haley-tom-journey-begins .tree-2 {
  right: 8%; height: 70px;
  animation: htj-sway 14s ease-in-out infinite alternate-reverse;
}
.scn-haley-tom-journey-begins .dust {
  position: absolute; bottom: 15%; left: 20%; width: 40px; height: 10px;
  background: rgba(100,90,70,0.3);
  border-radius: 50%;
  filter: blur(4px);
  animation: htj-dust 8s ease-in-out infinite;
}
@keyframes htj-sky { 0% { opacity: 0.7 } 50% { opacity: 1 } 100% { opacity: 0.6 } }
@keyframes htj-road { 0% { transform: scaleY(1) } 50% { transform: scaleY(1.02) } 100% { transform: scaleY(1) } }
@keyframes htj-wagon { 0%,100% { transform: translateX(0) rotate(0deg) } 25% { transform: translateX(2px) rotate(1deg) } 75% { transform: translateX(-2px) rotate(-1deg) } }
@keyframes htj-bob-left { 0%,100% { transform: translateY(0) rotate(-1deg) } 50% { transform: translateY(-3px) rotate(1deg) } }
@keyframes htj-bob-right { 0%,100% { transform: translateY(0) rotate(1deg) } 50% { transform: translateY(-3px) rotate(-1deg) } }
@keyframes htj-sway { 0% { transform: rotate(-2deg) } 50% { transform: rotate(2deg) } 100% { transform: rotate(-1deg) } }
@keyframes htj-dust { 0%,100% { transform: translateX(0) scale(1); opacity: 0.3 } 50% { transform: translateX(20px) scale(1.3); opacity: 0.5 } }

/* Scene: haley-plans-gang */
.scn-haley-plans-gang {
  background: linear-gradient(180deg, #1a1a2e 0%, #0e0e1e 50%, #1a1a2e 100%), radial-gradient(ellipse at 50% 50%, #2a2a4e 0%, transparent 80%);
}
.scn-haley-plans-gang .wall {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%);
  box-shadow: inset 0 0 40px rgba(0,0,0,0.6);
}
.scn-haley-plans-gang .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 25%;
  background: linear-gradient(180deg, #1a1a1a 0%, #2a2a1a 100%);
  box-shadow: inset 0 10px 20px rgba(0,0,0,0.5);
}
.scn-haley-plans-gang .bars {
  position: absolute; left: 30%; top: 10%; bottom: 25%; width: 3px;
  background: #5a4a3a;
  box-shadow: 15px 0 0 #5a4a3a, 30px 0 0 #5a4a3a, 45px 0 0 #5a4a3a, 60px 0 0 #5a4a3a;
  animation: hpg-bars 6s ease-in-out infinite alternate;
}
.scn-haley-plans-gang .prisoner {
  position: absolute; bottom: 25%; left: 25%; width: 20px; height: 50px;
  background: linear-gradient(180deg, #1a1a1a 0%, #2a2a1a 100%);
  border-radius: 50% 50% 30% 30% / 70% 70% 40% 40%;
  box-shadow: 0 0 8px rgba(0,0,0,0.5);
  animation: hpg-sit 5s ease-in-out infinite;
}
.scn-haley-plans-gang .guard {
  position: absolute; bottom: 25%; right: 20%; width: 18px; height: 55px;
  background: linear-gradient(180deg, #3a3a2a 0%, #2a2a1a 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom;
  animation: hpg-stand 7s ease-in-out infinite;
}
.scn-haley-plans-gang .window {
  position: absolute; top: 15%; right: 10%; width: 50px; height: 40px;
  background: linear-gradient(180deg, #4a4a6e 0%, #3a3a5e 100%);
  border: 3px solid #2a2a2a;
  border-radius: 4px;
  box-shadow: inset 0 0 12px rgba(100,100,180,0.3);
  animation: hpg-light 8s ease-in-out infinite alternate;
}
.scn-haley-plans-gang .table {
  position: absolute; bottom: 28%; left: 45%; width: 40px; height: 8px;
  background: linear-gradient(180deg, #4a3a2a, #2a1a0a);
  border-radius: 2px;
  box-shadow: 0 4px 6px rgba(0,0,0,0.4);
  animation: hpg-table 10s ease-in-out infinite;
}
@keyframes hpg-bars { 0%,100% { opacity: 0.6 } 50% { opacity: 1 } }
@keyframes hpg-sit { 0%,100% { transform: translateY(0) rotate(-2deg) } 50% { transform: translateY(-2px) rotate(1deg) } }
@keyframes hpg-stand { 0%,100% { transform: scaleY(1) } 50% { transform: scaleY(1.02) } }
@keyframes hpg-light { 0% { opacity: 0.5 } 50% { opacity: 1 } 100% { opacity: 0.3 } }
@keyframes hpg-table { 0%,100% { transform: rotate(0deg) } 50% { transform: rotate(1deg) } }

/* Scene: slave-auction */
.scn-slave-auction {
  background: linear-gradient(180deg, #3a3a4e 0%, #2a2a3e 50%, #1a1a2e 100%), radial-gradient(ellipse at 50% 100%, #4a4a6e 0%, transparent 60%);
}
.scn-slave-auction .sky {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(180deg, #4a4a5e 0%, #2a2a3e 80%, transparent 100%);
  animation: sau-sky 12s ease-in-out infinite alternate;
}
.scn-slave-auction .ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 40%;
  background: linear-gradient(180deg, #2a2a1a 0%, #1a1a0a 100%);
  border-radius: 20% 80% 0 0 / 30% 60% 0 0;
  box-shadow: inset 0 10px 30px rgba(0,0,0,0.6);
}
.scn-slave-auction .platform {
  position: absolute; bottom: 30%; left: 50%; transform: translateX(-50%);
  width: 120px; height: 30px;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 4px 4px 10px 10px;
  box-shadow: 0 6px 12px rgba(0,0,0,0.4);
  animation: sau-platform 10s ease-in-out infinite;
}
.scn-slave-auction .auctioneer {
  position: absolute; bottom: 45%; left: 52%; transform: translateX(-50%);
  width: 18px; height: 60px;
  background: linear-gradient(180deg, #3a3a2a 0%, #2a2a1a 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  animation: sau-gesticulate 4s ease-in-out infinite;
}
.scn-slave-auction .family {
  position: absolute; bottom: 22%;
  width: 40px; height: 50px;
  background: linear-gradient(180deg, #1a1a1a 0%, #2a2a1a 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%;
}
.scn-slave-auction .family-1 {
  left: 25%;
  animation: sau-huddle 6s ease-in-out infinite;
}
.scn-slave-auction .family-2 {
  left: 35%;
  animation: sau-huddle 6s ease-in-out infinite 2s;
}
.scn-slave-auction .bidder {
  position: absolute; bottom: 20%; right: 15%;
  width: 16px; height: 55px;
  background: linear-gradient(180deg, #3a3a2a 0%, #2a2a1a 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  animation: sau-bid 7s ease-in-out infinite;
}
.scn-slave-auction .post {
  position: absolute; bottom: 30%; left: 42%;
  width: 4px; height: 80px;
  background: #4a3a2a;
  animation: sau-sway 8s ease-in-out infinite alternate;
}
@keyframes sau-sky { 0% { opacity: 0.6 } 50% { opacity: 1 } 100% { opacity: 0.5 } }
@keyframes sau-platform { 0%,100% { transform: translateX(-50%) rotate(0deg) } 50% { transform: translateX(-50%) rotate(0.5deg) } }
@keyframes sau-gesticulate { 0%,100% { transform: translateY(0) rotate(-3deg) } 50% { transform: translateY(-3px) rotate(3deg) } }
@keyframes sau-huddle { 0%,100% { transform: translateY(0) scaleX(1) } 50% { transform: translateY(-2px) scaleX(0.95) } }
@keyframes sau-bid { 0%,100% { transform: translateY(0) } 50% { transform: translateY(-5px) } }
@keyframes sau-sway { 0% { transform: rotate(-2deg) } 50% { transform: rotate(2deg) } 100% { transform: rotate(-1deg) } }

/* Scene: on-the-boat */
.scn-on-the-boat {
  background: linear-gradient(180deg, #c8b88a 0%, #a89868 30%, #7a6a4a 100%), radial-gradient(ellipse at 50% 0%, #e8d8a8 0%, transparent 70%);
}
.scn-on-the-boat .water {
  position: absolute; inset: 60% 0 0 0;
  background: linear-gradient(180deg, #3a5a7a 0%, #2a4a6a 100%);
  box-shadow: inset 0 10px 30px rgba(0,0,0,0.3);
  animation: otb-water 8s ease-in-out infinite alternate;
}
.scn-on-the-boat .deck {
  position: absolute; bottom: 30%; left: 10%; right: 10%; height: 20%;
  background: linear-gradient(180deg, #6a5a3a 0%, #4a3a1a 100%);
  border-radius: 10% 10% 0 0;
  box-shadow: inset 0 4px 12px rgba(0,0,0,0.4);
  animation: otb-rock 6s ease-in-out infinite;
}
.scn-on-the-boat .figure-tom {
  position: absolute; bottom: 35%; left: 25%; width: 20px; height: 50px;
  background: linear-gradient(180deg, #2a2a1a 0%, #1a1a0a 100%);
  border-radius: 50% 50% 30% 30% / 70% 70% 40% 40%;
  animation: otb-sway-left 5s ease-in-out infinite;
}
.scn-on-the-boat .figure-john {
  position: absolute; bottom: 35%; left: 35%; width: 20px; height: 48px;
  background: linear-gradient(180deg, #2a2a1a 0%, #1a1a0a 100%);
  border-radius: 50% 50% 30% 30% / 70% 70% 40% 40%;
  animation: otb-sway-right 5s ease-in-out infinite 0.5s;
}
.scn-on-the-boat .chain {
  position: absolute; bottom: 42%;
  width: 30px; height: 4px;
  background: #8a7a6a;
  border-radius: 2px;
  box-shadow: 0 2px 4px rgba(0,0,0,0.3);
  animation: otb-chain 3s ease-in-out infinite;
}
.scn-on-the-boat .chain-1 { left: 28%; transform: rotate(10deg); }
.scn-on-the-boat .chain-2 { left: 34%; transform: rotate(-5deg); animation-delay: 0.2s; }
.scn-on-the-boat .sun {
  position: absolute; top: 8%; left: 70%; width: 50px; height: 50px;
  background: radial-gradient(circle, #f0d080 0%, #d0b060 60%, transparent 100%);
  border-radius: 50%;
  box-shadow: 0 0 40px 20px rgba(240,208,128,0.3);
  animation: otb-sun 20s ease-in-out infinite alternate;
}
.scn-on-the-boat .tavern-silhouette {
  position: absolute; bottom: 40%; left: 70%; width: 40px; height: 70px;
  background: linear-gradient(180deg, #3a3a2a 0%, #1a1a0a 100%);
  border-radius: 10% 10% 0 0;
  box-shadow: -5px 0 10px rgba(0,0,0,0.3);
  animation: otb-tavern 10s ease-in-out infinite;
}
.scn-on-the-boat .wave {
  position: absolute; bottom: 15%; left: 0; right: 0; height: 20px;
  background: linear-gradient(180deg, transparent 0%, #4a6a8a 40%, transparent 100%);
  border-radius: 50%;
  filter: blur(4px);
  animation: otb-wave 6s ease-in-out infinite;
}
@keyframes otb-water { 0% { background-position: 0% 0% } 50% { background-position: 10% 0% } 100% { background-position: 0% 0% } }
@keyframes otb-rock { 0%,100% { transform: rotate(0deg) } 50% { transform: rotate(1deg) } }
@keyframes otb-sway-left { 0%,100% { transform: translateY(0) rotate(-2deg) } 50% { transform: translateY(-2px) rotate(1deg) } }
@keyframes otb-sway-right { 0%,100% { transform: translateY(0) rotate(2deg) } 50% { transform: translateY(-1px) rotate(-1deg) } }
@keyframes otb-chain { 0%,100% { transform: translateY(0) } 50% { transform: translateY(2px) } }
@keyframes otb-sun { 0% { opacity: 0.8 } 50% { opacity: 1 } 100% { opacity: 0.7 } }
@keyframes otb-tavern { 0%,100% { transform: translateY(0) } 50% { transform: translateY(-2px) } }
@keyframes otb-wave { 0%,100% { transform: translateY(0) scaleX(1) } 50% { transform: translateY(-5px) scaleX(1.05) } }

/* ---- Scene: eliza-description ---- */
.scn-eliza-description {
  background: 
    linear-gradient(135deg, #2b1a10 0%, #3d2a1a 40%, #4a3220 100%),
    radial-gradient(ellipse at 50% 80%, #5a3a20 0%, transparent 70%);
}
.scn-eliza-description .wall { position:absolute; inset:0; background: linear-gradient(180deg, #3a2818 0%, #2a1a0e 100%); }
.scn-eliza-description .window { position:absolute; top:15%; left:35%; width:25%; height:40%; background: radial-gradient(ellipse at 50% 50%, #c8a060 0%, #8a6a40 70%); border-radius: 8px; box-shadow: inset 0 0 40px rgba(200,160,96,0.3); }
.scn-eliza-description .curtain { position:absolute; top:15%; width:15%; height:40%; background: linear-gradient(180deg, #5a3a20 0%, #3a2818 100%); border-radius: 4px; }
.scn-eliza-description .curtain-a { left:32%; animation: el-curtain-sway 6s ease-in-out infinite alternate; }
.scn-eliza-description .curtain-b { right:32%; animation: el-curtain-sway 6s ease-in-out infinite alternate-reverse; }
.scn-eliza-description .figure { position:absolute; bottom:10%; left:42%; width:12%; height:40%; background: linear-gradient(180deg, #1a0e06 0%, #0a0502 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: el-figure-breathe 8s ease-in-out infinite; }
.scn-eliza-description .lamp { position:absolute; bottom:50%; right:20%; width:6%; height:8%; background: radial-gradient(circle, #d0a060 0%, #8a6a40 80%); border-radius: 50%; box-shadow: 0 0 30px 20px rgba(208,160,96,0.5), 0 0 60px 40px rgba(208,160,96,0.2); animation: el-lamp-flicker 3s ease-in-out infinite alternate; }
.scn-eliza-description .glow { position:absolute; inset: 20% 10% 30% 10%; background: radial-gradient(ellipse at 50% 100%, rgba(200,160,96,0.15) 0%, transparent 70%); pointer-events:none; animation: el-glow-pulse 4s ease-in-out infinite alternate; }
@keyframes el-curtain-sway { 0% { transform:scaleX(1); } 50% { transform:scaleX(0.95) translateX(2px); } 100% { transform:scaleX(0.98) translateX(-2px); } }
@keyframes el-figure-breathe { 0% { transform:scaleY(1) translateY(0); } 50% { transform:scaleY(1.02) translateY(-2px); } 100% { transform:scaleY(0.98) translateY(0); } }
@keyframes el-lamp-flicker { 0% { opacity:0.8; transform:scale(1); } 50% { opacity:1; transform:scale(1.05); } 100% { opacity:0.9; transform:scale(0.95); } }
@keyframes el-glow-pulse { 0% { opacity:0.6; } 50% { opacity:1; } 100% { opacity:0.7; } }

/* ---- Scene: george-harris-talent ---- */
.scn-george-harris-talent {
  background: 
    linear-gradient(180deg, #1a2018 0%, #2a3028 50%, #1a2018 100%),
    radial-gradient(ellipse at 30% 50%, #3a4a3a 0%, transparent 70%);
}
.scn-george-harris-talent .floor { position:absolute; bottom:0; left:0; right:0; height:30%; background: linear-gradient(180deg, #3a3020 0%, #1a1810 100%); border-radius: 0 0 10% 10%; }
.scn-george-harris-talent .machine { position:absolute; bottom:30%; left:15%; width:55%; height:40%; background: linear-gradient(180deg, #4a4a3a 0%, #2a2a1a 100%); border-radius: 10% 10% 0 0; box-shadow: inset 0 -10px 20px rgba(0,0,0,0.5); }
.scn-george-harris-talent .gear { position:absolute; background: radial-gradient(circle, #6a6a4a 0%, #3a3a2a 100%); border-radius: 50%; box-shadow: inset 0 0 10px rgba(0,0,0,0.3); }
.scn-george-harris-talent .gear-1 { width:12%; height:12%; bottom:38%; left:25%; animation: ght-gear-spin 12s linear infinite; }
.scn-george-harris-talent .gear-2 { width:8%; height:8%; bottom:42%; left:42%; animation: ght-gear-spin 8s linear infinite reverse; }
.scn-george-harris-talent .figure { position:absolute; bottom:28%; left:50%; width:14%; height:35%; background: linear-gradient(180deg, #1a1a12 0%, #0a0a06 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: ght-figure-move 5s ease-in-out infinite; }
.scn-george-harris-talent .beam { position:absolute; top:10%; left:20%; width:10%; height:50%; background: linear-gradient(180deg, rgba(255,220,120,0.3) 0%, transparent 100%); transform: skewX(-10deg); animation: ght-beam-pulse 3s ease-in-out infinite alternate; }
.scn-george-harris-talent .shadow { position:absolute; bottom:28%; left:48%; width:20%; height:30%; background: radial-gradient(ellipse at 50% 100%, rgba(0,0,0,0.6) 0%, transparent 70%); animation: ght-shadow-sway 5s ease-in-out infinite; }
@keyframes ght-gear-spin { 0% { transform: rotate(0deg); } 50% { transform: rotate(180deg); } 100% { transform: rotate(360deg); } }
@keyframes ght-figure-move { 0% { transform: translateX(0) rotate(0deg); } 25% { transform: translateX(5px) rotate(2deg); } 50% { transform: translateX(0) rotate(-1deg); } 75% { transform: translateX(-3px) rotate(1deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes ght-beam-pulse { 0% { opacity:0.5; transform: skewX(-10deg) scaleY(1); } 50% { opacity:1; transform: skewX(-10deg) scaleY(1.05); } 100% { opacity:0.6; transform: skewX(-10deg) scaleY(0.95); } }
@keyframes ght-shadow-sway { 0% { transform: scaleX(1); opacity:0.7; } 50% { transform: scaleX(1.1); opacity:0.9; } 100% { transform: scaleX(0.9); opacity:0.6; } }

/* ---- Scene: george-harris-master-cruelty ---- */
.scn-george-harris-master-cruelty {
  background: 
    linear-gradient(180deg, #4a4a4a 0%, #3a3a3a 30%, #2a2a2a 100%),
    radial-gradient(ellipse at 50% 0%, #5a5a5a 0%, transparent 80%);
}
.scn-george-harris-master-cruelty .sky { position:absolute; inset:0; background: linear-gradient(180deg, #5a5a5a 0%, #3a3a3a 100%); animation: ghm-sky-pulse 12s ease-in-out infinite alternate; }
.scn-george-harris-master-cruelty .ground { position:absolute; bottom:0; left:0; right:0; height:45%; background: linear-gradient(180deg, #2a2a1a 0%, #1a1a0e 100%); border-radius: 60% 40% 0 0 / 80% 70% 0 0; }
.scn-george-harris-master-cruelty .master { position:absolute; bottom:30%; left:25%; width:12%; height:35%; background: linear-gradient(180deg, #1a1a1a 0%, #0a0a0a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: ghm-master-loom 8s ease-in-out infinite; }
.scn-george-harris-master-cruelty .george { position:absolute; bottom:30%; right:25%; width:12%; height:35%; background: linear-gradient(180deg, #2a2a1a 0%, #1a1a0e 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: ghm-george-brace 8s ease-in-out infinite alternate; }
.scn-george-harris-master-cruelty .fence { position:absolute; bottom:35%; width:4%; height:40%; background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%); border-radius: 4px; }
.scn-george-harris-master-cruelty .fence-a { left:40%; animation: ghm-fence-shake 6s ease-in-out infinite; }
.scn-george-harris-master-cruelty .fence-b { left:55%; animation: ghm-fence-shake 6s ease-in-out infinite 0.5s; }
.scn-george-harris-master-cruelty .dust { position:absolute; bottom:25%; left:35%; width:30%; height:20%; background: radial-gradient(ellipse at 50% 100%, rgba(180,160,120,0.4) 0%, transparent 100%); animation: ghm-dust-drift 5s ease-in-out infinite alternate; }
@keyframes ghm-sky-pulse { 0% { opacity:0.7; } 50% { opacity:0.9; } 100% { opacity:0.6; } }
@keyframes ghm-master-loom { 0% { transform: scaleY(1) translateY(0); } 50% { transform: scaleY(1.05) translateY(-3px); } 100% { transform: scaleY(0.95) translateY(0); } }
@keyframes ghm-george-brace { 0% { transform: scaleX(1) translateX(0); } 50% { transform: scaleX(0.95) translateX(-2px); } 100% { transform: scaleX(1.02) translateX(2px); } }
@keyframes ghm-fence-shake { 0% { transform: rotate(0deg); } 25% { transform: rotate(1deg); } 50% { transform: rotate(-1deg); } 75% { transform: rotate(2deg); } 100% { transform: rotate(0deg); } }
@keyframes ghm-dust-drift { 0% { transform: translateX(0) scaleY(1); opacity:0.6; } 50% { transform: translateX(10px) scaleY(0.8); opacity:0.8; } 100% { transform: translateX(-5px) scaleY(1.2); opacity:0.5; } }

/* ---- Scene: george-visits-eliza ---- */
.scn-george-visits-eliza {
  background: 
    linear-gradient(180deg, #87ceeb 0%, #c8e6f5 40%, #f0f8ff 100%),
    radial-gradient(ellipse at 80% 20%, #fff4d0 0%, transparent 70%);
}
.scn-george-visits-eliza .sky { position:absolute; inset:0 0 40% 0; background: linear-gradient(180deg, #7fb8d0 0%, #b0d8e8 100%); animation: gve-sky-dazzle 8s ease-in-out infinite alternate; }
.scn-george-visits-eliza .roof { position:absolute; top:0; left:10%; width:80%; height:20%; background: linear-gradient(135deg, #b8804a 0%, #8a6020 100%); border-radius: 20% 20% 0 0; box-shadow: 0 4px 12px rgba(0,0,0,0.3); }
.scn-george-visits-eliza .railing { position:absolute; bottom:40%; left:5%; width:90%; height:8%; background: linear-gradient(180deg, #d0b090 0%, #b09070 100%); border-radius: 4px; box-shadow: inset 0 2px 6px rgba(0,0,0,0.2); }
.scn-george-visits-eliza .eliza { position:absolute; bottom:40%; left:35%; width:12%; height:35%; background: linear-gradient(180deg, #c0a080 0%, #a08060 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: gve-eliza-startle 4s ease-in-out infinite; }
.scn-george-visits-eliza .george { position:absolute; bottom:40%; right:30%; width:14%; height:38%; background: linear-gradient(180deg, #1a1a1a 0%, #0a0a0a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: gve-george-approach 5s ease-in-out infinite; }
.scn-george-visits-eliza .plant { position:absolute; bottom:42%; left:15%; width:10%; height:20%; background: linear-gradient(180deg, #3a6a2a 0%, #2a4a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: gve-plant-sway 6s ease-in-out infinite alternate; }
.scn-george-visits-eliza .shadow { position:absolute; bottom:38%; left:30%; width:40%; height:10%; background: radial-gradient(ellipse at 50% 100%, rgba(0,0,0,0.3) 0%, transparent 70%); animation: gve-shadow-lengthen 5s ease-in-out infinite alternate; }
.scn-george-visits-eliza .glare { position:absolute; top:5%; left:20%; width:30%; height:30%; background: radial-gradient(circle, rgba(255,255,200,0.4) 0%, transparent 70%); pointer-events:none; animation: gve-glare-flicker 2s ease-in-out infinite alternate; }
@keyframes gve-sky-dazzle { 0% { opacity:0.8; } 50% { opacity:1; } 100% { opacity:0.7; } }
@keyframes gve-eliza-startle { 0% { transform: scaleY(1) translateY(0) rotate(0deg); } 20% { transform: scaleY(1.05) translateY(-2px) rotate(2deg); } 40% { transform: scaleY(1) translateY(0) rotate(-1deg); } 60% { transform: scaleY(0.98) translateY(1px) rotate(1deg); } 100% { transform: scaleY(1) translateY(0) rotate(0deg); } }
@keyframes gve-george-approach { 0% { transform: translateX(30px) scaleX(0.9); opacity:0.7; } 50% { transform: translateX(0) scaleX(1); opacity:1; } 100% { transform: translateX(-10px) scaleX(0.95); opacity:0.9; } }
@keyframes gve-plant-sway { 0% { transform: rotate(-3deg); } 50% { transform: rotate(3deg); } 100% { transform: rotate(-2deg); } }
@keyframes gve-shadow-lengthen { 0% { transform: scaleX(1); opacity:0.5; } 50% { transform: scaleX(1.2); opacity:0.8; } 100% { transform: scaleX(0.9); opacity:0.4; } }
@keyframes gve-glare-flicker { 0% { opacity:0.4; transform: scale(1); } 50% { opacity:0.8; transform: scale(1.1); } 100% { opacity:0.3; transform: scale(0.9); } }

/* scene: prue-the-rusk-woman */
.scn-prue-the-rusk-woman {
  background: 
    linear-gradient(180deg, #3a281a 0%, #5a3a1a 40%, #8a5a3a 100%),
    radial-gradient(ellipse at 30% 60%, #b08040 0%, transparent 60%);
}
.scn-prue-the-rusk-woman .room-back  { position:absolute; inset:0; background: linear-gradient(180deg, #2a1a0a 0%, #3a2a1a 100%); opacity:0.7; animation: pr-fade 12s ease-in-out infinite alternate; }
.scn-prue-the-rusk-woman .table      { position:absolute; bottom:10%; left:30%; width:40%; height:8%; background: linear-gradient(180deg, #6a4a2a 0%, #3a2a1a 100%); border-radius:4%; box-shadow: 0 -4px 12px rgba(0,0,0,0.6); }
.scn-prue-the-rusk-woman .bottle     { position:absolute; bottom:18%; left:45%; width:6%; height:15%; background: linear-gradient(135deg, #4a3a2a 0%, #2a1a0a 100%); border-radius:30% 30% 10% 10% / 60% 60% 20% 20%; transform:rotate(8deg); animation: pr-bottle 6s ease-in-out infinite; }
.scn-prue-the-rusk-woman .glass      { position:absolute; bottom:20%; left:40%; width:4%; height:8%; background: linear-gradient(160deg, rgba(200,180,140,0.4) 0%, rgba(200,180,140,0.1) 100%); border-radius:10% 10% 5% 5%; box-shadow: inset 0 0 8px rgba(180,120,60,0.5); }
.scn-prue-the-rusk-woman .figure-prue{ position:absolute; bottom:12%; left:50%; width:20%; height:50%; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius:40% 40% 30% 30% / 60% 60% 40% 40%; transform-origin: bottom center; animation: pr-figure 8s ease-in-out infinite; }
.scn-prue-the-rusk-woman .arm-prue   { position:absolute; bottom:30%; left:44%; width:6%; height:20%; background: linear-gradient(180deg, #3a2a1a 0%, #2a1a0a 100%); border-radius:30% 30% 40% 40% / 60% 60% 40% 40%; transform: rotate(30deg); transform-origin: top right; animation: pr-arm 4s ease-in-out infinite alternate; }
.scn-prue-the-rusk-woman .chair      { position:absolute; bottom:8%; left:48%; width:18%; height:12%; background: linear-gradient(135deg, #5a3a1a 0%, #3a2a0a 100%); border-radius:10%; box-shadow: 0 4px 8px rgba(0,0,0,0.5); }
.scn-prue-the-rusk-woman .lamp-glow  { position:absolute; top:30%; left:20%; width:20%; height:30%; background: radial-gradient(circle at 50% 40%, #ffb060 0%, #c08040 40%, transparent 100%); opacity:0.6; animation: pr-lamp 3s ease-in-out infinite alternate; }
.scn-prue-the-rusk-woman .shadow-bar { position:absolute; top:55%; left:0; right:0; height:30%; background: linear-gradient(180deg, transparent 0%, rgba(0,0,0,0.3) 100%); animation: pr-shadow 10s ease-in-out infinite alternate; }
@keyframes pr-fade    { 0% { opacity:0.5 } 50% { opacity:0.8 } 100% { opacity:0.6 } }
@keyframes pr-bottle  { 0%,100% { transform: rotate(8deg) translateY(0); } 50% { transform: rotate(12deg) translateY(-2px); } }
@keyframes pr-figure  { 0%,100% { transform: translateX(0) rotate(0deg); } 25% { transform: translateX(2px) rotate(2deg); } 50% { transform: translateX(-2px) rotate(-1deg); } 75% { transform: translateX(1px) rotate(1deg); } }
@keyframes pr-arm     { 0% { transform: rotate(30deg) scaleX(1); } 100% { transform: rotate(50deg) scaleX(1.1); } }
@keyframes pr-lamp    { 0% { opacity:0.4; transform: scale(0.9); } 50% { opacity:0.8; transform: scale(1.1); } 100% { opacity:0.6; transform: scale(1); } }
@keyframes pr-shadow  { 0% { opacity:0.2; } 50% { opacity:0.5; } 100% { opacity:0.3; } }

/* scene: kitchen-banter */
.scn-kitchen-banter {
  background: 
    linear-gradient(180deg, #f5e8d0 0%, #d4b89a 40%, #b89878 100%),
    radial-gradient(ellipse at 70% 20%, #fff0e0 0%, transparent 60%);
}
.scn-kitchen-banter .kitchen-wall  { position:absolute; inset:0; background: linear-gradient(180deg, #e8d0b8 0%, #c8a888 100%); opacity:0.8; animation: kb-wall 15s ease-in-out infinite alternate; }
.scn-kitchen-banter .stove         { position:absolute; bottom:8%; right:10%; width:25%; height:30%; background: linear-gradient(135deg, #5a4a3a 0%, #2a2a1a 100%); border-radius:10% 10% 5% 5%; box-shadow: inset 0 -8px 12px rgba(0,0,0,0.4), 0 4px 8px rgba(0,0,0,0.3); }
.scn-kitchen-banter .pot           { position:absolute; bottom:25%; right:15%; width:12%; height:15%; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius:0 0 10% 10%; animation: kb-pot 6s ease-in-out infinite; }
.scn-kitchen-banter .steam         { position:absolute; bottom:38%; right:18%; width:8%; height:14%; background: radial-gradient(circle at 50% 100%, rgba(255,255,240,0.4) 0%, transparent 100%); border-radius:50%; filter: blur(4px); animation: kb-steam 5s ease-in-out infinite; }
.scn-kitchen-banter .figure-dinah  { position:absolute; bottom:10%; left:15%; width:20%; height:55%; background: linear-gradient(180deg, #6a5a4a 0%, #3a2a1a 100%); border-radius:40% 40% 30% 30% / 60% 60% 40% 40%; transform-origin: bottom center; animation: kb-dinah 4s ease-in-out infinite; }
.scn-kitchen-banter .figure-chloe  { position:absolute; bottom:12%; left:40%; width:18%; height:50%; background: linear-gradient(180deg, #8a7a6a 0%, #4a3a2a 100%); border-radius:40% 40% 30% 30% / 60% 60% 40% 40%; transform-origin: bottom center; animation: kb-chloe 5s ease-in-out infinite; }
.scn-kitchen-banter .bowl          { position:absolute; bottom:18%; left:30%; width:10%; height:6%; background: radial-gradient(circle, #d4c4a4 0%, #a89878 100%); border-radius:50%; box-shadow: inset 0 -2px 6px rgba(0,0,0,0.3); }
.scn-kitchen-banter .window-light  { position:absolute; top:0; left:0; right:0; height:40%; background: radial-gradient(ellipse at 50% 0%, rgba(255,240,220,0.5) 0%, transparent 100%); animation: kb-light 8s ease-in-out infinite alternate; }
@keyframes kb-wall   { 0% { opacity:0.7 } 50% { opacity:0.9 } 100% { opacity:0.8 } }
@keyframes kb-pot    { 0%,100% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-3px) rotate(3deg); } }
@keyframes kb-steam  { 0% { transform: translateY(0) scale(0.8); opacity:0.3; } 50% { transform: translateY(-12px) scale(1.2); opacity:0.7; } 100% { transform: translateY(-6px) scale(0.9); opacity:0.4; } }
@keyframes kb-dinah  { 0%,100% { transform: translateX(0) rotate(0deg); } 25% { transform: translateX(3px) rotate(2deg); } 50% { transform: translateX(-2px) rotate(-1deg); } 75% { transform: translateX(1px) rotate(1deg); } }
@keyframes kb-chloe  { 0%,100% { transform: translateX(0) rotate(0deg); } 33% { transform: translateX(-3px) rotate(-2deg); } 66% { transform: translateX(4px) rotate(1deg); } }
@keyframes kb-light  { 0% { opacity:0.3; } 50% { opacity:0.7; } 100% { opacity:0.5; } }

/* scene: tom-talks-to-prue */
.scn-tom-talks-to-prue {
  background: 
    linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 40%, #1a1a0a 100%),
    radial-gradient(ellipse at 50% 50%, #2a1a0a 0%, transparent 70%);
}
.scn-tom-talks-to-prue .dark-room   { position:absolute; inset:0; background: linear-gradient(180deg, #0a0a1a 0%, #1a1a0a 100%); opacity:0.9; }
.scn-tom-talks-to-prue .candle      { position:absolute; bottom:40%; left:45%; width:3%; height:12%; background: linear-gradient(90deg, #e8c088 0%, #f0d8a8 30%, #e8c088 100%); border-radius:20% 20% 5% 5%; box-shadow: 0 -2px 6px rgba(255,200,100,0.5); animation: tp-candle 4s ease-in-out infinite alternate; }
.scn-tom-talks-to-prue .candle-halo { position:absolute; bottom:45%; left:42%; width:16%; height:25%; background: radial-gradient(circle at 50% 0%, rgba(255,200,100,0.3) 0%, transparent 100%); filter: blur(6px); animation: tp-halo 3s ease-in-out infinite alternate; }
.scn-tom-talks-to-prue .figure-tom  { position:absolute; bottom:10%; left:20%; width:20%; height:50%; background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%); border-radius:40% 40% 30% 30% / 60% 60% 40% 40%; transform-origin: bottom center; animation: tp-tom 7s ease-in-out infinite; }
.scn-tom-talks-to-prue .figure-prue { position:absolute; bottom:8%; left:55%; width:18%; height:45%; background: linear-gradient(180deg, #3a2a1a 0%, #1a0a0a 100%); border-radius:40% 40% 30% 30% / 60% 60% 40% 40%; transform-origin: bottom center; animation: tp-prue 6s ease-in-out infinite; }
.scn-tom-talks-to-prue .hands-tom   { position:absolute; bottom:22%; left:22%; width:6%; height:8%; background: radial-gradient(circle at 50% 0%, #2a2a3a 0%, #1a1a2a 100%); border-radius:50%; transform: rotate(15deg); animation: tp-hands 5s ease-in-out infinite alternate; }
.scn-tom-talks-to-prue .bench       { position:absolute; bottom:5%; left:25%; width:50%; height:6%; background: linear-gradient(180deg, #3a2a1a 0%, #1a1a0a 100%); border-radius:4%; box-shadow: 0 4px 8px rgba(0,0,0,0.6); }
@keyframes tp-candle { 0% { transform: scaleY(1) rotate(-2deg); opacity:0.8; } 50% { transform: scaleY(1.05) rotate(2deg); opacity:1; } 100% { transform: scaleY(0.98) rotate(0deg); opacity:0.9; } }
@keyframes tp-halo   { 0% { opacity:0.2; transform: scale(0.8); } 50% { opacity:0.6; transform: scale(1.2); } 100% { opacity:0.4; transform: scale(1); } }
@keyframes tp-tom    { 0%,100% { transform: translateX(0) rotate(0deg); } 25% { transform: translateX(2px) rotate(1deg); } 50% { transform: translateX(-2px) rotate(-1deg); } 75% { transform: translateX(1px) rotate(0.5deg); } }
@keyframes tp-prue   { 0%,100% { transform: translateX(0) rotate(0deg); } 33% { transform: translateX(-3px) rotate(-2deg); } 66% { transform: translateX(2px) rotate(1deg); } }
@keyframes tp-hands  { 0% { transform: rotate(15deg) translateY(0); } 100% { transform: rotate(25deg) translateY(-4px); } }

/* scene: eva-saddened */
.scn-eva-saddened {
  background: 
    linear-gradient(180deg, #b8d8e8 0%, #e8f0d0 40%, #c8b898 100%),
    radial-gradient(ellipse at 50% 30%, #f8f8e0 0%, transparent 60%);
}
.scn-eva-saddened .sky-outside   { position:absolute; inset:0; background: linear-gradient(180deg, #d0e4f0 0%, #b0c8d8 100%); opacity:0.5; animation: ev-sky 20s ease-in-out infinite alternate; }
.scn-eva-saddened .grass         { position:absolute; bottom:0; left:0; right:0; height:30%; background: linear-gradient(180deg, #7a9a6a 0%, #5a7a4a 100%); border-radius:50% 50% 0 0 / 30% 30% 0 0; animation: ev-grass 12s ease-in-out infinite alternate; }
.scn-eva-saddened .tree-trunk    { position:absolute; bottom:20%; left:30%; width:8%; height:60%; background: linear-gradient(135deg, #5a3a2a 0%, #3a2a1a 100%); border-radius:10%; box-shadow: inset -4px 0 8px rgba(0,0,0,0.2); }
.scn-eva-saddened .tree-leaves   { position:absolute; top:10%; left:20%; width:40%; height:50%; background: radial-gradient(ellipse at 50% 50%, #6a9a5a 0%, #4a7a3a 100%); border-radius:50%; filter: blur(8px); animation: ev-leaves 25s ease-in-out infinite alternate; }
.scn-eva-saddened .figure-eva    { position:absolute; bottom:10%; left:45%; width:12%; height:35%; background: linear-gradient(180deg, #2a3a4a 0%, #1a2a3a 100%); border-radius:40% 40% 30% 30% / 60% 60% 40% 40%; transform-origin: bottom center; animation: ev-eva 10s ease-in-out infinite; }
.scn-eva-saddened .dress-eva     { position:absolute; bottom:8%; left:44%; width:14%; height:20%; background: linear-gradient(180deg, #5a6a7a 0%, #3a4a5a 100%); border-radius:30% 30% 40% 40% / 50% 50% 30% 30%; transform: scaleY(0.9); animation: ev-dress 8s ease-in-out infinite alternate; }
.scn-eva-saddened .shadow-leaf   { position:absolute; bottom:25%; left:40%; width:8%; height:4%; background: rgba(0,0,0,0.15); border-radius:50%; filter: blur(3px); animation: ev-shadow 9s ease-in-out infinite alternate; }
.scn-eva-saddened .sun-ray       { position:absolute; top:20%; left:40%; width:30%; height:60%; background: linear-gradient(180deg, rgba(255,255,220,0.1) 0%, rgba(255,255,220,0.05) 100%); transform: rotate(15deg); animation: ev-ray 14s ease-in-out infinite alternate; }
@keyframes ev-sky    { 0% { opacity:0.3; } 50% { opacity:0.6; } 100% { opacity:0.4; } }
@keyframes ev-grass  { 0% { transform: translateY(0); } 50% { transform: translateY(-4px); } 100% { transform: translateY(0); } }
@keyframes ev-leaves { 0% { transform: scale(0.9) translateY(0); } 50% { transform: scale(1.05) translateY(-6px); } 100% { transform: scale(0.95) translateY(-2px); } }
@keyframes ev-eva    { 0%,100% { transform: translateX(0) rotate(0deg); } 25% { transform: translateX(2px) rotate(2deg); } 50% { transform: translateX(-2px) rotate(-1deg); } 75% { transform: translateX(1px) rotate(1deg); } }
@keyframes ev-dress  { 0% { transform: scaleY(0.9) translateY(0); } 100% { transform: scaleY(1) translateY(-2px); } }
@keyframes ev-shadow { 0% { transform: translateX(0) scale(1); } 100% { transform: translateX(8px) scale(1.2); } }
@keyframes ev-ray    { 0% { transform: rotate(15deg) scaleX(0.8); opacity:0.2; } 50% { transform: rotate(20deg) scaleX(1.1); opacity:0.5; } 100% { transform: rotate(10deg) scaleX(0.9); opacity:0.3; } }

/* Scene: st-clare-marie (dim interior, calm) */
.scn-st-clare-marie { background: linear-gradient(180deg, #2a1e1e 0%, #3a2a2a 40%, #1a1212 100%), radial-gradient(ellipse at 60% 80%, #4a3a3a 0%, transparent 70%); }
.scn-st-clare-marie .room-bg { position:absolute; inset:0 0 30% 0; background: linear-gradient(160deg, #3a2a2a 0%, #2a1e1e 100%); animation: scm1-bg 15s ease-in-out infinite alternate; }
.scn-st-clare-marie .floor   { position:absolute; bottom:0; left:0; right:0; height:30%; background: linear-gradient(0deg, #1a1212 0%, #2a1e1e 100%); border-radius:30% 30% 0 0; box-shadow: inset 0 8px 16px rgba(0,0,0,0.6); }
.scn-st-clare-marie .window  { position:absolute; top:15%; left:60%; width:50px; height:70px; background: radial-gradient(ellipse at 50% 50%, #406070 0%, #1a2a3a 100%); border-radius:4px 4px 20px 20px; box-shadow: 0 0 20px 6px rgba(64,96,112,0.4); animation: scm1-glow 8s ease-in-out infinite alternate; }
.scn-st-clare-marie .curtain { position:absolute; top:15%; left:60%; width:60px; height:75px; background: linear-gradient(180deg, #5a4a3a 0%, #4a3a2a 100%); border-radius:4px 4px 20px 20px; opacity:0.6; filter: blur(2px); animation: scm1-curl 10s ease-in-out infinite; }
.scn-st-clare-marie .armchair{ position:absolute; bottom:30%; left:20%; width:50px; height:40px; background: linear-gradient(160deg, #6a4a3a 0%, #4a2a2a 100%); border-radius:40% 40% 20% 20%; box-shadow: 0 4px 8px rgba(0,0,0,0.5); animation: scm1-chair 12s ease-in-out infinite; }
.scn-st-clare-marie .table   { position:absolute; bottom:30%; left:35%; width:30px; height:15px; background: linear-gradient(180deg, #5a3a2a 0%, #3a2a1a 100%); border-radius:4px; box-shadow: 0 2px 4px rgba(0,0,0,0.4); }
.scn-st-clare-marie .bottle  { position:absolute; bottom:35%; left:36%; width:6px; height:12px; background: linear-gradient(180deg, #a08060 0%, #806040 100%); border-radius:40% 40% 10% 10%; box-shadow: 0 0 6px 2px rgba(160,128,96,0.3); animation: scm1-bottle 6s ease-in-out infinite; }
.scn-st-clare-marie .figure  { position:absolute; bottom:30%; left:15%; 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; animation: scm1-fig 8s ease-in-out infinite; }
@keyframes scm1-bg     { 0% { opacity:0.7 } 50% { opacity:0.9 } 100% { opacity:0.7 } }
@keyframes scm1-glow   { 0% { box-shadow:0 0 10px 3px rgba(64,96,112,0.3); opacity:0.6 } 50% { box-shadow:0 0 25px 8px rgba(64,96,112,0.5); opacity:0.9 } 100% { box-shadow:0 0 15px 5px rgba(64,96,112,0.4); opacity:0.7 } }
@keyframes scm1-curl   { 0% { transform:translateX(0); } 50% { transform:translateX(-3px); } 100% { transform:translateX(0); } }
@keyframes scm1-chair  { 0% { transform:translateY(0); } 50% { transform:translateY(-2px); } 100% { transform:translateY(0); } }
@keyframes scm1-bottle  { 0% { transform:rotate(-2deg); } 50% { transform:rotate(2deg); } 100% { transform:rotate(-2deg); } }
@keyframes scm1-fig    { 0% { transform:translateX(0) rotate(-1deg); } 25% { transform:translateX(3px) rotate(1deg); } 50% { transform:translateX(0) rotate(0); } 75% { transform:translateX(-3px) rotate(-1deg); } 100% { transform:translateX(0); } }

/* Scene: miss-ophelia-intro (bright interior, calm) */
.scn-miss-ophelia-intro { background: linear-gradient(180deg, #f0e8d8 0%, #d8c8b0 50%, #c8b8a0 100%), radial-gradient(ellipse at 50% 30%, #fff8e0 0%, transparent 70%); }
.scn-miss-ophelia-intro .wall-back { position:absolute; inset:0 0 35% 0; background: linear-gradient(180deg, #f0e8d8 0%, #e0d0c0 100%); }
.scn-miss-ophelia-intro .wall-front { position:absolute; bottom:35%; left:0; right:0; height:65%; background: linear-gradient(180deg, #c8b8a0 0%, #b8a890 100%); border-radius:20% 20% 0 0; box-shadow: inset 0 6px 12px rgba(0,0,0,0.1); }
.scn-miss-ophelia-intro .window   { position:absolute; top:10%; left:50%; width:70px; height:90px; background: radial-gradient(ellipse at 50% 50%, #fff8f0 0%, #d0c8b0 100%); border-radius:6px 6px 30px 30px; box-shadow: 0 0 30px 12px rgba(255,248,240,0.6); animation: moi2-light 10s ease-in-out infinite alternate; }
.scn-miss-ophelia-intro .curtains { position:absolute; top:10%; left:50%; width:80px; height:95px; background: linear-gradient(180deg, #b8a890 0%, #a89880 100%); border-radius:6px 6px 30px 30px; opacity:0.4; filter: blur(3px); animation: moi2-curl 12s ease-in-out infinite; }
.scn-miss-ophelia-intro .table    { position:absolute; bottom:35%; left:20%; width:60px; height:20px; background: linear-gradient(180deg, #a08060 0%, #806040 100%); border-radius:6px; box-shadow: 0 4px 8px rgba(0,0,0,0.15); }
.scn-miss-ophelia-intro .book     { position:absolute; bottom:40%; left:22%; width:14px; height:20px; background: linear-gradient(180deg, #607080 0%, #405060 100%); border-radius:2px; transform:rotate(-10deg); animation: moi2-book 8s ease-in-out infinite; }
.scn-miss-ophelia-intro .kettle   { position:absolute; bottom:35%; left:40%; width:16px; height:18px; background: radial-gradient(ellipse at 50% 60%, #b09880 0%, #806040 100%); border-radius:40% 40% 20% 20%; box-shadow: 0 2px 4px rgba(0,0,0,0.2); }
.scn-miss-ophelia-intro .figure   { position:absolute; bottom:35%; left:8%; width:20px; height:50px; background: linear-gradient(180deg, #4a4a6a 0%, #2a2a4a 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: moi2-fig 9s ease-in-out infinite; }
@keyframes moi2-light  { 0% { opacity:0.8; box-shadow:0 0 20px 8px rgba(255,248,240,0.4); } 50% { opacity:1; box-shadow:0 0 40px 16px rgba(255,248,240,0.7); } 100% { opacity:0.9; box-shadow:0 0 25px 10px rgba(255,248,240,0.5); } }
@keyframes moi2-curl   { 0% { transform:translateX(0); } 50% { transform:translateX(-4px); } 100% { transform:translateX(0); } }
@keyframes moi2-book   { 0% { transform:rotate(-10deg) translateY(0); } 50% { transform:rotate(-8deg) translateY(-1px); } 100% { transform:rotate(-10deg) translateY(0); } }
@keyframes moi2-fig    { 0% { transform:translateX(0) rotate(-1deg); } 30% { transform:translateX(2px) rotate(1deg); } 60% { transform:translateX(-2px) rotate(-1deg); } 100% { transform:translateX(0); } }

/* Scene: miss-ophelia-packing (bright interior, close-up on objects) */
.scn-miss-ophelia-packing { background: linear-gradient(180deg, #e8dcc8 0%, #d0c4b0 100%), radial-gradient(ellipse at 70% 60%, #f0e8d8 0%, transparent 60%); }
.scn-miss-ophelia-packing .trunk     { position:absolute; bottom:20%; left:15%; width:80px; height:50px; background: linear-gradient(160deg, #8a7a6a 0%, #6a5a4a 100%); border-radius:6px 6px 12px 12px; box-shadow: 0 6px 12px rgba(0,0,0,0.3); animation: mop3-trunk 14s ease-in-out infinite; }
.scn-miss-ophelia-packing .carpet-bag{ position:absolute; bottom:25%; right:20%; width:40px; height:35px; background: linear-gradient(180deg, #b09890 0%, #907870 100%); border-radius:30% 30% 20% 20%; transform:rotate(5deg); box-shadow: 0 4px 8px rgba(0,0,0,0.2); animation: mop3-bag 12s ease-in-out infinite; }
.scn-miss-ophelia-packing .bandbox   { position:absolute; bottom:45%; left:40%; width:30px; height:20px; background: linear-gradient(180deg, #c0b0a0 0%, #a89888 100%); border-radius:8px; box-shadow: 0 2px 6px rgba(0,0,0,0.15); transform:rotate(-8deg); }
.scn-miss-ophelia-packing .bonnet    { position:absolute; bottom:50%; left:42%; width:18px; height:12px; background: radial-gradient(ellipse at 50% 60%, #e0d0c0 0%, #c0b0a0 100%); border-radius:50%; box-shadow: 0 0 8px 2px rgba(255,255,255,0.3); animation: mop3-bonnet 10s ease-in-out infinite; }
.scn-miss-ophelia-packing .tape-box  { position:absolute; bottom:20%; right:10%; width:20px; height:14px; background: linear-gradient(180deg, #b09880 0%, #806040 100%); border-radius:4px; transform:rotate(12deg); box-shadow: 0 2px 4px rgba(0,0,0,0.2); }
.scn-miss-ophelia-packing .ribbon    { position:absolute; bottom:28%; right:22%; width:20px; height:4px; background: linear-gradient(90deg, #b87878 0%, #d09898 50%, #b87878 100%); border-radius:2px; animation: mop3-ribbon 6s ease-in-out infinite; }
.scn-miss-ophelia-packing .hand      { position:absolute; bottom:20%; left:25%; width:14px; height:18px; background: linear-gradient(180deg, #d0b8a0 0%, #b8a088 100%); border-radius:30% 30% 20% 20%; transform:rotate(-15deg); animation: mop3-hand 7s ease-in-out infinite; }
@keyframes mop3-trunk  { 0% { transform:translateY(0); } 50% { transform:translateY(-3px); } 100% { transform:translateY(0); } }
@keyframes mop3-bag    { 0% { transform:rotate(5deg) translateX(0); } 50% { transform:rotate(5deg) translateX(-2px); } 100% { transform:rotate(5deg) translateX(0); } }
@keyframes mop3-bonnet { 0% { transform:rotate(-2deg); } 50% { transform:rotate(3deg); } 100% { transform:rotate(-2deg); } }
@keyframes mop3-ribbon { 0% { transform:translateX(0) scaleX(1); } 50% { transform:translateX(4px) scaleX(0.8); } 100% { transform:translateX(0) scaleX(1); } }
@keyframes mop3-hand   { 0% { transform:translateY(0) rotate(-15deg); } 50% { transform:translateY(-2px) rotate(-13deg); } 100% { transform:translateY(0) rotate(-15deg); } }

/* Scene: landing-new-orleans (sunlit, wide horizon) */
.scn-landing-new-orleans { background: linear-gradient(180deg, #87CEEB 0%, #c0d8e8 40%, #e0e8f0 60%), radial-gradient(ellipse at 50% 100%, #f0e8d0 0%, transparent 70%); }
.scn-landing-new-orleans .sky       { position:absolute; inset:0 0 50% 0; background: linear-gradient(180deg, #87CEEB 0%, #b0d0e8 100%); animation: lno4-sky 20s ease-in-out infinite alternate; }
.scn-landing-new-orleans .water     { position:absolute; bottom:0; left:0; right:0; height:50%; background: linear-gradient(180deg, #6a8a9a 0%, #4a6a7a 100%); border-radius:40% 60% 0 0 / 20% 30% 0 0; box-shadow: inset 0 8px 20px rgba(0,0,0,0.2); animation: lno4-water 15s ease-in-out infinite; }
.scn-landing-new-orleans .dock      { position:absolute; bottom:40%; left:0; right:30%; height:10%; background: linear-gradient(180deg, #8a7a6a 0%, #6a5a4a 100%); border-radius:0 10px 10px 0; box-shadow: 0 -4px 8px rgba(0,0,0,0.2); }
.scn-landing-new-orleans .steamboat { position:absolute; bottom:40%; right:10%; width:100px; height:40px; background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%); border-radius:40% 40% 10% 10% / 60% 60% 20% 20%; box-shadow: 0 4px 12px rgba(0,0,0,0.4); animation: lno4-boat 12s ease-in-out infinite; }
.scn-landing-new-orleans .smoke     { position:absolute; bottom:65%; right:30%; width:20px; height:20px; background: radial-gradient(ellipse, rgba(200,200,200,0.4) 0%, transparent 100%); border-radius:50%; filter: blur(4px); }
.scn-landing-new-orleans .plume1    { animation: lno4-smoke1 8s ease-out infinite; }
.scn-landing-new-orleans .plume2    { bottom:68%; right:25%; animation: lno4-smoke2 10s ease-out infinite 2s; }
.scn-landing-new-orleans .boxes     { position:absolute; bottom:42%; left:10%; width:30px; height:15px; background: linear-gradient(180deg, #b09880 0%, #806040 100%); border-radius:4px; box-shadow: 0 2px 4px rgba(0,0,0,0.2); transform:skewX(-5deg); animation: lno4-boxes 14s ease-in-out infinite; }
.scn-landing-new-orleans .figures   { position:absolute; bottom:42%; left:20%; width:10px; height:20px; background: #2a2a3a; border-radius:30% 30% 10% 10% / 40% 40% 20% 20%; box-shadow: 0 2px 4px rgba(0,0,0,0.3); animation: lno4-figs 9s ease-in-out infinite; }
@keyframes lno4-sky    { 0% { opacity:0.8 } 50% { opacity:1 } 100% { opacity:0.85 } }
@keyframes lno4-water  { 0% { transform:translateY(0); } 50% { transform:translateY(-3px); } 100% { transform:translateY(0); } }
@keyframes lno4-boat   { 0% { transform:translateX(0) rotate(0); } 50% { transform:translateX(4px) rotate(1deg); } 100% { transform:translateX(0) rotate(0); } }
@keyframes lno4-smoke1 { 0% { transform:translateY(0) scale(1); opacity:0.5; } 50% { transform:translateY(-20px) scale(1.5); opacity:0.2; } 100% { transform:translateY(-40px) scale(0.5); opacity:0; } }
@keyframes lno4-smoke2 { 0% { transform:translateY(0) scale(1); opacity:0.4; } 50% { transform:translateY(-18px) scale(1.3); opacity:0.1; } 100% { transform:translateY(-36px) scale(0.6); opacity:0; } }
@keyframes lno4-boxes { 0% { transform:skewX(-5deg) translateY(0); } 50% { transform:skewX(-5deg) translateY(-2px); } 100% { transform:skewX(-5deg) translateY(0); } }
@keyframes lno4-figs   { 0% { transform:translateX(0); } 30% { transform:translateX(4px); } 60% { transform:translateX(-2px); } 100% { transform:translateX(0); } }

.scn-tom-summoned { background: linear-gradient(135deg, #2a1a0e 0%, #4a2a1a 40%, #6a3a2a 80%), radial-gradient(ellipse at 60% 30%, #f0c080 0%, transparent 50%); }
.scn-tom-summoned .wall   { position:absolute; inset:0 0 40% 0; background: linear-gradient(180deg, #8a6a4a 0%, #6a4a3a 100%); border-bottom: 4px solid #3a2a1a; }
.scn-tom-summoned .floor  { position:absolute; bottom:0; left:0; right:0; height:40%; background: linear-gradient(180deg, #5a3a2a 0%, #3a2a1a 100%); }
.scn-tom-summoned .window { position:absolute; top:15%; right:20%; width:30%; height:35%; background: linear-gradient(135deg, #b0d0e0 0%, #8090b0 100%); border: 8px solid #4a2a1a; border-radius: 4px; box-shadow: inset 0 0 20px rgba(255,255,200,.5); animation: ts-window 8s ease-in-out infinite alternate; }
.scn-tom-summoned .lamp   { position:absolute; top:8%; left:35%; width:20px; height:30px; background: radial-gradient(ellipse 20px 30px, #ffe080 0%, #b08040 60%, transparent 100%); border-radius: 50%; box-shadow: 0 0 40px 15px #f0c060, 0 0 80px 30px rgba(240,192,96,.3); animation: ts-lamp 4s ease-in-out infinite alternate; }
.scn-tom-summoned .table  { position:absolute; bottom:20%; left:25%; width:20%; height:8%; background: linear-gradient(180deg, #6a4a2a 0%, #3a2a1a 100%); border-radius: 4px; box-shadow: 0 4px 8px rgba(0,0,0,.5); }
.scn-tom-summoned .figure { position:absolute; bottom:25%; left:40%; width:24px; height:60px; background: linear-gradient(180deg, #1a1a1a 0%, #0a0a0a 100%); border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%; transform-origin: bottom center; animation: ts-figure 6s ease-in-out infinite; }
.scn-tom-summoned .shadow { position:absolute; bottom:20%; left:38%; width:40px; height:10px; background: rgba(0,0,0,.4); border-radius: 50%; filter: blur(4px); animation: ts-shadow 6s ease-in-out infinite; }
@keyframes ts-window  { 0% { opacity:.7; filter: brightness(1); } 50% { opacity:1; filter: brightness(1.2); } 100% { opacity:.8; filter: brightness(1); } }
@keyframes ts-lamp    { 0% { opacity:.8; transform: scale(1); } 50% { opacity:1; transform: scale(1.08); } 100% { opacity:.9; transform: scale(1); } }
@keyframes ts-figure  { 0% { transform: translateX(0) rotate(0deg); } 33% { transform: translateX(8px) rotate(2deg); } 66% { transform: translateX(-4px) rotate(-1deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes ts-shadow  { 0% { transform: scaleX(1); opacity:.4; } 33% { transform: scaleX(.8); opacity:.3; } 66% { transform: scaleX(1.1); opacity:.5; } 100% { transform: scaleX(1); opacity:.4; } }

.scn-haley-pursuit-begins { background: linear-gradient(180deg, #7aa0c0 0%, #c0d8e8 30%, #e8d8b8 60%, #d0b080 100%), radial-gradient(ellipse at 70% 20%, #ffe0a0 0%, transparent 60%); }
.scn-haley-pursuit-begins .sky   { position:absolute; inset:0 0 40% 0; background: linear-gradient(180deg, #a0c0e0 0%, #d0e0f0 60%, transparent); animation: hp-sky 20s ease-in-out infinite alternate; }
.scn-haley-pursuit-begins .sun   { position:absolute; top:8%; right:25%; width:60px; height:60px; background: radial-gradient(circle, #ffe8b0 0%, #ffd080 50%, transparent 100%); border-radius: 50%; box-shadow: 0 0 60px 20px #ffd080; animation: hp-sun 15s ease-in-out infinite alternate; }
.scn-haley-pursuit-begins .hills { position:absolute; bottom:30%; left:0; right:0; height:20%; background: linear-gradient(180deg, #6a7a5a 0%, #4a5a3a 100%); border-radius: 30% 70% 0 0 / 60% 80% 0 0; box-shadow: inset 0 8px 20px rgba(0,0,0,.3); animation: hp-hills 25s ease-in-out infinite alternate; }
.scn-haley-pursuit-begins .road  { position:absolute; bottom:18%; left:10%; right:10%; height:12%; background: linear-gradient(180deg, #8a7a5a 0%, #6a5a3a 100%); border-radius: 10% 10% 40% 40% / 20% 20% 60% 60%; transform: perspective(400px) rotateX(20deg); }
.scn-haley-pursuit-begins .rider { position:absolute; bottom:22%; left:20%; width:30px; height:45px; background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%); border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%; transform-origin: bottom center; animation: hp-rider 3s ease-in-out infinite; }
.scn-haley-pursuit-begins .dust-a { position:absolute; bottom:18%; left:15%; width:50px; height:20px; background: rgba(180,160,120,.5); border-radius: 50%; filter: blur(6px); animation: hp-dust 4s ease-in-out infinite; }
.scn-haley-pursuit-begins .dust-b { position:absolute; bottom:20%; left:35%; width:40px; height:18px; background: rgba(180,160,120,.4); border-radius: 50%; filter: blur(5px); animation: hp-dust 5s ease-in-out infinite 1s; }
.scn-haley-pursuit-begins .horse { position:absolute; bottom:18%; left:18%; width:40px; height:25px; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius: 30% 60% 40% 40% / 40% 60% 30% 30%; transform-origin: bottom left; animation: hp-horse 3s ease-in-out infinite; }
@keyframes hp-sky    { 0% { opacity:.8; } 50% { opacity:1; } 100% { opacity:.85; } }
@keyframes hp-sun    { 0% { transform: scale(1); } 50% { transform: scale(1.05); } 100% { transform: scale(.95); } }
@keyframes hp-hills  { 0% { transform: translateY(0); } 50% { transform: translateY(-2px); } 100% { transform: translateY(1px); } }
@keyframes hp-rider  { 0% { transform: translateX(0) rotate(-2deg); } 25% { transform: translateX(10px) rotate(2deg); } 50% { transform: translateX(20px) rotate(-1deg); } 75% { transform: translateX(30px) rotate(1deg); } 100% { transform: translateX(40px) rotate(0deg); } }
@keyframes hp-dust   { 0% { transform: translateX(0) scale(1); opacity:.6; } 50% { transform: translateX(30px) scale(1.2); opacity:.3; } 100% { transform: translateX(60px) scale(1.5); opacity:0; } }
@keyframes hp-horse  { 0% { transform: translateX(0) rotate(-3deg); } 25% { transform: translateX(8px) rotate(3deg); } 50% { transform: translateX(16px) rotate(-2deg); } 75% { transform: translateX(24px) rotate(2deg); } 100% { transform: translateX(32px) rotate(0); } }

.scn-sam-leads-haley-astray { background: linear-gradient(180deg, #b0d0b0 0%, #d0e0c0 30%, #f0e8c0 60%, #d0c080 100%), radial-gradient(ellipse at 30% 60%, #f0e8c0 0%, transparent 70%); }
.scn-sam-leads-haley-astray .sky     { position:absolute; inset:0 0 50% 0; background: linear-gradient(180deg, #90b8d0 0%, #b0d8e8 50%, transparent); animation: sh-sky 12s ease-in-out infinite alternate; }
.scn-sam-leads-haley-astray .ground  { position:absolute; bottom:0; left:0; right:0; height:50%; background: linear-gradient(180deg, #8aa86a 0%, #6a8a4a 100%); }
.scn-sam-leads-haley-astray .tree-l  { position:absolute; bottom:40%; left:5%; width:25px; height:50%; background: linear-gradient(180deg, #4a6a2a 0%, #2a4a1a 100%); border-radius: 30% 30% 20% 20% / 60% 60% 40% 40%; transform-origin: bottom center; animation: sh-tree 14s ease-in-out infinite; }
.scn-sam-leads-haley-astray .tree-r  { position:absolute; bottom:40%; right:8%; width:30px; height:45%; background: linear-gradient(180deg, #5a7a3a 0%, #3a5a2a 100%); border-radius: 40% 30% 20% 20% / 60% 50% 40% 40%; transform-origin: bottom center; animation: sh-tree 12s ease-in-out infinite reverse; }
.scn-sam-leads-haley-astray .sam     { position:absolute; bottom:22%; left:30%; width:20px; height:40px; background: linear-gradient(180deg, #3a4a3a 0%, #2a3a2a 100%); border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%; transform-origin: bottom center; animation: sh-figure 4s ease-in-out infinite; }
.scn-sam-leads-haley-astray .andy    { position:absolute; bottom:22%; left:45%; width:18px; height:38px; background: linear-gradient(180deg, #4a4a2a 0%, #3a3a1a 100%); border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%; transform-origin: bottom center; animation: sh-figure 4.5s ease-in-out infinite 0.5s; }
.scn-sam-leads-haley-astray .haley   { position:absolute; bottom:22%; right:15%; width:22px; height:44px; background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%); border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%; transform-origin: bottom center; animation: sh-figure 5s ease-in-out infinite 2s; }
.scn-sam-leads-haley-astray .bubble  { position:absolute; bottom:45%; left:35%; width:10px; height:10px; background: rgba(255,255,255,.3); border-radius: 50%; box-shadow: 0 0 6px 2px rgba(255,255,255,.4); animation: sh-bubble 3s ease-in-out infinite; }
@keyframes sh-sky    { 0% { opacity:.85; } 50% { opacity:1; } 100% { opacity:.9; } }
@keyframes sh-tree   { 0% { transform: rotate(0deg); } 25% { transform: rotate(2deg); } 50% { transform: rotate(-1deg); } 75% { transform: rotate(3deg); } 100% { transform: rotate(0deg); } }
@keyframes sh-figure { 0% { transform: translateX(0) rotate(0deg); } 33% { transform: translateX(8px) rotate(5deg); } 66% { transform: translateX(-5px) rotate(-3deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes sh-bubble { 0% { transform: translateY(0) scale(1); opacity:.5; } 50% { transform: translateY(-15px) scale(1.3); opacity:.8; } 100% { transform: translateY(0) scale(1); opacity:.5; } }

.scn-eliza-icescape { background: linear-gradient(180deg, #1a1a3e 0%, #2a2a5e 30%, #3a3a6e 60%, #4a4a7e 100%), radial-gradient(ellipse at 50% 30%, #e0e8f0 0%, transparent 60%); }
.scn-eliza-icescape .sky       { position:absolute; inset:0 0 40% 0; background: linear-gradient(180deg, #3a4a6e 0%, #5a6a8e 40%, transparent); animation: ei-sky 20s ease-in-out infinite alternate; }
.scn-eliza-icescape .ice-far   { position:absolute; bottom:25%; left:0; right:0; height:15%; background: linear-gradient(180deg, #b0c8e0 0%, #8098b0 100%); clip-path: polygon(0% 60%, 10% 20%, 20% 40%, 30% 10%, 45% 30%, 55% 5%, 70% 25%, 85% 15%, 100% 50%, 100% 100%, 0% 100%); filter: blur(2px); animation: ei-ice 12s ease-in-out infinite; }
.scn-eliza-icescape .ice-mid   { position:absolute; bottom:15%; left:0; right:0; height:18%; background: linear-gradient(180deg, #c0d8e8 0%, #90a8c0 100%); clip-path: polygon(0% 40%, 8% 10%, 18% 30%, 28% 5%, 40% 20%, 52% 8%, 65% 25%, 78% 12%, 90% 35%, 100% 20%, 100% 100%, 0% 100%); animation: ei-ice 14s ease-in-out infinite reverse; }
.scn-eliza-icescape .ice-near  { position:absolute; bottom:4%; left:0; right:0; height:20%; background: linear-gradient(180deg, #d0e0f0 0%, #a0b8d0 100%); clip-path: polygon(0% 30%, 5% 5%, 12% 20%, 22% 8%, 32% 15%, 42% 3%, 55% 18%, 68% 10%, 80% 22%, 90% 8%, 100% 25%, 100% 100%, 0% 100%); filter: drop-shadow(0 -4px 6px rgba(0,0,0,.2)); animation: ei-ice 16s ease-in-out infinite; }
.scn-eliza-icescape .eliza     { position:absolute; bottom:30%; left:45%; width:28px; 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: ei-leap 3s ease-in-out infinite; }
.scn-eliza-icescape .child     { position:absolute; bottom:32%; left:43%; width:14px; height:24px; background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: ei-leap 3s ease-in-out infinite .2s; }
.scn-eliza-icescape .splash    { position:absolute; bottom:10%; left:40%; width:30px; height:10px; background: rgba(200,220,255,.4); border-radius: 50%; filter: blur(3px); animation: ei-splash 1.5s ease-out infinite; }
.scn-eliza-icescape .pursuer   { position:absolute; bottom:22%; right:15%; width:25px; height:45px; background: linear-gradient(180deg, #2a2a2a 0%, #1a1a1a 100%); border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%; transform-origin: bottom center; animation: ei-pursuer 4s ease-in-out infinite; }
@keyframes ei-sky    { 0% { opacity:.7; } 50% { opacity:1; } 100% { opacity:.8; } }
@keyframes ei-ice    { 0% { transform: translateX(0) rotate(0deg); } 25% { transform: translateX(10px) rotate(2deg); } 50% { transform: translateX(-5px) rotate(-1deg); } 75% { transform: translateX(8px) rotate(3deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes ei-leap   { 0% { transform: translateY(0) rotate(-5deg); } 30% { transform: translateY(-20px) rotate(5deg); } 60% { transform: translateY(-5px) rotate(-3deg); } 100% { transform: translateY(0) rotate(-1deg); } }
@keyframes ei-splash { 0% { transform: scale(1); opacity:.6; } 50% { transform: scale(2); opacity:.2; } 100% { transform: scale(3); opacity:0; } }
@keyframes ei-pursuer { 0% { transform: translateX(0) rotate(0deg); } 20% { transform: translateX(-10px) rotate(8deg); } 40% { transform: translateX(-20px) rotate(-5deg); } 60% { transform: translateX(-30px) rotate(6deg); } 80% { transform: translateX(-40px) rotate(-3deg); } 100% { transform: translateX(-50px) rotate(0deg); } }

/* shelby-signs-bill-of-sale */
.scn-shelby-signs-bill-of-sale {
  background: linear-gradient(180deg, #2a1a0e 0%, #1a0f08 40%, #0d0602 100%), radial-gradient(ellipse at 50% 70%, #4a2a18 0%, transparent 60%);
}
.scn-shelby-signs-bill-of-sale .wall-dark {
  position: absolute; inset: 0 0 35% 0;
  background: linear-gradient(180deg, #3e2a1a 0%, #1d120a 100%);
  animation: ssb-wall 14s ease-in-out infinite alternate;
}
.scn-shelby-signs-bill-of-sale .floor-plank {
  position: absolute; bottom: 0; left: 0; right: 0; height: 35%;
  background: linear-gradient(0deg, #1a0f08 0%, #3e2a1a 100%);
  border-radius: 20% 20% 0 0 / 10% 10% 0 0;
  box-shadow: inset 0 12px 20px rgba(0,0,0,0.6);
  animation: ssb-floor 10s ease-in-out infinite;
}
.scn-shelby-signs-bill-of-sale .desk-large {
  position: absolute; bottom: 22%; left: 20%; width: 60%; height: 18%;
  background: linear-gradient(180deg, #5a3a1e 0%, #3a2212 100%);
  border-radius: 4% 4% 8% 8% / 20% 20% 30% 30%;
  box-shadow: 0 8px 16px rgba(0,0,0,0.7);
  animation: ssb-desk 6s ease-in-out infinite alternate;
}
.scn-shelby-signs-bill-of-sale .paper-sheet {
  position: absolute; bottom: 30%; left: 35%; width: 24%; height: 10%;
  background: linear-gradient(135deg, #d4b87a 0%, #b8985a 50%, #a08040 100%);
  border-radius: 2% 8% 4% 6%;
  box-shadow: 0 4px 8px rgba(0,0,0,0.3);
  transform: rotate(-3deg);
  animation: ssb-paper 8s ease-in-out infinite;
}
.scn-shelby-signs-bill-of-sale .quill-writing {
  position: absolute; bottom: 32%; left: 44%; width: 2%; height: 14%;
  background: linear-gradient(180deg, #e8d4b0 0%, #8a6a40 100%);
  border-radius: 50% 50% 40% 40%;
  transform-origin: bottom center;
  animation: ssb-quill 1.5s ease-in-out infinite;
}
.scn-shelby-signs-bill-of-sale .hand-shadow {
  position: absolute; bottom: 28%; left: 40%; width: 8%; height: 12%;
  background: radial-gradient(ellipse at 50% 50%, #2a1a0e 0%, transparent 70%);
  border-radius: 50%;
  filter: blur(3px);
  animation: ssb-hand 2s ease-in-out infinite alternate;
}
.scn-shelby-signs-bill-of-sale .candle-glow {
  position: absolute; bottom: 38%; left: 30%; width: 12%; height: 12%;
  background: radial-gradient(circle, #ffd080 0%, #c08040 40%, transparent 80%);
  border-radius: 50%;
  box-shadow: 0 0 40px 20px #ffd08044, 0 0 80px 30px #c0804022;
  animation: ssb-candle 3s ease-in-out infinite alternate;
}
.scn-shelby-signs-bill-of-sale .figure-haley {
  position: absolute; bottom: 18%; right: 15%; width: 16%; height: 40%;
  background: linear-gradient(180deg, #1a1008 0%, #0a0602 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: ssb-haley 7s ease-in-out infinite;
}
@keyframes ssb-wall { 0% { opacity: 0.8 } 50% { opacity: 1 } 100% { opacity: 0.85 } }
@keyframes ssb-floor { 0%,100% { transform: translateY(0) } 50% { transform: translateY(-2px) } }
@keyframes ssb-desk { 0% { transform: translateY(0) } 50% { transform: translateY(-1px) scale(1.005) } 100% { transform: translateY(0) } }
@keyframes ssb-paper { 0%,100% { transform: rotate(-3deg) } 50% { transform: rotate(-2deg) translateY(-1px) } }
@keyframes ssb-quill { 0% { transform: rotate(0deg) } 25% { transform: rotate(-8deg) } 50% { transform: rotate(4deg) } 75% { transform: rotate(-6deg) } 100% { transform: rotate(0deg) } }
@keyframes ssb-hand { 0% { transform: translateY(0) scale(1) } 100% { transform: translateY(-3px) scale(1.1) } }
@keyframes ssb-candle { 0% { opacity: 0.8; transform: scale(0.95); } 50% { opacity: 1; transform: scale(1.05); } 100% { opacity: 0.85; transform: scale(1); } }
@keyframes ssb-haley { 0%,100% { transform: translateX(0) translateY(0) } 50% { transform: translateX(3px) translateY(-1px) } }

/* mrs-shelby-confronts */
.scn-mrs-shelby-confronts {
  background: linear-gradient(180deg, #2e1a10 0%, #1a0f08 40%, #0d0602 100%), radial-gradient(ellipse at 50% 60%, #4a2a1a 0%, transparent 70%);
}
.scn-mrs-shelby-confronts .bg-shadow {
  position: absolute; inset: 0;
  background: linear-gradient(135deg, #1a0f08 0%, #2e1a10 50%, #0d0602 100%);
  animation: msc-bg 16s ease-in-out infinite alternate;
}
.scn-mrs-shelby-confronts .table-center {
  position: absolute; bottom: 18%; left: 30%; width: 40%; height: 14%;
  background: linear-gradient(180deg, #6a4a2e 0%, #4a2e1a 100%);
  border-radius: 8% 8% 12% 12%;
  box-shadow: 0 6px 12px rgba(0,0,0,0.6);
  animation: msc-table 9s ease-in-out infinite;
}
.scn-mrs-shelby-confronts .mrs-figure {
  position: absolute; bottom: 14%; left: 35%; width: 14%; height: 50%;
  background: linear-gradient(180deg, #3a2212 0%, #1a0f08 100%);
  border-radius: 35% 35% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: msc-mrs 5s ease-in-out infinite alternate;
}
.scn-mrs-shelby-confronts .mr-figure {
  position: absolute; bottom: 14%; right: 35%; width: 14%; height: 50%;
  background: linear-gradient(180deg, #2e1a10 0%, #0d0602 100%);
  border-radius: 35% 35% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: msc-mr 5s ease-in-out infinite alternate-reverse;
}
.scn-mrs-shelby-confronts .window-dim {
  position: absolute; top: 12%; left: 12%; width: 20%; height: 30%;
  background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2e 100%);
  border: 6px solid #3e2a1a;
  border-radius: 4%;
  box-shadow: inset 0 0 30px rgba(0,0,0,0.7);
  animation: msc-window 12s ease-in-out infinite;
}
.scn-mrs-shelby-confronts .curtain-left {
  position: absolute; top: 10%; left: 8%; width: 8%; height: 38%;
  background: linear-gradient(180deg, #5a3a22 0%, #3a2212 100%);
  border-radius: 10% 30% 10% 30% / 20% 20% 30% 30%;
  animation: msc-curtain 8s ease-in-out infinite alternate;
}
.scn-mrs-shelby-confronts .curtain-right {
  position: absolute; top: 10%; right: 8%; width: 8%; height: 38%;
  background: linear-gradient(180deg, #5a3a22 0%, #3a2212 100%);
  border-radius: 30% 10% 30% 10% / 20% 20% 30% 30%;
  animation: msc-curtain 8s ease-in-out infinite alternate-reverse;
}
.scn-mrs-shelby-confronts .lantern-side {
  position: absolute; top: 30%; right: 18%; width: 6%; height: 12%;
  background: radial-gradient(circle, #ffd080 0%, #a06020 70%);
  border-radius: 50%;
  box-shadow: 0 0 30px 10px #ffd08033;
  animation: msc-lantern 3s ease-in-out infinite alternate;
}
@keyframes msc-bg { 0% { opacity: 0.7 } 50% { opacity: 1 } 100% { opacity: 0.8 } }
@keyframes msc-table { 0%,100% { transform: translateY(0) } 50% { transform: translateY(-3px) } }
@keyframes msc-mrs { 0% { transform: translateX(0) translateY(0) rotate(-1deg) } 50% { transform: translateX(4px) translateY(-2px) rotate(2deg) } 100% { transform: translateX(0) translateY(0) rotate(-1deg) } }
@keyframes msc-mr { 0% { transform: translateX(0) translateY(0) rotate(1deg) } 50% { transform: translateX(-4px) translateY(-2px) rotate(-2deg) } 100% { transform: translateX(0) translateY(0) rotate(1deg) } }
@keyframes msc-window { 0% { opacity: 0.6 } 50% { opacity: 0.9 } 100% { opacity: 0.7 } }
@keyframes msc-curtain { 0% { transform: translateX(0) } 50% { transform: translateX(4px) } 100% { transform: translateX(0) } }
@keyframes msc-lantern { 0% { opacity: 0.7; transform: scale(0.95); } 50% { opacity: 1; transform: scale(1.05); } 100% { opacity: 0.8; transform: scale(1); } }

/* mrs-shelby-pleads */
.scn-mrs-shelby-pleads {
  background: linear-gradient(180deg, #3a2a1a 0%, #1a1208 40%, #0d0802 100%), radial-gradient(ellipse at 50% 30%, #5a3a22 0%, transparent 70%);
}
.scn-mrs-shelby-pleads .bg-amber {
  position: absolute; inset: 0;
  background: linear-gradient(135deg, #4a2e1a 0%, #2a1a0e 50%, #1a0f08 100%);
  animation: msp-bg 14s ease-in-out infinite alternate;
}
.scn-mrs-shelby-pleads .floor-dark {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(0deg, #0d0802 0%, #1a1208 100%);
  border-radius: 30% 30% 0 0 / 15% 15% 0 0;
  box-shadow: inset 0 10px 20px rgba(0,0,0,0.6);
  animation: msp-floor 11s ease-in-out infinite;
}
.scn-mrs-shelby-pleads .door-frame {
  position: absolute; top: 8%; left: 38%; width: 24%; height: 60%;
  background: linear-gradient(180deg, #5a3a22 0%, #3a2212 100%);
  border-radius: 4%;
  box-shadow: inset 0 0 30px rgba(0,0,0,0.5);
  animation: msp-door 9s ease-in-out infinite alternate;
}
.scn-mrs-shelby-pleads .mrs-kneeling {
  position: absolute; bottom: 8%; left: 36%; width: 18%; height: 45%;
  background: linear-gradient(180deg, #c8553d 0%, #702243 100%);
  border-radius: 40% 40% 30% 30% / 70% 70% 40% 40%;
  transform-origin: bottom center;
  animation: msp-kneel 6s ease-in-out infinite;
}
.scn-mrs-shelby-pleads .hands-reaching {
  position: absolute; bottom: 40%; left: 40%; width: 10%; height: 12%;
  background: radial-gradient(ellipse at 50% 50%, #c8553d 0%, #702243 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: msp-hands 3s ease-in-out infinite alternate;
}
.scn-mrs-shelby-pleads .shelby-standing {
  position: absolute; bottom: 8%; right: 32%; width: 16%; height: 55%;
  background: linear-gradient(180deg, #1a1008 0%, #0a0602 100%);
  border-radius: 35% 35% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: msp-stand 7s ease-in-out infinite alternate;
}
.scn-mrs-shelby-pleads .candle-melt {
  position: absolute; bottom: 42%; left: 50%; width: 4%; height: 8%;
  background: linear-gradient(180deg, #ffd080 0%, #a06020 100%);
  border-radius: 30% 30% 20% 20%;
  box-shadow: 0 0 20px 8px #ffd08044;
  animation: msp-candle 4s ease-in-out infinite alternate;
}
.scn-mrs-shelby-pleads .shadow-pool {
  position: absolute; bottom: 0; left: 20%; width: 60%; height: 20%;
  background: radial-gradient(ellipse at 50% 100%, #0d0602 0%, transparent 70%);
  animation: msp-shadow 8s ease-in-out infinite;
}
@keyframes msp-bg { 0% { opacity: 0.7 } 50% { opacity: 1 } 100% { opacity: 0.8 } }
@keyframes msp-floor { 0%,100% { transform: translateY(0) } 50% { transform: translateY(-2px) } }
@keyframes msp-door { 0% { transform: scaleX(1) } 50% { transform: scaleX(1.02) } 100% { transform: scaleX(1) } }
@keyframes msp-kneel { 0% { transform: translateY(0) rotate(0deg) } 50% { transform: translateY(-3px) rotate(-2deg) } 100% { transform: translateY(0) rotate(0deg) } }
@keyframes msp-hands { 0% { transform: translateY(0) scale(1) } 50% { transform: translateY(-6px) scale(1.1) } 100% { transform: translateY(0) scale(1) } }
@keyframes msp-stand { 0% { transform: translateY(0) } 50% { transform: translateY(-2px) } 100% { transform: translateY(0) } }
@keyframes msp-candle { 0% { opacity: 0.7; transform: scaleY(0.95); } 50% { opacity: 1; transform: scaleY(1.05); } 100% { opacity: 0.8; transform: scaleY(1); } }
@keyframes msp-shadow { 0% { opacity: 0.5 } 50% { opacity: 0.8 } 100% { opacity: 0.5 } }

/* shelby-explains-necessity */
.scn-shelby-explains-necessity {
  background: linear-gradient(180deg, #1a0f08 0%, #0d0602 40%, #000 100%), radial-gradient(ellipse at 50% 50%, #2a1a0e 0%, transparent 70%);
}
.scn-shelby-explains-necessity .bg-deep-umber {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, #2a1a0e 0%, #1a0f08 50%, #0d0602 100%);
  animation: sen-bg 18s ease-in-out infinite alternate;
}
.scn-shelby-explains-necessity .chair-silhouette {
  position: absolute; bottom: 12%; left: 22%; width: 18%; height: 30%;
  background: linear-gradient(180deg, #1a1008 0%, #0a0602 100%);
  border-radius: 10% 10% 20% 20% / 30% 30% 40% 40%;
  box-shadow: 0 8px 16px rgba(0,0,0,0.6);
  animation: sen-chair 10s ease-in-out infinite;
}
.scn-shelby-explains-necessity .shelby-torso {
  position: absolute; bottom: 8%; left: 30%; width: 14%; height: 45%;
  background: linear-gradient(180deg, #2a1a0e 0%, #1a0f08 100%);
  border-radius: 30% 30% 25% 25% / 50% 50% 30% 30%;
  transform-origin: bottom center;
  animation: sen-torso 8s ease-in-out infinite alternate;
}
.scn-shelby-explains-necessity .head-bowed {
  position: absolute; bottom: 45%; left: 32%; width: 10%; height: 12%;
  background: radial-gradient(ellipse at 50% 50%, #2a1a0e 0%, #1a0f08 100%);
  border-radius: 50%;
  transform-origin: bottom center;
  animation: sen-head 6s ease-in-out infinite alternate;
}
.scn-shelby-explains-necessity .table-edge {
  position: absolute; bottom: 20%; left: 28%; width: 44%; height: 6%;
  background: linear-gradient(180deg, #5a3a22 0%, #3a2212 100%);
  border-radius: 4% 4% 10% 10% / 20% 20% 30% 30%;
  box-shadow: 0 4px 8px rgba(0,0,0,0.5);
  animation: sen-table 12s ease-in-out infinite;
}
.scn-shelby-explains-necessity .inkwell {
  position: absolute; bottom: 26%; left: 34%; width: 4%; height: 6%;
  background: radial-gradient(circle at 50% 50%, #1a1008 0%, #0a0602 100%);
  border-radius: 30% 30% 40% 40% / 40% 40% 30% 30%;
  box-shadow: 0 2px 4px rgba(0,0,0,0.4);
  animation: sen-inkwell 5s ease-in-out infinite;
}
.scn-shelby-explains-necessity .flicker-ember {
  position: absolute; top: 50%; left: 60%; width: 6%; height: 6%;
  background: radial-gradient(circle, #ff8040 0%, #c04020 40%, transparent 80%);
  border-radius: 50%;
  box-shadow: 0 0 30px 10px #ff804033, 0 0 60px 20px #c0402011;
  animation: sen-ember 2s ease-in-out infinite alternate;
}
.scn-shelby-explains-necessity .floor-pattern {
  position: absolute; bottom: 0; left: 0; right: 0; height: 20%;
  background: repeating-linear-gradient(0deg, #1a0f08 0px, #1a0f08 4px, #0d0602 4px, #0d0602 8px);
  animation: sen-floor 15s linear infinite;
}
@keyframes sen-bg { 0% { opacity: 0.7 } 50% { opacity: 1 } 100% { opacity: 0.8 } }
@keyframes sen-chair { 0%,100% { transform: translateY(0) } 50% { transform: translateY(-2px) } }
@keyframes sen-torso { 0% { transform: translateY(0) rotate(0deg) } 50% { transform: translateY(-1px) rotate(1deg) } 100% { transform: translateY(0) rotate(0deg) } }
@keyframes sen-head { 0% { transform: translateY(0) rotate(0deg) } 50% { transform: translateY(-2px) rotate(-5deg) } 100% { transform: translateY(0) rotate(0deg) } }
@keyframes sen-table { 0% { transform: scaleX(1) } 50% { transform: scaleX(1.01) } 100% { transform: scaleX(1) } }
@keyframes sen-inkwell { 0% { transform: scale(1) } 50% { transform: scale(1.05) } 100% { transform: scale(1) } }
@keyframes sen-ember { 0% { opacity: 0.6; transform: scale(0.9); } 50% { opacity: 1; transform: scale(1.2); } 100% { opacity: 0.7; transform: scale(1); } }
@keyframes sen-floor { 0% { background-position: 0 0; } 100% { background-position: 0 20px; } }

/* Scene: henrique-beats-dodo */
.scn-henrique-beats-dodo {
  background: linear-gradient(180deg, #f9e3b0 0%, #f0c87a 30%, #d4a34a 60%, #b8822a 100%),
              radial-gradient(ellipse at 70% 20%, #ffe28a 0%, transparent 60%);
}
.scn-henrique-beats-dodo .sky { position:absolute; inset:0 0 55% 0; background: linear-gradient(180deg, #87ceeb 0%, #b0e0ff 50%, #f0e6a0 100%); animation: he-sky 15s ease-in-out infinite alternate; }
.scn-henrique-beats-dodo .sun { position:absolute; top:12%; right:18%; width:60px; height:60px; background: radial-gradient(circle, #fff3c4 0%, #ffe080 40%, transparent 70%); border-radius:50%; box-shadow: 0 0 80px 30px #ffe080; animation: he-sun 20s infinite alternate; }
.scn-henrique-beats-dodo .ground { position:absolute; bottom:0; left:0; right:0; height:45%; background: linear-gradient(180deg, #8f6e3a 0%, #6a4f28 50%, #4a3520 100%); border-radius: 30% 20% 0 0 / 40% 30% 0 0; box-shadow: inset 0 10px 30px rgba(0,0,0,.3); animation: he-ground 8s ease-in-out infinite; }
.scn-henrique-beats-dodo .figure-a { position:absolute; bottom:38%; left:32%; width:28px; height:60px; background: linear-gradient(180deg, #3a2a1a 0%, #1a1208 100%); border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%; transform-origin: bottom center; animation: he-fig-a 2s ease-in-out infinite; }
.scn-henrique-beats-dodo .figure-b { position:absolute; bottom:36%; right:35%; width:30px; height:55px; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: he-fig-b 1.8s ease-in-out infinite; }
.scn-henrique-beats-dodo .shadow-a { position:absolute; bottom:30%; left:30%; width:40px; height:8px; background: rgba(0,0,0,.4); border-radius:50%; filter: blur(3px); animation: he-shadow 2s ease-in-out infinite; }
.scn-henrique-beats-dodo .shadow-b { position:absolute; bottom:30%; right:33%; width:40px; height:8px; background: rgba(0,0,0,.4); border-radius:50%; filter: blur(3px); animation: he-shadow 2s ease-in-out infinite 0.2s; }
.scn-henrique-beats-dodo .tree { position:absolute; bottom:40%; left:8%; width:12px; height:80px; background: linear-gradient(180deg, #4a3520 0%, #2a1a0a 100%); border-radius: 20%; transform: rotate(-5deg); animation: he-tree 25s ease-in-out infinite; }
.scn-henrique-beats-dodo .dust { position:absolute; bottom:35%; left:45%; width:30px; height:30px; background: radial-gradient(circle, rgba(200,170,100,.5) 0%, transparent 70%); border-radius:50%; filter: blur(4px); animation: he-dust 3s ease-out infinite; }
@keyframes he-sky { 0% { opacity:.8 } 50% { opacity:1 } 100% { opacity:.75 } }
@keyframes he-sun { 0% { transform: scale(1) translate(0,0); opacity:.9 } 50% { transform: scale(1.05) translate(-2px,-2px); opacity:1 } 100% { transform: scale(0.95) translate(2px,2px); opacity:.85 } }
@keyframes he-ground { 0%,100% { transform: translateY(0) } 50% { transform: translateY(-3px) } }
@keyframes he-fig-a { 0% { transform: translateX(0) translateY(0) rotate(-3deg) } 25% { transform: translateX(-4px) translateY(-2px) rotate(5deg) } 50% { transform: translateX(2px) translateY(0) rotate(-2deg) } 75% { transform: translateX(-2px) translateY(-1px) rotate(4deg) } 100% { transform: translateX(0) translateY(0) rotate(-3deg) } }
@keyframes he-fig-b { 0% { transform: translateX(0) translateY(0) rotate(2deg) } 25% { transform: translateX(5px) translateY(-1px) rotate(-4deg) } 50% { transform: translateX(-3px) translateY(0) rotate(3deg) } 75% { transform: translateX(1px) translateY(-1px) rotate(-2deg) } 100% { transform: translateX(0) translateY(0) rotate(2deg) } }
@keyframes he-shadow { 0%,100% { transform: scaleX(1) } 50% { transform: scaleX(0.8) } }
@keyframes he-tree { 0% { transform: rotate(-5deg) } 50% { transform: rotate(-2deg) } 100% { transform: rotate(-6deg) } }
@keyframes he-dust { 0% { transform: translate(0,0) scale(1); opacity:.6 } 100% { transform: translate(20px,-30px) scale(2); opacity:0 } }

/* Scene: brothers-argue-education */
.scn-brothers-argue-education {
  background: linear-gradient(180deg, #e8d8b8 0%, #c8b898 50%, #a89878 100%),
              radial-gradient(ellipse at 50% 30%, #f0e0c0 0%, transparent 60%);
}
.scn-brothers-argue-education .wall { position:absolute; inset:0 0 30% 0; background: linear-gradient(180deg, #e0d0b0 0%, #c8b898 100%); box-shadow: inset 0 0 60px rgba(0,0,0,.1); }
.scn-brothers-argue-education .floor { position:absolute; bottom:0; left:0; right:0; height:30%; background: linear-gradient(180deg, #8a7a6a 0%, #6a5a4a 100%); border-radius: 20% 20% 0 0 / 30% 30% 0 0; box-shadow: inset 0 10px 30px rgba(0,0,0,.3); }
.scn-brothers-argue-education .window { position:absolute; top:18%; right:10%; width:50px; height:70px; background: linear-gradient(180deg, #b0d4f0 0%, #d0e8ff 100%); border: 4px solid #7a6a5a; border-radius: 4px; box-shadow: inset 0 0 20px rgba(255,255,255,.3); animation: br-window 12s ease-in-out infinite; }
.scn-brothers-argue-education .brother-left { position:absolute; bottom:28%; left:28%; width:30px; height:55px; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: br-left 1.5s ease-in-out infinite; }
.scn-brothers-argue-education .brother-right { position:absolute; bottom:28%; right:25%; width:32px; height:58px; background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: br-right 1.7s ease-in-out infinite; }
.scn-brothers-argue-education .book { position:absolute; bottom:30%; left:45%; width:20px; height:26px; background: linear-gradient(180deg, #8a6a4a 0%, #6a4a2a 100%); border-radius: 3px; transform: rotate(15deg); box-shadow: 2px 2px 6px rgba(0,0,0,.3); animation: br-book 5s ease-in-out infinite; }
.scn-brothers-argue-education .shadow-left { position:absolute; bottom:22%; left:26%; width:40px; height:6px; background: rgba(0,0,0,.3); border-radius:50%; filter: blur(3px); animation: br-shadow 1.5s ease-in-out infinite; }
.scn-brothers-argue-education .shadow-right { position:absolute; bottom:22%; right:23%; width:42px; height:6px; background: rgba(0,0,0,.3); border-radius:50%; filter: blur(3px); animation: br-shadow 1.7s ease-in-out infinite; }
@keyframes br-window { 0%,100% { opacity:.8 } 50% { opacity:1 } }
@keyframes br-left { 0% { transform: translateX(0) translateY(0) rotate(0) } 25% { transform: translateX(-4px) translateY(-2px) rotate(6deg) } 50% { transform: translateX(2px) translateY(0) rotate(-3deg) } 75% { transform: translateX(-2px) translateY(-1px) rotate(4deg) } 100% { transform: translateX(0) translateY(0) rotate(0) } }
@keyframes br-right { 0% { transform: translateX(0) translateY(0) rotate(0) } 25% { transform: translateX(5px) translateY(-1px) rotate(-5deg) } 50% { transform: translateX(-3px) translateY(0) rotate(2deg) } 75% { transform: translateX(1px) translateY(-2px) rotate(-4deg) } 100% { transform: translateX(0) translateY(0) rotate(0) } }
@keyframes br-book { 0%,100% { transform: rotate(15deg) } 50% { transform: rotate(20deg) translateX(2px) } }
@keyframes br-shadow { 0%,100% { transform: scaleX(1) } 50% { transform: scaleX(0.8) } }

/* Scene: eva-sickens */
.scn-eva-sickens {
  background: linear-gradient(180deg, #6a4a3a 0%, #8a6a5a 30%, #a08070 60%, #c0a090 100%),
              radial-gradient(ellipse at 50% 40%, #d0b0a0 0%, transparent 70%);
}
.scn-eva-sickens .room-bg { position:absolute; inset:0; background: linear-gradient(180deg, #5a3a2a 0%, #7a5a4a 50%, #9a7a6a 100%); box-shadow: inset 0 0 100px rgba(0,0,0,.4); }
.scn-eva-sickens .bed { position:absolute; bottom:15%; left:20%; right:20%; height:40%; background: linear-gradient(180deg, #c0a090 0%, #a08070 100%); border-radius: 20% 20% 0 0 / 40% 40% 0 0; box-shadow: inset 0 -20px 30px rgba(0,0,0,.2); animation: evs-bed 20s ease-in-out infinite; }
.scn-eva-sickens .pillow { position:absolute; bottom:42%; left:35%; width:40px; height:20px; background: radial-gradient(ellipse, #f0e0d0 0%, #d0b8a8 100%); border-radius: 50%; box-shadow: 0 4px 8px rgba(0,0,0,.2); }
.scn-eva-sickens .child-figure { position:absolute; bottom:30%; left:40%; width:24px; height:40px; background: linear-gradient(180deg, #c8a898 0%, #a88878 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: evs-child 4s ease-in-out infinite; }
.scn-eva-sickens .mother-figure { position:absolute; bottom:28%; right:25%; width:30px; height:52px; background: linear-gradient(180deg, #7a5a4a 0%, #5a3a2a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: evs-mother 5s ease-in-out infinite; }
.scn-eva-sickens .lamp { position:absolute; top:25%; left:15%; width:20px; height:30px; background: linear-gradient(180deg, #d0a050 0%, #b08040 100%); border-radius: 10% 10% 30% 30% / 20% 20% 40% 40%; box-shadow: 0 0 40px 10px rgba(200,160,80,.5); animation: evs-lamp 3s ease-in-out infinite alternate; }
.scn-eva-sickens .curtains { position:absolute; top:0; bottom:55%; left:0; right:0; background: linear-gradient(180deg, #6a4a3a 0%, transparent 100%); border-radius: 0 0 40% 40% / 0 0 30% 30%; animation: evs-curtains 25s ease-in-out infinite; }
.scn-eva-sickens .shadow-bed { position:absolute; bottom:10%; left:15%; right:15%; height:15%; background: rgba(0,0,0,.3); border-radius: 50%; filter: blur(10px); animation: evs-shadow 20s ease-in-out infinite; }
@keyframes evs-bed { 0%,100% { transform: translateY(0) } 50% { transform: translateY(-2px) } }
@keyframes evs-child { 0% { transform: translateX(0) translateY(0) rotate(-2deg) } 25% { transform: translateX(3px) translateY(-1px) rotate(1deg) } 50% { transform: translateX(-1px) translateY(0) rotate(-2deg) } 75% { transform: translateX(2px) translateY(-2px) rotate(0) } 100% { transform: translateX(0) translateY(0) rotate(-2deg) } }
@keyframes evs-mother { 0% { transform: translateX(0) translateY(0) rotate(3deg) } 25% { transform: translateX(-2px) translateY(-1px) rotate(-2deg) } 50% { transform: translateX(1px) translateY(0) rotate(4deg) } 75% { transform: translateX(-1px) translateY(-2px) rotate(-1deg) } 100% { transform: translateX(0) translateY(0) rotate(3deg) } }
@keyframes evs-lamp { 0% { box-shadow: 0 0 30px 8px rgba(200,160,80,.4); opacity:.85 } 50% { box-shadow: 0 0 50px 15px rgba(200,160,80,.6); opacity:1 } 100% { box-shadow: 0 0 35px 10px rgba(200,160,80,.45); opacity:.9 } }
@keyframes evs-curtains { 0%,100% { opacity:.6 } 50% { opacity:.8 } }
@keyframes evs-shadow { 0%,100% { opacity:.4 } 50% { opacity:.6 } }

/* Scene: eva-pleads-for-slaves */
.scn-eva-pleads-for-slaves {
  background: linear-gradient(180deg, #3a2a1a 0%, #4a3a2a 30%, #5a4a3a 60%, #6a5a4a 100%),
              radial-gradient(ellipse at 50% 60%, #8a7a6a 0%, transparent 70%);
}
.scn-eva-pleads-for-slaves .room-dim { position:absolute; inset:0; background: linear-gradient(180deg, #2a1a0a 0%, #3a2a1a 50%, #4a3a2a 100%); box-shadow: inset 0 0 80px rgba(0,0,0,.5); }
.scn-eva-pleads-for-slaves .table { position:absolute; bottom:20%; left:30%; right:30%; height:12%; background: linear-gradient(180deg, #6a5a4a 0%, #4a3a2a 100%); border-radius: 5% 5% 10% 10%; box-shadow: 0 -4px 10px rgba(0,0,0,.4); }
.scn-eva-pleads-for-slaves .candle { position:absolute; bottom:28%; left:48%; width:8px; height:28px; background: linear-gradient(180deg, #c8a070 0%, #a08050 100%); border-radius: 20% 20% 10% 10%; }
.scn-eva-pleads-for-slaves .flame { position:absolute; bottom:48%; left:48%; width:10px; height:16px; background: radial-gradient(ellipse, #ffd080 0%, #ffa040 50%, transparent 100%); border-radius: 50% 50% 20% 20%; box-shadow: 0 0 30px 10px rgba(255,160,64,.6); animation: evp-flame 1.5s ease-in-out infinite alternate; }
.scn-eva-pleads-for-slaves .child-figure { position:absolute; bottom:22%; left:28%; width:24px; height:42px; background: linear-gradient(180deg, #8a7a6a 0%, #6a5a4a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: evp-child 4s ease-in-out infinite; }
.scn-eva-pleads-for-slaves .father-figure { position:absolute; bottom:22%; right:25%; width:32px; height:56px; background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: evp-father 5s ease-in-out infinite; }
.scn-eva-pleads-for-slaves .chair-back { position:absolute; bottom:20%; right:20%; width:20px; height:40px; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius: 10% 10% 20% 20%; transform: rotate(10deg); box-shadow: 2px 0 6px rgba(0,0,0,.3); animation: evp-chair 15s ease-in-out infinite; }
.scn-eva-pleads-for-slaves .shadow-join { position:absolute; bottom:12%; left:25%; right:25%; height:8%; background: rgba(0,0,0,.5); border-radius: 50%; filter: blur(6px); animation: evp-shadow 4s ease-in-out infinite; }
@keyframes evp-flame { 0% { transform: scaleY(1) translateY(0); opacity:.9 } 50% { transform: scaleY(1.1) translateY(-2px); opacity:1 } 100% { transform: scaleY(0.9) translateY(1px); opacity:.8 } }
@keyframes evp-child { 0% { transform: translateX(0) translateY(0) rotate(-2deg) } 25% { transform: translateX(2px) translateY(-1px) rotate(0) } 50% { transform: translateX(-1px) translateY(0) rotate(2deg) } 75% { transform: translateX(1px) translateY(-1px) rotate(-1deg) } 100% { transform: translateX(0) translateY(0) rotate(-2deg) } }
@keyframes evp-father { 0% { transform: translateX(0) translateY(0) rotate(4deg) } 25% { transform: translateX(-3px) translateY(-1px) rotate(-2deg) } 50% { transform: translateX(2px) translateY(0) rotate(5deg) } 75% { transform: translateX(-1px) translateY(-2px) rotate(-3deg) } 100% { transform: translateX(0) translateY(0) rotate(4deg) } }
@keyframes evp-chair { 0%,100% { transform: rotate(10deg) } 50% { transform: rotate(13deg) } }
@keyframes evp-shadow { 0%,100% { opacity:.5 } 50% { opacity:.7 } }

/* ---------- eliza-flight-dawn ---------- */
.scn-eliza-flight-dawn {
  background: linear-gradient(180deg, #2a1a3a 0%, #5a3a4a 30%, #b07a5a 60%, #e0a060 80%, #f0c080 100%),
              radial-gradient(ellipse at 30% 100%, #f0c080 0%, transparent 70%);
}
.scn-eliza-flight-dawn .sky-dawn {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(180deg, #2a1a3a 0%, #5a3a4a 40%, #b07a5a 60%, #e0a060 100%);
  animation: efd-sky 8s ease-in-out infinite alternate;
}
.scn-eliza-flight-dawn .ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 40%;
  background: linear-gradient(180deg, #3a4a2a 0%, #1a2a1a 100%);
  border-radius: 60% 40% 0 0 / 30% 20% 0 0;
  animation: efd-ground 10s ease-in-out infinite alternate;
}
.scn-eliza-flight-dawn .road {
  position: absolute; bottom: 20%; left: 10%; width: 60%; height: 8%;
  background: linear-gradient(90deg, #8a7a6a 0%, #6a5a4a 100%);
  border-radius: 20% 20% 0 0;
  filter: blur(1px);
  animation: efd-road 6s ease-in-out infinite alternate;
}
.scn-eliza-flight-dawn .figure {
  position: absolute; bottom: 22%; left: 30%; width: 20px; height: 40px;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: efd-walk 2.5s ease-in-out infinite;
}
.scn-eliza-flight-dawn .sunrise {
  position: absolute; bottom: 40%; left: 70%; width: 50px; height: 50px;
  background: radial-gradient(circle, #ffd080 0%, #e0a060 50%, transparent 70%);
  border-radius: 50%;
  box-shadow: 0 0 80px 30px #e0a060, 0 0 150px 60px rgba(224,160,96,0.3);
  animation: efd-sun 12s ease-in-out infinite alternate;
}
.scn-eliza-flight-dawn .cloud {
  position: absolute; top: 15%; width: 80px; height: 20px;
  background: linear-gradient(90deg, rgba(255,200,150,0.6) 0%, rgba(255,200,150,0.1) 100%);
  border-radius: 50%;
  filter: blur(6px);
}
.scn-eliza-flight-dawn .cloud.c1 {
  left: 5%;
  animation: efd-cloud1 40s linear infinite;
}
.scn-eliza-flight-dawn .cloud.c2 {
  left: 30%;
  width: 60px; height: 15px;
  animation: efd-cloud2 55s linear infinite reverse;
}
.scn-eliza-flight-dawn .fence {
  position: absolute; bottom: 32%; left: 15%; width: 70%; height: 3px;
  background: repeating-linear-gradient(90deg, #5a3a2a 0px, #5a3a2a 4px, transparent 4px, transparent 20px);
  box-shadow: 0 -4px 0 #4a2a1a;
}
@keyframes efd-sky { 0% { opacity: 0.7; } 50% { opacity: 1; } 100% { opacity: 0.8; } }
@keyframes efd-ground { 0% { transform: scaleY(1); } 50% { transform: scaleY(0.97); } 100% { transform: scaleY(1); } }
@keyframes efd-road { 0% { transform: scaleX(1); } 50% { transform: scaleX(1.03); } 100% { transform: scaleX(1); } }
@keyframes efd-walk { 0% { transform: translateX(0) translateY(0) rotate(-1deg); } 25% { transform: translateX(8px) translateY(-1px) rotate(1deg); } 50% { transform: translateX(16px) translateY(0) rotate(-1deg); } 75% { transform: translateX(24px) translateY(-1px) rotate(1deg); } 100% { transform: translateX(32px) translateY(0) rotate(0deg); } }
@keyframes efd-sun { 0% { transform: scale(0.9) translateX(0); opacity: 0.8; } 50% { transform: scale(1.1) translateX(-5px); opacity: 1; } 100% { transform: scale(1) translateX(0); opacity: 0.9; } }
@keyframes efd-cloud1 { 0% { transform: translateX(-30px); } 100% { transform: translateX(120vw); } }
@keyframes efd-cloud2 { 0% { transform: translateX(0); } 100% { transform: translateX(-100vw); } }

/* ---------- eliza-at-tavern ---------- */
.scn-eliza-at-tavern {
  background: linear-gradient(180deg, #6a8ab0 0%, #8ab0d0 40%, #c0d8e0 70%, #e8e0c0 100%),
              radial-gradient(ellipse at 50% 100%, #d0c080 0%, transparent 70%);
}
.scn-eliza-at-tavern .sky-sunlit {
  position: absolute; inset: 0 0 50% 0;
  background: linear-gradient(180deg, #6a8ab0 0%, #8ab0d0 50%, #c0d8e0 100%);
  animation: etv-sky 10s ease-in-out infinite alternate;
}
.scn-eliza-at-tavern .tavern {
  position: absolute; bottom: 20%; left: 30%; width: 40%; height: 40%;
  background: linear-gradient(180deg, #c8a878 0%, #a08050 100%);
  border-radius: 4% 4% 2% 2%;
  box-shadow: 0 10px 20px rgba(0,0,0,0.3);
  animation: etv-tavern 6s ease-in-out infinite alternate;
}
.scn-eliza-at-tavern .door {
  position: absolute; bottom: 20%; left: 45%; width: 12%; height: 20%;
  background: linear-gradient(180deg, #6a4a2a 0%, #3a2a1a 100%);
  border-radius: 8% 8% 0 0;
  box-shadow: inset 2px 2px 4px rgba(0,0,0,0.4);
  animation: etv-door 3s ease-in-out infinite;
}
.scn-eliza-at-tavern .window {
  position: absolute; bottom: 30%; left: 35%; width: 10%; height: 12%;
  background: linear-gradient(135deg, #e0f0ff 0%, #80b0d0 100%);
  border-radius: 4px;
  box-shadow: 0 0 10px 2px rgba(128,176,208,0.5);
  animation: etv-window 5s ease-in-out infinite alternate;
}
.scn-eliza-at-tavern .fig-approaching {
  position: absolute; bottom: 20%; left: 20%; width: 18px; height: 36px;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: etv-walk 2.5s ease-in-out infinite;
}
.scn-eliza-at-tavern .tree {
  position: absolute; bottom: 25%; left: 70%; width: 12px; height: 30%;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 30% 30% 10% 10%;
  animation: etv-tree 8s ease-in-out infinite alternate;
}
.scn-eliza-at-tavern .path {
  position: absolute; bottom: 10%; left: 15%; width: 70%; height: 6%;
  background: linear-gradient(90deg, #c0a080 0%, #8a7050 100%);
  border-radius: 30% 30% 0 0;
  filter: blur(1px);
  animation: etv-path 7s ease-in-out infinite alternate;
}
@keyframes etv-sky { 0% { opacity: 0.8; } 50% { opacity: 1; } 100% { opacity: 0.9; } }
@keyframes etv-tavern { 0% { transform: scale(1); } 50% { transform: scale(1.02) translateY(-2px); } 100% { transform: scale(1); } }
@keyframes etv-door { 0% { transform: translateX(0); } 50% { transform: translateX(2px); } 100% { transform: translateX(0); } }
@keyframes etv-window { 0% { opacity: 0.7; box-shadow: 0 0 5px 1px rgba(128,176,208,0.3); } 50% { opacity: 1; box-shadow: 0 0 15px 4px rgba(128,176,208,0.7); } 100% { opacity: 0.8; box-shadow: 0 0 8px 2px rgba(128,176,208,0.5); } }
@keyframes etv-walk { 0% { transform: translateX(0) translateY(0) rotate(-1deg); } 25% { transform: translateX(8px) translateY(-1px) rotate(1deg); } 50% { transform: translateX(16px) translateY(0) rotate(-1deg); } 75% { transform: translateX(24px) translateY(-1px) rotate(1deg); } 100% { transform: translateX(32px) translateY(0) rotate(0deg); } }
@keyframes etv-tree { 0% { transform: scaleY(1); } 50% { transform: scaleY(0.95); } 100% { transform: scaleY(1); } }
@keyframes etv-path { 0% { transform: scaleX(1); } 50% { transform: scaleX(0.98); } 100% { transform: scaleX(1); } }

/* ---------- haley-pursuit-delay ---------- */
.scn-haley-pursuit-delay {
  background: linear-gradient(180deg, #e8dcc0 0%, #c8b898 30%, #a08868 100%),
              radial-gradient(ellipse at 50% 0%, #fff8e0 0%, transparent 70%);
}
.scn-haley-pursuit-delay .wall {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #e8dcc0 0%, #c8b898 100%);
  animation: hpd-wall 8s ease-in-out infinite alternate;
}
.scn-haley-pursuit-delay .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #8a7050 0%, #5a4a3a 100%);
  border-radius: 20% 20% 0 0 / 10% 10% 0 0;
  animation: hpd-floor 6s ease-in-out infinite alternate;
}
.scn-haley-pursuit-delay .table {
  position: absolute; bottom: 18%; left: 25%; width: 50%; height: 8%;
  background: linear-gradient(180deg, #b09070 0%, #7a5a3a 100%);
  border-radius: 4px;
  box-shadow: 0 4px 8px rgba(0,0,0,0.3);
  animation: hpd-table 5s ease-in-out infinite alternate;
}
.scn-haley-pursuit-delay .stove {
  position: absolute; bottom: 10%; left: 68%; width: 20%; height: 25%;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 10% 10% 5% 5%;
  box-shadow: inset 0 -4px 0 #1a0a0a;
  animation: hpd-stove 7s ease-in-out infinite alternate;
}
.scn-haley-pursuit-delay .figure-chloe {
  position: absolute; bottom: 20%; left: 35%; width: 22px; height: 42px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: hpd-chloe 4s ease-in-out infinite;
}
.scn-haley-pursuit-delay .figure-servant {
  position: absolute; bottom: 20%; left: 52%; width: 20px; height: 38px;
  background: linear-gradient(180deg, #2a1a1a 0%, #0a0a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: hpd-servant 4.2s ease-in-out infinite 2s;
}
.scn-haley-pursuit-delay .window-bright {
  position: absolute; bottom: 40%; left: 10%; width: 18%; height: 25%;
  background: linear-gradient(135deg, #fff8e0 0%, #e0d0a0 100%);
  border-radius: 4px;
  box-shadow: 0 0 20px 8px rgba(255,248,224,0.6);
  animation: hpd-window 8s ease-in-out infinite alternate;
}
@keyframes hpd-wall { 0% { opacity: 0.9; } 50% { opacity: 1; } 100% { opacity: 0.95; } }
@keyframes hpd-floor { 0% { transform: scaleY(1); } 50% { transform: scaleY(0.98); } 100% { transform: scaleY(1); } }
@keyframes hpd-table { 0% { transform: translateY(0); } 50% { transform: translateY(-2px); } 100% { transform: translateY(0); } }
@keyframes hpd-stove { 0% { transform: scaleX(1); } 50% { transform: scaleX(1.02); } 100% { transform: scaleX(1); } }
@keyframes hpd-chloe { 0% { transform: translateX(0) rotate(0deg); } 25% { transform: translateX(4px) rotate(2deg); } 50% { transform: translateX(0) rotate(0deg); } 75% { transform: translateX(-4px) rotate(-2deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes hpd-servant { 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 hpd-window { 0% { opacity: 0.8; box-shadow: 0 0 10px 4px rgba(255,248,224,0.3); } 50% { opacity: 1; box-shadow: 0 0 30px 10px rgba(255,248,224,0.7); } 100% { opacity: 0.9; box-shadow: 0 0 20px 6px rgba(255,248,224,0.5); } }

/* ---------- kitchen-gossip ---------- */
.scn-kitchen-gossip {
  background: linear-gradient(180deg, #3a2a1a 0%, #5a3a2a 40%, #7a4a3a 100%),
              radial-gradient(ellipse at 50% 0%, #b07050 0%, transparent 70%);
}
.scn-kitchen-gossip .bg-kitchen {
  position: absolute; inset: 0 0 35% 0;
  background: linear-gradient(180deg, #3a2a1a 0%, #5a3a2a 100%);
  animation: kgg-bg 6s ease-in-out infinite alternate;
}
.scn-kitchen-gossip .table-k {
  position: absolute; bottom: 20%; left: 15%; width: 70%; height: 10%;
  background: linear-gradient(180deg, #6a4a3a 0%, #3a2a1a 100%);
  border-radius: 10% 10% 5% 5%;
  box-shadow: 0 4px 8px rgba(0,0,0,0.5);
  animation: kgg-table 5s ease-in-out infinite alternate;
}
.scn-kitchen-gossip .figure-1 {
  position: absolute; bottom: 22%; left: 20%; width: 18px; height: 34px;
  background: linear-gradient(180deg, #1a0a0a 0%, #0a0000 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: kgg-fig1 7s ease-in-out infinite;
}
.scn-kitchen-gossip .figure-2 {
  position: absolute; bottom: 22%; left: 35%; width: 20px; height: 36px;
  background: linear-gradient(180deg, #2a1a0a 0%, #0a0a00 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: kgg-fig2 7.5s ease-in-out infinite 1s;
}
.scn-kitchen-gossip .figure-3 {
  position: absolute; bottom: 22%; left: 50%; width: 22px; height: 40px;
  background: linear-gradient(180deg, #1a0a00 0%, #000000 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: kgg-fig3 8s ease-in-out infinite 2s;
}
.scn-kitchen-gossip .figure-4 {
  position: absolute; bottom: 22%; left: 65%; width: 24px; height: 42px;
  background: linear-gradient(180deg, #2a0a0a 0%, #0a0000 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: kgg-fig4 6.5s ease-in-out infinite 3.5s;
}
.scn-kitchen-gossip .fireplace {
  position: absolute; bottom: 0; left: 60%; width: 30%; height: 25%;
  background: linear-gradient(180deg, #1a1a0a 0%, #4a2a1a 50%, #2a0a0a 100%);
  border-radius: 20% 20% 0 0 / 40% 40% 0 0;
  box-shadow: inset 0 -8px 20px rgba(0,0,0,0.6);
  animation: kgg-fire 4s ease-in-out infinite alternate;
}
.scn-kitchen-gossip .window-k {
  position: absolute; bottom: 45%; left: 80%; width: 15%; height: 20%;
  background: linear-gradient(135deg, #8a7050 0%, #4a3a2a 100%);
  border-radius: 4px;
  box-shadow: 0 0 8px 2px rgba(0,0,0,0.5);
  animation: kgg-window 9s ease-in-out infinite alternate;
}
.scn-kitchen-gossip .lamp {
  position: absolute; bottom: 50%; left: 30%; width: 8px; height: 12px;
  background: radial-gradient(circle, #e0a060 0%, #c08040 100%);
  border-radius: 50%;
  box-shadow: 0 0 20px 6px #c08040, 0 0 40px 12px rgba(192,128,64,0.4);
  animation: kgg-lamp 3s ease-in-out infinite alternate;
}
@keyframes kgg-bg { 0% { opacity: 0.8; } 50% { opacity: 1; } 100% { opacity: 0.9; } }
@keyframes kgg-table { 0% { transform: scaleX(1); } 50% { transform: scaleX(0.98); } 100% { transform: scaleX(1); } }
@keyframes kgg-fig1 { 0% { transform: translateX(0) rotate(0deg); } 25% { transform: translateX(3px) rotate(3deg); } 50% { transform: translateX(0) rotate(0deg); } 75% { transform: translateX(-3px) rotate(-3deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes kgg-fig2 { 0% { transform: translateX(0) rotate(0deg); } 25% { transform: translateX(2px) rotate(-2deg); } 50% { transform: translateX(0) rotate(0deg); } 75% { transform: translateX(-2px) rotate(2deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes kgg-fig3 { 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 kgg-fig4 { 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 kgg-fire { 0% { opacity: 0.6; } 50% { opacity: 1; } 100% { opacity: 0.8; } }
@keyframes kgg-window { 0% { opacity: 0.5; } 50% { opacity: 0.8; } 100% { opacity: 0.6; } }
@keyframes kgg-lamp { 0% { opacity: 0.7; box-shadow: 0 0 15px 4px #c08040; } 50% { opacity: 1; box-shadow: 0 0 30px 10px #e0a060; } 100% { opacity: 0.8; box-shadow: 0 0 20px 6px #c08040; } }

/* ========== SCENE 1: eliza-warns-tom ========== */
.scn-eliza-warns-tom {
  background:
    radial-gradient(ellipse at 50% 30%, #1a1a3e 0%, transparent 40%),
    linear-gradient(180deg, #0c0c1e 0%, #1e1a3a 50%, #2a2242 100%);
}
.scn-eliza-warns-tom .room-wall {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(135deg, #1e1a30 0%, #2a2240 100%);
  animation: ewt-wall 6s ease-in-out infinite alternate;
}
.scn-eliza-warns-tom .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #2a2242 0%, #12101e 100%);
  box-shadow: inset 0 20px 20px rgba(0,0,0,0.5);
}
.scn-eliza-warns-tom .window-frame {
  position: absolute; top: 12%; left: 10%; width: 90px; height: 110px;
  background: linear-gradient(135deg, #3a3050 0%, #1e1a30 100%);
  border: 3px solid #4a3a5a;
  border-radius: 4px;
  box-shadow: inset 0 0 30px rgba(255,255,255,0.1);
}
.scn-eliza-warns-tom .starlight {
  position: absolute; top: 10%; left: 12%; width: 70px; height: 90px;
  background: radial-gradient(circle, #d0d0ff 0%, rgba(180,180,255,0.2) 50%, transparent 70%);
  animation: ewt-glow 3s ease-in-out infinite alternate;
}
.scn-eliza-warns-tom .bed {
  position: absolute; bottom: 22%; left: 25%; width: 140px; height: 50px;
  background: linear-gradient(180deg, #3a2a3a 0%, #2a1a2a 100%);
  border-radius: 10px;
  box-shadow: 0 8px 12px rgba(0,0,0,0.6);
  animation: ewt-bed 8s ease-in-out infinite;
}
.scn-eliza-warns-tom .figure-tom {
  position: absolute; bottom: 30%; left: 28%; width: 28px; height: 36px;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: ewt-wake 4s ease-in-out infinite alternate;
}
.scn-eliza-warns-tom .figure-chloe {
  position: absolute; bottom: 28%; left: 38%; width: 32px; height: 40px;
  background: linear-gradient(180deg, #2a1a3a 0%, #1a0a2a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: ewt-situp 3s ease-in-out infinite alternate;
}
.scn-eliza-warns-tom .figure-eliza {
  position: absolute; bottom: 15%; left: 68%; width: 24px; height: 38px;
  background: linear-gradient(180deg, #1a1a2e 0%, #0a0a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: ewt-enter 2s ease-in-out infinite;
}
.scn-eliza-warns-tom .door {
  position: absolute; bottom: 8%; right: 8%; width: 50px; height: 80px;
  background: linear-gradient(180deg, #2a1a2a 0%, #1a0a1a 100%);
  border-radius: 2px;
  box-shadow: inset 0 0 10px #0a0a1a;
  animation: ewt-door 5s ease-in-out infinite alternate;
}
@keyframes ewt-wall {
  0% { opacity: 0.8; }
  50% { opacity: 1; }
  100% { opacity: 0.9; }
}
@keyframes ewt-glow {
  0% { opacity: 0.3; transform: scale(1); }
  50% { opacity: 0.7; transform: scale(1.1); }
  100% { opacity: 0.5; transform: scale(1.05); }
}
@keyframes ewt-bed {
  0%, 100% { transform: translateY(0); }
  50% { transform: translateY(-2px); }
}
@keyframes ewt-wake {
  0% { transform: translateY(0) rotate(0deg); }
  50% { transform: translateY(-4px) rotate(5deg); }
  100% { transform: translateY(0) rotate(-3deg); }
}
@keyframes ewt-situp {
  0% { transform: translateY(0) scale(1); }
  50% { transform: translateY(-10px) scale(1.05); }
  100% { transform: translateY(0) scale(0.95); }
}
@keyframes ewt-enter {
  0% { transform: translateX(-50px) rotate(5deg); opacity: 0; }
  50% { transform: translateX(0) rotate(0deg); opacity: 1; }
  100% { transform: translateX(10px) rotate(-3deg); opacity: 0.9; }
}
@keyframes ewt-door {
  0% { transform: translateX(0); }
  50% { transform: translateX(-8px); }
  100% { transform: translateX(0); }
}
/* ========== SCENE 2: eliza-leaves-tom ========== */
.scn-eliza-leaves-tom {
  background:
    radial-gradient(ellipse at 70% 20%, #2a2a4a 0%, transparent 60%),
    linear-gradient(180deg, #0c0820 0%, #1a1430 40%, #241e3a 100%);
}
.scn-eliza-leaves-tom .hall-wall {
  position: absolute; inset: 0 0 25% 0;
  background: linear-gradient(180deg, #1a1630 0%, #14102a 100%);
  animation: elt-fade 8s ease-in-out infinite alternate;
}
.scn-eliza-leaves-tom .hall-floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 25%;
  background: linear-gradient(180deg, #241e3a 0%, #0c0820 100%);
}
.scn-eliza-leaves-tom .exit-door {
  position: absolute; bottom: 20%; left: 10%; width: 40px; height: 70px;
  background: linear-gradient(180deg, #1a1430 0%, #0e0a20 100%);
  border: 2px solid #3a2a4a;
  border-radius: 2px;
  box-shadow: inset 0 0 20px #0a0820;
  animation: elt-door 4s ease-in-out infinite;
}
.scn-eliza-leaves-tom .starlight-beam {
  position: absolute; top: 10%; left: 20%; width: 60px; height: 120px;
  background: linear-gradient(180deg, rgba(200,200,255,0.3), rgba(200,200,255,0.05) 80%);
  filter: blur(3px);
  animation: elt-beam 6s ease-in-out infinite alternate;
}
.scn-eliza-leaves-tom .figure-eliza-child {
  position: absolute; bottom: 20%; left: 30%; width: 30px; height: 44px;
  background: linear-gradient(180deg, #1a1a3a 0%, #0e0e2a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: elt-glide 5s ease-in-out infinite;
}
.scn-eliza-leaves-tom .dog-bruno {
  position: absolute; bottom: 22%; left: 55%; width: 20px; height: 14px;
  background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%);
  border-radius: 40% 40% 30% 30%;
  animation: elt-dog 3s ease-in-out infinite alternate;
}
.scn-eliza-leaves-tom .shadow-leaving {
  position: absolute; bottom: 20%; left: 30%; width: 35px; height: 50px;
  background: linear-gradient(180deg, transparent 0%, rgba(0,0,0,0.5) 100%);
  filter: blur(4px);
  animation: elt-shadow 5s ease-in-out infinite;
}
@keyframes elt-fade {
  0% { opacity: 0.7; }
  50% { opacity: 1; }
  100% { opacity: 0.8; }
}
@keyframes elt-door {
  0% { transform: translateX(0) scaleX(1); }
  50% { transform: translateX(-5px) scaleX(0.8); }
  100% { transform: translateX(0) scaleX(1); }
}
@keyframes elt-beam {
  0% { opacity: 0.2; transform: scaleY(1); }
  50% { opacity: 0.5; transform: scaleY(1.1); }
  100% { opacity: 0.3; transform: scaleY(0.9); }
}
@keyframes elt-glide {
  0% { transform: translateX(0) translateY(0) rotate(0deg); }
  50% { transform: translateX(-15px) translateY(-3px) rotate(-2deg); }
  100% { transform: translateX(0) translateY(0) rotate(2deg); }
}
@keyframes elt-dog {
  0% { transform: translateX(0) scaleX(1); }
  50% { transform: translateX(5px) scaleX(0.9); }
  100% { transform: translateX(-2px) scaleX(1.05); }
}
@keyframes elt-shadow {
  0% { transform: translateX(0) scaleY(1); opacity: 0.5; }
  50% { transform: translateX(-10px) scaleY(1.2); opacity: 0.8; }
  100% { transform: translateX(0) scaleY(0.8); opacity: 0.4; }
}
/* ========== SCENE 3: discovery-of-eliza-flight ========== */
.scn-discovery-of-eliza-flight {
  background:
    linear-gradient(135deg, #f5e8c0 0%, #e8d0a0 50%, #d4b882 100%),
    radial-gradient(circle at 20% 30%, #fff5e0 0%, transparent 50%);
}
.scn-discovery-of-eliza-flight .room-bright {
  position: absolute; inset: 0 0 20% 0;
  background: linear-gradient(180deg, #fff5e0 0%, #f0e0c0 100%);
  animation: def-light 12s ease-in-out infinite alternate;
}
.scn-discovery-of-eliza-flight .sun-window {
  position: absolute; top: 10%; right: 15%; width: 70px; height: 90px;
  background: linear-gradient(135deg, #fff8e0 0%, #f5e8c0 100%);
  box-shadow: inset 0 0 40px #fff5e0, 0 0 30px rgba(255,245,224,0.3);
  border-radius: 2px;
  animation: def-sun 10s ease-in-out infinite alternate;
}
.scn-discovery-of-eliza-flight .open-drawer {
  position: absolute; bottom: 15%; left: 20%; width: 80px; height: 40px;
  background: linear-gradient(180deg, #c8a86a 0%, #b8985a 100%);
  border-radius: 4px;
  box-shadow: 0 4px 8px rgba(0,0,0,0.3);
  animation: def-drawer 4s ease-in-out infinite alternate;
}
.scn-discovery-of-eliza-flight .strewn-clothes {
  position: absolute; bottom: 30%; left: 25%; width: 50px; height: 30px;
  background: linear-gradient(180deg, #e0c8a0 0%, #c8ae88 100%);
  border-radius: 30% 40% 50% 30%;
  filter: blur(1px);
  transform: rotate(15deg);
  animation: def-clothes 6s ease-in-out infinite;
}
.scn-discovery-of-eliza-flight .figure-maid {
  position: absolute; bottom: 22%; left: 55%; width: 28px; height: 40px;
  background: linear-gradient(180deg, #b89878 0%, #a08060 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: def-startle 3s ease-in-out infinite alternate;
}
.scn-discovery-of-eliza-flight .figure-mistress {
  position: absolute; bottom: 20%; left: 70%; width: 30px; height: 42px;
  background: linear-gradient(180deg, #d8c0a0 0%, #c0a880 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: def-alarm 4s ease-in-out infinite alternate;
}
.scn-discovery-of-eliza-flight .tense-shadow {
  position: absolute; bottom: 0; left: 40%; width: 120px; height: 30px;
  background: linear-gradient(180deg, rgba(40,30,20,0.4), transparent);
  filter: blur(5px);
  animation: def-shadow 5s ease-in-out infinite;
}
@keyframes def-light {
  0% { opacity: 0.9; }
  50% { opacity: 1; }
  100% { opacity: 0.95; }
}
@keyframes def-sun {
  0% { transform: scaleX(1); opacity: 0.9; }
  50% { transform: scaleX(1.1); opacity: 1; }
  100% { transform: scaleX(0.95); opacity: 0.85; }
}
@keyframes def-drawer {
  0% { transform: translateY(0); }
  50% { transform: translateY(-5px); }
  100% { transform: translateY(2px); }
}
@keyframes def-clothes {
  0% { transform: rotate(15deg) translateX(0); }
  50% { transform: rotate(20deg) translateX(-5px); }
  100% { transform: rotate(10deg) translateX(3px); }
}
@keyframes def-startle {
  0% { transform: translateY(0) rotate(0deg); }
  50% { transform: translateY(-8px) rotate(-5deg); }
  100% { transform: translateY(0) rotate(3deg); }
}
@keyframes def-alarm {
  0% { transform: translateY(0) scaleX(1); }
  50% { transform: translateY(-4px) scaleX(1.05); }
  100% { transform: translateY(0) scaleX(0.95); }
}
@keyframes def-shadow {
  0% { opacity: 0.3; transform: scaleX(1); }
  50% { opacity: 0.6; transform: scaleX(1.2); }
  100% { opacity: 0.4; transform: scaleX(0.9); }
}
/* ========== SCENE 4: shelby-haley-confrontation ========== */
.scn-shelby-haley-confrontation {
  background:
    radial-gradient(ellipse at 50% 40%, #f0e8d0 0%, transparent 60%),
    linear-gradient(180deg, #e8dcc0 0%, #d0c4a8 50%, #b8a888 100%);
}
.scn-shelby-haley-confrontation .study-wall {
  position: absolute; inset: 0 0 25% 0;
  background: linear-gradient(180deg, #d8ccb0 0%, #c8bca0 100%);
}
.scn-shelby-haley-confrontation .study-floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 25%;
  background: linear-gradient(180deg, #a89878 0%, #8c7c60 100%);
  box-shadow: inset 0 10px 20px rgba(0,0,0,0.2);
}
.scn-shelby-haley-confrontation .bright-window {
  position: absolute; top: 10%; left: 60%; width: 80px; height: 100px;
  background: linear-gradient(135deg, #fff8e8 0%, #f5ecd0 100%);
  box-shadow: inset 0 0 30px #fff8e8, 0 0 20px rgba(255,248,232,0.4);
  border-radius: 2px;
  animation: shc-glow 8s ease-in-out infinite alternate;
}
.scn-shelby-haley-confrontation .desk {
  position: absolute; bottom: 22%; left: 35%; width: 100px; height: 30px;
  background: linear-gradient(180deg, #6a5a4a 0%, #4a3a2a 100%);
  border-radius: 4px;
  box-shadow: 0 6px 10px rgba(0,0,0,0.4);
  animation: shc-desk 6s ease-in-out infinite;
}
.scn-shelby-haley-confrontation .figure-shelby {
  position: absolute; bottom: 24%; left: 25%; width: 34px; height: 48px;
  background: linear-gradient(180deg, #3a2a1a 0%, #2a1a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: shc-shelby 3s ease-in-out infinite alternate;
}
.scn-shelby-haley-confrontation .figure-haley {
  position: absolute; bottom: 26%; left: 55%; width: 32px; height: 42px;
  background: linear-gradient(180deg, #4a3a2a 0%, #3a2a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: shc-haley 4s ease-in-out infinite alternate;
}
.scn-shelby-haley-confrontation .tension-line {
  position: absolute; bottom: 30%; left: 40%; width: 60px; height: 2px;
  background: linear-gradient(90deg, transparent, #4a3a2a, transparent);
  filter: blur(1px);
  animation: shc-line 2s ease-in-out infinite;
}
@keyframes shc-glow {
  0% { opacity: 0.8; }
  50% { opacity: 1; }
  100% { opacity: 0.9; }
}
@keyframes shc-desk {
  0% { transform: translateY(0); }
  50% { transform: translateY(-2px); }
  100% { transform: translateY(1px); }
}
@keyframes shc-shelby {
  0% { transform: translateY(0) rotate(0deg); }
  50% { transform: translateY(-6px) rotate(4deg); }
  100% { transform: translateY(0) rotate(-2deg); }
}
@keyframes shc-haley {
  0% { transform: translateY(0) scaleX(1); }
  50% { transform: translateY(-3px) scaleX(0.95); }
  100% { transform: translateY(0) scaleX(1.02); }
}
@keyframes shc-line {
  0% { transform: scaleX(1) translateX(0); opacity: 0.3; }
  50% { transform: scaleX(1.2) translateX(-5px); opacity: 0.6; }
  100% { transform: scaleX(0.9) translateX(3px); opacity: 0.4; }
}

.scn-lucy-drowning { background: linear-gradient(180deg, #0a1628 0%, #0d1f3c 30%, #061830 60%, #020814 100%), radial-gradient(ellipse at 20% 80%, #0d3b5a 0%, transparent 60%); }
.scn-lucy-drowning .surface { position:absolute; inset:0 0 60% 0; background: linear-gradient(0deg, rgba(20,60,90,.3) 0%, transparent 100%); animation: ld-surface 6s ease-in-out infinite alternate; }
.scn-lucy-drowning .deep { position:absolute; top:30%; left:0; right:0; bottom:0; background: linear-gradient(0deg, #01101a 0%, #0a1e30 100%); }
.scn-lucy-drowning .figure-sinking { position:absolute; bottom:35%; left:45%; width:20px; height:40px; background: linear-gradient(180deg, #1a2a3a 0%, #0a1218 100%); border-radius: 45% 55% 50% 50% / 60% 60% 40% 40%; transform-origin: center; animation: ld-sink 12s ease-in-out infinite; }
.scn-lucy-drowning .bubble { position:absolute; background: radial-gradient(circle, rgba(180,220,255,.3) 0%, transparent 70%); border-radius:50%; filter:blur(2px); }
.scn-lucy-drowning .bubble-a { width:12px;height:12px; bottom:20%; left:30%; animation: ld-bubble 4s ease-out infinite; }
.scn-lucy-drowning .bubble-b { width:8px;height:8px; bottom:35%; left:55%; animation: ld-bubble 3.5s ease-out infinite 1s; }
.scn-lucy-drowning .bubble-c { width:15px;height:15px; bottom:25%; left:60%; animation: ld-bubble 5s ease-out infinite 2s; }
.scn-lucy-drowning .light-ray { position:absolute; top:0; left:40%; width:30px; bottom:30%; background: linear-gradient(180deg, rgba(100,180,255,.15) 0%, transparent 100%); transform:skewX(-5deg); animation: ld-light 5s ease-in-out infinite alternate; }
@keyframes ld-surface { 0% { opacity:.4; transform:translateY(0) } 50% { opacity:.6; transform:translateY(-4px) } 100% { opacity:.3; transform:translateY(2px) } }
@keyframes ld-sink { 0%,100% { transform:translate(0,0) rotate(0deg) scale(1) } 25% { transform:translate(6px,-3px) rotate(3deg) scale(.98) } 50% { transform:translate(12px,5px) rotate(-2deg) scale(1.02) } 75% { transform:translate(18px,2px) rotate(1deg) scale(1) } }
@keyframes ld-bubble { 0% { transform:translate(0,0) scale(1); opacity:.6 } 50% { transform:translate(8px,-20px) scale(1.3); opacity:.8 } 100% { transform:translate(16px,-50px) scale(0); opacity:0 } }
@keyframes ld-light { 0% { opacity:.15; transform:skewX(-5deg) scaleY(1) } 50% { opacity:.3; transform:skewX(0) scaleY(1.1) } 100% { opacity:.1; transform:skewX(5deg) scaleY(.95) } }

.scn-author-reflection-trader { background: linear-gradient(180deg, #7a8a9a 0%, #9aabba 40%, #b0c0ce 100%), radial-gradient(ellipse at 50% 100%, #b0c0ce 0%, transparent 70%); }
.scn-author-reflection-trader .sky-overcast { position:absolute; inset:0 0 30% 0; background: linear-gradient(180deg, #8a9aaa 0%, transparent 100%); animation: art-sky 8s ease-in-out infinite alternate; }
.scn-author-reflection-trader .ground-road { position:absolute; bottom:0; left:0; right:0; height:35%; background: linear-gradient(180deg, #6a7a7a 0%, #4a5a5a 100%); border-radius: 20% 30% 0 0; box-shadow: inset 0 8px 20px rgba(0,0,0,.3); }
.scn-author-reflection-trader .trader-figure { position:absolute; bottom:15%; right:25%; width:22px; height:50px; background: linear-gradient(180deg, #2a3a3a 0%, #1a2a2a 100%); border-radius: 50% 45% 40% 45% / 60% 55% 45% 50%; transform-origin: bottom center; animation: art-trader 6s ease-in-out infinite; }
.scn-author-reflection-trader .author-figure { position:absolute; bottom:18%; left:20%; width:18px; height:42px; background: linear-gradient(180deg, #3a4a4a 0%, #2a3a3a 100%); border-radius: 45% 50% 50% 45% / 55% 50% 50% 55%; transform-origin: bottom center; animation: art-author 8s ease-in-out infinite; }
.scn-author-reflection-trader .lamp-post { position:absolute; bottom:25%; left:50%; width:6px; height:70px; background: linear-gradient(0deg, #4a5a5a 0%, #6a7a7a 100%); border-radius: 2px; box-shadow: 0 4px 8px rgba(0,0,0,.4); }
.scn-author-reflection-trader .cloud-drift { position:absolute; top:12%; left:10%; width:80px; height:16px; background: rgba(200,210,220,.4); border-radius:50%; filter: blur(8px); animation: art-cloud 30s linear infinite; }
@keyframes art-sky { 0% { opacity:.7 } 50% { opacity:1 } 100% { opacity:.6 } }
@keyframes art-trader { 0%,100% { transform: translateX(0) translateY(0) rotate(0deg) } 25% { transform: translateX(3px) translateY(-2px) rotate(2deg) } 50% { transform: translateX(0) translateY(0) rotate(-1deg) } 75% { transform: translateX(-2px) translateY(-1px) rotate(1deg) } }
@keyframes art-author { 0%,100% { transform: translateX(0) translateY(0) rotate(0deg) scale(1) } 30% { transform: translateX(-4px) translateY(-1px) rotate(1deg) scale(1.01) } 60% { transform: translateX(2px) translateY(-2px) rotate(-1deg) scale(.99) } }
@keyframes art-cloud { 0% { transform: translateX(-30px) } 100% { transform: translateX(120vw) } }

.scn-quaker-kitchen { background: linear-gradient(180deg, #d4b89c 0%, #c4a48c 40%, #b0947c 100%), radial-gradient(ellipse at 50% 80%, #e0c4a8 0%, transparent 70%); }
.scn-quaker-kitchen .wall-warm { position:absolute; inset:0 0 25% 0; background: linear-gradient(0deg, #c4a48c 0%, #d4b89c 100%); }
.scn-quaker-kitchen .floor-wood { position:absolute; bottom:0; left:0; right:0; height:30%; background: linear-gradient(180deg, #8a7a6a 0%, #6a5a4a 100%); border-radius: 10% 10% 0 0; box-shadow: inset 0 6px 12px rgba(0,0,0,.3); }
.scn-quaker-kitchen .table-oval { position:absolute; bottom:15%; left:40%; width:80px; height:40px; background: linear-gradient(180deg, #a08870 0%, #806850 100%); border-radius: 50% 50% 40% 40%; box-shadow: 0 4px 8px rgba(0,0,0,.4); transform: perspective(200px) rotateX(10deg); }
.scn-quaker-kitchen .window-light { position:absolute; top:10%; left:20%; width:60px; height:80px; background: radial-gradient(ellipse at 50% 50%, #f0e0c0 0%, #c8b090 100%); border-radius: 8px 8px 4px 4px; box-shadow: inset 0 0 20px rgba(255,240,200,.5), 0 0 30px rgba(255,240,200,.3); animation: qk-window 4s ease-in-out infinite alternate; }
.scn-quaker-kitchen .figure-rachel { position:absolute; bottom:20%; left:25%; width:22px; height:48px; background: linear-gradient(180deg, #6a5a4a 0%, #4a3a2a 100%); border-radius: 50% 45% 40% 45% / 60% 55% 40% 45%; transform-origin: bottom center; animation: qk-rachel 5s ease-in-out infinite; }
.scn-quaker-kitchen .figure-eliza { position:absolute; bottom:15%; left:48%; width:18px; height:44px; background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%); border-radius: 45% 50% 50% 45% / 55% 50% 45% 55%; transform-origin: bottom center; animation: qk-eliza 6s ease-in-out infinite; }
.scn-quaker-kitchen .child-tom { position:absolute; bottom:12%; left:45%; width:12px; height:22px; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: qk-child 4s ease-in-out infinite; }
.scn-quaker-kitchen .fire-glow { position:absolute; bottom:0; left:10%; width:40px; height:60px; background: radial-gradient(ellipse at 50% 0%, #e0a060 0%, transparent 70%); filter:blur(10px); animation: qk-fire 2s ease-in-out infinite alternate; }
@keyframes qk-window { 0% { box-shadow: inset 0 0 15px rgba(255,240,200,.4), 0 0 20px rgba(255,240,200,.2) } 50% { box-shadow: inset 0 0 25px rgba(255,240,200,.7), 0 0 40px rgba(255,240,200,.4) } 100% { box-shadow: inset 0 0 18px rgba(255,240,200,.5), 0 0 30px rgba(255,240,200,.3) } }
@keyframes qk-rachel { 0%,100% { transform: translateX(0) translateY(0) rotate(0deg) } 25% { transform: translateX(2px) translateY(-1px) rotate(1deg) } 50% { transform: translateX(0) translateY(0) rotate(-1deg) } 75% { transform: translateX(-2px) translateY(-1px) rotate(1deg) } }
@keyframes qk-eliza { 0%,100% { transform: translateX(0) translateY(0) rotate(0deg) scale(1) } 30% { transform: translateX(-3px) translateY(-2px) rotate(1deg) scale(1.02) } 60% { transform: translateX(2px) translateY(-1px) rotate(-1deg) scale(.98) } }
@keyframes qk-child { 0%,100% { transform: translateX(0) translateY(0) rotate(0deg) } 33% { transform: translateX(4px) translateY(-1px) rotate(2deg) } 66% { transform: translateX(-2px) translateY(0) rotate(-1deg) } }
@keyframes qk-fire { 0% { opacity:.6; transform:scaleY(1) } 50% { opacity:1; transform:scaleY(1.2) } 100% { opacity:.7; transform:scaleY(.9) } }

.scn-eliza-husband-news { background: linear-gradient(180deg, #c8b098 0%, #b89c84 40%, #a88c74 100%), radial-gradient(ellipse at 50% 30%, #e0c8b0 0%, transparent 70%); }
.scn-eliza-husband-news .bg-wall { position:absolute; inset:0 0 20% 0; background: linear-gradient(0deg, #a88c74 0%, #c8b098 100%); }
.scn-eliza-husband-news .door-arch { position:absolute; bottom:10%; left:35%; width:50px; height:90px; background: linear-gradient(180deg, #6a5a4a 0%, #4a3a2a 100%); border-radius: 50% 50% 0 0 / 30% 30% 0 0; box-shadow: inset 0 0 10px rgba(0,0,0,.5), 0 4px 8px rgba(0,0,0,.3); transform-origin: bottom center; animation: eh-door 8s ease-in-out infinite; }
.scn-eliza-husband-news .figure-rachel-in { position:absolute; bottom:12%; left:32%; width:20px; height:46px; background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%); border-radius: 45% 50% 50% 45% / 55% 50% 45% 55%; transform-origin: bottom center; animation: eh-rachel 5s ease-in-out infinite; }
.scn-eliza-husband-news .figure-eliza-seat { position:absolute; bottom:8%; left:52%; width:18px; height:40px; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius: 50% 45% 40% 45% / 60% 55% 40% 45%; transform-origin: bottom center; animation: eh-eliza 4s ease-in-out infinite; }
.scn-eliza-husband-news .child-harry { position:absolute; bottom:5%; left:50%; width:10px; height:18px; background: linear-gradient(180deg, #3a2a1a 0%, #1a0a00 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: eh-child 6s ease-in-out infinite; }
.scn-eliza-husband-news .chair-shadow { position:absolute; bottom:0; left:50%; width:22px; height:30px; background: linear-gradient(0deg, #6a5a4a 0%, #4a3a2a 100%); border-radius: 10% 10% 30% 30%; box-shadow: 0 4px 6px rgba(0,0,0,.4); }
.scn-eliza-husband-news .light-spot { position:absolute; top:5%; left:40%; width:80px; height:60px; background: radial-gradient(ellipse at 50% 50%, rgba(255,230,200,.15) 0%, transparent 70%); filter:blur(8px); animation: eh-light 3s ease-in-out infinite alternate; }
@keyframes eh-door { 0%,100% { transform: perspective(300px) rotateY(0deg) } 25% { transform: perspective(300px) rotateY(-15deg) } 50% { transform: perspective(300px) rotateY(5deg) } 75% { transform: perspective(300px) rotateY(-5deg) } }
@keyframes eh-rachel { 0%,100% { transform: translateX(0) translateY(0) rotate(0deg) } 20% { transform: translateX(5px) translateY(-2px) rotate(2deg) } 40% { transform: translateX(8px) translateY(0) rotate(-1deg) } 60% { transform: translateX(5px) translateY(-1px) rotate(1deg) } 80% { transform: translateX(2px) translateY(0) rotate(0deg) } }
@keyframes eh-eliza { 0%,100% { transform: translateX(0) translateY(0) rotate(0deg) scale(1) } 25% { transform: translateX(-3px) translateY(-1px) rotate(1deg) scale(1.02) } 50% { transform: translateX(0) translateY(0) rotate(-1deg) scale(.98) } 75% { transform: translateX(2px) translateY(-2px) rotate(0deg) scale(1.01) } }
@keyframes eh-child { 0%,100% { transform: translateX(0) translateY(0) rotate(0deg) } 30% { transform: translateX(2px) translateY(-1px) rotate(2deg) } 60% { transform: translateX(-1px) translateY(0) rotate(-1deg) } }
@keyframes eh-light { 0% { opacity:.3; transform:scale(1) } 50% { opacity:.6; transform:scale(1.1) } 100% { opacity:.4; transform:scale(.95) } }

.scn-tom-on-boat {
  background:
    linear-gradient(180deg, #87CEEB 0%, #B0E0E6 30%, #F0E68C 55%, #FFD700 70%, #DAA520 100%),
    radial-gradient(ellipse at 50% 80%, #FFD700 0%, transparent 60%);
  position: relative;
  overflow: hidden;
  min-height: 400px;
}
.scn-tom-on-boat .sky {
  position: absolute; inset: 0 0 45% 0;
  background: linear-gradient(180deg, #87CEEB 0%, #B0E0E6 40%, #E0F0FF 100%);
  animation: tob-sky 12s ease-in-out infinite alternate;
}
.scn-tom-on-boat .sun {
  position: absolute; top: 12%; right: 25%; width: 60px; height: 60px;
  background: radial-gradient(circle, #FFE4B5 0%, #FFD700 40%, #FFA500 80%, transparent 100%);
  border-radius: 50%;
  box-shadow: 0 0 40px 20px rgba(255,215,0,0.4), 0 0 80px 40px rgba(255,165,0,0.2);
  animation: tob-sun 20s ease-in-out infinite alternate;
}
.scn-tom-on-boat .river {
  position: absolute; bottom: 0; left: 0; right: 0; height: 50%;
  background: linear-gradient(180deg, #4682B4 0%, #5B9BD5 30%, #2E6DA4 60%, #1A4A7A 100%);
  animation: tob-river 8s ease-in-out infinite alternate;
}
.scn-tom-on-boat .river-ripple {
  position: absolute; bottom: 20%; left: 0; right: 0; height: 30%;
  background: linear-gradient(90deg, transparent 0%, rgba(255,255,255,0.15) 20%, transparent 40%, rgba(255,255,255,0.1) 60%, transparent 80%, rgba(255,255,255,0.15) 100%);
  background-size: 200% 100%;
  animation: tob-ripple 4s linear infinite;
}
.scn-tom-on-boat .boat-hull {
  position: absolute; bottom: 32%; left: 30%; width: 120px; height: 40px;
  background: linear-gradient(180deg, #8B4513 0%, #5C2E0A 50%, #3A1A00 100%);
  border-radius: 0 0 40% 40% / 0 0 80% 80%;
  box-shadow: 0 4px 12px rgba(0,0,0,0.5);
  animation: tob-boat 6s ease-in-out infinite;
}
.scn-tom-on-boat .boat-deck {
  position: absolute; bottom: 42%; left: 32%; width: 100px; height: 12px;
  background: linear-gradient(180deg, #D2B48C 0%, #A0522D 100%);
  border-radius: 4px 4px 0 0;
  box-shadow: 0 2px 6px rgba(0,0,0,0.3);
  animation: tob-deck 6s ease-in-out infinite;
}
.scn-tom-on-boat .figure-tom {
  position: absolute; bottom: 43%; left: 38%; width: 20px; height: 40px;
  background: linear-gradient(180deg, #4A4A4A 0%, #2A2A2A 40%, #1A1A1A 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  box-shadow: 0 2px 8px rgba(0,0,0,0.4);
  animation: tob-figure 4s ease-in-out infinite;
}
.scn-tom-on-boat .figure-hat {
  position: absolute; bottom: 58%; left: 38.5%; width: 22px; height: 8px;
  background: linear-gradient(180deg, #3A3A3A 0%, #1A1A1A 100%);
  border-radius: 50% 50% 0 0;
  box-shadow: 0 2px 6px rgba(0,0,0,0.5);
  animation: tob-hat 4s ease-in-out infinite;
}
@keyframes tob-sky { 0% { opacity: 0.8 } 50% { opacity: 1 } 100% { opacity: 0.85 } }
@keyframes tob-sun { 0% { transform: translate(0, 0) scale(1); opacity: 0.9 } 50% { transform: translate(5px, -3px) scale(1.05); opacity: 1 } 100% { transform: translate(-3px, 2px) scale(0.95); opacity: 0.85 } }
@keyframes tob-river { 0% { transform: translateY(0) } 50% { transform: translateY(-2px) } 100% { transform: translateY(1px) } }
@keyframes tob-ripple { 0% { background-position: 0% 0 } 100% { background-position: 200% 0 } }
@keyframes tob-boat { 0% { transform: translate(0, 0) rotate(-1deg) } 30% { transform: translate(2px, -2px) rotate(0.5deg) } 60% { transform: translate(-2px, 1px) rotate(-0.5deg) } 100% { transform: translate(0, 0) rotate(1deg) } }
@keyframes tob-deck { 0% { transform: translate(0, 0) } 30% { transform: translate(2px, -2px) } 60% { transform: translate(-2px, 1px) } 100% { transform: translate(0, 0) } }
@keyframes tob-figure { 0% { transform: translate(0, 0) rotate(-1deg) } 25% { transform: translate(1px, -1px) rotate(0deg) } 50% { transform: translate(2px, 0) rotate(1deg) } 75% { transform: translate(1px, -1px) rotate(0deg) } 100% { transform: translate(0, 0) rotate(-1deg) } }
@keyframes tob-hat { 0% { transform: translate(0, 0) rotate(-1deg) } 25% { transform: translate(1px, -1px) rotate(0deg) } 50% { transform: translate(2px, 0) rotate(1deg) } 75% { transform: translate(1px, -1px) rotate(0deg) } 100% { transform: translate(0, 0) rotate(-1deg) } }

.scn-eva-introduced {
  background:
    linear-gradient(180deg, #FFF8DC 0%, #F5DEB3 25%, #DEB887 50%, #D2B48C 75%, #C4A882 100%),
    radial-gradient(ellipse at 60% 30%, #FFE4B5 0%, transparent 70%);
  position: relative;
  overflow: hidden;
  min-height: 400px;
}
.scn-eva-introduced .bg-warm {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, #FFF8DC 0%, #FAEBD7 30%, #F5DEB3 60%, #E8D5B7 100%);
  animation: eva-warm 15s ease-in-out infinite alternate;
}
.scn-eva-introduced .sunbeam {
  position: absolute; top: 0; left: 25%; width: 35%; height: 100%;
  background: linear-gradient(180deg, rgba(255,255,200,0.3) 0%, rgba(255,255,200,0.1) 50%, transparent 100%);
  clip-path: polygon(30% 0%, 70% 0%, 60% 100%, 40% 100%);
  filter: blur(8px);
  animation: eva-beam 8s ease-in-out infinite alternate;
}
.scn-eva-introduced .cabin-wall {
  position: absolute; top: 15%; left: 10%; width: 80%; height: 70%;
  background: linear-gradient(180deg, #DEB887 0%, #C4A882 40%, #B8956A 100%);
  border-radius: 8px;
  box-shadow: inset 0 0 30px rgba(0,0,0,0.15);
}
.scn-eva-introduced .cabin-window {
  position: absolute; top: 25%; left: 35%; width: 30%; height: 25%;
  background: linear-gradient(180deg, #B0E0E6 0%, #87CEEB 50%, #4682B4 100%);
  border: 6px solid #8B4513;
  border-radius: 4px;
  box-shadow: inset 0 0 20px rgba(135,206,235,0.3), 0 0 30px rgba(135,206,235,0.2);
  animation: eva-window 6s ease-in-out infinite alternate;
}
.scn-eva-introduced .figure-eva {
  position: absolute; bottom: 25%; left: 42%; width: 22px; height: 48px;
  background: linear-gradient(180deg, #FFF5EE 0%, #FFE4E1 30%, #F5DEB3 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  box-shadow: 0 0 20px 6px rgba(255,228,225,0.2);
  animation: eva-figure 5s ease-in-out infinite;
}
.scn-eva-introduced .dress {
  position: absolute; bottom: 18%; left: 40%; width: 30px; height: 28px;
  background: linear-gradient(180deg, #FFF8DC 0%, #FFF0F5 40%, #FFE4E1 100%);
  border-radius: 20% 20% 40% 40% / 30% 30% 50% 50%;
  box-shadow: 0 0 12px 4px rgba(255,240,245,0.15);
  animation: eva-dress 5s ease-in-out infinite;
}
.scn-eva-introduced .hair {
  position: absolute; bottom: 53%; left: 41%; width: 24px; height: 14px;
  background: linear-gradient(180deg, #8B4513 0%, #5C2E0A 50%, #3A1A00 100%);
  border-radius: 50% 50% 0 0;
  box-shadow: 0 2px 6px rgba(0,0,0,0.2);
  animation: eva-hair 5s ease-in-out infinite;
}
.scn-eva-introduced .dust-motes {
  position: absolute; top: 0; left: 0; right: 0; bottom: 0;
  background: radial-gradient(circle at 30% 20%, rgba(255,255,200,0.06) 0%, transparent 20%),
              radial-gradient(circle at 60% 40%, rgba(255,255,200,0.04) 0%, transparent 15%),
              radial-gradient(circle at 45% 60%, rgba(255,255,200,0.05) 0%, transparent 18%),
              radial-gradient(circle at 70% 30%, rgba(255,255,200,0.03) 0%, transparent 12%);
  animation: eva-dust 12s ease-in-out infinite alternate;
}
@keyframes eva-warm { 0% { opacity: 0.85 } 50% { opacity: 1 } 100% { opacity: 0.9 } }
@keyframes eva-beam { 0% { transform: translateX(-5px) skewX(-2deg); opacity: 0.7 } 50% { transform: translateX(5px) skewX(2deg); opacity: 1 } 100% { transform: translateX(-3px) skewX(-1deg); opacity: 0.8 } }
@keyframes eva-window { 0% { opacity: 0.8; box-shadow: inset 0 0 20px rgba(135,206,235,0.2), 0 0 20px rgba(135,206,235,0.1) } 50% { opacity: 1; box-shadow: inset 0 0 30px rgba(135,206,235,0.4), 0 0 40px rgba(135,206,235,0.25) } 100% { opacity: 0.85; box-shadow: inset 0 0 20px rgba(135,206,235,0.25), 0 0 25px rgba(135,206,235,0.15) } }
@keyframes eva-figure { 0% { transform: translate(0, 0) rotate(-1deg) } 25% { transform: translate(2px, -2px) rotate(0.5deg) } 50% { transform: translate(4px, 0) rotate(1deg) } 75% { transform: translate(2px, -1px) rotate(0.5deg) } 100% { transform: translate(0, 0) rotate(-1deg) } }
@keyframes eva-dress { 0% { transform: translate(0, 0) rotate(-0.5deg) } 25% { transform: translate(2px, -1px) rotate(0deg) } 50% { transform: translate(3px, 0) rotate(0.5deg) } 75% { transform: translate(2px, -1px) rotate(0deg) } 100% { transform: translate(0, 0) rotate(-0.5deg) } }
@keyframes eva-hair { 0% { transform: translate(0, 0) rotate(-1deg) } 25% { transform: translate(1px, -1px) rotate(0deg) } 50% { transform: translate(2px, 0) rotate(1deg) } 75% { transform: translate(1px, -1px) rotate(0deg) } 100% { transform: translate(0, 0) rotate(-1deg) } }
@keyframes eva-dust { 0% { background-position: 0 0, 0 0, 0 0, 0 0; opacity: 0.5 } 50% { background-position: 20px 10px, -15px 20px, 10px -10px, -5px 15px; opacity: 0.8 } 100% { background-position: 10px 5px, -8px 10px, 5px -5px, -3px 8px; opacity: 0.6 } }

.scn-st-clare-buys-tom {
  background:
    linear-gradient(180deg, #FFF5E6 0%, #F5DEB3 20%, #DEB887 45%, #C4A882 70%, #B8956A 100%),
    radial-gradient(ellipse at 50% 60%, #FFF8DC 0%, transparent 70%);
  position: relative;
  overflow: hidden;
  min-height: 400px;
}
.scn-st-clare-buys-tom .bg-market {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, #FFF5E6 0%, #FDE8D0 25%, #F5DEB3 50%, #E8D5B7 75%, #D4C4A8 100%);
  animation: stb-bg 14s ease-in-out infinite alternate;
}
.scn-st-clare-buys-tom .counter {
  position: absolute; bottom: 25%; left: 15%; width: 70%; height: 8px;
  background: linear-gradient(180deg, #8B4513 0%, #5C2E0A 100%);
  border-radius: 2px;
  box-shadow: 0 3px 10px rgba(0,0,0,0.3);
}
.scn-st-clare-buys-tom .paper {
  position: absolute; bottom: 30%; left: 45%; width: 30px; height: 20px;
  background: linear-gradient(180deg, #FFF8DC 0%, #F5DEB3 100%);
  border-radius: 2px;
  box-shadow: 0 2px 6px rgba(0,0,0,0.15);
  transform: rotate(-3deg);
  animation: stb-paper 7s ease-in-out infinite;
}
.scn-st-clare-buys-tom .coin-stack {
  position: absolute; bottom: 28%; left: 52%; width: 12px; height: 8px;
  background: linear-gradient(180deg, #FFD700 0%, #DAA520 50%, #B8860B 100%);
  border-radius: 50%;
  box-shadow: 0 2px 6px rgba(0,0,0,0.2);
  animation: stb-coins 5s ease-in-out infinite;
}
.scn-st-clare-buys-tom .hand-left {
  position: absolute; bottom: 30%; left: 40%; width: 14px; height: 20px;
  background: linear-gradient(180deg, #F5DEB3 0%, #D2B48C 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%;
  transform-origin: bottom center;
  animation: stb-hand-l 4s ease-in-out infinite;
}
.scn-st-clare-buys-tom .hand-right {
  position: absolute; bottom: 30%; right: 38%; width: 14px; height: 20px;
  background: linear-gradient(180deg, #F5DEB3 0%, #D2B48C 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%;
  transform-origin: bottom center;
  animation: stb-hand-r 4s ease-in-out infinite reverse;
}
.scn-st-clare-buys-tom .figure-seller {
  position: absolute; bottom: 15%; left: 22%; width: 28px; height: 55px;
  background: linear-gradient(180deg, #4A3728 0%, #2A1A0A 40%, #1A0E05 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: stb-seller 6s ease-in-out infinite;
}
.scn-st-clare-buys-tom .figure-buyer {
  position: absolute; bottom: 15%; right: 20%; width: 28px; height: 55px;
  background: linear-gradient(180deg, #2A2A3A 0%, #1A1A2A 40%, #0A0A1A 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: stb-buyer 6s ease-in-out infinite reverse;
}
.scn-st-clare-buys-tom .ledger {
  position: absolute; bottom: 26%; left: 38%; width: 24%; height: 6px;
  background: linear-gradient(180deg, #D2B48C 0%, #A0522D 100%);
  border-radius: 2px;
  box-shadow: 0 1px 4px rgba(0,0,0,0.2);
  animation: stb-ledger 8s ease-in-out infinite;
}
@keyframes stb-bg { 0% { opacity: 0.85 } 50% { opacity: 1 } 100% { opacity: 0.9 } }
@keyframes stb-paper { 0% { transform: rotate(-3deg) translateY(0) } 50% { transform: rotate(-1deg) translateY(-2px) } 100% { transform: rotate(-3deg) translateY(0) } }
@keyframes stb-coins { 0% { transform: scale(1) } 50% { transform: scale(1.08) translateY(-1px) } 100% { transform: scale(1) } }
@keyframes stb-hand-l { 0% { transform: translate(0, 0) rotate(5deg) } 25% { transform: translate(3px, -3px) rotate(10deg) } 50% { transform: translate(6px, -5px) rotate(15deg) } 75% { transform: translate(3px, -3px) rotate(10deg) } 100% { transform: translate(0, 0) rotate(5deg) } }
@keyframes stb-hand-r { 0% { transform: translate(0, 0) rotate(-5deg) } 25% { transform: translate(-3px, -3px) rotate(-10deg) } 50% { transform: translate(-6px, -5px) rotate(-15deg) } 75% { transform: translate(-3px, -3px) rotate(-10deg) } 100% { transform: translate(0, 0) rotate(-5deg) } }
@keyframes stb-seller { 0% { transform: translate(0, 0) rotate(-1deg) } 30% { transform: translate(1px, -1px) rotate(0deg) } 60% { transform: translate(2px, 0) rotate(1deg) } 100% { transform: translate(0, 0) rotate(-1deg) } }
@keyframes stb-buyer { 0% { transform: translate(0, 0) rotate(1deg) } 30% { transform: translate(-1px, -1px) rotate(0deg) } 60% { transform: translate(-2px, 0) rotate(-1deg) } 100% { transform: translate(0, 0) rotate(1deg) } }
@keyframes stb-ledger { 0% { opacity: 0.8 } 50% { opacity: 1 } 100% { opacity: 0.85 } }

.scn-st-clare-backstory {
  background:
    linear-gradient(180deg, #1A1A2E 0%, #2A2A3E 20%, #3A3A4E 45%, #2E2E40 70%, #1E1E30 100%),
    radial-gradient(ellipse at 50% 40%, #4A4A5E 0%, transparent 70%);
  position: relative;
  overflow: hidden;
  min-height: 400px;
}
.scn-st-clare-backstory .bg-parlor {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, #1A1A2E 0%, #252540 30%, #2A2A45 60%, #1E1E35 100%);
  animation: stb2-bg 16s ease-in-out infinite alternate;
}
.scn-st-clare-backstory .wall-panel {
  position: absolute; top: 10%; left: 8%; width: 84%; height: 75%;
  background: linear-gradient(180deg, #2A2A40 0%, #3A3A50 30%, #2E2E45 100%);
  border: 2px solid #4A4A5E;
  border-radius: 6px;
  box-shadow: inset 0 0 40px rgba(0,0,0,0.3);
}
.scn-st-clare-backstory .lamp-glow {
  position: absolute; top: 20%; left: 50%; width: 80px; height: 80px;
  background: radial-gradient(circle, rgba(255,200,100,0.3) 0%, rgba(255,180,80,0.15) 30%, rgba(255,160,60,0.05) 60%, transparent 100%);
  border-radius: 50%;
  transform: translateX(-50%);
  box-shadow: 0 0 60px 20px rgba(255,200,100,0.1);
  animation: stb2-glow 5s ease-in-out infinite alternate;
}
.scn-st-clare-backstory .lamp-base {
  position: absolute; top: 28%; left: 50%; width: 12px; height: 20px;
  background: linear-gradient(180deg, #5C4A2E 0%, #3A2A1A 100%);
  border-radius: 20% 20% 10% 10%;
  transform: translateX(-50%);
  box-shadow: 0 2px 8px rgba(0,0,0,0.4);
}
.scn-st-clare-backstory .chair-back {
  position: absolute; bottom: 25%; left: 35%; width: 60px; height: 40px;
  background: linear-gradient(180deg, #4A3A2A 0%, #3A2A1A 60%, #2A1A0A 100%);
  border-radius: 30% 30% 10% 10% / 40% 40% 20% 20%;
  box-shadow: 0 4px 12px rgba(0,0,0,0.5);
  animation: stb2-chair 10s ease-in-out infinite alternate;
}
.scn-st-clare-backstory .figure-seated {
  position: absolute; bottom: 20%; left: 42%; width: 22px; height: 36px;
  background: linear-gradient(180deg, #3A3A4A 0%, #2A2A3A 40%, #1A1A2A 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  box-shadow: 0 2px 8px rgba(0,0,0,0.3);
  animation: stb2-figure 7s ease-in-out infinite;
}
.scn-st-clare-backstory .book {
  position: absolute; bottom: 22%; left: 48%; width: 16px; height: 20px;
  background: linear-gradient(180deg, #5C3A1A 0%, #4A2A0A 50%, #3A1A00 100%);
  border-radius: 2px 4px 4px 2px;
  box-shadow: 0 2px 6px rgba(0,0,0,0.3);
  transform: rotate(-5deg);
  animation: stb2-book 8s ease-in-out infinite;
}
.scn-st-clare-backstory .curtain {
  position: absolute; top: 0; left: 0; width: 12%; height: 100%;
  background: linear-gradient(180deg, #4A2A1A 0%, #3A1A0A 40%, #2A0E00 80%, #1A0600 100%);
  border-radius: 0 20% 20% 0 / 0 40% 40% 0;
  box-shadow: 2px 0 10px rgba(0,0,0,0.4);
  animation: stb2-curtain 20s ease-in-out infinite alternate;
}
@keyframes stb2-bg { 0% { opacity: 0.85 } 50% { opacity: 1 } 100% { opacity: 0.9 } }
@keyframes stb2-glow { 0% { transform: translateX(-50%) scale(1); opacity: 0.6; box-shadow: 0 0 40px 15px rgba(255,200,100,0.08) } 50% { transform: translateX(-50%) scale(1.08); opacity: 1; box-shadow: 0 0 80px 30px rgba(255,200,100,0.15) } 100% { transform: translateX(-50%) scale(0.95); opacity: 0.7; box-shadow: 0 0 50px 20px rgba(255,200,100,0.1) } }
@keyframes stb2-chair { 0% { transform: translateY(0) } 50% { transform: translateY(-2px) } 100% { transform: translateY(0) } }
@keyframes stb2-figure { 0% { transform: translate(0, 0) rotate(-1deg) } 25% { transform: translate(1px, -1px) rotate(0deg) } 50% { transform: translate(2px, 0) rotate(1deg) } 75% { transform: translate(1px, -1px) rotate(0deg) } 100% { transform: translate(0, 0) rotate(-1deg) } }
@keyframes stb2-book { 0% { transform: rotate(-5deg) translateY(0) } 50% { transform: rotate(-3deg) translateY(-2px) } 100% { transform: rotate(-5deg) translateY(0) } }
@keyframes stb2-curtain { 0% { transform: scaleX(1) } 50% { transform: scaleX(1.02) } 100% { transform: scaleX(0.98) } }

.scn-tom-rebukes-st-clare { background: linear-gradient(180deg, #f5e6c8 0%, #d4b48a 30%, #b08a5e 60%, #8c6a42 100%), radial-gradient(ellipse at 50% 30%, #ffe0a0 0%, transparent 70%); }
.scn-tom-rebukes-st-clare .wall { position:absolute; inset:0 0 35% 0; background: linear-gradient(90deg, #d4b48a 0%, #a88560 50%, #d4b48a 100%); animation: tr-wall 12s ease-in-out infinite alternate; }
.scn-tom-rebukes-st-clare .floor { position:absolute; bottom:0; left:0; right:0; height:35%; background: linear-gradient(180deg, #6a4a2a 0%, #4a2a1a 100%); border-radius: 10% 10% 0 0; box-shadow: inset 0 12px 20px rgba(0,0,0,.3); }
.scn-tom-rebukes-st-clare .window { position:absolute; top:8%; left:12%; width:25%; height:40%; background: linear-gradient(135deg, #ffe0a0 0%, #ffcc80 50%, #d4a060 100%); border-radius: 4% 4% 0 0; box-shadow: inset 0 0 20px rgba(255,200,80,.5); animation: tr-window 8s ease-in-out infinite alternate; }
.scn-tom-rebukes-st-clare .table { position:absolute; bottom:32%; left:25%; width:50%; height:6%; background: linear-gradient(180deg, #7a5a3a 0%, #5a3a1a 100%); border-radius: 30% 30% 0 0; box-shadow: 0 -4px 8px rgba(0,0,0,.3); }
.scn-tom-rebukes-st-clare .coffee-cup { position:absolute; bottom:36%; left:38%; width:8%; height:8%; background: linear-gradient(180deg, #c8a878 0%, #a08050 100%); border-radius: 30% 30% 10% 10%; box-shadow: 0 2px 6px rgba(0,0,0,.2); animation: tr-cup 5s ease-in-out infinite; }
.scn-tom-rebukes-st-clare .paper { position:absolute; bottom:34%; left:48%; width:12%; height:10%; background: linear-gradient(135deg, #f0e8d8 0%, #dcd0c0 100%); border-radius: 2%; transform: rotate(-5deg); box-shadow: 0 2px 8px rgba(0,0,0,.1); animation: tr-paper 12s ease-in-out infinite; }
.scn-tom-rebukes-st-clare .figure-tom { position:absolute; bottom:30%; left:20%; width:10%; height:30%; background: linear-gradient(180deg, #3a2a1a 0%, #1a0a00 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: tr-tom 6s ease-in-out infinite; }
.scn-tom-rebukes-st-clare .figure-stclare { position:absolute; bottom:30%; left:60%; width:12%; height:28%; background: linear-gradient(180deg, #5a4a3a 0%, #2a1a0a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: tr-stclare 7s ease-in-out infinite; }
@keyframes tr-wall { 0% { opacity:.7 } 50% { opacity:.9 } 100% { opacity:.8 } }
@keyframes tr-window { 0% { filter: brightness(1); } 50% { filter: brightness(1.2); } 100% { filter: brightness(.9); } }
@keyframes tr-cup { 0% { transform: translateY(0) rotate(0); } 25% { transform: translateY(-2px) rotate(-2deg); } 50% { transform: translateY(0) rotate(0); } 75% { transform: translateY(-1px) rotate(2deg); } 100% { transform: translateY(0) rotate(0); } }
@keyframes tr-paper { 0% { transform: rotate(-5deg) scale(1); } 50% { transform: rotate(-3deg) scale(1.02); } 100% { transform: rotate(-5deg) scale(1); } }
@keyframes tr-tom { 0% { transform: translateX(0) translateY(0) rotate(0); } 25% { transform: translateX(2px) translateY(-1px) rotate(-1deg); } 50% { transform: translateX(0) translateY(0) rotate(0); } 75% { transform: translateX(-2px) translateY(-1px) rotate(1deg); } 100% { transform: translateX(0) translateY(0) rotate(0); } }
@keyframes tr-stclare { 0% { transform: translateX(0) rotate(0); } 33% { transform: translateX(3px) rotate(1deg); } 66% { transform: translateX(-2px) rotate(-1deg); } 100% { transform: translateX(0) rotate(0); } }

.scn-dinahs-kitchen { background: linear-gradient(180deg, #f5e6b8 0%, #d4c080 40%, #a08050 100%), radial-gradient(ellipse at 50% 80%, #ffe080 0%, transparent 60%); }
.scn-dinahs-kitchen .bg-wall { position:absolute; inset:0 0 30% 0; background: linear-gradient(90deg, #d4c080 0%, #c0a860 50%, #d4c080 100%); animation: dk-wall 15s ease-in-out infinite alternate; }
.scn-dinahs-kitchen .shelf { position:absolute; top:25%; left:5%; width:90%; height:5%; background: linear-gradient(180deg, #8a6a3a 0%, #6a4a2a 100%); border-radius: 10%; box-shadow: 0 4px 8px rgba(0,0,0,.2); }
.scn-dinahs-kitchen .counter { position:absolute; bottom:30%; left:0; right:0; height:12%; background: linear-gradient(180deg, #c0a060 0%, #a08040 100%); border-radius: 20% 20% 0 0; box-shadow: inset 0 6px 12px rgba(0,0,0,.2); }
.scn-dinahs-kitchen .cup-nutmegs { position:absolute; bottom:36%; left:20%; width:8%; height:10%; background: linear-gradient(180deg, #e8d8b0 0%, #c8b890 100%); border-radius: 30% 30% 10% 10%; box-shadow: 0 2px 6px rgba(0,0,0,.15); animation: dk-cup 4s ease-in-out infinite; }
.scn-dinahs-kitchen .grater { position:absolute; bottom:38%; left:35%; width:10%; height:6%; background: linear-gradient(135deg, #b8a888 0%, #908070 100%); border-radius: 20%; box-shadow: inset 0 2px 4px rgba(0,0,0,.2); animation: dk-grater 3s ease-in-out infinite alternate; }
.scn-dinahs-kitchen .spilled-jar { position:absolute; bottom:33%; left:55%; width:8%; height:12%; background: linear-gradient(180deg, #d0b060 0%, #a08040 100%); border-radius: 20% 20% 40% 40%; transform: rotate(30deg); box-shadow: 0 4px 8px rgba(0,0,0,.2); animation: dk-jar 5s ease-in-out infinite; }
.scn-dinahs-kitchen .figure-dinah { position:absolute; bottom:28%; left:10%; width:12%; height:34%; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: dk-dinah 6s ease-in-out infinite; }
.scn-dinahs-kitchen .figure-jake { position:absolute; bottom:30%; left:70%; width:10%; height:28%; background: linear-gradient(180deg, #3a2a1a 0%, #1a0a00 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: dk-jake 4s ease-in-out infinite; }
@keyframes dk-wall { 0% { opacity:.75 } 50% { opacity:.9 } 100% { opacity:.8 } }
@keyframes dk-cup { 0% { transform: translateY(0) rotate(0); } 30% { transform: translateY(-3px) rotate(5deg); } 60% { transform: translateY(0) rotate(-3deg); } 100% { transform: translateY(0) rotate(0); } }
@keyframes dk-grater { 0% { transform: scale(1); } 100% { transform: scale(1.05); } }
@keyframes dk-jar { 0% { transform: rotate(30deg) translateY(0); } 50% { transform: rotate(32deg) translateY(-2px); } 100% { transform: rotate(30deg) translateY(0); } }
@keyframes dk-dinah { 0% { transform: translateX(0) rotate(0); } 25% { transform: translateX(4px) rotate(-2deg); } 50% { transform: translateX(0) rotate(0); } 75% { transform: translateX(-4px) rotate(2deg); } 100% { transform: translateX(0) rotate(0); } }
@keyframes dk-jake { 0% { transform: translateX(0) scaleY(1); } 50% { transform: translateX(6px) scaleY(1.02); } 100% { transform: translateX(0) scaleY(1); } }

.scn-st-clare-defends-dinah { background: linear-gradient(180deg, #f0e6d8 0%, #d8c8b0 40%, #b8a088 100%), radial-gradient(ellipse at 50% 30%, #f5e6d0 0%, transparent 70%); }
.scn-st-clare-defends-dinah .bg-parlor { position:absolute; inset:0 0 40% 0; background: linear-gradient(90deg, #d8c8b0 0%, #c0a888 50%, #d8c8b0 100%); animation: sd-parlor 14s ease-in-out infinite alternate; }
.scn-st-clare-defends-dinah .chair { position:absolute; bottom:30%; left:15%; width:15%; height:18%; background: linear-gradient(180deg, #8a6a4a 0%, #5a3a1a 100%); border-radius: 20% 20% 40% 40%; box-shadow: 0 6px 12px rgba(0,0,0,.3); }
.scn-st-clare-defends-dinah .clock { position:absolute; top:15%; right:20%; width:10%; height:14%; background: linear-gradient(180deg, #b8a088 0%, #8a7058 100%); border-radius: 50%; box-shadow: inset 0 0 10px rgba(0,0,0,.3); animation: sd-clock 6s ease-in-out infinite; }
.scn-st-clare-defends-dinah .drapery { position:absolute; top:0; right:0; width:20%; height:60%; background: linear-gradient(180deg, #c8a888 0%, #a08060 100%); border-radius: 0 0 40% 0; animation: sd-drape 8s ease-in-out infinite alternate; }
.scn-st-clare-defends-dinah .table { position:absolute; bottom:30%; left:45%; width:25%; height:5%; background: linear-gradient(180deg, #7a5a3a 0%, #5a3a1a 100%); border-radius: 20% 20% 0 0; box-shadow: 0 -4px 8px rgba(0,0,0,.2); }
.scn-st-clare-defends-dinah .figure-stclare { position:absolute; bottom:28%; left:22%; width:12%; height:30%; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: sd-stclare 7s ease-in-out infinite; }
.scn-st-clare-defends-dinah .figure-missophelia { position:absolute; bottom:28%; left:55%; width:12%; height:32%; background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: sd-ophelia 6s ease-in-out infinite; }
@keyframes sd-parlor { 0% { opacity:.8 } 50% { opacity:.95 } 100% { opacity:.85 } }
@keyframes sd-clock { 0% { transform: rotate(0); } 50% { transform: rotate(10deg); } 100% { transform: rotate(0); } }
@keyframes sd-drape { 0% { transform: translateY(0); } 100% { transform: translateY(-5px); } }
@keyframes sd-stclare { 0% { transform: translateX(0) rotate(0); } 25% { transform: translateX(3px) rotate(-1deg); } 50% { transform: translateX(0) rotate(0); } 75% { transform: translateX(-3px) rotate(1deg); } 100% { transform: translateX(0) rotate(0); } }
@keyframes sd-ophelia { 0% { transform: translateX(0) scaleY(1); } 33% { transform: translateX(-2px) scaleY(1.03); } 66% { transform: translateX(2px) scaleY(.97); } 100% { transform: translateX(0) scaleY(1); } }

.scn-st-clare-miss-ophelia-debate { background: linear-gradient(180deg, #f0e6d0 0%, #d0c0a0 50%, #b09878 100%), radial-gradient(ellipse at 50% 50%, #ffe0a0 0%, transparent 70%); }
.scn-st-clare-miss-ophelia-debate .bg-wall { position:absolute; inset:0 0 30% 0; background: linear-gradient(90deg, #d0c0a0 0%, #b8a080 50%, #d0c0a0 100%); animation: so-wall 16s ease-in-out infinite alternate; }
.scn-st-clare-miss-ophelia-debate .window { position:absolute; top:5%; left:10%; width:80%; height:55%; background: linear-gradient(135deg, #ffe8c0 0%, #f0d090 50%, #d4a060 100%); border-radius: 8% 8% 0 0; box-shadow: inset 0 0 40px rgba(255,200,80,.6); animation: so-window 10s ease-in-out infinite alternate; }
.scn-st-clare-miss-ophelia-debate .figure-stclare-silhouette { position:absolute; bottom:25%; left:18%; width:14%; height:40%; background: linear-gradient(180deg, #3a2a1a 0%, #1a0a00 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: so-stclare 5s ease-in-out infinite; }
.scn-st-clare-miss-ophelia-debate .figure-missophelia-silhouette { position:absolute; bottom:25%; left:60%; width:14%; height:40%; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: so-ophelia 6s ease-in-out infinite; }
.scn-st-clare-miss-ophelia-debate .table { position:absolute; bottom:22%; left:40%; width:20%; height:4%; background: linear-gradient(180deg, #6a4a2a 0%, #4a2a1a 100%); border-radius: 20% 20% 0 0; }
.scn-st-clare-miss-ophelia-debate .candle { position:absolute; bottom:24%; left:48%; width:4%; height:10%; background: linear-gradient(180deg, #f0e0b0 0%, #c8a850 100%); border-radius: 20% 20% 40% 40%; box-shadow: 0 0 8px rgba(255,200,80,.5); animation: so-candle 4s ease-in-out infinite; }
.scn-st-clare-miss-ophelia-debate .candle-glow { position:absolute; bottom:24%; left:44%; width:12%; height:12%; background: radial-gradient(circle, rgba(255,200,80,.6) 0%, transparent 70%); border-radius: 50%; animation: so-glow 4s ease-in-out infinite alternate; }
@keyframes so-wall { 0% { opacity:.8 } 50% { opacity:.95 } 100% { opacity:.85 } }
@keyframes so-window { 0% { filter: brightness(1); transform: scaleY(1); } 50% { filter: brightness(1.15); transform: scaleY(1.02); } 100% { filter: brightness(1); transform: scaleY(1); } }
@keyframes so-stclare { 0% { transform: translateX(0) rotate(0); } 25% { transform: translateX(4px) rotate(-2deg); } 50% { transform: translateX(0) rotate(0); } 75% { transform: translateX(-4px) rotate(2deg); } 100% { transform: translateX(0) rotate(0); } }
@keyframes so-ophelia { 0% { transform: translateX(0) scaleY(1) rotate(0); } 30% { transform: translateX(-3px) scaleY(1.03) rotate(-1deg); } 60% { transform: translateX(3px) scaleY(.97) rotate(1deg); } 100% { transform: translateX(0) scaleY(1) rotate(0); } }
@keyframes so-candle { 0% { transform: translateY(0) scaleY(1); } 50% { transform: translateY(-2px) scaleY(1.1); } 100% { transform: translateY(0) scaleY(1); } }
@keyframes so-glow { 0% { opacity:.7; transform: scale(1); } 100% { opacity:1; transform: scale(1.3); } }

.scn-toms-departure {
  background:
    linear-gradient(180deg, #1c1820 0%, #2a1e1a 30%, #3a2820 70%, #1a1410 100%),
    radial-gradient(ellipse at 60% 30%, #3a302a 0%, transparent 50%);
}
.scn-toms-departure .td-wall { position:absolute; inset:0 0 30% 0; background: linear-gradient(180deg, #2a1e1a 0%, #1c1410 100%); }
.scn-toms-departure .td-floor { position:absolute; bottom:0; left:0; right:0; height:30%; background: linear-gradient(180deg, #3a2a1a 0%, #2a1a0a 100%); box-shadow: inset 0 8px 12px rgba(0,0,0,.6); }
.scn-toms-departure .td-door { position:absolute; right:15%; bottom:30%; width:90px; height:140px; background: linear-gradient(180deg, #1a0e08 0%, #0e0806 100%); border:2px solid #3a2a20; border-radius:4% 4% 0 0; box-shadow: inset 0 0 20px rgba(0,0,0,.8); }
.scn-toms-departure .td-box { position:absolute; bottom:35%; left:38%; width:50px; height:40px; background: linear-gradient(180deg, #6a4a2a 0%, #4a2a1a 100%); border-radius:6% 6% 4% 4%; box-shadow: 0 4px 8px rgba(0,0,0,.5); animation: td-box 8s ease-in-out infinite; }
.scn-toms-departure .td-tom { position:absolute; bottom:32%; left:20%; width:24px; height:70px; background: linear-gradient(180deg, #1a1410 0%, #0e0a06 100%); border-radius:40% 40% 60% 60% / 50% 50% 40% 40%; transform-origin: bottom center; animation: td-tom 12s ease-in-out infinite; }
.scn-toms-departure .td-wife { position:absolute; bottom:32%; left:50%; width:20px; height:60px; background: linear-gradient(180deg, #2a1e18 0%, #1a100a 100%); border-radius:50% 50% 50% 50% / 60% 60% 40% 40%; animation: td-wife 10s ease-in-out infinite; }
.scn-toms-departure .td-child1 { position:absolute; bottom:32%; left:58%; width:14px; height:40px; background: linear-gradient(180deg, #2a1e1a 0%, #1a120e 100%); border-radius:50% 50% 50% 50% / 60% 60% 40% 40%; animation: td-child1 8s ease-in-out infinite; }
.scn-toms-departure .td-child2 { position:absolute; bottom:32%; left:64%; width:12px; height:34px; background: linear-gradient(180deg, #2a1e1a 0%, #1a120e 100%); border-radius:50% 50% 50% 50% / 60% 60% 40% 40%; animation: td-child2 9s ease-in-out infinite; }
.scn-toms-departure .td-glow { position:absolute; top:20%; left:40%; width:30px; height:30px; background: radial-gradient(circle, rgba(200,160,100,.4) 0%, transparent 70%); border-radius:50%; animation: td-glow 4s ease-in-out infinite alternate; }
@keyframes td-box { 0% { transform: translateY(0) } 50% { transform: translateY(-2px) } 100% { transform: translateY(0) } }
@keyframes td-tom { 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 td-wife { 0% { transform: translateX(0) } 50% { transform: translateX(2px) } 100% { transform: translateX(0) } }
@keyframes td-child1 { 0% { transform: translateX(0) scale(1) } 50% { transform: translateX(3px) scale(.95) } 100% { transform: translateX(0) scale(1) } }
@keyframes td-child2 { 0% { transform: translateX(0) } 50% { transform: translateX(-2px) } 100% { transform: translateX(0) } }
@keyframes td-glow { 0% { opacity:.3; transform: scale(1) } 100% { opacity:.7; transform: scale(1.2) } }

.scn-george-says-goodbye {
  background:
    linear-gradient(180deg, #87ceeb 0%, #b0d4f1 40%, #e6f5ff 70%, #f0f8ff 100%),
    radial-gradient(ellipse at 20% 20%, #ffe68f 0%, transparent 40%);
}
.scn-george-says-goodbye .gsg-sky { position:absolute; inset:0 0 35% 0; background: linear-gradient(180deg, #7ec8e3 0%, #b0d4f1 100%); }
.scn-george-says-goodbye .gsg-ground { position:absolute; bottom:0; left:0; right:0; height:35%; background: linear-gradient(180deg, #7aac5f 0%, #5a7a3f 100%); border-radius:40% 60% 0 0 / 80% 70% 0 0; box-shadow: inset 0 8px 20px rgba(0,40,0,.3); }
.scn-george-says-goodbye .gsg-wagon { position:absolute; bottom:30%; left:50%; width:120px; height:50px; transform:translateX(-50%); background: linear-gradient(180deg, #6a4a2a 0%, #4a2a1a 100%); border-radius:8% 8% 6% 6%; box-shadow: 0 6px 12px rgba(0,0,0,.4); animation: gsg-wagon 6s ease-in-out infinite; }
.scn-george-says-goodbye .gsg-wheel1 { position:absolute; bottom:28%; left:50%; width:20px; height:20px; margin-left:-50px; background: radial-gradient(circle, #3a2a1a 40%, #1a100a 80%); border-radius:50%; border:3px solid #2a1a0e; box-shadow: inset 0 0 4px rgba(0,0,0,.6); animation: gsg-wheel 1s linear infinite; }
.scn-george-says-goodbye .gsg-wheel2 { position:absolute; bottom:28%; left:50%; width:20px; height:20px; margin-left:30px; background: radial-gradient(circle, #3a2a1a 40%, #1a100a 80%); border-radius:50%; border:3px solid #2a1a0e; box-shadow: inset 0 0 4px rgba(0,0,0,.6); animation: gsg-wheel 1s linear infinite; animation-delay: -.5s; }
.scn-george-says-goodbye .gsg-tom { position:absolute; bottom:32%; left:35%; width:30px; height:80px; background: linear-gradient(180deg, #2a1e0e 0%, #1a0e06 100%); border-radius:50% 50% 60% 60% / 60% 60% 40% 40%; transform-origin: bottom center; animation: gsg-tom 6s ease-in-out infinite; }
.scn-george-says-goodbye .gsg-george { position:absolute; bottom:32%; left:42%; width:20px; height:60px; background: linear-gradient(180deg, #c8553d 0%, #a0461a 100%); border-radius:50% 50% 60% 60% / 60% 60% 40% 40%; transform-origin: bottom center; animation: gsg-george 4s ease-in-out infinite; }
.scn-george-says-goodbye .gsg-sun { position:absolute; top:10%; right:20%; width:40px; height:40px; background: radial-gradient(circle, #ffe68f 20%, #ffd700 50%, transparent 80%); border-radius:50%; animation: gsg-sun 8s ease-in-out infinite alternate; }
.scn-george-says-goodbye .gsg-cloud { position:absolute; top:15%; left:10%; width:80px; height:20px; background: linear-gradient(180deg, rgba(255,255,255,.7) 0%, rgba(255,255,255,.3) 100%); border-radius:50%; filter: blur(6px); animation: gsg-cloud 30s linear infinite; }
@keyframes gsg-wagon { 0% { transform: translateX(-50%) } 50% { transform: translateX(-50%) translateY(-1px) } 100% { transform: translateX(-50%) } }
@keyframes gsg-wheel { 0% { transform: rotate(0deg) } 100% { transform: rotate(360deg) } }
@keyframes gsg-tom { 0% { transform: translateX(0) rotate(0deg) } 25% { transform: translateX(-1px) rotate(-1deg) } 50% { transform: translateX(0) rotate(0deg) } 75% { transform: translateX(1px) rotate(1deg) } 100% { transform: translateX(0) rotate(0deg) } }
@keyframes gsg-george { 0% { transform: translateX(0) rotate(0deg) scale(1) } 25% { transform: translateX(3px) rotate(2deg) scale(1.05) } 50% { transform: translateX(0) rotate(0deg) scale(1) } 75% { transform: translateX(-3px) rotate(-2deg) scale(1.05) } 100% { transform: translateX(0) rotate(0deg) scale(1) } }
@keyframes gsg-sun { 0% { opacity:.8; transform: scale(1) } 100% { opacity:1; transform: scale(1.1) } }
@keyframes gsg-cloud { 0% { transform: translateX(0) } 100% { transform: translateX(100vw) } }

.scn-kentucky-tavern-barroom {
  background:
    linear-gradient(180deg, #3a2a1a 0%, #5a3a2a 40%, #6a4a3a 70%, #4a2a1a 100%),
    radial-gradient(ellipse at 50% 40%, #8a6a4a 0%, transparent 60%);
}
.scn-kentucky-tavern-barroom .ktb-wall { position:absolute; inset:0 0 25% 0; background: linear-gradient(180deg, #4a2a1a 0%, #5a3a2a 100%); }
.scn-kentucky-tavern-barroom .ktb-bar { position:absolute; bottom:25%; left:10%; right:10%; height:30px; background: linear-gradient(180deg, #8a6a4a 0%, #6a4a2a 100%); border-radius:4px; box-shadow: 0 4px 8px rgba(0,0,0,.5); }
.scn-kentucky-tavern-barroom .ktb-host { position:absolute; bottom:27%; left:35%; width:50px; height:80px; background: linear-gradient(180deg, #6a4a3a 0%, #4a2a1a 100%); border-radius:50% 50% 60% 60% / 60% 60% 40% 40%; transform-origin: bottom center; animation: ktb-host 5s ease-in-out infinite; }
.scn-kentucky-tavern-barroom .ktb-hat1 { position:absolute; bottom:36%; left:10%; width:30px; height:12px; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0e 100%); border-radius:50% 50% 20% 20%; transform: rotate(-10deg); animation: ktb-hat1 4s ease-in-out infinite; }
.scn-kentucky-tavern-barroom .ktb-hat2 { position:absolute; bottom:36%; left:25%; width:28px; height:14px; background: linear-gradient(180deg, #3a2a1a 0%, #1a0e06 100%); border-radius:50% 50% 10% 10%; transform: rotate(5deg); animation: ktb-hat2 3s ease-in-out infinite; }
.scn-kentucky-tavern-barroom .ktb-hat3 { position:absolute; bottom:36%; left:60%; width:32px; height:10px; background: linear-gradient(180deg, #5a3a2a 0%, #3a1a0a 100%); border-radius:50% 50% 30% 30%; transform: rotate(15deg); animation: ktb-hat3 5s ease-in-out infinite; }
.scn-kentucky-tavern-barroom .ktb-hat4 { position:absolute; bottom:36%; left:75%; width:26px; height:13px; background: linear-gradient(180deg, #4a2a1a 0%, #2a1006 100%); border-radius:50% 50% 15% 15%; transform: rotate(-5deg); animation: ktb-hat4 4.5s ease-in-out infinite; }
.scn-kentucky-tavern-barroom .ktb-lamp { position:absolute; top:10%; left:50%; width:20px; height:20px; margin-left:-10px; background: radial-gradient(circle, #ffd060 20%, #b08040 50%, transparent 80%); border-radius:50%; animation: ktb-lamp 2s ease-in-out infinite alternate; }
@keyframes ktb-host { 0% { transform: translateY(0) rotate(0deg) } 50% { transform: translateY(-2px) rotate(1deg) } 100% { transform: translateY(0) rotate(0deg) } }
@keyframes ktb-hat1 { 0% { transform: rotate(-10deg) translateX(0) } 50% { transform: rotate(-5deg) translateX(2px) } 100% { transform: rotate(-10deg) translateX(0) } }
@keyframes ktb-hat2 { 0% { transform: rotate(5deg) translateY(0) } 50% { transform: rotate(2deg) translateY(-1px) } 100% { transform: rotate(5deg) translateY(0) } }
@keyframes ktb-hat3 { 0% { transform: rotate(15deg) scale(1) } 50% { transform: rotate(10deg) scale(1.05) } 100% { transform: rotate(15deg) scale(1) } }
@keyframes ktb-hat4 { 0% { transform: rotate(-5deg) translateY(0) } 50% { transform: rotate(0deg) translateY(-1px) } 100% { transform: rotate(-5deg) translateY(0) } }
@keyframes ktb-lamp { 0% { opacity:.6; box-shadow: 0 0 10px 5px #b08040; } 100% { opacity:1; box-shadow: 0 0 20px 10px #ffd060; } }

.scn-george-harris-disguised {
  background:
    linear-gradient(180deg, #1a1a2e 0%, #2a2a4e 30%, #1e1e3a 70%, #0e0e1a 100%),
    radial-gradient(ellipse at 40% 40%, #2a2a4e 0%, transparent 60%);
}
.scn-george-harris-disguised .ghd-wall { position:absolute; inset:0 0 20% 0; background: linear-gradient(180deg, #1e1e3a 0%, #2a2a4e 100%); }
.scn-george-harris-disguised .ghd-table { position:absolute; bottom:30%; left:30%; right:40%; height:30px; background: linear-gradient(180deg, #3a2a1a 0%, #2a1a0e 100%); border-radius:4px; box-shadow: 0 4px 8px rgba(0,0,0,.6); }
.scn-george-harris-disguised .ghd-chair { position:absolute; bottom:33%; left:32%; width:40px; height:50px; background: linear-gradient(180deg, #2a1a0e 0%, #1a0e06 100%); border-radius:10% 10% 30% 30%; transform: rotate(-2deg); }
.scn-george-harris-disguised .ghd-stranger { position:absolute; bottom:33%; left:35%; width:30px; height:80px; background: linear-gradient(180deg, #0e0e1a 0%, #1a1a2e 100%); border-radius:50% 50% 60% 60% / 60% 60% 40% 40%; animaton: ghd-stranger 3s ease-in-out infinite; }
.scn-george-harris-disguised .ghd-wilson { position:absolute; bottom:33%; left:50%; width:28px; height:75px; background: linear-gradient(180deg, #1a1a2e 0%, #2a2a4e 100%); border-radius:50% 50% 60% 60% / 60% 60% 40% 40%; animation: ghd-wilson 4s ease-in-out infinite; }
.scn-george-harris-disguised .ghd-slave1 { position:absolute; bottom:25%; left:60%; width:16px; height:45px; background: linear-gradient(180deg, #1a1a2e 0%, #0e0e1a 100%); border-radius:50% 50% 50% 50% / 60% 60% 40% 40%; animation: ghd-slave1 2s ease-in-out infinite; }
.scn-george-harris-disguised .ghd-slave2 { position:absolute; bottom:25%; left:70%; width:16px; height:40px; background: linear-gradient(180deg, #1a1a2e 0%, #0e0e1a 100%); border-radius:50% 50% 50% 50% / 60% 60% 40% 40%; animation: ghd-slave2 2.5s ease-in-out infinite; }
.scn-george-harris-disguised .ghd-lamp { position:absolute; top:15%; left:45%; width:16px; height:16px; background: radial-gradient(circle, #ffd060 20%, #b08040 50%, transparent 80%); border-radius:50%; animation: ghd-lamp 1.5s ease-in-out infinite alternate; }
@keyframes ghd-stranger { 0% { transform: translateX(0) rotate(0deg) } 50% { transform: translateX(1px) rotate(1deg) } 100% { transform: translateX(0) rotate(0deg) } }
@keyframes ghd-wilson { 0% { transform: translateX(0) scale(1) } 50% { transform: translateX(-1px) scale(1.02) } 100% { transform: translateX(0) scale(1) } }
@keyframes ghd-slave1 { 0% { transform: translateX(0) } 50% { transform: translateX(3px) } 100% { transform: translateX(0) } }
@keyframes ghd-slave2 { 0% { transform: translateX(0) } 50% { transform: translateX(-2px) } 100% { transform: translateX(0) } }
@keyframes ghd-lamp { 0% { opacity:.5; transform: scale(1); } 100% { opacity:1; transform: scale(1.15); } }

/* haley-methods-vs-tom */
.scn-haley-methods-vs-tom {
  background:
    linear-gradient(180deg, #1a1010 0%, #2a1a15 30%, #3a2218 60%, #1a0e0a 100%),
    radial-gradient(ellipse at 40% 60%, #3a2218 0%, transparent 70%);
}
.scn-haley-methods-vs-tom .bg {
  position:absolute; inset:0 0 30% 0;
  background: linear-gradient(90deg, #1a1010 0%, #2a1a15 40%, #1a1010 100%);
  animation: hm-bg 12s ease-in-out infinite alternate;
}
.scn-haley-methods-vs-tom .floor {
  position:absolute; bottom:0; left:0; right:0; height:30%;
  background: linear-gradient(180deg, #2a1a15 0%, #0e0805 100%);
  border-radius: 20% 20% 0 0 / 10% 10% 0 0;
}
.scn-haley-methods-vs-tom .window {
  position:absolute; top:15%; left:65%; width:40px; height:60px;
  background: linear-gradient(135deg, #4a3a2a 0%, #2a1a10 100%);
  border-radius: 4px;
  box-shadow: inset 0 0 10px #6a4a30;
  animation: hm-window 8s ease-in-out infinite alternate;
}
.scn-haley-methods-vs-tom .table {
  position:absolute; bottom:28%; left:30%; width:90px; height:12px;
  background: linear-gradient(90deg, #1a1010 0%, #2a1a10 50%, #1a1010 100%);
  border-radius: 50%;
  transform: translateX(-50%);
}
.scn-haley-methods-vs-tom .figure-tom {
  position:absolute; bottom:28%; left:30%; width:22px; height:50px;
  background: linear-gradient(180deg, #0e0e0e 0%, #1a1010 60%, #0e0805 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: hm-figure-left 5s ease-in-out infinite;
}
.scn-haley-methods-vs-tom .figure-haley {
  position:absolute; bottom:28%; left:55%; width:28px; height:60px;
  background: linear-gradient(180deg, #1a1512 0%, #2a1a12 60%, #1a0e0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: hm-figure-right 5s ease-in-out infinite 1.5s;
}
.scn-haley-methods-vs-tom .candle {
  position:absolute; bottom:38%; left:43%; width:8px; height:16px;
  background: linear-gradient(180deg, #e0c080 0%, #8a6030 100%);
  border-radius: 2px;
  box-shadow: 0 0 20px 8px #ffd080, 0 0 40px 16px rgba(255,208,128,0.4);
  animation: hm-candle 2s ease-in-out infinite alternate;
}
.scn-haley-methods-vs-tom .shadow {
  position:absolute; bottom:30%; left:40%; width:60px; height:80px;
  background: radial-gradient(ellipse at 50% 100%, rgba(0,0,0,0.6) 0%, transparent 80%);
  filter: blur(8px);
  animation: hm-shadow 6s ease-in-out infinite alternate;
}
@keyframes hm-bg {
  0%   { opacity:0.8; filter:brightness(0.9); }
  50%  { opacity:1; filter:brightness(1); }
  100% { opacity:0.85; filter:brightness(0.85); }
}
@keyframes hm-window {
  0%   { background: linear-gradient(135deg, #3a2a1a 0%, #1a1008 100%); }
  50%  { background: linear-gradient(135deg, #5a4030 0%, #2a1a10 100%); }
  100% { background: linear-gradient(135deg, #3a2a1a 0%, #1a1008 100%); }
}
@keyframes hm-figure-left {
  0%   { transform: translateX(0) scaleY(1); }
  50%  { transform: translateX(-3px) scaleY(1.02); }
  100% { transform: translateX(0) scaleY(1); }
}
@keyframes hm-figure-right {
  0%   { transform: translateX(0) scaleY(1) rotate(0deg); }
  50%  { transform: translateX(4px) scaleY(1.03) rotate(2deg); }
  100% { transform: translateX(0) scaleY(1) rotate(0deg); }
}
@keyframes hm-candle {
  0%   { box-shadow: 0 0 16px 6px #f0c060, 0 0 32px 12px rgba(240,192,96,0.4); transform: scaleY(1); }
  50%  { box-shadow: 0 0 24px 10px #ffd880, 0 0 48px 20px rgba(255,216,128,0.6); transform: scaleY(1.1); }
  100% { box-shadow: 0 0 16px 6px #f0c060, 0 0 32px 12px rgba(240,192,96,0.4); transform: scaleY(0.95); }
}
@keyframes hm-shadow {
  0%   { transform: translate(0,0) scaleX(1); opacity:0.5; }
  50%  { transform: translate(4px,-2px) scaleX(1.1); opacity:0.7; }
  100% { transform: translate(0,0) scaleX(1); opacity:0.5; }
}

/* shelby-uneasy-agreement */
.scn-shelby-uneasy-agreement {
  background:
    linear-gradient(180deg, #1a1512 0%, #2a2218 40%, #1a1410 100%),
    radial-gradient(ellipse at 60% 40%, #3a2a1a 0%, transparent 70%);
}
.scn-shelby-uneasy-agreement .bg {
  position:absolute; inset:0 0 35% 0;
  background: linear-gradient(90deg, #1a1512 0%, #2a2218 50%, #1a1410 100%);
  animation: su-bg 15s ease-in-out infinite alternate;
}
.scn-shelby-uneasy-agreement .floor {
  position:absolute; bottom:0; left:0; right:0; height:35%;
  background: linear-gradient(180deg, #2a2218 0%, #0e0a08 100%);
  border-radius: 30% 30% 0 0 / 15% 15% 0 0;
}
.scn-shelby-uneasy-agreement .chair-left {
  position:absolute; bottom:30%; left:25%; width:30px; height:50px;
  background: linear-gradient(180deg, #1a1510 0%, #100a08 100%);
  border-radius: 8px 8px 4px 4px;
  transform: rotate(-3deg);
  animation: su-chair-left 6s ease-in-out infinite;
}
.scn-shelby-uneasy-agreement .chair-right {
  position:absolute; bottom:30%; left:55%; width:32px; height:52px;
  background: linear-gradient(180deg, #1a1510 0%, #100a08 100%);
  border-radius: 8px 8px 4px 4px;
  transform: rotate(2deg);
  animation: su-chair-right 6s ease-in-out infinite 1s;
}
.scn-shelby-uneasy-agreement .figure-shelby {
  position:absolute; bottom:30%; left:25%; width:24px; height:55px;
  background: linear-gradient(180deg, #1a1815 0%, #0e0c0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: su-fig-shelby 8s ease-in-out infinite;
}
.scn-shelby-uneasy-agreement .figure-haley {
  position:absolute; bottom:30%; left:55%; width:28px; height:58px;
  background: linear-gradient(180deg, #2a2218 0%, #1a1410 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: su-fig-haley 8s ease-in-out infinite 2s;
}
.scn-shelby-uneasy-agreement .bowl {
  position:absolute; bottom:35%; left:42%; width:20px; height:10px;
  background: radial-gradient(ellipse at 50% 100%, #4a3a2a 0%, #2a1a10 70%);
  border-radius: 50%;
  animation: su-bowl 10s ease-in-out infinite;
}
.scn-shelby-uneasy-agreement .candle {
  position:absolute; bottom:42%; left:46%; width:6px; height:14px;
  background: linear-gradient(180deg, #e0b060 0%, #8a5a30 100%);
  border-radius: 2px;
  box-shadow: 0 0 14px 6px #ffc070, 0 0 28px 12px rgba(255,192,112,0.5);
  animation: su-candle 1.5s ease-in-out infinite alternate;
}
@keyframes su-bg {
  0%   { filter:brightness(0.9); }
  50%  { filter:brightness(1.05); }
  100% { filter:brightness(0.9); }
}
@keyframes su-chair-left {
  0%   { transform: rotate(-3deg) translateY(0); }
  50%  { transform: rotate(-2deg) translateY(-2px); }
  100% { transform: rotate(-3deg) translateY(0); }
}
@keyframes su-chair-right {
  0%   { transform: rotate(2deg) translateY(0); }
  50%  { transform: rotate(3deg) translateY(-1px); }
  100% { transform: rotate(2deg) translateY(0); }
}
@keyframes su-fig-shelby {
  0%   { transform: translateX(0) rotate(0deg); }
  50%  { transform: translateX(-2px) rotate(-2deg); }
  100% { transform: translateX(0) rotate(0deg); }
}
@keyframes su-fig-haley {
  0%   { transform: translateX(0) rotate(0deg); }
  50%  { transform: translateX(3px) rotate(3deg); }
  100% { transform: translateX(0) rotate(0deg); }
}
@keyframes su-bowl {
  0%   { opacity:0.8; transform: scale(1); }
  50%  { opacity:1; transform: scale(1.02); }
  100% { opacity:0.8; transform: scale(1); }
}
@keyframes su-candle {
  0%   { box-shadow: 0 0 10px 4px #f0b860, 0 0 20px 8px rgba(240,184,96,0.4); opacity:0.9; }
  50%  { box-shadow: 0 0 16px 8px #ffc880, 0 0 32px 16px rgba(255,200,128,0.6); opacity:1; }
  100% { box-shadow: 0 0 10px 4px #f0b860, 0 0 20px 8px rgba(240,184,96,0.4); opacity:0.85; }
}

/* author-reflection-slavery-kentucky */
.scn-author-reflection-slavery-kentucky {
  background:
    linear-gradient(180deg, #a0a0a0 0%, #c0c0c0 30%, #d0d0c8 60%, #a0a098 100%),
    radial-gradient(ellipse at 50% 0%, #e0e0d8 0%, transparent 60%);
}
.scn-author-reflection-slavery-kentucky .sky {
  position:absolute; inset:0 0 50% 0;
  background: linear-gradient(180deg, #909090 0%, #b0b0a8 40%, #c0c0b8 100%);
  animation: ar-sky 20s ease-in-out infinite alternate;
}
.scn-author-reflection-slavery-kentucky .field-far {
  position:absolute; bottom:35%; left:0; right:0; height:20%;
  background: linear-gradient(180deg, #8a8a7a 0%, #6a6a5a 100%);
  border-radius: 30% 30% 0 0 / 50% 50% 0 0;
  animation: ar-field-far 18s ease-in-out infinite alternate;
}
.scn-author-reflection-slavery-kentucky .field-mid {
  position:absolute; bottom:15%; left:0; right:0; height:25%;
  background: linear-gradient(180deg, #7a7a6a 0%, #5a5a4a 100%);
  border-radius: 20% 20% 0 0 / 30% 30% 0 0;
  animation: ar-field-mid 18s ease-in-out infinite alternate 3s;
}
.scn-author-reflection-slavery-kentucky .fence {
  position:absolute; bottom:30%; left:20%; right:20%; height:3px;
  background: linear-gradient(90deg, #4a4a3a 0%, #2a2a1a 50%, #4a4a3a 100%);
  transform: translateY(-50%);
  animation: ar-fence 25s linear infinite;
}
.scn-author-reflection-slavery-kentucky .tree {
  position:absolute; bottom:20%; left:25%; width:40px; height:100px;
  background: linear-gradient(180deg, #3a3a2a 0%, #1a1a0e 100%);
  border-radius: 40% 40% 10% 10% / 60% 60% 10% 10%;
  transform-origin: bottom center;
  animation: ar-tree 12s ease-in-out infinite alternate;
}
.scn-author-reflection-slavery-kentucky .cabin {
  position:absolute; bottom:25%; right:20%; width:50px; height:30px;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 4px;
  box-shadow: 0 2px 6px rgba(0,0,0,0.3);
  animation: ar-cabin 14s ease-in-out infinite alternate;
}
.scn-author-reflection-slavery-kentucky .figure {
  position:absolute; bottom:18%; left:35%; width:14px; height:30px;
  background: linear-gradient(180deg, #1a1a0e 0%, #0e0e06 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: ar-figure 8s ease-in-out infinite;
}
@keyframes ar-sky {
  0%   { opacity:0.8; background-position: 0% 0%; }
  50%  { opacity:1; background-position: 10% 0%; }
  100% { opacity:0.85; background-position: 0% 0%; }
}
@keyframes ar-field-far {
  0%   { transform: translateY(0); filter:brightness(0.9); }
  50%  { transform: translateY(-2px); filter:brightness(1); }
  100% { transform: translateY(0); filter:brightness(0.9); }
}
@keyframes ar-field-mid {
  0%   { transform: translateY(0); filter:brightness(0.9); }
  50%  { transform: translateY(-2px); filter:brightness(1); }
  100% { transform: translateY(0); filter:brightness(0.9); }
}
@keyframes ar-fence {
  0%   { background-position: 0% 0%; }
  100% { background-position: 200% 0%; }
}
@keyframes ar-tree {
  0%   { transform: scaleX(1) scaleY(1); }
  50%  { transform: scaleX(0.98) scaleY(1.01); }
  100% { transform: scaleX(1) scaleY(1); }
}
@keyframes ar-cabin {
  0%   { opacity:0.7; transform: scale(1); }
  50%  { opacity:0.9; transform: scale(1.02); }
  100% { opacity:0.7; transform: scale(1); }
}
@keyframes ar-figure {
  0%   { transform: translateX(0) rotate(0deg); }
  50%  { transform: translateX(2px) rotate(1deg); }
  100% { transform: translateX(0) rotate(0deg); }
}

/* shelby-debt-to-haley */
.scn-shelby-debt-to-haley {
  background:
    linear-gradient(180deg, #1a1410 0%, #2a2218 40%, #2a1a10 70%, #0e0a08 100%),
    radial-gradient(ellipse at 30% 50%, #3a2a1a 0%, transparent 70%);
}
.scn-shelby-debt-to-haley .bg {
  position:absolute; inset:0 0 25% 0;
  background: linear-gradient(90deg, #1a1410 0%, #2a2218 50%, #1a1410 100%);
  animation: sd-bg 12s ease-in-out infinite alternate;
}
.scn-shelby-debt-to-haley .desk {
  position:absolute; bottom:15%; left:20%; right:20%; height:10px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a100a 100%);
  border-radius: 4px;
  animation: sd-desk 10s ease-in-out infinite;
}
.scn-shelby-debt-to-haley .chair {
  position:absolute; bottom:20%; left:25%; width:28px; height:45px;
  background: linear-gradient(180deg, #1a1510 0%, #0e0a08 100%);
  border-radius: 8px 8px 4px 4px;
  transform: rotate(-2deg);
  animation: sd-chair 6s ease-in-out infinite;
}
.scn-shelby-debt-to-haley .papers {
  position:absolute; bottom:20%; left:35%; width:40px; height:25px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a12 100%);
  border-radius: 2px;
  transform: rotate(3deg);
  animation: sd-papers 14s ease-in-out infinite alternate;
}
.scn-shelby-debt-to-haley .candle {
  position:absolute; bottom:25%; left:45%; width:6px; height:16px;
  background: linear-gradient(180deg, #e0b060 0%, #8a5a30 100%);
  border-radius: 2px;
  box-shadow: 0 0 12px 5px #ffb860, 0 0 24px 10px rgba(255,184,96,0.4);
  animation: sd-candle 2.5s ease-in-out infinite alternate;
}
.scn-shelby-debt-to-haley .figure-shelby {
  position:absolute; bottom:20%; left:30%; width:22px; height:52px;
  background: linear-gradient(180deg, #1a1815 0%, #0e0c0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: sd-fig 7s ease-in-out infinite;
}
.scn-shelby-debt-to-haley .shadow {
  position:absolute; bottom:10%; left:20%; right:50%; height:70%;
  background: linear-gradient(180deg, rgba(0,0,0,0.5) 0%, transparent 100%);
  filter: blur(10px);
  animation: sd-shadow 8s ease-in-out infinite alternate;
}
@keyframes sd-bg {
  0%   { filter:brightness(0.85); }
  50%  { filter:brightness(1); }
  100% { filter:brightness(0.85); }
}
@keyframes sd-desk {
  0%   { transform: translateY(0) skewX(0deg); }
  50%  { transform: translateY(-1px) skewX(1deg); }
  100% { transform: translateY(0) skewX(0deg); }
}
@keyframes sd-chair {
  0%   { transform: rotate(-2deg) scale(1); }
  50%  { transform: rotate(-1deg) scale(1.02); }
  100% { transform: rotate(-2deg) scale(1); }
}
@keyframes sd-papers {
  0%   { transform: rotate(3deg) scale(1); opacity:0.7; }
  50%  { transform: rotate(1deg) scale(1.03); opacity:1; }
  100% { transform: rotate(3deg) scale(1); opacity:0.7; }
}
@keyframes sd-candle {
  0%   { box-shadow: 0 0 10px 4px #f0b060, 0 0 18px 8px rgba(240,176,96,0.4); transform: scaleY(1); }
  50%  { box-shadow: 0 0 16px 8px #ffc870, 0 0 30px 14px rgba(255,200,112,0.6); transform: scaleY(1.12); }
  100% { box-shadow: 0 0 10px 4px #f0b060, 0 0 18px 8px rgba(240,176,96,0.4); transform: scaleY(0.9); }
}
@keyframes sd-fig {
  0%   { transform: translateX(0) rotate(0deg); }
  50%  { transform: translateX(-2px) rotate(-1deg); }
  100% { transform: translateX(0) rotate(0deg); }
}
@keyframes sd-shadow {
  0%   { transform: scaleX(1); opacity:0.4; }
  50%  { transform: scaleX(1.2); opacity:0.6; }
  100% { transform: scaleX(1); opacity:0.4; }
}

/* prue-death-reaction */
.scn-prue-death-reaction {
  background: 
    linear-gradient(180deg, #e8e4dc 0%, #c8c0b5 40%, #a0988a 100%),
    radial-gradient(ellipse at 60% 30%, rgba(255,255,240,0.6) 0%, transparent 70%);
}
.scn-prue-death-reaction .wall-bg { position:absolute; inset:0; background: linear-gradient(180deg, #d6d0c8 0%, #b8aea0 100%); }
.scn-prue-death-reaction .window { position:absolute; top:8%; left:30%; width:30%; height:40%; background: linear-gradient(135deg, #fffef8 0%, #e6e0d8 100%); border-radius:4px 4px 12px 12px; box-shadow: inset 0 0 30px rgba(255,255,240,0.5); animation: pdr-window 8s ease-in-out infinite alternate; }
.scn-prue-death-reaction .shadow-strip { position:absolute; top:0; left:28%; width:35%; height:100%; background: linear-gradient(90deg, transparent 0%, rgba(60,50,40,0.3) 50%, transparent 100%); transform-origin: left center; animation: pdr-shadow 12s ease-in-out infinite alternate; }
.scn-prue-death-reaction .figure-sit { position:absolute; bottom:15%; left:45%; width:40px; height:60px; background: linear-gradient(180deg, #2e2a24 0%, #1e1a16 100%); border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%; transform-origin: bottom center; animation: pdr-figure 6s ease-in-out infinite; }
.scn-prue-death-reaction .table { position:absolute; bottom:18%; left:35%; width:120px; height:8px; background: linear-gradient(180deg, #7a6e60 0%, #5a4e42 100%); border-radius:4px; box-shadow: 0 4px 8px rgba(0,0,0,0.3); }
.scn-prue-death-reaction .newspaper { position:absolute; bottom:22%; left:42%; width:50px; height:35px; background: linear-gradient(135deg, #f0ede6 0%, #d8d0c0 100%); border-radius:2px; transform: rotate(-5deg); box-shadow: 0 2px 4px rgba(0,0,0,0.2); animation: pdr-paper 4s ease-in-out infinite; }
.scn-prue-death-reaction .lamp-glow { position:absolute; bottom:30%; right:20%; width:40px; height:40px; background: radial-gradient(circle, #ffe8c0 0%, #d0a070 40%, transparent 70%); border-radius:50%; animation: pdr-lamp 3s ease-in-out infinite alternate; }
.scn-prue-death-reaction .dust-mote { position:absolute; top:20%; left:10%; width:4px; height:4px; background: rgba(240,235,220,0.8); border-radius:50%; filter: blur(1px); animation: pdr-dust 25s linear infinite; }
@keyframes pdr-window { 0% { opacity:0.85; } 50% { opacity:1; box-shadow: inset 0 0 40px rgba(255,255,240,0.7); } 100% { opacity:0.9; } }
@keyframes pdr-shadow { 0% { transform: scaleX(0.9); opacity:0.6; } 50% { transform: scaleX(1.1); opacity:0.8; } 100% { transform: scaleX(0.95); opacity:0.5; } }
@keyframes pdr-figure { 0% { transform: translateY(0) rotate(-1deg); } 25% { transform: translateY(-1px) rotate(0deg); } 50% { transform: translateY(0) rotate(1deg); } 75% { transform: translateY(-1px) rotate(0deg); } 100% { transform: translateY(0) rotate(-1deg); } }
@keyframes pdr-paper { 0% { transform: rotate(-5deg) translateY(0); } 50% { transform: rotate(-4deg) translateY(-2px); } 100% { transform: rotate(-5deg) translateY(0); } }
@keyframes pdr-lamp { 0% { transform: scale(0.9); opacity:0.7; } 50% { transform: scale(1.1); opacity:1; } 100% { transform: scale(0.95); opacity:0.8; } }
@keyframes pdr-dust { 0% { transform: translate(0,0) rotate(0deg); } 33% { transform: translate(30px, -10px) rotate(120deg); } 66% { transform: translate(60px, 5px) rotate(240deg); } 100% { transform: translate(100px, -15px) rotate(360deg); } }

/* st-clare-backstory-long */
.scn-st-clare-backstory-long {
  background: 
    linear-gradient(180deg, #e4d4b8 0%, #c8b498 40%, #a08c74 100%),
    radial-gradient(ellipse at 30% 20%, #f0e0c8 0%, transparent 60%);
}
.scn-st-clare-backstory-long .room-bg { position:absolute; inset:0; background: linear-gradient(180deg, #d8c8b0 0%, #b8a48c 100%); }
.scn-st-clare-backstory-long .window-sunlight { position:absolute; top:5%; left:50%; width:30%; height:50%; background: linear-gradient(135deg, #fef8e8 0%, #e8dcc8 100%); border-radius:2px; box-shadow: 0 0 40px rgba(255,240,200,0.4); animation: scl-sun 12s ease-in-out infinite alternate; }
.scn-st-clare-backstory-long .bookshelf { position:absolute; top:15%; right:8%; width:15%; height:60%; background: linear-gradient(90deg, #7a6a5a 0%, #5a4a3a 100%); border-radius:2px; box-shadow: inset 0 0 10px rgba(0,0,0,0.3); }
.scn-st-clare-backstory-long .desk { position:absolute; bottom:20%; left:15%; width:50%; height:5%; background: linear-gradient(180deg, #9a8a7a 0%, #7a6a5a 100%); border-radius:2px; box-shadow: 0 4px 8px rgba(0,0,0,0.2); }
.scn-st-clare-backstory-long .figure-profile { position:absolute; bottom:25%; left:20%; width:30px; height:50px; background: linear-gradient(180deg, #3a3028 0%, #1e1814 100%); border-radius: 50% 40% 30% 40% / 60% 50% 40% 50%; transform-origin: bottom center; animation: scl-figure 7s ease-in-out infinite; }
.scn-st-clare-backstory-long .book-open { position:absolute; bottom:22%; left:28%; width:40px; height:30px; background: linear-gradient(135deg, #f0e8d8 0%, #d0c0a8 100%); border-radius:2px; transform: rotate(5deg); box-shadow: 0 2px 4px rgba(0,0,0,0.15); animation: scl-book 5s ease-in-out infinite; }
.scn-st-clare-backstory-long .candle { position:absolute; bottom:28%; right:30%; width:6px; height:20px; background: linear-gradient(180deg, #f0e0c0 0%, #c8a878 100%); border-radius:2px; animation: scl-candle 3s ease-in-out infinite alternate; }
.scn-st-clare-backstory-long .shadow-shape { position:absolute; bottom:0; left:0; width:100%; height:40%; background: linear-gradient(180deg, transparent 0%, rgba(40,30,20,0.3) 100%); }
@keyframes scl-sun { 0% { opacity:0.8; transform: scaleX(1); } 50% { opacity:1; transform: scaleX(1.05); } 100% { opacity:0.9; transform: scaleX(0.98); } }
@keyframes scl-figure { 0% { transform: translateY(0) rotate(-2deg); } 30% { transform: translateY(-1px) rotate(1deg); } 60% { transform: translateY(0) rotate(0deg); } 100% { transform: translateY(-1px) rotate(-1deg); } }
@keyframes scl-book { 0% { transform: rotate(5deg) translateY(0); } 50% { transform: rotate(4deg) translateY(-2px); } 100% { transform: rotate(5deg) translateY(0); } }
@keyframes scl-candle { 0% { transform: scaleY(0.95) translateY(1px); opacity:0.8; } 50% { transform: scaleY(1.05) translateY(-1px); opacity:1; } 100% { transform: scaleY(0.95) translateY(1px); opacity:0.9; } }

/* diner-table-talk */
.scn-diner-table-talk {
  background: 
    linear-gradient(180deg, #d8c8a8 0%, #b8a888 40%, #988868 100%),
    radial-gradient(ellipse at 50% 30%, #f0d8b8 0%, transparent 60%);
}
.scn-diner-table-talk .dining-bg { position:absolute; inset:0; background: linear-gradient(180deg, #c8b898 0%, #a89878 100%); }
.scn-diner-table-talk .tabletop { position:absolute; bottom:20%; left:10%; width:80%; height:10%; background: linear-gradient(180deg, #8a7a5a 0%, #6a5a3a 100%); border-radius: 10% 10% 5% 5%; box-shadow: 0 -4px 8px rgba(0,0,0,0.2); }
.scn-diner-table-talk .figure-left { position:absolute; bottom:30%; left:20%; width:35px; height:50px; background: linear-gradient(180deg, #3a3028 0%, #1e1814 100%); border-radius: 50% 40% 30% 40% / 60% 50% 40% 50%; transform-origin: bottom center; animation: dtt-figure-left 8s ease-in-out infinite; }
.scn-diner-table-talk .figure-right { position:absolute; bottom:30%; right:20%; width:35px; height:50px; background: linear-gradient(180deg, #3a3028 0%, #1e1814 100%); border-radius: 40% 50% 40% 30% / 50% 60% 50% 40%; transform-origin: bottom center; animation: dtt-figure-right 8s ease-in-out infinite 2s; }
.scn-diner-table-talk .plate-left { position:absolute; bottom:25%; left:28%; width:30px; height:8px; background: linear-gradient(180deg, #e8dcc8 0%, #c8b8a0 100%); border-radius:50%; box-shadow: 0 2px 4px rgba(0,0,0,0.1); animation: dtt-plate 6s ease-in-out infinite; }
.scn-diner-table-talk .plate-right { position:absolute; bottom:25%; right:28%; width:30px; height:8px; background: linear-gradient(180deg, #e8dcc8 0%, #c8b8a0 100%); border-radius:50%; box-shadow: 0 2px 4px rgba(0,0,0,0.1); animation: dtt-plate 6s ease-in-out infinite 3s; }
.scn-diner-table-talk .chandelier { position:absolute; top:5%; left:35%; width:30%; height:10%; background: linear-gradient(180deg, #b8a888 0%, #8a7a5a 100%); border-radius: 30% 30% 10% 10%; box-shadow: 0 0 20px rgba(240,200,150,0.3); animation: dtt-chandelier 15s ease-in-out infinite alternate; }
.scn-diner-table-talk .wine-glass { position:absolute; bottom:35%; left:48%; width:6px; height:18px; background: linear-gradient(180deg, rgba(200,180,160,0.6) 0%, transparent 100%); border-radius:0 0 4px 4px; animation: dtt-glass 4s ease-in-out infinite; }
@keyframes dtt-figure-left { 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); } }
@keyframes dtt-figure-right { 0% { transform: translateY(0) rotate(0deg); } 25% { transform: translateY(-2px) rotate(-2deg); } 50% { transform: translateY(1px) rotate(0deg); } 75% { transform: translateY(-1px) rotate(2deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes dtt-plate { 0% { transform: translateY(0) scaleX(1); } 50% { transform: translateY(-2px) scaleX(1.02); } 100% { transform: translateY(0) scaleX(1); } }
@keyframes dtt-chandelier { 0% { transform: rotate(-2deg); } 50% { transform: rotate(2deg); } 100% { transform: rotate(-1deg); } }
@keyframes dtt-glass { 0% { transform: rotate(0deg); } 50% { transform: rotate(3deg); } 100% { transform: rotate(0deg); } }

/* tom-writes-letter */
.scn-tom-writes-letter {
  background: 
    linear-gradient(180deg, #3a2a1a 0%, #2a1a0a 40%, #1a0a00 100%),
    radial-gradient(ellipse at 40% 60%, #e87030 0%, #a04010 30%, transparent 70%);
}
.scn-tom-writes-letter .cabin-wall { position:absolute; inset:0; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); }
.scn-tom-writes-letter .fireplace { position:absolute; bottom:10%; left:60%; width:25%; height:50%; background: linear-gradient(180deg, #5a3a1a 0%, #2a1a0a 100%); border-radius: 20% 20% 5% 5% / 60% 60% 10% 10%; box-shadow: inset 0 -20px 40px rgba(0,0,0,0.8); }
.scn-tom-writes-letter .fire-glow { position:absolute; bottom:10%; left:55%; width:35%; height:40%; background: radial-gradient(ellipse at 50% 100%, #ff8030 0%, #d04010 30%, transparent 70%); border-radius:50%; filter: blur(20px); animation: twl-fire 2s ease-in-out infinite alternate; }
.scn-tom-writes-letter .table-rough { position:absolute; bottom:20%; left:10%; width:40%; height:6%; background: linear-gradient(180deg, #6a4a2a 0%, #3a2a1a 100%); border-radius:2px; box-shadow: 0 4px 8px rgba(0,0,0,0.5); }
.scn-tom-writes-letter .figure-tom { position:absolute; bottom:25%; left:15%; width:35px; height:55px; background: linear-gradient(180deg, #1e1a14 0%, #0e0a08 100%); border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%; transform-origin: bottom center; animation: twl-tom 5s ease-in-out infinite; }
.scn-tom-writes-letter .paper { position:absolute; bottom:25%; left:22%; width:35px; height:25px; background: linear-gradient(135deg, #f0e8d8 0%, #d0c0a8 100%); border-radius:2px; transform: rotate(-3deg); box-shadow: 0 2px 4px rgba(0,0,0,0.3); animation: twl-paper 4s ease-in-out infinite; }
.scn-tom-writes-letter .quill { position:absolute; bottom:30%; left:20%; width:2px; height:20px; background: linear-gradient(180deg, #c8b898 0%, #8a7a5a 100%); transform: rotate(15deg); transform-origin: bottom center; animation: twl-quill 3s ease-in-out infinite; }
.scn-tom-writes-letter .moon-window { position:absolute; top:8%; right:10%; width:14%; height:20%; background: radial-gradient(circle at 50% 30%, #c8d8e8 0%, #7890a8 50%, transparent 70%); border-radius:4px; box-shadow: 0 0 20px rgba(100,140,180,0.3); animation: twl-moon 10s ease-in-out infinite alternate; }
@keyframes twl-fire { 0% { transform: scale(0.95); opacity:0.8; } 50% { transform: scale(1.1); opacity:1; } 100% { transform: scale(0.98); opacity:0.9; } }
@keyframes twl-tom { 0% { transform: translateY(0) rotate(-1deg); } 30% { transform: translateY(-1px) rotate(0deg); } 60% { transform: translateY(0) rotate(1deg); } 100% { transform: translateY(-1px) rotate(-1deg); } }
@keyframes twl-paper { 0% { transform: rotate(-3deg) translateY(0); } 50% { transform: rotate(-2deg) translateY(-2px); } 100% { transform: rotate(-3deg) translateY(0); } }
@keyframes twl-quill { 0% { transform: rotate(15deg); } 50% { transform: rotate(10deg); } 100% { transform: rotate(15deg); } }
@keyframes twl-moon { 0% { opacity:0.6; } 50% { opacity:1; } 100% { opacity:0.7; } }

/* topsy-introduced */
.scn-topsy-introduced { background: linear-gradient(180deg, #fff8e7 0%, #f5e6d0 40%, #e8d5b0 100%), radial-gradient(ellipse at 50% 0%, #fff8e7 0%, transparent 70%); }
.scn-topsy-introduced .wall    { position:absolute; inset:0 0 30% 0; background: linear-gradient(180deg, #fdf5e6 0%, #f0e0c0 100%); }
.scn-topsy-introduced .floor   { position:absolute; bottom:0; left:0; right:0; height:30%; background: linear-gradient(180deg, #c8a882 0%, #a6845e 100%); border-radius: 20% 20% 0 0; }
.scn-topsy-introduced .window  { position:absolute; top:8%; left:60%; width:80px; height:100px; background: linear-gradient(180deg, #fffbe0 0%, #ffe888 100%); border-radius: 8px; box-shadow: 0 0 30px 10px rgba(255,232,136,.4); animation: tp1-window 4s ease-in-out infinite alternate; }
.scn-topsy-introduced .topsy-body    { position:absolute; bottom:28%; left:50%; width:40px; height:60px; transform:translateX(-50%); background: radial-gradient(ellipse at 50% 40%, #8b6f5e 0%, #5c4033 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: tp1-body 0.8s ease-in-out infinite; }
.scn-topsy-introduced .topsy-arm-l   { position:absolute; bottom:55%; left:42%; width:12px; height:40px; transform-origin: top center; background: linear-gradient(180deg, #6b4f3e 0%, #4a3226 100%); border-radius: 6px; animation: tp1-arm-l 0.8s ease-in-out infinite; }
.scn-topsy-introduced .topsy-arm-r   { position:absolute; bottom:55%; right:42%; width:12px; height:40px; transform-origin: top center; background: linear-gradient(180deg, #6b4f3e 0%, #4a3226 100%); border-radius: 6px; animation: tp1-arm-r 0.8s ease-in-out infinite; }
.scn-topsy-introduced .topsy-leg-l   { position:absolute; bottom:20%; left:44%; width:10px; height:35px; transform-origin: top center; background: linear-gradient(180deg, #6b4f3e 0%, #3a271d 100%); border-radius: 5px; animation: tp1-leg-l 0.8s ease-in-out infinite; }
.scn-topsy-introduced .topsy-leg-r   { position:absolute; bottom:20%; right:44%; width:10px; height:35px; transform-origin: top center; background: linear-gradient(180deg, #6b4f3e 0%, #3a271d 100%); border-radius: 5px; animation: tp1-leg-r 0.8s ease-in-out infinite; }
.scn-topsy-introduced .topsy-shadow  { position:absolute; bottom:25%; left:50%; width:40px; height:10px; transform:translateX(-50%); background: rgba(0,0,0,.15); border-radius: 50%; filter: blur(3px); animation: tp1-shadow 0.8s ease-in-out infinite; }
@keyframes tp1-window  { 0% { opacity:.8; transform: scaleY(1); } 50% { opacity:1; transform: scaleY(1.02); } 100% { opacity:.85; transform: scaleY(1); } }
@keyframes tp1-body    { 0% { transform: translateX(-50%) translateY(0) rotate(0deg); } 25% { transform: translateX(-50%) translateY(-8px) rotate(5deg); } 50% { transform: translateX(-50%) translateY(0) rotate(0deg); } 75% { transform: translateX(-50%) translateY(-4px) rotate(-5deg); } 100% { transform: translateX(-50%) translateY(0) rotate(0deg); } }
@keyframes tp1-arm-l   { 0% { transform: rotate(-30deg); } 25% { transform: rotate(20deg); } 50% { transform: rotate(-30deg); } 75% { transform: rotate(10deg); } 100% { transform: rotate(-30deg); } }
@keyframes tp1-arm-r   { 0% { transform: rotate(30deg); } 25% { transform: rotate(-20deg); } 50% { transform: rotate(30deg); } 75% { transform: rotate(-10deg); } 100% { transform: rotate(30deg); } }
@keyframes tp1-leg-l   { 0% { transform: rotate(10deg); } 25% { transform: rotate(-20deg); } 50% { transform: rotate(10deg); } 75% { transform: rotate(-10deg); } 100% { transform: rotate(10deg); } }
@keyframes tp1-leg-r   { 0% { transform: rotate(-10deg); } 25% { transform: rotate(20deg); } 50% { transform: rotate(-10deg); } 75% { transform: rotate(10deg); } 100% { transform: rotate(-10deg); } }
@keyframes tp1-shadow  { 0% { transform: translateX(-50%) scaleX(1) scaleY(1); opacity:.15; } 25% { transform: translateX(-50%) scaleX(0.9) scaleY(0.8); opacity:.08; } 50% { transform: translateX(-50%) scaleX(1) scaleY(1); opacity:.15; } 75% { transform: translateX(-50%) scaleX(0.95) scaleY(0.9); opacity:.1; } 100% { transform: translateX(-50%) scaleX(1) scaleY(1); opacity:.15; } }

/* topsy-questioned */
.scn-topsy-questioned { background: linear-gradient(180deg, #fffcf0 0%, #f7ecd8 40%, #e8d5b0 100%), radial-gradient(ellipse at 50% 0%, #fffcf0 0%, transparent 70%); }
.scn-topsy-questioned .wall       { position:absolute; inset:0 0 30% 0; background: linear-gradient(180deg, #fdf5e6 0%, #f0e0c0 100%); }
.scn-topsy-questioned .floor      { position:absolute; bottom:0; left:0; right:0; height:30%; background: linear-gradient(180deg, #c8a882 0%, #a6845e 100%); border-radius: 20% 20% 0 0; }
.scn-topsy-questioned .window     { position:absolute; top:5%; left:15%; width:70px; height:90px; background: linear-gradient(180deg, #fffbe0 0%, #ffe888 100%); border-radius: 8px; box-shadow: 0 0 30px 10px rgba(255,232,136,.4); animation: tp2-window 3s ease-in-out infinite alternate; }
.scn-topsy-questioned .ophelia    { position:absolute; bottom:28%; left:25%; width:35px; height:75px; transform:translateX(-50%); background: radial-gradient(ellipse at 50% 30%, #7a6b5e 0%, #4a3e35 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: tp2-ophelia 2.5s ease-in-out infinite; }
.scn-topsy-questioned .ophelia-arm{ position:absolute; bottom:55%; left:18%; width:8px; height:45px; transform-origin: top center; background: linear-gradient(180deg, #5a4b3e 0%, #3a2e24 100%); border-radius: 4px; animation: tp2-point 2s ease-in-out infinite; }
.scn-topsy-questioned .topsy      { position:absolute; bottom:28%; right:25%; width:30px; height:50px; transform:translateX(50%); background: radial-gradient(ellipse at 50% 40%, #8b6f5e 0%, #5c4033 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: tp2-topsy 1.5s ease-in-out infinite; }
.scn-topsy-questioned .table      { position:absolute; bottom:30%; left:50%; width:100px; height:15px; transform:translateX(-50%); background: linear-gradient(180deg, #a08060 0%, #806040 100%); border-radius: 4px; box-shadow: 0 4px 6px rgba(0,0,0,.2); }
.scn-topsy-questioned .chair1     { position:absolute; bottom:35%; left:22%; width:20px; height:40px; background: linear-gradient(180deg, #9a7a5a 0%, #7a5a3a 100%); border-radius: 4px 4px 0 0; }
.scn-topsy-questioned .chair2     { position:absolute; bottom:35%; right:22%; width:20px; height:40px; background: linear-gradient(180deg, #9a7a5a 0%, #7a5a3a 100%); border-radius: 4px 4px 0 0; animation: tp2-chair 4s ease-in-out infinite; }
@keyframes tp2-window { 0% { opacity:.8; } 50% { opacity:1; } 100% { opacity:.85; } }
@keyframes tp2-ophelia { 0% { transform: translateX(-50%) translateY(0) rotate(0deg); } 25% { transform: translateX(-50%) translateY(-3px) rotate(-1deg); } 50% { transform: translateX(-50%) translateY(0) rotate(0deg); } 75% { transform: translateX(-50%) translateY(-2px) rotate(1deg); } 100% { transform: translateX(-50%) translateY(0) rotate(0deg); } }
@keyframes tp2-point { 0% { transform: rotate(-20deg); } 30% { transform: rotate(10deg); } 60% { transform: rotate(-10deg); } 100% { transform: rotate(-20deg); } }
@keyframes tp2-topsy { 0% { transform: translateX(50%) translateY(0); } 25% { transform: translateX(50%) translateY(-5px); } 50% { transform: translateX(50%) translateY(0); } 75% { transform: translateX(50%) translateY(-2px); } 100% { transform: translateX(50%) translateY(0); } }
@keyframes tp2-chair { 0% { transform: translateY(0); } 25% { transform: translateY(-1px); } 50% { transform: translateY(0); } 75% { transform: translateY(1px); } 100% { transform: translateY(0); } }

/* topsy-steals */
.scn-topsy-steals { background: linear-gradient(180deg, #fffcf0 0%, #f7ecd8 50%, #e8d5b0 100%), radial-gradient(ellipse at 50% 0%, #fffcf0 0%, transparent 70%); }
.scn-topsy-steals .wall         { position:absolute; inset:0 0 30% 0; background: linear-gradient(180deg, #fdf5e6 0%, #f0e0c0 100%); }
.scn-topsy-steals .floor        { position:absolute; bottom:0; left:0; right:0; height:30%; background: linear-gradient(180deg, #c8a882 0%, #a6845e 100%); border-radius: 20% 20% 0 0; }
.scn-topsy-steals .window       { position:absolute; top:5%; left:60%; width:80px; height:100px; background: linear-gradient(180deg, #fffbe0 0%, #ffe888 100%); border-radius: 8px; box-shadow: 0 0 30px 10px rgba(255,232,136,.4); animation: tp3-window 5s ease-in-out infinite alternate; }
.scn-topsy-steals .ophelia      { position:absolute; bottom:28%; left:30%; width:35px; height:75px; transform:translateX(-50%); background: radial-gradient(ellipse at 50% 30%, #7a6b5e 0%, #4a3e35 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: tp3-shake 0.6s ease-in-out infinite; }
.scn-topsy-steals .ophelia-hand { position:absolute; bottom:42%; left:28%; width:14px; height:14px; background: #8a7a6a; border-radius: 50%; animation: tp3-hand 0.6s ease-in-out infinite; }
.scn-topsy-steals .topsy        { position:absolute; bottom:28%; right:30%; width:30px; height:50px; transform:translateX(50%); background: radial-gradient(ellipse at 50% 40%, #8b6f5e 0%, #5c4033 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: tp3-shake 0.6s ease-in-out infinite reverse; }
.scn-topsy-steals .glove        { position:absolute; top:100%; left:40%; width:16px; height:22px; background: linear-gradient(180deg, #d0b090 0%, #a08060 100%); border-radius: 8px 8px 4px 4px; transform: rotate(10deg); animation: tp3-glove 3s ease-out infinite; }
.scn-topsy-steals .ribbon       { position:absolute; top:25%; left:40%; width:6px; height:50px; background: linear-gradient(180deg, #c8553d 0%, #a0461a 100%); border-radius: 3px; transform: rotate(-20deg); animation: tp3-ribbon 4s ease-in-out infinite; }
@keyframes tp3-window { 0% { opacity:.8; } 50% { opacity:1; } 100% { opacity:.85; } }
@keyframes tp3-shake { 0% { transform: translateX(0); } 25% { transform: translateX(-4px); } 50% { transform: translateX(4px); } 75% { transform: translateX(-3px); } 100% { transform: translateX(0); } }
@keyframes tp3-hand { 0% { transform: translate(0,0) scale(1); } 25% { transform: translate(-5px,-3px) scale(1.1); } 50% { transform: translate(5px,2px) scale(0.9); } 75% { transform: translate(-3px,-1px) scale(1.05); } 100% { transform: translate(0,0) scale(1); } }
@keyframes tp3-glove { 0% { top:10%; opacity:0; transform: rotate(10deg) translateY(0); } 30% { opacity:1; } 100% { top:80%; opacity:1; transform: rotate(30deg) translateY(20px); } }
@keyframes tp3-ribbon { 0% { transform: rotate(-20deg) translateY(0); } 25% { transform: rotate(-10deg) translateY(-10px); } 50% { transform: rotate(-30deg) translateY(5px); } 75% { transform: rotate(-15deg) translateY(-5px); } 100% { transform: rotate(-20deg) translateY(0); } }

/* topsy-training */
.scn-topsy-training { background: linear-gradient(180deg, #fffcf0 0%, #f7ecd8 50%, #e8d5b0 100%), radial-gradient(ellipse at 50% 0%, #fffcf0 0%, transparent 70%); }
.scn-topsy-training .wall    { position:absolute; inset:0 0 30% 0; background: linear-gradient(180deg, #fdf5e6 0%, #f0e0c0 100%); }
.scn-topsy-training .floor   { position:absolute; bottom:0; left:0; right:0; height:30%; background: linear-gradient(180deg, #c8a882 0%, #a6845e 100%); border-radius: 20% 20% 0 0; }
.scn-topsy-training .window  { position:absolute; top:5%; left:10%; width:70px; height:90px; background: linear-gradient(180deg, #fffbe0 0%, #ffe888 100%); border-radius: 8px; box-shadow: 0 0 30px 10px rgba(255,232,136,.4); animation: tp4-window 4s ease-in-out infinite alternate; }
.scn-topsy-training .table   { position:absolute; bottom:28%; left:50%; width:120px; height:12px; transform:translateX(-50%); background: linear-gradient(180deg, #a08060 0%, #806040 100%); border-radius: 4px; box-shadow: 0 4px 6px rgba(0,0,0,.2); animation: tp4-table 8s linear infinite; }
.scn-topsy-training .chair   { position:absolute; bottom:30%; left:50%; width:24px; height:45px; transform:translateX(-50%); background: linear-gradient(180deg, #9a7a5a 0%, #7a5a3a 100%); border-radius: 4px 4px 0 0; }
.scn-topsy-training .topsy   { position:absolute; bottom:36%; left:50%; width:30px; height:50px; transform:translateX(-50%); background: radial-gradient(ellipse at 50% 40%, #8b6f5e 0%, #5c4033 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: tp4-topsy 2s ease-in-out infinite; }
.scn-topsy-training .basket  { position:absolute; bottom:29%; left:35%; width:40px; height:30px; background: linear-gradient(180deg, #b09070 0%, #907050 100%); border-radius: 0 0 20% 20% / 0 0 40% 40%; animation: tp4-basket 3s ease-in-out infinite; }
.scn-topsy-training .spool   { position:absolute; bottom:30%; right:35%; width:14px; height:20px; background: linear-gradient(180deg, #d0b090 0%, #a08060 100%); border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%; animation: tp4-spool 5s linear infinite; }
.scn-topsy-training .needle  { position:absolute; bottom:40%; left:48%; width:4px; height:30px; background: linear-gradient(180deg, #b0a090 0%, #807060 100%); border-radius: 2px; transform: rotate(30deg); animation: tp4-needle 1.5s ease-in-out infinite; }
.scn-topsy-training .thread  { position:absolute; bottom:44%; left:50%; width:2px; height:60px; background: #c8863e; border-radius: 1px; transform-origin: bottom center; animation: tp4-thread 2s ease-in-out infinite; }
@keyframes tp4-window { 0% { opacity:.8; } 50% { opacity:1; } 100% { opacity:.85; } }
@keyframes tp4-table { 0% { transform: translateX(-50%) translateY(0); } 25% { transform: translateX(-50%) translateY(-1px); } 50% { transform: translateX(-50%) translateY(0); } 75% { transform: translateX(-50%) translateY(1px); } 100% { transform: translateX(-50%) translateY(0); } }
@keyframes tp4-topsy { 0% { transform: translateX(-50%) translateY(0) rotate(0deg); } 25% { transform: translateX(-50%) translateY(-5px) rotate(-5deg); } 50% { transform: translateX(-50%) translateY(0) rotate(0deg); } 75% { transform: translateX(-50%) translateY(-3px) rotate(5deg); } 100% { transform: translateX(-50%) translateY(0) rotate(0deg); } }
@keyframes tp4-basket { 0% { transform: translateY(0) scaleY(1); } 25% { transform: translateY(-2px) scaleY(0.95); } 50% { transform: translateY(0) scaleY(1); } 75% { transform: translateY(1px) scaleY(0.98); } 100% { transform: translateY(0) scaleY(1); } }
@keyframes tp4-spool { 0% { transform: rotate(0deg) translateY(0); } 50% { transform: rotate(180deg) translateY(-3px); } 100% { transform: rotate(360deg) translateY(0); } }
@keyframes tp4-needle { 0% { transform: rotate(10deg) translateY(0); } 25% { transform: rotate(30deg) translateY(-2px); } 50% { transform: rotate(15deg) translateY(0); } 75% { transform: rotate(35deg) translateY(-1px); } 100% { transform: rotate(10deg) translateY(0); } }
@keyframes tp4-thread { 0% { transform: rotate(0deg) scaleY(1); } 25% { transform: rotate(5deg) scaleY(0.9); } 50% { transform: rotate(-5deg) scaleY(1); } 75% { transform: rotate(3deg) scaleY(0.95); } 100% { transform: rotate(0deg) scaleY(1); } }

/* Scene 1: eliza-rests – warm dim interior bedroom */
.scn-eliza-rests {
  background: 
    linear-gradient(180deg, #3a2a1a 0%, #2a1a0a 100%),
    radial-gradient(ellipse at 50% 80%, #4a3a2a 0%, transparent 60%);
}
.scn-eliza-rests .bg-wall {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
}
.scn-eliza-rests .bed {
  position: absolute; bottom: 10%; left: 10%; right: 10%; height: 35%;
  background: linear-gradient(180deg, #6a5040 0%, #4a3828 100%);
  border-radius: 8% 8% 4% 4%;
  box-shadow: 0 -4px 12px rgba(0,0,0,0.5);
}
.scn-eliza-rests .blanket {
  position: absolute; bottom: 17%; left: 15%; right: 15%; height: 20%;
  background: linear-gradient(180deg, #7a5a4a 0%, #5a3a2a 100%);
  border-radius: 50% 50% 10% 10% / 60% 60% 15% 15%;
  transform-origin: bottom center;
  animation: er-blanket 6s ease-in-out infinite;
}
.scn-eliza-rests .pillow {
  position: absolute; bottom: 41%; left: 50%; width: 60px; height: 24px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #b09880 0%, #8a705a 100%);
  border-radius: 40% 40% 20% 20% / 60% 60% 30% 30%;
}
.scn-eliza-rests .figure {
  position: absolute; bottom: 37%; left: 50%; width: 30px; height: 36px;
  transform: translateX(-50%) rotate(5deg);
  background: linear-gradient(180deg, #2a1a0a 0%, #1a0e04 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: er-figure 4s ease-in-out infinite;
}
.scn-eliza-rests .candle {
  position: absolute; bottom: 15%; right: 20%; width: 10px; height: 18px;
  background: linear-gradient(180deg, #ffd080 0%, #c08040 100%);
  border-radius: 30% 30% 10% 10%;
  box-shadow: 0 0 20px 8px rgba(255,208,128,0.6), 0 0 40px 16px rgba(255,208,128,0.3);
  animation: er-candle 3s ease-in-out infinite alternate;
}
.scn-eliza-rests .window {
  position: absolute; top: 15%; left: 20%; width: 60px; height: 80px;
  background: linear-gradient(180deg, #ffe0a0 0%, #c0a060 50%, #806040 100%);
  border-radius: 4px;
  box-shadow: inset 0 0 20px rgba(255,224,160,0.5), 0 0 40px 12px rgba(255,200,100,0.3);
  animation: er-window 8s ease-in-out infinite alternate;
}
@keyframes er-blanket {
  0% { transform: translateY(0) scaleY(1); }
  50% { transform: translateY(-2px) scaleY(1.02); }
  100% { transform: translateY(0) scaleY(1); }
}
@keyframes er-figure {
  0%, 100% { transform: translateX(-50%) rotate(5deg); }
  50% { transform: translateX(-50%) rotate(7deg) translateY(-1px); }
}
@keyframes er-candle {
  0% { opacity: 0.7; transform: translateY(0) scaleY(1); }
  50% { opacity: 1; transform: translateY(-1px) scaleY(1.05); box-shadow: 0 0 25px 10px rgba(255,208,128,0.8); }
  100% { opacity: 0.8; transform: translateY(0) scaleY(1); }
}
@keyframes er-window {
  0% { box-shadow: inset 0 0 20px rgba(255,224,160,0.4), 0 0 30px 8px rgba(255,200,100,0.2); opacity: 0.8; }
  50% { box-shadow: inset 0 0 30px rgba(255,224,160,0.7), 0 0 50px 16px rgba(255,200,100,0.5); opacity: 1; }
  100% { box-shadow: inset 0 0 20px rgba(255,224,160,0.4), 0 0 30px 8px rgba(255,200,100,0.2); opacity: 0.85; }
}

/* Scene 2: eliza-dreams – moonlit dreamscape */
.scn-eliza-dreams {
  background: 
    linear-gradient(180deg, #1a1a3e 0%, #2a2a5a 50%, #3a3a6e 100%),
    radial-gradient(ellipse at 50% 0%, #4a4a7a 0%, transparent 70%);
}
.scn-eliza-dreams .sky {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(180deg, #1a1a3e 0%, #2a2a5a 100%);
  animation: ed-sky 12s ease-in-out infinite alternate;
}
.scn-eliza-dreams .moon {
  position: absolute; top: 8%; left: 15%; width: 40px; height: 40px;
  background: radial-gradient(circle, #e0e0ff 0%, #a0a0d0 60%, transparent 80%);
  border-radius: 50%;
  box-shadow: 0 0 40px 12px rgba(160,160,208,0.5);
  animation: ed-moon 8s ease-in-out infinite alternate;
}
.scn-eliza-dreams .water {
  position: absolute; bottom: 0; left: 0; right: 0; height: 40%;
  background: linear-gradient(180deg, #2a2a5a 0%, #1a1a3e 50%, #0a0a1e 100%);
  border-radius: 60% 40% 0 0 / 20% 20% 0 0;
  animation: ed-water 4s linear infinite;
}
.scn-eliza-dreams .island-a, .scn-eliza-dreams .island-b {
  position: absolute; bottom: 25%; 
  background: linear-gradient(180deg, #3a5a3a 0%, #1a3a1a 100%);
  border-radius: 50% 50% 0 0 / 80% 80% 0 0;
  animation: ed-island 6s ease-in-out infinite;
}
.scn-eliza-dreams .island-a { left: 10%; width: 100px; height: 30px; }
.scn-eliza-dreams .island-b { right: 15%; width: 80px; height: 20px; animation-delay: 3s; }
.scn-eliza-dreams .house {
  position: absolute; bottom: 30%; left: 30%; width: 50px; height: 40px;
  background: linear-gradient(180deg, #6a5040 0%, #4a3828 100%);
  border-radius: 8% 8% 4% 4%;
}
.scn-eliza-dreams .house::before {
  content: ''; position: absolute; bottom: 20%; left: 50%; width: 14px; height: 18px;
  transform: translateX(-50%);
  background: radial-gradient(circle, #ffd080 0%, #b08040 70%);
  border-radius: 20% 20% 10% 10%;
  box-shadow: 0 0 12px 4px rgba(255,208,128,0.5);
  animation: ed-house 3s ease-in-out infinite alternate;
}
.scn-eliza-dreams .boy {
  position: absolute; bottom: 23%; left: 20%; width: 16px; height: 28px;
  background: linear-gradient(180deg, #1a1a2e 0%, #0a0a1e 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: ed-boy 4s ease-in-out infinite;
}
.scn-eliza-dreams .cloud {
  position: absolute; top: 20%; right: 10%; width: 100px; height: 18px;
  background: linear-gradient(180deg, rgba(200,200,240,0.5) 0%, rgba(200,200,240,0.1) 100%);
  border-radius: 50%;
  filter: blur(8px);
  animation: ed-cloud 40s linear infinite;
}
@keyframes ed-sky { 0% { opacity: 0.7; } 50% { opacity: 1; } 100% { opacity: 0.8; } }
@keyframes ed-moon {
  0% { transform: translate(0, 0) scale(1); box-shadow: 0 0 40px 12px rgba(160,160,208,0.5); }
  50% { transform: translate(4px, -2px) scale(1.05); box-shadow: 0 0 50px 16px rgba(160,160,208,0.7); }
  100% { transform: translate(0, 0) scale(1); }
}
@keyframes ed-water {
  0% { background-position: 0% 50%; }
  100% { background-position: 100% 50%; }
}
@keyframes ed-island { 0%, 100% { transform: translateY(0); } 50% { transform: translateY(-2px); } }
@keyframes ed-house { 0% { opacity: 0.6; box-shadow: 0 0 8px 2px rgba(255,208,128,0.3); } 100% { opacity: 1; box-shadow: 0 0 20px 6px rgba(255,208,128,0.6); } }
@keyframes ed-boy { 0% { transform: translateX(0) rotate(0deg); } 25% { transform: translateX(8px) rotate(2deg); } 50% { transform: translateX(16px) rotate(0deg); } 75% { transform: translateX(24px) rotate(-2deg); } 100% { transform: translateX(32px) rotate(0deg); } }
@keyframes ed-cloud { 0% { transform: translateX(0); } 100% { transform: translateX(-120vw); } }

/* Scene 3: quaker-breakfast – bright interior shaving */
.scn-quaker-breakfast {
  background: 
    linear-gradient(180deg, #f5e6d0 0%, #e6d0b0 40%, #d0b090 100%),
    radial-gradient(ellipse at 50% 30%, #fff8e0 0%, transparent 60%);
}
.scn-quaker-breakfast .bg-wall {
  position: absolute; inset: 0;
  background: linear-gradient(90deg, #e0c8a0 0%, #d0b890 25%, #c0a880 75%, #d0b890 100%);
}
.scn-quaker-breakfast .mirror {
  position: absolute; top: 20%; left: 30%; width: 80px; height: 100px;
  background: linear-gradient(135deg, #e0e8f0 0%, #b0b8c0 50%, #c0c8d0 100%);
  border: 4px solid #8a7050;
  border-radius: 4px;
  box-shadow: 0 4px 12px rgba(0,0,0,0.3), inset 0 0 20px rgba(255,255,255,0.4);
  animation: qb-mirror 6s ease-in-out infinite alternate;
}
.scn-quaker-breakfast .figure {
  position: absolute; bottom: 15%; left: 25%; width: 24px; height: 50px;
  background: linear-gradient(180deg, #3a2a1a 0%, #2a1a0a 100%);
  border-radius: 50% 50% 40% 40% / 70% 70% 40% 40%;
  transform-origin: 50% 80%;
  animation: qb-figure 4s ease-in-out infinite;
}
.scn-quaker-breakfast .chair {
  position: absolute; bottom: 10%; left: 22%; width: 50px; height: 30px;
  background: linear-gradient(180deg, #6a5040 0%, #4a3828 100%);
  border-radius: 10% 10% 30% 30% / 20% 20% 40% 40%;
}
.scn-quaker-breakfast .window {
  position: absolute; top: 10%; right: 10%; width: 70px; height: 90px;
  background: linear-gradient(180deg, #fff8e0 0%, #e8d8b0 60%, #c8b090 100%);
  border: 4px solid #a08060;
  border-radius: 4px;
  box-shadow: inset 0 0 30px rgba(255,255,224,0.6), 0 0 40px 10px rgba(255,240,200,0.3);
  animation: qb-window 8s ease-in-out infinite alternate;
}
.scn-quaker-breakfast .mug {
  position: absolute; bottom: 20%; right: 15%; width: 20px; height: 28px;
  background: linear-gradient(180deg, #c0a080 0%, #a08060 100%);
  border-radius: 10% 10% 5% 5%;
}
.scn-quaker-breakfast .steam-a, .scn-quaker-breakfast .steam-b {
  position: absolute; bottom: 34%; right: 17%; width: 12px; height: 30px;
  background: linear-gradient(180deg, rgba(255,255,255,0.5) 0%, transparent 100%);
  border-radius: 50%;
  filter: blur(4px);
  animation: qb-steam 3s ease-out infinite;
}
.scn-quaker-breakfast .steam-b { right: 20%; width: 8px; height: 24px; animation-delay: 1.5s; }
@keyframes qb-mirror {
  0% { box-shadow: 0 4px 12px rgba(0,0,0,0.3), inset 0 0 20px rgba(255,255,255,0.4); }
  50% { box-shadow: 0 8px 20px rgba(0,0,0,0.4), inset 0 0 30px rgba(255,255,255,0.6); }
  100% { box-shadow: 0 4px 12px rgba(0,0,0,0.3), inset 0 0 20px rgba(255,255,255,0.4); }
}
@keyframes qb-figure {
  0% { transform: rotate(0deg) translateY(0); }
  25% { transform: rotate(5deg) translateY(-1px); }
  50% { transform: rotate(0deg) translateY(0); }
  75% { transform: rotate(-5deg) translateY(-1px); }
  100% { transform: rotate(0deg) translateY(0); }
}
@keyframes qb-window {
  0% { opacity: 0.8; box-shadow: inset 0 0 30px rgba(255,255,224,0.5), 0 0 30px 8px rgba(255,240,200,0.2); }
  50% { opacity: 1; box-shadow: inset 0 0 40px rgba(255,255,224,0.7), 0 0 50px 14px rgba(255,240,200,0.4); }
  100% { opacity: 0.9; box-shadow: inset 0 0 30px rgba(255,255,224,0.5), 0 0 30px 8px rgba(255,240,200,0.2); }
}
@keyframes qb-steam {
  0% { opacity: 0.6; transform: translateY(0) scale(1) rotate(0deg); }
  50% { opacity: 0.3; transform: translateY(-15px) scale(1.4) rotate(5deg); }
  100% { opacity: 0; transform: translateY(-30px) scale(1.8) rotate(10deg); }
}

/* Scene 4: mississippi-river – sunlit river scene */
.scn-mississippi-river {
  background: 
    linear-gradient(180deg, #87CEEB 0%, #5a9fd4 40%, #2c5f8a 100%),
    radial-gradient(ellipse at 50% 100%, #f0e68c 0%, transparent 60%);
}
.scn-mississippi-river .sky {
  position: absolute; inset: 0 0 45% 0;
  background: linear-gradient(180deg, #a8d8ff 0%, #5a9fd4 60%, #3a7fa4 100%);
  animation: mr-sky 10s ease-in-out infinite alternate;
}
.scn-mississippi-river .river {
  position: absolute; bottom: 0; left: 0; right: 0; height: 50%;
  background: linear-gradient(180deg, #2c5f8a 0%, #1a3e5a 50%, #0a1e2e 100%);
  border-radius: 30% 70% 0 0 / 20% 20% 0 0;
  animation: mr-river 6s linear infinite;
}
.scn-mississippi-river .steamboat {
  position: absolute; bottom: 30%; left: 20%; width: 100px; height: 40px;
  background: linear-gradient(180deg, #6a4a2a 0%, #4a2a1a 100%);
  border-radius: 10% 10% 30% 30% / 40% 40% 30% 30%;
  box-shadow: 0 4px 12px rgba(0,0,0,0.4);
  animation: mr-boat 4s ease-in-out infinite;
}
.scn-mississippi-river .paddle {
  position: absolute; bottom: 27%; left: 30%; width: 20px; height: 20px;
  background: radial-gradient(circle, #8a6a4a 0%, #4a3a2a 100%);
  border-radius: 50%;
  animation: mr-paddle 2s linear infinite;
}
.scn-mississippi-river .smoke {
  position: absolute; bottom: 50%; left: 25%; width: 40px; height: 50px;
  background: radial-gradient(ellipse at 50% 100%, rgba(200,200,200,0.6) 0%, transparent 70%);
  filter: blur(10px);
  animation: mr-smoke 8s ease-out infinite;
}
.scn-mississippi-river .cargo {
  position: absolute; bottom: 34%; left: 18%; width: 30px; height: 18px;
  background: linear-gradient(180deg, #5a3a2a 0%, #3a2a1a 100%);
  border-radius: 2px;
  box-shadow: 2px 2px 4px rgba(0,0,0,0.3);
}
.scn-mississippi-river .tree {
  position: absolute; bottom: 40%; right: 10%; width: 40px; height: 60px;
  background: linear-gradient(180deg, #2a4a2a 0%, #1a3a1a 100%);
  border-radius: 60% 60% 20% 20% / 80% 80% 30% 30%;
  animation: mr-tree 6s ease-in-out infinite alternate;
}
@keyframes mr-sky { 0% { opacity: 0.8; } 50% { opacity: 1; } 100% { opacity: 0.85; } }
@keyframes mr-rriver {
  0% { background-position: 0% 50%; }
  100% { background-position: 100% 50%; }
}
@keyframes mr-paddle {
  0% { transform: rotate(0deg); }
  100% { transform: rotate(360deg); }
}
@keyframes mr-smoke {
  0% { opacity: 0.5; transform: translateY(0) scale(1); }
  50% { opacity: 0.2; transform: translateY(-20px) scale(1.5); }
  100% { opacity: 0; transform: translateY(-40px) scale(2); }
}
@keyframes mr-boat {
  0%, 100% { transform: translateY(0); }
  50% { transform: translateY(-3px); }
}
@keyframes mr-tree {
  0% { transform: translateX(0) scaleY(1); }
  50% { transform: translateX(-2px) scaleY(1.02); }
  100% { transform: translateX(0) scaleY(1); }
}

.scn-mrs-shelby-weeps {
  background: linear-gradient(180deg, #1a1a2e 0%, #2a2a3e 40%, #1e1e2e 100%), radial-gradient(ellipse at 50% 30%, #3a3a5e 0%, transparent 70%);
}
.scn-mrs-shelby-weeps .bg { position:absolute; inset:0; background: linear-gradient(180deg, rgba(0,0,0,.6) 0%, transparent 100%); animation: msw-breath 12s ease-in-out infinite; }
.scn-mrs-shelby-weeps .wall { position:absolute; inset:10% 5% 20% 5%; background: linear-gradient(180deg, #2c2c3c 0%, #1a1a2a 100%); border-radius: 10px; box-shadow: inset 0 0 20px rgba(0,0,0,.5); }
.scn-mrs-shelby-weeps .window { position:absolute; top:15%; left:60%; width:60px; height:80px; background: linear-gradient(180deg, #4a5a7a 0%, #2a3a5a 100%); border: 4px solid #3a3a4c; border-radius: 4px; box-shadow: inset 0 0 30px rgba(74,90,122,.5), 0 0 10px rgba(74,90,122,.3); animation: msw-moonlight 8s ease-in-out infinite alternate; }
.scn-mrs-shelby-weeps .candle { position:absolute; bottom:40%; left:30%; width:8px; height:25px; background: linear-gradient(180deg, #f0d080 0%, #c08040 100%); border-radius: 4px 4px 2px 2px; box-shadow: 0 0 20px 8px rgba(240,208,128,.4); animation: msw-flicker 2s ease-in-out infinite; }
.scn-mrs-shelby-weeps .table { position:absolute; bottom:25%; left:20%; right:20%; height:20px; background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%); border-radius: 10px 10px 0 0; box-shadow: 0 -5px 15px rgba(0,0,0,.5); }
.scn-mrs-shelby-weeps .figure { position:absolute; bottom:28%; left:40%; width:40px; height:60px; background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: center bottom; animation: msw-weep 4s ease-in-out infinite; box-shadow: 0 5px 10px rgba(0,0,0,.4); }
.scn-mrs-shelby-weeps .shadow { position:absolute; bottom:25%; left:35%; width:60px; height:15px; background: rgba(0,0,0,.6); border-radius: 50%; filter: blur(6px); animation: msw-shadow 4s ease-in-out infinite; }
@keyframes msw-breath { 0%,100% { opacity:.8 } 50% { opacity:1 } }
@keyframes msw-moonlight { 0% { opacity:.6; box-shadow: inset 0 0 30px rgba(74,90,122,.5) } 50% { opacity:1; box-shadow: inset 0 0 40px rgba(100,120,160,.7) } 100% { opacity:.7; box-shadow: inset 0 0 20px rgba(74,90,122,.4) } }
@keyframes msw-flicker { 0%,100% { box-shadow: 0 0 15px 6px rgba(240,208,128,.3); transform: scaleY(1); } 50% { box-shadow: 0 0 25px 10px rgba(240,208,128,.6); transform: scaleY(1.05); } }
@keyframes msw-weep { 0%,100% { transform: translateY(0) rotate(0); } 25% { transform: translateY(-2px) rotate(2deg); } 50% { transform: translateY(0) rotate(-1deg); } 75% { transform: translateY(-1px) rotate(1deg); } }
@keyframes msw-shadow { 0%,100% { transform: scaleX(1); opacity:.6 } 50% { transform: scaleX(1.2) translateX(5px); opacity:.8 } }

.scn-shelby-consoles {
  background: linear-gradient(180deg, #1a1a2e 0%, #2a2a3e 40%, #1e1e2e 100%), radial-gradient(ellipse at 50% 30%, #3a3a5e 0%, transparent 70%);
}
.scn-shelby-consoles .bg { position:absolute; inset:0; background: linear-gradient(180deg, rgba(0,0,0,.5) 0%, transparent 100%); animation: sc-breathe 12s ease-in-out infinite; }
.scn-shelby-consoles .wall { position:absolute; inset:10% 5% 20% 5%; background: linear-gradient(180deg, #2c2c3c 0%, #1a1a2a 100%); border-radius: 10px; box-shadow: inset 0 0 20px rgba(0,0,0,.5); }
.scn-shelby-consoles .window { position:absolute; top:15%; left:60%; width:60px; height:80px; background: linear-gradient(180deg, #4a5a7a 0%, #2a3a5a 100%); border: 4px solid #3a3a4c; border-radius: 4px; box-shadow: inset 0 0 30px rgba(74,90,122,.5), 0 0 10px rgba(74,90,122,.3); animation: sc-moonlight 8s ease-in-out infinite alternate; }
.scn-shelby-consoles .candle { position:absolute; bottom:40%; left:30%; width:8px; height:25px; background: linear-gradient(180deg, #f0d080 0%, #c08040 100%); border-radius: 4px 4px 2px 2px; box-shadow: 0 0 20px 8px rgba(240,208,128,.4); animation: sc-flicker 2s ease-in-out infinite; }
.scn-shelby-consoles .table { position:absolute; bottom:25%; left:20%; right:20%; height:20px; background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%); border-radius: 10px 10px 0 0; box-shadow: 0 -5px 15px rgba(0,0,0,.5); }
.scn-shelby-consoles .figure-shelby { position:absolute; bottom:28%; left:55%; width:45px; height:70px; background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%); border-radius: 45% 45% 40% 40% / 60% 60% 40% 40%; transform-origin: center bottom; animation: sc-stand 5s ease-in-out infinite; box-shadow: 0 5px 10px rgba(0,0,0,.4); }
.scn-shelby-consoles .figure-mrs { position:absolute; bottom:28%; left:35%; width:40px; height:55px; background: linear-gradient(180deg, #3a2a3a 0%, #1a1a2a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: center bottom; animation: sc-sit 4s ease-in-out infinite; }
@keyframes sc-breathe { 0%,100% { opacity:.8 } 50% { opacity:1 } }
@keyframes sc-moonlight { 0% { opacity:.6; box-shadow: inset 0 0 30px rgba(74,90,122,.5) } 50% { opacity:1; box-shadow: inset 0 0 40px rgba(100,120,160,.7) } 100% { opacity:.7; box-shadow: inset 0 0 20px rgba(74,90,122,.4) } }
@keyframes sc-flicker { 0%,100% { box-shadow: 0 0 15px 6px rgba(240,208,128,.3); transform: scaleY(1); } 50% { box-shadow: 0 0 25px 10px rgba(240,208,128,.6); transform: scaleY(1.05); } }
@keyframes sc-stand { 0%,100% { transform: translateY(0) rotate(0); } 50% { transform: translateY(-2px) rotate(1deg); } }
@keyframes sc-sit { 0%,100% { transform: translateY(0) rotate(0deg); } 25% { transform: translateY(-1px) rotate(-2deg); } 50% { transform: translateY(0) rotate(0deg); } 75% { transform: translateY(-1px) rotate(1deg); } }

.scn-eliza-decides-to-flee {
  background: linear-gradient(180deg, #0a0a1a 0%, #15152a 50%, #0a0a1a 100%), radial-gradient(ellipse at 50% 20%, #1a1a3a 0%, transparent 80%);
}
.scn-eliza-decides-to-flee .bg { position:absolute; inset:0; background: rgba(0,0,0,.3); }
.scn-eliza-decides-to-flee .wall-left { position:absolute; left:0; top:5%; bottom:10%; width:30%; background: linear-gradient(90deg, #1a1a2a 0%, rgba(26,26,42,.5) 100%); border-radius: 0 10px 10px 0; }
.scn-eliza-decides-to-flee .wall-right { position:absolute; right:0; top:5%; bottom:10%; width:30%; background: linear-gradient(270deg, #1a1a2a 0%, rgba(26,26,42,.5) 100%); border-radius: 10px 0 0 10px; }
.scn-eliza-decides-to-flee .door { position:absolute; left:45%; top:10%; width:12%; height:50%; background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%); border: 2px solid #3a3a4c; border-radius: 4px; box-shadow: 0 0 10px rgba(0,0,0,.5); animation: edf-door 10s ease-in-out infinite; }
.scn-eliza-decides-to-flee .floor { position:absolute; bottom:0; left:0; right:0; height:10%; background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%); }
.scn-eliza-decides-to-flee .figure-eliza { position:absolute; bottom:15%; left:35%; width:35px; height:55px; background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: center bottom; animation: edf-crouch 6s ease-in-out infinite; box-shadow: 0 5px 10px rgba(0,0,0,.4); }
.scn-eliza-decides-to-flee .hands { position:absolute; bottom:30%; left:38%; width:20px; height:10px; background: #2a2a3a; border-radius: 50% 50% 0 0; animation: edf-hands 6s ease-in-out infinite; transform-origin: bottom; }
@keyframes edf-door { 0%,100% { transform: translateY(0); opacity:.8; } 50% { transform: translateY(-2px); opacity:1; } }
@keyframes edf-crouch { 0%,100% { transform: translateY(0) rotate(0) scale(1); } 25% { transform: translateY(-3px) rotate(-3deg) scale(0.98); } 50% { transform: translateY(0) rotate(0) scale(1); } 75% { transform: translateY(-1px) rotate(2deg) scale(1.01); } }
@keyframes edf-hands { 0%,100% { transform: rotate(0) translateY(0); } 50% { transform: rotate(20deg) translateY(-5px); } }

.scn-eliza-flees-with-harry {
  background: linear-gradient(180deg, #0e0e1e 0%, #1a1a2e 50%, #0e0e1e 100%), radial-gradient(ellipse at 50% 30%, #2a2a4a 0%, transparent 80%);
}
.scn-eliza-flees-with-harry .bg { position:absolute; inset:0; background: rgba(0,0,0,.2); }
.scn-eliza-flees-with-harry .wall { position:absolute; inset:10% 5% 20% 5%; background: linear-gradient(180deg, #24243a 0%, #1a1a2a 100%); border-radius: 10px; }
.scn-eliza-flees-with-harry .window { position:absolute; top:12%; left:65%; width:50px; height:60px; background: linear-gradient(180deg, #3a4a6a 0%, #1a2a4a 100%); border: 3px solid #2a2a4c; border-radius: 2px; box-shadow: inset 0 0 20px rgba(58,74,106,.5); animation: efh-moonlight 8s ease-in-out infinite alternate; }
.scn-eliza-flees-with-harry .table { position:absolute; bottom:22%; left:15%; right:15%; height:15px; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius: 5px; }
.scn-eliza-flees-with-harry .bundle { position:absolute; bottom:24%; left:30%; width:30px; height:20px; background: #3a2a1a; border-radius: 40% 40% 30% 30%; box-shadow: 0 2px 5px rgba(0,0,0,.4); animation: efh-bundle 5s ease-in-out infinite; }
.scn-eliza-flees-with-harry .figure-eliza { position:absolute; bottom:25%; left:45%; width:35px; height:55px; background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: center bottom; animation: efh-bend 4s ease-in-out infinite; }
.scn-eliza-flees-with-harry .toy { position:absolute; bottom:28%; left:35%; width:15px; height:20px; background: #4a3a2a; border-radius: 30% 30% 20% 20%; box-shadow: 0 0 5px rgba(0,0,0,.3); animation: efh-toy 3s ease-in-out infinite; }
@keyframes efh-moonlight { 0% { opacity:.6; box-shadow: inset 0 0 20px rgba(58,74,106,.5); } 50% { opacity:1; box-shadow: inset 0 0 30px rgba(74,90,122,.7); } 100% { opacity:.7; box-shadow: inset 0 0 15px rgba(58,74,106,.4); } }
@keyframes efh-bundle { 0%,100% { transform: translateY(0) rotate(0); } 50% { transform: translateY(-2px) rotate(3deg); } }
@keyframes efh-bend { 0%,100% { transform: translateY(0) rotate(0); } 25% { transform: translateY(-2px) rotate(2deg); } 50% { transform: translateY(0) rotate(0); } 75% { transform: translateY(-1px) rotate(-3deg); } }
@keyframes efh-toy { 0%,100% { transform: rotate(0) scale(1); } 50% { transform: rotate(15deg) scale(1.1); } }

/* senator-bird-decides – firelit interior, calm mood */
.scn-senator-bird-decides {
  background:
    linear-gradient(180deg, #3a2a1a 0%, #2a1a0a 40%, #1a0a00 100%),
    radial-gradient(ellipse at 50% 20%, #c8553d 0%, transparent 70%);
}
.scn-senator-bird-decides .wall {
  position: absolute; inset: 0 0 35% 0;
  background: linear-gradient(180deg, #5a3a2a 0%, #4a2a1a 60%, #3a1a0a 100%);
  border-bottom: 4px solid #2a1a0a;
}
.scn-senator-bird-decides .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 35%;
  background: linear-gradient(0deg, #3a2a1a 0%, #4a3a2a 100%);
  box-shadow: inset 0 8px 20px rgba(0,0,0,.3);
}
.scn-senator-bird-decides .fireplace {
  position: absolute; bottom: 30%; left: 15%; width: 30%; height: 35%;
  background: linear-gradient(180deg, #5a3a2a 0%, #3a1a0a 100%);
  border-radius: 8% 8% 0 0;
  box-shadow: 0 -4px 12px rgba(0,0,0,.5);
}
.scn-senator-bird-decides .fire {
  position: absolute; bottom: 30%; left: 22%; width: 16%; height: 20%;
  background: radial-gradient(ellipse at 50% 100%, #f28c28 0%, #c8553d 50%, transparent 80%);
  border-radius: 50% 50% 30% 30%;
  animation: sbd-fire 2s ease-in-out infinite alternate;
}
.scn-senator-bird-decides .rocking-chair {
  position: absolute; bottom: 20%; left: 55%; width: 14%; height: 25%;
  background: linear-gradient(180deg, #2a1a0a 0%, #1a0a00 100%);
  border-radius: 30% 30% 20% 20% / 40% 40% 30% 30%;
  transform-origin: bottom center;
  animation: sbd-rock 4s ease-in-out infinite;
}
.scn-senator-bird-decides .figure-mrs {
  position: absolute; bottom: 18%; left: 56%; width: 8%; height: 18%;
  background: linear-gradient(180deg, #1a1210 0%, #0a0808 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: sbd-sway 4.5s ease-in-out infinite;
}
.scn-senator-bird-decides .figure-mr {
  position: absolute; bottom: 10%; left: 40%; width: 7%; height: 22%;
  background: linear-gradient(180deg, #2a1a0a 0%, #0a0500 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  animation: sbd-walk 5s ease-in-out infinite;
}
.scn-senator-bird-decides .glow {
  position: absolute; inset: 0;
  background: radial-gradient(ellipse at 30% 70%, rgba(242,140,40,0.15) 0%, transparent 60%);
  animation: sbd-pulse 3s ease-in-out infinite alternate;
  pointer-events: none;
}
@keyframes sbd-fire {
  0% { transform: scaleY(1) scaleX(1); opacity: .7; }
  50% { transform: scaleY(1.2) scaleX(0.9); opacity: 1; }
  100% { transform: scaleY(0.9) scaleX(1.1); opacity: .8; }
}
@keyframes sbd-rock {
  0% { transform: rotate(0deg); }
  25% { transform: rotate(2deg); }
  50% { transform: rotate(0deg); }
  75% { transform: rotate(-2deg); }
  100% { transform: rotate(0deg); }
}
@keyframes sbd-sway {
  0% { transform: rotate(0deg) translateY(0); }
  50% { transform: rotate(1deg) translateY(-1px); }
  100% { transform: rotate(-1deg) translateY(0); }
}
@keyframes sbd-walk {
  0% { transform: translateX(0) scaleY(1); }
  25% { transform: translateX(10px) scaleY(1.02); }
  50% { transform: translateX(20px) scaleY(1); }
  75% { transform: translateX(10px) scaleY(0.98); }
  100% { transform: translateX(0) scaleY(1); }
}
@keyframes sbd-pulse {
  0% { opacity: .6; }
  50% { opacity: 1; }
  100% { opacity: .7; }
}

/* senator-bird-journey – starlit landscape, calm mood */
.scn-senator-bird-journey {
  background:
    linear-gradient(180deg, #0a0a1a 0%, #1a1a3e 40%, #2a2a5e 100%),
    radial-gradient(ellipse at 50% 100%, #1a1a3e 0%, transparent 70%);
}
.scn-senator-bird-journey .sky {
  position: absolute; inset: 0 0 45% 0;
  background: radial-gradient(ellipse at 30% 20%, #3a3a6e 0%, transparent 70%);
  animation: sbj-sky 30s linear infinite alternate;
}
.scn-senator-bird-journey .moon {
  position: absolute; top: 8%; left: 65%; width: 8%; height: 8%;
  background: radial-gradient(circle at 40% 40%, #d0d0e0 0%, #a0a0c0 100%);
  border-radius: 50%;
  box-shadow: 0 0 30px 10px rgba(160,160,192,0.3);
  animation: sbj-moon 6s ease-in-out infinite alternate;
}
.scn-senator-bird-journey .hill-back {
  position: absolute; bottom: 30%; left: 0; right: 0; height: 20%;
  background: linear-gradient(180deg, #1a1a3e 0%, #0a0a1a 100%);
  border-radius: 60% 40% 0 0 / 30% 50% 0 0;
  box-shadow: inset 0 4px 10px rgba(0,0,0,.5);
}
.scn-senator-bird-journey .hill-front {
  position: absolute; bottom: 20%; left: 0; right: 0; height: 15%;
  background: linear-gradient(180deg, #2a2a4e 0%, #1a1a3a 100%);
  border-radius: 40% 60% 0 0 / 50% 40% 0 0;
  box-shadow: inset 0 6px 14px rgba(0,0,0,.4);
  animation: sbj-hills 12s ease-in-out infinite alternate;
}
.scn-senator-bird-journey .road {
  position: absolute; bottom: 5%; left: 10%; right: 10%; height: 18%;
  background: linear-gradient(180deg, #4a4a6a 0%, #3a3a5a 100%);
  border-radius: 20% 20% 0 0;
  box-shadow: inset 0 8px 16px rgba(0,0,0,.3);
}
.scn-senator-bird-journey .figure {
  position: absolute; bottom: 12%; left: 30%; width: 4%; height: 14%;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: sbj-walk 4s ease-in-out infinite;
}
.scn-senator-bird-journey .lantern {
  position: absolute; bottom: 20%; left: 33%; width: 2%; height: 3%;
  background: radial-gradient(circle, #f0c060 0%, #c08030 60%);
  border-radius: 50%;
  box-shadow: 0 0 20px 8px rgba(240,192,96,0.5);
  animation: sbj-lantern 3s ease-in-out infinite;
}
@keyframes sbj-sky {
  0% { opacity: .8; background-position: 0 0; }
  100% { opacity: 1; background-position: 100% 20%; }
}
@keyframes sbj-moon {
  0% { transform: scale(0.9) translateX(0); opacity: .8; }
  50% { transform: scale(1.1) translateX(2px); opacity: 1; }
  100% { transform: scale(0.95) translateX(-1px); opacity: .9; }
}
@keyframes sbj-hills {
  0% { transform: translateY(0); }
  50% { transform: translateY(-2px); }
  100% { transform: translateY(0); }
}
@keyframes sbj-walk {
  0% { transform: translateX(0) scaleY(1) rotate(0deg); }
  25% { transform: translateX(8px) scaleY(1.02) rotate(2deg); }
  50% { transform: translateX(16px) scaleY(1) rotate(0deg); }
  75% { transform: translateX(8px) scaleY(0.98) rotate(-2deg); }
  100% { transform: translateX(0) scaleY(1) rotate(0deg); }
}
@keyframes sbj-lantern {
  0% { transform: rotate(-5deg) translateX(0); }
  25% { transform: rotate(5deg) translateX(2px); }
  50% { transform: rotate(-3deg) translateX(-1px); }
  75% { transform: rotate(4deg) translateX(1px); }
  100% { transform: rotate(-5deg) translateX(0); }
}

/* van-trompe-farm – warm firelit interior with candle */
.scn-van-trompe-farm {
  background:
    linear-gradient(180deg, #3a2a1a 0%, #2a1a0a 50%, #1a0a00 100%),
    radial-gradient(ellipse at 40% 60%, #c8553d 0%, transparent 70%);
}
.scn-van-trompe-farm .room {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #5a3a2a 0%, #3a1a0a 100%);
  box-shadow: inset 0 0 40px rgba(0,0,0,.5);
}
.scn-van-trompe-farm .door {
  position: absolute; bottom: 10%; left: 10%; width: 20%; height: 70%;
  background: linear-gradient(180deg, #4a2a1a 0%, #2a1a0a 100%);
  border: 3px solid #1a0a00;
  border-radius: 4% 0 0 4%;
  box-shadow: inset -4px 0 8px rgba(0,0,0,.3);
  animation: vtf-door 2s ease-out forwards;
}
.scn-van-trompe-farm .figure-host {
  position: absolute; bottom: 8%; left: 18%; width: 12%; height: 60%;
  background: linear-gradient(180deg, #c8553d 0%, #7a2a1a 40%, #1a0a00 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  transform-origin: bottom center;
  animation: vtf-figure 4s ease-in-out infinite;
}
.scn-van-trompe-farm .candle {
  position: absolute; bottom: 50%; left: 22%; width: 3%; height: 10%;
  background: linear-gradient(180deg, #f0c060 0%, #d09030 100%);
  border-radius: 40% 40% 10% 10% / 60% 60% 20% 20%;
  box-shadow: 0 0 20px 6px rgba(240,192,96,0.5);
  animation: vtf-candle 2s ease-in-out infinite alternate;
}
.scn-van-trompe-farm .table {
  position: absolute; bottom: 5%; left: 40%; width: 25%; height: 15%;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 10% 10% 0 0;
  box-shadow: 0 4px 8px rgba(0,0,0,.4);
}
.scn-van-trompe-farm .fireplace {
  position: absolute; bottom: 25%; left: 60%; width: 30%; height: 40%;
  background: linear-gradient(180deg, #5a3a2a 0%, #3a1a0a 100%);
  border-radius: 10% 10% 0 0;
  box-shadow: inset 0 0 20px rgba(0,0,0,.5);
}
.scn-van-trompe-farm .rug {
  position: absolute; bottom: 0; left: 5%; right: 5%; height: 10%;
  background: linear-gradient(90deg, #5a4a3a 0%, #7a6a5a 30%, #5a4a3a 70%, #3a2a1a 100%);
  border-radius: 40% 40% 0 0 / 80% 80% 0 0;
  box-shadow: 0 -2px 6px rgba(0,0,0,.3);
}
.scn-van-trompe-farm .glow {
  position: absolute; inset: 0;
  background: radial-gradient(ellipse at 20% 50%, rgba(240,192,96,0.1) 0%, transparent 60%);
  animation: vtf-glow 3s ease-in-out infinite alternate;
  pointer-events: none;
}
@keyframes vtf-door {
  0% { transform: scaleX(0); opacity: 0; }
  100% { transform: scaleX(1); opacity: 1; }
}
@keyframes vtf-figure {
  0% { transform: translateY(0) rotate(0deg); }
  50% { transform: translateY(-2px) rotate(1deg); }
  100% { transform: translateY(0) rotate(0deg); }
}
@keyframes vtf-candle {
  0% { transform: scaleY(0.8) scaleX(1); opacity: .7; }
  50% { transform: scaleY(1.2) scaleX(0.9); opacity: 1; }
  100% { transform: scaleY(0.9) scaleX(1.1); opacity: .8; }
}
@keyframes vtf-glow {
  0% { opacity: .5; }
  50% { opacity: 1; }
  100% { opacity: .6; }
}

/* toms-last-morning – dim interior, dark and somber */
.scn-toms-last-morning {
  background:
    linear-gradient(180deg, #1a0a00 0%, #0a0500 40%, #050200 100%),
    radial-gradient(ellipse at 50% 40%, #2a1a0a 0%, transparent 80%);
}
.scn-toms-last-morning .cabin-wall {
  position: absolute; inset: 0 0 25% 0;
  background: linear-gradient(180deg, #2a1a0a 0%, #1a0a00 100%);
  box-shadow: inset 0 0 30px rgba(0,0,0,.6);
}
.scn-toms-last-morning .window {
  position: absolute; top: 10%; left: 50%; width: 18%; height: 20%;
  background: radial-gradient(ellipse at 50% 50%, #5a4a3a 0%, #1a1400 80%);
  border: 4px solid #0a0500;
  border-radius: 6% 6% 4% 4%;
  box-shadow: inset 0 0 20px rgba(90,74,58,0.3);
  animation: tml-window 8s ease-in-out infinite alternate;
}
.scn-toms-last-morning .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 25%;
  background: linear-gradient(0deg, #1a0a00 0%, #2a1a0a 100%);
  box-shadow: inset 0 8px 16px rgba(0,0,0,.4);
}
.scn-toms-last-morning .bench {
  position: absolute; bottom: 12%; left: 20%; width: 30%; height: 10%;
  background: linear-gradient(180deg, #3a2a1a 0%, #2a1a0a 100%);
  border-radius: 8% 8% 0 0;
  box-shadow: 0 2px 6px rgba(0,0,0,.5);
}
.scn-toms-last-morning .figure-tom {
  position: absolute; bottom: 8%; left: 25%; width: 8%; height: 20%;
  background: linear-gradient(180deg, #1a1210 0%, #0a0808 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: tml-breathe 6s ease-in-out infinite;
}
.scn-toms-last-morning .figure-chloe {
  position: absolute; bottom: 8%; left: 38%; width: 8%; height: 22%;
  background: linear-gradient(180deg, #2a1a1a 0%, #1a0a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: tml-breathe 6s ease-in-out 3s infinite;
}
.scn-toms-last-morning .dawn-light {
  position: absolute; top: 5%; left: 45%; width: 20%; height: 50%;
  background: linear-gradient(180deg, rgba(160,140,100,0.08) 0%, transparent 100%);
  clip-path: polygon(0 0, 100% 0, 80% 100%, 20% 100%);
  transform-origin: top center;
  animation: tml-dawn 10s ease-in-out infinite alternate;
}
@keyframes tml-window {
  0% { opacity: .4; box-shadow: inset 0 0 10px rgba(90,74,58,0.2); }
  50% { opacity: .7; box-shadow: inset 0 0 30px rgba(90,74,58,0.4); }
  100% { opacity: .5; box-shadow: inset 0 0 15px rgba(90,74,58,0.3); }
}
@keyframes tml-breathe {
  0% { transform: scaleY(1) translateY(0); }
  50% { transform: scaleY(1.02) translateY(-1px); }
  100% { transform: scaleY(1) translateY(0); }
}
@keyframes tml-dawn {
  0% { transform: scaleX(0.8) translateX(-5%); opacity: 0; }
  50% { transform: scaleX(1.1) translateX(0); opacity: 1; }
  100% { transform: scaleX(0.9) translateX(5%); opacity: 0.5; }
}

.scn-gentlemen-dining-p-ky { background: linear-gradient(180deg, #1a0a0a 0%, #2a1a1a 50%, #1a0a0a 100%), radial-gradient(ellipse at 50% 60%, #3a2a1a 0%, transparent 70%); }
.scn-gentlemen-dining-p-ky .bg { position:absolute; inset:0; background:linear-gradient(135deg,#0a0505 0%,#1a0a0a 50%,#0a0505 100%); animation:gd-breathe 8s ease-in-out infinite alternate; }
.scn-gentlemen-dining-p-ky .wall { position:absolute; inset:8% 4% 30% 4%; background:linear-gradient(180deg,#2a1a1a 0%,#1a0a0a 100%); border-radius:2%; box-shadow:inset 0 0 30px rgba(0,0,0,.6); }
.scn-gentlemen-dining-p-ky .table { position:absolute; bottom:12%; left:8%; right:8%; height:22%; background:linear-gradient(180deg,#4a3020 0%,#2a1a10 100%); border-radius:4% 4% 0 0; box-shadow:0 -4px 12px rgba(0,0,0,.5); }
.scn-gentlemen-dining-p-ky .figure-left { position:absolute; bottom:18%; left:15%; width:24%; height:48%; background:linear-gradient(180deg,#1a0a0a 0%,#0a0505 100%); border-radius:50% 50% 40% 40%/60% 60% 40% 40%; transform-origin:bottom center; animation:gd-sway-l 6s ease-in-out infinite; }
.scn-gentlemen-dining-p-ky .figure-right { position:absolute; bottom:18%; right:15%; width:24%; height:48%; background:linear-gradient(180deg,#1a0a0a 0%,#0a0505 100%); border-radius:50% 50% 40% 40%/60% 60% 40% 40%; transform-origin:bottom center; animation:gd-sway-r 6s ease-in-out infinite alternate; }
.scn-gentlemen-dining-p-ky .candle { position:absolute; bottom:28%; left:50%; width:5px; height:16px; transform:translateX(-50%); background:linear-gradient(180deg,#e0b060 0%,#c08040 50%,#a06030 100%); border-radius:30% 30% 10% 10%; box-shadow:0 0 20px 8px #c08040,0 0 40px 16px rgba(192,128,64,.4); animation:gd-candle 3s ease-in-out infinite alternate; }
.scn-gentlemen-dining-p-ky .glow { position:absolute; top:15%; left:25%; right:25%; bottom:15%; background:radial-gradient(ellipse at 50% 50%,rgba(192,128,64,.12) 0%,transparent 70%); animation:gd-glow 4s ease-in-out infinite alternate; }
@keyframes gd-breathe { 0%{opacity:.85} 50%{opacity:1} 100%{opacity:.8} }
@keyframes gd-sway-l { 0%{transform:translateX(0) rotate(-1deg)} 33%{transform:translateX(2px) rotate(1deg)} 66%{transform:translateX(-1px) rotate(-1deg)} 100%{transform:translateX(0) rotate(-1deg)} }
@keyframes gd-sway-r { 0%{transform:translateX(0) rotate(1deg)} 33%{transform:translateX(-2px) rotate(-1deg)} 66%{transform:translateX(1px) rotate(2deg)} 100%{transform:translateX(0) rotate(1deg)} }
@keyframes gd-candle { 0%{transform:translateX(-50%) scaleY(1)} 25%{transform:translateX(-50%) scaleY(1.06)} 50%{transform:translateX(-50%) scaleY(.94)} 75%{transform:translateX(-50%) scaleY(1.03)} 100%{transform:translateX(-50%) scaleY(1)} }
@keyframes gd-glow { 0%{opacity:.4} 50%{opacity:.7} 100%{opacity:.3} }

.scn-shelby-haley-bargain { background: linear-gradient(180deg, #0a0505 0%, #1a0a0a 40%, #2a1a1a 100%), radial-gradient(ellipse at 50% 0%, #2a1a1a 0%, transparent 60%); }
.scn-shelby-haley-bargain .bg { position:absolute; inset:0; background:linear-gradient(135deg,#0a0505 0%,#150a0a 100%); animation:shb-dark 10s ease-in-out infinite alternate; }
.scn-shelby-haley-bargain .tabletop { position:absolute; bottom:10%; left:5%; right:5%; height:30%; background:linear-gradient(180deg,#3a2a1a 0%,#2a1a0a 100%); border-radius:4% 4% 0 0; box-shadow:0 -2px 10px rgba(0,0,0,.5); }
.scn-shelby-haley-bargain .paper { position:absolute; bottom:28%; left:38%; right:38%; height:14%; background:linear-gradient(135deg,#d0c0a0 0%,#b8a888 50%,#a09070 100%); border-radius:2%; transform:rotate(-2deg); box-shadow:0 2px 6px rgba(0,0,0,.4); animation:shb-paper 12s ease-in-out infinite alternate; }
.scn-shelby-haley-bargain .hand-left { position:absolute; bottom:22%; left:22%; width:18%; height:22%; background:linear-gradient(180deg,#3a2a1a 0%,#2a1a0a 100%); border-radius:40% 40% 30% 30%/50% 50% 30% 30%; transform:rotate(10deg); transform-origin:bottom center; animation:shb-hand-l 7s ease-in-out infinite; }
.scn-shelby-haley-bargain .hand-right { position:absolute; bottom:22%; right:22%; width:18%; height:22%; background:linear-gradient(180deg,#3a2a1a 0%,#2a1a0a 100%); border-radius:40% 40% 30% 30%/50% 50% 30% 30%; transform:rotate(-10deg); transform-origin:bottom center; animation:shb-hand-r 7s ease-in-out infinite alternate; }
.scn-shelby-haley-bargain .lamp { position:absolute; top:5%; left:42%; right:42%; height:20%; background:radial-gradient(ellipse at 50% 0%,#c08040 0%,#a06030 50%,transparent 100%); border-radius:50%; box-shadow:0 0 40px 20px rgba(192,128,64,.3); animation:shb-lamp 5s ease-in-out infinite alternate; }
.scn-shelby-haley-bargain .shadow-hand { position:absolute; bottom:15%; left:10%; right:10%; height:10%; background:linear-gradient(180deg,rgba(0,0,0,.5) 0%,transparent 100%); animation:shb-shadow 7s ease-in-out infinite alternate; }
@keyframes shb-dark { 0%{opacity:.9} 50%{opacity:1} 100%{opacity:.85} }
@keyframes shb-paper { 0%{transform:rotate(-2deg) translateX(0)} 50%{transform:rotate(-1deg) translateX(2px)} 100%{transform:rotate(-3deg) translateX(-1px)} }
@keyframes shb-hand-l { 0%{transform:rotate(10deg) translateX(0)} 33%{transform:rotate(12deg) translateX(3px)} 66%{transform:rotate(8deg) translateX(-2px)} 100%{transform:rotate(10deg) translateX(0)} }
@keyframes shb-hand-r { 0%{transform:rotate(-10deg) translateX(0)} 33%{transform:rotate(-12deg) translateX(-3px)} 66%{transform:rotate(-8deg) translateX(2px)} 100%{transform:rotate(-10deg) translateX(0)} }
@keyframes shb-lamp { 0%{opacity:.6;transform:scaleY(1)} 50%{opacity:.9;transform:scaleY(1.05)} 100%{opacity:.5;transform:scaleY(.95)} }
@keyframes shb-shadow { 0%{opacity:.5} 50%{opacity:.7} 100%{opacity:.4} }

.scn-harry-entertains { background: linear-gradient(180deg, #1a0a0a 0%, #2a1a1a 40%, #3a2a1a 100%), radial-gradient(ellipse at 50% 100%, #3a2a1a 0%, transparent 70%); }
.scn-harry-entertains .bg { position:absolute; inset:0; background:linear-gradient(135deg,#1a0a0a 0%,#2a1a1a 50%,#1a0a0a 100%); animation:he-dim 12s ease-in-out infinite alternate; }
.scn-harry-entertains .floor { position:absolute; bottom:0; left:0; right:0; height:20%; background:linear-gradient(180deg,#3a2a1a 0%,#1a0a0a 100%); border-radius:10% 10% 0 0; box-shadow:inset 0 6px 12px rgba(0,0,0,.4); }
.scn-harry-entertains .harry { position:absolute; bottom:16%; left:42%; width:18%; height:40%; background:linear-gradient(180deg,#2a1a1a 0%,#0a0505 100%); border-radius:50% 50% 40% 40%/60% 60% 40% 40%; transform-origin:bottom center; animation:he-dance 1.5s ease-in-out infinite; }
.scn-harry-entertains .master { position:absolute; bottom:18%; right:12%; width:22%; height:38%; background:linear-gradient(180deg,#3a2a1a 0%,#1a0a0a 100%); border-radius:50% 50% 40% 40%/60% 60% 40% 40%; transform-origin:bottom center; animation:he-laugh 4s ease-in-out infinite; }
.scn-harry-entertains .shadow-dance { position:absolute; bottom:5%; left:30%; right:30%; height:30%; background:radial-gradient(ellipse at 50% 100%,rgba(0,0,0,.5) 0%,transparent 70%); animation:he-shadow 1.5s ease-in-out infinite; }
.scn-harry-entertains .lamp { position:absolute; top:8%; left:45%; right:45%; height:15%; background:radial-gradient(ellipse at 50% 0%,#e0b060 0%,#c08040 50%,transparent 100%); border-radius:50%; box-shadow:0 0 30px 12px rgba(192,128,64,.25); animation:he-lamp 6s ease-in-out infinite alternate; }
.scn-harry-entertains .sparkle { position:absolute; top:20%; left:30%; right:30%; height:40%; background:radial-gradient(circle at 50% 50%,rgba(224,176,96,.15) 0%,transparent 60%); animation:he-sparkle 2s ease-in-out infinite; }
@keyframes he-dim { 0%{opacity:.9} 50%{opacity:1} 100%{opacity:.85} }
@keyframes he-dance { 0%{transform:translateX(0) rotate(-4deg) scaleY(1)} 25%{transform:translateX(8px) rotate(3deg) scaleY(1.02)} 50%{transform:translateX(-4px) rotate(-5deg) scaleY(.98)} 75%{transform:translateX(6px) rotate(4deg) scaleY(1.01)} 100%{transform:translateX(0) rotate(-4deg) scaleY(1)} }
@keyframes he-laugh { 0%{transform:rotate(0) scaleY(1)} 25%{transform:rotate(2deg) scaleY(1.02)} 50%{transform:rotate(-1deg) scaleY(.98)} 75%{transform:rotate(1deg) scaleY(1.01)} 100%{transform:rotate(0) scaleY(1)} }
@keyframes he-shadow { 0%{transform:scaleX(1) scaleY(1);opacity:.5} 25%{transform:scaleX(1.1) scaleY(1.05);opacity:.6} 50%{transform:scaleX(.9) scaleY(.95);opacity:.4} 75%{transform:scaleX(1.05) scaleY(1.02);opacity:.55} 100%{transform:scaleX(1) scaleY(1);opacity:.5} }
@keyframes he-lamp { 0%{opacity:.6} 50%{opacity:.9} 100%{opacity:.5} }
@keyframes he-sparkle { 0%{opacity:.3;transform:scale(.9)} 50%{opacity:.7;transform:scale(1.1)} 100%{opacity:.2;transform:scale(.8)} }

.scn-eliza-enters { background: linear-gradient(180deg, #0a0505 0%, #1a0a0a 50%, #2a1a1a 100%), radial-gradient(ellipse at 50% 30%, #2a1a1a 0%, transparent 60%); }
.scn-eliza-enters .bg { position:absolute; inset:0; background:linear-gradient(135deg,#0a0505 0%,#150a0a 50%,#0a0505 100%); animation:ee-dark 9s ease-in-out infinite alternate; }
.scn-eliza-enters .doorframe { position:absolute; inset:5% 28% 0 28%; border:4px solid #2a1a1a; border-bottom:none; background:linear-gradient(180deg,#1a0a0a 0%,#0a0505 100%); box-shadow:inset 0 0 20px rgba(0,0,0,.6); }
.scn-eliza-enters .eliza { position:absolute; bottom:10%; left:42%; width:16%; height:55%; background:linear-gradient(180deg,#2a1a1a 0%,#0a0505 100%); border-radius:50% 50% 40% 40%/60% 60% 40% 40%; transform-origin:bottom center; animation:ee-enter 8s ease-in-out infinite; }
.scn-eliza-enters .light { position:absolute; top:10%; left:35%; right:35%; bottom:30%; background:radial-gradient(ellipse at 50% 50%,rgba(192,128,64,.1) 0%,transparent 70%); animation:ee-light 6s ease-in-out infinite alternate; }
.scn-eliza-enters .child { position:absolute; bottom:12%; left:50%; width:12%; height:30%; background:linear-gradient(180deg,#2a1a1a 0%,#0a0505 100%); border-radius:50% 50% 40% 40%/60% 60% 40% 40%; transform-origin:bottom center; animation:ee-child 6s ease-in-out infinite alternate; }
.scn-eliza-enters .shadow { position:absolute; bottom:0; left:30%; right:30%; height:15%; background:linear-gradient(180deg,rgba(0,0,0,.6) 0%,transparent 100%); animation:ee-shadow 8s ease-in-out infinite alternate; }
.scn-eliza-enters .rug { position:absolute; bottom:0; left:20%; right:20%; height:6%; background:linear-gradient(90deg,#3a2a1a 0%,#4a3a2a 50%,#3a2a1a 100%); border-radius:20% 20% 0 0; box-shadow:0 -2px 6px rgba(0,0,0,.3); }
@keyframes ee-dark { 0%{opacity:.9} 50%{opacity:1} 100%{opacity:.85} }
@keyframes ee-enter { 0%{transform:translateX(-10px) rotate(-2deg);opacity:.7} 25%{transform:translateX(0) rotate(0);opacity:.9} 50%{transform:translateX(2px) rotate(1deg);opacity:1} 75%{transform:translateX(-1px) rotate(-1deg);opacity:.95} 100%{transform:translateX(-10px) rotate(-2deg);opacity:.7} }
@keyframes ee-light { 0%{opacity:.4} 50%{opacity:.8} 100%{opacity:.3} }
@keyframes ee-child { 0%{transform:translateX(0) rotate(0)} 50%{transform:translateX(4px) rotate(2deg)} 100%{transform:translateX(0) rotate(0)} }
@keyframes ee-shadow { 0%{opacity:.4;transform:scaleX(1)} 50%{opacity:.6;transform:scaleX(1.05)} 100%{opacity:.3;transform:scaleX(.95)} }

.scn-eva-topsy-conversation { background: linear-gradient(180deg, #fdf5e6 0%, #f5e6c8 100%), radial-gradient(ellipse at 50% 100%, #fff8e0 0%, transparent 60%); }
.scn-eva-topsy-conversation .room-wall { position:absolute; inset:0 0 40% 0; background: linear-gradient(180deg, #fff3d0 0%, #f0d9a0 100%); }
.scn-eva-topsy-conversation .floor { position:absolute; bottom:0; left:0; right:0; height:40%; background: linear-gradient(180deg, #c8a07a 0%, #a07a5a 100%); }
.scn-eva-topsy-conversation .window { position:absolute; top:5%; left:20%; width:30%; height:40%; background: radial-gradient(ellipse at center, #fff8d0 0%, #d0c090 100%); border:4px solid #8a7040; box-shadow: 0 0 40px 10px #fff8d0; animation: et-window 6s ease-in-out infinite alternate; }
.scn-eva-topsy-conversation .table { position:absolute; bottom:30%; left:35%; width:20%; height:8%; background: linear-gradient(180deg, #8a6030 0%, #604020 100%); border-radius: 10% 10% 0 0; }
.scn-eva-topsy-conversation .eva { position:absolute; bottom:35%; left:40%; width:8%; height:25%; background: linear-gradient(180deg, #f0d098 0%, #d0a868 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: et-eva 4s ease-in-out infinite; }
.scn-eva-topsy-conversation .topsy { position:absolute; bottom:35%; left:52%; width:6%; height:20%; background: linear-gradient(180deg, #5a3a1a 0%, #3a2a0a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: et-topsy 4s ease-in-out infinite reverse; }
.scn-eva-topsy-conversation .candy-jar { position:absolute; bottom:38%; left:43%; width:4%; height:3%; background: radial-gradient(circle, #ffd080 0%, #c08040 100%); border-radius: 30%; box-shadow: 0 0 10px 2px #c08040; animation: et-candy 2s ease-in-out infinite; }
@keyframes et-window { 0% { opacity:0.8; transform:scale(1); } 50% { opacity:1; transform:scale(1.02); } 100% { opacity:0.9; transform:scale(1); } }
@keyframes et-eva { 0% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-2px) rotate(2deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes et-topsy { 0% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-1px) rotate(-1deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes et-candy { 0% { transform: scale(1); opacity:0.7; } 50% { transform: scale(1.1); opacity:1; } 100% { transform: scale(1); opacity:0.7; } }

.scn-eva-cuts-hair { background: linear-gradient(180deg, #1a1a3e 0%, #2a1a3e 50%, #1a1a2e 100%), radial-gradient(ellipse at 30% 50%, #2a1a3e 0%, transparent 70%); }
.scn-eva-cuts-hair .bg-dark { position:absolute; inset:0; background: linear-gradient(180deg, #15152a 0%, #0a0a1a 100%); }
.scn-eva-cuts-hair .bed { position:absolute; bottom:20%; left:10%; right:10%; height:25%; background: linear-gradient(180deg, #3a2a3a 0%, #1a1a2a 100%); border-radius: 20% 20% 0 0; }
.scn-eva-cuts-hair .eva { position:absolute; bottom:30%; left:30%; width:12%; height:20%; background: linear-gradient(180deg, #d0a0a0 0%, #b08080 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: ech-eva 5s ease-in-out infinite; }
.scn-eva-cuts-hair .mother { position:absolute; bottom:25%; left:50%; width:10%; height:28%; background: linear-gradient(180deg, #4a3a3a 0%, #2a1a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: ech-mother 6s ease-in-out infinite; }
.scn-eva-cuts-hair .ophelia { position:absolute; bottom:25%; left:65%; width:10%; height:28%; background: linear-gradient(180deg, #3a4a3a 0%, #1a2a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: ech-ophelia 7s ease-in-out infinite; }
.scn-eva-cuts-hair .scissors { position:absolute; bottom:45%; left:35%; width:6%; height:4%; background: linear-gradient(90deg, #a0a0a0 0%, #606060 50%, #a0a0a0 100%); border-radius: 20% 20% 20% 20%; transform: rotate(30deg); animation: ech-scissors 2s ease-in-out infinite alternate; }
.scn-eva-cuts-hair .hair-lock { position:absolute; bottom:45%; left:42%; width:2%; height:10%; background: linear-gradient(180deg, #d0b080 0%, #b08060 100%); border-radius: 0 0 50% 50%; animation: ech-hair 3s ease-in-out infinite; }
.scn-eva-cuts-hair .candle { position:absolute; bottom:40%; left:15%; width:2%; height:6%; background: linear-gradient(180deg, #ffd080 0%, #c08040 100%); border-radius: 30% 30% 0 0; box-shadow: 0 0 20px 5px #c08040; animation: ech-candle 1s ease-in-out infinite alternate; }
@keyframes ech-eva { 0% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-3px) rotate(2deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes ech-mother { 0% { transform: translateY(0) rotate(-1deg); } 50% { transform: translateY(-2px) rotate(1deg); } 100% { transform: translateY(0) rotate(-1deg); } }
@keyframes ech-ophelia { 0% { transform: translateX(0) rotate(0deg); } 50% { transform: translateX(-5px) rotate(-2deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes ech-scissors { 0% { transform: rotate(20deg); } 50% { transform: rotate(40deg); } 100% { transform: rotate(20deg); } }
@keyframes ech-hair { 0% { opacity:1; height:10%; } 50% { opacity:0.8; height:8%; } 100% { opacity:1; height:10%; } }
@keyframes ech-candle { 0% { transform: scaleY(1); opacity:0.8; } 50% { transform: scaleY(1.1); opacity:1; } 100% { transform: scaleY(1); opacity:0.8; } }

.scn-evas-farewell-to-servants { background: linear-gradient(180deg, #fff8e0 0%, #f0e0c0 100%), radial-gradient(ellipse at 30% 30%, #fff8e0 0%, transparent 80%); }
.scn-evas-farewell-to-servants .room { position:absolute; inset:0; background: linear-gradient(180deg, #f0e0c0 0%, #d0c0a0 100%); }
.scn-evas-farewell-to-servants .window { position:absolute; top:10%; left:10%; width:40%; height:50%; background: radial-gradient(ellipse, #fff8e0 0%, #d0c090 100%); border: 6px solid #8a7040; box-shadow: 0 0 60px 20px #fff8e0; animation: efs-window 8s ease-in-out infinite alternate; }
.scn-evas-farewell-to-servants .sunbeam { position:absolute; top:10%; left:10%; width:30%; height:60%; background: linear-gradient(180deg, rgba(255,248,224,0.4) 0%, transparent 100%); transform: skewX(-10deg); animation: efs-sunbeam 10s ease-in-out infinite; }
.scn-evas-farewell-to-servants .eva { position:absolute; bottom:30%; left:45%; width:10%; height:30%; background: linear-gradient(180deg, #e0c898 0%, #c0a878 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: efs-eva 6s ease-in-out infinite; }
.scn-evas-farewell-to-servants .servants { position:absolute; bottom:20%; left:20%; width:12%; height:20%; background: linear-gradient(180deg, #7a5a3a 0%, #4a2a1a 100%); border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%; animation: efs-servant1 4s ease-in-out infinite; }
.scn-evas-farewell-to-servants .servant2 { position:absolute; bottom:20%; left:60%; width:12%; height:20%; background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%); border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%; animation: efs-servant2 5s ease-in-out infinite reverse; }
.scn-evas-farewell-to-servants .cross { position:absolute; top:15%; left:75%; width:2%; height:10%; background: #8a7040; transform: rotate(15deg); box-shadow: 0 0 10px 2px #8a7040; animation: efs-cross 3s ease-in-out infinite; }
.scn-evas-farewell-to-servants .halo { position:absolute; top:15%; left:48%; width:4%; height:4%; background: radial-gradient(circle, #fff8e0 0%, transparent 100%); border-radius: 50%; animation: efs-halo 4s ease-in-out infinite alternate; }
@keyframes efs-window { 0% { opacity:0.9; transform:scale(1); } 50% { opacity:1; transform:scale(1.03); } 100% { opacity:0.95; transform:scale(1); } }
@keyframes efs-sunbeam { 0% { opacity:0.3; transform:skewX(-10deg) scaleX(1); } 50% { opacity:0.6; transform:skewX(-5deg) scaleX(1.1); } 100% { opacity:0.3; transform:skewX(-10deg) scaleX(1); } }
@keyframes efs-eva { 0% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-3px) rotate(2deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes efs-servant1 { 0% { transform: translateY(0) scaleY(1); } 50% { transform: translateY(-2px) scaleY(0.98); } 100% { transform: translateY(0) scaleY(1); } }
@keyframes efs-servant2 { 0% { transform: translateY(0) scaleY(1); } 50% { transform: translateY(-2px) scaleY(0.98); } 100% { transform: translateY(0) scaleY(1); } }
@keyframes efs-cross { 0% { transform: rotate(15deg) scale(1); } 50% { transform: rotate(20deg) scale(1.1); } 100% { transform: rotate(15deg) scale(1); } }
@keyframes efs-halo { 0% { opacity:0.6; transform: scale(1); } 50% { opacity:1; transform: scale(1.2); } 100% { opacity:0.6; transform: scale(1); } }

.scn-st-clare-doubt { background: linear-gradient(180deg, #1a1a2e 0%, #0a0a1a 100%), radial-gradient(ellipse at 40% 60%, #2a1a2e 0%, transparent 70%); }
.scn-st-clare-doubt .bg-interior { position:absolute; inset:0; background: linear-gradient(180deg, #1a1a2e 0%, #0a0a1a 100%); }
.scn-st-clare-doubt .lamp { position:absolute; top:30%; left:20%; width:4%; height:8%; background: radial-gradient(circle, #ffd080 0%, #c08040 100%); border-radius: 50% 50% 0 0; box-shadow: 0 0 40px 15px #c08040; animation: scd-lamp 3s ease-in-out infinite alternate; }
.scn-st-clare-doubt .st-clare { position:absolute; bottom:25%; left:30%; width:12%; height:30%; background: linear-gradient(180deg, #3a2a3a 0%, #1a1a2a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: scd-stclare 5s ease-in-out infinite; }
.scn-st-clare-doubt .tom { position:absolute; bottom:10%; left:45%; width:10%; height:25%; background: linear-gradient(180deg, #2a1a1a 0%, #0a0a0a 100%); border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%; animation: scd-tom 4s ease-in-out infinite; }
.scn-st-clare-doubt .table { position:absolute; bottom:20%; left:25%; width:20%; height:5%; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius: 10% 10% 0 0; }
.scn-st-clare-doubt .bible { position:absolute; bottom:22%; left:30%; width:3%; height:4%; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius: 10%; transform: rotate(-10deg); }
.scn-st-clare-doubt .tear { position:absolute; bottom:45%; left:35%; width:1%; height:2%; background: radial-gradient(circle, #a0b0ff 0%, transparent 100%); border-radius: 50%; animation: scd-tear 2s ease-in-out infinite; }
@keyframes scd-lamp { 0% { transform: scaleY(1) rotate(-2deg); opacity:0.8; } 50% { transform: scaleY(1.05) rotate(2deg); opacity:1; } 100% { transform: scaleY(1) rotate(-2deg); opacity:0.8; } }
@keyframes scd-stclare { 0% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-2px) rotate(2deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes scd-tom { 0% { transform: translateY(0) scaleY(1); } 50% { transform: translateY(-2px) scaleY(0.98); } 100% { transform: translateY(0) scaleY(1); } }
@keyframes scd-tear { 0% { opacity:0; transform: translateY(0) scale(1); } 50% { opacity:1; transform: translateY(-5px) scale(1.2); } 100% { opacity:0; transform: translateY(-10px) scale(0.8); } }

.scn-quaker-council { background: radial-gradient(ellipse at 50% 30%, #4a2a1a 0%, #1a0a0a 100%), linear-gradient(180deg, #2c1a0e, #1a0a0a); }
.scn-quaker-council .room-bg { position:absolute; inset:0; background: linear-gradient(180deg, #2c1a0e 0%, #1a0a0a 100%); }
.scn-quaker-council .fire { position:absolute; bottom:5%; left:20%; width:60px; height:100px; background: radial-gradient(ellipse at bottom, #ff8c42 0%, #c8553d 60%, transparent 100%); border-radius: 50% 50% 20% 20%; animation: qc-fire .6s ease-in-out infinite alternate; }
.scn-quaker-council .glow { position:absolute; bottom:0; left:0; width:100%; height:50%; background: radial-gradient(ellipse at 20% 100%, #ff8c42 0%, transparent 70%); animation: qc-glow 2s ease-in-out infinite alternate; opacity:.6; }
.scn-quaker-council .figure-1 { position:absolute; bottom:15%; left:35%; width:30px; height:70px; background: linear-gradient(180deg, #2a1a0e, #0a0a0a); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: qc-breath 2s ease-in-out infinite; }
.scn-quaker-council .figure-2 { position:absolute; bottom:12%; left:50%; width:28px; height:65px; background: linear-gradient(180deg, #3a2a1a, #1a0a0a); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: qc-breath 2s ease-in-out infinite reverse; }
.scn-quaker-council .figure-3 { position:absolute; bottom:10%; left:65%; width:26px; height:60px; background: linear-gradient(180deg, #4a3a2a, #2a1a0a); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: qc-breath 2.2s ease-in-out infinite; }
.scn-quaker-council .shadow { position:absolute; bottom:0; left:30%; width:40%; height:15%; background: radial-gradient(ellipse at center, rgba(0,0,0,.8) 0%, transparent 100%); animation: qc-shadow 1.5s ease-in-out infinite alternate; }
@keyframes qc-fire { 0%{transform: scaleY(1) scaleX(1);} 50%{transform: scaleY(1.1) scaleX(0.95);} 100%{transform: scaleY(0.95) scaleX(1);} }
@keyframes qc-glow { 0%{opacity:.4;} 50%{opacity:.7;} 100%{opacity:.5;} }
@keyframes qc-breath { 0%{transform: translateY(0) rotate(-1deg);} 50%{transform: translateY(-3px) rotate(1deg);} 100%{transform: translateY(0) rotate(0);} }
@keyframes qc-shadow { 0%{opacity:.5;} 50%{opacity:.8;} 100%{opacity:.6;} }

.scn-flight-in-wagon { background: linear-gradient(180deg, #0a0a2e 0%, #1a1a4e 100%), radial-gradient(ellipse at 50% 20%, #2a2a5e 0%, transparent 80%); }
.scn-flight-in-wagon .sky { position:absolute; inset:0; background: linear-gradient(180deg, #0a0a2e 0%, #1a1a4e 100%); }
.scn-flight-in-wagon .stars { position:absolute; inset:0; background: radial-gradient(2px 2px at 20% 30%, #fff 0%, transparent 100%) no-repeat, radial-gradient(1px 1px at 50% 10%, #fff 0%, transparent 100%) no-repeat, radial-gradient(1.5px 1.5px at 70% 40%, #fff 0%, transparent 100%) no-repeat, radial-gradient(1px 1px at 90% 20%, #fff 0%, transparent 100%) no-repeat; animation: fiw-stars 3s ease-in-out infinite alternate; }
.scn-flight-in-wagon .wagon { position:absolute; bottom:20%; left:40%; width:100px; height:60px; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0e 100%); border-radius: 10% 10% 20% 20%; animation: fiw-bounce 1.5s ease-in-out infinite; }
.scn-flight-in-wagon .wheel { position:absolute; bottom:15%; left:45%; width:30px; height:30px; background: radial-gradient(circle, #3a2a1a 0%, #1a0a0a 100%); border-radius:50%; border: 3px solid #1a0a0a; animation: fiw-spin 3s linear infinite; }
.scn-flight-in-wagon .mother { position:absolute; bottom:30%; left:45%; width:24px; height:55px; background: linear-gradient(180deg, #2a1a0e, #0a0a0a); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: fiw-sway 2s ease-in-out infinite; }
.scn-flight-in-wagon .child { position:absolute; bottom:25%; left:48%; width:16px; height:30px; background: linear-gradient(180deg, #3a2a1a, #1a0a0a); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: fiw-sway 2.5s ease-in-out infinite reverse; }
.scn-flight-in-wagon .trees { position:absolute; bottom:10%; left:0; width:100%; height:30%; background: linear-gradient(180deg, #1a2a1a 0%, #0a1a0a 100%); filter: blur(2px); animation: fiw-trees 10s linear infinite; }
@keyframes fiw-stars { 0%{opacity:.5;} 50%{opacity:1;} 100%{opacity:.6;} }
@keyframes fiw-bounce { 0%{transform: translateY(0);} 50%{transform: translateY(-5px);} 100%{transform: translateY(0);} }
@keyframes fiw-spin { 0%{transform: rotate(0);} 100%{transform: rotate(360deg);} }
@keyframes fiw-sway { 0%{transform: translateX(0) rotate(0);} 50%{transform: translateX(4px) rotate(2deg);} 100%{transform: translateX(0) rotate(0);} }
@keyframes fiw-trees { 0%{transform: translateX(0);} 100%{transform: translateX(-20%);} }

.scn-fight-at-rocks { background: linear-gradient(180deg, #4a3a5e 0%, #7a5a7e 30%, #c8a060 70%, #e8c060 100%), radial-gradient(ellipse at 30% 20%, #e8c060 0%, transparent 80%); }
.scn-fight-at-rocks .sky { position:absolute; inset:0 0 40% 0; background: linear-gradient(180deg, #4a3a5e 0%, #c8a060 100%); }
.scn-fight-at-rocks .sun { position:absolute; top:10%; left:30%; width:40px; height:40px; background: radial-gradient(circle, #ffd060 0%, #ffa040 50%, transparent 100%); border-radius:50%; animation: far-sun 20s linear infinite; }
.scn-fight-at-rocks .rock-left { position:absolute; bottom:10%; left:5%; width:80px; height:120px; background: linear-gradient(135deg, #5a4a3a 0%, #2a1a0a 100%); border-radius: 20% 40% 10% 30%; animation: far-rock 5s ease-in-out infinite alternate; }
.scn-fight-at-rocks .rock-right { position:absolute; bottom:15%; right:5%; width:100px; height:100px; background: linear-gradient(-135deg, #4a3a2a 0%, #1a0a0a 100%); border-radius: 40% 20% 30% 10%; animation: far-rock 6s ease-in-out infinite alternate reverse; }
.scn-fight-at-rocks .figure-george { position:absolute; bottom:12%; left:40%; width:30px; height:70px; background: linear-gradient(180deg, #2a1a0e, #0a0a0a); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: far-tense .5s ease-in-out infinite; }
.scn-fight-at-rocks .figure-opponent { position:absolute; bottom:10%; right:35%; width:35px; height:75px; background: linear-gradient(180deg, #4a3a2a, #1a0a0a); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: far-tense .6s ease-in-out infinite reverse; }
.scn-fight-at-rocks .ground { position:absolute; bottom:0; left:-10%; width:120%; height:15%; background: linear-gradient(180deg, #6a5a4a 0%, #3a2a1a 100%); border-radius: 50% 50% 0 0 / 100% 100% 0 0; }
.scn-fight-at-rocks .dust { position:absolute; bottom:12%; left:0; width:100%; height:10%; background: radial-gradient(ellipse at 50% 50%, rgba(200,160,100,.3) 0%, transparent 100%); filter: blur(4px); animation: far-dust 2s ease-in-out infinite alternate; }
@keyframes far-sun { 0%{transform: translateX(-20px) scale(1);} 50%{transform: translateX(20px) scale(1.05);} 100%{transform: translateX(-20px) scale(1);} }
@keyframes far-rock { 0%{transform: translateY(0) rotate(-2deg);} 50%{transform: translateY(-5px) rotate(2deg);} 100%{transform: translateY(0) rotate(-1deg);} }
@keyframes far-tense { 0%{transform: translateX(0) scale(1);} 50%{transform: translateX(2px) scale(1.02);} 100%{transform: translateX(0) scale(1);} }
@keyframes far-dust { 0%{opacity:.3; transform: scaleY(1);} 50%{opacity:.6; transform: scaleY(1.2);} 100%{opacity:.2; transform: scaleY(.9);} }

.scn-fight-aftermath { background: linear-gradient(180deg, #6a5a4e 0%, #8a7a6e 40%, #c8b0a0 70%, #e8d0c0 100%), radial-gradient(ellipse at 50% 50%, #e8d0c0 0%, transparent 80%); }
.scn-fight-aftermath .sky { position:absolute; inset:0 0 40% 0; background: linear-gradient(180deg, #6a5a4e 0%, #c8b0a0 100%); }
.scn-fight-aftermath .ground { position:absolute; bottom:0; left:-10%; width:120%; height:20%; background: linear-gradient(180deg, #8a7a6e 0%, #4a3a2a 100%); border-radius: 40% 60% 0 0 / 80% 70% 0 0; }
.scn-fight-aftermath .tom { position:absolute; bottom:15%; left:40%; width:40px; height:80px; background: linear-gradient(180deg, #4a3a2a, #1a0a0a); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform: rotate(-15deg); animation: faf-twitch 4s ease-in-out infinite; }
.scn-fight-aftermath .helper-1 { position:absolute; bottom:20%; left:50%; width:28px; height:65px; background: linear-gradient(180deg, #5a4a3a, #2a1a0a); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: faf-lift 5s ease-in-out infinite; }
.scn-fight-aftermath .helper-2 { position:absolute; bottom:18%; right:30%; width:30px; height:70px; background: linear-gradient(180deg, #6a5a4a, #3a2a1a); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: faf-lift 5.5s ease-in-out infinite reverse; }
.scn-fight-aftermath .blood { position:absolute; bottom:10%; left:45%; width:20px; height:8px; background: radial-gradient(ellipse, #7a2a1a 0%, transparent 100%); border-radius:50%; filter: blur(2px); animation: faf-blood 8s ease-in-out infinite alternate; }
.scn-fight-aftermath .wagon-seat { position:absolute; bottom:5%; left:30%; width:80px; height:15px; background: linear-gradient(90deg, #5a4a3a 0%, #3a2a1a 100%); border-radius: 10%; }
@keyframes faf-twitch { 0%{transform: rotate(-15deg) scale(1);} 25%{transform: rotate(-13deg) scale(1.02);} 50%{transform: rotate(-15deg) scale(1);} 75%{transform: rotate(-17deg) scale(0.98);} 100%{transform: rotate(-15deg) scale(1);} }
@keyframes faf-lift { 0%{transform: translateY(0) rotate(0);} 50%{transform: translateY(-3px) rotate(3deg);} 100%{transform: translateY(0) rotate(0);} }
@keyframes faf-blood { 0%{opacity:.3; transform: scale(1);} 50%{opacity:.6; transform: scale(1.5);} 100%{opacity:.4; transform: scale(1);} }

.scn-haley-proposes-buy-harry {
  background: linear-gradient(180deg, #110c0a 0%, #2a1e14 50%, #1a120e 100%), radial-gradient(ellipse at 70% 60%, #3a2a1a 0%, transparent 70%);
}
.scn-haley-proposes-buy-harry .bg-wall { position:absolute; inset:0 0 0% 0; background: linear-gradient(180deg, rgba(40,30,20,0.8) 0%, rgba(20,15,10,0.9) 100%); }
.scn-haley-proposes-buy-harry .table { position:absolute; bottom:5%; left:15%; width:70%; height:20%; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a10 100%); border-radius: 4px 4px 0 0; box-shadow: 0 -4px 8px rgba(0,0,0,0.5); }
.scn-haley-proposes-buy-harry .bottle { position:absolute; bottom:20%; left:35%; width:8%; height:30%; background: linear-gradient(180deg, #3a2a1a 0%, #2a1a0a 100%); border-radius: 20% 20% 10% 10%; transform-origin: bottom center; animation: h1-bottle 6s ease-in-out infinite; }
.scn-haley-proposes-buy-harry .glass1 { position:absolute; bottom:18%; left:30%; width:6%; height:15%; background: linear-gradient(180deg, rgba(180,160,140,0.3) 0%, rgba(180,160,140,0.1) 100%); border-radius: 5% 5% 15% 15%; border: 1px solid rgba(200,180,160,0.2); }
.scn-haley-proposes-buy-harry .glass2 { position:absolute; bottom:18%; left:45%; width:6%; height:15%; background: linear-gradient(180deg, rgba(180,160,140,0.3) 0%, rgba(180,160,140,0.1) 100%); border-radius: 5% 5% 15% 15%; border: 1px solid rgba(200,180,160,0.2); }
.scn-haley-proposes-buy-harry .figure-left { position:absolute; bottom:15%; left:10%; width:12%; height:50%; background: linear-gradient(180deg, #1a1410 0%, #0f0a08 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: h1-figureL 5s ease-in-out infinite; }
.scn-haley-proposes-buy-harry .figure-right { position:absolute; bottom:15%; right:10%; width:12%; height:55%; background: linear-gradient(180deg, #1a1410 0%, #0f0a08 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: h1-figureR 7s ease-in-out infinite 1s; }
.scn-haley-proposes-buy-harry .lantern { position:absolute; bottom:35%; left:52%; width:5%; height:5%; background: radial-gradient(circle, #c08040 0%, #804020 100%); border-radius: 50%; box-shadow: 0 0 20px 10px rgba(192,128,64,0.5), 0 0 40px 20px rgba(192,128,64,0.2); animation: h1-lantern 0.5s ease-in-out infinite alternate; }
@keyframes h1-lantern { 0% { box-shadow: 0 0 15px 8px rgba(192,128,64,0.4); opacity:0.9 } 30% { box-shadow: 0 0 25px 12px rgba(192,128,64,0.6); opacity:1 } 60% { box-shadow: 0 0 12px 5px rgba(192,128,64,0.3); opacity:0.85 } 100% { box-shadow: 0 0 18px 9px rgba(192,128,64,0.5); opacity:0.95 } }
@keyframes h1-bottle { 0%,100% { transform: rotate(0deg) translateY(0) } 50% { transform: rotate(2deg) translateY(-2px) } }
@keyframes h1-figureL { 0%,100% { transform: translateX(0) rotate(0deg) } 25% { transform: translateX(2px) rotate(1deg) } 50% { transform: translateX(0) rotate(-1deg) } 75% { transform: translateX(-2px) rotate(0deg) } }
@keyframes h1-figureR { 0%,100% { transform: translateX(0) rotate(0deg) } 30% { transform: translateX(-3px) rotate(1deg) } 60% { transform: translateX(2px) rotate(-1deg) } }

.scn-haley-presses-sale {
  background: linear-gradient(180deg, #1a1410 0%, #221a14 50%, #1a1410 100%), radial-gradient(ellipse at 50% 70%, #2a1e14 0%, transparent 70%);
}
.scn-haley-presses-sale .bg-room { position:absolute; inset:0 0 0% 0; background: linear-gradient(180deg, rgba(30,20,15,0.9) 0%, rgba(10,5,5,0.95) 100%); }
.scn-haley-presses-sale .desk { position:absolute; bottom:10%; left:10%; width:80%; height:25%; background: linear-gradient(180deg, #3a2a1a 0%, #1a0e08 100%); border-radius: 4px; box-shadow: 0 -6px 12px rgba(0,0,0,0.5); }
.scn-haley-presses-sale .document { position:absolute; bottom:28%; left:45%; width:15%; height:10%; background: linear-gradient(135deg, #d4c4a0 0%, #b8a88a 50%, #a09878 100%); transform: rotate(-5deg); border-radius: 2px; animation: h2-doc 4s ease-in-out infinite alternate; }
.scn-haley-presses-sale .candle { position:absolute; bottom:30%; left:20%; width:3%; height:18%; background: linear-gradient(180deg, #e0c080 0%, #c0a060 100%); border-radius: 10% 10% 5% 5%; transform-origin: bottom center; animation: h2-candle 1s ease-in-out infinite alternate; }
.scn-haley-presses-sale .hand { position:absolute; bottom:25%; right:25%; width:10%; height:15%; background: linear-gradient(180deg, #2a1a14 0%, #1a0e0a 100%); border-radius: 40% 40% 20% 20% / 60% 60% 30% 30%; transform-origin: bottom right; animation: h2-hand 3s ease-in-out infinite; }
.scn-haley-presses-sale .figure-standing { position:absolute; bottom:15%; left:5%; width:12%; height:60%; background: linear-gradient(180deg, #1a1410 0%, #0f0a08 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: h2-figure 6s ease-in-out infinite; }
.scn-haley-presses-sale .shadow-desk { position:absolute; bottom:0; left:0; width:100%; height:30%; background: linear-gradient(180deg, transparent 0%, rgba(0,0,0,0.6) 100%); }
@keyframes h2-doc { 0%,100% { transform: rotate(-5deg) translateY(0) } 50% { transform: rotate(-3deg) translateY(-2px) } }
@keyframes h2-candle { 0% { transform: scaleY(1) translateY(0); background: linear-gradient(180deg, #e0c080 0%, #c0a060 100%); } 30% { transform: scaleY(1.05) translateY(-2px); background: linear-gradient(180deg, #f0d090 0%, #d0b070 100%); } 60% { transform: scaleY(0.98) translateY(1px); background: linear-gradient(180deg, #d0b070 0%, #b09050 100%); } 100% { transform: scaleY(1) translateY(0); background: linear-gradient(180deg, #e0c080 0%, #c0a060 100%); } }
@keyframes h2-hand { 0%,100% { transform: translateX(0) rotate(0deg); } 25% { transform: translateX(-5px) rotate(5deg); } 50% { transform: translateX(0) rotate(0deg); } 75% { transform: translateX(3px) rotate(-3deg); } }
@keyframes h2-figure { 0%,100% { transform: translateY(0) rotate(0deg); } 25% { transform: translateY(-3px) rotate(1deg); } 50% { transform: translateY(0) rotate(-1deg); } 75% { transform: translateY(2px) rotate(0deg); } }

.scn-haley-defends-humanity {
  background: linear-gradient(180deg, #050302 0%, #0a0604 50%, #050302 100%), radial-gradient(ellipse at 50% 30%, #1a0e08 0%, transparent 80%);
}
.scn-haley-defends-humanity .bg-cell { position:absolute; inset:0 0% 0% 0; background: linear-gradient(180deg, rgba(10,6,4,0.95) 0%, rgba(5,3,2,1) 100%); }
.scn-haley-defends-humanity .bars { position:absolute; top:0; left:0; width:100%; height:100%; background: repeating-linear-gradient(0deg, transparent 0%, transparent 10%, #3a2a1a 10%, #3a2a1a 12%, transparent 12%, transparent 50%), repeating-linear-gradient(90deg, transparent 0%, transparent 10%, #3a2a1a 10%, #3a2a1a 12%, transparent 12%, transparent 50%); opacity:0.6; }
.scn-haley-defends-humanity .window-small { position:absolute; top:15%; left:50%; width:20%; height:25%; transform:translateX(-50%); background: radial-gradient(circle, #607080 0%, #203040 100%); border-radius: 20% 20% 10% 10%; box-shadow: inset 0 0 20px rgba(100,150,200,0.1); animation: h3-window 8s ease-in-out infinite alternate; }
.scn-haley-defends-humanity .child-figure { position:absolute; bottom:20%; left:45%; width:8%; height:25%; background: linear-gradient(180deg, #1a1a1a 0%, #0a0a0a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 30% 30%; transform-origin: bottom center; animation: h3-child 2s ease-in-out infinite alternate; }
.scn-haley-defends-humanity .lock { position:absolute; top:45%; right:30%; width:6%; height:6%; background: radial-gradient(circle, #504030 0%, #201810 100%); border-radius: 50%; border: 2px solid #403020; animation: h3-lock 6s linear infinite; }
.scn-haley-defends-humanity .ground-cell { position:absolute; bottom:0; left:0; width:100%; height:10%; background: linear-gradient(180deg, #1a120e 0%, #0a0604 100%); }
@keyframes h3-window { 0%,100% { box-shadow: inset 0 0 20px rgba(100,150,200,0.1); opacity:0.9 } 50% { box-shadow: inset 0 0 40px rgba(100,150,200,0.3); opacity:1 } }
@keyframes h3-child { 0%,100% { transform: translateY(0) rotate(0deg); } 25% { transform: translateY(-2px) rotate(-2deg); } 50% { transform: translateY(0) rotate(0deg); } 75% { transform: translateY(1px) rotate(2deg); } }
@keyframes h3-lock { 0% { transform: rotate(0deg); } 25% { transform: rotate(5deg); } 50% { transform: rotate(0deg); } 75% { transform: rotate(-5deg); } 100% { transform: rotate(0deg); } }

.scn-haley-tells-tom-loker-story {
  background: linear-gradient(180deg, #0a0705 0%, #1a100c 50%, #0a0705 100%), radial-gradient(ellipse at 40% 80%, #2a1a10 0%, transparent 70%);
}
.scn-haley-tells-tom-loker-story .bg-dark-room { position:absolute; inset:0 0% 0% 0; background: linear-gradient(180deg, rgba(10,7,5,0.95) 0%, rgba(5,3,2,1) 100%); }
.scn-haley-tells-tom-loker-story .fireplace { position:absolute; bottom:5%; left:10%; width:40%; height:50%; background: linear-gradient(180deg, #2a1a10 0%, #1a0c08 100%); border-radius: 60% 60% 20% 20% / 80% 80% 20% 20%; box-shadow: inset 0 -20px 30px rgba(0,0,0,0.5); }
.scn-haley-tells-tom-loker-story .fire { position:absolute; bottom:15%; left:20%; width:20%; height:20%; background: radial-gradient(circle, #d06030 0%, #a04020 50%, #602010 100%); border-radius: 40% 40% 20% 20% / 60% 60% 40% 40%; box-shadow: 0 0 30px 15px rgba(200,80,40,0.3); animation: h4-fire 0.4s ease-in-out infinite alternate; }
.scn-haley-tells-tom-loker-story .chair { position:absolute; bottom:10%; left:55%; width:20%; height:40%; background: linear-gradient(180deg, #3a2a1a 0%, #1a0e08 100%); border-radius: 10% 10% 5% 5% / 20% 20% 10% 10%; transform: rotate(-5deg); }
.scn-haley-tells-tom-loker-story .figure-sitting { position:absolute; bottom:15%; left:58%; width:12%; height:35%; background: linear-gradient(180deg, #1a1410 0%, #0f0a08 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: h4-figure 5s ease-in-out infinite; }
.scn-haley-tells-tom-loker-story .pipe { position:absolute; bottom:35%; left:62%; width:2%; height:10%; background: linear-gradient(180deg, #402010 0%, #201008 100%); border-radius: 0 0 50% 50%; transform: rotate(30deg); transform-origin: top left; animation: h4-pipe 3s ease-in-out infinite alternate; }
.scn-haley-tells-tom-loker-story .embers { position:absolute; bottom:12%; left:15%; width:8%; height:8%; background: radial-gradient(circle, #d08040 0%, #a05020 50%, transparent 70%); box-shadow: 0 0 10px 5px #a05020; animation: h4-ember 1.5s ease-in-out infinite alternate; }
@keyframes h4-fire { 0% { transform: scale(1) translateY(0); box-shadow: 0 0 30px 15px rgba(200,80,40,0.3); } 30% { transform: scale(1.05) translateY(-2px); box-shadow: 0 0 40px 20px rgba(200,80,40,0.5); } 60% { transform: scale(0.95) translateY(2px); box-shadow: 0 0 20px 10px rgba(200,80,40,0.2); } 100% { transform: scale(1) translateY(0); box-shadow: 0 0 30px 15px rgba(200,80,40,0.3); } }
@keyframes h4-figure { 0%,100% { transform: translateY(0) rotate(0deg); } 25% { transform: translateY(-2px) rotate(1deg); } 50% { transform: translateY(0) rotate(-1deg); } 75% { transform: translateY(1px) rotate(0deg); } }
@keyframes h4-pipe { 0%,100% { transform: rotate(30deg) translateY(0); } 50% { transform: rotate(35deg) translateY(-2px); } }
@keyframes h4-ember { 0%,100% { opacity:0.6; transform: scale(1); } 50% { opacity:1; transform: scale(1.2); } }

.scn-cabin-talk-slavery { background: linear-gradient(180deg, #d4c4a0 0%, #b8a48c 100%), radial-gradient(ellipse at 50% 0, #ffe8c0 0%, transparent 60%); }
.scn-cabin-talk-slavery .floor { position: absolute; bottom: 0; left: 0; right: 0; height: 35%; background: linear-gradient(180deg, #8a7a5a 0%, #6a5a3a 100%); }
.scn-cabin-talk-slavery .wall-back { position: absolute; top: 0; left: 0; right: 0; bottom: 35%; background: linear-gradient(180deg, #d4c4a0 0%, #c0b090 100%); }
.scn-cabin-talk-slavery .window { position: absolute; top: 15%; left: 30%; width: 80px; height: 60px; background: linear-gradient(180deg, #a0c8e8 0%, #80a8c8 100%); border: 4px solid #6a5a3a; border-radius: 4px; box-shadow: inset 0 0 20px rgba(255,255,200,0.3); animation: cts-window 8s ease-in-out infinite alternate; }
.scn-cabin-talk-slavery .sunbeam { position: absolute; top: 15%; left: 30%; width: 60px; height: 120px; background: linear-gradient(135deg, rgba(255,240,200,0.4) 0%, transparent 100%); transform: rotate(20deg); transform-origin: top left; animation: cts-beam 12s ease-in-out infinite alternate; }
.scn-cabin-talk-slavery .table { position: absolute; bottom: 20%; left: 25%; width: 50%; height: 5%; background: linear-gradient(180deg, #8a7a5a 0%, #6a5a3a 100%); border-radius: 2px; box-shadow: 0 4px 8px rgba(0,0,0,0.3); }
.scn-cabin-talk-slavery .figure-speaker { position: absolute; bottom: 25%; left: 40%; width: 28px; height: 60px; background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%); border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%; transform-origin: bottom center; animation: cts-speak 4s ease-in-out infinite; }
.scn-cabin-talk-slavery .figure-listener { position: absolute; bottom: 25%; right: 30%; width: 28px; height: 60px; background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%); border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%; transform-origin: bottom center; animation: cts-listen 5s ease-in-out infinite; }
.scn-cabin-talk-slavery .shadow-soft { position: absolute; bottom: 0; left: 20%; width: 60%; height: 10%; background: radial-gradient(ellipse, rgba(0,0,0,0.3) 0%, transparent 70%); animation: cts-shadow 8s ease-in-out infinite alternate; }
@keyframes cts-window { 0% { box-shadow: inset 0 0 15px rgba(255,255,200,0.2); } 50% { box-shadow: inset 0 0 30px rgba(255,255,220,0.5); } 100% { box-shadow: inset 0 0 20px rgba(255,255,200,0.3); } }
@keyframes cts-beam { 0% { opacity: 0.6; transform: rotate(18deg) scaleX(1); } 50% { opacity: 1; transform: rotate(22deg) scaleX(1.1); } 100% { opacity: 0.7; transform: rotate(20deg) scaleX(1); } }
@keyframes cts-speak { 0% { transform: translateX(0) rotate(-2deg); } 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 cts-listen { 0% { transform: translateY(0) rotate(1deg); } 30% { transform: translateY(-1px) rotate(-1deg); } 60% { transform: translateY(0) rotate(0deg); } 100% { transform: translateY(-1px) rotate(1deg); } }
@keyframes cts-shadow { 0% { opacity: 0.3; transform: scaleX(1); } 50% { opacity: 0.5; transform: scaleX(1.1); } 100% { opacity: 0.3; transform: scaleX(1); } }

.scn-young-man-rebukes { background: linear-gradient(180deg, #87c0e8 0%, #c0d8e8 60%, #b8a88c 100%), radial-gradient(ellipse at 70% 20%, #fff8e0 0%, transparent 50%); }
.scn-young-man-rebukes .sky-harsh { position: absolute; top: 0; left: 0; right: 0; height: 60%; background: linear-gradient(180deg, #87c0e8 0%, #a0d0f0 100%); animation: ymr-sky 15s ease-in-out infinite alternate; }
.scn-young-man-rebukes .deck { position: absolute; bottom: 0; left: 0; right: 0; height: 40%; background: linear-gradient(180deg, #b8a88c 0%, #9a8a6a 100%); }
.scn-young-man-rebukes .railing { position: absolute; bottom: 35%; left: 0; right: 0; height: 2%; background: #6a5a3a; box-shadow: 0 2px 4px rgba(0,0,0,0.3); animation: ymr-rail 6s ease-in-out infinite; }
.scn-young-man-rebukes .figure-young-man { position: absolute; bottom: 20%; left: 35%; width: 30px; height: 70px; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius: 45% 45% 35% 35% / 55% 55% 35% 35%; transform-origin: bottom center; animation: ymr-rebuke 3s ease-in-out infinite; }
.scn-young-man-rebukes .figure-haley { position: absolute; bottom: 20%; right: 25%; width: 32px; height: 68px; background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%); border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%; transform-origin: bottom center; animation: ymr-flinch 4s ease-in-out infinite; }
.scn-young-man-rebukes .chains { position: absolute; bottom: 30%; left: 20%; width: 40px; height: 6px; background: linear-gradient(180deg, #6a5a4a 0%, #4a3a2a 100%); border-radius: 3px; box-shadow: 0 2px 4px rgba(0,0,0,0.4); animation: ymr-chain 7s ease-in-out infinite; }
.scn-young-man-rebukes .shadow-sharp { position: absolute; bottom: 0; left: 30%; width: 120px; height: 20%; background: linear-gradient(135deg, rgba(0,0,0,0.4) 0%, transparent 100%); animation: ymr-shadow 5s ease-in-out infinite alternate; }
.scn-young-man-rebukes .boat-edge { position: absolute; bottom: 0; right: 0; width: 20%; height: 100%; background: linear-gradient(90deg, transparent 0%, #7a6a5a 100%); }
@keyframes ymr-sky { 0% { opacity: 0.9; } 50% { opacity: 1; } 100% { opacity: 0.85; } }
@keyframes ymr-rail { 0% { transform: translateY(0); } 50% { transform: translateY(-2px); } 100% { transform: translateY(0); } }
@keyframes ymr-rebuke { 0% { transform: translateX(0) rotate(-3deg) scaleX(1); } 25% { transform: translateX(-3px) rotate(5deg) scaleX(1.05); } 50% { transform: translateX(0) rotate(2deg) scaleX(1); } 75% { transform: translateX(3px) rotate(-4deg) scaleX(0.95); } 100% { transform: translateX(0) rotate(0deg) scaleX(1); } }
@keyframes ymr-flinch { 0% { transform: translateX(0) rotate(0deg); } 30% { transform: translateX(5px) rotate(-3deg); } 60% { transform: translateX(2px) rotate(1deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes ymr-chain { 0% { transform: translateX(0) rotate(0deg); } 25% { transform: translateX(2px) rotate(5deg); } 50% { transform: translateX(0) rotate(0deg); } 75% { transform: translateX(-2px) rotate(-5deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes ymr-shadow { 0% { opacity: 0.3; transform: skewX(0deg); } 50% { opacity: 0.6; transform: skewX(-5deg); } 100% { opacity: 0.3; transform: skewX(0deg); } }

.scn-lucy-bought { background: linear-gradient(180deg, #4a5a6a 0%, #6a7a8a 40%, #2a3a4a 100%), radial-gradient(ellipse at 30% 40%, #a0b8c8 0%, transparent 60%); }
.scn-lucy-bought .sky-dark { position: absolute; top: 0; left: 0; right: 0; height: 50%; background: linear-gradient(180deg, #4a5a6a 0%, #6a7a8a 100%); animation: lbb-sky 20s ease-in-out infinite alternate; }
.scn-lucy-bought .water { position: absolute; bottom: 0; left: 0; right: 0; height: 50%; background: linear-gradient(180deg, #2a3a4a 0%, #1a2a3a 100%); animation: lbb-water 10s ease-in-out infinite; }
.scn-lucy-bought .ship-hull { position: absolute; bottom: 20%; left: 0; width: 70%; height: 30%; background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%); border-radius: 0 40% 0 0; box-shadow: 0 4px 12px rgba(0,0,0,0.5); animation: lbb-ship 14s ease-in-out infinite alternate; }
.scn-lucy-bought .pier { position: absolute; bottom: 30%; right: 0; width: 40%; height: 8%; background: linear-gradient(180deg, #6a5a4a 0%, #4a3a2a 100%); border-radius: 4px; }
.scn-lucy-bought .woman-child { position: absolute; bottom: 28%; right: 15%; width: 24px; height: 50px; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius: 45% 45% 35% 35% / 55% 55% 35% 35%; transform-origin: bottom center; animation: lbb-walk 6s ease-in-out infinite; }
.scn-lucy-bought .woman-child::after { content: ''; position: absolute; top: 30%; left: 50%; width: 12px; height: 16px; background: inherit; border-radius: 50% 50% 40% 40%; transform: translateX(-50%); }
.scn-lucy-bought .haley-buyer { position: absolute; bottom: 28%; left: 30%; width: 30px; height: 55px; background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%); border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%; transform-origin: bottom center; animation: lbb-haley 8s ease-in-out infinite; }
.scn-lucy-bought .shadow-long { position: absolute; bottom: 0; left: 10%; width: 80%; height: 15%; background: linear-gradient(135deg, rgba(0,0,0,0.5) 0%, transparent 100%); animation: lbb-shadow 12s ease-in-out infinite alternate; }
.scn-lucy-bought .post { position: absolute; bottom: 30%; left: 10%; width: 4px; height: 60px; background: #5a4a3a; box-shadow: 0 0 4px rgba(0,0,0,0.3); }
@keyframes lbb-sky { 0% { opacity: 0.7; } 50% { opacity: 1; } 100% { opacity: 0.8; } }
@keyframes lbb-water { 0% { transform: translateY(0); } 25% { transform: translateY(2px); } 50% { transform: translateY(0); } 75% { transform: translateY(-2px); } 100% { transform: translateY(0); } }
@keyframes lbb-ship { 0% { transform: translateY(0); } 50% { transform: translateY(-3px); } 100% { transform: translateY(0); } }
@keyframes lbb-walk { 0% { transform: translateX(0) rotate(-2deg); } 20% { transform: translateX(5px) rotate(1deg); } 40% { transform: translateX(10px) rotate(-1deg); } 60% { transform: translateX(15px) rotate(2deg); } 80% { transform: translateX(20px) rotate(0deg); } 100% { transform: translateX(25px) rotate(-1deg); } }
@keyframes lbb-haley { 0% { transform: translateX(0) rotate(0deg); } 30% { transform: translateX(-3px) rotate(-3deg); } 60% { transform: translateX(0) rotate(2deg); } 100% { transform: translateX(3px) rotate(0deg); } }
@keyframes lbb-shadow { 0% { opacity: 0.3; transform: scaleX(1); } 50% { opacity: 0.6; transform: scaleX(1.2); } 100% { opacity: 0.3; transform: scaleX(1); } }

.scn-lucy-baby-sold { background: linear-gradient(180deg, #e8d8c0 0%, #d0c0a8 40%, #4a3a2a 100%), radial-gradient(ellipse at 50% 20%, #fff8e0 0%, transparent 60%); }
.scn-lucy-baby-sold .sky-glare { position: absolute; top: 0; left: 0; right: 0; height: 60%; background: linear-gradient(180deg, #e8d8c0 0%, #d0c0a8 100%); animation: lbs-sky 12s ease-in-out infinite alternate; }
.scn-lucy-baby-sold .ground { position: absolute; bottom: 0; left: 0; right: 0; height: 40%; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); }
.scn-lucy-baby-sold .whistler { position: absolute; bottom: 20%; left: 15%; width: 26px; height: 58px; background: linear-gradient(180deg, #3a2a1a 0%, #1a0a00 100%); border-radius: 45% 45% 35% 35% / 55% 55% 35% 35%; transform-origin: bottom center; animation: lbs-whistle 5s ease-in-out infinite; }
.scn-lucy-baby-sold .haley-smoking { position: absolute; bottom: 15%; right: 25%; width: 34px; height: 50px; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%; transform-origin: bottom center; animation: lbs-smoke 7s ease-in-out infinite; }
.scn-lucy-baby-sold .woman-baby { position: absolute; bottom: 20%; right: 45%; width: 24px; height: 50px; background: linear-gradient(180deg, #3a2a1a 0%, #1a0a00 100%); border-radius: 45% 45% 35% 35% / 55% 55% 35% 35%; transform-origin: bottom center; animation: lbs-hold 6s ease-in-out infinite; }
.scn-lucy-baby-sold .woman-baby::after { content: ''; position: absolute; top: 25%; left: 50%; width: 10px; height: 14px; background: inherit; border-radius: 50% 50% 40% 40%; transform: translateX(-50%); }
.scn-lucy-baby-sold .box-stack { position: absolute; bottom: 10%; right: 10%; width: 40px; height: 30px; background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%); border-radius: 2px; box-shadow: 0 2px 6px rgba(0,0,0,0.5); animation: lbs-box 15s ease-in-out infinite alternate; }
.scn-lucy-baby-sold .sun-flare { position: absolute; top: 10%; left: 40%; width: 60px; height: 60px; background: radial-gradient(circle, rgba(255,248,224,0.6) 0%, transparent 70%); filter: blur(8px); animation: lbs-flare 8s ease-in-out infinite alternate; }
.scn-lucy-baby-sold .shadow-figures { position: absolute; bottom: 0; left: 0; width: 100%; height: 20%; background: linear-gradient(180deg, transparent 0%, rgba(0,0,0,0.5) 100%); animation: lbs-shadow 10s ease-in-out infinite; }
@keyframes lbs-sky { 0% { opacity: 0.8; } 50% { opacity: 1; } 100% { opacity: 0.9; } }
@keyframes lbs-whistle { 0% { transform: translateX(0) rotate(-2deg); } 25% { transform: translateX(3px) rotate(4deg); } 50% { transform: translateX(0) rotate(0deg); } 75% { transform: translateX(-3px) rotate(-4deg); } 100% { transform: translateX(0) rotate(2deg); } }
@keyframes lbs-smoke { 0% { transform: translateY(0) rotate(0deg); } 30% { transform: translateY(-2px) rotate(-3deg); } 60% { transform: translateY(0) rotate(2deg); } 100% { transform: translateY(-2px) rotate(0deg); } }
@keyframes lbs-hold { 0% { transform: translateX(0) rotate(1deg); } 25% { transform: translateX(2px) rotate(-2deg); } 50% { transform: translateX(0) rotate(1deg); } 75% { transform: translateX(-2px) rotate(2deg); } 100% { transform: translateX(0) rotate(-1deg); } }
@keyframes lbs-box { 0% { transform: translateY(0); } 50% { transform: translateY(-2px); } 100% { transform: translateY(0); } }
@keyframes lbs-flare { 0% { opacity: 0.4; transform: scale(1); } 50% { opacity: 0.8; transform: scale(1.2); } 100% { opacity: 0.5; transform: scale(0.9); } }
@keyframes lbs-shadow { 0% { opacity: 0.3; } 50% { opacity: 0.6; } 100% { opacity: 0.4; } }
/* end per-scene blocks */

/* auto-stub: parent tag-classes flagged by CSS audit */
.congregation { position: absolute; pointer-events: none; }
.dog-run { position: absolute; pointer-events: none; }
.ember-drift { position: absolute; pointer-events: none; }
.overlay { position: absolute; pointer-events: none; }
.storm { position: absolute; pointer-events: none; }

/* ============ tier S ============ */
/* per-scene blocks (EXP step_scenes) */
.scn-chloe-boxes-ear {
  background:
    linear-gradient(180deg, #1a0e0a 0%, #2a1612 40%, #0e0806 100%),
    radial-gradient(ellipse at 20% 70%, #c8553d 0%, transparent 60%);
}
.scn-chloe-boxes-ear .bg { position:absolute; inset:0; background: inherit; }
.scn-chloe-boxes-ear .wall { position:absolute; inset:0 0 30% 0; background: linear-gradient(180deg, #2a1a14 0%, #1a0e0a 100%); }
.scn-chloe-boxes-ear .floor { position:absolute; bottom:0; left:0; right:0; height:30%; background: linear-gradient(180deg, #3a2218 0%, #1a0e0a 100%); }
.scn-chloe-boxes-ear .fireplace { position:absolute; bottom:15%; left:5%; width:25%; height:40%; background: linear-gradient(180deg, #4a2a1a 0%, #2a1612 100%); border-radius: 10% 10% 5% 5%; box-shadow: inset 0 0 20px rgba(0,0,0,.6); }
.scn-chloe-boxes-ear .fire { position:absolute; bottom:18%; left:12%; width:10%; height:15%; background: radial-gradient(circle, #f0a060 0%, #c8553d 60%, transparent 100%); border-radius: 50%; box-shadow: 0 0 60px 30px rgba(200,85,61,.4), 0 0 100px 50px rgba(200,85,61,.2); animation: ce-fire 2s ease-in-out infinite alternate; }
.scn-chloe-boxes-ear .figure-chloe { position:absolute; bottom:15%; right:20%; width:16%; height:40%; background: linear-gradient(180deg, #1a0e0a 0%, #0e0806 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: ce-sway-chloe 6s ease-in-out infinite; }
.scn-chloe-boxes-ear .apron { position:absolute; bottom:38%; right:20%; width:14%; height:10%; background: radial-gradient(circle at 50% 20%, #8a7060 0%, #5a4030 100%); border-radius: 20% 20% 40% 40%; transform-origin: top center; box-shadow: 0 4px 8px rgba(0,0,0,.5); animation: ce-apron 4s ease-in-out infinite; }
.scn-chloe-boxes-ear .figure-tom { position:absolute; bottom:15%; left:15%; width:14%; height:38%; background: linear-gradient(180deg, #1a0e0a 0%, #0e0806 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: ce-sway-tom 7s ease-in-out infinite; }
@keyframes ce-fire {
  0% { transform: scale(1); opacity: 0.8; box-shadow: 0 0 40px 20px rgba(200,85,61,.3); }
  50% { transform: scale(1.2); opacity: 1; box-shadow: 0 0 80px 40px rgba(200,85,61,.5); }
  100% { transform: scale(0.9); opacity: 0.9; box-shadow: 0 0 50px 25px rgba(200,85,61,.35); }
}
@keyframes ce-apron {
  0% { transform: rotate(-2deg) translateY(0); }
  50% { transform: rotate(2deg) translateY(-3px); }
  100% { transform: rotate(-1deg) translateY(0); }
}
@keyframes ce-sway-chloe {
  0% { transform: translateX(0) rotate(-1deg); }
  50% { transform: translateX(-2px) rotate(1deg); }
  100% { transform: translateX(0) rotate(-1deg); }
}
@keyframes ce-sway-tom {
  0% { transform: translateX(0) rotate(1deg); }
  50% { transform: translateX(2px) rotate(-1deg); }
  100% { transform: translateX(0) rotate(1deg); }
}

.scn-chloe-weeps-injustice {
  background: 
    linear-gradient(180deg, #1a0a0a 0%, #3a1a0a 30%, #2a0a05 70%, #0a0505 100%),
    radial-gradient(ellipse at 50% 80%, #4a2a0a 0%, transparent 60%);
}
.scn-chloe-weeps-injustice .bg-wall {
  position: absolute; inset: 0 0 20% 0;
  background: linear-gradient(180deg, #2a1508 0%, #1a0a05 100%);
}
.scn-chloe-weeps-injustice .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 20%;
  background: linear-gradient(180deg, #2a1a0a 0%, #1a0a05 100%);
}
.scn-chloe-weeps-injustice .fireplace {
  position: absolute; bottom: 20%; left: 50%; transform: translateX(-50%); width: 100px; height: 130px;
  background: linear-gradient(180deg, #4a2a0a 0%, #2a1508 100%);
  border-radius: 10% 10% 5% 5%; box-shadow: inset 0 -20px 30px rgba(0,0,0,0.6);
}
.scn-chloe-weeps-injustice .fire-glow {
  position: absolute; bottom: 40%; left: 50%; transform: translateX(-50%); width: 80px; height: 90px;
  background: radial-gradient(ellipse at 50% 100%, #c8553d 0%, #a0461a 40%, transparent 80%);
  border-radius: 50%; box-shadow: 0 0 60px 30px rgba(200,85,61,0.4);
  animation: cweep-fire 4s ease-in-out infinite;
}
.scn-chloe-weeps-injustice .chloe-figure {
  position: absolute; bottom: 18%; left: 35%; width: 28px; height: 80px;
  background: linear-gradient(180deg, #2a1508 0%, #1a0a05 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center;
  animation: cweep-bow 3s ease-in-out infinite;
}
.scn-chloe-weeps-injustice .chloe-head {
  position: absolute; bottom: 75%; left: 50%; transform: translateX(-50%); width: 20px; height: 24px;
  background: linear-gradient(180deg, #3a1a0a 0%, #2a0a05 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: cweep-head 3s ease-in-out infinite;
}
.scn-chloe-weeps-injustice .tear-1, .scn-chloe-weeps-injustice .tear-2 {
  position: absolute; width: 3px; height: 6px; background: rgba(200,180,160,0.6);
  border-radius: 50%; animation: cweep-tear 2.5s linear infinite;
}
.scn-chloe-weeps-injustice .tear-1 { top: 30%; left: 42%; animation-delay: 0s; }
.scn-chloe-weeps-injustice .tear-2 { top: 32%; left: 46%; animation-delay: 1.2s; }
.scn-chloe-weeps-injustice .shadow {
  position: absolute; bottom: 0; left: 30%; right: 30%; height: 30%;
  background: linear-gradient(180deg, transparent 0%, rgba(0,0,0,0.5) 100%);
  filter: blur(8px);
}
@keyframes cweep-fire {
  0% { opacity: 0.7; transform: translateX(-50%) scaleY(1); }
  50% { opacity: 1; transform: translateX(-50%) scaleY(1.08); }
  100% { opacity: 0.8; transform: translateX(-50%) scaleY(0.95); }
}
@keyframes cweep-bow {
  0%, 100% { transform: translateX(0) rotate(0deg); }
  50% { transform: translateX(-3px) rotate(-8deg); }
}
@keyframes cweep-head {
  0%, 100% { transform: translateX(-50%) rotate(0deg); }
  50% { transform: translateX(-50%) rotate(-12deg); }
}
@keyframes cweep-tear {
  0% { transform: translateY(0) scaleY(1); opacity: 0.8; }
  50% { transform: translateY(25px) scaleY(1.5); opacity: 0.4; }
  100% { transform: translateY(50px) scaleY(0.5); opacity: 0; }
}

.scn-tom-comforts-chloe {
  background: 
    linear-gradient(180deg, #2a1508 0%, #4a2a0a 30%, #3a1a0a 70%, #1a0a05 100%),
    radial-gradient(ellipse at 50% 70%, #a0461a 0%, transparent 60%);
}
.scn-tom-comforts-chloe .bg-wall {
  position: absolute; inset: 0 0 20% 0;
  background: linear-gradient(180deg, #3a1a0a 0%, #1a0a05 100%);
}
.scn-tom-comforts-chloe .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 20%;
  background: linear-gradient(180deg, #2a1a0a 0%, #1a0a05 100%);
}
.scn-tom-comforts-chloe .fireplace {
  position: absolute; bottom: 20%; left: 50%; transform: translateX(-50%); width: 90px; height: 120px;
  background: linear-gradient(180deg, #4a2a0a 0%, #2a1508 100%);
  border-radius: 10% 10% 5% 5%; box-shadow: inset 0 -20px 30px rgba(0,0,0,0.5);
}
.scn-tom-comforts-chloe .fire-glow {
  position: absolute; bottom: 38%; left: 50%; transform: translateX(-50%); width: 70px; height: 80px;
  background: radial-gradient(ellipse at 50% 100%, #c8553d 0%, #a0461a 40%, transparent 80%);
  border-radius: 50%; box-shadow: 0 0 50px 20px rgba(200,85,61,0.3);
  animation: tcomf-fire 4s ease-in-out infinite;
}
.scn-tom-comforts-chloe .tom-figure.large {
  position: absolute; bottom: 20%; left: 35%; width: 40px; height: 90px;
  background: linear-gradient(180deg, #3a1a0a 0%, #1a0a05 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center;
  animation: tcomf-still 3s ease-in-out infinite;
}
.scn-tom-comforts-chloe .chloe-figure.small {
  position: absolute; bottom: 18%; right: 30%; width: 24px; height: 70px;
  background: linear-gradient(180deg, #2a1508 0%, #1a0a05 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center;
  animation: tcomf-lean 4s ease-in-out infinite;
}
.scn-tom-comforts-chloe .tom-arm {
  position: absolute; bottom: 45%; left: 38%; width: 30px; height: 6px;
  background: linear-gradient(180deg, #3a1a0a 0%, #2a1508 100%);
  border-radius: 50% 50% 40% 40%; transform-origin: right center;
  animation: tcomf-reach 3s ease-in-out infinite;
}
.scn-tom-comforts-chloe .spark-1, .scn-tom-comforts-chloe .spark-2 {
  position: absolute; width: 4px; height: 4px; background: #ffd060;
  border-radius: 50%; box-shadow: 0 0 6px 2px rgba(255,208,96,0.6);
  animation: tcomf-drift 5s linear infinite;
}
.scn-tom-comforts-chloe .spark-1 { top: 30%; left: 48%; animation-delay: 0s; }
.scn-tom-comforts-chloe .spark-2 { top: 35%; left: 52%; animation-delay: 2.5s; }
@keyframes tcomf-fire {
  0% { opacity: 0.8; transform: translateX(-50%) scaleY(1); }
  50% { opacity: 1; transform: translateX(-50%) scaleY(1.05); }
  100% { opacity: 0.85; transform: translateX(-50%) scaleY(0.98); }
}
@keyframes tcomf-still {
  0%, 100% { transform: translateX(0) rotate(0deg); }
  50% { transform: translateX(0) rotate(1deg) translateY(-1px); }
}
@keyframes tcomf-lean {
  0%, 100% { transform: translateX(0) rotate(0deg); }
  50% { transform: translateX(-2px) rotate(-5deg); }
}
@keyframes tcomf-reach {
  0%, 100% { transform: rotate(10deg); }
  50% { transform: rotate(30deg); }
}
@keyframes tcomf-drift {
  0% { transform: translate(0, 0) scale(1); opacity: 1; }
  50% { transform: translate(20px, -40px) scale(0.5); opacity: 0.6; }
  100% { transform: translate(40px, -80px) scale(0); opacity: 0; }
}

.scn-chloe-rages {
  background: 
    linear-gradient(180deg, #1a0a05 0%, #3a1a0a 20%, #2a0a05 50%, #0a0505 100%),
    radial-gradient(ellipse at 50% 80%, #5a2a0a 0%, transparent 70%);
}
.scn-chloe-rages .bg-wall {
  position: absolute; inset: 0 0 20% 0;
  background: linear-gradient(180deg, #2a1508 0%, #1a0a05 100%);
}
.scn-chloe-rages .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 20%;
  background: linear-gradient(180deg, #2a1a0a 0%, #1a0a05 100%);
}
.scn-chloe-rages .fireplace {
  position: absolute; bottom: 20%; left: 50%; transform: translateX(-50%); width: 110px; height: 140px;
  background: linear-gradient(180deg, #4a2a0a 0%, #2a1508 100%);
  border-radius: 10% 10% 5% 5%; box-shadow: inset 0 -20px 30px rgba(0,0,0,0.6);
}
.scn-chloe-rages .fire-glow.intense {
  position: absolute; bottom: 40%; left: 50%; transform: translateX(-50%); width: 90px; height: 100px;
  background: radial-gradient(ellipse at 50% 100%, #c8553d 0%, #a0461a 30%, transparent 80%);
  border-radius: 50%; box-shadow: 0 0 70px 40px rgba(200,85,61,0.5);
  animation: crage-fire 3s ease-in-out infinite;
}
.scn-chloe-rages .chloe-figure.angry {
  position: absolute; bottom: 18%; left: 40%; width: 30px; height: 85px;
  background: linear-gradient(180deg, #3a1a0a 0%, #1a0a05 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center;
  animation: crage-shake 2s ease-in-out infinite;
}
.scn-chloe-rages .chloe-arm {
  position: absolute; bottom: 35%; left: 38%; width: 20px; height: 5px;
  background: linear-gradient(180deg, #3a1a0a 0%, #2a1508 100%);
  border-radius: 50%; transform-origin: right center;
  animation: crage-arm 1.5s ease-in-out infinite;
}
.scn-chloe-rages .fist {
  position: absolute; bottom: 35%; left: 36%; width: 8px; height: 8px;
  background: #3a1a0a; border-radius: 30%;
  box-shadow: 0 0 4px rgba(0,0,0,0.5);
  animation: crage-punch 1.5s ease-in-out infinite;
}
.scn-chloe-rages .ember-1, .scn-chloe-rages .ember-2 {
  position: absolute; width: 5px; height: 5px; background: #ffd060;
  border-radius: 50%; box-shadow: 0 0 8px 2px rgba(255,208,96,0.7);
  animation: crage-ember 4s linear infinite;
}
.scn-chloe-rages .ember-1 { top: 25%; left: 50%; animation-delay: 0s; }
.scn-chloe-rages .ember-2 { top: 30%; left: 45%; animation-delay: 2s; }
@keyframes crage-fire {
  0% { opacity: 0.7; transform: translateX(-50%) scaleY(1); }
  50% { opacity: 1; transform: translateX(-50%) scaleY(1.12); }
  100% { opacity: 0.7; transform: translateX(-50%) scaleY(0.9); }
}
@keyframes crage-shake {
  0%, 100% { transform: translateX(0) rotate(0deg); }
  25% { transform: translateX(-4px) rotate(-8deg); }
  50% { transform: translateX(4px) rotate(8deg); }
  75% { transform: translateX(-2px) rotate(-4deg); }
}
@keyframes crage-arm {
  0%, 100% { transform: rotate(-20deg); }
  50% { transform: rotate(30deg); }
}
@keyframes crage-punch {
  0%, 100% { transform: translateX(0) scale(1); }
  50% { transform: translateX(-8px) scale(1.3); }
}
@keyframes crage-ember {
  0% { transform: translateX(0) translateY(0) scale(1); opacity: 1; }
  50% { transform: translateX(15px) translateY(-30px) scale(0.6); opacity: 0.6; }
  100% { transform: translateX(30px) translateY(-60px) scale(0); opacity: 0; }
}

.scn-tom-defends-master {
  background: 
    linear-gradient(180deg, #2a1508 0%, #4a2a0a 25%, #3a1a0a 60%, #1a0a05 100%),
    radial-gradient(ellipse at 50% 75%, #a0461a 0%, transparent 70%);
}
.scn-tom-defends-master .bg-wall {
  position: absolute; inset: 0 0 20% 0;
  background: linear-gradient(180deg, #3a1a0a 0%, #1a0a05 100%);
}
.scn-tom-defends-master .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 20%;
  background: linear-gradient(180deg, #2a1a0a 0%, #1a0a05 100%);
}
.scn-tom-defends-master .fireplace {
  position: absolute; bottom: 20%; left: 50%; transform: translateX(-50%); width: 100px; height: 130px;
  background: linear-gradient(180deg, #4a2a0a 0%, #2a1508 100%);
  border-radius: 10% 10% 5% 5%; box-shadow: inset 0 -20px 30px rgba(0,0,0,0.5);
}
.scn-tom-defends-master .fire-glow {
  position: absolute; bottom: 38%; left: 50%; transform: translateX(-50%); width: 80px; height: 90px;
  background: radial-gradient(ellipse at 50% 100%, #c8553d 0%, #a0461a 40%, transparent 80%);
  border-radius: 50%; box-shadow: 0 0 55px 25px rgba(200,85,61,0.3);
  animation: tdefe-fire 4s ease-in-out infinite;
}
.scn-tom-defends-master .tom-figure.center {
  position: absolute; bottom: 20%; left: 40%; width: 35px; height: 85px;
  background: linear-gradient(180deg, #3a1a0a 0%, #1a0a05 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center;
  animation: tdefe-gentle 3s ease-in-out infinite;
}
.scn-tom-defends-master .tom-hand.gentle {
  position: absolute; bottom: 45%; left: 38%; width: 8px; height: 4px;
  background: #3a1a0a; border-radius: 50%;
  box-shadow: 0 0 3px rgba(0,0,0,0.3);
  animation: tdefe-hand 3s ease-in-out infinite;
}
.scn-tom-defends-master .chloe-silhouette {
  position: absolute; bottom: 18%; right: 28%; width: 22px; height: 65px;
  background: linear-gradient(180deg, #1a0a05 0%, #0a0505 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: tdefe-listen 4s ease-in-out infinite;
}
.scn-tom-defends-master .beam {
  position: absolute; top: 0; left: 45%; width: 4px; height: 50%;
  background: linear-gradient(180deg, transparent 0%, rgba(200,85,61,0.2) 50%, transparent 100%);
  filter: blur(2px);
  animation: tdefe-beam 5s ease-in-out infinite;
}
.scn-tom-defends-master .candle {
  position: absolute; bottom: 50%; left: 60%; width: 6px; height: 10px;
  background: linear-gradient(180deg, #ffd060 0%, #a0461a 100%);
  border-radius: 50% 50% 20% 20%; box-shadow: 0 0 12px 4px rgba(255,208,96,0.5);
  animation: tdefe-candle 2s ease-in-out infinite alternate;
}
@keyframes tdefe-fire {
  0% { opacity: 0.8; transform: translateX(-50%) scaleY(1); }
  50% { opacity: 1; transform: translateX(-50%) scaleY(1.06); }
  100% { opacity: 0.85; transform: translateX(-50%) scaleY(0.98); }
}
@keyframes tdefe-gentle {
  0%, 100% { transform: translateX(0) rotate(0deg); }
  50% { transform: translateX(0) rotate(1deg) translateY(-1px); }
}
@keyframes tdefe-hand {
  0%, 100% { transform: translateX(0) rotate(0deg); }
  50% { transform: translateX(2px) rotate(15deg); }
}
@keyframes tdefe-listen {
  0%, 100% { transform: translateX(0) rotate(0deg); }
  50% { transform: translateX(-2px) rotate(-3deg); }
}
@keyframes tdefe-beam {
  0% { opacity: 0.3; transform: scaleY(1); }
  50% { opacity: 0.6; transform: scaleY(1.1); }
  100% { opacity: 0.3; transform: scaleY(1); }
}
@keyframes tdefe-candle {
  0% { transform: translateY(0) scaleY(1); opacity: 0.8; }
  100% { transform: translateY(-2px) scaleY(1.15); opacity: 1; }
}

/* tom-converts-masters */
.scn-tom-converts-masters {
  background: linear-gradient(180deg, #3a2a20 0%, #1e1410 100%) no-repeat,
              radial-gradient(ellipse at 30% 60%, #4d3325 0%, transparent 60%);
}
.scn-tom-converts-masters .tc1-wall { position:absolute; inset:0 0 30% 0; background: linear-gradient(90deg, #2a1e16 0%, #3d2b1f 40%, #2a1e16 100%); }
.scn-tom-converts-masters .tc1-floor { position:absolute; bottom:0; left:0; right:0; height:30%; background: linear-gradient(180deg, #2f221a 0%, #1b120d 100%); }
.scn-tom-converts-masters .tc1-window { position:absolute; top:15%; left:15%; width:40px; height:55px; background: radial-gradient(circle, #8a6e4e 0%, #4a3828 70%); border-radius:4px; box-shadow: inset 0 0 15px #6b5035; }
.scn-tom-converts-masters .tc1-tom { position:absolute; bottom:25%; left:50%; width:20px; height:40px; background: linear-gradient(180deg, #221810 0%, #100a06 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: tc1-pray 5s ease-in-out infinite; }
.scn-tom-converts-masters .tc1-sambo { position:absolute; bottom:25%; left:35%; width:18px; height:36px; background: linear-gradient(180deg, #1f1812 0%, #0e0a06 100%); border-radius: 45% 45% 40% 40% / 55% 55% 40% 40%; transform-origin: bottom center; animation: tc1-weep 6s ease-in-out infinite 1s; }
.scn-tom-converts-masters .tc1-quimbo { position:absolute; bottom:25%; left:60%; width:18px; height:36px; background: linear-gradient(180deg, #1f1812 0%, #0e0a06 100%); border-radius: 45% 45% 40% 40% / 55% 55% 40% 40%; transform-origin: bottom center; animation: tc1-weep 6s ease-in-out infinite 2s; }
.scn-tom-converts-masters .tc1-light { position:absolute; inset:0; opacity:0.3; background: radial-gradient(ellipse at 50% 40%, #b08050 0%, transparent 50%); animation: tc1-flicker 4s ease-in-out infinite alternate; }
@keyframes tc1-pray { 0% { transform: rotate(0deg) translateY(0); } 33% { transform: rotate(-3deg) translateY(-2px); } 66% { transform: rotate(3deg) translateY(-1px); } 100% { transform: rotate(0deg) translateY(0); } }
@keyframes tc1-weep { 0%,100% { transform: rotate(0deg) translateY(0); } 25% { transform: rotate(-2deg) translateY(-1px); } 50% { transform: rotate(4deg) translateY(-3px); } 75% { transform: rotate(1deg) translateY(-1px); } }
@keyframes tc1-flicker { 0% { opacity:0.25; } 50% { opacity:0.35; } 100% { opacity:0.2; } }

/* tom-death */
.scn-tom-death {
  background: linear-gradient(180deg, #1e1410 0%, #2a1e16 30%, #1a110a 100%) no-repeat,
              radial-gradient(ellipse at 60% 80%, #3d2b1f 0%, transparent 70%);
}
.scn-tom-death .td2-room { position:absolute; inset:0 0 25% 0; background: linear-gradient(90deg, #2a1e16 0%, #3d2b1f 50%, #2a1e16 100%); }
.scn-tom-death .td2-floor { position:absolute; bottom:0; left:0; right:0; height:25%; background: linear-gradient(180deg, #2f221a 0%, #1b120d 100%); }
.scn-tom-death .td2-tom { position:absolute; bottom:20%; left:50%; width:22px; height:32px; background: linear-gradient(180deg, #1e1410 0%, #0a0604 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: td2-expire 12s ease-in-out infinite; }
.scn-tom-death .td2-george { position:absolute; bottom:22%; left:40%; width:20px; height:44px; background: linear-gradient(180deg, #1a120e 0%, #0c0806 100%); border-radius: 45% 45% 40% 40% / 55% 55% 40% 40%; transform-origin: bottom center; animation: td2-stand 8s ease-in-out infinite; }
.scn-tom-death .td2-legree { position:absolute; bottom:15%; left:60%; width:20px; height:30px; background: linear-gradient(180deg, #2a1e16 0%, #1a110a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: td2-fall 6s ease-in-out infinite; }
.scn-tom-death .td2-light { position:absolute; top:10%; left:70%; width:30px; height:40px; background: radial-gradient(circle, #6b5035 0%, #2a1e16 70%); box-shadow: 0 0 20px #4a3828; animation: td2-gloom 10s ease-in-out infinite alternate; }
@keyframes td2-expire { 0%,100% { transform: scale(1) rotate(0deg); opacity:0.9; } 50% { transform: scale(0.95) rotate(2deg); opacity:0.6; } }
@keyframes td2-stand { 0%,100% { transform: rotate(0deg); } 30% { transform: rotate(-2deg) translateY(-1px); } 60% { transform: rotate(3deg) translateY(-2px); } }
@keyframes td2-fall { 0% { transform: rotate(0deg) translateY(0); } 25% { transform: rotate(-4deg) translateY(2px); } 50% { transform: rotate(-8deg) translateY(4px); } 75% { transform: rotate(-12deg) translateY(6px); } 100% { transform: rotate(-15deg) translateY(8px); } }
@keyframes td2-gloom { 0% { opacity:0.6; } 50% { opacity:0.3; } 100% { opacity:0.5; } }

/* tom-cabin-farewell-morning */
.scn-tom-cabin-farewell-morning {
  background: linear-gradient(180deg, #4a4a4a 0%, #6a6a6a 30%, #3a3a3a 100%) no-repeat,
              radial-gradient(ellipse at 50% 0%, #8a8a8a 0%, transparent 60%);
}
.scn-tom-cabin-farewell-morning .tc3-wall { position:absolute; inset:0 0 35% 0; background: linear-gradient(90deg, #3a3a3a 0%, #5a5a5a 50%, #3a3a3a 100%); }
.scn-tom-cabin-farewell-morning .tc3-window { position:absolute; top:12%; left:20%; width:38px; height:50px; background: radial-gradient(circle, #8a8a8a 0%, #4a4a4a 70%); border-radius:4px; box-shadow: inset 0 0 10px #6a6a6a; animation: tc3-window 8s ease-in-out infinite alternate; }
.scn-tom-cabin-farewell-morning .tc3-table { position:absolute; bottom:30%; left:25%; width:80px; height:14px; background: linear-gradient(180deg, #6a5040 0%, #4a3828 100%); border-radius:2px; transform: rotate(-2deg); }
.scn-tom-cabin-farewell-morning .tc3-chloe { position:absolute; bottom:30%; left:28%; width:20px; height:38px; background: linear-gradient(180deg, #3a2a1f 0%, #1e1410 100%); border-radius: 45% 45% 40% 40% / 55% 55% 40% 40%; transform-origin: bottom center; animation: tc3-iron 6s ease-in-out infinite; }
.scn-tom-cabin-farewell-morning .tc3-tom { position:absolute; bottom:30%; left:55%; width:20px; height:40px; background: linear-gradient(180deg, #2a1e16 0%, #100a06 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: tc3-sit 12s ease-in-out infinite; }
.scn-tom-cabin-farewell-morning .tc3-bed { position:absolute; bottom:20%; left:65%; width:35px; height:20px; background: linear-gradient(180deg, #4a3828 0%, #2a1e16 100%); border-radius:40% 40% 20% 20%; animation: tc3-sleep 15s ease-in-out infinite; }
.scn-tom-cabin-farewell-morning .tc3-dust { position:absolute; top:20%; left:40%; width:20px; height:20px; background: radial-gradient(circle, rgba(180,180,180,0.3) 0%, transparent 70%); filter: blur(3px); animation: tc3-drift 20s linear infinite; }
@keyframes tc3-window { 0% { opacity:0.5; } 50% { opacity:0.7; } 100% { opacity:0.4; } }
@keyframes tc3-iron { 0%,100% { transform: rotate(0deg); } 33% { transform: rotate(-2deg) translateY(-2px); } 66% { transform: rotate(3deg) translateY(-1px); } }
@keyframes tc3-sit { 0%,100% { transform: rotate(0deg); } 30% { transform: rotate(-3deg) translateY(-1px); } 60% { transform: rotate(2deg) translateY(-2px); } }
@keyframes tc3-sleep { 0%,100% { transform: scale(1); } 50% { transform: scale(0.95); } }
@keyframes tc3-drift { 0% { transform: translateX(0) translateY(0); opacity:0.6; } 50% { transform: translateX(30px) translateY(-10px); opacity:0.3; } 100% { transform: translateX(60px) translateY(0); opacity:0.6; } }

/* tom-last-breakfast */
.scn-tom-last-breakfast {
  background: linear-gradient(180deg, #2a1a0e 0%, #4a2a14 40%, #1a0e06 100%) no-repeat,
              radial-gradient(ellipse at 50% 80%, #5a3018 0%, transparent 60%);
}
.scn-tom-last-breakfast .tl4-fireplace { position:absolute; bottom:25%; left:15%; width:40px; height:60px; background: linear-gradient(180deg, #8a3a20 0%, #4a1a0a 100%); border-radius:10% 10% 20% 20% / 20% 20% 30% 30%; }
.scn-tom-last-breakfast .tl4-fireglow { position:absolute; bottom:25%; left:15%; width:60px; height:70px; background: radial-gradient(circle at 50% 80%, #c06030 0%, transparent 60%); filter: blur(8px); animation: tl4-fire 3s ease-in-out infinite alternate; }
.scn-tom-last-breakfast .tl4-table { position:absolute; bottom:30%; left:40%; width:60px; height:12px; background: linear-gradient(180deg, #5a3820 0%, #3a2210 100%); border-radius:2px; transform: rotate(1deg); }
.scn-tom-last-breakfast .tl4-tom { position:absolute; bottom:28%; left:45%; width:20px; height:40px; background: linear-gradient(180deg, #2a1a0e 0%, #100a04 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: tl4-read 8s ease-in-out infinite; }
.scn-tom-last-breakfast .tl4-bed { position:absolute; bottom:15%; left:55%; width:45px; height:22px; background: linear-gradient(180deg, #4a2a14 0%, #2a1a0e 100%); border-radius:40% 40% 30% 30%; animation: tl4-sleep 10s ease-in-out infinite; }
.scn-tom-last-breakfast .tl4-trunk { position:absolute; bottom:22%; left:25%; width:30px; height:16px; background: linear-gradient(180deg, #5a3820 0%, #3a2210 100%); border-radius:4px 4px 2px 2px; }
.scn-tom-last-breakfast .tl4-chair { position:absolute; bottom:28%; left:55%; width:16px; height:20px; background: linear-gradient(180deg, #3a2210 0%, #1a0e06 100%); border-radius:2px 2px 50% 50% / 2px 2px 100% 100%; }
@keyframes tl4-fire { 0% { opacity:0.5; transform: scale(1); } 50% { opacity:0.8; transform: scale(1.05); } 100% { opacity:0.55; transform: scale(0.95); } }
@keyframes tl4-read { 0%,100% { transform: rotate(0deg); } 30% { transform: rotate(-2deg) translateY(-1px); } 60% { transform: rotate(3deg) translateY(-2px); } }
@keyframes tl4-sleep { 0%,100% { transform: scale(1); } 50% { transform: scale(0.95); } }

/* haley-shelby-negotiation (tense, dim-interior) */
.scn-haley-shelby-negotiation {
  background: linear-gradient(180deg, #1a1a2e 0%, #2a1a1a 50%, #1e1e2e 100%), radial-gradient(ellipse at 30% 50%, #2a1a2e 0%, transparent 70%);
}
.scn-haley-shelby-negotiation .wall {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #3a2a2a 0%, #2a1a1a 100%);
  box-shadow: inset 0 0 40px rgba(0,0,0,0.5);
  animation: hsn-wall 10s ease-in-out infinite alternate;
}
.scn-haley-shelby-negotiation .table {
  position: absolute; bottom: 20%; left: 10%; right: 10%; height: 8%;
  background: linear-gradient(180deg, #4a3a2a 0%, #3a2a1a 100%);
  border-radius: 15% 15% 0 0;
  box-shadow: 0 -4px 12px rgba(0,0,0,0.6);
  animation: hsn-table 6s ease-in-out infinite alternate;
}
.scn-haley-shelby-negotiation .wine-bottle {
  position: absolute; bottom: 24%; left: 35%; width: 5%; height: 20%;
  background: linear-gradient(180deg, #5a3a2a 0%, #3a2a1a 100%);
  border-radius: 20% 20% 10% 10%;
  box-shadow: 2px 0 6px rgba(0,0,0,0.3);
  transform-origin: bottom center;
  animation: hsn-bottle 8s ease-in-out infinite;
}
.scn-haley-shelby-negotiation .wine-glass {
  position: absolute; bottom: 22%; left: 42%; width: 4%; height: 12%;
  background: radial-gradient(circle, #8a4a3a 0%, #5a2a1a 70%);
  border-radius: 30% 30% 10% 10%;
  box-shadow: 0 0 8px #6a3a2a;
  animation: hsn-glass 4s ease-in-out infinite alternate;
}
.scn-haley-shelby-negotiation .figure-haley {
  position: absolute; bottom: 25%; left: 22%; width: 12%; height: 35%;
  background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: hsn-figure-left 5s ease-in-out infinite;
}
.scn-haley-shelby-negotiation .figure-shelby {
  position: absolute; bottom: 25%; right: 22%; width: 12%; height: 38%;
  background: linear-gradient(180deg, #3a2a2a 0%, #2a1a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: hsn-figure-right 5s ease-in-out infinite reverse;
}
.scn-haley-shelby-negotiation .lamp {
  position: absolute; top: 15%; left: 45%; width: 6%; height: 12%;
  background: radial-gradient(circle, #d09040 0%, #a06020 60%, #4a2a10 100%);
  border-radius: 50%;
  box-shadow: 0 0 30px 10px #d09040, 0 0 60px 20px rgba(208,144,64,0.4);
  animation: hsn-lamp 3s ease-in-out infinite alternate;
}
.scn-haley-shelby-negotiation .shadow {
  position: absolute; bottom: 0; left: 0; right: 0; height: 40%;
  background: linear-gradient(180deg, transparent 0%, rgba(0,0,0,0.8) 100%);
  animation: hsn-shadow 10s ease-in-out infinite alternate;
}
@keyframes hsn-wall { 0% { opacity: 0.7; } 50% { opacity: 1; } 100% { opacity: 0.8; } }
@keyframes hsn-table { 0% { transform: translateY(0); } 50% { transform: translateY(-3px); } 100% { transform: translateY(0); } }
@keyframes hsn-bottle { 0% { transform: rotate(-2deg); } 50% { transform: rotate(2deg); } 100% { transform: rotate(-1deg); } }
@keyframes hsn-glass { 0% { opacity: 0.7; transform: scale(0.98); } 100% { opacity: 1; transform: scale(1); } }
@keyframes hsn-figure-left { 0% { transform: translateX(0) rotate(-1deg); } 50% { transform: translateX(4px) rotate(1deg); } 100% { transform: translateX(-2px) rotate(0deg); } }
@keyframes hsn-figure-right { 0% { transform: translateX(0) rotate(1deg); } 50% { transform: translateX(-4px) rotate(-1deg); } 100% { transform: translateX(2px) rotate(0deg); } }
@keyframes hsn-lamp { 0% { box-shadow: 0 0 20px 5px #d09040, 0 0 40px 10px rgba(208,144,64,0.3); opacity: 0.7; } 50% { box-shadow: 0 0 40px 15px #e09040, 0 0 80px 25px rgba(224,144,64,0.6); opacity: 1; } 100% { box-shadow: 0 0 25px 8px #d09040, 0 0 50px 15px rgba(208,144,64,0.4); opacity: 0.85; } }
@keyframes hsn-shadow { 0% { opacity: 0.6; } 50% { opacity: 0.8; } 100% { opacity: 0.7; } }

/* george-eliza-anguish (tense, dim-interior) */
.scn-george-eliza-anguish {
  background: linear-gradient(180deg, #1a1a2e 0%, #2a1a2a 40%, #1a1a1e 100%), radial-gradient(ellipse at 70% 20%, #2a1a3a 0%, transparent 60%);
}
.scn-george-eliza-anguish .bg-wall {
  position: absolute; inset: 0 0 25% 0;
  background: linear-gradient(180deg, #3a2a3a 0%, #2a1a2a 100%);
  box-shadow: inset 0 0 30px rgba(0,0,0,0.6);
  animation: gea-wall 8s ease-in-out infinite alternate;
}
.scn-george-eliza-anguish .window-bars {
  position: absolute; top: 10%; left: 25%; right: 25%; height: 20%;
  background: linear-gradient(180deg, #4a3a4a 0%, #3a2a3a 100%);
  border: 2px solid #5a4a5a;
  border-radius: 5% 5% 0 0;
  box-shadow: inset 0 0 20px rgba(0,0,0,0.5);
  animation: gea-bars 6s ease-in-out infinite alternate;
}
.scn-george-eliza-anguish .figure-george {
  position: absolute; bottom: 25%; left: 30%; width: 10%; height: 40%;
  background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: gea-figure-left 4s ease-in-out infinite;
}
.scn-george-eliza-anguish .figure-eliza {
  position: absolute; bottom: 25%; right: 30%; width: 10%; height: 38%;
  background: linear-gradient(180deg, #3a2a3a 0%, #2a1a2a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: gea-figure-right 4s ease-in-out infinite reverse;
}
.scn-george-eliza-anguish .tear {
  position: absolute; top: 30%; left: 50%; width: 2%; height: 2%;
  background: radial-gradient(circle, #6080b0 0%, #406090 70%);
  border-radius: 50%;
  box-shadow: 0 0 8px 2px #406090;
  animation: gea-tear 3s ease-in-out infinite;
}
.scn-george-eliza-anguish .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 25%;
  background: linear-gradient(180deg, #3a2a3a 0%, #2a1a2a 100%);
  box-shadow: inset 0 10px 20px rgba(0,0,0,0.7);
  animation: gea-floor 10s ease-in-out infinite alternate;
}
.scn-george-eliza-anguish .lamp-dim {
  position: absolute; top: 5%; left: 45%; width: 4%; height: 8%;
  background: radial-gradient(circle, #8060a0 0%, #503070 60%, #201030 100%);
  border-radius: 50%;
  box-shadow: 0 0 20px 5px #503070, 0 0 40px 10px rgba(80,48,112,0.3);
  animation: gea-lamp 5s ease-in-out infinite alternate;
}
@keyframes gea-wall { 0% { opacity: 0.7; } 50% { opacity: 0.9; } 100% { opacity: 0.8; } }
@keyframes gea-bars { 0% { transform: scale(1); } 50% { transform: scale(1.02); } 100% { transform: scale(0.98); } }
@keyframes gea-figure-left { 0% { transform: translateX(0) rotate(-2deg); } 50% { transform: translateX(3px) rotate(2deg); } 100% { transform: translateX(-3px) rotate(0deg); } }
@keyframes gea-figure-right { 0% { transform: translateX(0) rotate(2deg); } 50% { transform: translateX(-3px) rotate(-2deg); } 100% { transform: translateX(3px) rotate(0deg); } }
@keyframes gea-tear { 0% { opacity: 0; transform: translateY(0); } 50% { opacity: 0.8; transform: translateY(10px); } 100% { opacity: 0; transform: translateY(20px); } }
@keyframes gea-floor { 0% { opacity: 0.6; } 50% { opacity: 0.8; } 100% { opacity: 0.7; } }
@keyframes gea-lamp { 0% { box-shadow: 0 0 15px 3px #503070; opacity: 0.6; } 50% { box-shadow: 0 0 25px 8px #604080; opacity: 0.9; } 100% { box-shadow: 0 0 18px 5px #503070; opacity: 0.7; } }

/* tom-cabin-supper (warm, firelit) */
.scn-tom-cabin-supper {
  background: linear-gradient(180deg, #2a1a0a 0%, #4a2a1a 30%, #6a3a1a 60%, #2a1a0a 100%), radial-gradient(ellipse at 50% 70%, #8a4a2a 0%, transparent 70%);
}
.scn-tom-cabin-supper .cabin-wall {
  position: absolute; inset: 0 0 20% 0;
  background: linear-gradient(180deg, #4a2a1a 0%, #3a1a0a 100%);
  box-shadow: inset 0 0 40px rgba(0,0,0,0.5);
  animation: tcs-wall 12s ease-in-out infinite alternate;
}
.scn-tom-cabin-supper .fireplace {
  position: absolute; bottom: 15%; left: 35%; right: 35%; height: 40%;
  background: linear-gradient(180deg, #5a2a1a 0%, #3a1a0a 100%);
  border-radius: 10% 10% 5% 5%;
  box-shadow: inset 0 -20px 30px rgba(0,0,0,0.6);
  animation: tcs-fireplace 8s ease-in-out infinite alternate;
}
.scn-tom-cabin-supper .fire-glow {
  position: absolute; bottom: 30%; left: 40%; width: 20%; height: 20%;
  background: radial-gradient(circle, #ff8040 0%, #c06020 40%, #8a3a0a 70%, transparent 100%);
  border-radius: 50%;
  box-shadow: 0 0 60px 20px #ff8040, 0 0 120px 40px rgba(255,128,64,0.4);
  animation: tcs-fire 2s ease-in-out infinite alternate;
}
.scn-tom-cabin-supper .table-wood {
  position: absolute; bottom: 12%; left: 15%; right: 15%; height: 6%;
  background: linear-gradient(180deg, #6a4a2a 0%, #4a2a1a 100%);
  border-radius: 10% 10% 0 0;
  box-shadow: 0 -2px 8px rgba(0,0,0,0.5);
  animation: tcs-table 10s ease-in-out infinite alternate;
}
.scn-tom-cabin-supper .bowl {
  position: absolute; bottom: 15%; left: 45%; width: 8%; height: 6%;
  background: radial-gradient(circle, #8a6a4a 0%, #5a3a2a 100%);
  border-radius: 50%;
  box-shadow: 0 4px 6px rgba(0,0,0,0.4);
  animation: tcs-bowl 6s ease-in-out infinite;
}
.scn-tom-cabin-supper .figure-tom {
  position: absolute; bottom: 18%; left: 25%; width: 12%; height: 32%;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: tcs-tom 5s ease-in-out infinite;
}
.scn-tom-cabin-supper .figure-chloe {
  position: absolute; bottom: 18%; right: 25%; width: 10%; 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: tcs-chloe 5s ease-in-out infinite reverse;
}
.scn-tom-cabin-supper .figure-george-young {
  position: absolute; bottom: 20%; left: 48%; width: 8%; height: 20%;
  background: linear-gradient(180deg, #3a3a2a 0%, #2a2a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: tcs-young 7s ease-in-out infinite;
}
.scn-tom-cabin-supper .letters {
  position: absolute; bottom: 18%; left: 40%; width: 6%; height: 4%;
  background: linear-gradient(180deg, #c0a060 0%, #8a6a3a 100%);
  border-radius: 10% 10% 0 0;
  box-shadow: 0 2px 4px rgba(0,0,0,0.3);
  animation: tcs-letters 4s ease-in-out infinite alternate;
}
@keyframes tcs-wall { 0% { opacity: 0.7; } 50% { opacity: 1; } 100% { opacity: 0.8; } }
@keyframes tcs-fireplace { 0% { transform: scaleY(1); } 50% { transform: scaleY(1.02); } 100% { transform: scaleY(0.98); } }
@keyframes tcs-fire { 0% { box-shadow: 0 0 50px 15px #ff8040, 0 0 100px 30px rgba(255,128,64,0.3); opacity: 0.8; transform: scale(0.95); } 50% { box-shadow: 0 0 80px 25px #ffa060, 0 0 140px 45px rgba(255,160,96,0.6); opacity: 1; transform: scale(1); } 100% { box-shadow: 0 0 60px 20px #ff8040, 0 0 110px 35px rgba(255,128,64,0.4); opacity: 0.9; transform: scale(0.98); } }
@keyframes tcs-table { 0% { transform: translateY(0); } 50% { transform: translateY(-2px); } 100% { transform: translateY(0); } }
@keyframes tcs-bowl { 0% { transform: rotate(-3deg); } 50% { transform: rotate(3deg); } 100% { transform: rotate(-2deg); } }
@keyframes tcs-tom { 0% { transform: translateX(0) rotate(-1deg); } 50% { transform: translateX(2px) rotate(1deg); } 100% { transform: translateX(-1px) rotate(0deg); } }
@keyframes tcs-chloe { 0% { transform: translateX(0) rotate(1deg); } 50% { transform: translateX(-2px) rotate(-1deg); } 100% { transform: translateX(1px) rotate(0deg); } }
@keyframes tcs-young { 0% { transform: translateY(0); } 50% { transform: translateY(-2px); } 100% { transform: translateY(0); } }
@keyframes tcs-letters { 0% { opacity: 0.6; transform: scale(0.95); } 100% { opacity: 1; transform: scale(1); } }

/* shelby-confession (tense, dim-interior) */
.scn-shelby-confession {
  background: linear-gradient(180deg, #1a1a2e 0%, #2a1a2a 40%, #1a1a1e 100%), radial-gradient(ellipse at 40% 30%, #2a1a3a 0%, transparent 60%);
}
.scn-shelby-confession .room-bg {
  position: absolute; inset: 0 0 20% 0;
  background: linear-gradient(180deg, #3a2a3a 0%, #2a1a2a 100%);
  box-shadow: inset 0 0 40px rgba(0,0,0,0.6);
  animation: sbc-room 10s ease-in-out infinite alternate;
}
.scn-shelby-confession .window-night {
  position: absolute; top: 10%; right: 15%; width: 15%; height: 25%;
  background: linear-gradient(180deg, #1a2a3a 0%, #0a1a2a 100%);
  border: 2px solid #4a3a4a;
  border-radius: 5% 5% 0 0;
  box-shadow: inset 0 0 20px rgba(0,0,0,0.5);
  animation: sbc-window 8s ease-in-out infinite alternate;
}
.scn-shelby-confession .desk {
  position: absolute; bottom: 15%; left: 20%; right: 20%; height: 6%;
  background: linear-gradient(180deg, #4a3a3a 0%, #3a2a2a 100%);
  border-radius: 10% 10% 0 0;
  box-shadow: 0 -4px 12px rgba(0,0,0,0.5);
  animation: sbc-desk 6s ease-in-out infinite alternate;
}
.scn-shelby-confession .figure-mr-shelby {
  position: absolute; bottom: 18%; left: 25%; width: 12%; height: 36%;
  background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: sbc-mr 5s ease-in-out infinite;
}
.scn-shelby-confession .figure-mrs-shelby {
  position: absolute; bottom: 18%; right: 25%; width: 11%; height: 34%;
  background: linear-gradient(180deg, #3a2a3a 0%, #2a1a2a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: sbc-mrs 5s ease-in-out infinite reverse;
}
.scn-shelby-confession .papers {
  position: absolute; bottom: 18%; left: 40%; width: 8%; height: 3%;
  background: linear-gradient(180deg, #8a6a4a 0%, #6a4a2a 100%);
  border-radius: 10% 10% 0 0;
  box-shadow: 0 2px 4px rgba(0,0,0,0.3);
  animation: sbc-papers 7s ease-in-out infinite alternate;
}
.scn-shelby-confession .candle {
  position: absolute; top: 20%; left: 48%; width: 3%; height: 8%;
  background: linear-gradient(180deg, #6a4a3a 0%, #4a2a1a 100%);
  border-radius: 30% 30% 10% 10%;
  box-shadow: 0 0 10px 2px #c08040;
  animation: sbc-candle 3s ease-in-out infinite alternate;
}
@keyframes sbc-room { 0% { opacity: 0.6; } 50% { opacity: 0.9; } 100% { opacity: 0.7; } }
@keyframes sbc-window { 0% { opacity: 0.5; transform: scaleY(1); } 50% { opacity: 0.7; transform: scaleY(1.02); } 100% { opacity: 0.6; transform: scaleY(0.98); } }
@keyframes sbc-desk { 0% { transform: translateY(0); } 50% { transform: translateY(-2px); } 100% { transform: translateY(0); } }
@keyframes sbc-mr { 0% { transform: translateX(0) rotate(-1deg); } 50% { transform: translateX(3px) rotate(1deg); } 100% { transform: translateX(-2px) rotate(0deg); } }
@keyframes sbc-mrs { 0% { transform: translateX(0) rotate(1deg); } 50% { transform: translateX(-3px) rotate(-1deg); } 100% { transform: translateX(2px) rotate(0deg); } }
@keyframes sbc-papers { 0% { opacity: 0.6; transform: rotate(-2deg); } 50% { opacity: 0.9; transform: rotate(2deg); } 100% { opacity: 0.7; transform: rotate(-1deg); } }
@keyframes sbc-candle { 0% { box-shadow: 0 0 8px 1px #c08040; opacity: 0.6; } 50% { box-shadow: 0 0 14px 4px #d09050; opacity: 1; } 100% { box-shadow: 0 0 10px 2px #c08040; opacity: 0.8; } }

.scn-slave-auction-halley { background: linear-gradient(180deg, #6b7b7b 0%, #4f5a5a 30%, #323939 100%), radial-gradient(ellipse at 50% 100%, #3a4343 0%, transparent 65%); position: relative; overflow: hidden; }
.scn-slave-auction-halley .boardwalk { position: absolute; bottom: 0; left: 0; right: 0; height: 30%; background: linear-gradient(180deg, #4f3e32 0%, #3a2e24 40%, #2d1f14 100%); box-shadow: inset 0 12px 20px rgba(0,0,0,0.5); }
.scn-slave-auction-halley .block { position: absolute; bottom: 28%; left: 50%; width: 80px; height: 32px; transform: translateX(-50%); background: linear-gradient(180deg, #5e4c3c 0%, #3f3126 100%); border-radius: 4px; box-shadow: 0 4px 10px rgba(0,0,0,0.6); }
.scn-slave-auction-halley .auctioneer { position: absolute; bottom: 32%; left: 50%; width: 22px; height: 50px; transform: translateX(-50%); background: linear-gradient(180deg, #2f2a26 0%, #1c1815 100%); border-radius: 45% 45% 40% 40% / 55% 55% 30% 30%; animation: saha-auctioneer 4s ease-in-out infinite; }
.scn-slave-auction-halley .chain-gang { position: absolute; bottom: 30%; right: 16%; width: 14px; height: 40px; background: linear-gradient(180deg, #2a2520 0%, #151210 100%); border-radius: 40% 40% 30% 30%; transform-origin: bottom center; animation: saha-chain 6s ease-in-out infinite; }
.scn-slave-auction-halley .mother-figure { position: absolute; bottom: 30%; left: 16%; width: 20px; height: 42px; background: linear-gradient(180deg, #2f2a26 0%, #1c1815 100%); border-radius: 50% 50% 40% 40% / 60% 60% 35% 35%; transform-origin: bottom center; animation: saha-mother 8s ease-in-out infinite; }
.scn-slave-auction-halley .boy-child { position: absolute; bottom: 30%; left: 38%; width: 10px; height: 22px; background: linear-gradient(180deg, #3a332c 0%, #241e1a 100%); border-radius: 50% 50% 40% 40%; animation: saha-boy 5s ease-in-out infinite; }
.scn-slave-auction-halley .crowd-left { position: absolute; bottom: 30%; left: 6%; width: 18px; height: 48px; background: linear-gradient(180deg, #4a443e 0%, #2e2823 100%); border-radius: 45% 45% 35% 35%; transform: scale(0.9); animation: saha-crowd-l 7s ease-in-out infinite; }
.scn-slave-auction-halley .crowd-right { position: absolute; bottom: 30%; right: 8%; width: 18px; height: 46px; background: linear-gradient(180deg, #4a443e 0%, #2e2823 100%); border-radius: 45% 45% 35% 35%; transform: scale(0.85); animation: saha-crowd-r 9s ease-in-out infinite; }
.scn-slave-auction-halley .overcast-sky { position: absolute; top: 0; left: 0; right: 0; height: 60%; background: linear-gradient(180deg, #7a8a8a 0%, #5c6b6b 50%, #4d5a5a 100%); animation: saha-sky 12s ease-in-out infinite alternate; }
@keyframes saha-auctioneer { 0% { transform: translateX(-50%) translateY(0) rotate(-2deg); } 33% { transform: translateX(-50%) translateY(-2px) rotate(1deg); } 66% { transform: translateX(-50%) translateY(1px) rotate(-1deg); } 100% { transform: translateX(-50%) translateY(0) rotate(0); } }
@keyframes saha-chain { 0% { transform: translateY(0) rotate(-1deg); } 50% { transform: translateY(-3px) rotate(2deg); } 100% { transform: translateY(1px) rotate(-1deg); } }
@keyframes saha-mother { 0% { transform: translateX(0) translateY(0); } 25% { transform: translateX(3px) translateY(-2px); } 50% { transform: translateX(6px) translateY(0); } 75% { transform: translateX(3px) translateY(-1px); } 100% { transform: translateX(0) translateY(0); } }
@keyframes saha-boy { 0% { transform: translateY(0) rotate(0); } 50% { transform: translateY(-2px) rotate(5deg); } 100% { transform: translateY(0) rotate(0); } }
@keyframes saha-crowd-l { 0% { transform: scale(0.9) translateY(0); } 50% { transform: scale(0.9) translateY(-2px); } 100% { transform: scale(0.9) translateY(1px); } }
@keyframes saha-crowd-r { 0% { transform: scale(0.85) translateY(0); } 50% { transform: scale(0.85) translateY(1px); } 100% { transform: scale(0.85) translateY(-2px); } }
@keyframes saha-sky { 0% { opacity: 0.7; } 50% { opacity: 0.9; } 100% { opacity: 0.6; } }

.scn-lucy-despair-boat { background: linear-gradient(180deg, #1f1f28 0%, #15141a 35%, #0d0c10 100%), radial-gradient(ellipse at 50% 30%, #2a2838 0%, transparent 70%); position: relative; overflow: hidden; }
.scn-lucy-despair-boat .cabin-wall { position: absolute; top: 0; left: 0; right: 0; height: 65%; background: linear-gradient(180deg, #2c2a34 0%, #1c1a24 100%); box-shadow: inset 0 8px 20px rgba(0,0,0,0.6); }
.scn-lucy-despair-boat .cabin-floor { position: absolute; bottom: 0; left: 0; right: 0; height: 35%; background: linear-gradient(180deg, #2b241c 0%, #1c1712 100%); box-shadow: inset 0 6px 12px rgba(0,0,0,0.5); }
.scn-lucy-despair-boat .lucy-figure { position: absolute; bottom: 24%; left: 50%; width: 28px; height: 52px; transform: translateX(-50%); background: linear-gradient(180deg, #2f2a2e 0%, #1a161c 100%); border-radius: 50% 50% 40% 40% / 55% 55% 30% 30%; transform-origin: bottom center; animation: ldb-lucy 6s ease-in-out infinite; }
.scn-lucy-despair-boat .cradle-empty { position: absolute; bottom: 28%; left: 34%; width: 20px; height: 14px; background: linear-gradient(180deg, #3a3028 0%, #241e1a 100%); border-radius: 30% 30% 40% 40%; box-shadow: 0 2px 6px rgba(0,0,0,0.4); animation: ldb-cradle 4s ease-in-out infinite; }
.scn-lucy-despair-boat .tom-watching { position: absolute; bottom: 26%; right: 16%; width: 24px; height: 50px; background: linear-gradient(180deg, #2a262a 0%, #16141a 100%); border-radius: 45% 45% 38% 38% / 55% 55% 30% 30%; transform-origin: bottom center; animation: ldb-tom 8s ease-in-out infinite; }
.scn-lucy-despair-boat .lantern-glow { position: absolute; top: 24%; left: 50%; width: 8px; height: 8px; transform: translateX(-50%); background: radial-gradient(circle, #d4a050 0%, #b08030 60%); border-radius: 50%; box-shadow: 0 0 24px 8px rgba(180, 130, 60, 0.6), 0 0 48px 16px rgba(180, 130, 60, 0.3); animation: ldb-lantern 3s ease-in-out infinite alternate; }
.scn-lucy-despair-boat .chain-coil { position: absolute; bottom: 28%; left: 22%; width: 12px; height: 6px; background: #1c1a18; border-radius: 40%; box-shadow: 0 4px 0 #1c1a18, 0 8px 0 #1c1a18; animation: ldb-chain 5s ease-in-out infinite; }
@keyframes ldb-lucy { 0% { transform: translateX(-50%) translateY(0) rotate(-2deg); } 25% { transform: translateX(-50%) translateY(-1px) rotate(1deg); } 50% { transform: translateX(-50%) translateY(3px) rotate(0); } 75% { transform: translateX(-50%) translateY(1px) rotate(-1deg); } 100% { transform: translateX(-50%) translateY(0) rotate(0); } }
@keyframes ldb-cradle { 0% { transform: translateY(0) rotate(-3deg); } 50% { transform: translateY(-1px) rotate(2deg); } 100% { transform: translateY(0) rotate(-2deg); } }
@keyframes ldb-tom { 0% { transform: translateY(0) rotate(1deg); } 33% { transform: translateY(-2px) rotate(-1deg); } 66% { transform: translateY(1px) rotate(0); } 100% { transform: translateY(0) rotate(1deg); } }
@keyframes ldb-lantern { 0% { box-shadow: 0 0 20px 6px rgba(180,130,60,0.5), 0 0 40px 12px rgba(180,130,60,0.2); opacity: 0.8; } 50% { box-shadow: 0 0 32px 12px rgba(200,150,70,0.7), 0 0 60px 20px rgba(200,150,70,0.4); opacity: 1; } 100% { box-shadow: 0 0 24px 8px rgba(180,130,60,0.5), 0 0 48px 16px rgba(180,130,60,0.25); opacity: 0.9; } }
@keyframes ldb-chain { 0% { transform: translateY(0); } 50% { transform: translateY(2px); } 100% { transform: translateY(0); } }

.scn-quaker-refuge-eliza { background: linear-gradient(180deg, #e8dcc8 0%, #d4c4a8 40%, #bfa88c 100%), radial-gradient(ellipse at 50% 80%, #c8b898 0%, transparent 65%); position: relative; overflow: hidden; }
.scn-quaker-refuge-eliza .hearth { position: absolute; bottom: 12%; left: 50%; width: 80px; height: 50px; transform: translateX(-50%); background: linear-gradient(180deg, #6b4a30 0%, #4a2e1c 100%); border-radius: 40% 40% 20% 20%; box-shadow: inset 0 6px 15px rgba(0,0,0,0.3); }
.scn-quaker-refuge-eliza .hearth-glow { position: absolute; bottom: 16%; left: 50%; width: 50px; height: 30px; transform: translateX(-50%); background: radial-gradient(ellipse, #e8a040 0%, #c07020 50%, transparent 100%); border-radius: 50%; box-shadow: 0 0 40px 20px rgba(200, 120, 40, 0.4); animation: qre-hearth 4s ease-in-out infinite alternate; }
.scn-quaker-refuge-eliza .table-wood { position: absolute; bottom: 18%; left: 50%; width: 100px; height: 12px; transform: translateX(-50%); background: linear-gradient(90deg, #7a5a3a 0%, #8a6a4a 50%, #7a5a3a 100%); border-radius: 4px; box-shadow: 0 4px 8px rgba(0,0,0,0.15); }
.scn-quaker-refuge-eliza .window-light { position: absolute; top: 14%; right: 16%; width: 50px; height: 60px; background: linear-gradient(180deg, #f0e8d0 0%, #dcd0b8 100%); border-radius: 4px; box-shadow: 0 0 30px 15px rgba(240, 232, 208, 0.5), 0 0 60px 30px rgba(240, 232, 208, 0.2); animation: qre-window 6s ease-in-out infinite alternate; }
.scn-quaker-refuge-eliza .eliza-figure { position: absolute; bottom: 20%; left: 38%; width: 22px; height: 46px; background: linear-gradient(180deg, #6a5a4a 0%, #4a3a2e 100%); border-radius: 50% 50% 40% 40% / 60% 60% 30% 30%; transform-origin: bottom center; animation: qre-eliza 5s ease-in-out infinite; }
.scn-quaker-refuge-eliza .george-figure { position: absolute; bottom: 20%; right: 38%; width: 24px; height: 48px; background: linear-gradient(180deg, #5a4e3e 0%, #3a3024 100%); border-radius: 50% 50% 40% 40% / 55% 55% 35% 35%; transform-origin: bottom center; animation: qre-george 5s ease-in-out infinite reverse; }
.scn-quaker-refuge-eliza .halliday-table { position: absolute; bottom: 24%; left: 50%; width: 60px; height: 6px; transform: translateX(-50%); background: #6b4e36; border-radius: 2px; box-shadow: 0 2px 4px rgba(0,0,0,0.1); }
.scn-quaker-refuge-eliza .steam-wisp { position: absolute; bottom: 30%; left: 46%; width: 8px; height: 12px; background: radial-gradient(ellipse, rgba(255,255,255,0.5) 0%, transparent 100%); border-radius: 50%; filter: blur(3px); animation: qre-steam 7s ease-in-out infinite; }
@keyframes qre-hearth { 0% { opacity: 0.7; transform: translateX(-50%) scale(0.9); } 50% { opacity: 1; transform: translateX(-50%) scale(1.1); } 100% { opacity: 0.8; transform: translateX(-50%) scale(0.95); } }
@keyframes qre-window { 0% { opacity: 0.8; box-shadow: 0 0 25px 10px rgba(240,232,208,0.4), 0 0 50px 20px rgba(240,232,208,0.15); } 50% { opacity: 1; box-shadow: 0 0 40px 20px rgba(240,232,208,0.6), 0 0 80px 40px rgba(240,232,208,0.3); } 100% { opacity: 0.9; box-shadow: 0 0 30px 15px rgba(240,232,208,0.45), 0 0 60px 30px rgba(240,232,208,0.2); } }
@keyframes qre-eliza { 0% { transform: translateY(0) rotate(-2deg); } 25% { transform: translateY(-2px) rotate(1deg); } 50% { transform: translateY(0) rotate(2deg); } 75% { transform: translateY(-1px) rotate(-1deg); } 100% { transform: translateY(0) rotate(-2deg); } }
@keyframes qre-george { 0% { transform: translateY(0) rotate(2deg); } 25% { transform: translateY(-1px) rotate(-1deg); } 50% { transform: translateY(-2px) rotate(0); } 75% { transform: translateY(0) rotate(1deg); } 100% { transform: translateY(0) rotate(2deg); } }
@keyframes qre-steam { 0% { transform: translateY(0) rotate(0); opacity: 0.4; } 50% { transform: translateY(-6px) rotate(10deg); opacity: 0.2; } 100% { transform: translateY(-12px) rotate(20deg); opacity: 0; } }

.scn-tom-rescues-eva { background: linear-gradient(180deg, #c8d8e8 0%, #a0bcd4 30%, #7fa8c8 60%), radial-gradient(ellipse at 50% 100%, #b8d0e0 0%, transparent 70%); position: relative; overflow: hidden; }
.scn-tom-rescues-eva .river-sky { position: absolute; top: 0; left: 0; right: 0; height: 55%; background: linear-gradient(180deg, #b0cce0 0%, #8ab0d0 100%); animation: tre-sky 10s ease-in-out infinite alternate; }
.scn-tom-rescues-eva .deck-planks { position: absolute; bottom: 20%; left: 0; right: 0; height: 30%; background: linear-gradient(180deg, #7a6a54 0%, #5a4c3a 40%, #3a3024 100%); box-shadow: inset 0 8px 20px rgba(0,0,0,0.3); }
.scn-tom-rescues-eva .rail-post { position: absolute; bottom: 38%; left: 50%; width: 6px; height: 40px; transform: translateX(-50%); background: linear-gradient(180deg, #1c1a18 0%, #0d0c0a 100%); border-radius: 2px; box-shadow: -20px 0 0 #1c1a18, 20px 0 0 #1c1a18; animation: tre-rail 4s ease-in-out infinite; }
.scn-tom-rescues-eva .eva-falling { position: absolute; bottom: 34%; left: 60%; width: 14px; height: 30px; background: linear-gradient(180deg, #d4b8a0 0%, #a08068 100%); border-radius: 50% 50% 40% 40% / 50% 50% 30% 30%; transform-origin: top center; animation: tre-eva 2s ease-in-out infinite; }
.scn-tom-rescues-eva .tom-reaching { position: absolute; bottom: 32%; left: 46%; width: 24px; height: 48px; background: linear-gradient(180deg, #3a322a 0%, #1c1814 100%); border-radius: 45% 45% 38% 38% / 55% 55% 30% 30%; transform-origin: bottom left; animation: tre-tom 3s ease-in-out infinite; }
.scn-tom-rescues-eva .splash-spray { position: absolute; bottom: 22%; left: 56%; width: 30px; height: 20px; background: radial-gradient(ellipse, rgba(255,255,255,0.7) 0%, transparent 100%); border-radius: 50%; filter: blur(4px); animation: tre-splash 1.5s ease-in-out infinite; }
.scn-tom-rescues-eva .st-clare-figure { position: absolute; bottom: 36%; right: 20%; width: 22px; height: 50px; background: linear-gradient(180deg, #4a4038 0%, #2a221c 100%); border-radius: 45% 45% 35% 35% / 55% 55% 30% 30%; transform-origin: bottom center; animation: tre-stclare 4s ease-in-out infinite; }
.scn-tom-rescues-eva .sunburst { position: absolute; top: 14%; left: 60%; width: 40px; height: 40px; background: radial-gradient(circle, #ffe8b0 0%, #ffd480 40%, transparent 100%); border-radius: 50%; box-shadow: 0 0 60px 30px rgba(255, 212, 128, 0.3), 0 0 120px 60px rgba(255, 212, 128, 0.1); animation: tre-sun 8s ease-in-out infinite alternate; }
@keyframes tre-sky { 0% { opacity: 0.8; } 50% { opacity: 1; } 100% { opacity: 0.9; } }
@keyframes tre-rail { 0% { transform: translateX(-50%) translateY(0); } 50% { transform: translateX(-50%) translateY(-2px); } 100% { transform: translateX(-50%) translateY(0); } }
@keyframes tre-eva { 0% { transform: translateY(0) rotate(-5deg); } 50% { transform: translateY(6px) rotate(3deg); } 100% { transform: translateY(0) rotate(-5deg); } }
@keyframes tre-tom { 0% { transform: translateY(0) rotate(10deg); } 33% { transform: translateY(-2px) rotate(5deg); } 66% { transform: translateY(1px) rotate(15deg); } 100% { transform: translateY(0) rotate(10deg); } }
@keyframes tre-splash { 0% { transform: scale(1); opacity: 0.6; } 50% { transform: scale(1.3); opacity: 0.2; } 100% { transform: scale(1); opacity: 0.6; } }
@keyframes tre-stclare { 0% { transform: translateY(0) rotate(-1deg); } 33% { transform: translateY(-2px) rotate(1deg); } 66% { transform: translateY(0) rotate(0); } 100% { transform: translateY(0) rotate(-1deg); } }
@keyframes tre-sun { 0% { opacity: 0.7; transform: scale(0.9); } 50% { opacity: 1; transform: scale(1.1); } 100% { opacity: 0.8; transform: scale(0.95); } }

/* Scene: st-clare-grief */
.scn-st-clare-grief {
  background:
    linear-gradient(180deg, #2a1e1a 0%, #1e120e 40%, #120a08 100%),
    radial-gradient(ellipse at 60% 30%, #3a2a20 0%, transparent 70%);
}
.scn-st-clare-grief .bg-room {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, #2e221c 0%, #1a110c 100%);
  animation: sg-bg 20s ease-in-out infinite alternate;
}
.scn-st-clare-grief .table {
  position: absolute; bottom: 8%; left: 25%; width: 40%; height: 12%;
  background: linear-gradient(180deg, #4a3522 0%, #2a1e12 100%);
  border-radius: 2px 2px 0 0; box-shadow: 0 -4px 12px rgba(0,0,0,.6);
  animation: sg-table 15s ease-in-out infinite;
}
.scn-st-clare-grief .bible {
  position: absolute; bottom: 18%; left: 42%; width: 8%; height: 6%;
  background: linear-gradient(135deg, #503525 0%, #3a2518 100%);
  border-radius: 1px; box-shadow: 0 2px 8px rgba(0,0,0,.5), inset 0 0 4px #6a4a30;
  transform: rotate(-5deg); animation: sg-bible 8s ease-in-out infinite;
}
.scn-st-clare-grief .figure-kneeling {
  position: absolute; bottom: 10%; left: 35%; width: 10%; height: 20%;
  background: linear-gradient(180deg, #2a1a10 0%, #1a0e08 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: sg-kneel 6s ease-in-out infinite;
}
.scn-st-clare-grief .figure-standing {
  position: absolute; bottom: 10%; left: 55%; width: 8%; height: 28%;
  background: linear-gradient(180deg, #3a2820 0%, #1e1410 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: sg-stand 12s ease-in-out infinite;
}
.scn-st-clare-grief .candle {
  position: absolute; bottom: 20%; left: 48%; width: 2%; height: 6%;
  background: linear-gradient(180deg, #e8d4a0 0%, #c8b070 50%, #806040 100%);
  border-radius: 50% 50% 10% 10%;
  box-shadow: 0 0 20px 6px rgba(200,176,100,.4), 0 0 40px 12px rgba(200,176,100,.15);
  animation: sg-candle 3s ease-in-out infinite alternate;
}
.scn-st-clare-grief .shadow-overlay {
  position: absolute; inset: 0;
  background: radial-gradient(ellipse at 48% 50%, transparent 40%, rgba(0,0,0,.6) 100%);
  animation: sg-shadow 25s ease-in-out infinite;
}
.scn-st-clare-grief .dust {
  position: absolute; top: 20%; left: 30%; width: 40%; height: 30%;
  background: radial-gradient(circle at 20% 40%, rgba(200,180,150,.15) 0%, transparent 50%);
  filter: blur(4px);
  animation: sg-dust 30s linear infinite;
}
@keyframes sg-bg { 0% { opacity: .9; } 50% { opacity: 1; } 100% { opacity: .85; } }
@keyframes sg-table { 0% { transform: translateY(0); } 50% { transform: translateY(-1px); } 100% { transform: translateY(0); } }
@keyframes sg-bible { 0% { transform: rotate(-5deg) scale(1); } 25% { transform: rotate(-4deg) scale(1.01); } 100% { transform: rotate(-5deg) scale(1); } }
@keyframes sg-kneel { 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 sg-stand { 0% { transform: translateX(0) rotate(-1deg); } 33% { transform: translateX(3px) rotate(1deg); } 66% { transform: translateX(0) rotate(-1deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes sg-candle { 0% { transform: scaleY(1) scaleX(1); opacity: .8; box-shadow: 0 0 15px 4px rgba(200,176,100,.3); } 50% { transform: scaleY(1.05) scaleX(0.95); opacity: 1; box-shadow: 0 0 25px 8px rgba(200,176,100,.5); } 100% { transform: scaleY(1) scaleX(1); opacity: .9; box-shadow: 0 0 18px 5px rgba(200,176,100,.35); } }
@keyframes sg-shadow { 0% { opacity: .7; } 50% { opacity: .8; } 100% { opacity: .65; } }
@keyframes sg-dust { 0% { transform: translate(0,0); } 25% { transform: translate(5px,-3px); } 50% { transform: translate(10px,0); } 75% { transform: translate(5px,3px); } 100% { transform: translate(0,0); } }

/* Scene: st-clare-death-fight */
.scn-st-clare-death-fight {
  background:
    linear-gradient(180deg, #1e1612 0%, #140c08 40%, #0a0604 100%),
    radial-gradient(ellipse at 30% 40%, #2a1e18 0%, transparent 60%);
}
.scn-st-clare-death-fight .bg-wall {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, #2a1e18 0%, #1a120e 100%);
  animation: df-bg 22s ease-in-out infinite alternate;
}
.scn-st-clare-death-fight .book-open {
  position: absolute; bottom: 15%; left: 40%; width: 12%; height: 8%;
  background: linear-gradient(135deg, #4a3520 0%, #2a1e10 100%);
  border-radius: 2px; box-shadow: 0 2px 10px rgba(0,0,0,.7);
  transform: rotate(3deg); animation: df-book 10s ease-in-out infinite;
}
.scn-st-clare-death-fight .hand {
  position: absolute; bottom: 22%; left: 48%; width: 4%; height: 6%;
  background: linear-gradient(180deg, #6a5040 0%, #4a3525 100%);
  border-radius: 50% 50% 40% 40%; transform-origin: bottom center;
  animation: df-hand 2s ease-in-out infinite;
}
.scn-st-clare-death-fight .letter {
  position: absolute; bottom: 20%; left: 55%; width: 6%; height: 4%;
  background: linear-gradient(135deg, #a08060 0%, #806040 100%);
  border-radius: 1px; box-shadow: 0 1px 4px rgba(0,0,0,.5);
  transform: rotate(-10deg); animation: df-letter 8s ease-in-out infinite;
}
.scn-st-clare-death-fight .figure-pacing {
  position: absolute; bottom: 8%; left: 20%; width: 8%; height: 30%;
  background: linear-gradient(180deg, #2a1a14 0%, #1a0e0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: df-pace 4s ease-in-out infinite;
}
.scn-st-clare-death-fight .oil-lamp {
  position: absolute; bottom: 30%; left: 30%; width: 3%; height: 8%;
  background: radial-gradient(ellipse, #d4b080 0%, #a08050 100%);
  border-radius: 50% 50% 20% 20%; box-shadow: 0 0 30px 8px rgba(180,140,80,.3), 0 0 60px 15px rgba(180,140,80,.1);
  animation: df-lamp 3s ease-in-out infinite alternate;
}
.scn-st-clare-death-fight .shadow-man {
  position: absolute; bottom: 8%; left: 65%; width: 10%; height: 30%;
  background: rgba(0,0,0,.4); filter: blur(6px);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: df-shadowman 6s ease-in-out infinite;
}
.scn-st-clare-death-fight .smoke {
  position: absolute; top: 10%; left: 10%; width: 30%; height: 20%;
  background: radial-gradient(ellipse, rgba(180,140,80,.08) 0%, transparent 70%);
  filter: blur(8px);
  animation: df-smoke 20s linear infinite;
}
@keyframes df-bg { 0% { opacity: .9; } 50% { opacity: 1; } 100% { opacity: .85; } }
@keyframes df-book { 0% { transform: rotate(3deg) translateY(0); } 25% { transform: rotate(1deg) translateY(-1px); } 50% { transform: rotate(3deg) translateY(0); } 75% { transform: rotate(4deg) translateY(-1px); } 100% { transform: rotate(3deg) translateY(0); } }
@keyframes df-hand { 0% { transform: rotate(0deg) scaleY(1); } 25% { transform: rotate(10deg) scaleY(0.95); } 50% { transform: rotate(0deg) scaleY(1); } 75% { transform: rotate(-10deg) scaleY(0.95); } 100% { transform: rotate(0deg) scaleY(1); } }
@keyframes df-letter { 0% { transform: rotate(-10deg) translateY(0) scale(1); } 50% { transform: rotate(-8deg) translateY(-2px) scale(1.02); } 100% { transform: rotate(-10deg) translateY(0) scale(1); } }
@keyframes df-pace { 0% { transform: translateX(0) rotate(0deg); } 25% { transform: translateX(10px) rotate(1deg); } 50% { transform: translateX(20px) rotate(0deg); } 75% { transform: translateX(10px) rotate(-1deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes df-lamp { 0% { opacity: .7; box-shadow: 0 0 20px 5px rgba(180,140,80,.2); } 50% { opacity: 1; box-shadow: 0 0 40px 12px rgba(180,140,80,.4); } 100% { opacity: .8; box-shadow: 0 0 25px 6px rgba(180,140,80,.25); } }
@keyframes df-shadowman { 0% { transform: translateY(0) scaleX(1); } 50% { transform: translateY(-5px) scaleX(1.1); } 100% { transform: translateY(0) scaleX(1); } }
@keyframes df-smoke { 0% { transform: translate(0,0) scale(1); } 25% { transform: translate(10px,-5px) scale(1.1); } 50% { transform: translate(20px,0) scale(1); } 75% { transform: translate(15px,5px) scale(0.95); } 100% { transform: translate(0,0) scale(1); } }

/* Scene: st-clare-deathbed */
.scn-st-clare-deathbed {
  background:
    linear-gradient(180deg, #1a1210 0%, #100a08 40%, #080504 100%),
    radial-gradient(ellipse at 50% 40%, #2a1e18 0%, transparent 70%);
}
.scn-st-clare-deathbed .bg-darkroom {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, #1e1614 0%, #0e0a08 100%);
  animation: db-bg 24s ease-in-out infinite alternate;
}
.scn-st-clare-deathbed .bed {
  position: absolute; bottom: 5%; left: 20%; width: 60%; height: 20%;
  background: linear-gradient(180deg, #4a3520 0%, #2a1e10 100%);
  border-radius: 10% 10% 0 0; box-shadow: 0 -6px 20px rgba(0,0,0,.6);
  animation: db-bed 18s ease-in-out infinite;
}
.scn-st-clare-deathbed .figure-deathbed {
  position: absolute; bottom: 15%; left: 40%; width: 12%; height: 18%;
  background: linear-gradient(180deg, #3a2820 0%, #1e1410 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: db-dying 8s ease-in-out infinite;
}
.scn-st-clare-deathbed .figure-praying {
  position: absolute; bottom: 10%; left: 30%; width: 8%; height: 20%;
  background: linear-gradient(180deg, #2a1a14 0%, #1a0e0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: db-pray 6s ease-in-out infinite;
}
.scn-st-clare-deathbed .cross-glow {
  position: absolute; top: 15%; left: 48%; width: 4%; height: 10%;
  background: linear-gradient(180deg, #c0a870 0%, #8a6a40 100%);
  border-radius: 2px; box-shadow: 0 0 30px 8px rgba(192,168,112,.3), 0 0 60px 15px rgba(192,168,112,.1);
  animation: db-cross 5s ease-in-out infinite alternate;
}
.scn-st-clare-deathbed .candle-stand {
  position: absolute; bottom: 20%; left: 15%; width: 2%; height: 10%;
  background: linear-gradient(180deg, #6a4a30 0%, #3a2218 100%);
  border-radius: 1px;
  animation: db-candle 3s ease-in-out infinite;
}
.scn-st-clare-deathbed .curtains {
  position: absolute; top: 0; left: 0; width: 100%; height: 40%;
  background: linear-gradient(180deg, #1a0e0a 0%, transparent 100%);
  border-radius: 0 0 50% 50%; filter: blur(2px);
  animation: db-curtains 20s ease-in-out infinite;
}
.scn-st-clare-deathbed .soul-light {
  position: absolute; top: 10%; left: 45%; width: 10%; height: 10%;
  background: radial-gradient(circle, rgba(220,200,160,.3) 0%, transparent 70%);
  filter: blur(6px);
  animation: db-soul 9s ease-in-out infinite;
}
@keyframes db-bg { 0% { opacity: .9; } 50% { opacity: 1; } 100% { opacity: .85; } }
@keyframes db-bed { 0% { transform: scaleY(1); } 50% { transform: scaleY(1.01); } 100% { transform: scaleY(1); } }
@keyframes db-dying { 0% { transform: translateY(0) rotate(0deg); } 25% { transform: translateY(-2px) rotate(-2deg); } 50% { transform: translateY(0) rotate(0deg); } 75% { transform: translateY(-2px) rotate(2deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes db-pray { 0% { transform: translateY(0) scaleY(1); } 33% { transform: translateY(-1px) scaleY(1.02); } 66% { transform: translateY(0) scaleY(1); } 100% { transform: translateY(0) scaleY(1); } }
@keyframes db-cross { 0% { transform: scaleY(1); opacity: .7; box-shadow: 0 0 20px 5px rgba(192,168,112,.2); } 50% { transform: scaleY(1.05); opacity: 1; box-shadow: 0 0 40px 12px rgba(192,168,112,.4); } 100% { transform: scaleY(1); opacity: .8; box-shadow: 0 0 25px 6px rgba(192,168,112,.25); } }
@keyframes db-candle { 0% { transform: rotate(0deg) scaleY(1); } 25% { transform: rotate(1deg) scaleY(1.02); } 50% { transform: rotate(0deg) scaleY(1); } 75% { transform: rotate(-1deg) scaleY(0.98); } 100% { transform: rotate(0deg) scaleY(1); } }
@keyframes db-curtains { 0% { transform: translateY(0) scaleY(1); } 50% { transform: translateY(-3px) scaleY(1.02); } 100% { transform: translateY(0) scaleY(1); } }
@keyframes db-soul { 0% { transform: scale(0.9); opacity: .3; } 50% { transform: scale(1.2); opacity: .6; } 100% { transform: scale(0.9); opacity: .3; } }

/* Scene: slave-warehouse */
.scn-slave-warehouse {
  background:
    linear-gradient(180deg, #1a1412 0%, #120e0a 40%, #0a0604 100%),
    radial-gradient(ellipse at 20% 60%, #2a1e18 0%, transparent 70%);
}
.scn-slave-warehouse .bg-warehouse {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, #1e1814 0%, #0e0a08 100%);
  animation: sw-bg 26s ease-in-out infinite alternate;
}
.scn-slave-warehouse .bars {
  position: absolute; top: 0; left: 0; width: 100%; height: 100%;
  background: repeating-linear-gradient(0deg, transparent, transparent 8%, rgba(50,40,30,.3) 8%, rgba(50,40,30,.3) 9%);
  animation: sw-bars 15s ease-in-out infinite;
}
.scn-slave-warehouse .figure-crouched {
  position: absolute; bottom: 8%; left: 30%; width: 10%; height: 16%;
  background: linear-gradient(180deg, #2a1a14 0%, #1a0e0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: sw-crouch 7s ease-in-out infinite;
}
.scn-slave-warehouse .figure-standing-2 {
  position: absolute; bottom: 8%; left: 50%; width: 8%; height: 26%;
  background: linear-gradient(180deg, #3a2820 0%, #1e1410 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: sw-stand 10s ease-in-out infinite;
}
.scn-slave-warehouse .chain {
  position: absolute; bottom: 14%; left: 28%; width: 20%; height: 2%;
  background: repeating-linear-gradient(90deg, #5a4a3a 0%, #5a4a3a 3%, transparent 3%, transparent 6%);
  border-radius: 1px; box-shadow: 0 1px 4px rgba(0,0,0,.5);
  animation: sw-chain 5s ease-in-out infinite;
}
.scn-slave-warehouse .pail {
  position: absolute; bottom: 5%; left: 60%; width: 6%; height: 8%;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1e12 100%);
  border-radius: 0 0 30% 30%; box-shadow: 0 2px 6px rgba(0,0,0,.6);
  animation: sw-pail 12s ease-in-out infinite;
}
.scn-slave-warehouse .dust-motes {
  position: absolute; top: 0; left: 0; width: 100%; height: 100%;
  background: radial-gradient(circle at 20% 30%, rgba(180,160,140,.08) 0%, transparent 40%),
              radial-gradient(circle at 80% 70%, rgba(180,160,140,.05) 0%, transparent 30%);
  filter: blur(3px);
  animation: sw-dust 40s linear infinite;
}
.scn-slave-warehouse .floor-shadow {
  position: absolute; bottom: 0; left: 0; width: 100%; height: 20%;
  background: linear-gradient(0deg, rgba(0,0,0,.6) 0%, transparent 100%);
  animation: sw-floorshadow 20s ease-in-out infinite;
}
@keyframes sw-bg { 0% { opacity: .9; } 50% { opacity: 1; } 100% { opacity: .85; } }
@keyframes sw-bars { 0% { opacity: .2; } 50% { opacity: .35; } 100% { opacity: .2; } }
@keyframes sw-crouch { 0% { transform: translateY(0) rotate(0deg); } 25% { transform: translateY(-1px) rotate(-3deg); } 50% { transform: translateY(0) rotate(0deg); } 75% { transform: translateY(-1px) rotate(3deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes sw-stand { 0% { transform: translateX(0) rotate(0deg); } 33% { transform: translateX(4px) rotate(1deg); } 66% { transform: translateX(0) rotate(0deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes sw-chain { 0% { transform: translateY(0) scaleX(1); } 25% { transform: translateY(2px) scaleX(1.01); } 50% { transform: translateY(0) scaleX(1); } 75% { transform: translateY(2px) scaleX(0.99); } 100% { transform: translateY(0) scaleX(1); } }
@keyframes sw-pail { 0% { transform: rotate(0deg); } 25% { transform: rotate(2deg); } 50% { transform: rotate(0deg); } 75% { transform: rotate(-2deg); } 100% { transform: rotate(0deg); } }
@keyframes sw-dust { 0% { transform: scale(1); opacity: .5; } 25% { transform: scale(1.05); opacity: .6; } 50% { transform: scale(1); opacity: .5; } 75% { transform: scale(0.95); opacity: .4; } 100% { transform: scale(1); opacity: .5; } }
@keyframes sw-floorshadow { 0% { opacity: .6; } 50% { opacity: .7; } 100% { opacity: .6; } }

/* Scene 1 – eliza-flight-begins */
.scn-eliza-flight-begins {
  background: 
    linear-gradient(180deg, #2a1a0a 0%, #4a3018 30%, #c0803a 60%, #e8a852 80%, #c07028 100%),
    radial-gradient(ellipse at 50% 80%, #d09040 0%, transparent 60%);
}
.scn-eliza-flight-begins .dawn-sky {
  position: absolute; inset: 0 0 45% 0;
  background: linear-gradient(180deg, #d8a040 0%, #f0c060 40%, #ffe080 70%, #ffd060 100%);
  animation: ef1-sky 8s ease-in-out infinite alternate;
}
.scn-eliza-flight-begins .cabin-roof {
  position: absolute; bottom: 35%; left: 30%; width: 140px; height: 50px;
  background: linear-gradient(135deg, #5a3a1a 0%, #3a2210 100%);
  clip-path: polygon(5% 100%, 50% 0%, 95% 100%);
  animation: ef1-roof 12s ease-in-out infinite;
}
.scn-eliza-flight-begins .cabin-wall {
  position: absolute; bottom: 15%; left: 30%; width: 140px; height: 90px;
  background: linear-gradient(90deg, #6a4a28 0%, #8a6038 50%, #6a4a28 100%);
  border-radius: 4%;
  box-shadow: inset 0 -15px 20px rgba(0,0,0,0.3);
  animation: ef1-wall 6s ease-in-out infinite;
}
.scn-eliza-flight-begins .cabin-window {
  position: absolute; bottom: 35%; left: 42%; width: 24px; height: 28px;
  background: radial-gradient(circle, #ffe080 0%, #d09040 60%, #603010 100%);
  box-shadow: 0 0 20px 8px #e8a040, 0 0 40px 12px rgba(232,160,64,0.4);
  border-radius: 4px;
  animation: ef1-glow 3s ease-in-out infinite alternate;
}
.scn-eliza-flight-begins .eliza-figure {
  position: absolute; bottom: 18%; left: 48%; width: 16px; height: 40px;
  background: linear-gradient(180deg, #1a1a0a 0%, #0a0a00 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: ef1-eliza 4s ease-in-out infinite;
}
.scn-eliza-flight-begins .tree-left {
  position: absolute; bottom: 32%; left: 15%; width: 20px; height: 80px;
  background: linear-gradient(180deg, #2a1a0a 0%, #3a2210 100%);
  border-radius: 30% 30% 10% 10%;
  animation: ef1-tree 14s ease-in-out infinite;
}
.scn-eliza-flight-begins .tree-right {
  position: absolute; bottom: 32%; right: 12%; width: 22px; height: 90px;
  background: linear-gradient(180deg, #2a1a0a 0%, #3a2210 100%);
  border-radius: 30% 30% 10% 10%;
  animation: ef1-tree 16s ease-in-out infinite reverse;
}
.scn-eliza-flight-begins .dust-particles {
  position: absolute; top: 20%; left: 0; right: 0; height: 60%;
  background: repeating-linear-gradient(0deg, transparent, transparent 60px, rgba(240,200,100,0.02) 60px, rgba(240,200,100,0.02) 61px);
  animation: ef1-dust 10s linear infinite;
}
@keyframes ef1-sky    { 0% { opacity: 0.8; } 50% { opacity: 1; } 100% { opacity: 0.7; } }
@keyframes ef1-roof  { 0% { transform: translateY(0); } 50% { transform: translateY(-3px); } 100% { transform: translateY(0); } }
@keyframes ef1-wall  { 0% { box-shadow: inset 0 -15px 20px rgba(0,0,0,0.3); } 50% { box-shadow: inset 0 -10px 25px rgba(0,0,0,0.4); } 100% { box-shadow: inset 0 -15px 20px rgba(0,0,0,0.3); } }
@keyframes ef1-glow  { 0% { box-shadow: 0 0 15px 5px #e8a040, 0 0 30px 8px rgba(232,160,64,0.3); } 50% { box-shadow: 0 0 28px 12px #ffc060, 0 0 50px 18px rgba(255,192,96,0.5); } 100% { box-shadow: 0 0 18px 6px #e8a040, 0 0 35px 10px rgba(232,160,64,0.35); } }
@keyframes ef1-eliza { 0% { transform: translateX(0) translateY(0) rotate(-2deg); } 25% { transform: translateX(8px) translateY(-2px) rotate(2deg); } 50% { transform: translateX(16px) translateY(0) rotate(-2deg); } 75% { transform: translateX(24px) translateY(-2px) rotate(2deg); } 100% { transform: translateX(32px) translateY(0) rotate(0deg); } }
@keyframes ef1-tree  { 0% { transform: translateY(0) scaleY(1); } 50% { transform: translateY(-4px) scaleY(1.02); } 100% { transform: translateY(0) scaleY(1); } }
@keyframes ef1-dust  { 0% { background-position: 0 0; } 100% { background-position: 0 30px; } }

/* Scene 2 – eliza-night-flight */
.scn-eliza-night-flight {
  background:
    linear-gradient(180deg, #0a0a2a 0%, #1a1a3a 25%, #2a2a5a 50%, #4a3a6a 70%, #5a4a6a 85%),
    radial-gradient(ellipse at 50% 100%, #6a5a6a 0%, transparent 70%);
}
.scn-eliza-night-flight .dusk-sky {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #2a2a5a 0%, #5a4a6a 40%, #9a7a5a 70%, #c0a060 85%, #d8b870 100%);
  animation: ef2-sky 20s ease-in-out infinite alternate;
}
.scn-eliza-night-flight .horizon-glow {
  position: absolute; bottom: 30%; left: 20%; right: 20%; height: 10%;
  background: radial-gradient(ellipse at 50% 50%, #f0d090 0%, #d0a060 30%, transparent 70%);
  animation: ef2-glow 5s ease-in-out infinite alternate;
}
.scn-eliza-night-flight .silhouette-mother {
  position: absolute; bottom: 15%; left: 30%; width: 20px; height: 50px;
  background: #0a0a1a;
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  transform: scale(0.95);
  animation: ef2-mother 4s ease-in-out infinite;
}
.scn-eliza-night-flight .silhouette-child {
  position: absolute; bottom: 15%; left: 33%; width: 12px; height: 24px;
  background: #0a0a1a;
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  transform: scale(0.85);
  animation: ef2-child 4s ease-in-out infinite;
}
.scn-eliza-night-flight .reeds {
  position: absolute; bottom: 15%; width: 4px; height: 50px;
  background: #1a1a0a;
  border-radius: 50% 50% 0 0;
}
.scn-eliza-night-flight .reed-1 {
  left: 20%;
  animation: ef2-reed 6s ease-in-out infinite;
}
.scn-eliza-night-flight .reed-2 {
  left: 60%;
  animation: ef2-reed 7s ease-in-out infinite 0.5s;
}
.scn-eliza-night-flight .moon {
  position: absolute; top: 18%; left: 70%; width: 28px; height: 28px;
  background: radial-gradient(circle, #f0e8c0 0%, #d8d0a0 80%, transparent 100%);
  border-radius: 50%;
  box-shadow: 0 0 30px 15px rgba(240,232,192,0.3);
  animation: ef2-moon 10s ease-in-out infinite;
}
.scn-eliza-night-flight .stars {
  position: absolute; top: 8%; left: 10%; right: 10%; height: 35%;
  background: repeating-conic-gradient(rgba(255,255,255,0.8) 0%, transparent 10%, transparent 100%);
  background-size: 2px 2px;
  clip-path: polygon(10% 0%, 20% 10%, 30% 5%, 40% 15%, 50% 0%, 60% 8%, 70% 12%, 80% 3%, 90% 18%, 100% 0%);
  animation: ef2-stars 30s linear infinite;
}
@keyframes ef2-sky    { 0% { opacity: 0.6; } 50% { opacity: 0.8; } 100% { opacity: 0.7; } }
@keyframes ef2-glow   { 0% { opacity: 0.7; } 50% { opacity: 1; } 100% { opacity: 0.8; } }
@keyframes ef2-mother { 0% { transform: translateX(0) translateY(0) scale(0.95); } 25% { transform: translateX(6px) translateY(-2px) scale(0.95) rotate(-2deg); } 50% { transform: translateX(12px) translateY(0) scale(0.95); } 75% { transform: translateX(18px) translateY(-1px) scale(0.95) rotate(2deg); } 100% { transform: translateX(24px) translateY(0) scale(0.95); } }
@keyframes ef2-child { 0% { transform: translateX(0) translateY(0) scale(0.85); } 25% { transform: translateX(6px) translateY(-2px) scale(0.85) rotate(1deg); } 50% { transform: translateX(12px) translateY(0) scale(0.85); } 75% { transform: translateX(18px) translateY(-1px) scale(0.85) rotate(-1deg); } 100% { transform: translateX(24px) translateY(0) scale(0.85); } }
@keyframes ef2-reed  { 0% { transform: rotate(0deg); } 50% { transform: rotate(6deg); } 100% { transform: rotate(0deg); } }
@keyframes ef2-moon  { 0% { transform: translateY(0); } 50% { transform: translateY(-4px); } 100% { transform: translateY(0); } }
@keyframes ef2-stars { 0% { background-position: 0 0; } 100% { background-position: 0 -60px; } }

/* Scene 3 – shelby-farm-after */
.scn-shelby-farm-after {
  background:
    linear-gradient(180deg, #3a3a3a 0%, #5a4a3a 30%, #6a5a4a 50%, #4a3a2a 80%),
    radial-gradient(ellipse at 50% 80%, #5a4a3a 0%, transparent 60%);
}
.scn-shelby-farm-after .overcast-bg {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(180deg, #6a6a6a 0%, #8a8a7a 30%, #9a9a8a 60%, #7a7a6a 100%);
  animation: sf3-bg 18s ease-in-out infinite alternate;
}
.scn-shelby-farm-after .window-frame {
  position: absolute; top: 10%; left: 40%; width: 80px; height: 100px;
  background: #3a2a1a;
  border-radius: 6px;
  box-shadow: inset 0 0 20px rgba(0,0,0,0.5);
}
.scn-shelby-farm-after .window-glass {
  position: absolute; top: 12%; left: 42%; width: 72px; height: 92px;
  background: linear-gradient(180deg, #8a8a7a 0%, #6a6a5a 100%);
  opacity: 0.3;
  border-radius: 4px;
  animation: sf3-glass 20s ease-in-out infinite;
}
.scn-shelby-farm-after .tom-figure {
  position: absolute; bottom: 20%; left: 30%; width: 22px; height: 60px;
  background: linear-gradient(180deg, #1a1a0a 0%, #2a2a1a 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  transform: scale(1.02);
  animation: sf3-tom 6s ease-in-out infinite;
}
.scn-shelby-farm-after .servant-group {
  position: absolute; bottom: 18%; left: 35%; width: 16px; height: 20px;
  background: #1a1a0a;
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  opacity: 0.7;
  animation: sf3-servant 8s ease-in-out infinite;
}
.scn-shelby-farm-after .servant-group::before {
  content: '';
  position: absolute; left: 20px; bottom: 0; width: 16px; height: 18px;
  background: #1a1a0a;
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  animation: inherit;
  animation-delay: -2s;
}
.scn-shelby-farm-after .table {
  position: absolute; bottom: 12%; left: 25%; width: 120px; height: 8px;
  background: #4a3a2a;
  border-radius: 4px;
  box-shadow: 0 4px 8px rgba(0,0,0,0.3);
  animation: sf3-table 10s ease-in-out infinite;
}
.scn-shelby-farm-after .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #3a2a1a 0%, #2a1a0a 100%);
  border-radius: 0 0 10% 10%;
}
@keyframes sf3-bg      { 0% { opacity: 0.6; } 50% { opacity: 0.8; } 100% { opacity: 0.7; } }
@keyframes sf3-glass   { 0% { opacity: 0.2; } 50% { opacity: 0.4; } 100% { opacity: 0.3; } }
@keyframes sf3-tom     { 0% { transform: translateY(0) scale(1.02); } 50% { transform: translateY(-2px) scale(1.02); } 100% { transform: translateY(0) scale(1.02); } }
@keyframes sf3-servant { 0% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-1px) rotate(2deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes sf3-table   { 0% { box-shadow: 0 4px 8px rgba(0,0,0,0.3); } 50% { box-shadow: 0 6px 12px rgba(0,0,0,0.4); } 100% { box-shadow: 0 4px 8px rgba(0,0,0,0.3); } }

/* Scene 4 – haley-loker-haggle */
.scn-haley-loker-haggle {
  background:
    linear-gradient(180deg, #1a0a00 0%, #2a1a08 30%, #3a2a18 60%, #2a1a08 100%),
    radial-gradient(ellipse at 50% 60%, #4a3a28 0%, transparent 70%);
}
.scn-haley-loker-haggle .tavern-wall {
  position: absolute; inset: 0;
  background: repeating-linear-gradient(90deg, #2a1a08 0%, #3a2a18 2px, #2a1a08 4px);
  opacity: 0.4;
  animation: hl4-wall 15s linear infinite;
}
.scn-haley-loker-haggle .tabletop {
  position: absolute; bottom: 20%; left: 20%; right: 20%; height: 12px;
  background: #5a3a20;
  border-radius: 4px;
  box-shadow: 0 8px 20px rgba(0,0,0,0.5);
  animation: hl4-table 12s ease-in-out infinite;
}
.scn-haley-loker-haggle .lantern {
  position: absolute; top: 15%; left: 50%; width: 20px; height: 30px;
  background: radial-gradient(ellipse at 50% 60%, #e8a040 0%, #b06820 60%, #1a0a00 100%);
  border-radius: 30% 30% 10% 10%;
  box-shadow: 0 0 40px 20px rgba(232,160,64,0.3), 0 0 80px 30px rgba(232,160,64,0.1);
  animation: hl4-lantern 4s ease-in-out infinite alternate;
  transform: translateX(-50%);
}
.scn-haley-loker-haggle .haley-silhouette {
  position: absolute; bottom: 15%; left: 30%; width: 18px; height: 40px;
  background: #0a0a00;
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  transform: scale(0.95);
  animation: hl4-haley 5s ease-in-out infinite;
}
.scn-haley-loker-haggle .loker-silhouette {
  position: absolute; bottom: 15%; left: 60%; width: 22px; height: 48px;
  background: #0a0a00;
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  transform: scale(1.05);
  animation: hl4-loker 6s ease-in-out infinite;
}
.scn-haley-loker-haggle .marks-silhouette {
  position: absolute; bottom: 15%; left: 75%; width: 14px; height: 36px;
  background: #0a0a00;
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  transform: scale(0.9);
  animation: hl4-marks 7s ease-in-out infinite 0.5s;
}
.scn-haley-loker-haggle .candle {
  position: absolute; bottom: 35%; left: 45%; width: 6px; height: 14px;
  background: linear-gradient(180deg, #e8c060 0%, #c08030 100%);
  border-radius: 20% 20% 10% 10%;
  box-shadow: 0 0 10px 5px rgba(232,192,96,0.4);
  animation: hl4-candle 3s ease-in-out infinite alternate;
}
.scn-haley-loker-haggle .shadows-floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 35%;
  background: linear-gradient(180deg, rgba(10,5,0,0.6) 0%, #0a0500 100%);
  border-radius: 0 0 20% 20%;
  animation: hl4-shadows 8s ease-in-out infinite;
}
@keyframes hl4-wall     { 0% { background-position: 0 0; } 100% { background-position: 40px 0; } }
@keyframes hl4-table    { 0% { transform: translateY(0); } 50% { transform: translateY(-2px); } 100% { transform: translateY(0); } }
@keyframes hl4-lantern  { 0% { opacity: 0.7; box-shadow: 0 0 30px 15px rgba(232,160,64,0.2), 0 0 60px 25px rgba(232,160,64,0.05); } 50% { opacity: 1; box-shadow: 0 0 50px 25px rgba(232,160,64,0.4), 0 0 100px 40px rgba(232,160,64,0.1); } 100% { opacity: 0.8; box-shadow: 0 0 35px 18px rgba(232,160,64,0.25), 0 0 70px 30px rgba(232,160,64,0.08); } }
@keyframes hl4-haley   { 0% { transform: translateX(0) translateY(0) scale(0.95); } 50% { transform: translateX(4px) translateY(-2px) scale(0.95) rotate(3deg); } 100% { transform: translateX(0) translateY(0) scale(0.95); } }
@keyframes hl4-loker   { 0% { transform: translateX(0) translateY(0) scale(1.05); } 50% { transform: translateX(-3px) translateY(-1px) scale(1.05) rotate(-2deg); } 100% { transform: translateX(0) translateY(0) scale(1.05); } }
@keyframes hl4-marks   { 0% { transform: translateX(0) translateY(0) scale(0.9); } 50% { transform: translateX(2px) translateY(-1px) scale(0.9) rotate(4deg); } 100% { transform: translateX(0) translateY(0) scale(0.9); } }
@keyframes hl4-candle  { 0% { transform: scaleY(1); opacity: 0.8; } 50% { transform: scaleY(1.1); opacity: 1; } 100% { transform: scaleY(1); opacity: 0.9; } }
@keyframes hl4-shadows { 0% { opacity: 0.6; } 50% { opacity: 0.8; } 100% { opacity: 0.7; } }

.scn-senator-bird-home {
  background:
    linear-gradient(180deg, #2a1e14 0%, #1c130c 40%, #0e0a06 100%),
    radial-gradient(ellipse at 60% 70%, #3a2a1a 0%, transparent 70%);
}
.scn-senator-bird-home .sbh-wall { position:absolute; inset:0 0 40% 0; background: linear-gradient(180deg, #3a2a1a 0%, #1c130c 100%); box-shadow: inset 0 0 60px rgba(0,0,0,0.7); }
.scn-senator-bird-home .sbh-floor { position:absolute; bottom:0; left:0; right:0; height:40%; background: linear-gradient(180deg, #1c130c 0%, #0e0a06 100%); border-radius: 20% 20% 0 0 / 10% 10% 0 0; }
.scn-senator-bird-home .sbh-fireplace { position:absolute; bottom:42%; left:20%; width:30%; height:35%; background: linear-gradient(90deg, #2a1e14 0%, #4a3a2a 30%, #2a1e14 100%); border-radius: 10% 10% 5% 5%; box-shadow: inset 0 -10px 20px rgba(0,0,0,0.5); }
.scn-senator-bird-home .sbh-fire-glow { position:absolute; bottom:44%; left:28%; width:10%; height:20%; background: radial-gradient(ellipse, #c8553d 0%, #8a4020 40%, transparent 70%); border-radius: 50%; box-shadow: 0 0 40px 20px #c8553d; animation: sbh-fire 2s ease-in-out infinite alternate; }
.scn-senator-bird-home .sbh-chair { position:absolute; bottom:38%; right:22%; width:18%; height:30%; background: linear-gradient(180deg, #3a2a1a 0%, #1c130c 100%); border-radius: 20% 20% 10% 10% / 30% 30% 15% 15%; transform: rotate(-2deg); }
.scn-senator-bird-home .sbh-senator { position:absolute; bottom:40%; right:20%; width:8%; height:25%; background: linear-gradient(180deg, #2a1e14 0%, #1a1210 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: sbh-figure 6s ease-in-out infinite; }
.scn-senator-bird-home .sbh-wife { position:absolute; bottom:40%; left:38%; width:7%; height:22%; background: linear-gradient(180deg, #3a2a1a 0%, #1c130c 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: sbh-figure 6s ease-in-out infinite alternate; }
.scn-senator-bird-home .sbh-lamp { position:absolute; bottom:55%; left:50%; width:4%; height:8%; background: radial-gradient(circle, #b08040 0%, #6a4a20 100%); border-radius: 50%; box-shadow: 0 0 30px 10px #b08040; animation: sbh-lamp 3s ease-in-out infinite alternate; }
@keyframes sbh-fire { 0% { transform: scale(1); opacity:0.8; } 50% { transform: scale(1.2); opacity:1; } 100% { transform: scale(0.9); opacity:0.6; } }
@keyframes sbh-figure { 0% { transform: translateX(0) rotate(0deg); } 50% { transform: translateX(4px) rotate(2deg); } 100% { transform: translateX(-2px) rotate(-1deg); } }
@keyframes sbh-lamp { 0% { box-shadow: 0 0 20px 5px #b08040; } 50% { box-shadow: 0 0 40px 15px #c09050; } 100% { box-shadow: 0 0 25px 8px #b08040; } }

.scn-tom-prepares-leave {
  background:
    linear-gradient(180deg, #1a1a2e 0%, #12121e 50%, #0a0a12 100%),
    radial-gradient(ellipse at 50% 80%, #2a2a3e 0%, transparent 70%);
}
.scn-tom-prepares-leave .tpl-wall { position:absolute; inset:0 0 30% 0; background: linear-gradient(180deg, #2a2a3e 0%, #1a1a2e 100%); box-shadow: inset 0 0 80px rgba(0,0,0,0.8); }
.scn-tom-prepares-leave .tpl-floor { position:absolute; bottom:0; left:0; right:0; height:30%; background: linear-gradient(180deg, #1a1a2e 0%, #0a0a12 100%); border-radius: 30% 30% 0 0 / 15% 15% 0 0; }
.scn-tom-prepares-leave .tpl-table { position:absolute; bottom:28%; left:30%; width:40%; height:10%; background: linear-gradient(90deg, #3a2a1e 0%, #1c1812 100%); border-radius: 5%; box-shadow: 0 4px 8px rgba(0,0,0,0.5); }
.scn-tom-prepares-leave .tpl-candle { position:absolute; bottom:38%; left:45%; width:4%; height:12%; background: linear-gradient(180deg, #b08040 0%, #6a4a20 100%); border-radius: 10%; transform-origin: bottom center; animation: tpl-candle 3s ease-in-out infinite; }
.scn-tom-prepares-leave .tpl-candle-glow { position:absolute; bottom:40%; left:43%; width:10%; height:20%; background: radial-gradient(ellipse, #d0a060 0%, #8a6020 40%, transparent 70%); border-radius: 50%; box-shadow: 0 0 50px 20px #d0a060; animation: tpl-glow 2s ease-in-out infinite alternate; }
.scn-tom-prepares-leave .tpl-tom { position:absolute; bottom:25%; left:22%; width:10%; height:35%; background: linear-gradient(180deg, #2a1a14 0%, #1a0e0a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: tpl-tom 12s ease-in-out infinite; }
.scn-tom-prepares-leave .tpl-bundle { position:absolute; bottom:32%; left:18%; width:8%; height:8%; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a14 100%); border-radius: 30%; transform: rotate(10deg); animation: tpl-bundle 8s ease-in-out infinite alternate; }
.scn-tom-prepares-leave .tpl-window { position:absolute; top:16%; right:12%; width:18%; height:30%; background: linear-gradient(180deg, #0e1a2e 0%, #1a2a3e 100%); border: 4px solid #2a1a14; border-radius: 10%; box-shadow: inset 0 0 20px rgba(0,0,0,0.5); }
@keyframes tpl-candle { 0% { transform: scaleY(1) rotate(-2deg); } 50% { transform: scaleY(1.1) rotate(2deg); } 100% { transform: scaleY(0.95) rotate(-1deg); } }
@keyframes tpl-glow { 0% { opacity:0.7; transform: scale(1); } 50% { opacity:1; transform: scale(1.1); } 100% { opacity:0.8; transform: scale(0.95); } }
@keyframes tpl-tom { 0% { transform: translateX(0) rotate(0deg); } 25% { transform: translateX(8px) rotate(3deg); } 50% { transform: translateX(15px) rotate(-2deg); } 75% { transform: translateX(8px) rotate(1deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes tpl-bundle { 0% { transform: rotate(10deg) translateY(0); } 50% { transform: rotate(15deg) translateY(-4px); } 100% { transform: rotate(8deg) translateY(0); } }

.scn-tom-departure-wagon {
  background:
    linear-gradient(180deg, #4a5a5a 0%, #2a3a3a 40%, #1a2a2a 100%),
    radial-gradient(ellipse at 50% 20%, #6a7a7a 0%, transparent 60%);
}
.scn-tom-departure-wagon .tdw-sky { position:absolute; inset:0 0 60% 0; background: linear-gradient(180deg, #6a7a7a 0%, #4a5a5a 100%); animation: tdw-sky 20s ease-in-out infinite alternate; }
.scn-tom-departure-wagon .tdw-ground { position:absolute; bottom:0; left:0; right:0; height:60%; background: linear-gradient(180deg, #3a4a2a 0%, #1a2a1a 100%); border-radius: 40% 60% 0 0 / 20% 30% 0 0; }
.scn-tom-departure-wagon .tdw-wagon-body { position:absolute; bottom:40%; left:30%; width:40%; height:30%; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a14 100%); border-radius: 10% 10% 20% 20%; box-shadow: 0 10px 20px rgba(0,0,0,0.5); animation: tdw-wagon 4s ease-in-out infinite; }
.scn-tom-departure-wagon .tdw-wagon-wheel { position:absolute; bottom:38%; left:32%; width:12%; height:12%; background: radial-gradient(circle, #2a1a14 0%, #1a0e0a 70%); border-radius: 50%; border: 3px solid #4a3a2a; animation: tdw-wheel 2s linear infinite; }
.scn-tom-departure-wagon .tdw-wagon-wheel + .tdw-wagon-wheel { left:56%; } /* second wheel */
.scn-tom-departure-wagon .tdw-tom { position:absolute; bottom:42%; left:38%; width:8%; height:25%; background: linear-gradient(180deg, #2a1a14 0%, #1a0e0a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: tdw-tom 6s ease-in-out infinite; }
.scn-tom-departure-wagon .tdw-george { position:absolute; bottom:40%; left:52%; width:7%; height:20%; background: linear-gradient(180deg, #3a2a1a 0%, #2a1a14 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: tdw-george 8s ease-in-out infinite; }
.scn-tom-departure-wagon .tdw-dollar { position:absolute; bottom:45%; left:50%; width:2%; height:2%; background: radial-gradient(circle, #c0a040 0%, #8a7020 100%); border-radius: 50%; box-shadow: 0 0 10px 5px #c0a040; animation: tdw-dollar 4s ease-in-out infinite alternate; }
.scn-tom-departure-wagon .tdw-shackle { position:absolute; bottom:44%; left:35%; width:4%; height:8%; background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%); border-radius: 10%; transform: rotate(15deg); animation: tdw-shackle 6s ease-in-out infinite; }
@keyframes tdw-sky { 0% { opacity:0.7; } 50% { opacity:1; } 100% { opacity:0.6; } }
@keyframes tdw-wagon { 0% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-4px) rotate(1deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes tdw-wheel { 0% { transform: rotate(0deg) scale(1); } 50% { transform: rotate(10deg) scale(1.02); } 100% { transform: rotate(20deg) scale(1); } }
@keyframes tdw-tom { 0% { transform: translateX(0) rotate(0deg); } 25% { transform: translateX(-3px) rotate(-2deg); } 50% { transform: translateX(0) rotate(1deg); } 75% { transform: translateX(3px) rotate(2deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes tdw-george { 0% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-6px) rotate(3deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes tdw-dollar { 0% { transform: scale(1); opacity:0.8; } 50% { transform: scale(1.3); opacity:1; } 100% { transform: scale(0.9); opacity:0.7; } }
@keyframes tdw-shackle { 0% { transform: rotate(15deg) translateY(0); } 50% { transform: rotate(10deg) translateY(-2px); } 100% { transform: rotate(15deg) translateY(0); } }

.scn-auction-and-george-disguise {
  background:
    linear-gradient(180deg, #5a5a5a 0%, #3a3a3a 40%, #2a2a2a 100%),
    radial-gradient(ellipse at 50% 30%, #7a7a7a 0%, transparent 60%);
}
.scn-auction-and-george-disguise .agd-sky { position:absolute; inset:0 0 50% 0; background: linear-gradient(180deg, #6a6a6a 0%, #4a4a4a 100%); animation: agd-sky 20s ease-in-out infinite alternate; }
.scn-auction-and-george-disguise .agd-block { position:absolute; bottom:30%; left:30%; width:40%; height:20%; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a14 100%); border-radius: 5% 5% 0 0; box-shadow: 0 8px 16px rgba(0,0,0,0.6); }
.scn-auction-and-george-disguise .agd-auctioneer { position:absolute; bottom:32%; left:28%; width:6%; height:20%; background: linear-gradient(180deg, #3a2a1a 0%, #1a1210 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: agd-auctioneer 2s ease-in-out infinite; }
.scn-auction-and-george-disguise .agd-crowd { position:absolute; bottom:28%; left:10%; width:20%; height:15%; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a14 100%); border-radius: 20% 20% 10% 10%; filter: blur(2px); animation: agd-crowd 3s ease-in-out infinite alternate; }
.scn-auction-and-george-disguise .agd-crowd + .agd-crowd { left:70%; width:25%; } /* second crowd */
.scn-auction-and-george-disguise .agd-slave { position:absolute; bottom:30%; left:42%; width:5%; height:18%; background: linear-gradient(180deg, #2a1a14 0%, #1a0e0a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: agd-slave 4s ease-in-out infinite; }
.scn-auction-and-george-disguise .agd-george { position:absolute; bottom:30%; left:56%; width:6%; height:20%; background: linear-gradient(180deg, #3a2a1a 0%, #2a1a14 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; border: 1px solid #702243; box-shadow: 0 0 8px #702243; animation: agd-george 6s ease-in-out infinite; }
.scn-auction-and-george-disguise .agd-sign { position:absolute; top:10%; left:40%; width:20%; height:6%; background: linear-gradient(90deg, #5a4a3a 0%, #3a2a1a 100%); border-radius: 5%; transform: rotate(-2deg); animation: agd-sign 12s ease-in-out infinite; }
@keyframes agd-sky { 0% { opacity:0.6; } 50% { opacity:1; } 100% { opacity:0.5; } }
@keyframes agd-auctioneer { 0% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-6px) rotate(3deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes agd-crowd { 0% { transform: scaleX(1); } 50% { transform: scaleX(1.05); } 100% { transform: scaleX(0.98); } }
@keyframes agd-slave { 0% { transform: translateY(0) rotate(0deg); } 25% { transform: translateY(4px) rotate(2deg); } 50% { transform: translateY(2px) rotate(-1deg); } 75% { transform: translateY(0) rotate(1deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes agd-george { 0% { transform: translateX(0) rotate(0deg); } 25% { transform: translateX(5px) rotate(2deg); } 50% { transform: translateX(10px) rotate(-1deg); } 75% { transform: translateX(5px) rotate(1deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes agd-sign { 0% { transform: rotate(-2deg) scaleY(1); } 50% { transform: rotate(2deg) scaleY(1.1); } 100% { transform: rotate(-2deg) scaleY(1); } }

/* legree-haunted-mother */
.scn-legree-haunted-mother {
  background: linear-gradient(180deg, #1a1a2e 0%, #0f0f1a 40%, #1a0f1a 70%, #2a1a1a 100%),
              radial-gradient(ellipse at 30% 70%, #2a1a2e 0%, transparent 60%);
}
.scn-legree-haunted-mother .lhm-wall {
  position: absolute; inset: 0 0 35% 0;
  background: linear-gradient(90deg, #1a1220 0%, #2a1a2a 50%, #1a1220 100%);
  animation: lhm-wall 15s ease-in-out infinite alternate;
}
.scn-legree-haunted-mother .lhm-floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 35%;
  background: linear-gradient(180deg, #1a1a1a 0%, #0e0e0e 100%);
  box-shadow: inset 0 8px 20px rgba(0,0,0,.7);
}
.scn-legree-haunted-mother .lhm-window {
  position: absolute; top: 18%; left: 55%; width: 40px; height: 60px;
  background: radial-gradient(ellipse at 50% 50%, #2a4a6a 0%, #0a1a2a 70%);
  border-radius: 4px 4px 10px 10px;
  box-shadow: 0 0 12px 2px rgba(42,74,106,.3);
  animation: lhm-window-glow 4s ease-in-out infinite alternate;
}
.scn-legree-haunted-mother .lhm-ghost {
  position: absolute; top: 22%; left: 20%; width: 50px; height: 120px;
  background: radial-gradient(ellipse at 50% 50%, rgba(200,200,220,.4) 0%, rgba(200,200,220,.1) 60%, transparent 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  filter: blur(3px);
  animation: lhm-ghost-flicker 6s ease-in-out infinite;
}
.scn-legree-haunted-mother .lhm-legree {
  position: absolute; bottom: 35%; left: 45%; width: 40px; height: 110px;
  background: linear-gradient(180deg, #1a1a1a 0%, #0a0a0a 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  transform-origin: bottom center;
  animation: lhm-legree-shake 3s ease-in-out infinite;
}
.scn-legree-haunted-mother .lhm-bottle {
  position: absolute; bottom: 30%; left: 30%; width: 14px; height: 30px;
  background: linear-gradient(180deg, #3a2a1a 0%, #2a1a0a 100%);
  border-radius: 40% 40% 20% 20%;
  transform-origin: bottom center;
  animation: lhm-bottle-sway 5s ease-in-out infinite;
}
.scn-legree-haunted-mother .lhm-shadow {
  position: absolute; bottom: 0; left: 0; right: 0; height: 20%;
  background: linear-gradient(180deg, transparent 0%, rgba(0,0,0,.6) 100%);
  animation: lhm-shadow-pulse 8s ease-in-out infinite alternate;
}
@keyframes lhm-wall { 0% { opacity: .9; } 50% { opacity: 1; } 100% { opacity: .85; } }
@keyframes lhm-window-glow { 0% { box-shadow: 0 0 8px 2px rgba(42,74,106,.2); } 50% { box-shadow: 0 0 20px 6px rgba(42,74,106,.5); } 100% { box-shadow: 0 0 10px 3px rgba(42,74,106,.3); } }
@keyframes lhm-ghost-flicker { 0% { opacity: .2; transform: translateY(0) scaleX(1); } 50% { opacity: .6; transform: translateY(-4px) scaleX(1.05); } 100% { opacity: .1; transform: translateY(2px) scaleX(.95); } }
@keyframes lhm-legree-shake { 0% { transform: translateX(0) rotate(0deg); } 25% { transform: translateX(2px) rotate(1deg); } 50% { transform: translateX(-1px) rotate(-1deg); } 75% { transform: translateX(1px) rotate(.5deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes lhm-bottle-sway { 0% { transform: rotate(0deg); } 30% { transform: rotate(8deg); } 60% { transform: rotate(-5deg); } 100% { transform: rotate(0deg); } }
@keyframes lhm-shadow-pulse { 0% { opacity: .4; } 50% { opacity: .7; } 100% { opacity: .4; } }

/* george-eliza-flee-canada */
.scn-george-eliza-flee-canada {
  background: linear-gradient(180deg, #f4a460 0%, #ff7f50 20%, #87ceeb 50%, #4682b4 80%, #2c5f8a 100%),
              radial-gradient(ellipse at 50% 10%, #fff5e6 0%, transparent 60%);
}
.scn-george-eliza-flee-canada .gfc-sky {
  position: absolute; inset: 0 0 45% 0;
  background: linear-gradient(180deg, #ffdab9 0%, #ffe4b5 30%, #87ceeb 70%, #4682b4 100%);
  animation: gfc-sky 12s ease-in-out infinite alternate;
}
.scn-george-eliza-flee-canada .gfc-sun {
  position: absolute; top: 8%; left: 70%; width: 60px; height: 60px;
  background: radial-gradient(circle, #ffd700 0%, #ffa500 50%, transparent 70%);
  border-radius: 50%;
  box-shadow: 0 0 60px 20px rgba(255,215,0,.4);
  animation: gfc-sunrise 20s ease-in-out infinite alternate;
}
.scn-george-eliza-flee-canada .gfc-ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 45%;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 20%, #2a1a0a 100%);
  border-radius: 30% 70% 0 0 / 50% 50% 0 0;
  box-shadow: inset 0 8px 30px rgba(0,0,0,.5);
}
.scn-george-eliza-flee-canada .gfc-george {
  position: absolute; bottom: 30%; left: 30%; width: 28px; height: 80px;
  background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%);
  border-radius: 45% 45% 35% 35% / 55% 55% 35% 35%;
  transform-origin: bottom center;
  animation: gfc-walk 4s ease-in-out infinite;
}
.scn-george-eliza-flee-canada .gfc-eliza {
  position: absolute; bottom: 30%; left: 38%; width: 24px; height: 70px;
  background: linear-gradient(180deg, #3a2a2a 0%, #2a1a1a 100%);
  border-radius: 45% 45% 35% 35% / 55% 55% 35% 35%;
  transform-origin: bottom center;
  animation: gfc-walk 4s ease-in-out infinite;
  animation-delay: -.2s;
}
.scn-george-eliza-flee-canada .gfc-tree {
  position: absolute; bottom: 35%; right: 12%; width: 50px; height: 120px;
  background: linear-gradient(180deg, #3a2a1a 0%, #2a1a0a 100%);
  border-radius: 40% 40% 20% 20% / 80% 80% 20% 20%;
  box-shadow: -10px 0 20px rgba(0,0,0,.3);
  animation: gfc-tree-sway 8s ease-in-out infinite;
}
@keyframes gfc-sky { 0% { opacity: .8; } 50% { opacity: 1; } 100% { opacity: .9; } }
@keyframes gfc-sunrise { 0% { transform: scale(.9); opacity: .7; } 50% { transform: scale(1.1); opacity: 1; } 100% { transform: scale(.95); opacity: .8; } }
@keyframes gfc-walk { 0% { transform: translateX(0) translateY(0) rotate(0deg); } 25% { transform: translateX(10px) translateY(-2px) rotate(1deg); } 50% { transform: translateX(20px) translateY(0) rotate(-1deg); } 75% { transform: translateX(30px) translateY(-1px) rotate(0deg); } 100% { transform: translateX(40px) translateY(0) rotate(0deg); } }
@keyframes gfc-tree-sway { 0% { transform: rotate(0deg); } 25% { transform: rotate(2deg); } 50% { transform: rotate(-2deg); } 75% { transform: rotate(1deg); } 100% { transform: rotate(0deg); } }

/* tom-faith-victory */
.scn-tom-faith-victory {
  background: linear-gradient(180deg, #2b1e16 0%, #4a3525 30%, #6b4a33 60%, #3a2a1a 100%),
              radial-gradient(ellipse at 50% 40%, #8b6b4a 0%, transparent 70%);
}
.scn-tom-faith-victory .tfv-wall {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(90deg, #2a1e16 0%, #3a2a1a 50%, #2a1e16 100%);
  box-shadow: inset 0 8px 30px rgba(0,0,0,.6);
}
.scn-tom-faith-victory .tfv-floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #1a120e 0%, #0e0a08 100%);
}
.scn-tom-faith-victory .tfv-tom {
  position: absolute; bottom: 20%; left: 50%; width: 40px; height: 100px;
  background: linear-gradient(180deg, #2a1a12 0%, #1a0e08 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  transform: translateX(-50%);
  transform-origin: bottom center;
  animation: tfv-kneel 6s ease-in-out infinite;
}
.scn-tom-faith-victory .tfv-halo {
  position: absolute; top: 35%; left: 50%; width: 80px; height: 80px;
  background: radial-gradient(circle, #ffd700 0%, #ffa500 30%, transparent 70%);
  border-radius: 50%;
  transform: translateX(-50%);
  box-shadow: 0 0 80px 40px rgba(255,215,0,.4), 0 0 160px 60px rgba(255,165,0,.2);
  animation: tfv-halo-pulse 4s ease-in-out infinite alternate;
}
.scn-tom-faith-victory .tfv-chain {
  position: absolute; bottom: 20%; left: 40%; width: 30px; height: 6px;
  background: linear-gradient(90deg, #5a4a3a 0%, #8a7a6a 50%, #5a4a3a 100%);
  border-radius: 2px;
  transform-origin: right center;
  animation: tfv-chain-sway 5s ease-in-out infinite;
}
.scn-tom-faith-victory .tfv-light-ray {
  position: absolute; top: 0; left: 50%; width: 2px; height: 40%;
  background: linear-gradient(180deg, rgba(255,215,0,.4) 0%, transparent 100%);
  transform: translateX(-50%);
  animation: tfv-ray-fade 7s ease-in-out infinite alternate;
}
@keyframes tfv-kneel { 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 tfv-halo-pulse { 0% { transform: translateX(-50%) scale(.9); opacity: .6; } 50% { transform: translateX(-50%) scale(1.1); opacity: 1; } 100% { transform: translateX(-50%) scale(.95); opacity: .8; } }
@keyframes tfv-chain-sway { 0% { transform: rotate(0deg); } 30% { transform: rotate(5deg); } 60% { transform: rotate(-3deg); } 100% { transform: rotate(0deg); } }
@keyframes tfv-ray-fade { 0% { opacity: .2; } 50% { opacity: .5; } 100% { opacity: .3; } }

/* cassy-emmeline-escape */
.scn-cassy-emmeline-escape {
  background: linear-gradient(180deg, #0a0a14 0%, #141424 40%, #1a1a2e 70%, #0e0e1a 100%),
              radial-gradient(ellipse at 50% 30%, #2a2a4a 0%, transparent 70%);
}
.scn-cassy-emmeline-escape .cee-roof {
  position: absolute; top: 0; left: 0; right: 0; height: 25%;
  background: linear-gradient(180deg, #1a1a2e 0%, #0a0a14 100%);
  border-radius: 0 0 40% 40% / 0 0 20% 20%;
}
.scn-cassy-emmeline-escape .cee-floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 25%;
  background: linear-gradient(180deg, #0e0e1a 0%, #06060a 100%);
}
.scn-cassy-emmeline-escape .cee-wall {
  position: absolute; inset: 25% 0 25% 0;
  background: linear-gradient(90deg, #141424 0%, #1a1a2e 50%, #141424 100%);
  box-shadow: inset 0 0 40px rgba(0,0,0,.5);
}
.scn-cassy-emmeline-escape .cee-window {
  position: absolute; top: 30%; right: 15%; width: 30px; height: 50px;
  background: radial-gradient(ellipse at 50% 50%, #2a4a6a 0%, #0a1a2a 70%);
  border-radius: 2px;
  box-shadow: 0 0 20px 4px rgba(42,74,106,.3), inset 0 0 10px rgba(255,255,255,.1);
  animation: cee-window-glow 5s ease-in-out infinite alternate;
}
.scn-cassy-emmeline-escape .cee-moonbeam {
  position: absolute; top: 30%; right: 15%; width: 120px; height: 200px;
  background: linear-gradient(135deg, rgba(200,220,255,.1) 0%, transparent 60%);
  filter: blur(8px);
  transform-origin: top right;
  animation: cee-beam-sway 14s ease-in-out infinite;
}
.scn-cassy-emmeline-escape .cee-cassy {
  position: absolute; bottom: 30%; left: 25%; width: 32px; height: 90px;
  background: linear-gradient(180deg, #1a1a2e 0%, #0e0e1a 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  transform-origin: bottom center;
  animation: cee-crouch 6s ease-in-out infinite;
}
.scn-cassy-emmeline-escape .cee-emmeline {
  position: absolute; bottom: 30%; left: 35%; width: 28px; height: 80px;
  background: linear-gradient(180deg, #2a1a2e 0%, #1a0e1a 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  transform-origin: bottom center;
  animation: cee-crouch 6s ease-in-out infinite;
  animation-delay: -.5s;
}
.scn-cassy-emmeline-escape .cee-chest {
  position: absolute; bottom: 22%; left: 60%; width: 40px; height: 30px;
  background: linear-gradient(180deg, #3a2a1a 0%, #2a1a0a 100%);
  border-radius: 4px;
  box-shadow: 0 4px 8px rgba(0,0,0,.5);
  animation: cee-chest-bob 8s ease-in-out infinite alternate;
}
@keyframes cee-window-glow { 0% { box-shadow: 0 0 10px 2px rgba(42,74,106,.2); } 50% { box-shadow: 0 0 25px 6px rgba(42,74,106,.5); } 100% { box-shadow: 0 0 15px 3px rgba(42,74,106,.3); } }
@keyframes cee-beam-sway { 0% { transform: rotate(0deg); opacity: .3; } 25% { transform: rotate(2deg); opacity: .5; } 50% { transform: rotate(-1deg); opacity: .4; } 75% { transform: rotate(1deg); opacity: .6; } 100% { transform: rotate(0deg); opacity: .3; } }
@keyframes cee-crouch { 0% { transform: translateY(0) scaleY(1); } 50% { transform: translateY(-2px) scaleY(1.02); } 100% { transform: translateY(0) scaleY(1); } }
@keyframes cee-chest-bob { 0% { transform: translateY(0); } 50% { transform: translateY(-1px); } 100% { transform: translateY(0); } }

/* st-clare-mansion-arrival — warm bright interior */
.scn-st-clare-mansion-arrival {
  background: linear-gradient(180deg, #d4a373 0%, #b47b5e 30%, #8c5a3f 70%, #5c3a25 100%),
              radial-gradient(ellipse at 50% 70%, #f5e3c0 0%, transparent 60%);
}
.scn-st-clare-mansion-arrival .wall { position:absolute; inset:0 0 25% 0; background: linear-gradient(90deg, #e0c9aa 0%, #d4b99a 50%, #c4a58a 100%); box-shadow: inset 0 8px 30px rgba(0,0,0,.2); }
.scn-st-clare-mansion-arrival .floor { position:absolute; bottom:0; left:0; right:0; height:25%; background: linear-gradient(180deg, #6b4c2e 0%, #4d341d 100%); border-radius: 20% 20% 0 0; box-shadow: inset 0 4px 10px rgba(0,0,0,.4); }
.scn-st-clare-mansion-arrival .staircase { position:absolute; bottom:25%; left:20%; width:30%; height:45%; background: linear-gradient(135deg, #a67c4e 0%, #7a5a38 100%); border-radius: 0 40% 20% 0 / 0 60% 20% 0; transform: skewX(-5deg); box-shadow: 8px 0 15px rgba(0,0,0,.3); }
.scn-st-clare-mansion-arrival .figure-tom { position:absolute; bottom:22%; left:30%; width:28px; height:50px; background: linear-gradient(180deg, #2e2118 0%, #1a120c 100%); border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%; transform-origin: bottom center; animation: stc1-walk-tom 6s ease-in-out infinite; }
.scn-st-clare-mansion-arrival .figure-adolph { position:absolute; bottom:22%; left:50%; width:22px; height:44px; background: linear-gradient(180deg, #3c3022 0%, #22180f 100%); border-radius: 35% 35% 25% 25% / 55% 55% 35% 35%; transform-origin: bottom center; animation: stc1-walk-adolph 6s ease-in-out infinite; }
.scn-st-clare-mansion-arrival .daguerreotype { position:absolute; bottom:35%; right:15%; width:40px; height:50px; background: radial-gradient(circle at 50% 40%, #f5d8a0 0%, #c89e68 50%, #a07a48 100%); border-radius: 10%; box-shadow: 0 0 20px 6px #e0b878, 0 0 40px 12px rgba(224,184,120,.3); animation: stc1-glow 4s ease-in-out infinite alternate; }
.scn-st-clare-mansion-arrival .chandelier { position:absolute; top:5%; left:50%; width:60px; height:40px; transform:translateX(-50%); background: radial-gradient(circle at 50% 20%, #f5d060 0%, #c89230 100%); clip-path: polygon(20% 0%, 80% 0%, 100% 100%, 0% 100%); animation: stc1-swing 8s ease-in-out infinite; }
.scn-st-clare-mansion-arrival .window-light { position:absolute; top:8%; left:10%; width:80px; height:100px; background: linear-gradient(135deg, #fff5d6 0%, #f5e0b0 50%, #e0c488 100%); border-radius: 40% 40% 0 0; box-shadow: 0 0 60px 20px #f5e0b0; animation: stc1-window 12s ease-in-out infinite alternate; }
@keyframes stc1-walk-tom { 0%,100% { transform: translateX(0) translateY(0) rotate(-1deg); } 25% { transform: translateX(12px) translateY(-2px) rotate(2deg); } 50% { transform: translateX(24px) translateY(0) rotate(-1deg); } 75% { transform: translateX(36px) translateY(-2px) rotate(2deg); } }
@keyframes stc1-walk-adolph { 0%,100% { transform: translateX(0) translateY(0) rotate(3deg); } 25% { transform: translateX(10px) translateY(-3px) rotate(-2deg); } 50% { transform: translateX(20px) translateY(0) rotate(3deg); } 75% { transform: translateX(30px) translateY(-3px) rotate(-2deg); } }
@keyframes stc1-glow { 0% { box-shadow: 0 0 15px 4px #d4a86a, 0 0 30px 8px rgba(212,168,106,.3); opacity:.7; } 50% { box-shadow: 0 0 30px 10px #f5d8a0, 0 0 60px 20px rgba(245,216,160,.5); opacity:1; } 100% { box-shadow: 0 0 20px 6px #d4a86a, 0 0 40px 12px rgba(212,168,106,.3); opacity:.8; } }
@keyframes stc1-swing { 0% { transform: translateX(-50%) rotate(-5deg); } 50% { transform: translateX(-50%) rotate(5deg); } 100% { transform: translateX(-50%) rotate(-5deg); } }
@keyframes stc1-window { 0% { opacity:.6; transform: scaleY(1); } 50% { opacity:1; transform: scaleY(1.05); } 100% { opacity:.7; transform: scaleY(0.95); } }

/* marie-daguerreotype — funny bright interior */
.scn-marie-daguerreotype {
  background: linear-gradient(135deg, #f5e3c8 0%, #e0c9aa 40%, #d4b99a 70%, #c4a58a 100%),
              radial-gradient(ellipse at 80% 60%, #fff8e7 0%, transparent 50%);
}
.scn-marie-daguerreotype .bg-wall { position:absolute; inset:0 0 30% 0; background: linear-gradient(90deg, #f0dcc0 0%, #e8d0ae 50%, #dcc098 100%); box-shadow: inset 0 10px 40px rgba(0,0,0,.1); }
.scn-marie-daguerreotype .divan { position:absolute; bottom:20%; left:25%; width:50%; height:30%; background: linear-gradient(135deg, #c8956a 0%, #a67a50 100%); border-radius: 30% 30% 0 0 / 50% 50% 0 0; box-shadow: 0 8px 20px rgba(0,0,0,.2); animation: mar2-bounce 4s ease-in-out infinite; }
.scn-marie-daguerreotype .figure-marie { position:absolute; bottom:30%; left:30%; width:30px; height:45px; background: linear-gradient(180deg, #5e4030 0%, #3a281a 100%); border-radius: 45% 45% 35% 35% / 55% 55% 35% 35%; transform-origin: bottom center; animation: mar2-figure 5s ease-in-out infinite; }
.scn-marie-daguerreotype .figure-eva { position:absolute; bottom:28%; left:48%; width:20px; height:35px; background: linear-gradient(180deg, #7a5538 0%, #4a3220 100%); border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%; animation: mar2-eva 4s ease-in-out infinite; }
.scn-marie-daguerreotype .figure-mammy { position:absolute; bottom:18%; left:60%; width:35px; height:40px; background: linear-gradient(180deg, #3a2a1e 0%, #1c110a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: mar2-mammy 6s ease-in-out infinite; }
.scn-marie-daguerreotype .daguerreotype-frame { position:absolute; bottom:38%; right:20%; width:32px; height:40px; background: radial-gradient(circle at 50% 40%, #f5d8a0 0%, #d4a86a 60%, #b88850 100%); border-radius: 15%; box-shadow: 0 0 15px 6px #e0b878; animation: mar2-frame 3s ease-in-out infinite alternate; }
.scn-marie-daguerreotype .curtain { position:absolute; top:0; left:0; width:20%; height:100%; background: linear-gradient(180deg, #c8704a 0%, #a05530 100%); border-radius: 0 60% 0 0; filter: blur(2px); animation: mar2-curtain 10s ease-in-out infinite alternate; }
@keyframes mar2-bounce { 0% { transform: translateY(0) rotate(0deg); } 25% { transform: translateY(-8px) rotate(2deg); } 50% { transform: translateY(0) rotate(0deg); } 75% { transform: translateY(-4px) rotate(-2deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes mar2-figure { 0%,100% { transform: translateY(0) rotate(5deg); } 50% { transform: translateY(-4px) rotate(-5deg); } }
@keyframes mar2-eva { 0%,100% { transform: translateX(0) translateY(0) rotate(3deg); } 25% { transform: translateX(6px) translateY(-2px) rotate(-2deg); } 50% { transform: translateX(12px) translateY(0) rotate(3deg); } 75% { transform: translateX(6px) translateY(-2px) rotate(-2deg); } }
@keyframes mar2-mammy { 0%,100% { transform: translateY(0) scale(1); } 50% { transform: translateY(-6px) scale(1.02); } }
@keyframes mar2-frame { 0% { box-shadow: 0 0 10px 3px #e0b878; opacity:.8; } 50% { box-shadow: 0 0 25px 8px #f5d8a0; opacity:1; } 100% { box-shadow: 0 0 12px 4px #e0b878; opacity:.85; } }
@keyframes mar2-curtain { 0% { transform: translateX(0); } 100% { transform: translateX(-10px); } }

/* dinner-slavery-debate — tense bright interior */
.scn-dinner-slavery-debate {
  background: linear-gradient(180deg, #4a2c1e 0%, #6b4430 30%, #8c6048 60%, #4a2c1e 100%),
              radial-gradient(ellipse at 50% 40%, #f5e0b0 0%, transparent 60%);
}
.scn-dinner-slavery-debate .dining-room { position:absolute; inset:0 0 20% 0; background: linear-gradient(135deg, #8a6a50 0%, #6a4a30 100%); box-shadow: inset 0 10px 30px rgba(0,0,0,.4); }
.scn-dinner-slavery-debate .table { position:absolute; bottom:20%; left:15%; width:70%; height:35%; background: linear-gradient(180deg, #a08060 0%, #806040 100%); border-radius: 0 0 40% 40% / 0 0 60% 60%; box-shadow: 0 8px 25px rgba(0,0,0,.5); transform: perspective(400px) rotateX(10deg); }
.scn-dinner-slavery-debate .figure-marie { position:absolute; bottom:30%; left:20%; width:28px; height:48px; background: linear-gradient(180deg, #5e3a28 0%, #3a2010 100%); border-radius: 40% 40% 30% 30% / 60% 60% 35% 35%; transform:skewX(5deg); animation: din3-tense 3s ease-in-out infinite alternate; }
.scn-dinner-slavery-debate .figure-stclare { position:absolute; bottom:30%; left:45%; width:30px; height:52px; background: linear-gradient(180deg, #4a3020 0%, #2a1808 100%); border-radius: 45% 40% 30% 35% / 55% 50% 35% 40%; transform:skewX(-5deg); animation: din3-tense 4s ease-in-out infinite alternate reverse; }
.scn-dinner-slavery-debate .figure-tom { position:absolute; bottom:22%; left:60%; width:32px; height:50px; background: linear-gradient(180deg, #3a2818 0%, #1c1108 100%); border-radius: 40% 40% 30% 30% / 60% 60% 35% 35%; animation: din3-stand 5s ease-in-out infinite; }
.scn-dinner-slavery-debate .figure-ophelia { position:absolute; bottom:28%; left:70%; width:24px; height:40px; background: linear-gradient(180deg, #6a5038 0%, #4a3020 100%); border-radius: 35% 40% 25% 30% / 50% 55% 30% 35%; transform:skewX(8deg); animation: din3-tense 3.5s ease-in-out infinite; }
.scn-dinner-slavery-debate .candelabra { position:absolute; bottom:35%; left:50%; width:30px; height:50px; transform:translateX(-50%); background: linear-gradient(180deg, #c09040 0%, #a07030 100%); clip-path: polygon(40% 0%, 60% 0%, 55% 20%, 70% 50%, 30% 50%, 45% 20%); box-shadow: 0 0 30px 15px #e8b860; animation: din3-flicker 2s ease-in-out infinite alternate; }
.scn-dinner-slavery-debate .shadow { position:absolute; bottom:0; left:0; right:0; height:40%; background: linear-gradient(0deg, rgba(0,0,0,.5) 0%, transparent 100%); animation: din3-shadow 8s ease-in-out infinite alternate; }
@keyframes din3-tense { 0% { transform: translateY(0) rotate(-1deg); } 50% { transform: translateY(-4px) rotate(2deg); } 100% { transform: translateY(2px) rotate(-1deg); } }
@keyframes din3-stand { 0%,100% { transform: translateY(0); } 50% { transform: translateY(-3px); } }
@keyframes din3-flicker { 0% { opacity:.7; box-shadow: 0 0 15px 8px #e8b860; } 50% { opacity:1; box-shadow: 0 0 35px 20px #e8b860; } 100% { opacity:.75; box-shadow: 0 0 20px 10px #e8b860; } }
@keyframes din3-shadow { 0% { opacity:.3; } 50% { opacity:.6; } 100% { opacity:.4; } }

/* rocky-ledge-standoff — tense dawn */
.scn-rocky-ledge-standoff {
  background: linear-gradient(180deg, #5a6a7a 0%, #8a9aaa 30%, #b0c0d0 60%, #d0d8e0 100%),
              radial-gradient(ellipse at 30% 80%, #f5d8a0 0%, transparent 50%);
}
.scn-rocky-ledge-standoff .sky-dawn { position:absolute; inset:0 0 50% 0; background: linear-gradient(180deg, #7a8a9a 0%, #b0c0d0 40%, #e0d8c0 70%, #f5e8c8 100%); animation: roc4-sky 15s ease-in-out infinite alternate; }
.scn-rocky-ledge-standoff .ledge { position:absolute; bottom:20%; left:10%; width:80%; height:45%; background: linear-gradient(135deg, #6a5a4a 0%, #4a3a2a 100%); clip-path: polygon(0% 50%, 20% 0%, 80% 10%, 100% 60%, 70% 100%, 30% 90%); box-shadow: 0 8px 30px rgba(0,0,0,.5); }
.scn-rocky-ledge-standoff .figure-george { position:absolute; bottom:35%; left:25%; width:30px; height:50px; background: linear-gradient(180deg, #2a1a10 0%, #0e0805 100%); border-radius: 40% 40% 30% 30% / 60% 60% 35% 35%; transform: rotate(10deg); animation: roc4-fight 3s ease-in-out infinite; }
.scn-rocky-ledge-standoff .figure-loker { position:absolute; bottom:30%; left:50%; width:35px; height:55px; background: linear-gradient(180deg, #3a2818 0%, #1c1008 100%); border-radius: 45% 40% 35% 30% / 55% 50% 40% 35%; transform: rotate(-5deg) translateX(0); animation: roc4-advance 4s ease-in-out infinite; }
.scn-rocky-ledge-standoff .figure-marks { position:absolute; bottom:28%; left:70%; width:28px; height:48px; background: linear-gradient(180deg, #4a3020 0%, #2a1808 100%); border-radius: 40% 35% 30% 35% / 55% 45% 35% 40%; transform: skewX(-10deg); animation: roc4-aim 2.5s ease-in-out infinite alternate; }
.scn-rocky-ledge-standoff .rock-foreground { position:absolute; bottom:0; left:-5%; width:60%; height:25%; background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%); border-radius: 80% 20% 0 0 / 100% 30% 0 0; box-shadow: inset 0 10px 30px rgba(0,0,0,.6); }
.scn-rocky-ledge-standoff .gunshot-flash { position:absolute; bottom:32%; left:65%; width:20px; height:20px; background: radial-gradient(circle, #fff0a0 0%, #f5d060 50%, transparent 100%); border-radius: 50%; box-shadow: 0 0 40px 20px #f5d060; animation: roc4-flash 1s steps(2) infinite; }
@keyframes roc4-sky { 0% { opacity:.7; } 50% { opacity:1; } 100% { opacity:.8; } }
@keyframes roc4-fight { 0%,100% { transform: translateX(0) rotate(10deg); } 50% { transform: translateX(10px) rotate(15deg); } }
@keyframes roc4-advance { 0% { transform: translateX(0) rotate(-5deg); } 50% { transform: translateX(15px) rotate(0deg); } 100% { transform: translateX(0) rotate(-5deg); } }
@keyframes roc4-aim { 0% { transform: skewX(-10deg) translateY(0); } 100% { transform: skewX(-5deg) translateY(-4px); } }
@keyframes roc4-flash { 0% { opacity:0; transform: scale(0.5); } 50% { opacity:1; transform: scale(1.2); } 100% { opacity:0; transform: scale(0.5); } }

.scn-chloe-stubborn-justice {
  background:
    radial-gradient(ellipse at 50% 80%, #8a3a1a 0%, #2a1208 60%, #0a0502 100%),
    linear-gradient(180deg, #1a0a04 0%, #4a1a0a 40%, #3a1008 100%);
}
.scn-chloe-stubborn-justice .wall {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(90deg, #200802 0%, #3a1508 50%, #200802 100%);
  animation: ch-wall 10s ease-in-out infinite alternate;
}
.scn-chloe-stubborn-justice .fireplace {
  position: absolute; bottom: 20%; left: 10%; width: 30%; height: 50%;
  background: linear-gradient(180deg, #351008 0%, #1a0802 100%);
  border-radius: 10% 10% 0 0; box-shadow: inset 0 -10px 20px #000;
}
.scn-chloe-stubborn-justice .fire {
  position: absolute; bottom: 25%; left: 15%; width: 12%; height: 20%;
  background: radial-gradient(circle, #ff8020 0%, #cc4400 40%, #661800 80%);
  border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%;
  box-shadow: 0 0 40px 20px #cc4400, 0 0 80px 40px #803300;
  animation: ch-fire 1.5s ease-in-out infinite alternate;
}
.scn-chloe-stubborn-justice .figure {
  position: absolute; bottom: 22%; left: 45%; width: 12%; height: 35%;
  background: linear-gradient(180deg, #1a0804 0%, #0d0402 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: ch-figure 6s ease-in-out infinite;
}
.scn-chloe-stubborn-justice .shadow {
  position: absolute; bottom: 20%; left: 35%; width: 35%; height: 30%;
  background: rgba(0,0,0,0.6);
  border-radius: 40%; filter: blur(8px);
  animation: ch-shadow 8s ease-in-out infinite alternate;
}
.scn-chloe-stubborn-justice .light {
  position: absolute; inset: 0;
  background: radial-gradient(ellipse at 30% 70%, rgba(255,140,50,0.3) 0%, transparent 60%);
  animation: ch-light 4s ease-in-out infinite alternate;
  pointer-events: none;
}
.scn-chloe-stubborn-justice .ember {
  position: absolute; width: 4px; height: 4px;
  background: #ff8822; border-radius: 50%;
  box-shadow: 0 0 6px 2px #ff8822;
}
.scn-chloe-stubborn-justice .e1 { bottom: 30%; left: 18%; animation: ch-ember 3s ease-in infinite; }
.scn-chloe-stubborn-justice .e2 { bottom: 35%; left: 22%; animation: ch-ember 4s ease-in infinite 1s; }
@keyframes ch-wall { 0%,100% { opacity: 0.8 } 50% { opacity: 1 } }
@keyframes ch-fire {
  0% { transform: scale(1) rotate(-2deg); opacity: 0.9 }
  50% { transform: scale(1.15) rotate(2deg); opacity: 1 }
  100% { transform: scale(0.9) rotate(-1deg); opacity: 0.8 }
}
@keyframes ch-figure {
  0% { transform: translateX(0) translateY(0) rotate(-1deg) }
  30% { transform: translateX(4px) translateY(-1px) rotate(1deg) }
  70% { transform: translateX(-2px) translateY(0) rotate(-0.5deg) }
  100% { transform: translateX(0) translateY(0) rotate(0) }
}
@keyframes ch-shadow {
  0% { transform: translateX(0) scaleX(1); opacity: 0.6 }
  50% { transform: translateX(10px) scaleX(1.2); opacity: 0.8 }
  100% { transform: translateX(-5px) scaleX(0.9); opacity: 0.5 }
}
@keyframes ch-light { 0% { opacity: 0.6 } 50% { opacity: 1 } 100% { opacity: 0.7 } }
@keyframes ch-ember {
  0% { transform: translateY(0) translateX(0) scale(1); opacity: 1 }
  50% { transform: translateY(-30px) translateX(10px) scale(0.6); opacity: 0.6 }
  100% { transform: translateY(-60px) translateX(20px) scale(0.2); opacity: 0 }
}

.scn-narrator-african-affections {
  background:
    radial-gradient(ellipse at 50% 90%, #3a2a1a 0%, #1a1208 50%, #0a0804 100%),
    linear-gradient(180deg, #0a0804 0%, #2a1a0e 40%, #1a1008 100%);
}
.scn-narrator-african-affections .wall {
  position: absolute; inset: 0 0 25% 0;
  background: linear-gradient(180deg, #1a0e06 0%, #2a180e 60%, #1a0e06 100%);
}
.scn-narrator-african-affections .window {
  position: absolute; top: 10%; left: 60%; width: 12%; height: 20%;
  background: linear-gradient(180deg, #4a6a8a 0%, #2a3a4a 100%);
  border: 2px solid #1a0e06; border-radius: 4px;
  box-shadow: inset 0 0 20px rgba(74,106,138,0.5);
  animation: naf-window 15s ease-in-out infinite alternate;
}
.scn-narrator-african-affections .candle {
  position: absolute; bottom: 30%; left: 35%; width: 4%; height: 10%;
  background: linear-gradient(180deg, #ffcc88 0%, #a06020 100%);
  border-radius: 30% 30% 10% 10%; box-shadow: 0 0 30px 15px #ffaa44;
  animation: naf-candle 5s ease-in-out infinite alternate;
}
.scn-narrator-african-affections .table {
  position: absolute; bottom: 22%; left: 20%; width: 60%; height: 10%;
  background: linear-gradient(180deg, #3a2010 0%, #2a1408 100%);
  border-radius: 6px; box-shadow: 0 4px 8px #000;
}
.scn-narrator-african-affections .figure {
  position: absolute; bottom: 26%; left: 45%; width: 10%; height: 30%;
  background: linear-gradient(180deg, #1a0a04 0%, #0d0402 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: naf-figure 8s ease-in-out infinite;
}
.scn-narrator-african-affections .dust {
  position: absolute; width: 3px; height: 3px;
  background: rgba(255,230,180,0.6); border-radius: 50%;
  box-shadow: 0 0 4px 2px rgba(255,230,180,0.4);
}
.scn-narrator-african-affections .d1 { top: 20%; left: 30%; animation: naf-dust 12s linear infinite; }
.scn-narrator-african-affections .d2 { top: 40%; left: 70%; animation: naf-dust 16s linear infinite 5s; }
@keyframes naf-candle {
  0% { transform: scaleY(1) rotate(-2deg); opacity: 0.9 }
  50% { transform: scaleY(1.08) rotate(2deg); opacity: 1 }
  100% { transform: scaleY(0.95) rotate(-1deg); opacity: 0.85 }
}
@keyframes naf-window { 0% { opacity: 0.5 } 50% { opacity: 0.8 } 100% { opacity: 0.6 } }
@keyframes naf-figure {
  0% { transform: translateY(0) rotate(0) }
  30% { transform: translateY(-1px) rotate(1deg) }
  70% { transform: translateY(0) rotate(-1deg) }
  100% { transform: translateY(-1px) rotate(0) }
}
@keyframes naf-dust {
  0% { transform: translateY(0) translateX(0) scale(1); opacity: 0.6 }
  50% { transform: translateY(-40px) translateX(10px) scale(0.5); opacity: 0.3 }
  100% { transform: translateY(-80px) translateX(20px) scale(0.1); opacity: 0 }
}

.scn-down-river-terror {
  background:
    radial-gradient(ellipse at 50% 80%, #1a1208 0%, #0a0804 60%, #020102 100%),
    linear-gradient(180deg, #040202 0%, #1a1006 40%, #0e0804 100%);
}
.scn-down-river-terror .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 25%;
  background: linear-gradient(180deg, #1a0e08 0%, #100804 100%);
}
.scn-down-river-terror .fireplace {
  position: absolute; bottom: 18%; left: 10%; width: 25%; height: 40%;
  background: linear-gradient(180deg, #2a1408 0%, #1a0802 100%);
  border-radius: 8% 8% 0 0; box-shadow: inset 0 -8px 12px #000;
}
.scn-down-river-terror .fire {
  position: absolute; bottom: 20%; left: 15%; width: 10%; height: 15%;
  background: radial-gradient(circle, #603010 0%, #301008 40%, #100804 80%);
  border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%;
  box-shadow: 0 0 20px 10px #402010;
  animation: drt-fire 6s ease-in-out infinite alternate;
}
.scn-down-river-terror .figure-a {
  position: absolute; bottom: 22%; left: 40%; width: 10%; height: 28%;
  background: linear-gradient(180deg, #0a0604 0%, #040202 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: drt-figure-a 10s ease-in-out infinite;
}
.scn-down-river-terror .figure-b {
  position: absolute; bottom: 22%; left: 52%; width: 11%; height: 30%;
  background: linear-gradient(180deg, #0a0604 0%, #040202 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: drt-figure-b 12s ease-in-out infinite 2s;
}
.scn-down-river-terror .shadow {
  position: absolute; bottom: 18%; left: 35%; width: 30%; height: 25%;
  background: rgba(0,0,0,0.5); border-radius: 50%;
  filter: blur(6px);
  animation: drt-shadow 15s ease-in-out infinite alternate;
}
.scn-down-river-terror .water {
  position: absolute; bottom: 0; left: 0; right: 0; height: 20%;
  background: linear-gradient(180deg, #0a121a 0%, #040a0e 100%);
  border-radius: 60% 40% 0 0 / 30% 20% 0 0;
  animation: drt-water 20s ease-in-out infinite alternate;
}
@keyframes drt-fire {
  0% { transform: scale(1) rotate(-1deg); opacity: 0.7 }
  50% { transform: scale(1.1) rotate(1deg); opacity: 0.9 }
  100% { transform: scale(0.9) rotate(0); opacity: 0.6 }
}
@keyframes drt-figure-a {
  0% { transform: translateY(0) rotate(0) }
  30% { transform: translateY(-2px) rotate(1deg) }
  70% { transform: translateY(0) rotate(-1deg) }
  100% { transform: translateY(-1px) rotate(0) }
}
@keyframes drt-figure-b {
  0% { transform: translateY(0) rotate(0) }
  40% { transform: translateY(-1px) rotate(-1deg) }
  80% { transform: translateY(0) rotate(1deg) }
  100% { transform: translateY(-1px) rotate(0) }
}
@keyframes drt-shadow {
  0% { transform: translateX(0) scaleX(1); opacity: 0.5 }
  50% { transform: translateX(8px) scaleX(1.3); opacity: 0.7 }
  100% { transform: translateX(-4px) scaleX(0.8); opacity: 0.4 }
}
@keyframes drt-water {
  0% { transform: translateY(0) scaleY(1); opacity: 0.6 }
  50% { transform: translateY(-3px) scaleY(1.05); opacity: 0.8 }
  100% { transform: translateY(0) scaleY(0.95); opacity: 0.5 }
}

.scn-farewell-breakfast {
  background:
    radial-gradient(ellipse at 40% 70%, #a05020 0%, #4a220a 50%, #1a0802 100%),
    linear-gradient(180deg, #2a0e04 0%, #5a2810 30%, #3a1408 100%);
}
.scn-farewell-breakfast .table {
  position: absolute; bottom: 15%; left: 10%; width: 80%; height: 18%;
  background: linear-gradient(180deg, #4a2810 0%, #2a1408 100%);
  border-radius: 8px; box-shadow: 0 6px 12px #000;
}
.scn-farewell-breakfast .plate {
  position: absolute; bottom: 22%; left: 30%; width: 20%; height: 8%;
  background: radial-gradient(circle, #c8a880 0%, #a08060 100%);
  border-radius: 40%; box-shadow: inset 0 2px 4px #fff3;
}
.scn-farewell-breakfast .chicken {
  position: absolute; bottom: 24%; left: 33%; width: 14%; height: 10%;
  background: radial-gradient(circle, #c8553d 0%, #a0461a 100%);
  border-radius: 50% 40% 30% 40% / 60% 50% 40% 50%;
  box-shadow: 0 2px 6px #000;
}
.scn-farewell-breakfast .cake {
  position: absolute; bottom: 23%; left: 52%; width: 10%; height: 6%;
  background: linear-gradient(180deg, #d4a060 0%, #b08040 100%);
  border-radius: 30% 30% 20% 20%;
}
.scn-farewell-breakfast .mug {
  position: absolute; bottom: 24%; left: 65%; width: 6%; height: 12%;
  background: linear-gradient(90deg, #6a4a1a 0%, #8a6030 50%, #6a4a1a 100%);
  border-radius: 10% 10% 5% 5%;
  box-shadow: 0 4px 6px #000;
}
.scn-farewell-breakfast .candle {
  position: absolute; bottom: 30%; left: 20%; width: 4%; height: 14%;
  background: linear-gradient(180deg, #ffcc88 0%, #a06020 100%);
  border-radius: 20% 20% 10% 10%;
  box-shadow: 0 0 30px 15px #ffaa44;
  animation: fb-candle 5s ease-in-out infinite alternate;
}
.scn-farewell-breakfast .figure {
  position: absolute; bottom: 18%; left: 50%; width: 12%; height: 35%;
  background: linear-gradient(180deg, #1a0a04 0%, #0d0402 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: fb-figure 8s ease-in-out infinite;
}
.scn-farewell-breakfast .steam {
  position: absolute; width: 8px; height: 16px;
  background: linear-gradient(180deg, rgba(255,240,200,0.4) 0%, transparent 100%);
  border-radius: 50%;
  filter: blur(3px);
}
.scn-farewell-breakfast .s1 { bottom: 30%; left: 35%; animation: fb-steam 5s ease-in infinite; }
.scn-farewell-breakfast .s2 { bottom: 30%; left: 48%; animation: fb-steam 6s ease-in infinite 2s; }
@keyframes fb-candle {
  0% { transform: scaleY(1) rotate(-2deg); opacity: 0.9 }
  50% { transform: scaleY(1.1) rotate(2deg); opacity: 1 }
  100% { transform: scaleY(0.95) rotate(-1deg); opacity: 0.85 }
}
@keyframes fb-figure {
  0% { transform: translateY(0) rotate(0) }
  40% { transform: translateY(-1px) rotate(1deg) }
  80% { transform: translateY(0) rotate(-1deg) }
  100% { transform: translateY(-1px) rotate(0) }
}
@keyframes fb-steam {
  0% { transform: translateY(0) translateX(0) scale(1); opacity: 0.4 }
  50% { transform: translateY(-30px) translateX(5px) scale(0.7); opacity: 0.2 }
  100% { transform: translateY(-60px) translateX(10px) scale(0.3); opacity: 0 }
}

/* Scene: tom-manages-household */
.scn-tom-manages-household {
  background:
    linear-gradient(180deg, #f5e6d0 0%, #e8c9a0 40%, #d4a060 100%),
    radial-gradient(ellipse at 30% 20%, #fff4e0 0%, transparent 60%);
}
.scn-tom-manages-household .wall {
  position: absolute; inset: 0; background: linear-gradient(180deg, #f0e0c8 0%, #d8bfa0 100%);
}
.scn-tom-manages-household .table {
  position: absolute; bottom: 10%; left: 10%; right: 10%; height: 6%;
  background: linear-gradient(180deg, #a07850 0%, #805a30 100%);
  border-radius: 4px; box-shadow: 0 4px 8px rgba(0,0,0,0.3);
  animation: tmh-table 6s ease-in-out infinite;
}
.scn-tom-manages-household .shelf {
  position: absolute; top: 25%; left: 5%; width: 60%; height: 4%;
  background: linear-gradient(180deg, #8a6a40 0%, #6a4a20 100%);
  border-radius: 2px; box-shadow: 0 2px 4px rgba(0,0,0,0.2);
  animation: tmh-shelf 8s ease-in-out infinite;
}
.scn-tom-manages-household .pot-1,
.scn-tom-manages-household .pot-2 {
  position: absolute; width: 8%; height: 10%;
  background: linear-gradient(180deg, #c8553d 0%, #a03a20 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%;
  box-shadow: 0 4px 6px rgba(0,0,0,0.4);
}
.scn-tom-manages-household .pot-1 {
  bottom: 16%; left: 20%; animation: tmh-pot 3s ease-in-out infinite;
}
.scn-tom-manages-household .pot-2 {
  bottom: 16%; left: 35%; width: 6%; height: 8%; animation: tmh-pot 3.5s ease-in-out infinite 1s;
}
.scn-tom-manages-household .figure {
  position: absolute; bottom: 16%; left: 50%; width: 12%; height: 40%;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0a00 100%);
  border-radius: 40% 40% 30% 30% / 70% 70% 30% 30%;
  transform-origin: bottom center;
  animation: tmh-figure 5s ease-in-out infinite;
}
.scn-tom-manages-household .fly {
  position: absolute; bottom: 50%; left: 20%; width: 1%; height: 1%;
  background: #3a2a1a; border-radius: 50%;
  animation: tmh-fly 2s ease-in-out infinite;
}

@keyframes tmh-table {
  0% { transform: translateY(0); }
  50% { transform: translateY(-2px); }
  100% { transform: translateY(0); }
}
@keyframes tmh-shelf {
  0% { transform: scaleY(1); }
  50% { transform: scaleY(1.02); }
  100% { transform: scaleY(1); }
}
@keyframes tmh-pot {
  0% { transform: translate(0,0) rotate(0deg); }
  30% { transform: translate(-1px,-2px) rotate(3deg); }
  60% { transform: translate(1px,-1px) rotate(-2deg); }
  100% { transform: translate(0,0) rotate(0deg); }
}
@keyframes tmh-figure {
  0% { transform: translateX(0) rotate(0deg); }
  25% { transform: translateX(2px) rotate(2deg); }
  50% { transform: translateX(-1px) rotate(-1deg); }
  75% { transform: translateX(1px) rotate(1deg); }
  100% { transform: translateX(0) rotate(0deg); }
}
@keyframes tmh-fly {
  0% { transform: translate(0,0); }
  25% { transform: translate(5px,-3px); }
  50% { transform: translate(10px,2px); }
  75% { transform: translate(3px,4px); }
  100% { transform: translate(0,0); }
}

/* Scene: prue-the-rusk-woman */
.scn-prue-the-rusk-woman {
  background:
    linear-gradient(180deg, #1a1a2e 0%, #2a1a2a 50%, #0e0e1a 100%),
    radial-gradient(ellipse at 50% 60%, #3a1a2a 0%, transparent 70%);
}
.scn-prue-the-rusk-woman .cellar-wall {
  position: absolute; inset: 0; background: linear-gradient(180deg, #1c1c2a 0%, #0a0a12 100%);
}
.scn-prue-the-rusk-woman .light {
  position: absolute; top: 20%; left: 40%; width: 8%; height: 8%;
  background: radial-gradient(circle, #8a6040 0%, #504020 50%, transparent 100%);
  border-radius: 50%;
  animation: prw-light 4s ease-in-out infinite alternate;
}
.scn-prue-the-rusk-woman .bottle {
  position: absolute; bottom: 30%; left: 25%; width: 4%; height: 12%;
  background: linear-gradient(180deg, #3a4a30 0%, #1a2a10 100%);
  border-radius: 30% 30% 10% 10% / 50% 50% 10% 10%;
  box-shadow: 0 4px 6px rgba(0,0,0,0.8);
  animation: prw-bottle 5s ease-in-out infinite;
}
.scn-prue-the-rusk-woman .figure-prue {
  position: absolute; bottom: 15%; left: 35%; width: 10%; height: 35%;
  background: linear-gradient(180deg, #2a1a1a 0%, #1a0a0a 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: prw-prue 6s ease-in-out infinite;
}
.scn-prue-the-rusk-woman .figure-tom {
  position: absolute; bottom: 15%; left: 55%; width: 12%; height: 40%;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 45% 45% 30% 30% / 65% 65% 30% 30%;
  transform-origin: bottom center;
  animation: prw-tom 8s ease-in-out infinite alternate;
}
.scn-prue-the-rusk-woman .shadow {
  position: absolute; bottom: 0; left: 20%; right: 20%; height: 20%;
  background: linear-gradient(180deg, rgba(0,0,0,0.6) 0%, transparent 100%);
  animation: prw-shadow 10s ease-in-out infinite;
}

@keyframes prw-light {
  0% { opacity: 0.6; transform: scale(1); }
  50% { opacity: 1; transform: scale(1.2); }
  100% { opacity: 0.7; transform: scale(0.9); }
}
@keyframes prw-bottle {
  0% { transform: translate(0,0) rotate(0deg); }
  30% { transform: translate(2px,-3px) rotate(10deg); }
  60% { transform: translate(-1px,1px) rotate(-5deg); }
  100% { transform: translate(0,0) rotate(0deg); }
}
@keyframes prw-prue {
  0% { transform: translateX(0) translateY(0) rotate(0deg); }
  25% { transform: translateX(3px) translateY(-2px) rotate(2deg); }
  50% { transform: translateX(-2px) translateY(1px) rotate(-3deg); }
  75% { transform: translateX(1px) translateY(-1px) rotate(1deg); }
  100% { transform: translateX(0) translateY(0) rotate(0deg); }
}
@keyframes prw-tom {
  0% { transform: translateX(0) rotate(0deg); }
  50% { transform: translateX(5px) rotate(3deg); }
  100% { transform: translateX(0) rotate(0deg); }
}
@keyframes prw-shadow {
  0% { opacity: 0.8; }
  50% { opacity: 1; }
  100% { opacity: 0.7; }
}

/* Scene: st-clare-confession-slavery */
.scn-st-clare-confession-slavery {
  background:
    linear-gradient(180deg, #2a2a3e 0%, #1a1a2e 40%, #0a0a1a 100%),
    radial-gradient(ellipse at 50% 40%, #4a3a4a 0%, transparent 70%);
}
.scn-st-clare-confession-slavery .wall {
  position: absolute; inset: 0; background: linear-gradient(180deg, #1c1c2a 0%, #0e0e1a 100%);
}
.scn-st-clare-confession-slavery .lamp {
  position: absolute; top: 10%; left: 45%; width: 6%; height: 10%;
  background: radial-gradient(circle, #d4a060 0%, #b08040 50%, #604020 100%);
  border-radius: 50%; box-shadow: 0 0 20px 8px #b08040, 0 0 40px 16px rgba(176,128,64,0.3);
  animation: scc-lamp 3s ease-in-out infinite alternate;
}
.scn-st-clare-confession-slavery .chair {
  position: absolute; bottom: 20%; left: 30%; width: 15%; height: 25%;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 10% 10% 5% 5%; box-shadow: 0 6px 12px rgba(0,0,0,0.6);
  animation: scc-chair 4s ease-in-out infinite;
}
.scn-st-clare-confession-slavery .figure-st-clare {
  position: absolute; bottom: 20%; left: 32%; width: 12%; height: 35%;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: scc-stclare 5s ease-in-out infinite;
}
.scn-st-clare-confession-slavery .figure-miss-ophelia {
  position: absolute; bottom: 20%; left: 55%; width: 10%; height: 32%;
  background: linear-gradient(180deg, #2a1a2a 0%, #1a0a1a 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: scc-missop 6s ease-in-out infinite alternate;
}
.scn-st-clare-confession-slavery .shadow {
  position: absolute; bottom: 0; left: 25%; right: 25%; height: 15%;
  background: linear-gradient(180deg, rgba(0,0,0,0.8) 0%, transparent 100%);
  animation: scc-shadow 8s ease-in-out infinite;
}

@keyframes scc-lamp {
  0% { transform: rotate(0deg) scale(1); }
  50% { transform: rotate(5deg) scale(1.1); }
  100% { transform: rotate(-3deg) scale(0.95); }
}
@keyframes scc-chair {
  0% { transform: translateY(0); }
  50% { transform: translateY(-3px); }
  100% { transform: translateY(0); }
}
@keyframes scc-stclare {
  0% { transform: translateX(0) rotate(0deg); }
  25% { transform: translateX(3px) rotate(4deg); }
  50% { transform: translateX(-2px) rotate(-2deg); }
  75% { transform: translateX(1px) rotate(3deg); }
  100% { transform: translateX(0) rotate(0deg); }
}
@keyframes scc-missop {
  0% { transform: translateX(0) scaleY(1); }
  50% { transform: translateX(-4px) scaleY(1.03); }
  100% { transform: translateX(0) scaleY(1); }
}
@keyframes scc-shadow {
  0% { opacity: 0.7; }
  50% { opacity: 1; }
  100% { opacity: 0.6; }
}

/* Scene: topsy-purchased */
.scn-topsy-purchased {
  background:
    linear-gradient(180deg, #f5e8d0 0%, #e8d0a0 40%, #c8a060 100%),
    radial-gradient(ellipse at 50% 10%, #fff4e0 0%, transparent 60%);
}
.scn-topsy-purchased .wall {
  position: absolute; inset: 0; background: linear-gradient(180deg, #f0e0c8 0%, #d8bfa0 100%);
}
.scn-topsy-purchased .window {
  position: absolute; top: 5%; right: 10%; width: 20%; height: 30%;
  background: linear-gradient(180deg, #c0d8e8 0%, #a0b8d0 100%);
  border-radius: 10px; box-shadow: inset 0 0 20px #fff, 0 0 10px rgba(255,255,255,0.5);
  animation: tpu-window 4s ease-in-out infinite alternate;
}
.scn-topsy-purchased .figure-topsy {
  position: absolute; bottom: 15%; left: 20%; width: 8%; height: 25%;
  background: linear-gradient(180deg, #4a2a1a 0%, #2a1a0a 100%);
  border-radius: 45% 45% 30% 30% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: tpu-topsy 3s ease-in-out infinite;
}
.scn-topsy-purchased .figure-miss-ophelia {
  position: absolute; bottom: 15%; left: 35%; width: 10%; height: 32%;
  background: linear-gradient(180deg, #3a2a3a 0%, #1a0a1a 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: tpu-missop 5s ease-in-out infinite alternate;
}
.scn-topsy-purchased .figure-st-clare {
  position: absolute; bottom: 15%; left: 55%; width: 12%; height: 35%;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: tpu-stclare 6s ease-in-out infinite;
}
.scn-topsy-purchased .letter {
  position: absolute; bottom: 20%; left: 70%; width: 8%; height: 10%;
  background: linear-gradient(180deg, #f0e0c8 0%, #d8bfa0 100%);
  border-radius: 5%; box-shadow: 0 2px 4px rgba(0,0,0,0.3);
  animation: tpu-letter 4s ease-in-out infinite;
}

@keyframes tpu-window {
  0% { opacity: 0.8; }
  50% { opacity: 1; }
  100% { opacity: 0.9; }
}
@keyframes tpu-topsy {
  0% { transform: translateX(0) rotate(0deg); }
  20% { transform: translateX(5px) translateY(-2px) rotate(5deg); }
  40% { transform: translateX(-3px) translateY(1px) rotate(-3deg); }
  60% { transform: translateX(2px) translateY(-1px) rotate(2deg); }
  80% { transform: translateX(-1px) translateY(2px) rotate(-1deg); }
  100% { transform: translateX(0) rotate(0deg); }
}
@keyframes tpu-missop {
  0% { transform: translateX(0) scaleY(1); }
  50% { transform: translateX(-3px) scaleY(1.05); }
  100% { transform: translateX(0) scaleY(1); }
}
@keyframes tpu-stclare {
  0% { transform: translateX(0) rotate(0deg); }
  25% { transform: translateX(2px) rotate(2deg); }
  50% { transform: translateX(-1px) rotate(-1deg); }
  75% { transform: translateX(1px) rotate(1deg); }
  100% { transform: translateX(0) rotate(0deg); }
}
@keyframes tpu-letter {
  0% { transform: translate(0,0) rotate(0deg); }
  30% { transform: translate(2px,-3px) rotate(5deg); }
  60% { transform: translate(-1px,1px) rotate(-3deg); }
  100% { transform: translate(0,0) rotate(0deg); }
}

/* topsy-lessons - funny bright interior */
.scn-topsy-lessons {
  background: linear-gradient(180deg, #f5efe0 0%, #e8dcc0 40%, #d4c4a0 100%), radial-gradient(ellipse at 70% 30%, #fff8e8 0%, transparent 60%);
}
.scn-topsy-lessons .room-wall {
  position: absolute; inset: 0 0 45% 0;
  background: linear-gradient(180deg, #ecdcc0 0%, #c8b090 100%);
  box-shadow: inset 0 8px 30px rgba(0,0,0,0.08);
}
.scn-topsy-lessons .window {
  position: absolute; top: 8%; right: 15%; width: 70px; height: 90px;
  background: radial-gradient(circle at 50% 50%, #fff6dc 0%, #b8a880 80%);
  border: 4px solid #8a7a60; border-radius: 6px;
  box-shadow: inset 0 0 30px rgba(255,246,220,0.3);
  animation: tl-window 6s ease-in-out infinite alternate;
}
.scn-topsy-lessons .desk {
  position: absolute; bottom: 28%; left: 20%; width: 120px; height: 14px;
  background: linear-gradient(180deg, #b09070 0%, #8a7050 100%);
  border-radius: 4px; box-shadow: 0 6px 12px rgba(0,0,0,0.2);
}
.scn-topsy-lessons .book-open {
  position: absolute; bottom: 35%; left: 25%; width: 40px; height: 25px;
  background: linear-gradient(135deg, #f0e0c0 0%, #c8b090 50%, #a09070 100%);
  border-radius: 2px 20px 20px 2px; transform: rotate(-5deg);
  box-shadow: 0 4px 8px rgba(0,0,0,0.15);
  animation: tl-book 8s ease-in-out infinite;
}
.scn-topsy-lessons .figure-miss-ophelia {
  position: absolute; bottom: 28%; left: 30%; width: 20px; height: 50px;
  background: linear-gradient(180deg, #6a5a4a 0%, #3a2a1a 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: tl-ophelia 4s ease-in-out infinite;
}
.scn-topsy-lessons .figure-topsy-silhouette {
  position: absolute; bottom: 28%; left: 38%; width: 14px; height: 32px;
  background: linear-gradient(180deg, #2a1a0a 0%, #0a0a00 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: tl-topsy 3s ease-in-out infinite alternate;
}
.scn-topsy-lessons .ribbon-stolen {
  position: absolute; bottom: 40%; left: 34%; width: 12px; height: 4px;
  background: #b87878; /* dusty rose instead of crimson */
  border-radius: 2px; box-shadow: 0 2px 6px rgba(184,120,120,0.5);
  animation: tl-ribbon 2s ease-in-out infinite;
}
.scn-topsy-lessons .glow-eva-kindness {
  position: absolute; bottom: 38%; left: 30%; width: 50px; height: 40px;
  background: radial-gradient(circle at 30% 60%, rgba(255,230,180,0.25) 0%, transparent 70%);
  filter: blur(6px); pointer-events: none;
  animation: tl-glow 5s ease-in-out infinite alternate;
}
@keyframes tl-window {
  0% { opacity:0.9; transform:scale(1); }
  50% { opacity:1; transform:scale(1.02); }
  100% { opacity:0.85; transform:scale(0.98); }
}
@keyframes tl-book {
  0% { transform: rotate(-5deg) translateY(0); }
  50% { transform: rotate(-3deg) translateY(-2px); }
  100% { transform: rotate(-5deg) translateY(0); }
}
@keyframes tl-ophelia {
  0% { transform: rotate(-2deg) translateX(0); }
  50% { transform: rotate(2deg) translateX(3px); }
  100% { transform: rotate(-2deg) translateX(0); }
}
@keyframes tl-topsy {
  0% { transform: translateX(0) rotate(0); }
  25% { transform: translateX(4px) rotate(-5deg); }
  75% { transform: translateX(-2px) rotate(5deg); }
  100% { transform: translateX(0) rotate(0); }
}
@keyframes tl-ribbon {
  0% { opacity:0.7; transform: translateX(0) rotate(0); }
  50% { opacity:1; transform: translateX(8px) rotate(20deg); }
  100% { opacity:0.7; transform: translateX(0) rotate(0); }
}
@keyframes tl-glow {
  0% { opacity:0.3; transform:scale(0.8); }
  50% { opacity:0.6; transform:scale(1.2); }
  100% { opacity:0.4; transform:scale(0.9); }
}

/* topsy-catechism - funny bright interior */
.scn-topsy-catechism {
  background: linear-gradient(180deg, #f5f0e0 0%, #e8dcc0 30%, #d0c0a0 70%, #b8a888 100%), radial-gradient(ellipse at 40% 60%, #fff5e0 0%, transparent 50%);
}
.scn-topsy-catechism .bg-room {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(180deg, #e8dcc0 0%, #d0c0a0 100%);
  box-shadow: inset 0 10px 40px rgba(0,0,0,0.05);
}
.scn-topsy-catechism .window-light {
  position: absolute; top: 10%; left: 10%; width: 60px; height: 80px;
  background: radial-gradient(circle at 50% 50%, #fff8e0 0%, #c8b880 80%);
  border: 3px solid #8a7a60; border-radius: 4px;
  box-shadow: inset 0 0 20px rgba(255,248,224,0.2);
  animation: tc-window 10s ease-in-out infinite alternate;
}
.scn-topsy-catechism .lectern {
  position: absolute; bottom: 25%; left: 30%; width: 30px; height: 60px;
  background: linear-gradient(180deg, #a08060 0%, #6a5030 100%);
  border-radius: 4px 4px 10px 10px;
  transform: skewX(-3deg);
  box-shadow: 0 8px 16px rgba(0,0,0,0.2);
}
.scn-topsy-catechism .catechism-book {
  position: absolute; bottom: 40%; left: 32%; width: 35px; height: 22px;
  background: linear-gradient(135deg, #d0c0a0 0%, #b8a080 50%, #908060 100%);
  border-radius: 2px 15px 15px 2px; transform: rotate(-8deg);
  box-shadow: 0 4px 8px rgba(0,0,0,0.15);
  animation: tc-book 6s ease-in-out infinite;
}
.scn-topsy-catechism .figure-miss-ophelia-pointing {
  position: absolute; bottom: 25%; left: 25%; width: 18px; height: 48px;
  background: linear-gradient(180deg, #6a5a4a 0%, #3a2a1a 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: tc-ophelia 4s ease-in-out infinite;
}
.scn-topsy-catechism .figure-topsy-arms-up {
  position: absolute; bottom: 28%; left: 40%; width: 14px; height: 28px;
  background: linear-gradient(180deg, #2a1a0a 0%, #0a0a00 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: tc-topsy 3s ease-in-out infinite alternate;
}
.scn-topsy-catechism .figure-st-clare-laughter {
  position: absolute; bottom: 22%; right: 18%; width: 22px; height: 44px;
  background: linear-gradient(180deg, #4a3a2a 0%, #1a1a0a 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  transform: rotate(10deg);
  transform-origin: bottom center;
  animation: tc-stclare 5s ease-in-out infinite;
}
.scn-topsy-catechism .question-mark-shape {
  position: absolute; bottom: 45%; left: 42%; width: 12px; height: 20px;
  background: radial-gradient(circle at 50% 30%, #c8a060 0%, transparent 70%);
  border-radius: 50% 50% 20% 20% / 60% 60% 40% 40%;
  filter: blur(2px);
  opacity: 0.6;
  animation: tc-question 4s ease-in-out infinite;
}
@keyframes tc-window {
  0% { opacity:0.8; box-shadow: inset 0 0 20px rgba(255,248,224,0.2); }
  50% { opacity:1; box-shadow: inset 0 0 40px rgba(255,248,224,0.4); }
  100% { opacity:0.85; box-shadow: inset 0 0 20px rgba(255,248,224,0.25); }
}
@keyframes tc-book {
  0% { transform: rotate(-8deg) translateY(0); }
  50% { transform: rotate(-5deg) translateY(-3px); }
  100% { transform: rotate(-8deg) translateY(0); }
}
@keyframes tc-ophelia {
  0% { transform: rotate(-3deg) translateX(0); }
  50% { transform: rotate(3deg) translateX(5px); }
  100% { transform: rotate(-3deg) translateX(0); }
}
@keyframes tc-topsy {
  0% { transform: translateX(0) rotate(0) scaleY(1); }
  30% { transform: translateX(6px) rotate(-10deg) scaleY(0.9); }
  70% { transform: translateX(-4px) rotate(10deg) scaleY(1.05); }
  100% { transform: translateX(0) rotate(0) scaleY(1); }
}
@keyframes tc-stclare {
  0% { transform: rotate(10deg) translateX(0); }
  50% { transform: rotate(15deg) translateX(-5px); }
  100% { transform: rotate(10deg) translateX(0); }
}
@keyframes tc-question {
  0% { opacity:0.4; transform: translateY(0) rotate(0); }
  50% { opacity:0.8; transform: translateY(-6px) rotate(15deg); }
  100% { opacity:0.4; transform: translateY(0) rotate(0); }
}

/* chloe-plans-redemption - warm dim interior */
.scn-chloe-plans-redemption {
  background: linear-gradient(180deg, #2a1a0a 0%, #4a2a1a 30%, #3a1a0a 70%, #1a0a00 100%), radial-gradient(ellipse at 50% 80%, #6a3a1a 0%, transparent 70%);
}
.scn-chloe-plans-redemption .bg-dim-interior {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #4a2a1a 0%, #2a1a0a 100%);
  box-shadow: inset 0 8px 30px rgba(0,0,0,0.5);
}
.scn-chloe-plans-redemption .table-wooden {
  position: absolute; bottom: 22%; left: 20%; width: 140px; height: 12px;
  background: linear-gradient(180deg, #6a4a2a 0%, #4a2a1a 100%);
  border-radius: 4px; box-shadow: 0 8px 16px rgba(0,0,0,0.6);
}
.scn-chloe-plans-redemption .figure-mrs-shelby {
  position: absolute; bottom: 20%; left: 28%; width: 20px; height: 46px;
  background: linear-gradient(180deg, #5a4a3a 0%, #2a1a0a 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: cp-shelby 8s ease-in-out infinite alternate;
}
.scn-chloe-plans-redemption .figure-chloe-silhouette {
  position: absolute; bottom: 22%; left: 40%; width: 18px; height: 40px;
  background: linear-gradient(180deg, #0a0a00 0%, #000000 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: cp-chloe 6s ease-in-out infinite;
}
.scn-chloe-plans-redemption .candle-glow {
  position: absolute; bottom: 32%; left: 34%; width: 8px; height: 14px;
  background: radial-gradient(circle at 50% 0%, #ffd080 0%, #ffa040 60%, transparent 100%);
  border-radius: 50% 50% 20% 20% / 60% 60% 40% 40%;
  box-shadow: 0 0 30px 10px rgba(255,160,64,0.4);
  animation: cp-candle 4s ease-in-out infinite alternate;
}
.scn-chloe-plans-redemption .coin-pouch {
  position: absolute; bottom: 28%; left: 46%; width: 16px; height: 12px;
  background: linear-gradient(135deg, #c8a060 0%, #a08040 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  box-shadow: 0 4px 8px rgba(0,0,0,0.3);
  animation: cp-pouch 5s ease-in-out infinite;
}
.scn-chloe-plans-redemption .letter-plan {
  position: absolute; bottom: 30%; left: 48%; width: 20px; height: 14px;
  background: linear-gradient(135deg, #f0e0c0 0%, #c8b090 100%);
  border-radius: 2px; transform: rotate(15deg);
  box-shadow: 0 2px 6px rgba(0,0,0,0.2);
  animation: cp-letter 7s ease-in-out infinite;
}
@keyframes cp-shelby {
  0% { transform: translateX(0) rotate(0); }
  50% { transform: translateX(4px) rotate(-2deg); }
  100% { transform: translateX(0) rotate(0); }
}
@keyframes cp-chloe {
  0% { transform: translateX(0) rotate(0) scaleY(1); }
  25% { transform: translateX(8px) rotate(-5deg) scaleY(0.95); }
  75% { transform: translateX(-4px) rotate(3deg) scaleY(1.02); }
  100% { transform: translateX(0) rotate(0) scaleY(1); }
}
@keyframes cp-candle {
  0% { opacity:0.75; transform: scaleY(1); box-shadow: 0 0 30px 10px rgba(255,160,64,0.4); }
  50% { opacity:1; transform: scaleY(1.15); box-shadow: 0 0 50px 18px rgba(255,200,80,0.6); }
  100% { opacity:0.8; transform: scaleY(0.95); box-shadow: 0 0 30px 10px rgba(255,160,64,0.3); }
}
@keyframes cp-pouch {
  0% { transform: translateY(0); opacity:0.7; }
  50% { transform: translateY(-4px); opacity:1; }
  100% { transform: translateY(0); opacity:0.7; }
}
@keyframes cp-letter {
  0% { transform: rotate(15deg) translateY(0); }
  50% { transform: rotate(20deg) translateY(-2px); }
  100% { transform: rotate(15deg) translateY(0); }
}

/* eva-jewelry-wish - warm bright interior */
.scn-eva-jewelry-wish {
  background: linear-gradient(180deg, #f8f0e0 0%, #f0e0c0 50%, #e0c8a0 100%), radial-gradient(ellipse at 60% 20%, #fff5e0 0%, transparent 60%);
}
.scn-eva-jewelry-wish .parlor-wall {
  position: absolute; inset: 0 0 35% 0;
  background: linear-gradient(180deg, #f0e0c0 0%, #dcc8a8 100%);
  box-shadow: inset 0 10px 40px rgba(0,0,0,0.06);
}
.scn-eva-jewelry-wish .window-elegant {
  position: absolute; top: 6%; right: 10%; width: 60px; height: 100px;
  background: radial-gradient(circle at 50% 50%, #fff8e8 0%, #d4c8a0 80%);
  border: 4px solid #a08868; border-radius: 6px;
  box-shadow: inset 0 0 20px rgba(255,248,232,0.3);
  animation: ej-window 8s ease-in-out infinite alternate;
}
.scn-eva-jewelry-wish .jewelry-table {
  position: absolute; bottom: 20%; left: 25%; width: 130px; height: 14px;
  background: linear-gradient(180deg, #c0a880 0%, #a08868 100%);
  border-radius: 6px; box-shadow: 0 8px 20px rgba(0,0,0,0.15);
}
.scn-eva-jewelry-wish .jewel-box-open {
  position: absolute; bottom: 24%; left: 30%; width: 40px; height: 28px;
  background: linear-gradient(135deg, #8a7050 0%, #6a5030 100%);
  border-radius: 4px 4px 10px 10px;
  transform: skewX(-2deg);
  box-shadow: 0 6px 12px rgba(0,0,0,0.2);
  animation: ej-box 6s ease-in-out infinite;
}
.scn-eva-jewelry-wish .necklace-glow {
  position: absolute; bottom: 30%; left: 32%; width: 18px; height: 20px;
  background: radial-gradient(circle at 50% 50%, #ffd080 0%, #e0a040 60%, transparent 100%);
  border-radius: 50%;
  box-shadow: 0 0 40px 12px rgba(255,208,128,0.5);
  animation: ej-necklace 3s ease-in-out infinite alternate;
}
.scn-eva-jewelry-wish .figure-marie {
  position: absolute; bottom: 20%; left: 28%; width: 22px; height: 48px;
  background: linear-gradient(180deg, #7a5a4a 0%, #4a2a1a 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: ej-marie 5s ease-in-out infinite;
}
.scn-eva-jewelry-wish .figure-eva-silhouette {
  position: absolute; bottom: 20%; left: 42%; width: 16px; height: 38px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0a00 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: ej-eva 4s ease-in-out infinite alternate;
}
.scn-eva-jewelry-wish .dream-house {
  position: absolute; bottom: 50%; left: 60%; width: 30px; height: 24px;
  background: radial-gradient(ellipse at 50% 100%, #c8a060 0%, transparent 70%);
  border-radius: 20% 20% 0 0 / 40% 40% 0 0;
  filter: blur(3px);
  opacity: 0.5;
  animation: ej-house 12s ease-in-out infinite;
}
@keyframes ej-window {
  0% { opacity:0.8; box-shadow: inset 0 0 20px rgba(255,248,232,0.3); }
  50% { opacity:1; box-shadow: inset 0 0 40px rgba(255,248,232,0.5); }
  100% { opacity:0.85; box-shadow: inset 0 0 20px rgba(255,248,232,0.35); }
}
@keyframes ej-box {
  0% { transform: skewX(-2deg) translateY(0); }
  50% { transform: skewX(-2deg) translateY(-4px); }
  100% { transform: skewX(-2deg) translateY(0); }
}
@keyframes ej-necklace {
  0% { opacity:0.7; transform: scale(0.9); box-shadow: 0 0 30px 8px rgba(255,208,128,0.4); }
  50% { opacity:1; transform: scale(1.1); box-shadow: 0 0 50px 18px rgba(255,220,140,0.7); }
  100% { opacity:0.75; transform: scale(0.95); box-shadow: 0 0 30px 8px rgba(255,208,128,0.4); }
}
@keyframes ej-marie {
  0% { transform: rotate(0) translateX(0); }
  50% { transform: rotate(2deg) translateX(5px); }
  100% { transform: rotate(0) translateX(0); }
}
@keyframes ej-eva {
  0% { transform: rotate(-2deg) translateX(0); }
  50% { transform: rotate(2deg) translateX(-4px); }
  100% { transform: rotate(-2deg) translateX(0); }
}
@keyframes ej-house {
  0% { opacity:0.3; transform: translateY(0) scale(0.8); }
  50% { opacity:0.6; transform: translateY(-10px) scale(1.1); }
  100% { opacity:0.4; transform: translateY(0) scale(0.9); }
}

/* eva-illness-denial – dark mood, dim interior */
.scn-eva-illness-denial {
  background: linear-gradient(180deg, #1a1a3a 0%, #0e0e24 40%, #12122e 100%), radial-gradient(ellipse at 30% 40%, #2a2a4e 0%, transparent 60%);
}
.scn-eva-illness-denial .room-bg {
  position:absolute; inset:0; background: linear-gradient(180deg, #0a0a1e 0%, #14143a 100%); opacity:.6; animation: eid-room 12s ease-in-out infinite alternate;
}
.scn-eva-illness-denial .bed {
  position:absolute; bottom:20%; left:35%; width:30%; height:40%; background: linear-gradient(180deg, #2c2c44 0%, #181830 100%); border-radius: 8% 8% 4% 4%; box-shadow: inset 0 0 20px rgba(0,0,0,.6);
}
.scn-eva-illness-denial .figure-marie {
  position:absolute; bottom:30%; left:55%; width:16%; height:50%; background: linear-gradient(180deg, #1e1e38 0%, #0c0c1e 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: eid-figure 4s ease-in-out infinite alternate;
}
.scn-eva-illness-denial .figure-stclare {
  position:absolute; bottom:28%; left:20%; width:14%; height:45%; background: linear-gradient(180deg, #22223e 0%, #0e0e24 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: eid-figure 5s ease-in-out infinite alternate-reverse;
}
.scn-eva-illness-denial .lamp-glow {
  position:absolute; bottom:35%; left:45%; width:3%; height:3%; background: radial-gradient(circle, #d4a060 0%, #b08040 50%, transparent 100%); border-radius:50%; box-shadow: 0 0 40px 20px #b08040, 0 0 80px 40px rgba(176,128,64,.3); animation: eid-lamp 3s ease-in-out infinite alternate;
}
.scn-eva-illness-denial .window-light {
  position:absolute; top:15%; right:15%; width:12%; height:20%; background: radial-gradient(ellipse, #4a5a7a 0%, transparent 70%); border-radius: 50%; opacity:.3; animation: eid-window 8s ease-in-out infinite alternate;
}
.scn-eva-illness-denial .shadow-flicker {
  position:absolute; inset:0; background: radial-gradient(ellipse at 45% 35%, transparent 40%, #000 80%); pointer-events: none; animation: eid-shadow 3s ease-in-out infinite alternate;
}
@keyframes eid-room { 0% { opacity:.5 } 50% { opacity:.7 } 100% { opacity:.55 } }
@keyframes eid-figure { 0% { transform: translateY(0) rotate(-1deg) } 50% { transform: translateY(-2px) rotate(1deg) } 100% { transform: translateY(0) rotate(0) } }
@keyframes eid-lamp { 0% { box-shadow: 0 0 30px 10px #b08040; opacity:.7 } 50% { box-shadow: 0 0 60px 30px #c09050; opacity:1 } 100% { box-shadow: 0 0 35px 15px #b08040; opacity:.8 } }
@keyframes eid-window { 0% { opacity:.2 } 50% { opacity:.4 } 100% { opacity:.25 } }
@keyframes eid-shadow { 0% { opacity:.6 } 50% { opacity:.8 } 100% { opacity:.65 } }

/* eva-deathbed-wish – warm mood, dim interior */
.scn-eva-deathbed-wish {
  background: linear-gradient(180deg, #2a1a1a 0%, #4a2a1a 40%, #3a2010 100%), radial-gradient(ellipse at 50% 60%, #5a3a2a 0%, transparent 70%);
}
.scn-eva-deathbed-wish .room-bg {
  position:absolute; inset:0; background: linear-gradient(180deg, #1a0e0e 0%, #2a1a10 100%); opacity:.5; animation: edw-room 15s ease-in-out infinite alternate;
}
.scn-eva-deathbed-wish .bed {
  position:absolute; bottom:15%; left:30%; width:40%; height:35%; background: linear-gradient(180deg, #5a3a2a 0%, #3a2218 100%); border-radius: 12% 12% 6% 6%; box-shadow: 0 0 30px rgba(0,0,0,.4);
}
.scn-eva-deathbed-wish .eva-figure {
  position:absolute; bottom:18%; left:38%; width:10%; height:20%; background: linear-gradient(180deg, #6a4a3a 0%, #3a2a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: edw-breath 4s ease-in-out infinite;
}
.scn-eva-deathbed-wish .stclare-figure {
  position:absolute; bottom:20%; left:52%; width:12%; height:40%; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a10 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform: rotate(10deg); transform-origin: bottom center; animation: edw-lean 5s ease-in-out infinite alternate;
}
.scn-eva-deathbed-wish .topsy-figure {
  position:absolute; bottom:22%; left:30%; width:8%; height:25%; background: linear-gradient(180deg, #3a2a1a 0%, #1a0e0a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: edw-kneel 6s ease-in-out infinite alternate;
}
.scn-eva-deathbed-wish .candle-glow {
  position:absolute; bottom:30%; left:70%; width:2%; height:3%; background: radial-gradient(circle, #ffcc80 0%, #e0a050 50%, transparent 100%); border-radius:50%; box-shadow: 0 0 30px 15px #e0a050, 0 0 60px 30px rgba(224,160,80,.3); animation: edw-candle 3s ease-in-out infinite alternate;
}
.scn-eva-deathbed-wish .cross-symbol {
  position:absolute; top:20%; right:20%; width:6%; height:12%; background: linear-gradient(180deg, #8a6a4a 0%, #6a4a2a 100%); border-radius: 10%; box-shadow: 0 0 10px rgba(200,180,120,.5); animation: edw-cross 10s ease-in-out infinite;
}
.scn-eva-deathbed-wish .blanket {
  position:absolute; bottom:15%; left:32%; width:36%; height:6%; background: linear-gradient(180deg, #6a4a3a 0%, #4a2a1a 100%); border-radius: 30% 30% 0 0; opacity:.8;
}
@keyframes edw-room { 0% { opacity:.4 } 50% { opacity:.6 } 100% { opacity:.45 } }
@keyframes edw-breath { 0% { transform: scaleY(1) } 50% { transform: scaleY(1.02) } 100% { transform: scaleY(1) } }
@keyframes edw-lean { 0% { transform: rotate(8deg) } 50% { transform: rotate(12deg) } 100% { transform: rotate(8deg) } }
@keyframes edw-kneel { 0% { transform: translateY(0) } 50% { transform: translateY(-3px) } 100% { transform: translateY(0) } }
@keyframes edw-candle { 0% { box-shadow: 0 0 20px 10px #e0a050; opacity:.8 } 50% { box-shadow: 0 0 40px 20px #ffcc80; opacity:1 } 100% { box-shadow: 0 0 25px 12px #e0a050; opacity:.85 } }
@keyframes edw-cross { 0% { transform: scale(1) } 50% { transform: scale(1.05) } 100% { transform: scale(1) } }

/* eva-gives-curl – warm mood, dim interior */
.scn-eva-gives-curl {
  background: linear-gradient(180deg, #2a1a0e 0%, #4a2a1a 40%, #3a2010 100%), radial-gradient(ellipse at 50% 70%, #6a4a2a 0%, transparent 60%);
}
.scn-eva-gives-curl .room-bg {
  position:absolute; inset:0; background: linear-gradient(180deg, #1a0e0a 0%, #2a1a10 100%); opacity:.4; animation: egc-room 18s ease-in-out infinite alternate;
}
.scn-eva-gives-curl .bed {
  position:absolute; bottom:10%; left:25%; width:50%; height:35%; background: linear-gradient(180deg, #5a3a2a 0%, #3a2218 100%); border-radius: 12% 12% 6% 6%; box-shadow: inset 0 -10px 20px rgba(0,0,0,.4);
}
.scn-eva-gives-curl .eva-sitting {
  position:absolute; bottom:20%; left:35%; width:12%; height:30%; background: linear-gradient(180deg, #7a5a4a 0%, #4a2a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: egc-sit 4s ease-in-out infinite;
}
.scn-eva-gives-curl .servant-one {
  position:absolute; bottom:15%; left:15%; width:10%; height:35%; background: linear-gradient(180deg, #3a2a1a 0%, #1a100a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: egc-servant 5s ease-in-out infinite alternate;
}
.scn-eva-gives-curl .servant-two {
  position:absolute; bottom:15%; left:50%; width:10%; height:35%; background: linear-gradient(180deg, #3a2a1a 0%, #1a100a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: egc-servant 5.5s ease-in-out infinite alternate-reverse;
}
.scn-eva-gives-curl .servant-three {
  position:absolute; bottom:15%; left:68%; width:10%; height:35%; background: linear-gradient(180deg, #3a2a1a 0%, #1a100a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: egc-servant 6s ease-in-out infinite alternate;
}
.scn-eva-gives-curl .topsy-small {
  position:absolute; bottom:18%; left:40%; width:7%; height:20%; background: linear-gradient(180deg, #2a1a10 0%, #0e0a06 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: egc-kneel 4s ease-in-out infinite alternate;
}
.scn-eva-gives-curl .curls-group {
  position:absolute; bottom:28%; left:35%; width:30%; height:5%; background: transparent; box-shadow: 2px 0 #c8a060, 8px -2px #d4b080, 15px 1px #b09050, 22px -1px #c8a060, 28px 0 #d4b080, 12px 4px #b09050, 20px 3px #c8a060; border-radius: 50%; animation: egc-curl 7s ease-in-out infinite alternate;
}
.scn-eva-gives-curl .stclare-door {
  position:absolute; bottom:12%; right:12%; width:8%; height:40%; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a10 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; opacity:.7;
}
@keyframes egc-room { 0% { opacity:.35 } 50% { opacity:.55 } 100% { opacity:.4 } }
@keyframes egc-sit { 0% { transform: scaleY(1) } 50% { transform: scaleY(1.03) } 100% { transform: scaleY(1) } }
@keyframes egc-servant { 0% { transform: translateY(0) } 50% { transform: translateY(-2px) } 100% { transform: translateY(0) } }
@keyframes egc-kneel { 0% { transform: translateY(0) scaleY(1) } 50% { transform: translateY(-1px) scaleY(0.98) } 100% { transform: translateY(0) scaleY(1) } }
@keyframes egc-curl { 0% { transform: translateX(0) rotate(-2deg) } 50% { transform: translateX(3px) rotate(2deg) } 100% { transform: translateX(0) rotate(0) } }

/* eva-death – warm mood, dim interior (midnight) */
.scn-eva-death {
  background: linear-gradient(180deg, #0a0a1a 0%, #1a1a2e 40%, #0e0e20 100%), radial-gradient(ellipse at 50% 30%, #2a2a4e 0%, transparent 70%);
}
.scn-eva-death .room-bg {
  position:absolute; inset:0; background: linear-gradient(180deg, #08081a 0%, #12122a 100%); opacity:.6; animation: edh-room 20s ease-in-out infinite alternate;
}
.scn-eva-death .drapery-left {
  position:absolute; top:0; left:0; width:20%; height:100%; background: linear-gradient(180deg, rgba(255,255,240,.15) 0%, rgba(200,200,180,.1) 100%); border-radius: 0 40% 40% 0; filter: blur(4px); animation: edh-drape 12s ease-in-out infinite alternate;
}
.scn-eva-death .drapery-right {
  position:absolute; top:0; right:0; width:20%; height:100%; background: linear-gradient(180deg, rgba(255,255,240,.15) 0%, rgba(200,200,180,.1) 100%); border-radius: 40% 0 0 40%; filter: blur(4px); animation: edh-drape 14s ease-in-out infinite alternate-reverse;
}
.scn-eva-death .bed-white {
  position:absolute; bottom:10%; left:30%; width:40%; height:30%; background: linear-gradient(180deg, #f0ede8 0%, #d8d0c8 100%); border-radius: 12% 12% 6% 6%; box-shadow: 0 0 20px rgba(255,255,240,.1);
}
.scn-eva-death .eva-resting {
  position:absolute; bottom:12%; left:38%; width:8%; height:15%; background: linear-gradient(180deg, #e0d8d0 0%, #c0b8b0 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: edh-peace 5s ease-in-out infinite alternate;
}
.scn-eva-death .flowers-scatter {
  position:absolute; bottom:10%; left:35%; width:30%; height:5%; background: transparent; box-shadow: 5px 0 #d4a0a0, 12px -2px #e8b0b0, 20px 1px #b87878, 28px -1px #d4a0a0, 35px 0 #e8b0b0, 15px 3px #c89090, 25px 2px #d4a0a0; border-radius: 50%; animation: edh-flowers 8s ease-in-out infinite alternate;
}
.scn-eva-death .topsy-outside {
  position:absolute; bottom:15%; right:15%; width:6%; height:20%; background: linear-gradient(180deg, #1a0e0a 0%, #0e0604 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: edh-topsy 7s ease-in-out infinite alternate;
}
.scn-eva-death .stclare-standing {
  position:absolute; bottom:10%; left:18%; width:10%; height:45%; background: linear-gradient(180deg, #2a1a10 0%, #0e0a06 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: edh-stamp 3s ease-in-out infinite alternate;
}
.scn-eva-death .cross-light {
  position:absolute; top:15%; left:45%; width:4%; height:10%; background: linear-gradient(180deg, #d0c8b0 0%, #a09870 100%); border-radius: 10%; box-shadow: 0 0 15px rgba(200,180,150,.4); animation: edh-cross 10s ease-in-out infinite;
}
@keyframes edh-room { 0% { opacity:.5 } 50% { opacity:.7 } 100% { opacity:.55 } }
@keyframes edh-drape { 0% { transform: scaleX(1) } 50% { transform: scaleX(1.05) } 100% { transform: scaleX(1) } }
@keyframes edh-peace { 0% { transform: scaleY(1) } 50% { transform: scaleY(1.01) } 100% { transform: scaleY(1) } }
@keyframes edh-flowers { 0% { transform: rotate(0) } 50% { transform: rotate(5deg) } 100% { transform: rotate(0) } }
@keyframes edh-topsy { 0% { transform: translateY(0) scaleY(1) } 50% { transform: translateY(-2px) scaleY(0.97) } 100% { transform: translateY(0) scaleY(1) } }
@keyframes edh-stamp { 0% { transform: rotate(-2deg) } 50% { transform: rotate(2deg) } 100% { transform: rotate(-2deg) } }
@keyframes edh-cross { 0% { box-shadow: 0 0 10px rgba(200,180,150,.3) } 50% { box-shadow: 0 0 20px rgba(200,180,150,.5) } 100% { box-shadow: 0 0 10px rgba(200,180,150,.3) } }

.scn-legree-buys-tom {
  background: linear-gradient(180deg, #1a1a2e 0%, #0f0f1a 40%, #08080f 100%), radial-gradient(ellipse at 50% 100%, #1a1a2e 0%, transparent 70%);
  position: relative;
  overflow: hidden;
}
.scn-legree-buys-tom .lbt-boat-floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a1008 100%);
}
.scn-legree-buys-tom .lbt-boat-wall {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #2a1a0a 0%, #1a0e04 100%);
}
.scn-legree-buys-tom .lbt-lantern {
  position: absolute; top: 25%; left: 20%; width: 12px; height: 18px;
  background: radial-gradient(circle, #d4a040 0%, #804020 70%);
  border-radius: 20% 20% 10% 10%;
  box-shadow: 0 0 24px 8px #d4a040, 0 0 48px 16px rgba(212,160,64,0.4);
  animation: lbt-lantern-glow 3s ease-in-out infinite alternate;
}
.scn-legree-buys-tom .lbt-legree {
  position: absolute; bottom: 28%; left: 30%; width: 40px; height: 60px;
  background: linear-gradient(180deg, #2a1a0a 0%, #1a0e04 100%);
  border-radius: 30% 30% 20% 20% / 40% 40% 30% 30%;
  transform-origin: bottom center;
  animation: lbt-legree-loom 6s ease-in-out infinite alternate;
}
.scn-legree-buys-tom .lbt-tom {
  position: absolute; bottom: 25%; left: 50%; width: 30px; height: 40px;
  background: linear-gradient(180deg, #3a2a1a 0%, #2a1a0a 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  transform-origin: bottom center;
  animation: lbt-tom-tremble 2s ease-in-out infinite;
}
.scn-legree-buys-tom .lbt-bible {
  position: absolute; bottom: 22%; left: 48%; width: 8px; height: 12px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 10%;
  transform: rotate(-15deg);
  animation: lbt-bible-shift 4s ease-in-out infinite;
}
.scn-legree-buys-tom .lbt-clothes {
  position: absolute; bottom: 20%; left: 55%; width: 14px; height: 8px;
  background: linear-gradient(180deg, #3a2a1a 0%, #2a1a0a 100%);
  border-radius: 20%;
  transform: rotate(10deg);
  animation: lbt-clothes-slide 5s ease-in-out infinite;
}
.scn-legree-buys-tom .lbt-shadow {
  position: absolute; bottom: 28%; left: 25%; width: 60px; height: 80px;
  background: radial-gradient(ellipse at 50% 100%, #000 0%, transparent 70%);
  opacity: 0.6;
  animation: lbt-shadow-sway 6s ease-in-out infinite alternate;
}
@keyframes lbt-lantern-glow {
  0% { box-shadow: 0 0 20px 6px #d4a040, 0 0 40px 12px rgba(212,160,64,0.3); opacity: 0.9; }
  50% { box-shadow: 0 0 30px 10px #ffb040, 0 0 60px 20px rgba(255,176,64,0.5); opacity: 1; }
  100% { box-shadow: 0 0 18px 5px #d4a040, 0 0 36px 10px rgba(212,160,64,0.2); opacity: 0.8; }
}
@keyframes lbt-legree-loom {
  0% { transform: translateY(0) scaleY(1); }
  50% { transform: translateY(-3px) scaleY(1.02); }
  100% { transform: translateY(0) scaleY(0.98); }
}
@keyframes lbt-tom-tremble {
  0% { transform: translateX(0) translateY(0) rotate(0deg); }
  25% { transform: translateX(1px) translateY(-1px) rotate(2deg); }
  50% { transform: translateX(-1px) translateY(1px) rotate(-2deg); }
  75% { transform: translateX(2px) translateY(0) rotate(1deg); }
  100% { transform: translateX(-1px) translateY(-1px) rotate(0deg); }
}
@keyframes lbt-bible-shift {
  0% { transform: translate(0,0) rotate(-15deg); }
  50% { transform: translate(2px, -1px) rotate(-12deg); }
  100% { transform: translate(-1px, 1px) rotate(-16deg); }
}
@keyframes lbt-clothes-slide {
  0% { transform: translate(0,0) rotate(10deg); }
  50% { transform: translate(3px, -2px) rotate(13deg); }
  100% { transform: translate(-2px, 1px) rotate(8deg); }
}
@keyframes lbt-shadow-sway {
  0% { transform: translateX(-5px) scaleX(1); }
  50% { transform: translateX(5px) scaleX(1.1); }
  100% { transform: translateX(-5px) scaleX(0.95); }
}

.scn-legree-plantation-arrival {
  background: linear-gradient(180deg, #1a1a2e 0%, #12121f 40%, #0a0a14 100%), radial-gradient(ellipse at 50% 100%, #0a0a14 0%, transparent 70%);
  position: relative;
  overflow: hidden;
}
.scn-legree-plantation-arrival .lpa-shack-wall {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(180deg, #2a2a1a 0%, #1a1a0e 100%);
}
.scn-legree-plantation-arrival .lpa-shack-floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 40%;
  background: linear-gradient(180deg, #1a2a1a 0%, #0a1a0a 100%);
}
.scn-legree-plantation-arrival .lpa-window {
  position: absolute; top: 15%; left: 35%; width: 30px; height: 40px;
  background: linear-gradient(180deg, #b0b0c0 0%, #808090 100%);
  border: 2px solid #2a2a1a;
  border-radius: 5%;
  box-shadow: inset 0 0 10px rgba(255,255,255,0.3);
  animation: lpa-overcast-light 10s ease-in-out infinite alternate;
}
.scn-legree-plantation-arrival .lpa-candle {
  position: absolute; bottom: 55%; left: 20%; width: 4px; height: 10px;
  background: linear-gradient(180deg, #ffd060 0%, #b06020 100%);
  border-radius: 50% 50% 10% 10%;
  box-shadow: 0 0 20px 6px #ffd060, 0 0 40px 12px rgba(255,208,96,0.3);
  animation: lpa-candle-flicker 2s ease-in-out infinite;
}
.scn-legree-plantation-arrival .lpa-tom {
  position: absolute; bottom: 38%; left: 25%; width: 25px; height: 35px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a1a0a 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  animation: lpa-tom-grind 3s ease-in-out infinite;
}
.scn-legree-plantation-arrival .lpa-cornstone {
  position: absolute; bottom: 36%; left: 20%; width: 20px; height: 10px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 40%;
  animation: lpa-stone-spin 4s linear infinite;
}
.scn-legree-plantation-arrival .lpa-women {
  position: absolute; bottom: 35%; left: 55%; width: 20px; height: 15px;
  background: linear-gradient(180deg, #2a1a0a 0%, #1a0e04 100%);
  border-radius: 50% 50% 20% 20%;
  opacity: 0.8;
  animation: lpa-women-sleep 8s ease-in-out infinite;
}
.scn-legree-plantation-arrival .lpa-cassy {
  position: absolute; bottom: 40%; right: 10%; width: 22px; height: 40px;
  background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%);
  border-radius: 30% 30% 20% 20% / 40% 40% 30% 30%;
  animation: lpa-cassy-enter 12s ease-in-out infinite alternate;
}
@keyframes lpa-overcast-light {
  0% { opacity: 0.4; }
  50% { opacity: 0.7; }
  100% { opacity: 0.5; }
}
@keyframes lpa-candle-flicker {
  0% { box-shadow: 0 0 15px 4px #ffd060, 0 0 30px 8px rgba(255,208,96,0.3); opacity: 0.9; }
  25% { box-shadow: 0 0 25px 8px #ffb040, 0 0 50px 16px rgba(255,176,64,0.5); opacity: 1; }
  50% { box-shadow: 0 0 18px 5px #ffd060, 0 0 36px 10px rgba(255,208,96,0.3); opacity: 0.8; }
  75% { box-shadow: 0 0 22px 7px #ffc050, 0 0 45px 14px rgba(255,192,80,0.4); opacity: 0.95; }
  100% { box-shadow: 0 0 15px 4px #ffd060, 0 0 30px 8px rgba(255,208,96,0.3); opacity: 0.9; }
}
@keyframes lpa-tom-grind {
  0% { transform: translateX(0) translateY(0) rotate(0deg); }
  50% { transform: translateX(2px) translateY(-2px) rotate(5deg); }
  100% { transform: translateX(-1px) translateY(0) rotate(-3deg); }
}
@keyframes lpa-stone-spin {
  0% { transform: rotate(0deg); }
  100% { transform: rotate(360deg); }
}
@keyframes lpa-women-sleep {
  0% { transform: scaleY(1); opacity: 0.8; }
  50% { transform: scaleY(0.95); opacity: 0.7; }
  100% { transform: scaleY(1); opacity: 0.8; }
}
@keyframes lpa-cassy-enter {
  0% { transform: translateX(20px) scaleX(0.8); opacity: 0; }
  30% { transform: translateX(0) scaleX(1); opacity: 1; }
  70% { transform: translateX(0) scaleX(1); opacity: 1; }
  100% { transform: translateX(-5px) scaleX(0.9); opacity: 0.5; }
}

.scn-tom-broken-in {
  background: linear-gradient(180deg, #0f0f1a 0%, #080810 40%, #000 100%), radial-gradient(ellipse at 50% 100%, #1a0a0a 0%, transparent 70%);
  position: relative;
  overflow: hidden;
}
.scn-tom-broken-in .tbi-floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 35%;
  background: linear-gradient(180deg, #1a1008 0%, #0a0500 100%);
}
.scn-tom-broken-in .tbi-wall {
  position: absolute; inset: 0 0 35% 0;
  background: linear-gradient(180deg, #1a0a0a 0%, #0a0000 100%);
}
.scn-tom-broken-in .tbi-lamp {
  position: absolute; top: 25%; left: 40%; width: 8px; height: 12px;
  background: radial-gradient(circle, #c06020 0%, #802000 70%);
  border-radius: 30% 30% 10% 10%;
  box-shadow: 0 0 18px 6px #c06020, 0 0 36px 12px rgba(192,96,32,0.4);
  animation: tbi-lamp-swing 5s ease-in-out infinite alternate;
}
.scn-tom-broken-in .tbi-tom {
  position: absolute; bottom: 30%; left: 35%; width: 28px; height: 20px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a1008 100%);
  border-radius: 30% 30% 50% 50% / 20% 20% 40% 40%;
  transform: rotate(-10deg);
  animation: tbi-tom-breathe 4s ease-in-out infinite;
}
.scn-tom-broken-in .tbi-cassy {
  position: absolute; bottom: 30%; left: 55%; width: 20px; height: 35px;
  background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%);
  border-radius: 30% 30% 20% 20% / 40% 40% 30% 30%;
  transform-origin: bottom center;
  animation: tbi-cassy-bend 6s ease-in-out infinite;
}
.scn-tom-broken-in .tbi-water {
  position: absolute; bottom: 32%; left: 50%; width: 8px; height: 6px;
  background: radial-gradient(circle, #6080a0 0%, #204060 100%);
  border-radius: 50%;
  box-shadow: 0 0 6px 2px rgba(96,128,160,0.5);
  animation: tbi-water-glow 3s ease-in-out infinite alternate;
}
.scn-tom-broken-in .tbi-blood {
  position: absolute; bottom: 28%; left: 32%; width: 12px; height: 4px;
  background: linear-gradient(180deg, #3a0505 0%, #1a0000 100%);
  border-radius: 50%;
  animation: tbi-blood-spread 8s ease-in-out infinite;
}
@keyframes tbi-lamp-swing {
  0% { transform: rotate(-5deg); }
  50% { transform: rotate(5deg); }
  100% { transform: rotate(-5deg); }
}
@keyframes tbi-tom-breathe {
  0% { transform: scale(1) rotate(-10deg); }
  50% { transform: scale(1.02) rotate(-12deg); }
  100% { transform: scale(1) rotate(-10deg); }
}
@keyframes tbi-cassy-bend {
  0% { transform: translateY(0) rotate(0deg); }
  50% { transform: translateY(-3px) rotate(10deg); }
  100% { transform: translateY(0) rotate(0deg); }
}
@keyframes tbi-water-glow {
  0% { box-shadow: 0 0 4px 1px rgba(96,128,160,0.3); }
  50% { box-shadow: 0 0 8px 3px rgba(96,128,160,0.7); }
  100% { box-shadow: 0 0 4px 1px rgba(96,128,160,0.3); }
}
@keyframes tbi-blood-spread {
  0% { transform: scaleX(1) scaleY(1); opacity: 0.6; }
  50% { transform: scaleX(1.2) scaleY(0.8); opacity: 0.8; }
  100% { transform: scaleX(0.9) scaleY(1.1); opacity: 0.5; }
}

.scn-cassy-poisons-child {
  background: linear-gradient(180deg, #0a0a14 0%, #05050a 40%, #000 100%), radial-gradient(ellipse at 50% 0%, #2a0a0a 0%, transparent 70%);
  position: relative;
  overflow: hidden;
}
.scn-cassy-poisons-child .cpc-bg {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, #0a0a14 0%, #05050a 100%);
}
.scn-cassy-poisons-child .cpc-cassy {
  position: absolute; bottom: 30%; left: 40%; width: 24px; height: 40px;
  background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%);
  border-radius: 30% 30% 20% 20% / 40% 40% 30% 30%;
  animation: cpc-cassy-rock 4s ease-in-out infinite;
}
.scn-cassy-poisons-child .cpc-infant {
  position: absolute; bottom: 32%; left: 38%; width: 10px; height: 8px;
  background: linear-gradient(180deg, #3a2a1a 0%, #2a1a0a 100%);
  border-radius: 50% 50% 30% 30%;
  animation: cpc-infant-cradle 3s ease-in-out infinite;
}
.scn-cassy-poisons-child .cpc-bottle {
  position: absolute; bottom: 35%; left: 44%; width: 4px; height: 8px;
  background: linear-gradient(180deg, #604030 0%, #301010 100%);
  border-radius: 30%;
  transform: rotate(30deg);
  animation: cpc-bottle-tilt 5s ease-in-out infinite;
}
.scn-cassy-poisons-child .cpc-legree {
  position: absolute; bottom: 30%; right: 20%; width: 35px; height: 50px;
  background: linear-gradient(180deg, #2a1a0a 0%, #1a0e04 100%);
  border-radius: 30% 30% 20% 20% / 40% 40% 30% 30%;
  animation: cpc-legree-shake 3s ease-in-out infinite;
}
.scn-cassy-poisons-child .cpc-fire {
  position: absolute; bottom: 30%; right: 25%; width: 10px; height: 14px;
  background: radial-gradient(circle, #ffa040 0%, #b06020 60%, #402000 100%);
  border-radius: 50%;
  box-shadow: 0 0 20px 8px #ffa040, 0 0 40px 16px rgba(255,160,64,0.4);
  animation: cpc-fire-flicker 2s ease-in-out infinite;
}
.scn-cassy-poisons-child .cpc-coin {
  position: absolute; bottom: 28%; right: 32%; width: 6px; height: 6px;
  background: radial-gradient(circle, #c0a060 0%, #806040 100%);
  border-radius: 50%;
  transform: rotate(45deg);
  animation: cpc-coin-break 8s ease-in-out infinite;
}
@keyframes cpc-cassy-rock {
  0% { transform: translateY(0) rotate(-3deg); }
  50% { transform: translateY(-2px) rotate(3deg); }
  100% { transform: translateY(0) rotate(-3deg); }
}
@keyframes cpc-infant-cradle {
  0% { transform: translateX(0) rotate(0deg); }
  50% { transform: translateX(2px) rotate(5deg); }
  100% { transform: translateX(-1px) rotate(-2deg); }
}
@keyframes cpc-bottle-tilt {
  0% { transform: rotate(25deg); }
  50% { transform: rotate(35deg); }
  100% { transform: rotate(25deg); }
}
@keyframes cpc-legree-shake {
  0% { transform: translateX(0) translateY(0) rotate(0deg); }
  20% { transform: translateX(2px) translateY(-1px) rotate(3deg); }
  40% { transform: translateX(-2px) translateY(1px) rotate(-3deg); }
  60% { transform: translateX(3px) translateY(-2px) rotate(4deg); }
  80% { transform: translateX(-1px) translateY(0) rotate(-2deg); }
  100% { transform: translateX(0) translateY(0) rotate(0deg); }
}
@keyframes cpc-fire-flicker {
  0% { box-shadow: 0 0 15px 5px #ffa040, 0 0 30px 10px rgba(255,160,64,0.3); opacity: 0.9; }
  50% { box-shadow: 0 0 25px 10px #ffb050, 0 0 50px 20px rgba(255,176,80,0.5); opacity: 1; }
  100% { box-shadow: 0 0 18px 6px #ffa040, 0 0 36px 12px rgba(255,160,64,0.3); opacity: 0.8; }
}
@keyframes cpc-coin-break {
  0% { transform: rotate(45deg) scale(1); opacity: 0.9; }
  50% { transform: rotate(200deg) scale(0.8); opacity: 0.5; }
  100% { transform: rotate(45deg) scale(1); opacity: 0.9; }
}
/* end per-scene blocks */
