/* 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-kate-humility {
  background: 
    linear-gradient(180deg, #f5e6d3 0%, #e8d5c4 50%, #d4bca8 100%),
    radial-gradient(ellipse at 70% 20%, #fff8e7 0%, transparent 60%);
}
.scn-kate-humility .floor {
  position:absolute; bottom:0; left:0; right:0; height:30%;
  background: linear-gradient(180deg, #b89a80 0%, #a0836a 100%);
  border-radius: 0 0 20% 20% / 0 0 10% 10%;
}
.scn-kate-humility .wall-wall {
  position:absolute; top:0; left:0; right:0; bottom:30%;
  background: linear-gradient(135deg, #f0e2d0 0%, #dcc9b4 100%);
}
.scn-kate-humility .window-frame {
  position:absolute; top:10%; left:35%; width:30%; height:45%;
  background: #c5a78b;
  border-radius: 8px;
  box-shadow: inset 0 0 0 4px #9a7b5f, 0 8px 20px rgba(0,0,0,0.3);
  animation: kh-window 6s ease-in-out infinite;
}
.scn-kate-humility .window-light {
  position:absolute; top:13%; left:38%; width:24%; height:38%;
  background: radial-gradient(ellipse at center, #fffbe6 0%, #f2d9b8 100%);
  border-radius: 4px;
  box-shadow: 0 0 30px 10px rgba(255,230,180,0.5);
  animation: kh-glow 4s ease-in-out infinite alternate;
}
.scn-kate-humility .figure-kneeling {
  position:absolute; bottom:25%; left:45%; width:20%; height:40%;
  background: linear-gradient(180deg, #d4b8a0 0%, #c4a080 40%, #b08860 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: kh-kneel 5s ease-in-out infinite;
}
.scn-kate-humility .hands-folded {
  position:absolute; bottom:28%; left:52%; width:8%; height:6%;
  background: linear-gradient(135deg, #e8c8b0 0%, #d4a880 100%);
  border-radius: 40% 40% 20% 20%;
  box-shadow: 0 2px 4px rgba(0,0,0,0.3);
  animation: kh-hands 3s ease-in-out infinite alternate;
}
.scn-kate-humility .shadow-tile {
  position:absolute; bottom:25%; left:40%; width:25%; height:8%;
  background: rgba(0,0,0,0.1);
  border-radius: 50%;
  filter: blur(6px);
  animation: kh-shadow 5s ease-in-out infinite;
}
.scn-kate-humility .dust-mote {
  position:absolute; top:25%; left:20%; width:2px; height:2px;
  background: #ffffff;
  border-radius: 50%;
  box-shadow: 0 0 4px 2px rgba(255,255,200,0.6);
  animation: kh-dust 12s linear infinite;
}

@keyframes kh-window {
  0%,100% { transform: scaleY(1); opacity:0.9; }
  50% { transform: scaleY(1.02); opacity:1; }
}
@keyframes kh-glow {
  0% { opacity:0.7; box-shadow: 0 0 20px 5px rgba(255,230,180,0.4); }
  50% { opacity:1; box-shadow: 0 0 40px 15px rgba(255,230,180,0.7); }
  100% { opacity:0.75; box-shadow: 0 0 25px 8px rgba(255,230,180,0.5); }
}
@keyframes kh-kneel {
  0% { transform: translateY(0) rotate(0deg); }
  25% { transform: translateY(-2px) rotate(1deg); }
  50% { transform: translateY(0) rotate(-1deg); }
  75% { transform: translateY(-2px) rotate(0deg); }
  100% { transform: translateY(0) rotate(0deg); }
}
@keyframes kh-hands {
  0% { transform: translateY(0) scale(1); }
  50% { transform: translateY(-1px) scale(1.05); }
  100% { transform: translateY(0) scale(1); }
}
@keyframes kh-shadow {
  0% { opacity:0.4; transform: scaleX(1); }
  50% { opacity:0.2; transform: scaleX(1.1); }
  100% { opacity:0.4; transform: scaleX(1); }
}
@keyframes kh-dust {
  0% { transform: translate(0,0) scale(1); opacity:0; }
  10% { opacity:1; }
  90% { opacity:1; }
  100% { transform: translate(40px,-60px) scale(0.5); opacity:0; }
}

.scn-kate-submission-end {
  background: 
    linear-gradient(180deg, #f0e6d8 0%, #e0d0b8 50%, #c8b498 100%),
    radial-gradient(ellipse at 30% 60%, #fff5e0 0%, transparent 70%);
}
.scn-kate-submission-end .ground {
  position:absolute; bottom:0; left:0; right:0; height:25%;
  background: linear-gradient(180deg, #b8a088 0%, #a08870 100%);
  border-radius: 20% 20% 0 0 / 30% 30% 0 0;
}
.scn-kate-submission-end .wall-bg {
  position:absolute; top:0; left:0; right:0; bottom:25%;
  background: linear-gradient(135deg, #e8dac8 0%, #d4c0a8 100%);
}
.scn-kate-submission-end .figure-standing {
  position:absolute; bottom:20%; left:30%; width:18%; height:55%;
  background: linear-gradient(180deg, #a08060 0%, #806040 60%, #604020 100%);
  border-radius: 45% 45% 30% 30% / 55% 55% 35% 35%;
  transform-origin: bottom center;
  animation: ks-stand 6s ease-in-out infinite;
}
.scn-kate-submission-end .figure-kneeling {
  position:absolute; bottom:18%; left:55%; width:16%; height:35%;
  background: linear-gradient(180deg, #c8a888 0%, #b08868 50%, #906848 100%);
  border-radius: 50% 50% 35% 35% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: ks-kneel 5s ease-in-out infinite;
}
.scn-kate-submission-end .hand-upper {
  position:absolute; bottom:35%; left:32%; width:5%; height:4%;
  background: linear-gradient(135deg, #d4b098 0%, #c08868 100%);
  border-radius: 50%;
  box-shadow: 0 2px 4px rgba(0,0,0,0.3);
  animation: ks-hand-up 3s ease-in-out infinite alternate;
}
.scn-kate-submission-end .hand-lower {
  position:absolute; bottom:22%; left:58%; width:5%; height:4%;
  background: linear-gradient(135deg, #d4b098 0%, #c08868 100%);
  border-radius: 50%;
  box-shadow: 0 2px 4px rgba(0,0,0,0.3);
  animation: ks-hand-lo 3.5s ease-in-out infinite alternate 0.5s;
}
.scn-kate-submission-end .light-column {
  position:absolute; top:5%; left:40%; width:20%; height:80%;
  background: radial-gradient(ellipse at center, rgba(255,240,200,0.3) 0%, transparent 70%);
  animation: ks-light 8s ease-in-out infinite;
}
.scn-kate-submission-end .ambient-glow {
  position:absolute; top:0; left:0; right:0; bottom:0;
  background: radial-gradient(ellipse at 30% 70%, rgba(255,230,180,0.1) 0%, transparent 60%);
}

@keyframes ks-stand {
  0%,100% { transform: translateY(0) rotate(0deg); }
  25% { transform: translateY(-2px) rotate(1deg); }
  50% { transform: translateY(0) rotate(-1deg); }
  75% { transform: translateY(-2px) rotate(0deg); }
}
@keyframes ks-kneel {
  0%,100% { transform: translateY(0) scaleY(1); }
  30% { transform: translateY(-1px) scaleY(1.02); }
  60% { transform: translateY(1px) scaleY(0.98); }
}
@keyframes ks-hand-up {
  0% { transform: translate(0,0) rotate(-5deg); opacity:0.8; }
  50% { transform: translate(2px,-3px) rotate(5deg); opacity:1; }
  100% { transform: translate(0,0) rotate(-5deg); opacity:0.8; }
}
@keyframes ks-hand-lo {
  0% { transform: translate(0,0) rotate(5deg); opacity:0.8; }
  50% { transform: translate(-2px,2px) rotate(-5deg); opacity:1; }
  100% { transform: translate(0,0) rotate(5deg); opacity:0.8; }
}
@keyframes ks-light {
  0%,100% { opacity:0.5; transform: scaleX(1); }
  50% { opacity:1; transform: scaleX(1.1); }
}

.scn-play-conclusion {
  background: 
    linear-gradient(180deg, #2a1a10 0%, #3a2418 40%, #4a3020 70%, #2a1a10 100%),
    radial-gradient(ellipse at 50% 80%, #6a3a1a 0%, transparent 60%);
}
.scn-play-conclusion .wall-dark {
  position:absolute; top:0; left:0; right:0; bottom:25%;
  background: linear-gradient(135deg, #3a2010 0%, #2a1408 100%);
}
.scn-play-conclusion .bed-frame {
  position:absolute; bottom:15%; left:20%; width:60%; height:30%;
  background: linear-gradient(180deg, #5a3a20 0%, #4a2818 100%);
  border-radius: 10% 10% 5% 5% / 20% 20% 5% 5%;
  box-shadow: 0 8px 20px rgba(0,0,0,0.6);
}
.scn-play-conclusion .mattress {
  position:absolute; bottom:17%; left:22%; width:56%; height:22%;
  background: linear-gradient(180deg, #7a5a30 0%, #6a4828 100%);
  border-radius: 10% 10% 5% 5% / 30% 30% 10% 10%;
  box-shadow: inset 0 2px 8px rgba(0,0,0,0.3);
}
.scn-play-conclusion .figure-left {
  position:absolute; bottom:22%; left:28%; width:12%; height:35%;
  background: linear-gradient(180deg, #4a2a18 0%, #3a1a0a 100%);
  border-radius: 45% 45% 30% 30% / 55% 55% 35% 35%;
  transform-origin: bottom center;
  animation: pc-fig-l 4s ease-in-out infinite;
}
.scn-play-conclusion .figure-right {
  position:absolute; bottom:22%; right:28%; width:12%; height:35%;
  background: linear-gradient(180deg, #5a3a20 0%, #4a2810 100%);
  border-radius: 45% 45% 30% 30% / 55% 55% 35% 35%;
  transform-origin: bottom center;
  animation: pc-fig-r 4s ease-in-out infinite 0.5s;
}
.scn-play-conclusion .candle-glow {
  position:absolute; bottom:40%; left:50%; width:4%; height:6%;
  background: radial-gradient(ellipse at center, #ffa040 0%, #cc8030 50%, transparent 100%);
  border-radius: 50%;
  box-shadow: 0 0 30px 15px rgba(255,140,40,0.6), 0 0 60px 30px rgba(255,120,20,0.3);
  animation: pc-candle 3s ease-in-out infinite alternate;
}
.scn-play-conclusion .fire-hearth {
  position:absolute; bottom:10%; left:15%; width:30%; height:15%;
  background: radial-gradient(ellipse at center, #ff6020 0%, #cc4000 40%, #6a2000 100%);
  border-radius: 50% 50% 10% 10% / 60% 60% 10% 10%;
  box-shadow: 0 0 40px 20px rgba(255,80,0,0.4);
  animation: pc-fire 2s ease-in-out infinite alternate;
}
.scn-play-conclusion .shadow-mid {
  position:absolute; bottom:0; left:0; right:0; height:20%;
  background: linear-gradient(180deg, transparent 0%, rgba(0,0,0,0.5) 100%);
}

@keyframes pc-fig-l {
  0%,100% { transform: translateY(0) rotate(0deg); }
  50% { transform: translateY(-3px) rotate(2deg); }
}
@keyframes pc-fig-r {
  0%,100% { transform: translateY(0) rotate(0deg); }
  50% { transform: translateY(-2px) rotate(-2deg); }
}
@keyframes pc-candle {
  0% { opacity:0.8; transform: translate(-50%,0) scale(1); box-shadow:0 0 25px 10px rgba(255,140,40,0.5); }
  50% { opacity:1; transform: translate(-50%,-1px) scale(1.1); box-shadow:0 0 35px 15px rgba(255,140,40,0.7); }
  100% { opacity:0.85; transform: translate(-50%,0) scale(1); box-shadow:0 0 28px 12px rgba(255,140,40,0.55); }
}
@keyframes pc-fire {
  0% { opacity:0.8; transform: scaleY(1); }
  50% { opacity:1; transform: scaleY(1.15) scaleX(0.95); }
  100% { opacity:0.85; transform: scaleY(1); }
}

.scn-tailor-dismissed { background: linear-gradient(180deg, #e8d4b0 0%, #d4bfa0 40%, #bfa880 100%), radial-gradient(ellipse at 50% 0%, #f0e0c0 0%, transparent 70%); min-height: 100vh; position: relative; overflow: hidden; }
.scn-tailor-dismissed .wall { position: absolute; inset: 0 0 30% 0; background: linear-gradient(180deg, #d4c4a0 0%, #bfa880 100%); }
.scn-tailor-dismissed .floor { position: absolute; bottom: 0; left: 0; right: 0; height: 30%; background: linear-gradient(180deg, #8a7a5a 0%, #6a5a4a 100%); }
.scn-tailor-dismissed .window { position: absolute; top: 12%; right: 18%; width: 80px; height: 100px; background: linear-gradient(180deg, #f0e8d0 0%, #e0d0b0 100%); border: 6px solid #6a5a3a; border-radius: 4px; box-shadow: inset 0 0 40px rgba(200,180,140,.5), 0 0 30px rgba(240,220,180,.3); animation: td-window 8s ease-in-out infinite alternate; }
.scn-tailor-dismissed .gown { position: absolute; top: 20%; left: 30%; width: 40px; height: 70px; background: linear-gradient(180deg, #8a7050 0%, #6a5040 50%, #4a3a2a 100%); border-radius: 20% 20% 30% 30% / 40% 40% 30% 30%; transform: rotate(-5deg); box-shadow: -4px 0 8px rgba(0,0,0,.2); animation: td-gown 6s ease-in-out infinite; }
.scn-tailor-dismissed .tailor { position: absolute; bottom: 30%; left: 22%; width: 28px; height: 56px; background: linear-gradient(180deg, #5a4a3a 0%, #3a2a2a 100%); border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%; transform-origin: bottom center; animation: td-bow 5s ease-in-out infinite; }
.scn-tailor-dismissed .customer { position: absolute; bottom: 30%; left: 52%; width: 32px; height: 62px; background: linear-gradient(180deg, #4a3a3a 0%, #2a2222 100%); border-radius: 40% 40% 20% 20% / 50% 50% 20% 20%; transform-origin: bottom center; animation: td-stand 7s ease-in-out infinite; }
.scn-tailor-dismissed .fabric-bolt { position: absolute; bottom: 30%; left: 8%; width: 24px; height: 30px; background: linear-gradient(180deg, #b89868 0%, #8a7050 100%); border-radius: 20%; box-shadow: 2px 0 4px rgba(0,0,0,.2); animation: td-rock 12s ease-in-out infinite; }
@keyframes td-window { 0% { opacity: .7; box-shadow: inset 0 0 30px rgba(200,180,140,.3), 0 0 20px rgba(240,220,180,.2 } 50% { opacity: 1; box-shadow: inset 0 0 50px rgba(200,180,140,.5), 0 0 40px rgba(240,220,180,.4 } 100% { opacity: .8; box-shadow: inset 0 0 35px rgba(200,180,140,.35), 0 0 25px rgba(240,220,180,.25 } }
@keyframes td-gown { 0%,100% { transform: rotate(-5deg) translateX(0) } 50% { transform: rotate(-2deg) translateX(2px) } }
@keyframes td-bow { 0%,100% { transform: rotate(0) translateY(0) } 30% { transform: rotate(12deg) translateY(-2px) } 60% { transform: rotate(-4deg) translateY(0) } }
@keyframes td-stand { 0%,100% { transform: rotate(0) } 50% { transform: rotate(-3deg) } }
@keyframes td-rock { 0%,100% { transform: rotate(0) } 50% { transform: rotate(4deg) } }

.scn-time-argument { background: linear-gradient(180deg, #f0d8a0 0%, #d4b878 40%, #a08048 100%), radial-gradient(ellipse at 30% 0%, #ffe8b0 0%, transparent 60%); min-height: 100vh; position: relative; overflow: hidden; }
.scn-time-argument .sky { position: absolute; inset: 0 0 50% 0; background: linear-gradient(180deg, #b8d0e8 0%, #f0e0b0 100%); animation: ta-sky 10s ease-in-out infinite alternate; }
.scn-time-argument .ground { position: absolute; bottom: 0; left: 0; right: 0; height: 50%; background: linear-gradient(180deg, #7a6830 0%, #4a3a18 100%); }
.scn-time-argument .sundial { position: absolute; bottom: 38%; left: 50%; width: 40px; height: 50px; transform: translateX(-50%); background: linear-gradient(180deg, #a09880 0%, #686050 100%); border-radius: 20% 20% 30% 30%; box-shadow: 4px 4px 12px rgba(0,0,0,.3); animation: ta-dial 12s ease-in-out infinite; }
.scn-time-argument .figure-left { position: absolute; bottom: 34%; left: 30%; width: 30px; height: 60px; background: linear-gradient(180deg, #3a3020 0%, #1a1410 100%); border-radius: 40% 40% 20% 20% / 50% 50% 20% 20%; transform-origin: bottom center; animation: ta-gesture-left 4s ease-in-out infinite; }
.scn-time-argument .figure-right { position: absolute; bottom: 34%; left: 60%; width: 30px; height: 60px; background: linear-gradient(180deg, #2a2418 0%, #0a0808 100%); border-radius: 40% 40% 20% 20% / 50% 50% 20% 20%; transform-origin: bottom center; animation: ta-gesture-right 4.5s ease-in-out infinite; }
.scn-time-argument .shadow-left { position: absolute; bottom: 32%; left: 28%; width: 40px; height: 12px; background: rgba(0,0,0,.25); border-radius: 50%; filter: blur(3px); animation: ta-shadow 4s ease-in-out infinite; }
.scn-time-argument .shadow-right { position: absolute; bottom: 32%; left: 58%; width: 40px; height: 12px; background: rgba(0,0,0,.25); border-radius: 50%; filter: blur(3px); animation: ta-shadow 4.5s ease-in-out infinite; }
.scn-time-argument .dust-motes { position: absolute; top: 20%; left: 30%; width: 80px; height: 60px; background: radial-gradient(circle at 50% 50%, rgba(200,180,120,.4) 0%, transparent 70%); filter: blur(8px); animation: ta-dust 20s linear infinite; }
@keyframes ta-sky { 0% { opacity: .8 } 50% { opacity: 1 } 100% { opacity: .85 } }
@keyframes ta-dial { 0%,100% { transform: translateX(-50%) rotate(0) } 50% { transform: translateX(-50%) rotate(6deg) } }
@keyframes ta-gesture-left { 0%,100% { transform: rotate(0) translateY(0) } 25% { transform: rotate(-15deg) translateY(-2px) } 50% { transform: rotate(5deg) translateY(0) } 75% { transform: rotate(-10deg) translateY(-1px) } }
@keyframes ta-gesture-right { 0%,100% { transform: rotate(0) translateY(0) } 30% { transform: rotate(12deg) translateY(-2px) } 60% { transform: rotate(-8deg) translateY(0) } }
@keyframes ta-shadow { 0%,100% { transform: scaleX(1) } 50% { transform: scaleX(.8) } }
@keyframes ta-dust { 0% { transform: translateY(0) } 100% { transform: translateY(-40px) } }

.scn-pedant-impersonation { background: linear-gradient(180deg, #c8b898 0%, #a89070 40%, #8a7050 100%), radial-gradient(ellipse at 50% 100%, #b8a080 0%, transparent 70%); min-height: 100vh; position: relative; overflow: hidden; }
.scn-pedant-impersonation .facade { position: absolute; bottom: 20%; left: 10%; right: 10%; height: 60%; background: linear-gradient(180deg, #b8a080 0%, #8a7050 100%); border-radius: 4% 4% 0 0; box-shadow: 0 -8px 20px rgba(0,0,0,.2); }
.scn-pedant-impersonation .door { position: absolute; bottom: 18%; left: 50%; width: 50px; height: 80px; transform: translateX(-50%); background: linear-gradient(180deg, #6a5040 0%, #4a3a2a 100%); border-radius: 6% 6% 2% 2%; box-shadow: inset -4px 0 8px rgba(0,0,0,.3); }
.scn-pedant-impersonation .doorway { position: absolute; bottom: 18%; left: 50%; width: 60px; height: 90px; transform: translateX(-50%); background: rgba(0,0,0,.15); border-radius: 6% 6% 2% 2%; }
.scn-pedant-impersonation .pedant { position: absolute; bottom: 28%; left: 40%; width: 30px; height: 64px; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a14 100%); border-radius: 40% 40% 20% 20% / 50% 50% 20% 20%; transform-origin: bottom center; animation: pi-bow 6s ease-in-out infinite; }
.scn-pedant-impersonation .tranio { position: absolute; bottom: 28%; left: 52%; width: 30px; height: 64px; background: linear-gradient(180deg, #5a4a3a 0%, #3a2a20 100%); border-radius: 40% 40% 20% 20% / 50% 50% 20% 20%; transform-origin: bottom center; animation: pi-gesture 5s ease-in-out infinite; }
.scn-pedant-impersonation .step { position: absolute; bottom: 16%; left: 50%; width: 70px; height: 8px; transform: translateX(-50%); background: linear-gradient(180deg, #7a6848 0%, #5a4a30 100%); border-radius: 2px; box-shadow: 0 2px 4px rgba(0,0,0,.15); }
.scn-pedant-impersonation .roof-tile { position: absolute; bottom: 74%; left: 8%; right: 8%; height: 14%; background: linear-gradient(180deg, #a08060 0%, #8a6850 100%); border-radius: 60% 60% 0 0 / 100% 100% 0 0; box-shadow: 0 -4px 12px rgba(0,0,0,.2); }
@keyframes pi-bow { 0%,100% { transform: rotate(0) translateY(0) } 30% { transform: rotate(10deg) translateY(-2px) } 70% { transform: rotate(-5deg) translateY(0) } }
@keyframes pi-gesture { 0%,100% { transform: rotate(0) } 40% { transform: rotate(-12deg) } 80% { transform: rotate(4deg) } }

.scn-biondello-errand-done { background: linear-gradient(180deg, #c8b098 0%, #b09870 40%, #987858 100%), radial-gradient(ellipse at 70% 30%, #d8c0a0 0%, transparent 60%); min-height: 100vh; position: relative; overflow: hidden; }
.scn-biondello-errand-done .hall-wall { position: absolute; inset: 0 30% 0 0; background: linear-gradient(180deg, #a89070 0%, #8a6848 100%); }
.scn-biondello-errand-done .hall-floor { position: absolute; bottom: 0; left: 0; right: 0; height: 28%; background: linear-gradient(180deg, #6a5840 0%, #4a3828 100%); }
.scn-biondello-errand-done .door-arch { position: absolute; top: 10%; right: 18%; width: 60px; height: 90px; background: linear-gradient(180deg, #6a5040 0%, #4a3a2a 100%); border-radius: 40% 40% 4% 4% / 60% 60% 4% 4%; box-shadow: 0 0 20px rgba(0,0,0,.2); }
.scn-biondello-errand-done .biondello { position: absolute; bottom: 28%; left: 18%; width: 28px; height: 58px; background: linear-gradient(180deg, #3a2a20 0%, #1a1410 100%); border-radius: 40% 40% 20% 20% / 50% 50% 20% 20%; transform-origin: bottom center; animation: be-bow 4s ease-in-out infinite; }
.scn-biondello-errand-done .baptista { position: absolute; bottom: 28%; left: 42%; width: 32px; height: 62px; background: linear-gradient(180deg, #5a4a3a 0%, #3a2a20 100%); border-radius: 40% 40% 20% 20% / 50% 50% 20% 20%; transform-origin: bottom center; animation: be-stand 6s ease-in-out infinite; }
.scn-biondello-errand-done .lucentio { position: absolute; bottom: 28%; left: 60%; width: 30px; height: 60px; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a14 100%); border-radius: 40% 40% 20% 20% / 50% 50% 20% 20%; transform-origin: bottom center; animation: be-stand 7s ease-in-out infinite reverse; }
.scn-biondello-errand-done .window-light { position: absolute; top: 6%; right: 8%; width: 60px; height: 80px; background: linear-gradient(180deg, #f0d8b0 0%, #d8c0a0 100%); border: 4px solid #6a5040; border-radius: 4px; box-shadow: 0 0 30px rgba(240,200,160,.4), inset 0 0 20px rgba(240,200,160,.3); animation: be-light 8s ease-in-out infinite alternate; }
.scn-biondello-errand-done .rug { position: absolute; bottom: 22%; left: 12%; right: 40%; height: 6%; background: linear-gradient(90deg, #b87858 0%, #a06848 30%, #885840 70%, #b87858 100%); border-radius: 20%; box-shadow: 0 -2px 6px rgba(0,0,0,.1); }
@keyframes be-bow { 0%,100% { transform: rotate(0) translateY(0) } 30% { transform: rotate(14deg) translateY(-2px) } 70% { transform: rotate(-6deg) translateY(0) } }
@keyframes be-stand { 0%,100% { transform: rotate(0) } 50% { transform: rotate(-4deg) } }
@keyframes be-light { 0% { opacity: .8; box-shadow: 0 0 20px rgba(240,200,160,.3), inset 0 0 15px rgba(240,200,160,.2 } 50% { opacity: 1; box-shadow: 0 0 40px rgba(240,200,160,.5), inset 0 0 30px rgba(240,200,160,.4 } 100% { opacity: .85; box-shadow: 0 0 25px rgba(240,200,160,.35), inset 0 0 20px rgba(240,200,160,.25 } }

.scn-item-banquet-intro {
  background: 
    radial-gradient(ellipse at 50% 20%, #e8c88a 0%, #b88a50 60%, #7a5a2a 100%),
    linear-gradient(180deg, #f0dbb0 0%, #c8a060 100%);
}
.scn-item-banquet-intro .wall-bg { position:absolute; inset:0 0 30% 0; background: linear-gradient(180deg, #dbb080, #c09050); }
.scn-item-banquet-intro .table-bg { position:absolute; bottom:0; left:0; right:0; height:50%; background: linear-gradient(180deg, #8a6a3a 0%, #5a3a1a 100%); border-radius:20% 20% 0 0; }
.scn-item-banquet-intro .tablecloth { position:absolute; bottom:25%; left:10%; width:80%; height:12%; background: linear-gradient(135deg, #f8f0d8 0%, #e8d8b0 100%); border-radius:4px; box-shadow:0 4px 8px rgba(0,0,0,.3); }
.scn-item-banquet-intro .plate-1 { position:absolute; bottom:30%; left:25%; width:22%; height:16%; background: radial-gradient(circle, #f0e0c0 30%, #c8a870 100%); border-radius:50%; box-shadow:0 2px 6px rgba(0,0,0,.3); animation: sbi-plate 10s ease-in-out infinite; }
.scn-item-banquet-intro .plate-2 { position:absolute; bottom:30%; right:25%; width:18%; height:14%; background: radial-gradient(circle, #f0e0c0 30%, #c8a870 100%); border-radius:50%; box-shadow:0 2px 6px rgba(0,0,0,.3); animation: sbi-plate 12s ease-in-out infinite reverse; }
.scn-item-banquet-intro .goblet-1 { position:absolute; bottom:35%; left:38%; width:6%; height:20%; background: linear-gradient(180deg, #c8a060 0%, #a08040 100%); border-radius:0 0 30% 30%; box-shadow:0 4px 8px rgba(0,0,0,.4); animation: sbi-goblet 8s ease-in-out infinite; }
.scn-item-banquet-intro .goblet-2 { position:absolute; bottom:35%; right:38%; width:6%; height:20%; background: linear-gradient(180deg, #c8a060 0%, #a08040 100%); border-radius:0 0 30% 30%; box-shadow:0 4px 8px rgba(0,0,0,.4); animation: sbi-goblet 9s ease-in-out infinite reverse; }
.scn-item-banquet-intro .candle { position:absolute; bottom:38%; left:50%; width:3%; height:20%; transform:translateX(-50%); background: linear-gradient(180deg, #e8d8a0 0%, #b89850 100%); border-radius:6px; box-shadow:0 0 10px rgba(255,200,100,.5); }
.scn-item-banquet-intro .candle-glow { position:absolute; bottom:48%; left:50%; width:10%; height:16%; transform:translateX(-50%); background: radial-gradient(circle, rgba(255,220,150,0.6) 0%, rgba(255,200,100,0.1) 70%, transparent 100%); border-radius:50%; animation: sbi-glow 3s ease-in-out infinite alternate; }
@keyframes sbi-plate { 0%,100% { transform: translateX(0) rotate(0); } 50% { transform: translateX(2px) rotate(2deg); } }
@keyframes sbi-goblet { 0%,100% { transform: translateX(0) rotate(0); } 50% { transform: translateX(1px) rotate(-1deg); } }
@keyframes sbi-glow { 0% { opacity:.7; transform:translateX(-50%) scale(0.95); } 50% { opacity:1; transform:translateX(-50%) scale(1.1); } 100% { opacity:.8; transform:translateX(-50%) scale(1); } }

.scn-feast-banter {
  background: 
    linear-gradient(180deg, #f0d8b0 0%, #d0a870 70%, #a08050 100%),
    radial-gradient(ellipse at 50% 0%, #ffebb0 0%, transparent 70%);
}
.scn-feast-banter .wall-mid { position:absolute; inset:0 0 40% 0; background: linear-gradient(180deg, #d8b890 0%, #b89870 100%); }
.scn-feast-banter .arch { position:absolute; top:5%; left:15%; width:70%; height:50%; background: radial-gradient(ellipse at 50% 100%, #f8e8c8 0%, transparent 70%); border:3px solid #b89870; border-radius:50% 50% 0 0; box-shadow: inset 0 0 20px rgba(0,0,0,.2); }
.scn-feast-banter .banner-l { position:absolute; top:10%; left:5%; width:9%; height:25%; background: linear-gradient(180deg, #c87050 0%, #a05a3a 100%); border-radius:0 0 20% 20%; transform: skewX(-5deg); animation: sfb-banner 15s ease-in-out infinite; }
.scn-feast-banter .banner-r { position:absolute; top:8%; right:5%; width:9%; height:28%; background: linear-gradient(180deg, #c87050 0%, #a05a3a 100%); border-radius:0 0 20% 20%; transform: skewX(5deg); animation: sfb-banner 18s ease-in-out infinite reverse; }
.scn-feast-banter .table-wide { position:absolute; bottom:15%; left:5%; width:90%; height:15%; background: linear-gradient(180deg, #a08050 0%, #7a5a30 100%); border-radius: 30% 30% 0 0; box-shadow:0 -4px 8px rgba(0,0,0,.3); }
.scn-feast-banter .plate-set { position:absolute; bottom:20%; left:30%; width:40%; height:8%; background: radial-gradient(ellipse, #f0e0c0 30%, #c8a870 100%); border-radius:50%; box-shadow:0 2px 6px rgba(0,0,0,.2); animation: sfb-plate 10s ease-in-out infinite; }
.scn-feast-banter .lamp { position:absolute; top:12%; left:50%; width:8%; height:18%; transform:translateX(-50%); background: linear-gradient(180deg, #d8a050 0%, #a07030 100%); border-radius: 30% 30% 10% 10%; box-shadow:0 4px 16px rgba(200,150,80,.6); }
.scn-feast-banter .lamp-glow { position:absolute; top:8%; left:50%; width:14%; height:24%; transform:translateX(-50%); background: radial-gradient(circle, rgba(255,200,120,0.7) 0%, rgba(255,200,120,0.1) 60%, transparent 100%); animation: sfb-glow 4s ease-in-out infinite alternate; }
@keyframes sfb-banner { 0%,100% { transform: skewX(-5deg) translateY(0); } 50% { transform: skewX(-5deg) translateY(-4px); } }
@keyframes sfb-plate { 0%,100% { transform: translateX(0); } 50% { transform: translateX(2px); } }
@keyframes sfb-glow { 0% { opacity:.7; transform:translateX(-50%) scale(0.9); } 50% { opacity:1; transform:translateX(-50%) scale(1.15); } 100% { opacity:.8; transform:translateX(-50%) scale(1); } }

.scn-item-drinking-cup {
  background: 
    radial-gradient(ellipse at 50% 60%, #e0c090 0%, #b09060 80%, #7a5a3a 100%),
    linear-gradient(180deg, #d8b080 0%, #c09860 100%);
}
.scn-item-drinking-cup .cup-bg { position:absolute; inset:10% 20% 10% 20%; background: linear-gradient(135deg, #f0d8b0 0%, #d0a870 100%); border-radius: 40% 40% 30% 30%; box-shadow: inset 0 0 20px rgba(0,0,0,.2); }
.scn-item-drinking-cup .cup-body { position:absolute; bottom:25%; left:35%; width:30%; height:35%; background: linear-gradient(135deg, #c8a870 0%, #a08050 100%); border-radius: 20% 20% 30% 30%; box-shadow: 0 8px 16px rgba(0,0,0,.4); }
.scn-item-drinking-cup .cup-rim { position:absolute; bottom:57%; left:33%; width:34%; height:8%; background: linear-gradient(135deg, #e0c090 0%, #b89860 100%); border-radius: 30%; box-shadow: 0 -2px 6px rgba(0,0,0,.3); }
.scn-item-drinking-cup .liquid { position:absolute; bottom:32%; left:36%; width:28%; height:22%; background: linear-gradient(180deg, #c8a870 0%, #a08050 100%); border-radius: 0 0 20% 20%; transform-origin: bottom; animation: sid-liquid 5s ease-in-out infinite; }
.scn-item-drinking-cup .bubble-1 { position:absolute; bottom:40%; left:42%; width:6%; height:6%; background: radial-gradient(circle, rgba(255,220,180,0.8) 0%, transparent 100%); border-radius:50%; animation: sid-bubble 4s ease-in-out infinite; }
.scn-item-drinking-cup .bubble-2 { position:absolute; bottom:45%; left:48%; width:4%; height:4%; background: radial-gradient(circle, rgba(255,220,180,0.8) 0%, transparent 100%); border-radius:50%; animation: sid-bubble 5s ease-in-out infinite 1s; }
.scn-item-drinking-cup .bubble-3 { position:absolute; bottom:38%; left:52%; width:5%; height:5%; background: radial-gradient(circle, rgba(255,220,180,0.8) 0%, transparent 100%); border-radius:50%; animation: sid-bubble 6s ease-in-out infinite 2s; }
.scn-item-drinking-cup .hand { position:absolute; bottom:20%; left:55%; width:20%; height:30%; background: linear-gradient(135deg, #c8a870 0%, #a08050 100%); border-radius: 40% 30% 30% 40%; transform: rotate(-15deg); animation: sid-hand 8s ease-in-out infinite; }
.scn-item-drinking-cup .sparkle { position:absolute; bottom:50%; left:45%; width:8%; height:8%; background: radial-gradient(circle, rgba(255,255,200,0.9) 0%, transparent 100%); border-radius:50%; animation: sid-sparkle 2s ease-in-out infinite; }
@keyframes sid-liquid { 0%,100% { transform: translateX(0) rotate(0); } 50% { transform: translateX(2px) rotate(3deg); } }
@keyframes sid-bubble { 0% { transform: translateY(0) scale(1); opacity:.8; } 50% { transform: translateY(-8px) scale(1.2); opacity:1; } 100% { transform: translateY(0) scale(0.8); opacity:.4; } }
@keyframes sid-hand { 0%,100% { transform: rotate(-15deg) translateX(0); } 50% { transform: rotate(-12deg) translateX(3px); } }
@keyframes sid-sparkle { 0%,100% { opacity:.5; transform: scale(0.8); } 50% { opacity:1; transform: scale(1.2); } }

.scn-women-banter-exit {
  background: 
    linear-gradient(180deg, #e8ccaa 0%, #c8a880 70%, #a87858 100%),
    radial-gradient(ellipse at 30% 40%, #f0d8b0 0%, transparent 60%);
}
.scn-women-banter-exit .room-floor { position:absolute; bottom:0; left:0; right:0; height:30%; background: linear-gradient(180deg, #b89878 0%, #8a6a4a 100%); }
.scn-women-banter-exit .doorway { position:absolute; bottom:0; right:15%; width:25%; height:70%; background: linear-gradient(180deg, #c0a080 0%, #a08060 100%); border-radius: 30% 30% 0 0; box-shadow: inset 0 0 20px rgba(0,0,0,.3); }
.scn-women-banter-exit .figure-left { position:absolute; bottom:10%; left:20%; width:15%; height:45%; background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: swb-figure-left 6s ease-in-out infinite; }
.scn-women-banter-exit .figure-right { position:absolute; bottom:10%; right:40%; width:14%; height:42%; background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: swb-figure-right 7s ease-in-out infinite; }
.scn-women-banter-exit .hand-gesture { position:absolute; bottom:30%; left:35%; width:5%; height:8%; background: linear-gradient(180deg, #c8a870 0%, #a08050 100%); border-radius: 30% 30% 20% 20%; transform: rotate(20deg); animation: swb-hand 4s ease-in-out infinite; }
.scn-women-banter-exit .shadow-strip { position:absolute; bottom:15%; left:0; right:0; height:10%; background: rgba(0,0,0,.15); filter: blur(8px); }
.scn-women-banter-exit .wall-sconce { position:absolute; top:30%; left:5%; width:6%; height:12%; background: linear-gradient(180deg, #d8a050 0%, #b07830 100%); border-radius: 20% 20% 10% 10%; box-shadow: 0 2px 8px rgba(200,150,80,.5); }
.scn-women-banter-exit .sconce-glow { position:absolute; top:25%; left:3%; width:12%; height:18%; background: radial-gradient(circle, rgba(255,200,120,0.6) 0%, transparent 70%); border-radius:50%; animation: swb-glow 4s ease-in-out infinite alternate; }
@keyframes swb-figure-left { 0%,100% { transform: translateX(0) rotate(-2deg); } 50% { transform: translateX(6px) rotate(2deg); } }
@keyframes swb-figure-right { 0%,100% { transform: translateX(0) rotate(1deg); } 50% { transform: translateX(-4px) rotate(-1deg); } }
@keyframes swb-hand { 0%,100% { transform: rotate(20deg) scale(1); } 50% { transform: rotate(30deg) scale(1.1); } }
@keyframes swb-glow { 0% { opacity:.6; transform: scale(0.9); } 50% { opacity:1; transform: scale(1.15); } 100% { opacity:.7; transform: scale(1); } }

/* Scene: dowry-agreement – calm bright interior */
.scn-dowry-agreement {
  background:
    linear-gradient(180deg, #e8d8b8 0%, #c8b08a 40%, #a08060 100%),
    radial-gradient(ellipse at 50% 20%, #f0e0c0 0%, transparent 70%);
}
.scn-dowry-agreement .wall {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(180deg, #d4c09a 0%, #b89870 100%);
}
.scn-dowry-agreement .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 40%;
  background: linear-gradient(180deg, #9a7a5a 0%, #6a4a2a 100%);
  border-radius: 20% 30% 0 0;
}
.scn-dowry-agreement .table {
  position: absolute; bottom: 28%; left: 50%; transform: translateX(-50%);
  width: 180px; height: 50px;
  background: linear-gradient(180deg, #8a6a4a 0%, #5a3a1a 100%);
  border-radius: 8px; box-shadow: 0 6px 12px rgba(0,0,0,0.3);
  animation: da-table 12s ease-in-out infinite;
}
.scn-dowry-agreement .chair-left {
  position: absolute; bottom: 22%; left: 22%; width: 50px; height: 70px;
  background: linear-gradient(180deg, #7a5a3a 0%, #4a2a0a 100%);
  border-radius: 10% 10% 5% 5%;
  box-shadow: 2px 0 6px rgba(0,0,0,0.4);
  animation: da-chair 10s ease-in-out infinite alternate;
}
.scn-dowry-agreement .chair-right {
  position: absolute; bottom: 22%; right: 22%; width: 50px; height: 70px;
  background: linear-gradient(180deg, #7a5a3a 0%, #4a2a0a 100%);
  border-radius: 10% 10% 5% 5%;
  box-shadow: -2px 0 6px rgba(0,0,0,0.4);
  animation: da-chair 10s ease-in-out infinite alternate-reverse;
}
.scn-dowry-agreement .figure-left {
  position: absolute; bottom: 26%; left: 26%; width: 30px; 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: da-sit 8s ease-in-out infinite;
}
.scn-dowry-agreement .figure-right {
  position: absolute; bottom: 26%; right: 26%; width: 34px; height: 82px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: da-sit 8s ease-in-out infinite reverse;
}
.scn-dowry-agreement .window {
  position: absolute; top: 10%; left: 50%; transform: translateX(-50%);
  width: 120px; height: 100px;
  background: linear-gradient(180deg, #f0e8d8 0%, #d0c8b0 100%);
  border: 4px solid #6a4a2a; border-radius: 4px;
  box-shadow: inset 0 0 20px rgba(255,255,220,0.5);
}
.scn-dowry-agreement .sunbeam {
  position: absolute; top: 10%; left: 50%; transform: translateX(-50%) skewX(-5deg);
  width: 60px; height: 200px;
  background: linear-gradient(180deg, rgba(255,255,200,0.3) 0%, rgba(255,255,200,0) 100%);
  filter: blur(8px);
  animation: da-beam 9s ease-in-out infinite alternate;
}
@keyframes da-table { 0%,100% { transform: translateX(-50%) translateY(0); } 50% { transform: translateX(-50%) translateY(-2px); } }
@keyframes da-chair { 0% { transform: rotate(0deg); } 50% { transform: rotate(2deg); } 100% { transform: rotate(0deg); } }
@keyframes da-sit { 0%,100% { transform: translateY(0) rotate(-1deg); } 50% { transform: translateY(-1px) rotate(1deg); } }
@keyframes da-beam { 0% { opacity: 0.6; } 50% { opacity: 1; } 100% { opacity: 0.7; } }

/* Scene: biondello-already-gone – calm bright interior, Bianca dressing */
.scn-biondello-already-gone {
  background:
    linear-gradient(135deg, #d4c0a0 0%, #b09878 50%, #907050 100%),
    radial-gradient(ellipse at 70% 30%, #f0e0c0 0%, transparent 60%);
}
.scn-biondello-already-gone .wall {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #c8b08a 0%, #a88862 100%);
}
.scn-biondello-already-gone .doorway {
  position: absolute; bottom: 0; left: 10%; width: 80px; height: 100%;
  background: #6a4a2a; border-radius: 4px 4px 0 0;
}
.scn-biondello-already-gone .door {
  position: absolute; bottom: 0; left: 10%; width: 80px; height: 100%;
  background: linear-gradient(90deg, #7a5a3a 0%, #5a3a1a 100%);
  border: 2px solid #4a2a0a; border-radius: 4px 4px 0 0;
  transform-origin: left center;
  animation: ba-door 15s ease-in-out infinite;
}
.scn-biondello-already-gone .figure-bianca {
  position: absolute; bottom: 28%; right: 25%; width: 28px; height: 75px;
  background: linear-gradient(180deg, #6a4a3a 0%, #3a2a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: ba-bianca 6s ease-in-out infinite alternate;
}
.scn-biondello-already-gone .mirror {
  position: absolute; bottom: 35%; right: 15%; width: 40px; height: 60px;
  background: linear-gradient(180deg, #f0e8d8 0%, #c0b8a8 100%);
  border: 3px solid #8a6a4a; border-radius: 50%;
  box-shadow: 0 0 20px rgba(255,255,220,0.3);
}
.scn-biondello-already-gone .dresser {
  position: absolute; bottom: 22%; right: 10%; width: 70px; height: 40px;
  background: linear-gradient(180deg, #8a6a4a 0%, #5a3a1a 100%);
  border-radius: 4px; box-shadow: 0 4px 8px rgba(0,0,0,0.3);
}
.scn-biondello-already-gone .candle {
  position: absolute; bottom: 35%; right: 18%; width: 6px; height: 18px;
  background: #e0c080; border-radius: 2px;
}
.scn-biondello-already-gone .glow {
  position: absolute; bottom: 33%; right: 17%; width: 16px; height: 16px;
  background: radial-gradient(circle, #ffd080 0%, rgba(255,208,128,0) 70%);
  animation: ba-glow 4s ease-in-out infinite alternate;
}
@keyframes ba-door { 0%,100% { transform: rotate(0deg) scaleX(1); } 50% { transform: rotate(-5deg) scaleX(0.98); } }
@keyframes ba-bianca { 0% { transform: translateY(0) rotate(-2deg); } 50% { transform: translateY(-2px) rotate(2deg); } 100% { transform: translateY(0) rotate(-2deg); } }
@keyframes ba-glow { 0% { opacity: 0.7; } 50% { opacity: 1; } 100% { opacity: 0.8; } }

/* Scene: biondello-instructions – tense bright interior */
.scn-biondello-instructions {
  background:
    linear-gradient(135deg, #b08860 0%, #906848 40%, #704828 100%),
    radial-gradient(ellipse at 30% 50%, #d0b090 0%, transparent 70%);
}
.scn-biondello-instructions .bg {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #a08068 0%, #806048 100%);
  animation: bi-bg 8s ease-in-out infinite alternate;
}
.scn-biondello-instructions .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #604030 0%, #402010 100%);
  border-radius: 30% 20% 0 0/ 50% 40% 0 0;
}
.scn-biondello-instructions .figure-biondello {
  position: absolute; bottom: 22%; left: 20%; width: 30px; height: 78px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0a00 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: bi-biondello 3s ease-in-out infinite;
}
.scn-biondello-instructions .figure-cambio {
  position: absolute; bottom: 24%; right: 20%; width: 28px; height: 74px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: bi-cambio 3.5s ease-in-out infinite;
}
.scn-biondello-instructions .hand-gesture {
  position: absolute; bottom: 30%; left: 32%; width: 12px; height: 16px;
  background: #2a1a0a;
  border-radius: 50% 50% 30% 30%;
  transform-origin: bottom left;
  animation: bi-hand 0.8s ease-in-out infinite alternate;
}
.scn-biondello-instructions .shadow-tension {
  position: absolute; bottom: 0; left: 30%; width: 40%; height: 60%;
  background: radial-gradient(ellipse at 50% 100%, rgba(0,0,0,0.4) 0%, transparent 70%);
  filter: blur(10px);
  animation: bi-shadow 6s ease-in-out infinite alternate;
}
.scn-biondello-instructions .table-prop {
  position: absolute; bottom: 20%; left: 50%; transform: translateX(-50%);
  width: 100px; height: 30px;
  background: linear-gradient(180deg, #705030 0%, #402010 100%);
  border-radius: 4px; box-shadow: 0 4px 8px rgba(0,0,0,0.5);
  animation: bi-table 5s ease-in-out infinite;
}
@keyframes bi-bg { 0%,100% { opacity: 0.9; } 50% { opacity: 1; } }
@keyframes bi-biondello { 0% { transform: translateY(0) rotate(-3deg); } 30% { transform: translateY(-2px) rotate(3deg); } 60% { transform: translateY(0) rotate(-2deg); } 100% { transform: translateY(-1px) rotate(2deg); } }
@keyframes bi-cambio { 0% { transform: translateY(0) rotate(2deg); } 50% { transform: translateY(-1px) rotate(-2deg); } 100% { transform: translateY(0) rotate(2deg); } }
@keyframes bi-hand { 0% { transform: rotate(-10deg) scale(1); } 100% { transform: rotate(20deg) scale(1.1); } }
@keyframes bi-shadow { 0% { opacity: 0.4; } 50% { opacity: 0.7; } 100% { opacity: 0.4; } }
@keyframes bi-table { 0%,100% { transform: translateX(-50%) scaleY(1); } 50% { transform: translateX(-50%) scaleY(0.95); } }

/* Scene: secret-marriage-plot – tense bright interior, church */
.scn-secret-marriage-plot {
  background:
    linear-gradient(180deg, #a08870 0%, #806050 30%, #604030 100%),
    radial-gradient(ellipse at 50% 20%, #d0b098 0%, transparent 60%);
}
.scn-secret-marriage-plot .altar {
  position: absolute; top: 10%; left: 50%; transform: translateX(-50%);
  width: 120px; height: 140px;
  background: linear-gradient(135deg, #c0a080 0%, #a08060 100%);
  border-radius: 10% 10% 20% 20%;
  box-shadow: 0 8px 20px rgba(0,0,0,0.4);
  animation: mp-altar 12s ease-in-out infinite alternate;
}
.scn-secret-marriage-plot .pillar-left {
  position: absolute; top: 0; left: 5%; width: 30px; height: 60%;
  background: linear-gradient(90deg, #b09878 0%, #907050 100%);
  border-radius: 6px;
}
.scn-secret-marriage-plot .pillar-right {
  position: absolute; top: 0; right: 5%; width: 30px; height: 60%;
  background: linear-gradient(90deg, #b09878 0%, #907050 100%);
  border-radius: 6px;
}
.scn-secret-marriage-plot .priest-figure {
  position: absolute; bottom: 25%; left: 50%; transform: translateX(-50%);
  width: 32px; height: 80px;
  background: linear-gradient(180deg, #2a1a0a 0%, #0a0000 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: mp-priest 7s ease-in-out infinite;
}
.scn-secret-marriage-plot .couple {
  position: absolute; bottom: 22%; left: 50%; transform: translateX(-50%) translateX(-40px);
  width: 60px; height: 70px;
}
.scn-secret-marriage-plot .couple::before,
.scn-secret-marriage-plot .couple::after {
  content: '';
  position: absolute;
  bottom: 0;
  width: 24px;
  height: 72px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
}
.scn-secret-marriage-plot .couple::before { left: 0; animation: mp-couple-left 5s ease-in-out infinite; }
.scn-secret-marriage-plot .couple::after { right: 0; animation: mp-couple-right 5s ease-in-out infinite reverse; }
.scn-secret-marriage-plot .candle-altar {
  position: absolute; top: 16%; left: 50%; transform: translateX(-50%);
  width: 4px; height: 20px;
  background: #e0c080;
  border-radius: 2px;
}
.scn-secret-marriage-plot .stained-glass {
  position: absolute; top: 2%; left: 50%; transform: translateX(-50%);
  width: 80px; height: 100px;
  background: radial-gradient(circle at 30% 40%, #8870b0, #604080, #382060);
  border-radius: 50% 50% 10% 10%;
  opacity: 0.6;
  animation: mp-glass 10s ease-in-out infinite alternate;
}
.scn-secret-marriage-plot .light-ray {
  position: absolute; top: 0; left: 35%; width: 40px; height: 100%;
  background: linear-gradient(180deg, rgba(255,255,220,0.2) 0%, transparent 80%);
  filter: blur(12px);
  animation: mp-light 8s ease-in-out infinite alternate;
}
@keyframes mp-altar { 0%,100% { transform: translateX(-50%) scaleY(1); } 50% { transform: translateX(-50%) scaleY(1.02); } }
@keyframes mp-priest { 0% { transform: translateX(-50%) rotate(-1deg); } 50% { transform: translateX(-50%) rotate(1deg); } 100% { transform: translateX(-50%) rotate(-1deg); } }
@keyframes mp-couple-left { 0%,100% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-2px) rotate(2deg); } }
@keyframes mp-couple-right { 0%,100% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-2px) rotate(-2deg); } }
@keyframes mp-glass { 0%,100% { opacity: 0.4; } 50% { opacity: 0.7; } }
@keyframes mp-light { 0% { transform: rotate(0deg); opacity: 0.3; } 50% { transform: rotate(5deg); opacity: 0.6; } 100% { transform: rotate(-3deg); opacity: 0.4; } }

/* lord-calls-servant – calm, sunlit interior */
.scn-lord-calls-servant {
  background:
    linear-gradient(180deg, #f5e6c8 0%, #d9b68c 50%, #b88a5e 100%),
    radial-gradient(ellipse at 70% 20%, #fff4d6 0%, transparent 60%);
}
.scn-lord-calls-servant .sun-wall {
  position: absolute; inset: 0 0 50% 0;
  background: linear-gradient(180deg, #fdf5e6 0%, #f0dbb0 100%);
  animation: lcs-sky 12s ease-in-out infinite alternate;
}
.scn-lord-calls-servant .window-light {
  position: absolute; top: 8%; left: 65%; width: 80px; height: 100px;
  background: radial-gradient(circle at 50% 50%, #fff9e6 0%, #ffe8b0 60%, transparent 80%);
  border-radius: 20% 20% 10% 10%;
  box-shadow: 0 0 60px 20px rgba(255,232,176,0.4);
  animation: lcs-window 6s ease-in-out infinite;
}
.scn-lord-calls-servant .bed {
  position: absolute; bottom: 12%; left: 15%; width: 55%; height: 25%;
  background: linear-gradient(180deg, #a0704a 0%, #70482a 100%);
  border-radius: 10% 10% 5% 5%;
  box-shadow: 0 8px 20px rgba(0,0,0,0.3);
}
.scn-lord-calls-servant .lord-silhouette {
  position: absolute; bottom: 25%; left: 30%; width: 35px; height: 65px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0e05 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: lcs-lord 8s ease-in-out infinite;
}
.scn-lord-calls-servant .servant-silhouette {
  position: absolute; bottom: 22%; left: 52%; width: 28px; height: 55px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0e 100%);
  border-radius: 45% 45% 35% 35% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: lcs-servant 5s ease-in-out infinite alternate;
}
.scn-lord-calls-servant .sunbeam-top {
  position: absolute; top: 0; left: 60%; width: 20%; height: 40%;
  background: linear-gradient(135deg, rgba(255,248,220,0.3) 0%, transparent 70%);
  clip-path: polygon(0 0, 100% 0, 80% 100%, 20% 100%);
  animation: lcs-beam 20s ease-in-out infinite;
}
.scn-lord-calls-servant .sunbeam-bottom {
  position: absolute; top: 28%; left: 55%; width: 30%; height: 35%;
  background: linear-gradient(135deg, rgba(255,248,220,0.2) 0%, transparent 70%);
  clip-path: polygon(10% 0, 90% 0, 70% 100%, 30% 100%);
  animation: lcs-beam 20s ease-in-out infinite reverse;
}
@keyframes lcs-sky { 0% { opacity: 0.9 } 50% { opacity: 1 } 100% { opacity: 0.85 } }
@keyframes lcs-window { 0%,100% { transform: scaleX(1) scaleY(1); opacity: 0.9 } 50% { transform: scaleX(1.02) scaleY(1.01); opacity: 1 } }
@keyframes lcs-lord { 0% { transform: translateY(0) rotate(0deg) } 25% { transform: translateY(-2px) rotate(-1deg) } 50% { transform: translateY(0) rotate(1deg) } 75% { transform: translateY(-1px) rotate(0deg) } 100% { transform: translateY(0) rotate(0deg) } }
@keyframes lcs-servant { 0% { transform: translateX(0) translateY(0) scale(1) } 50% { transform: translateX(6px) translateY(-1px) scale(1.01) } 100% { transform: translateX(-2px) translateY(0) scale(0.99) } }
@keyframes lcs-beam { 0%,100% { opacity: 0.6 } 50% { opacity: 0.8 } }

/* players-enter – warm, sunlit stage entrance */
.scn-players-enter {
  background:
    linear-gradient(180deg, #e8c87a 0%, #c8a05a 50%, #a87a3a 100%),
    radial-gradient(ellipse at 50% 0%, #fae6a0 0%, transparent 60%);
}
.scn-players-enter .stage-floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #b88848 0%, #8a6028 100%);
  border-radius: 30% 30% 0 0;
  box-shadow: inset 0 10px 30px rgba(0,0,0,0.3);
}
.scn-players-enter .backdrop {
  position: absolute; inset: 10% 10% 30% 10%;
  background: radial-gradient(ellipse at 50% 30%, #f0d090 0%, #c89a50 100%);
  border-radius: 10%;
}
.scn-players-enter .curtain-left {
  position: absolute; top: 0; left: 0; width: 15%; height: 100%;
  background: linear-gradient(180deg, #a03220 0%, #701810 60%, #4a0e08 100%);
  border-radius: 0 30% 80% 0;
  box-shadow: 4px 0 12px rgba(0,0,0,0.4);
  animation: pen-curtain 10s ease-in-out infinite alternate;
}
.scn-players-enter .curtain-right {
  position: absolute; top: 0; right: 0; width: 15%; height: 100%;
  background: linear-gradient(180deg, #a03220 0%, #701810 60%, #4a0e08 100%);
  border-radius: 30% 0 0 80%;
  box-shadow: -4px 0 12px rgba(0,0,0,0.4);
  animation: pen-curtain 10s ease-in-out infinite alternate-reverse;
}
.scn-players-enter .player-1 {
  position: absolute; bottom: 22%; left: 35%; width: 24px; height: 50px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0e05 100%);
  border-radius: 45% 45% 35% 35% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: pen-player 6s ease-in-out infinite;
}
.scn-players-enter .player-2 {
  position: absolute; bottom: 20%; left: 45%; width: 26px; height: 54px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0e 100%);
  border-radius: 45% 45% 35% 35% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: pen-player 6s ease-in-out infinite 2s;
}
.scn-players-enter .player-3 {
  position: absolute; bottom: 23%; left: 55%; width: 22px; height: 48px;
  background: linear-gradient(180deg, #2a1a0e 0%, #0e0500 100%);
  border-radius: 45% 45% 35% 35% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: pen-player 6s ease-in-out infinite 4s;
}
@keyframes pen-curtain { 0% { transform: translateX(0) } 50% { transform: translateX(4px) } 100% { transform: translateX(0) } }
@keyframes pen-player { 0% { transform: translateY(0) rotate(0deg) } 30% { transform: translateY(-3px) rotate(1deg) } 60% { transform: translateY(0) rotate(-1deg) } 100% { transform: translateY(0) rotate(0deg) } }

/* lord-instructs-players – tense, dusk */
.scn-lord-instructs-players {
  background:
    linear-gradient(180deg, #2c1e3e 0%, #4a2a4e 25%, #7a4a5e 50%, #a0604a 75%, #6a3a2e 100%),
    radial-gradient(ellipse at 30% 40%, #b0744e 0%, transparent 70%);
}
.scn-lord-instructs-players .dusk-sky {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(180deg, #3a2a4a 0%, #7a4a5e 60%, #a0604a 100%);
  animation: lip-dusk 15s ease-in-out infinite alternate;
}
.scn-lord-instructs-players .distant-trees {
  position: absolute; bottom: 38%; left: 0; right: 0; height: 15%;
  background: linear-gradient(180deg, #2a1a2a 0%, #1a0a1a 100%);
  border-radius: 30% 40% 0 0;
  box-shadow: inset 0 10px 20px rgba(0,0,0,0.5);
  animation: lip-trees 12s ease-in-out infinite alternate;
}
.scn-lord-instructs-players .ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 40%;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0e 100%);
  border-radius: 40% 20% 0 0;
}
.scn-lord-instructs-players .lord-figure {
  position: absolute; bottom: 28%; left: 30%; width: 32px; height: 60px;
  background: linear-gradient(180deg, #0e0500 0%, #1a0e05 100%);
  border-radius: 45% 45% 35% 35% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  box-shadow: -4px 0 10px rgba(0,0,0,0.6);
  animation: lip-lord 4s ease-in-out infinite;
}
.scn-lord-instructs-players .player-a {
  position: absolute; bottom: 26%; left: 48%; width: 22px; height: 48px;
  background: linear-gradient(180deg, #1a0e05 0%, #0e0500 100%);
  border-radius: 45% 45% 35% 35% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: lip-player 3s ease-in-out infinite;
}
.scn-lord-instructs-players .player-b {
  position: absolute; bottom: 24%; left: 56%; width: 20px; height: 44px;
  background: linear-gradient(180deg, #2a1a0e 0%, #1a0e05 100%);
  border-radius: 45% 45% 35% 35% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: lip-player 3s ease-in-out infinite 1.5s;
}
.scn-lord-instructs-players .shadow-stripe {
  position: absolute; bottom: 30%; left: 20%; width: 60%; height: 2px;
  background: linear-gradient(90deg, transparent 0%, rgba(0,0,0,0.5) 30%, transparent 100%);
  animation: lip-shadow 8s ease-in-out infinite alternate;
}
@keyframes lip-dusk { 0% { opacity: 0.85 } 50% { opacity: 1 } 100% { opacity: 0.75 } }
@keyframes lip-trees { 0% { transform: translateY(0) scaleY(1) } 50% { transform: translateY(-2px) scaleY(1.02) } 100% { transform: translateY(0) scaleY(1) } }
@keyframes lip-lord { 0%,100% { transform: rotate(0deg) } 25% { transform: rotate(-2deg) } 75% { transform: rotate(2deg) } }
@keyframes lip-player { 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 lip-shadow { 0% { opacity: 0.3; transform: scaleX(1) } 50% { opacity: 0.7; transform: scaleX(1.05) } 100% { opacity: 0.3; transform: scaleX(1) } }

/* lord-plans-page-disguise – funny, dim interior with firelight */
.scn-lord-plans-page-disguise {
  background:
    linear-gradient(180deg, #2a1a0e 0%, #4a2a1a 40%, #3a2010 100%),
    radial-gradient(ellipse at 40% 60%, #c85e2a 0%, transparent 60%);
}
.scn-lord-plans-page-disguise .room-wall {
  position: absolute; inset: 0 0 20% 0;
  background: linear-gradient(180deg, #3a2010 0%, #2a1a0e 100%);
  border-radius: 0 0 30% 30%;
}
.scn-lord-plans-page-disguise .hearth-glow {
  position: absolute; bottom: 25%; left: 10%; width: 25%; height: 30%;
  background: radial-gradient(ellipse at 50% 80%, #ff8c40 0%, #c85e2a 40%, transparent 70%);
  border-radius: 50%;
  box-shadow: 0 0 80px 30px rgba(200,94,42,0.5);
  animation: lpd-fire 3s ease-in-out infinite alternate;
}
.scn-lord-plans-page-disguise .lord-chair {
  position: absolute; bottom: 10%; left: 35%; width: 50px; height: 70px;
  background: linear-gradient(180deg, #5a3a2a 0%, #3a2010 100%);
  border-radius: 20% 20% 10% 10% / 30% 30% 20% 20%;
  box-shadow: 0 8px 16px rgba(0,0,0,0.6);
  transform: rotate(-3deg);
}
.scn-lord-plans-page-disguise .lord-torso {
  position: absolute; bottom: 30%; left: 38%; width: 30px; height: 50px;
  background: linear-gradient(180deg, #1a0e05 0%, #0e0500 100%);
  border-radius: 45% 45% 35% 35% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: lpd-lord 4s ease-in-out infinite;
}
.scn-lord-plans-page-disguise .page-figure {
  position: absolute; bottom: 20%; left: 58%; width: 20px; height: 38px;
  background: linear-gradient(180deg, #2a1a0e 0%, #1a0e05 100%);
  border-radius: 45% 45% 35% 35% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: lpd-page 2s ease-in-out infinite alternate;
}
.scn-lord-plans-page-disguise .disguise-cloak {
  position: absolute; bottom: 22%; left: 62%; width: 18px; height: 30px;
  background: linear-gradient(180deg, #c8553d 0%, #a0461a 100%);
  border-radius: 30% 30% 10% 10% / 50% 50% 20% 20%;
  transform: rotate(10deg);
  animation: lpd-cloak 1.5s ease-in-out infinite alternate;
}
.scn-lord-plans-page-disguise .candle-flicker {
  position: absolute; bottom: 55%; left: 52%; width: 6px; height: 12px;
  background: linear-gradient(180deg, #ffd86e 0%, #ffa040 100%);
  border-radius: 30% 30% 10% 10% / 50% 50% 20% 20%;
  box-shadow: 0 0 16px 6px rgba(255,160,64,0.8);
  animation: lpd-candle 0.8s ease-in-out infinite alternate;
}
@keyframes lpd-fire { 0% { transform: scale(1); opacity: 0.8 } 50% { transform: scale(1.05) translateX(2px); opacity: 1 } 100% { transform: scale(0.98); opacity: 0.7 } }
@keyframes lpd-lord { 0%,100% { transform: rotate(0deg) translateY(0) } 25% { transform: rotate(3deg) translateY(-1px) } 75% { transform: rotate(-3deg) translateY(0) } }
@keyframes lpd-page { 0% { transform: translateX(0) rotate(0deg) } 50% { transform: translateX(4px) rotate(5deg) } 100% { transform: translateX(0) rotate(0deg) } }
@keyframes lpd-cloak { 0% { transform: rotate(10deg) scaleY(1) } 50% { transform: rotate(15deg) scaleY(1.03) } 100% { transform: rotate(8deg) scaleY(0.98) } }
@keyframes lpd-candle { 0% { transform: scaleY(1) scaleX(1); opacity: 0.9 } 50% { transform: scaleY(1.1) scaleX(1.2); opacity: 1 } 100% { transform: scaleY(0.9) scaleX(0.8); opacity: 0.8 } }

.scn-alehouse-quarrel {
  background:
    linear-gradient(180deg, #f5e6c0 0%, #e0c8a0 30%, #c8a878 60%, #a07850 100%),
    radial-gradient(ellipse at 70% 20%, #fff4d0 0%, transparent 60%);
}
.scn-alehouse-quarrel .wall-back {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(90deg, #d4b896 0%, #c8a878 50%, #b8986a 100%);
  border-radius: 0 0 8% 8%;
  box-shadow: inset 0 8px 20px rgba(0,0,0,0.15);
  animation: aq-wallpulse 12s ease-in-out infinite alternate;
}
.scn-alehouse-quarrel .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: repeating-linear-gradient(90deg, #8a6e4a 0px, #7a5e3e 4px, #8a6e4a 8px, #9a7e5a 12px);
  border-top: 4px solid #6a4e2e;
  animation: aq-floor 8s linear infinite;
}
.scn-alehouse-quarrel .table {
  position: absolute; bottom: 24%; left: 50%; width: 120px; height: 14px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #6a4e3a 0%, #4a322a 100%);
  border-radius: 4px;
  box-shadow: 0 4px 8px rgba(0,0,0,0.4);
}
.scn-alehouse-quarrel .figure-left {
  position: absolute; bottom: 22%; left: 36%; width: 24px; height: 56px;
  background: linear-gradient(180deg, #c8553d 0%, #8a3a2a 60%);
  border-radius: 50% 40% 30% 30% / 60% 50% 40% 40%;
  transform-origin: bottom center;
  animation: aq-left 2s ease-in-out infinite;
}
.scn-alehouse-quarrel .figure-right {
  position: absolute; bottom: 22%; right: 34%; width: 24px; height: 56px;
  background: linear-gradient(180deg, #b87878 0%, #7a4a4a 60%);
  border-radius: 40% 50% 30% 30% / 50% 60% 40% 40%;
  transform-origin: bottom center;
  animation: aq-right 2s ease-in-out infinite 0.3s;
}
.scn-alehouse-quarrel .glass-broken {
  position: absolute; bottom: 20%; left: 48%; width: 12px; height: 6px;
  background: #e0d8c0;
  border-radius: 0 0 50% 50%;
  box-shadow: 3px 3px 0 #c0b090, -2px 1px 0 #d0c8b0;
  animation: aq-glass 1s ease-in-out infinite;
}
.scn-alehouse-quarrel .window-light {
  position: absolute; top: 12%; right: 18%; width: 50px; height: 60px;
  background: radial-gradient(ellipse, #fff8e0 0%, #f0d8a0 50%, transparent 100%);
  border-radius: 10% / 20%;
  box-shadow: 0 0 40px 20px rgba(255,248,224,0.3);
  animation: aq-sun 10s ease-in-out infinite alternate;
}
.scn-alehouse-quarrel .stocks {
  position: absolute; bottom: 16%; right: 10%; width: 40px; height: 30px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a10 100%);
  border-radius: 10% 10% 4% 4%;
  box-shadow: 0 2px 6px rgba(0,0,0,0.5);
}
@keyframes aq-wallpulse { 0% { opacity:0.9 } 50% { opacity:1 } 100% { opacity:0.85 } }
@keyframes aq-floor { 0% { background-position:0 0 } 100% { background-position:16px 0 } }
@keyframes aq-left { 0%,100% { transform: translateX(0) rotate(0deg) } 25% { transform: translateX(-4px) rotate(-5deg) } 50% { transform: translateX(0) rotate(0deg) } 75% { transform: translateX(-4px) rotate(5deg) } }
@keyframes aq-right { 0%,100% { transform: translateX(0) rotate(0deg) } 25% { transform: translateX(4px) rotate(5deg) } 50% { transform: translateX(0) rotate(0deg) } 75% { transform: translateX(4px) rotate(-5deg) } }
@keyframes aq-glass { 0%,100% { transform: translate(0,0) rotate(0deg); opacity:0.8 } 50% { transform: translate(-1px,-2px) rotate(-10deg); opacity:1 } }
@keyframes aq-sun { 0% { opacity:0.6; transform: scale(0.9) } 50% { opacity:1; transform: scale(1) } 100% { opacity:0.7; transform: scale(0.95) } }

.scn-lord-hunting-arrival {
  background:
    linear-gradient(180deg, #c8d8e8 0%, #a8c0d8 40%, #d0b890 70%, #8a7a5a 100%),
    radial-gradient(ellipse at 80% 20%, #fff8e0 0%, transparent 70%);
}
.scn-lord-hunting-arrival .sky-far {
  position: absolute; inset: 0 0 50% 0;
  background: linear-gradient(180deg, #e0eef8 0%, #b0c8e0 60%);
  border-radius: 0 0 40% 40%;
}
.scn-lord-hunting-arrival .hills-roll {
  position: absolute; bottom: 30%; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #7a9a6a 0%, #5a7a4a 100%);
  border-radius: 60% 40% 0 0 / 80% 60% 0 0;
  box-shadow: inset 0 10px 20px rgba(0,0,0,0.2);
  animation: lh-hills 20s ease-in-out infinite alternate;
}
.scn-lord-hunting-arrival .ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #9a8a6a 0%, #6a5a3a 100%);
  border-radius: 0 0 20% 20%;
}
.scn-lord-hunting-arrival .lord {
  position: absolute; bottom: 24%; left: 40%; width: 28px; height: 60px;
  background: linear-gradient(180deg, #4a3a3a 0%, #2a1a1a 100%);
  border-radius: 50% 40% 30% 30% / 60% 50% 40% 40%;
  transform-origin: bottom;
  animation: lh-lord 8s ease-in-out infinite;
}
.scn-lord-hunting-arrival .hound-1 {
  position: absolute; bottom: 20%; left: 50%; width: 40px; height: 22px;
  background: linear-gradient(180deg, #6a5a4a 0%, #3a2a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: 50% 100%;
  animation: lh-hound 6s ease-in-out infinite;
}
.scn-lord-hunting-arrival .hound-2 {
  position: absolute; bottom: 18%; left: 55%; width: 36px; height: 20px;
  background: linear-gradient(180deg, #8a7a6a 0%, #5a4a3a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: 50% 100%;
  animation: lh-hound 6s ease-in-out infinite 1s;
}
.scn-lord-hunting-arrival .sunburst {
  position: absolute; top: 8%; right: 18%; width: 80px; height: 80px;
  background: radial-gradient(circle, #fff8e0 0%, #f0e090 30%, transparent 70%);
  border-radius: 50%;
  box-shadow: 0 0 60px 30px rgba(255,248,224,0.3);
  animation: lh-sun 12s ease-in-out infinite alternate;
}
.scn-lord-hunting-arrival .spear {
  position: absolute; bottom: 28%; left: 44%; width: 4px; height: 40px;
  background: linear-gradient(180deg, #6a5a3a 0%, #3a2a1a 100%);
  border-radius: 20%;
  transform: rotate(-15deg);
  animation: lh-spear 4s ease-in-out infinite;
}
@keyframes lh-hills { 0% { transform: translateY(0) } 50% { transform: translateY(-4px) } 100% { transform: translateY(2px) } }
@keyframes lh-lord { 0%,100% { transform: translateX(0) rotate(0deg) } 33% { transform: translateX(5px) rotate(2deg) } 66% { transform: translateX(-3px) rotate(-1deg) } }
@keyframes lh-hound { 0%,100% { transform: translateX(0) scaleX(1) } 50% { transform: translateX(8px) scaleX(1.1) } }
@keyframes lh-sun { 0% { opacity:0.7; transform: scale(0.9) } 50% { opacity:1; transform: scale(1.1) } 100% { opacity:0.8; transform: scale(0.95) } }
@keyframes lh-spear { 0%,100% { transform: rotate(-15deg) translateY(0) } 50% { transform: rotate(-12deg) translateY(-2px) } }

.scn-lord-practise-jest {
  background:
    linear-gradient(180deg, #e8d8c0 0%, #c8b090 30%, #a0806a 60%, #6a5040 100%),
    radial-gradient(ellipse at 60% 30%, #fff4e0 0%, transparent 50%);
}
.scn-lord-practise-jest .wall-chamber {
  position: absolute; inset: 0 0 20% 0;
  background: linear-gradient(180deg, #d8c8b0 0%, #b8a088 80%);
  border-radius: 0 0 10% 10%;
  box-shadow: inset 0 -10px 20px rgba(0,0,0,0.1);
}
.scn-lord-practise-jest .bed {
  position: absolute; bottom: 18%; left: 50%; width: 140px; height: 40px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #7a6a5a 0%, #5a4a3a 100%);
  border-radius: 8% 8% 4% 4%;
  box-shadow: 0 6px 12px rgba(0,0,0,0.4);
}
.scn-lord-practise-jest .drunkard {
  position: absolute; bottom: 16%; left: 48%; width: 60px; height: 36px;
  background: linear-gradient(180deg, #6a5a4a 0%, #3a2a1a 100%);
  border-radius: 50% 50% 40% 40% / 70% 70% 40% 40%;
  transform: rotate(-10deg);
  animation: lp-drunk 5s ease-in-out infinite;
}
.scn-lord-practise-jest .lord-standing {
  position: absolute; bottom: 22%; left: 30%; width: 26px; height: 60px;
  background: linear-gradient(180deg, #4a3a3a 0%, #2a1a1a 100%);
  border-radius: 50% 40% 30% 30% / 60% 50% 40% 40%;
  transform-origin: bottom;
  animation: lp-lord 4s ease-in-out infinite;
}
.scn-lord-practise-jest .ring-glint {
  position: absolute; bottom: 24%; left: 32%; width: 8px; height: 8px;
  background: #f0e0c0;
  border-radius: 50%;
  box-shadow: 0 0 10px 3px #e0c090, 0 0 20px 6px rgba(224,192,144,0.3);
  animation: lp-ring 3s ease-in-out infinite alternate;
}
.scn-lord-practise-jest .banquet-table {
  position: absolute; bottom: 14%; right: 12%; width: 80px; height: 10px;
  background: linear-gradient(180deg, #6a4e3a 0%, #4a322a 100%);
  border-radius: 2px;
  box-shadow: 0 3px 6px rgba(0,0,0,0.3);
}
.scn-lord-practise-jest .curtain {
  position: absolute; top: 0; left: 10%; width: 20px; height: 100%;
  background: linear-gradient(180deg, #c8553d 0%, #8a3a2a 100%);
  border-radius: 0 20% 20% 0;
  transform-origin: left;
  animation: lp-curtain 8s ease-in-out infinite alternate;
}
@keyframes lp-drunk { 0%,100% { transform: rotate(-10deg) translateY(0) } 25% { transform: rotate(-5deg) translateY(-2px) } 75% { transform: rotate(-15deg) translateY(1px) } }
@keyframes lp-lord { 0%,100% { transform: translateX(0) rotate(0deg) } 33% { transform: translateX(3px) rotate(2deg) } 66% { transform: translateX(-2px) rotate(-1deg) } }
@keyframes lp-ring { 0% { opacity:0.6; transform: scale(0.8) } 100% { opacity:1; transform: scale(1.3) } }
@keyframes lp-curtain { 0% { transform: scaleX(1) } 50% { transform: scaleX(1.1) } 100% { transform: scaleX(0.9) } }

.scn-item-silver-basin {
  background:
    linear-gradient(180deg, #e8d8c0 0%, #d0b898 40%, #b89878 60%, #8a6a4a 100%),
    radial-gradient(ellipse at 50% 40%, #fff4e0 0%, transparent 70%);
}
.scn-item-silver-basin .floor-pattern {
  position: absolute; bottom: 0; left: 0; right: 0; height: 40%;
  background: repeating-conic-gradient(#7a5e3e 0% 25%, #6a4e2e 0% 50%) 0 0 / 30px 30px;
  opacity: 0.4;
  animation: sb-floor 10s linear infinite;
}
.scn-item-silver-basin .carriers {
  position: absolute; bottom: 18%; left: 30%; width: 60px; height: 50px;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 30% 30% 20% 20%;
  box-shadow: 2px 2px 4px rgba(0,0,0,0.3);
  animation: sb-carriers 6s ease-in-out infinite;
}
.scn-item-silver-basin .man-slumped {
  position: absolute; bottom: 16%; left: 32%; width: 50px; height: 30px;
  background: linear-gradient(180deg, #6a5a4a 0%, #3a2a1a 100%);
  border-radius: 50% 50% 40% 40% / 70% 70% 40% 40%;
  transform: rotate(15deg);
  animation: sb-slump 4s ease-in-out infinite;
}
.scn-item-silver-basin .basin {
  position: absolute; bottom: 14%; left: 45%; width: 30px; height: 16px;
  background: linear-gradient(180deg, #d0c8b0 0%, #a09878 100%);
  border-radius: 0 0 50% 50%;
  box-shadow: 0 4px 8px rgba(0,0,0,0.3), 0 0 20px 4px rgba(208,200,176,0.4);
  animation: sb-basin 5s ease-in-out infinite alternate;
}
.scn-item-silver-basin .picture-frame {
  position: absolute; top: 12%; right: 20%; width: 40px; height: 50px;
  background: linear-gradient(180deg, #6a4e3a 0%, #4a322a 100%);
  border-radius: 4%;
  box-shadow: 0 4px 8px rgba(0,0,0,0.3);
  animation: sb-frame 12s ease-in-out infinite alternate;
}
.scn-item-silver-basin .music-notes {
  position: absolute; top: 20%; left: 60%; width: 30px; height: 40px;
  background: radial-gradient(circle at 30% 40%, #f0e0c0 1px, transparent 2px);
  filter: blur(1px);
  animation: sb-notes 10s ease-in-out infinite;
}
.scn-item-silver-basin .candle-smoke {
  position: absolute; top: 8%; left: 50%; width: 10px; height: 30px;
  background: radial-gradient(ellipse, rgba(200,180,160,0.4) 0%, transparent 100%);
  border-radius: 50%;
  filter: blur(4px);
  animation: sb-smoke 8s ease-in-out infinite alternate;
}
@keyframes sb-floor { 0% { background-position: 0 0 } 100% { background-position: 60px 60px } }
@keyframes sb-carriers { 0%,100% { transform: translateX(0) rotate(0deg) } 50% { transform: translateX(4px) rotate(2deg) } }
@keyframes sb-slump { 0%,100% { transform: rotate(15deg) translateY(0) } 50% { transform: rotate(10deg) translateY(-2px) } }
@keyframes sb-basin { 0% { transform: scaleX(1) } 50% { transform: scaleX(1.1) } 100% { transform: scaleX(0.95) } }
@keyframes sb-frame { 0% { opacity:0.7; transform: scale(0.95) } 50% { opacity:1; transform: scale(1.05) } 100% { opacity:0.8; transform: scale(1) } }
@keyframes sb-notes { 0% { opacity:0.3; transform: translateY(0) } 50% { opacity:0.8; transform: translateY(-6px) } 100% { opacity:0.2; transform: translateY(2px) } }
@keyframes sb-smoke { 0% { opacity:0.2; transform: translateY(0) scale(1) } 100% { opacity:0.6; transform: translateY(-10px) scale(1.5) } }

/* lovers-kiss-caught */
.scn-lovers-kiss-caught {
  background: 
    linear-gradient(180deg, #e8d5b0 0%, #d4b890 50%, #b09070 100%),
    radial-gradient(ellipse at 50% 30%, #ffe0b0 0%, transparent 60%);
}
.scn-lovers-kiss-caught .bg-wall {
  position: absolute; inset: 0 0 35% 0;
  background: linear-gradient(180deg, #d4b890 0%, #b09070 100%);
}
.scn-lovers-kiss-caught .window-light {
  position: absolute; top: 10%; left: 30%; width: 40%; height: 35%;
  background: radial-gradient(ellipse, #fff8e0 0%, #ffe0b0 40%, transparent 70%);
  border-radius: 10% / 20%;
  filter: blur(8px);
  animation: lkc-glow 4s ease-in-out infinite alternate;
}
.scn-lovers-kiss-caught .silhouette-left {
  position: absolute; bottom: 30%; left: 34%; width: 12%; height: 45%;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0e06 100%);
  border-radius: 50% 40% 40% 50% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: lkc-lean 6s ease-in-out infinite alternate;
}
.scn-lovers-kiss-caught .silhouette-right {
  position: absolute; bottom: 30%; right: 34%; width: 12%; height: 45%;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0e06 100%);
  border-radius: 40% 50% 50% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: lkc-lean 6s ease-in-out infinite alternate-reverse;
}
.scn-lovers-kiss-caught .ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 35%;
  background: linear-gradient(180deg, #8a6a50 0%, #5a3e2a 100%);
  border-radius: 10% 20% 0 0 / 30% 40% 0 0;
}
.scn-lovers-kiss-caught .candle {
  position: absolute; bottom: 32%; left: 48%; width: 4%; height: 10%;
  background: linear-gradient(180deg, #b09070 0%, #7a5a3a 100%);
  border-radius: 20% 20% 10% 10%;
}
.scn-lovers-kiss-caught .candle::before {
  content: '';
  position: absolute; top: -15%; left: 25%; width: 50%; height: 20%;
  background: radial-gradient(circle, #ffd060 0%, #ffb040 60%);
  border-radius: 50%;
  box-shadow: 0 0 12px 6px #ffb040, 0 0 24px 12px rgba(255,176,64,0.4);
  animation: lkc-flame 1.5s ease-in-out infinite alternate;
}
@keyframes lkc-glow {
  0% { opacity: 0.7; filter: blur(8px); }
  50% { opacity: 1; filter: blur(4px); }
  100% { opacity: 0.8; filter: blur(10px); }
}
@keyframes lkc-lean {
  0% { transform: translateY(0) rotate(0deg); }
  50% { transform: translateY(-2px) rotate(2deg); }
  100% { transform: translateY(0) rotate(0deg); }
}
@keyframes lkc-flame {
  0% { transform: scaleY(1); opacity: 0.9; }
  50% { transform: scaleY(1.2) scaleX(0.8); opacity: 1; }
  100% { transform: scaleY(1); opacity: 0.9; }
}

/* forswearing-bianca */
.scn-forswearing-bianca {
  background:
    linear-gradient(180deg, #eae0c8 0%, #d4c4a0 40%, #b09878 100%),
    radial-gradient(ellipse at 60% 50%, #fff4d4 0%, transparent 50%);
}
.scn-forswearing-bianca .bg-deep {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #d4c4a0 0%, #b09878 100%);
}
.scn-forswearing-bianca .bg-mid {
  position: absolute; bottom: 30%; left: 0; right: 0; height: 40%;
  background: linear-gradient(180deg, #c8b898 0%, #a08060 100%);
  border-radius: 20% 20% 0 0;
}
.scn-forswearing-bianca .column-left {
  position: absolute; top: 0; left: 15%; width: 8%; height: 100%;
  background: linear-gradient(180deg, #c0a884 0%, #8a6a4a 100%);
  box-shadow: 4px 0 8px rgba(0,0,0,0.1);
}
.scn-forswearing-bianca .column-right {
  position: absolute; top: 0; right: 15%; width: 8%; height: 100%;
  background: linear-gradient(180deg, #c0a884 0%, #8a6a4a 100%);
  box-shadow: -4px 0 8px rgba(0,0,0,0.1);
}
.scn-forswearing-bianca .figure-hortensio {
  position: absolute; bottom: 30%; left: 38%; width: 12%; height: 50%;
  background: linear-gradient(180deg, #2a1a0e 0%, #0e0602 100%);
  border-radius: 50% 40% 40% 50% / 50% 60% 40% 50%;
  transform-origin: bottom center;
  animation: fwb-turn 8s ease-in-out infinite alternate;
}
.scn-forswearing-bianca .hand-outstretched {
  position: absolute; bottom: 45%; left: 50%; width: 10%; height: 4%;
  background: linear-gradient(180deg, #2a1a0e 0%, #0e0602 100%);
  border-radius: 20% 40% 40% 20% / 50% 50% 50% 50%;
  transform: translateX(-20%) rotate(-30deg);
  animation: fwb-hand 4s ease-in-out infinite alternate;
}
.scn-forswearing-bianca .shadow {
  position: absolute; bottom: 28%; left: 32%; width: 28%; height: 6%;
  background: radial-gradient(ellipse, rgba(0,0,0,0.2) 0%, transparent 70%);
  border-radius: 50%;
  animation: fwb-shadow 8s ease-in-out infinite alternate;
}
@keyframes fwb-turn {
  0% { transform: translateX(0) rotate(0deg); }
  50% { transform: translateX(-5%) rotate(8deg); }
  100% { transform: translateX(0) rotate(0deg); }
}
@keyframes fwb-hand {
  0% { transform: translateX(-20%) rotate(-30deg); }
  50% { transform: translateX(-30%) rotate(-15deg); }
  100% { transform: translateX(-20%) rotate(-30deg); }
}
@keyframes fwb-shadow {
  0% { opacity: 0.4; transform: scaleX(1); }
  50% { opacity: 0.2; transform: scaleX(0.8); }
  100% { opacity: 0.4; transform: scaleX(1); }
}

/* mutual-oath-take */
.scn-mutual-oath-take {
  background:
    linear-gradient(180deg, #e2d8c0 0%, #c8b898 40%, #a08868 100%),
    radial-gradient(ellipse at 50% 40%, #fff4dc 0%, transparent 60%);
}
.scn-mutual-oath-take .bg-arch {
  position: absolute; top: 0; left: 10%; width: 80%; height: 70%;
  background: linear-gradient(180deg, #c8b898 0%, #b09878 100%);
  border-radius: 50% 50% 0 0 / 60% 60% 0 0;
  box-shadow: inset 0 10px 20px rgba(0,0,0,0.15);
}
.scn-mutual-oath-take .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #a08868 0%, #6a5038 100%);
  border-radius: 10% 10% 0 0;
}
.scn-mutual-oath-take .figure-left {
  position: absolute; bottom: 28%; left: 30%; width: 10%; height: 50%;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0e06 100%);
  border-radius: 40% 50% 50% 40% / 55% 55% 45% 45%;
  animation: mot-sway 7s ease-in-out infinite alternate;
}
.scn-mutual-oath-take .figure-right {
  position: absolute; bottom: 28%; right: 30%; width: 10%; height: 50%;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0e06 100%);
  border-radius: 50% 40% 40% 50% / 55% 55% 45% 45%;
  animation: mot-sway 7s ease-in-out infinite alternate-reverse;
}
.scn-mutual-oath-take .hands-clasped {
  position: absolute; bottom: 48%; left: 50%; width: 8%; height: 6%;
  background: #1a0e06;
  border-radius: 30% 30% 20% 20% / 40% 40% 30% 30%;
  transform: translateX(-50%);
  animation: mot-clasp 4s ease-in-out infinite alternate;
}
.scn-mutual-oath-take .light-beam {
  position: absolute; top: -10%; left: 45%; width: 10%; height: 50%;
  background: linear-gradient(180deg, rgba(255,255,230,0.3) 0%, transparent 100%);
  transform: skewX(-2deg);
  filter: blur(2px);
  animation: mot-beam 6s ease-in-out infinite alternate;
}
@keyframes mot-sway {
  0% { transform: translateY(0) rotate(0deg); }
  50% { transform: translateY(-3px) rotate(2deg); }
  100% { transform: translateY(0) rotate(0deg); }
}
@keyframes mot-clasp {
  0% { transform: translateX(-50%) scale(1); }
  50% { transform: translateX(-50%) scale(1.05) translateY(-1px); }
  100% { transform: translateX(-50%) scale(1); }
}
@keyframes mot-beam {
  0% { opacity: 0.2; }
  50% { opacity: 0.6; }
  100% { opacity: 0.3; }
}

/* taunting-bianca */
.scn-taunting-bianca {
  background:
    linear-gradient(180deg, #ffe680 0%, #ffcc44 30%, #ffaa22 100%),
    radial-gradient(ellipse at 30% 20%, #fff5cc 0%, transparent 50%);
}
.scn-taunting-bianca .bg-fun {
  position: absolute; inset: 0;
  background: radial-gradient(circle at 70% 30%, #ffe680 0%, #ffcc44 50%, #ffaa22 100%);
  animation: tnb-bg 6s ease-in-out infinite alternate;
}
.scn-taunting-bianca .figure-jester {
  position: absolute; bottom: 25%; left: 25%; width: 15%; height: 55%;
  background: linear-gradient(180deg, #4a7a4a 0%, #2a5a2a 50%, #1a3a1a 100%);
  border-radius: 50% 40% 40% 50% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: tnb-jester 2s ease-in-out infinite alternate;
}
.scn-taunting-bianca .figure-jester::after {
  content: '';
  position: absolute; top: 10%; left: 10%; width: 30%; height: 20%;
  background: radial-gradient(circle, #ffaa44 0%, #ff6600 100%);
  border-radius: 50%;
  box-shadow: 0 0 10px 5px #ffaa44;
}
.scn-taunting-bianca .figure-bianca {
  position: absolute; bottom: 25%; right: 25%; width: 12%; height: 45%;
  background: linear-gradient(180deg, #705a8a 0%, #4a3460 50%, #2a1a3a 100%);
  border-radius: 40% 50% 50% 40% / 55% 55% 45% 45%;
  transform-origin: bottom center;
  animation: tnb-bianca 3s ease-in-out infinite alternate;
}
.scn-taunting-bianca .figure-bianca::before {
  content: '';
  position: absolute; top: 20%; left: 30%; width: 40%; height: 30%;
  background: radial-gradient(ellipse, #c0a0d0 0%, transparent 100%);
  border-radius: 50%;
  opacity: 0.5;
}
.scn-taunting-bianca .speech-bubble {
  position: absolute; top: 15%; left: 20%; width: 18%; height: 12%;
  background: white;
  border-radius: 30% 30% 30% 20% / 40% 40% 40% 30%;
  box-shadow: 0 4px 8px rgba(0,0,0,0.2);
  animation: tnb-bubble 2s ease-in-out infinite alternate;
}
.scn-taunting-bianca .speech-bubble::after {
  content: '';
  position: absolute; bottom: -20%; left: 30%; width: 0; height: 0;
  border-left: 8px solid transparent;
  border-right: 8px solid transparent;
  border-top: 12px solid white;
}
.scn-taunting-bianca .confetti-a {
  position: absolute; top: 5%; left: 10%; width: 4%; height: 4%;
  background: #ff6600;
  border-radius: 50% 50% 0 50%;
  animation: tnb-confetti 4s linear infinite;
}
.scn-taunting-bianca .confetti-b {
  position: absolute; top: 10%; right: 20%; width: 3%; height: 3%;
  background: #4a7a4a;
  border-radius: 0 50% 50% 50%;
  animation: tnb-confetti 5s linear infinite 1s;
}
.scn-taunting-bianca .confetti-c {
  position: absolute; top: 15%; left: 60%; width: 3%; height: 3%;
  background: #4a3460;
  border-radius: 50% 0 50% 50%;
  animation: tnb-confetti 4.5s linear infinite 2s;
}
@keyframes tnb-bg {
  0% { filter: brightness(1); }
  50% { filter: brightness(1.1); }
  100% { filter: brightness(0.95); }
}
@keyframes tnb-jester {
  0% { transform: translateY(0) rotate(-3deg); }
  50% { transform: translateY(-8px) rotate(3deg); }
  100% { transform: translateY(0) rotate(-3deg); }
}
@keyframes tnb-bianca {
  0% { transform: translateY(0) scale(1); }
  50% { transform: translateY(-4px) scale(0.95); }
  100% { transform: translateY(0) scale(1); }
}
@keyframes tnb-bubble {
  0% { transform: scale(0.9); opacity: 0.7; }
  50% { transform: scale(1.1); opacity: 1; }
  100% { transform: scale(0.95); opacity: 0.8; }
}
@keyframes tnb-confetti {
  0% { transform: translateY(0) rotate(0deg); opacity: 1; }
  100% { transform: translateY(60vh) rotate(360deg); opacity: 0; }
}

/* baptista-dismisses */
.scn-baptista-dismisses { background: linear-gradient(180deg, #e0c8a0 0%, #c4a87a 40%, #a08868 100%), radial-gradient(ellipse at 30% 20%, #f5e6c8 0%, transparent 60%); }
.scn-baptista-dismisses .room-wall  { position:absolute; inset:0 0 35% 0; background: linear-gradient(180deg, #d4b896 0%, #b09878 100%); border-bottom: 4px solid #7a6040; }
.scn-baptista-dismisses .floor      { position:absolute; bottom:0; left:0; right:0; height:35%; background: linear-gradient(180deg, #8a7050 0%, #6a5030 100%); box-shadow: inset 0 8px 12px rgba(0,0,0,.3); }
.scn-baptista-dismisses .doorway    { position:absolute; bottom:25%; left:20%; width:60px; height:70px; background: #5a4020; border-radius: 4px; box-shadow: inset -3px 0 6px rgba(0,0,0,.5), inset 3px 0 6px rgba(255,255,240,.1); }
.scn-baptista-dismisses .bianca-figure { position:absolute; bottom:28%; left:22%; width:20px; height:40px; background: linear-gradient(180deg, #e8c89e 0%, #c8a880 30%, #b09068 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: bd-bianca 4s ease-in-out infinite alternate; }
.scn-baptista-dismisses .baptista-figure { position:absolute; bottom:28%; left:48%; width:28px; height:48px; background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 60%, #2a1a0a 100%); border-radius: 60% 40% 40% 40% / 70% 60% 40% 30%; transform-origin: bottom center; animation: bd-baptista 6s ease-in-out infinite; }
.scn-baptista-dismisses .sunbeam    { position:absolute; top:0; left:35%; width:80px; height:100%; background: linear-gradient(180deg, rgba(255,240,200,.5) 0%, rgba(255,240,200,.1) 100%); clip-path: polygon(0% 0%, 100% 0%, 70% 100%, 30% 100%); filter: blur(6px); animation: bd-beam 8s ease-in-out infinite alternate; }
.scn-baptista-dismisses .shadow-sharp { position:absolute; bottom:28%; left:35%; width:40px; height:20px; background: rgba(0,0,0,.25); transform: skewX(-10deg); animation: bd-shadow 6s ease-in-out infinite; }
@keyframes bd-bianca   { 0% { transform: translateX(0) rotate(0deg); opacity:1 } 50% { transform: translateX(12px) rotate(-2deg); opacity:.6 } 100% { transform: translateX(24px) rotate(0deg); opacity:0 } }
@keyframes bd-baptista { 0%,100% { transform: translateY(0) rotate(0deg) } 50% { transform: translateY(-3px) rotate(2deg) } }
@keyframes bd-beam     { 0% { opacity:.3; transform: scaleX(1) } 50% { opacity:.7; transform: scaleX(1.2) } 100% { opacity:.4; transform: scaleX(.9) } }
@keyframes bd-shadow   { 0%,100% { width:40px; opacity:.25 } 50% { width:50px; opacity:.4 } }

/* gremio-leaves */
.scn-gremio-leaves { background: linear-gradient(180deg, #b8d0e0 0%, #e8d8c0 40%, #c8a880 100%), radial-gradient(ellipse at 20% 80%, #fff0d0 0%, transparent 50%); }
.scn-gremio-leaves .sky     { position:absolute; inset:0 0 50% 0; background: linear-gradient(180deg, #9bb8d0 0%, #d0e0f0 60%); animation: gl-sky 10s ease-in-out infinite alternate; }
.scn-gremio-leaves .ground  { position:absolute; bottom:0; left:0; right:0; height:50%; background: linear-gradient(180deg, #b09860 0%, #807040 100%); border-radius: 30% 70% 0 0 / 20% 40% 0 0; }
.scn-gremio-leaves .gate    { position:absolute; bottom:35%; left:30%; width:50px; height:65px; background: linear-gradient(180deg, #6a5030 0%, #4a3820 100%); border-radius: 4px; box-shadow: 0 4px 8px rgba(0,0,0,.4); }
.scn-gremio-leaves .gremio-figure { position:absolute; bottom:34%; left:18%; width:22px; height:44px; background: linear-gradient(180deg, #7a5a3a 0%, #4a2a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: gl-gremio 3s ease-in-out infinite; }
.scn-gremio-leaves .hortensio-figure { position:absolute; bottom:34%; left:45%; width:22px; height:44px; background: linear-gradient(180deg, #5a4a3a 0%, #2a1a0a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: gl-hort 4s ease-in-out infinite alternate; }
.scn-gremio-leaves .shadow-stretch { position:absolute; bottom:28%; left:12%; width:60px; height:12px; background: rgba(0,0,0,.2); transform: skewX(-15deg); animation: gl-shadow 3s ease-in-out infinite; }
.scn-gremio-leaves .dust    { position:absolute; bottom:30%; left:10%; width:10px; height:10px; background: rgba(200,180,140,.4); border-radius: 50%; filter: blur(3px); animation: gl-dust 5s linear infinite; }
@keyframes gl-sky    { 0% { background-position: 0% 0% } 50% { background-position: 10% 0% } 100% { background-position: 0% 0% } }
@keyframes gl-gremio { 0% { transform: translateX(0) rotate(2deg) } 30% { transform: translateX(15px) rotate(-3deg) scaleX(.9) } 60% { transform: translateX(30px) rotate(4deg) } 100% { transform: translateX(50px) rotate(0deg) } }
@keyframes gl-hort   { 0%,100% { transform: translateY(0) rotate(0deg) } 50% { transform: translateY(-4px) rotate(-1deg) } }
@keyframes gl-shadow { 0% { width:60px; opacity:.2 } 50% { width:80px; opacity:.35 } 100% { width:60px; opacity:.2 } }
@keyframes gl-dust   { 0% { transform: translate(0,0) scale(1); opacity:.4 } 100% { transform: translate(40px,-20px) scale(0); opacity:0 } }

/* hortensio-gremio-plan */
.scn-hortensio-gremio-plan { background: linear-gradient(180deg, #f0e4c8 0%, #d8c8a0 50%, #a08868 100%), radial-gradient(ellipse at 60% 30%, #fff8e0 0%, transparent 50%); }
.scn-hortensio-gremio-plan .sky   { position:absolute; inset:0 0 55% 0; background: linear-gradient(180deg, #b0c8d8 0%, #e8e0c8 100%); animation: hgp-sky 12s ease-in-out infinite alternate; }
.scn-hortensio-gremio-plan .ground { position:absolute; bottom:0; left:0; right:0; height:55%; background: linear-gradient(180deg, #b8a878 0%, #8a6a48 100%); border-radius: 20% 80% 0 0 / 30% 50% 0 0; }
.scn-hortensio-gremio-plan .column { position:absolute; bottom:30%; left:50%; width:16px; height:70px; margin-left:-8px; background: linear-gradient(180deg, #d0b890 0%, #a08860 100%); border-radius: 6px; box-shadow: 4px 0 6px rgba(0,0,0,.2); }
.scn-hortensio-gremio-plan .figure-left { position:absolute; bottom:30%; left:30%; width:24px; height:50px; background: linear-gradient(180deg, #7a5a3a 0%, #4a2a1a 100%); border-radius: 50% 50% 40% 40% / 70% 60% 40% 30%; transform-origin: bottom center; animation: hgp-left 2s ease-in-out infinite alternate; }
.scn-hortensio-gremio-plan .figure-right { position:absolute; bottom:30%; right:28%; width:24px; height:50px; background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%); border-radius: 50% 50% 40% 40% / 70% 60% 40% 30%; transform-origin: bottom center; animation: hgp-right 2.3s ease-in-out infinite alternate; }
.scn-hortensio-gremio-plan .speech-bubble { position:absolute; top:15%; right:10%; width:30px; height:20px; background: rgba(255,255,255,.7); border-radius: 40% 40% 20% 40%; transform: rotate(-10deg); animation: hgp-bubble 5s ease-in-out infinite; }
.scn-hortensio-gremio-plan .light-dapple { position:absolute; top:10%; left:20%; width:60px; height:40px; background: radial-gradient(circle, rgba(255,240,200,.3) 0%, transparent 70%); filter: blur(8px); animation: hgp-dapple 6s ease-in-out infinite alternate; }
.scn-hortensio-gremio-plan .leaf { position:absolute; top:20%; left:40%; width:8px; height:12px; background: #7a8a40; border-radius: 50% 0 50% 0; animation: hgp-leaf 4s ease-in-out infinite; }
@keyframes hgp-sky   { 0% { opacity:.8 } 50% { opacity:1 } 100% { opacity:.75 } }
@keyframes hgp-left  { 0% { transform: translateY(0) rotate(5deg) } 100% { transform: translateY(-8px) rotate(-5deg) } }
@keyframes hgp-right { 0% { transform: translateY(0) rotate(-5deg) } 100% { transform: translateY(-8px) rotate(5deg) } }
@keyframes hgp-bubble{ 0% { transform: scale(1) rotate(-10deg); opacity:.6 } 50% { transform: scale(1.2) rotate(5deg); opacity:1 } 100% { transform: scale(1) rotate(-10deg); opacity:.6 } }
@keyframes hgp-dapple{ 0% { transform: translateX(0) scale(1); opacity:.3 } 50% { transform: translateX(10px) scale(1.3); opacity:.5 } 100% { transform: translateX(-5px) scale(.9); opacity:.3 } }
@keyframes hgp-leaf  { 0%,100% { transform: translate(0,0) rotate(0deg) } 50% { transform: translate(12px,-8px) rotate(45deg) } }

/* lucentio-love */
.scn-lucentio-love { background: linear-gradient(180deg, #f0d8a8 0%, #d4b878 40%, #b89850 100%), radial-gradient(ellipse at 40% 60%, #ffe8b0 0%, transparent 50%); }
.scn-lucentio-love .sky          { position:absolute; inset:0 0 45% 0; background: linear-gradient(180deg, #c8d8e0 0%, #e8d8b8 100%); animation: ll-sky 15s ease-in-out infinite alternate; }
.scn-lucentio-love .garden-wall  { position:absolute; bottom:25%; left:0; right:0; height:30%; background: linear-gradient(180deg, #a08868 0%, #7a6040 100%); border-radius: 10% 30% 0 0; box-shadow: inset 0 4px 8px rgba(0,0,0,.2); }
.scn-lucentio-love .balcony      { position:absolute; bottom:35%; right:20%; width:60px; height:25px; background: linear-gradient(180deg, #c8a87a 0%, #a08058 100%); border-radius: 8px 8px 0 0; transform: perspective(200px) rotateX(10deg); animation: ll-balcony 6s ease-in-out infinite; }
.scn-lucentio-love .lucentio-figure { position:absolute; bottom:30%; left:25%; width:22px; height:48px; background: linear-gradient(180deg, #5a4a3a 0%, #2a1a0a 100%); border-radius: 50% 50% 40% 40% / 70% 60% 40% 30%; transform-origin: bottom center; animation: ll-lucentio 4s ease-in-out infinite; }
.scn-lucentio-love .tranio-figure { position:absolute; bottom:30%; left:5%; width:20px; height:44px; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: ll-tranio 5s ease-in-out infinite alternate; }
.scn-lucentio-love .flowers      { position:absolute; bottom:28%; left:35%; width:30px; height:20px; background: radial-gradient(circle, #e8a868 0%, #c87848 40%, transparent 70%); filter: blur(2px); animation: ll-flowers 8s ease-in-out infinite; }
.scn-lucentio-love .sunbeams     { position:absolute; top:10%; left:30%; width:100px; height:80%; background: linear-gradient(180deg, rgba(255,240,180,.25) 0%, transparent 100%); clip-path: polygon(0% 0%, 100% 0%, 60% 100%, 40% 100%); filter: blur(8px); animation: ll-beams 12s ease-in-out infinite alternate; }
.scn-lucentio-love .heart-glow   { position:absolute; top:18%; left:32%; width:14px; height:14px; background: radial-gradient(circle, #d86040 0%, transparent 70%); border-radius: 50%; filter: blur(4px); animation: ll-heart 3s ease-in-out infinite; }
@keyframes ll-sky      { 0% { opacity:.8 } 50% { opacity:1 } 100% { opacity:.75 } }
@keyframes ll-balcony  { 0%,100% { transform: perspective(200px) rotateX(10deg) } 50% { transform: perspective(200px) rotateX(5deg) translateY(-2px) } }
@keyframes ll-lucentio { 0% { transform: translateY(0) rotate(0deg) } 25% { transform: translateY(-5px) rotate(2deg) } 50% { transform: translateY(-8px) rotate(-1deg) } 75% { transform: translateY(-3px) rotate(1deg) } 100% { transform: translateY(0) rotate(0deg) } }
@keyframes ll-tranio   { 0% { transform: translateX(0) rotate(0deg) } 100% { transform: translateX(6px) rotate(3deg) } }
@keyframes ll-flowers  { 0% { transform: scale(1) translateY(0); opacity:.7 } 50% { transform: scale(1.1) translateY(-3px); opacity:1 } 100% { transform: scale(1) translateY(0); opacity:.7 } }
@keyframes ll-beams    { 0% { opacity:.2; transform: scaleX(1) } 50% { opacity:.5; transform: scaleX(1.2) } 100% { opacity:.3; transform: scaleX(.8) } }
@keyframes ll-heart    { 0%,100% { opacity:.5; transform: scale(1) } 50% { opacity:1; transform: scale(1.5) } }

/* Scene: hortensio-resolved – calm, sunlit garden */
.scn-hortensio-resolved {
  background: linear-gradient(180deg, #87CEEB 0%, #b0e0e6 40%, #f5deb3 70%, #deb887 100%),
              radial-gradient(ellipse at 50% 0%, #ffd700 0%, transparent 50%);
}
.scn-hortensio-resolved .sky {
  position: absolute; inset: 0 0 45% 0;
  background: linear-gradient(180deg, #87CEEB 0%, #c9e8f0 60%, transparent 100%);
  animation: hr-sky 15s ease-in-out infinite alternate;
}
.scn-hortensio-resolved .sun {
  position: absolute; top: 5%; left: 65%; width: 60px; height: 60px;
  background: radial-gradient(circle, #ffed80 0%, #ffd700 40%, transparent 70%);
  border-radius: 50%;
  box-shadow: 0 0 40px 20px rgba(255,215,0,0.4);
  animation: hr-sun 20s ease-in-out infinite;
}
.scn-hortensio-resolved .garden-wall {
  position: absolute; bottom: 20%; left: 5%; right: 5%; height: 30%;
  background: linear-gradient(180deg, #d8c8a0 0%, #b8a880 100%);
  border-radius: 10% 10% 0 0;
  box-shadow: inset 0 4px 10px rgba(0,0,0,0.15);
}
.scn-hortensio-resolved .hedge {
  position: absolute; bottom: 15%; left: 10%; right: 60%; height: 12%;
  background: linear-gradient(180deg, #6b8e23 0%, #556b2f 100%);
  border-radius: 60% 60% 20% 20% / 80% 80% 40% 40%;
  transform: scaleX(1.2);
  filter: blur(1px);
  animation: hr-hedge 8s ease-in-out infinite alternate;
}
.scn-hortensio-resolved .figure-hortensio {
  position: absolute; bottom: 18%; left: 45%; width: 24px; height: 50px;
  background: linear-gradient(180deg, #2a1f1a 0%, #1a0f0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: hr-walk 6s ease-in-out infinite;
}
.scn-hortensio-resolved .shadow {
  position: absolute; bottom: 15%; left: 40%; width: 80px; height: 10px;
  background: radial-gradient(ellipse, rgba(0,0,0,0.2) 0%, transparent 70%);
  border-radius: 50%;
  animation: hr-shadow 6s ease-in-out infinite;
}
.scn-hortensio-resolved .butterfly {
  position: absolute; top: 30%; left: 20%; width: 10px; height: 10px;
  background: radial-gradient(circle, #f4a460 0%, #d2691e 100%);
  border-radius: 50%;
  filter: blur(1px);
  animation: hr-butterfly 9s ease-in-out infinite;
}
@keyframes hr-sky { 0% { opacity: 0.9 } 50% { opacity: 1 } 100% { opacity: 0.85 } }
@keyframes hr-sun { 0%,100% { transform: translate(0,0) scale(1); } 50% { transform: translate(2px,-2px) scale(1.05); } }
@keyframes hr-hedge { 0% { transform: scaleX(1.2) translateY(0); } 100% { transform: scaleX(1.25) translateY(-2px); } }
@keyframes hr-walk { 0% { transform: translateX(0) translateY(0) rotate(-2deg); } 25% { transform: translateX(4px) translateY(-1px) rotate(1deg); } 50% { transform: translateX(8px) translateY(0) rotate(-1deg); } 75% { transform: translateX(12px) translateY(-1px) rotate(2deg); } 100% { transform: translateX(16px) translateY(0) rotate(0); } }
@keyframes hr-shadow { 0%,100% { opacity: 0.8; transform: scaleX(1); } 50% { opacity: 0.6; transform: scaleX(0.8); } }
@keyframes hr-butterfly { 0% { transform: translate(0,0) rotate(0deg); } 25% { transform: translate(15px,-10px) rotate(15deg); } 50% { transform: translate(30px,0) rotate(0deg); } 75% { transform: translate(15px,10px) rotate(-15deg); } 100% { transform: translate(0,0) rotate(0deg); } }

/* Scene: secret-wedding-planned – tense, bright interior */
.scn-secret-wedding-planned {
  background: linear-gradient(180deg, #3a4045 0%, #6a6e72 30%, #8a8e92 60%, #b8bcbe 100%),
              radial-gradient(ellipse at 50% 100%, #ccd0d3 0%, transparent 60%);
}
.scn-secret-wedding-planned .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 20%;
  background: linear-gradient(180deg, #5a4e3e 0%, #3a2e1e 100%);
  border-radius: 8% 8% 0 0;
  box-shadow: inset 0 6px 12px rgba(0,0,0,0.5);
}
.scn-secret-wedding-planned .wall-left {
  position: absolute; bottom: 20%; left: 0; width: 35%; height: 80%;
  background: linear-gradient(180deg, #d0c8b8 0%, #b8a888 100%);
  border-right: 2px solid #8a7a6a;
  box-shadow: inset -4px 0 8px rgba(0,0,0,0.2);
}
.scn-secret-wedding-planned .wall-right {
  position: absolute; bottom: 20%; right: 0; width: 35%; height: 80%;
  background: linear-gradient(180deg, #d0c8b8 0%, #b8a888 100%);
  border-left: 2px solid #8a7a6a;
  box-shadow: inset 4px 0 8px rgba(0,0,0,0.2);
}
.scn-secret-wedding-planned .door {
  position: absolute; bottom: 20%; left: 38%; width: 24%; height: 60%;
  background: linear-gradient(180deg, #6a4a3a 0%, #3a2a1a 100%);
  border-radius: 4% 4% 0 0;
  box-shadow: inset 0 -4px 8px rgba(0,0,0,0.4), 2px 0 6px rgba(0,0,0,0.3);
  transform-origin: bottom center;
  animation: swp-door 4s ease-in-out infinite alternate;
}
.scn-secret-wedding-planned .window {
  position: absolute; bottom: 50%; right: 10%; width: 20%; height: 30%;
  background: linear-gradient(180deg, #b0c4de 0%, #87CEEB 100%);
  border-radius: 4px;
  box-shadow: inset 0 0 10px rgba(255,255,255,0.3), 0 0 20px rgba(135,206,235,0.2);
  animation: swp-window 3s ease-in-out infinite alternate;
}
.scn-secret-wedding-planned .figure-lucentio {
  position: absolute; bottom: 20%; left: 42%; width: 20px; height: 44px;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: swp-sneak 5s ease-in-out infinite;
}
.scn-secret-wedding-planned .figure-bianca {
  position: absolute; bottom: 20%; left: 48%; width: 18px; height: 40px;
  background: linear-gradient(180deg, #3a2a1a 0%, #2a1a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: swp-sneak 5s ease-in-out infinite 0.5s;
}
.scn-secret-wedding-planned .candlelight {
  position: absolute; bottom: 25%; left: 68%; width: 8px; height: 20px;
  background: radial-gradient(ellipse at 50% 100%, #ffd700 0%, #ff8c00 60%, transparent 100%);
  border-radius: 50% 50% 0 0;
  box-shadow: 0 0 30px 15px rgba(255,140,0,0.5);
  animation: swp-candle 2s ease-in-out infinite alternate;
}
@keyframes swp-door { 0% { transform: scaleX(1); } 50% { transform: scaleX(0.98) translateZ(0); } 100% { transform: scaleX(1) rotateY(2deg); } }
@keyframes swp-window { 0% { opacity: 0.8; box-shadow: 0 0 10px rgba(135,206,235,0.2); } 100% { opacity: 1; box-shadow: 0 0 30px rgba(135,206,235,0.4); } }
@keyframes swp-sneak { 0% { transform: translateX(0) translateY(0); } 25% { transform: translateX(2px) translateY(-1px) rotate(1deg); } 50% { transform: translateX(4px) translateY(0) rotate(-1deg); } 75% { transform: translateX(6px) translateY(-1px) rotate(1deg); } 100% { transform: translateX(8px) translateY(0) rotate(0); } }
@keyframes swp-candle { 0% { opacity: 0.9; transform: scaleY(1); } 50% { opacity: 1; transform: scaleY(1.1) scaleX(0.9); } 100% { opacity: 0.85; transform: scaleY(1); } }

/* Scene: knocking-window – tense exterior with bright window */
.scn-knocking-window {
  background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 40%, #4a4a5a 70%, #5a5a6a 100%),
              radial-gradient(ellipse at 50% 100%, #6a6a7a 0%, transparent 60%);
}
.scn-knocking-window .building-face {
  position: absolute; bottom: 0; left: 10%; right: 10%; height: 80%;
  background: linear-gradient(180deg, #6a5a4a 0%, #4a3a2a 100%);
  border-radius: 8% 8% 0 0;
  box-shadow: inset 0 8px 20px rgba(0,0,0,0.5);
}
.scn-knocking-window .window-frame {
  position: absolute; bottom: 40%; left: 35%; width: 28%; height: 35%;
  background: linear-gradient(180deg, #8a7a6a 0%, #6a5a4a 100%);
  border-radius: 6px;
  box-shadow: inset 0 0 0 4px #5a4a3a, 0 4px 8px rgba(0,0,0,0.4);
}
.scn-knocking-window .window-glass {
  position: absolute; bottom: 41%; left: 36.5%; width: 25%; height: 32%;
  background: radial-gradient(ellipse at 50% 50%, #f5deb3 0%, #ffd700 60%, #ffa500 100%);
  border-radius: 4px;
  box-shadow: 0 0 40px 20px rgba(255,215,0,0.6);
  animation: kw-glow 2s ease-in-out infinite alternate;
}
.scn-knocking-window .pedant-figure {
  position: absolute; bottom: 43%; left: 39%; width: 18px; height: 30px;
  background: linear-gradient(180deg, #2a1f1a 0%, #1a0f0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: kw-look 4s ease-in-out infinite;
}
.scn-knocking-window .knocker-arm {
  position: absolute; bottom: 20%; left: 12%; width: 20px; height: 30px;
  background: linear-gradient(180deg, #8a7a6a 0%, #4a3a2a 100%);
  border-radius: 50% 50% 40% 40% / 40% 40% 60% 60%;
  transform-origin: top center;
  animation: kw-knock 1s ease-in-out infinite;
}
.scn-knocking-window .lantern-light {
  position: absolute; bottom: 18%; left: 8%; width: 12px; height: 12px;
  background: radial-gradient(circle, #ffd700 0%, #ff8c00 60%, transparent 100%);
  border-radius: 50%;
  box-shadow: 0 0 30px 15px rgba(255,140,0,0.5);
  animation: kw-lantern 3s ease-in-out infinite alternate;
}
@keyframes kw-glow { 0% { opacity: 0.8; box-shadow: 0 0 20px 10px rgba(255,215,0,0.4); } 50% { opacity: 1; box-shadow: 0 0 50px 25px rgba(255,215,0,0.7); } 100% { opacity: 0.9; box-shadow: 0 0 30px 15px rgba(255,215,0,0.5); } }
@keyframes kw-look { 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 kw-knock { 0% { transform: rotate(0deg); } 25% { transform: rotate(15deg); } 50% { transform: rotate(0deg); } 75% { transform: rotate(-15deg); } 100% { transform: rotate(0deg); } }
@keyframes kw-lantern { 0% { opacity: 0.8; transform: scale(1); } 100% { opacity: 1; transform: scale(1.2); } }

/* Scene: confusion-revealed – tense church interior, bright */
.scn-confusion-revealed {
  background: linear-gradient(180deg, #8a8280 0%, #b0a8a0 30%, #d0c8c0 60%, #e8e0d8 100%),
              radial-gradient(ellipse at 50% 80%, #f0e8e0 0%, transparent 60%);
}
.scn-confusion-revealed .church-arch {
  position: absolute; top: 0; left: 10%; right: 10%; height: 30%;
  background: linear-gradient(180deg, #b0a898 0%, #8a8278 100%);
  border-radius: 50% 50% 0 0 / 100% 100% 0 0;
  box-shadow: inset 0 -4px 8px rgba(0,0,0,0.2);
}
.scn-confusion-revealed .pillar-left {
  position: absolute; bottom: 0; left: 12%; width: 6%; height: 90%;
  background: linear-gradient(90deg, #a09888 0%, #c8b8a8 50%, #a09888 100%);
  border-radius: 4px;
  box-shadow: 2px 0 8px rgba(0,0,0,0.2);
}
.scn-confusion-revealed .pillar-right {
  position: absolute; bottom: 0; right: 12%; width: 6%; height: 90%;
  background: linear-gradient(90deg, #a09888 0%, #c8b8a8 50%, #a09888 100%);
  border-radius: 4px;
  box-shadow: -2px 0 8px rgba(0,0,0,0.2);
}
.scn-confusion-revealed .figure-vincentio {
  position: absolute; bottom: 15%; left: 40%; width: 22px; height: 48px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0f0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: cr-point 3s ease-in-out infinite;
}
.scn-confusion-revealed .figure-biondello {
  position: absolute; bottom: 12%; left: 55%; width: 20px; height: 42px;
  background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: cr-flinch 2s ease-in-out infinite;
}
.scn-confusion-revealed .figure-lucentio-back {
  position: absolute; bottom: 18%; left: 30%; width: 20px; height: 44px;
  background: linear-gradient(180deg, #1a2a1a 0%, #0a1a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: cr-sway 4s ease-in-out infinite;
}
.scn-confusion-revealed .confusion-shatter {
  position: absolute; top: 5%; left: 20%; width: 60%; height: 60%;
  background: radial-gradient(ellipse at 50% 50%, rgba(255,255,255,0.3) 0%, transparent 70%);
  filter: blur(8px);
  animation: cr-shatter 5s ease-in-out infinite;
}
@keyframes cr-point { 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 cr-flinch { 0% { transform: translateX(0) scale(1); } 25% { transform: translateX(-4px) scale(0.95); } 50% { transform: translateX(0) scale(1); } 75% { transform: translateX(2px) scale(0.95); } 100% { transform: translateX(0) scale(1); } }
@keyframes cr-sway { 0% { transform: rotate(0deg); } 25% { transform: rotate(-2deg); } 50% { transform: rotate(0deg); } 75% { transform: rotate(2deg); } 100% { transform: rotate(0deg); } }
@keyframes cr-shatter { 0% { opacity: 0.2; transform: scale(1); } 50% { opacity: 0.6; transform: scale(1.1); } 100% { opacity: 0.2; transform: scale(1); } }

/* confrontation-crescendo */
.scn-confrontation-crescendo {
  background: 
    linear-gradient(180deg, #c4a87c 0%, #8c6e4e 40%, #3a2a1a 100%),
    radial-gradient(ellipse at 50% 30%, #e8d4a8 0%, transparent 60%);
}
.scn-confrontation-crescendo .interior-wall {
  position: absolute; inset: 0 0 25% 0;
  background: linear-gradient(180deg, #d4bc9c 0%, #a08060 100%);
  box-shadow: inset 0 10px 30px rgba(0,0,0,0.3);
}
.scn-confrontation-crescendo .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 25%;
  background: linear-gradient(180deg, #6a5040 0%, #4a3828 100%);
  border-top: 4px solid #8a6a50;
}
.scn-confrontation-crescendo .arch {
  position: absolute; top: 5%; left: 50%; width: 60%; height: 40%;
  transform: translateX(-50%);
  border-radius: 50% 50% 0 0 / 80% 80% 0 0;
  border: 6px solid #8a6a50;
  background: transparent;
  box-shadow: inset 0 0 0 1000px rgba(60,40,20,0.6);
  animation: cc-arch 6s ease-in-out infinite alternate;
}
.scn-confrontation-crescendo .figure-left {
  position: absolute; bottom: 18%; left: 25%; width: 28px; height: 60px;
  background: linear-gradient(180deg, #5a3a2a 0%, #2a1a0a 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: cc-fleft 2s ease-in-out infinite;
}
.scn-confrontation-crescendo .figure-right {
  position: absolute; bottom: 18%; right: 25%; width: 30px; height: 64px;
  background: linear-gradient(180deg, #4a2a1a 0%, #1a0a00 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: cc-fright 2.4s ease-in-out infinite;
}
.scn-confrontation-crescendo .cloak-drape {
  position: absolute; bottom: 18%; left: 18%; width: 40px; height: 50px;
  background: linear-gradient(135deg, #5e1a1d 0%, #3a0a0a 100%); /* burgundy */
  border-radius: 0 60% 40% 0 / 0 50% 50% 0;
  transform: rotate(10deg);
  animation: cc-cloak 3s ease-in-out infinite alternate;
}
.scn-confrontation-crescendo .hat-shadow {
  position: absolute; top: 12%; right: 28%; width: 40px; height: 16px;
  background: #2a1a0a;
  border-radius: 50% 50% 20% 20% / 80% 80% 20% 20%;
  box-shadow: 0 4px 8px rgba(0,0,0,0.5);
  animation: cc-hat 4s ease-in-out infinite;
}
.scn-confrontation-crescendo .light-ray {
  position: absolute; top: 0; left: 40%; width: 20%; height: 50%;
  background: linear-gradient(180deg, rgba(255,230,180,0.4) 0%, transparent 100%);
  clip-path: polygon(0 0, 100% 0, 80% 100%, 20% 100%);
  animation: cc-light 5s ease-in-out infinite alternate;
}
@keyframes cc-arch { 0% { transform: translateX(-50%) scaleY(1); } 50% { transform: translateX(-50%) scaleY(1.02); } 100% { transform: translateX(-50%) scaleY(0.98); } }
@keyframes cc-fleft { 0%,100% { transform: translateX(0) rotate(0); } 50% { transform: translateX(3px) rotate(-3deg); } }
@keyframes cc-fright { 0%,100% { transform: translateX(0) rotate(0); } 50% { transform: translateX(-3px) rotate(3deg); } }
@keyframes cc-cloak { 0% { transform: rotate(10deg) translateY(0); } 100% { transform: rotate(12deg) translateY(-2px); } }
@keyframes cc-hat { 0%,100% { transform: translateY(0) rotate(-2deg); } 50% { transform: translateY(2px) rotate(2deg); } }
@keyframes cc-light { 0% { opacity: 0.6; } 50% { opacity: 0.9; } 100% { opacity: 0.5; } }

/* street-identity-confusion */
.scn-street-identity-confusion {
  background:
    linear-gradient(180deg, #c8d8e8 0%, #a0b8d0 30%, #f0e8d0 60%, #e0d0a0 100%),
    radial-gradient(ellipse at 70% 20%, #ffeedd 0%, transparent 50%);
}
.scn-street-identity-confusion .sky {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #b8d0e8 0%, #e0d8c0 100%);
  animation: sic-sky 20s ease-in-out infinite alternate;
}
.scn-street-identity-confusion .sun {
  position: absolute; top: 8%; left: 65%; width: 30px; height: 30px;
  background: radial-gradient(circle, #fff8e0 0%, #ffd080 60%, transparent 80%);
  border-radius: 50%;
  box-shadow: 0 0 50px 20px rgba(255,208,128,0.4);
  animation: sic-sun 8s ease-in-out infinite alternate;
}
.scn-street-identity-confusion .building-left {
  position: absolute; bottom: 30%; left: 5%; width: 35%; height: 45%;
  background: linear-gradient(180deg, #c09070 0%, #907050 100%);
  border-radius: 8% 8% 0 0;
  box-shadow: inset -10px 0 20px rgba(0,0,0,0.3);
}
.scn-street-identity-confusion .building-right {
  position: absolute; bottom: 30%; right: 5%; width: 30%; height: 55%;
  background: linear-gradient(180deg, #a08060 0%, #685040 100%);
  border-radius: 8% 8% 0 0;
  box-shadow: inset 10px 0 20px rgba(0,0,0,0.4);
}
.scn-street-identity-confusion .street {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #b0a090 0%, #8a7a6a 100%);
  border-top: 3px solid #7a6a5a;
}
.scn-street-identity-confusion .figure-a {
  position: absolute; bottom: 25%; left: 30%; width: 22px; height: 50px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0a00 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: sic-figa 3s ease-in-out infinite;
}
.scn-street-identity-confusion .figure-b {
  position: absolute; bottom: 25%; right: 30%; width: 24px; height: 54px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: sic-figb 3.5s ease-in-out infinite;
}
.scn-street-identity-confusion .shadow-sharp {
  position: absolute; bottom: 25%; left: 25%; width: 60px; height: 10px;
  background: rgba(0,0,0,0.3);
  border-radius: 50%;
  filter: blur(2px);
  animation: sic-shadow 4s ease-in-out infinite alternate;
}
@keyframes sic-sky { 0% { opacity: 0.8; } 50% { opacity: 1; } 100% { opacity: 0.9; } }
@keyframes sic-sun { 0% { transform: translateX(0) scale(1); } 50% { transform: translateX(5px) scale(1.05); } 100% { transform: translateX(-3px) scale(0.95); } }
@keyframes sic-figa { 0%,100% { transform: translateX(0) rotate(0); } 50% { transform: translateX(4px) rotate(-2deg); } }
@keyframes sic-figb { 0%,100% { transform: translateX(0) rotate(0); } 50% { transform: translateX(-4px) rotate(2deg); } }
@keyframes sic-shadow { 0% { transform: translateX(0) scaleX(1); } 100% { transform: translateX(3px) scaleX(0.8); } }

/* lucentio-revelation */
.scn-lucentio-revelation {
  background:
    linear-gradient(180deg, #f0e8c8 0%, #d8c8a0 40%, #b8a070 100%),
    radial-gradient(ellipse at 50% 20%, #fff8e0 0%, transparent 60%);
}
.scn-lucentio-revelation .garden-sky {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(180deg, #e0e8f0 0%, #f0f0e0 100%);
  animation: lr-sky 15s ease-in-out infinite alternate;
}
.scn-lucentio-revelation .ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 40%;
  background: linear-gradient(180deg, #a8b090 0%, #7a8a6a 100%);
  border-top: 2px solid #8a9a7a;
}
.scn-lucentio-revelation .archway {
  position: absolute; bottom: 20%; left: 50%; width: 50%; height: 50%;
  transform: translateX(-50%);
  border: 4px solid #8a7a5a;
  border-radius: 50% 50% 0 0 / 90% 90% 0 0;
  background: transparent;
  box-shadow: inset 0 0 0 1000px rgba(60,50,30,0.3);
  animation: lr-arch 8s ease-in-out infinite alternate;
}
.scn-lucentio-revelation .kneeling-figure {
  position: absolute; bottom: 20%; left: 38%; width: 20px; height: 40px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a1008 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: lr-kneel 4s ease-in-out infinite;
}
.scn-lucentio-revelation .standing-figure {
  position: absolute; bottom: 18%; right: 35%; width: 24px; height: 56px;
  background: linear-gradient(180deg, #5a4a3a 0%, #2a1a0a 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: lr-stand 3s ease-in-out infinite;
}
.scn-lucentio-revelation .light-beam {
  position: absolute; top: 0; left: 40%; width: 20%; height: 40%;
  background: linear-gradient(180deg, rgba(255,240,200,0.5) 0%, transparent 100%);
  clip-path: polygon(45% 0, 55% 0, 60% 100%, 40% 100%);
  animation: lr-beam 6s ease-in-out infinite alternate;
}
.scn-lucentio-revelation .bloom {
  position: absolute; top: 8%; left: 48%; width: 12px; height: 12px;
  background: radial-gradient(circle, #ffd080 0%, #fff0c0 40%, transparent 70%);
  border-radius: 50%;
  box-shadow: 0 0 30px 10px rgba(255,208,128,0.3);
  animation: lr-bloom 5s ease-in-out infinite alternate;
}
@keyframes lr-sky { 0% { opacity: 0.9; } 50% { opacity: 1; } 100% { opacity: 0.8; } }
@keyframes lr-arch { 0% { transform: translateX(-50%) scaleY(1); } 50% { transform: translateX(-50%) scaleY(1.02); } 100% { transform: translateX(-50%) scaleY(0.98); } }
@keyframes lr-kneel { 0%,100% { transform: translateY(0) rotate(0); } 50% { transform: translateY(-2px) rotate(-2deg); } }
@keyframes lr-stand { 0%,100% { transform: translateX(0) rotate(0); } 50% { transform: translateX(2px) rotate(2deg); } }
@keyframes lr-beam { 0% { opacity: 0.4; } 50% { opacity: 0.8; } 100% { opacity: 0.5; } }
@keyframes lr-bloom { 0% { transform: scale(1); opacity: 0.6; } 50% { transform: scale(1.2); opacity: 0.9; } 100% { transform: scale(0.9); opacity: 0.5; } }

/* street-resolutions */
.scn-street-resolutions {
  background:
    linear-gradient(180deg, #b8c8d8 0%, #a0b0c0 30%, #d8c8a8 60%, #b8a888 100%),
    radial-gradient(ellipse at 60% 15%, #f0e8d8 0%, transparent 50%);
}
.scn-street-resolutions .street-bg {
  position: absolute; inset: 0 0 25% 0;
  background: linear-gradient(180deg, #c0d0e0 0%, #c8b8a0 100%);
  animation: sr-bg 18s ease-in-out infinite alternate;
}
.scn-street-resolutions .cobbles {
  position: absolute; bottom: 0; left: 0; right: 0; height: 25%;
  background: repeating-conic-gradient(#7a6a5a 0% 25%, transparent 0% 50%) 0 0 / 20px 20px;
  opacity: 0.4;
  animation: sr-cobble 4s linear infinite;
}
.scn-street-resolutions .wall-left {
  position: absolute; bottom: 25%; left: 0; width: 20%; height: 50%;
  background: linear-gradient(180deg, #907050 0%, #685040 100%);
  border-radius: 0 4% 0 0;
  box-shadow: 4px 0 10px rgba(0,0,0,0.3);
}
.scn-street-resolutions .wall-right {
  position: absolute; bottom: 25%; right: 0; width: 20%; height: 60%;
  background: linear-gradient(180deg, #a08060 0%, #685040 100%);
  border-radius: 4% 0 0 0;
  box-shadow: -4px 0 10px rgba(0,0,0,0.3);
}
.scn-street-resolutions .aggressor {
  position: absolute; bottom: 18%; left: 28%; width: 26px; height: 58px;
  background: linear-gradient(180deg, #2a1a0a 0%, #0a0000 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: sr-aggressor 2s ease-in-out infinite;
}
.scn-street-resolutions .victim {
  position: absolute; bottom: 18%; right: 28%; width: 22px; height: 50px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0a00 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: sr-victim 2.5s ease-in-out infinite;
}
.scn-street-resolutions .raised-arm {
  position: absolute; bottom: 38%; left: 32%; width: 16px; height: 30px;
  background: linear-gradient(180deg, #2a1a0a 0%, #0a0000 100%);
  border-radius: 30% 30% 20% 20% / 50% 50% 30% 30%;
  transform: rotate(-45deg);
  transform-origin: bottom center;
  animation: sr-arm 1.8s ease-in-out infinite;
}
.scn-street-resolutions .blade-gleam {
  position: absolute; bottom: 42%; left: 36%; width: 6px; height: 22px;
  background: linear-gradient(180deg, #e0e0e0 0%, #a0a8b0 100%);
  border-radius: 0 0 50% 50% / 0 0 80% 80%;
  box-shadow: 0 0 8px 2px rgba(200,200,220,0.6);
  animation: sr-blade 0.6s ease-in-out infinite alternate;
}
@keyframes sr-bg { 0% { opacity: 0.8; } 50% { opacity: 1; } 100% { opacity: 0.7; } }
@keyframes sr-cobble { 0% { background-position: 0 0; } 100% { background-position: 20px 0; } }
@keyframes sr-aggressor { 0%,100% { transform: translateX(0) rotate(0); } 50% { transform: translateX(4px) rotate(3deg); } }
@keyframes sr-victim { 0%,100% { transform: translateX(0) rotate(0); } 50% { transform: translateX(-4px) rotate(-2deg); } }
@keyframes sr-arm { 0% { transform: rotate(-35deg) translateY(0); } 50% { transform: rotate(-55deg) translateY(-3px); } 100% { transform: rotate(-40deg) translateY(0); } }
@keyframes sr-blade { 0% { opacity: 0.6; transform: rotate(-5deg); } 100% { opacity: 1; transform: rotate(5deg); } }

.scn-gown-defence {
  background: linear-gradient(135deg, #f5e6c8 0%, #e0c9a0 40%, #c8b080 100%), 
              radial-gradient(ellipse at 70% 40%, #fff 0%, transparent 60%);
}
.scn-gown-defence .bg-bright {
  position: absolute; inset: 0; 
  background: linear-gradient(180deg, #ffe8d0 0%, #e8d0b0 100%);
  animation: gd-flicker 8s ease-in-out infinite alternate;
}
.scn-gown-defence .wall-shadow {
  position: absolute; inset: 20% 0 0 0; 
  background: linear-gradient(180deg, rgba(0,0,0,0.15) 0%, transparent 100%);
  animation: gd-shadow-pulse 5s ease-in-out infinite;
}
.scn-gown-defence .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 25%;
  background: linear-gradient(0deg, #b09070 0%, #d0b890 100%);
  border-radius: 30% 70% 0 0 / 20% 40% 0 0;
}
.scn-gown-defence .window-light {
  position: absolute; top: 10%; left: 20%; width: 40%; height: 50%;
  background: radial-gradient(ellipse at center, rgba(255,255,220,0.6) 0%, transparent 70%);
  filter: blur(15px);
  animation: gd-light-sweep 12s ease-in-out infinite alternate;
}
.scn-gown-defence .figure-defiant {
  position: absolute; bottom: 20%; left: 35%; width: 30px; height: 50px;
  background: linear-gradient(135deg, #3a2a1a 0%, #1a1000 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: gd-defiant-pose 6s ease-in-out infinite;
}
.scn-gown-defence .gown-held {
  position: absolute; bottom: 22%; left: 42%; width: 24px; height: 40px;
  background: linear-gradient(180deg, #c8a878 0%, #a08050 100%);
  border-radius: 20% 20% 30% 30%;
  transform-origin: bottom left;
  animation: gd-gown-wave 4s ease-in-out infinite alternate;
}
.scn-gown-defence .shadow-figure {
  position: absolute; bottom: 20%; left: 70%; width: 40px; height: 60px;
  background: rgba(0,0,0,0.15);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  filter: blur(8px);
  animation: gd-shadow-sway 7s ease-in-out infinite;
}
.scn-gown-defence .thread-snag {
  position: absolute; bottom: 30%; left: 70%; width: 6px; height: 6px;
  background: #d0b080;
  border-radius: 50%;
  animation: gd-thread-twitch 2s ease-in-out infinite;
}
@keyframes gd-flicker {
  0% { opacity: 0.9; } 30% { opacity: 1; } 60% { opacity: 0.85; } 100% { opacity: 0.95; }
}
@keyframes gd-shadow-pulse {
  0% { opacity: 0.3; transform: scaleX(1); } 50% { opacity: 0.6; transform: scaleX(1.05); } 100% { opacity: 0.3; transform: scaleX(1); }
}
@keyframes gd-light-sweep {
  0% { transform: translateX(-10px) scaleX(0.95); } 50% { transform: translateX(5px) scaleX(1.05); } 100% { transform: translateX(-5px) scaleX(1); }
}
@keyframes gd-defiant-pose {
  0% { transform: translateX(0) rotate(-2deg); } 25% { transform: translateX(3px) rotate(1deg); } 50% { transform: translateX(0) rotate(0deg); } 75% { transform: translateX(-2px) rotate(2deg); } 100% { transform: translateX(0) rotate(-1deg); }
}
@keyframes gd-gown-wave {
  0% { transform: rotate(0deg) scaleY(1); } 50% { transform: rotate(5deg) scaleY(1.02); } 100% { transform: rotate(0deg) scaleY(1); }
}
@keyframes gd-shadow-sway {
  0% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-5px) rotate(3deg); } 100% { transform: translateY(0) rotate(0deg); }
}
@keyframes gd-thread-twitch {
  0% { transform: translate(0,0) scale(1); } 25% { transform: translate(2px,-2px) scale(1.2); } 50% { transform: translate(-1px,1px) scale(0.9); } 75% { transform: translate(1px,-1px) scale(1.1); } 100% { transform: translate(0,0) scale(1); }
}

.scn-grumio-testifies {
  background: linear-gradient(180deg, #f0e6d0 0%, #dcc9a6 40%, #c4ae8a 100%),
              radial-gradient(ellipse at 30% 60%, #fff 0%, transparent 50%);
}
.scn-grumio-testifies .bg-warm {
  position: absolute; inset: 0;
  background: linear-gradient(135deg, #f5e8d0 0%, #e0ccb0 100%);
  animation: gt-warm-pulse 10s ease-in-out infinite alternate;
}
.scn-grumio-testifies .floor-tiles {
  position: absolute; bottom: 0; left: 0; right: 0; height: 20%;
  background: repeating-linear-gradient(90deg, #b09070 0px, #b09070 20px, #c0a080 20px, #c0a080 40px);
  border-radius: 10% 90% 0 0 / 30% 70% 0 0;
}
.scn-grumio-testifies .table-cloth {
  position: absolute; bottom: 18%; left: 50%; transform: translateX(-50%); width: 80px; height: 30px;
  background: linear-gradient(180deg, #c8b898 0%, #a89070 100%);
  border-radius: 10% 10% 20% 20%;
  animation: gt-table-bounce 6s ease-in-out infinite;
}
.scn-grumio-testifies .figure-grumio {
  position: absolute; bottom: 20%; left: 30%; width: 22px; height: 44px;
  background: linear-gradient(135deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: gt-grumio-gesture 4s ease-in-out infinite;
}
.scn-grumio-testifies .figure-tailor {
  position: absolute; bottom: 22%; left: 55%; width: 20px; height: 42px;
  background: linear-gradient(135deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: gt-tailor-flinch 5s ease-in-out infinite;
}
.scn-grumio-testifies .needle-bounce {
  position: absolute; bottom: 30%; left: 45%; width: 4px; height: 12px;
  background: #c0c0c0;
  border-radius: 50% 50% 0 0;
  animation: gt-needle-bounce 1.5s ease-in-out infinite;
}
.scn-grumio-testifies .thread-coil {
  position: absolute; bottom: 25%; left: 40%; width: 10px; height: 10px;
  background: #b08040;
  border-radius: 50%;
  animation: gt-thread-spin 3s linear infinite;
}
@keyframes gt-warm-pulse {
  0% { opacity: 0.9; } 50% { opacity: 1; } 100% { opacity: 0.95; }
}
@keyframes gt-table-bounce {
  0% { transform: translateX(-50%) translateY(0); } 30% { transform: translateX(-50%) translateY(-3px); } 60% { transform: translateX(-50%) translateY(0); } 100% { transform: translateX(-50%) translateY(-2px); }
}
@keyframes gt-grumio-gesture {
  0% { transform: translateX(0) rotate(-5deg); } 25% { transform: translateX(5px) rotate(3deg); } 50% { transform: translateX(0) rotate(0deg); } 75% { transform: translateX(-3px) rotate(-2deg); } 100% { transform: translateX(0) rotate(5deg); }
}
@keyframes gt-tailor-flinch {
  0% { transform: translateX(0) scaleY(1); } 20% { transform: translateX(-3px) scaleY(0.95); } 40% { transform: translateX(2px) scaleY(1.02); } 60% { transform: translateX(-1px) scaleY(1); } 80% { transform: translateX(1px) scaleY(0.98); } 100% { transform: translateX(0) scaleY(1); }
}
@keyframes gt-needle-bounce {
  0% { transform: translateY(0) rotate(0deg); } 25% { transform: translateY(-6px) rotate(15deg); } 50% { transform: translateY(0) rotate(30deg); } 75% { transform: translateY(-4px) rotate(15deg); } 100% { transform: translateY(0) rotate(0deg); }
}
@keyframes gt-thread-spin {
  0% { transform: rotate(0deg); } 100% { transform: rotate(360deg); }
}

.scn-note-reading-farce {
  background: linear-gradient(135deg, #f0e2c8 0%, #ddd0b8 40%, #c0b098 100%),
              radial-gradient(ellipse at 20% 30%, #fff 0%, transparent 60%);
}
.scn-note-reading-farce .bg-light {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, #ffe8d0 0%, #e8d8c0 100%);
  animation: nr-soft-pulse 12s ease-in-out infinite alternate;
}
.scn-note-reading-farce .wall-panel {
  position: absolute; top: 10%; left: 10%; width: 80%; height: 60%;
  border: 2px solid #b09878;
  border-radius: 8px;
  background: linear-gradient(135deg, #e8dcc8 0%, #d0c0a8 100%);
  animation: nr-panel-breathe 15s ease-in-out infinite;
}
.scn-note-reading-farce .figure-reader {
  position: absolute; bottom: 25%; left: 25%; width: 28px; height: 48px;
  background: linear-gradient(135deg, #3a2a1a 0%, #1a1000 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: nr-reader-rock 5s ease-in-out infinite;
}
.scn-note-reading-farce .note-page {
  position: absolute; bottom: 30%; left: 48%; width: 40px; height: 50px;
  background: linear-gradient(180deg, #f5f0e0 0%, #e0d8c0 100%);
  border-radius: 4px;
  box-shadow: 0 2px 6px rgba(0,0,0,0.2);
  transform-origin: left center;
  animation: nr-page-wag 4s ease-in-out infinite alternate;
}
.scn-note-reading-farce .sleeve-dangling {
  position: absolute; bottom: 29%; left: 52%; width: 10px; height: 20px;
  background: linear-gradient(180deg, #7a6a4a 0%, #5a4a2a 100%);
  border-radius: 30% 30% 50% 50%;
  transform-origin: top center;
  animation: nr-sleeve-sway 6s ease-in-out infinite;
}
.scn-note-reading-farce .needle-poke {
  position: absolute; bottom: 28%; left: 60%; width: 3px; height: 8px;
  background: #b0b0b0;
  border-radius: 0 0 50% 50%;
  animation: nr-needle-jab 2s ease-in-out infinite;
}
.scn-note-reading-farce .lamp-glow {
  position: absolute; top: 15%; left: 15%; width: 30px; height: 30px;
  background: radial-gradient(circle, #ffd080 0%, transparent 60%);
  border-radius: 50%;
  animation: nr-lamp-flicker 3s ease-in-out infinite alternate;
}
@keyframes nr-soft-pulse {
  0% { opacity: 0.9; } 50% { opacity: 1; } 100% { opacity: 0.95; }
}
@keyframes nr-panel-breathe {
  0% { transform: scale(1); } 50% { transform: scale(1.01); } 100% { transform: scale(1); }
}
@keyframes nr-reader-rock {
  0% { transform: translateX(0) rotate(-3deg); } 25% { transform: translateX(2px) rotate(2deg); } 50% { transform: translateX(0) rotate(0deg); } 75% { transform: translateX(-2px) rotate(-2deg); } 100% { transform: translateX(0) rotate(3deg); }
}
@keyframes nr-page-wag {
  0% { transform: rotate(0deg) translateX(0); } 50% { transform: rotate(10deg) translateX(2px); } 100% { transform: rotate(0deg) translateX(0); }
}
@keyframes nr-sleeve-sway {
  0% { transform: rotate(0deg); } 50% { transform: rotate(15deg); } 100% { transform: rotate(0deg); }
}
@keyframes nr-needle-jab {
  0% { transform: translateY(0) rotate(0deg); } 25% { transform: translateY(-4px) rotate(10deg); } 50% { transform: translateY(0) rotate(20deg); } 75% { transform: translateY(-2px) rotate(10deg); } 100% { transform: translateY(0) rotate(0deg); }
}
@keyframes nr-lamp-flicker {
  0% { opacity: 0.7; transform: scale(0.95); } 50% { opacity: 1; transform: scale(1.05); } 100% { opacity: 0.8; transform: scale(1); }
}

.scn-tailor-threats {
  background: linear-gradient(135deg, #f5e6c8 0%, #e0cca8 40%, #c8b088 100%),
              radial-gradient(ellipse at 60% 70%, #fff 0%, transparent 50%);
}
.scn-tailor-threats .bg-bright {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, #ffe8d0 0%, #e8d0b0 100%);
  animation: tt-light-pulse 9s ease-in-out infinite alternate;
}
.scn-tailor-threats .floor-stripes {
  position: absolute; bottom: 0; left: 0; right: 0; height: 22%;
  background: repeating-linear-gradient(90deg, #b09070 0px, #b09070 15px, #c0a080 15px, #c0a080 30px);
  border-radius: 20% 80% 0 0 / 30% 50% 0 0;
}
.scn-tailor-threats .figure-tailor-threat {
  position: absolute; bottom: 22%; left: 58%; width: 24px; height: 46px;
  background: linear-gradient(135deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: tt-tailor-lunge 5s ease-in-out infinite;
}
.scn-tailor-threats .figure-petruchio {
  position: absolute; bottom: 24%; left: 30%; width: 26px; height: 48px;
  background: linear-gradient(135deg, #3a2a1a 0%, #1a1000 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: tt-petruchio-stand 7s ease-in-out infinite;
}
.scn-tailor-threats .mete-yard {
  position: absolute; bottom: 28%; left: 55%; width: 8px; height: 50px;
  background: linear-gradient(180deg, #b09878 0%, #806850 100%);
  border-radius: 2px;
  transform-origin: bottom center;
  animation: tt-yard-swing 4s ease-in-out infinite alternate;
}
.scn-tailor-threats .thread-loop {
  position: absolute; bottom: 20%; left: 70%; width: 8px; height: 8px;
  background: #b08040;
  border-radius: 50%;
  animation: tt-thread-wobble 3s ease-in-out infinite;
}
.scn-tailor-threats .shadow-cast {
  position: absolute; bottom: 20%; left: 55%; width: 50px; height: 40px;
  background: rgba(0,0,0,0.12);
  border-radius: 50% 50% 0 0;
  filter: blur(10px);
  animation: tt-shadow-stretch 6s ease-in-out infinite;
}
@keyframes tt-light-pulse {
  0% { opacity: 0.9; } 50% { opacity: 1; } 100% { opacity: 0.95; }
}
@keyframes tt-tailor-lunge {
  0% { transform: translateX(0) rotate(0deg); } 20% { transform: translateX(-5px) rotate(-5deg); } 40% { transform: translateX(2px) rotate(3deg); } 60% { transform: translateX(-2px) rotate(-2deg); } 80% { transform: translateX(3px) rotate(1deg); } 100% { transform: translateX(0) rotate(0deg); }
}
@keyframes tt-petruchio-stand {
  0% { transform: translateY(0) rotate(0deg); } 30% { transform: translateY(-3px) rotate(2deg); } 60% { transform: translateY(0) rotate(-1deg); } 100% { transform: translateY(0) rotate(0deg); }
}
@keyframes tt-yard-swing {
  0% { transform: rotate(0deg); } 50% { transform: rotate(15deg); } 100% { transform: rotate(0deg); }
}
@keyframes tt-thread-wobble {
  0% { transform: translate(0,0) scale(1); } 25% { transform: translate(2px,-2px) scale(1.1); } 50% { transform: translate(-1px,1px) scale(0.9); } 75% { transform: translate(1px,-1px) scale(1.05); } 100% { transform: translate(0,0) scale(1); }
}
@keyframes tt-shadow-stretch {
  0% { transform: scaleX(1); } 50% { transform: scaleX(1.3); } 100% { transform: scaleX(1); }
}

.scn-padua-lucentio-arrival {
  background: linear-gradient(180deg, #87CEEB 0%, #f0e68c 40%, #deb887 70%, #8B4513 100%),
              radial-gradient(ellipse at 50% 120%, #fff8dc 0%, transparent 70%);
}
.scn-padua-lucentio-arrival .sky { position:absolute; inset:0 0 55% 0; background: linear-gradient(180deg, #87CEEB 0%, #b0e0e6 50%, #ffe4b5 100%); animation: pl-sky 15s ease-in-out infinite alternate; }
.scn-padua-lucentio-arrival .sun { position:absolute; top:8%; right:15%; width:60px; height:60px; background: radial-gradient(circle, #fffacd 0%, #ffd700 40%, transparent 70%); border-radius:50%; box-shadow: 0 0 80px 30px rgba(255,215,0,0.5); animation: pl-sun 10s ease-in-out infinite; }
.scn-padua-lucentio-arrival .buildings-bg { position:absolute; bottom:20%; left:0; right:0; height:40%; background: linear-gradient(90deg, #a0522d 0%, #cd853f 30%, #deb887 70%, #a0522d 100%); clip-path: polygon(0% 100%, 5% 20%, 15% 30%, 25% 15%, 35% 25%, 45% 10%, 55% 20%, 65% 5%, 75% 18%, 85% 8%, 95% 22%, 100% 100%); opacity:0.7; animation: pl-buildbg 20s linear infinite; }
.scn-padua-lucentio-arrival .buildings-fg { position:absolute; bottom:18%; left:0; right:0; height:30%; background: linear-gradient(90deg, #8B4513 0%, #a0522d 20%, #cd853f 50%, #8B4513 80%); clip-path: polygon(0% 100%, 10% 40%, 20% 50%, 30% 30%, 40% 45%, 50% 25%, 60% 35%, 70% 15%, 80% 28%, 90% 20%, 100% 45%, 100% 100%); animation: pl-buildfg 25s linear infinite reverse; }
.scn-padua-lucentio-arrival .archway { position:absolute; bottom:18%; left:50%; width:120px; height:120px; transform:translateX(-50%); background: radial-gradient(ellipse at 50% 100%, #2f1e0e 0%, #4a2e1a 60%, transparent 80%); border-radius:40% 40% 10% 10%; box-shadow: inset 0 -20px 30px rgba(0,0,0,0.3); }
.scn-padua-lucentio-arrival .figure { position:absolute; bottom:20%; left:48%; width:20px; height:50px; background: linear-gradient(180deg, #3a2a1a 0%, #1a0f06 100%); border-radius:40% 40% 30% 30% / 60% 60% 40% 40%; transform-origin: bottom center; animation: pl-walk 6s ease-in-out infinite; }
.scn-padua-lucentio-arrival .shadow { position:absolute; bottom:18%; left:47%; width:30px; height:8px; background: rgba(0,0,0,0.3); border-radius:50%; filter:blur(3px); animation: pl-shadow 6s ease-in-out infinite; }
.scn-padua-lucentio-arrival .cloud-a { position:absolute; top:12%; left:10%; width:100px; height:20px; background: rgba(255,255,255,0.6); border-radius:50%; filter:blur(8px); animation: pl-drift-a 40s linear infinite; }
.scn-padua-lucentio-arrival .cloud-b { position:absolute; top:18%; right:8%; width:80px; height:15px; background: rgba(255,255,255,0.4); border-radius:50%; filter:blur(6px); animation: pl-drift-b 55s linear infinite reverse; }

@keyframes pl-sky { 0% { opacity:0.8 } 50% { opacity:1 } 100% { opacity:0.85 } }
@keyframes pl-sun { 0% { transform:scale(1) } 50% { transform:scale(1.05) } 100% { transform:scale(0.95) } }
@keyframes pl-buildbg { 0% { transform:translateX(0) } 100% { transform:translateX(-20px) } }
@keyframes pl-buildfg { 0% { transform:translateX(0) } 100% { transform:translateX(30px) } }
@keyframes pl-walk { 0% { transform:translateX(0) translateY(0) rotate(-2deg) } 25% { transform:translateX(8px) translateY(-2px) rotate(2deg) } 50% { transform:translateX(16px) translateY(0) rotate(-1deg) } 75% { transform:translateX(24px) translateY(-2px) rotate(1deg) } 100% { transform:translateX(32px) translateY(0) rotate(0) } }
@keyframes pl-shadow { 0% { transform:translateX(0) scale(1) } 50% { transform:translateX(8px) scale(0.9) } 100% { transform:translateX(16px) scale(1) } }
@keyframes pl-drift-a { 0% { transform:translateX(-50px) } 100% { transform:translateX(120vw) } }
@keyframes pl-drift-b { 0% { transform:translateX(0) } 100% { transform:translateX(-100vw) } }

.scn-baptista-daughters-intro {
  background: linear-gradient(180deg, #d2b48c 0%, #deb887 40%, #cdaa7d 70%, #8B7D6B 100%),
              radial-gradient(ellipse at 50% 0%, #f5deb3 0%, transparent 70%);
  box-shadow: inset 0 0 100px rgba(0,0,0,0.3);
}
.scn-baptista-daughters-intro .bg-wall { position:absolute; inset:0 40% 0 0; background: linear-gradient(180deg, #c0a060 0%, #a08040 100%); clip-path: polygon(0 0, 100% 0, 90% 100%, 0 100%); animation: bd-wall 10s ease-in-out infinite; }
.scn-baptista-daughters-intro .floor-tiles { position:absolute; bottom:0; left:0; right:0; height:25%; background: repeating-linear-gradient(90deg, #b8a080 0px, #b8a080 10px, #a08060 10px, #a08060 20px); opacity:0.5; perspective: 200px; transform: rotateX(50deg); animation: bd-floor 12s ease-in-out infinite; }
.scn-baptista-daughters-intro .doorway { position:absolute; bottom:15%; left:50%; width:100px; height:160px; transform:translateX(-50%); background: radial-gradient(ellipse at 50% 100%, #4a3a2a 0%, #2a1a0a 100%); border-radius:30% 30% 5% 5%; box-shadow: inset 0 0 20px rgba(0,0,0,0.6); }
.scn-baptista-daughters-intro .baptista { position:absolute; bottom:18%; left:35%; width:22px; height:60px; background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%); border-radius:40% 40% 30% 30% / 50% 50% 40% 40%; animation: bd-bob 5s ease-in-out infinite; }
.scn-baptista-daughters-intro .katharina { position:absolute; bottom:18%; left:52%; width:20px; height:55px; background: linear-gradient(180deg, #6a3a3a 0%, #4a1a1a 100%); border-radius:45% 45% 35% 35% / 55% 55% 45% 45%; animation: bd-bob 6s ease-in-out infinite 1s; }
.scn-baptista-daughters-intro .bianca { position:absolute; bottom:18%; left:60%; width:18px; height:52px; background: linear-gradient(180deg, #b0a0c0 0%, #806090 100%); border-radius:40% 40% 30% 30% / 50% 50% 40% 40%; animation: bd-bob 5.5s ease-in-out infinite 0.5s; }
.scn-baptista-daughters-intro .candle { position:absolute; bottom:32%; left:55%; width:4px; height:15px; background: #f0d080; border-radius:40%; box-shadow: 0 0 20px 6px rgba(240,208,128,0.6); animation: bd-candle 2s ease-in-out infinite alternate; }
.scn-baptista-daughters-intro .shadow-stripe { position:absolute; bottom:0; left:0; right:0; height:20%; background: linear-gradient(0deg, rgba(0,0,0,0.4) 0%, transparent 100%); animation: bd-shadow 8s ease-in-out infinite; }

@keyframes bd-wall { 0% { opacity:0.9 } 50% { opacity:1 } 100% { opacity:0.85 } }
@keyframes bd-floor { 0% { background-position:0 0 } 50% { background-position:40px 0 } 100% { background-position:0 0 } }
@keyframes bd-bob { 0% { transform:translateY(0) rotate(0deg) } 50% { transform:translateY(-3px) rotate(0.5deg) } 100% { transform:translateY(0) rotate(0deg) } }
@keyframes bd-candle { 0% { transform:scaleY(1) opacity:0.8 } 50% { transform:scaleY(1.1) opacity:1 } 100% { transform:scaleY(0.9) opacity:0.7 } }
@keyframes bd-shadow { 0% { opacity:0.5 } 50% { opacity:0.7 } 100% { opacity:0.5 } }

.scn-katharina-scold {
  background: linear-gradient(180deg, #c0a080 0%, #a08060 30%, #806040 70%, #604020 100%),
              radial-gradient(ellipse at 40% 50%, #d0b090 0%, transparent 60%);
  box-shadow: inset 0 0 150px rgba(0,0,0,0.4);
}
.scn-katharina-scold .bg-room { position:absolute; inset:0; background: linear-gradient(135deg, #b09070 0%, #907050 50%, #705030 100%); clip-path: polygon(0 0, 100% 0, 85% 100%, 15% 100%); animation: ks-room 8s ease-in-out infinite; }
.scn-katharina-scold .table { position:absolute; bottom:15%; left:20%; right:20%; height:20px; background: linear-gradient(180deg, #806040 0%, #604020 100%); border-radius:5px; box-shadow: 0 5px 10px rgba(0,0,0,0.5); animation: ks-table 4s ease-in-out infinite; }
.scn-katharina-scold .katharina { position:absolute; bottom:20%; left:35%; width:24px; height:65px; background: linear-gradient(180deg, #7a4a4a 0%, #4a2a2a 100%); border-radius:45% 45% 35% 35% / 55% 55% 45% 45%; transform-origin: bottom center; animation: ks-figure 3s ease-in-out infinite; }
.scn-katharina-scold .arm-out { position:absolute; bottom:42%; left:28%; width:40px; height:6px; background: #4a2a2a; border-radius:20% 80% 80% 20%; transform-origin: right center; animation: ks-arm 1.5s ease-in-out infinite alternate; }
.scn-katharina-scold .shadow-fig { position:absolute; bottom:18%; left:35%; width:40px; height:15px; background: rgba(0,0,0,0.3); border-radius:50%; filter:blur(5px); animation: ks-shadow 3s ease-in-out infinite; }
.scn-katharina-scold .dust-motes { position:absolute; top:10%; left:20%; width:4px; height:4px; background: rgba(255,255,255,0.4); border-radius:50%; box-shadow: 30px 20px 0 0 rgba(255,255,255,0.3), 60px 40px 0 0 rgba(255,255,255,0.2), 80px 10px 0 0 rgba(255,255,255,0.5); animation: ks-motes 6s linear infinite; }

@keyframes ks-room { 0% { transform:scale(1) } 50% { transform:scale(1.02) } 100% { transform:scale(1) } }
@keyframes ks-table { 0% { transform:translateY(0) } 50% { transform:translateY(-2px) } 100% { transform:translateY(0) } }
@keyframes ks-figure { 0% { transform:translateY(0) rotate(0deg) } 50% { transform:translateY(-4px) rotate(-3deg) } 100% { transform:translateY(0) rotate(2deg) } }
@keyframes ks-arm { 0% { transform:rotate(20deg) } 100% { transform:rotate(-40deg) } }
@keyframes ks-shadow { 0% { transform:scale(1) } 50% { transform:scale(1.1) } 100% { transform:scale(0.9) } }
@keyframes ks-motes { 0% { transform:translateY(0) translateX(0) } 50% { transform:translateY(-20px) translateX(10px) } 100% { transform:translateY(0) translateX(20px) } }

.scn-bianca-submits {
  background: linear-gradient(180deg, #f5deb3 0%, #e0c090 40%, #d0b080 70%, #c0a070 100%),
              radial-gradient(ellipse at 50% 0%, #fff8dc 0%, transparent 70%);
}
.scn-bianca-submits .bg-soft { position:absolute; inset:0; background: linear-gradient(135deg, #e8d5b0 0%, #d0b890 50%, #b8a080 100%); clip-path: polygon(0 0, 100% 0, 90% 100%, 10% 100%); animation: bs-bg 12s ease-in-out infinite; }
.scn-bianca-submits .window-light { position:absolute; top:8%; right:15%; width:80px; height:100px; background: radial-gradient(ellipse at 50% 50%, #fff8dc 0%, #ffe4b5 50%, transparent 80%); box-shadow: 0 0 60px 20px rgba(255,244,220,0.3); animation: bs-window 8s ease-in-out infinite alternate; }
.scn-bianca-submits .bookshelf { position:absolute; bottom:10%; right:10%; width:30%; height:45%; background: linear-gradient(180deg, #8B4513 0%, #6b3410 100%); border-radius:5px; box-shadow: inset 0 0 20px rgba(0,0,0,0.5); animation: bs-shelf 15s ease-in-out infinite; }
.scn-bianca-submits .bookshelf::before { content:''; position:absolute; top:10%; left:5%; width:90%; height:5px; background: #a0522d; }
.scn-bianca-submits .bookshelf::after { content:''; position:absolute; top:35%; left:5%; width:90%; height:5px; background: #a0522d; }
.scn-bianca-submits .bianca-sit { position:absolute; bottom:18%; left:20%; width:22px; height:55px; background: linear-gradient(180deg, #b0a0c0 0%, #806090 100%); border-radius:40% 40% 30% 30% / 50% 50% 40% 40%; transform-origin: bottom center; animation: bs-bianca 6s ease-in-out infinite; }
.scn-bianca-submits .book-open { position:absolute; bottom:21%; left:30%; width:30px; height:20px; background: linear-gradient(180deg, #f0e0b0 0%, #d0b080 100%); border-radius:0 0 30% 30%; box-shadow: 0 2px 5px rgba(0,0,0,0.2); transform: rotate(-5deg); animation: bs-book 5s ease-in-out infinite; }
.scn-bianca-submits .candle-glow { position:absolute; bottom:32%; left:22%; width:6px; height:18px; background: #f0d080; border-radius:40%; box-shadow: 0 0 25px 8px rgba(240,208,128,0.5); animation: bs-candle 3s ease-in-out infinite alternate; }
.scn-bianca-submits .petal { position:absolute; top:15%; left:40%; width:8px; height:8px; background: #ffb6c1; border-radius:0 50% 50% 50%; transform: rotate(45deg); animation: bs-petal1 12s linear infinite; }
.scn-bianca-submits .petal-two { position:absolute; top:20%; left:60%; width:6px; height:6px; background: #ffc0cb; border-radius:0 50% 50% 50%; transform: rotate(-30deg); animation: bs-petal2 15s linear infinite 3s; }

@keyframes bs-bg { 0% { opacity:0.9 } 50% { opacity:1 } 100% { opacity:0.85 } }
@keyframes bs-window { 0% { transform:scale(1) opacity:0.7 } 50% { transform:scale(1.05) opacity:1 } 100% { transform:scale(0.95) opacity:0.8 } }
@keyframes bs-shelf { 0% { transform:scaleY(1) } 50% { transform:scaleY(1.02) } 100% { transform:scaleY(1) } }
@keyframes bs-bianca { 0% { transform:translateY(0) rotate(0deg) } 50% { transform:translateY(-1px) rotate(1deg) } 100% { transform:translateY(0) rotate(-1deg) } }
@keyframes bs-book { 0% { transform:rotate(-5deg) } 50% { transform:rotate(0deg) } 100% { transform:rotate(-3deg) } }
@keyframes bs-candle { 0% { transform:scaleY(1) opacity:0.8 } 50% { transform:scaleY(1.1) opacity:1 } 100% { transform:scaleY(0.9) opacity:0.7 } }
@keyframes bs-petal1 { 0% { transform:translateY(0) rotate(45deg); opacity:0 } 10% { opacity:1 } 90% { opacity:1 } 100% { transform:translateY(80vh) rotate(180deg); opacity:0 } }
@keyframes bs-petal2 { 0% { transform:translateY(0) rotate(-30deg); opacity:0 } 10% { opacity:1 } 90% { opacity:1 } 100% { transform:translateY(80vh) rotate(120deg); opacity:0 } }

.scn-tranio-enters-disguised { background: linear-gradient(180deg, #ffe5b4 0%, #c4a882 30%, #8b7355 70%), radial-gradient(ellipse at 60% 0%, #fff4d6 0%, transparent 40%); }
.scn-tranio-enters-disguised .sky { position: absolute; inset: 0 0 60% 0; background: linear-gradient(180deg, #ffddb0 0%, #fce4c0 60%, transparent); animation: te-sky 12s ease-in-out infinite alternate; }
.scn-tranio-enters-disguised .ground { position: absolute; bottom: 0; left: 0; right: 0; height: 40%; background: linear-gradient(180deg, #a08060 0%, #7a6045 100%); border-radius: 30% 0 0 0 / 40% 0 0 0; box-shadow: inset 0 10px 30px rgba(0,0,0,0.3); }
.scn-tranio-enters-disguised .building-left { position: absolute; bottom: 30%; left: 5%; width: 30%; height: 50%; background: linear-gradient(180deg, #d4b896 0%, #b89a7a 100%); border-radius: 4% 4% 0 0; box-shadow: -8px 0 12px rgba(0,0,0,0.2); }
.scn-tranio-enters-disguised .building-right { position: absolute; bottom: 30%; right: 5%; width: 30%; height: 50%; background: linear-gradient(180deg, #d0b090 0%, #b09070 100%); border-radius: 4% 4% 0 0; box-shadow: 8px 0 12px rgba(0,0,0,0.2); }
.scn-tranio-enters-disguised .figure-tranio { position: absolute; bottom: 25%; left: 38%; width: 24px; height: 48px; background: linear-gradient(180deg, #2a2020 0%, #1a1212 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: te-walk-t 4s ease-in-out infinite; }
.scn-tranio-enters-disguised .figure-biondello { position: absolute; bottom: 25%; left: 48%; width: 20px; height: 42px; background: linear-gradient(180deg, #2e2424 0%, #1c1414 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: te-walk-b 4.5s ease-in-out infinite; animation-delay: 0.5s; }
.scn-tranio-enters-disguised .shadow-accent { position: absolute; bottom: 22%; left: 36%; width: 80px; height: 8px; background: radial-gradient(ellipse, rgba(0,0,0,0.5), transparent); border-radius: 50%; animation: te-shadow 4s ease-in-out infinite; }
@keyframes te-sky { 0% { opacity: 0.9 } 50% { opacity: 1 } 100% { opacity: 0.8 } }
@keyframes te-walk-t { 0% { transform: translateX(0) translateY(0) rotate(-2deg) } 50% { transform: translateX(20px) translateY(-3px) rotate(2deg) } 100% { transform: translateX(40px) translateY(0) rotate(-1deg) } }
@keyframes te-walk-b { 0% { transform: translateX(0) translateY(0) rotate(2deg) } 50% { transform: translateX(18px) translateY(-2px) rotate(-2deg) } 100% { transform: translateX(36px) translateY(0) rotate(1deg) } }
@keyframes te-shadow { 0% { width: 80px; opacity: 0.5 } 50% { width: 90px; opacity: 0.7 } 100% { width: 80px; opacity: 0.5 } }

.scn-tranio-confrontation { background: linear-gradient(180deg, #ffe5b4 0%, #d4b896 40%, #a08060 100%), radial-gradient(ellipse at 50% 0%, #fff4d6 0%, transparent 50%); }
.scn-tranio-confrontation .bg-dark { position: absolute; inset: 0 0 50% 0; background: linear-gradient(180deg, #b89878 0%, #806840 100%); animation: tc-bg 8s ease-in-out infinite alternate; }
.scn-tranio-confrontation .ground { position: absolute; bottom: 0; left: 0; right: 0; height: 35%; background: linear-gradient(180deg, #8b7355 0%, #5a4a35 100%); border-radius: 20% 0 0 0 / 30% 0 0 0; box-shadow: inset 0 6px 20px rgba(0,0,0,0.3); }
.scn-tranio-confrontation .figure-left { position: absolute; bottom: 25%; left: 20%; width: 30px; height: 60px; background: linear-gradient(180deg, #3a2e2e 0%, #1e1414 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: tc-left 3s ease-in-out infinite; }
.scn-tranio-confrontation .figure-right { position: absolute; bottom: 25%; right: 20%; width: 30px; height: 60px; background: linear-gradient(180deg, #3a2e2e 0%, #1e1414 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: tc-right 3.2s ease-in-out infinite; animation-delay: 0.1s; transform: scaleX(-1); }
.scn-tranio-confrontation .gesture-hand { position: absolute; bottom: 55%; left: 28%; width: 18px; height: 14px; background: #1e1414; border-radius: 40% 40% 20% 20% / 60% 60% 40% 40%; transform-origin: bottom left; animation: tc-hand 2s ease-in-out infinite; }
.scn-tranio-confrontation .shadow-stripe { position: absolute; bottom: 22%; left: 15%; right: 15%; height: 4px; background: linear-gradient(90deg, transparent, rgba(0,0,0,0.6), transparent); filter: blur(2px); animation: tc-stripe 4s ease-in-out infinite; }
@keyframes tc-bg { 0% { opacity: 0.8 } 50% { opacity: 1 } 100% { opacity: 0.7 } }
@keyframes tc-left { 0% { transform: translateX(0) translateY(0) rotate(0deg) } 30% { transform: translateX(-8px) translateY(-2px) rotate(-5deg) } 60% { transform: translateX(2px) translateY(-1px) rotate(2deg) } 100% { transform: translateX(0) translateY(0) rotate(0deg) } }
@keyframes tc-right { 0% { transform: scaleX(-1) translateX(0) translateY(0) rotate(0deg) } 30% { transform: scaleX(-1) translateX(8px) translateY(-2px) rotate(5deg) } 60% { transform: scaleX(-1) translateX(-2px) translateY(-1px) rotate(-2deg) } 100% { transform: scaleX(-1) translateX(0) translateY(0) rotate(0deg) } }
@keyframes tc-hand { 0% { transform: translate(0,0) rotate(-10deg) } 50% { transform: translate(6px,-4px) rotate(15deg) scale(1.1) } 100% { transform: translate(0,0) rotate(-10deg) } }
@keyframes tc-stripe { 0% { opacity: 0.4; transform: scaleY(1) } 50% { opacity: 0.8; transform: scaleY(2) } 100% { opacity: 0.4; transform: scaleY(1) } }

.scn-padua-street-introduction { background: linear-gradient(180deg, #bcc9d4 0%, #9aafc0 40%, #6e8596 100%), radial-gradient(ellipse at 50% 0%, #d0dbe8 0%, transparent 60%); }
.scn-padua-street-introduction .sky-overcast { position: absolute; inset: 0 0 55% 0; background: linear-gradient(180deg, #c0cdd8 0%, #a8b8c8 60%, transparent); animation: ps-sky 20s ease-in-out infinite alternate; }
.scn-padua-street-introduction .ground-flat { position: absolute; bottom: 0; left: 0; right: 0; height: 35%; background: linear-gradient(180deg, #8a9a84 0%, #6a7a64 100%); border-radius: 10% 0 0 0 / 20% 0 0 0; box-shadow: inset 0 6px 15px rgba(0,0,0,0.2); }
.scn-padua-street-introduction .figure-grumbio { position: absolute; bottom: 28%; left: 20%; width: 22px; height: 50px; background: linear-gradient(180deg, #3a3a3a 0%, #1e1e1e 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: ps-stand-slow 8s ease-in-out infinite; }
.scn-padua-street-introduction .figure-hortensio { position: absolute; bottom: 28%; left: 40%; width: 24px; height: 52px; background: linear-gradient(180deg, #3a3a3a 0%, #1e1e1e 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: ps-stand-slow 8.5s ease-in-out infinite; animation-delay: 0.5s; }
.scn-padua-street-introduction .figure-petruchio { position: absolute; bottom: 28%; right: 25%; width: 26px; height: 54px; background: linear-gradient(180deg, #3a3a3a 0%, #1e1e1e 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: ps-stand-slow 9s ease-in-out infinite; animation-delay: 1s; }
.scn-padua-street-introduction .cloud-drift-a { position: absolute; top: 18%; left: 10%; width: 90px; height: 20px; background: linear-gradient(180deg, rgba(255,255,255,0.6) 0%, rgba(200,210,220,0.3) 100%); border-radius: 50%; filter: blur(8px); animation: ps-drift-a 40s linear infinite; }
.scn-padua-street-introduction .cloud-drift-b { position: absolute; top: 25%; right: 8%; width: 70px; height: 16px; background: linear-gradient(180deg, rgba(255,255,255,0.5) 0%, rgba(190,200,210,0.2) 100%); border-radius: 50%; filter: blur(6px); animation: ps-drift-b 55s linear infinite reverse; }
@keyframes ps-sky { 0% { opacity: 0.8 } 50% { opacity: 1 } 100% { opacity: 0.7 } }
@keyframes ps-stand-slow { 0% { transform: translateY(0) rotate(0deg) } 30% { transform: translateY(-2px) rotate(1deg) } 60% { transform: translateY(0) rotate(-1deg) } 100% { transform: translateY(0) rotate(0deg) } }
@keyframes ps-drift-a { 0% { transform: translateX(-40px) } 100% { transform: translateX(120vw) } }
@keyframes ps-drift-b { 0% { transform: translateX(0) } 100% { transform: translateX(-100vw) } }

.scn-baptista-house-katharina-bianca { background: linear-gradient(180deg, #c8a060 0%, #a08040 30%, #6a4a20 100%), radial-gradient(ellipse at 30% 50%, #e0b870 0%, transparent 60%); }
.scn-baptista-house-katharina-bianca .wall-back { position: absolute; inset: 0; background: linear-gradient(180deg, #9a7a4a 0%, #7a5a2a 100%); box-shadow: inset 0 0 40px rgba(0,0,0,0.4); }
.scn-baptista-house-katharina-bianca .floor { position: absolute; bottom: 0; left: 0; right: 0; height: 35%; background: linear-gradient(180deg, #5a4020 0%, #3a2a10 100%); border-radius: 20% 0 0 0 / 30% 0 0 0; box-shadow: inset 0 8px 20px rgba(0,0,0,0.5); }
.scn-baptista-house-katharina-bianca .window-glow { position: absolute; top: 15%; left: 60%; width: 40px; height: 50px; background: radial-gradient(circle, #ffd080 0%, #b08040 70%); border-radius: 10% 10% 40% 40% / 20% 20% 60% 60%; box-shadow: 0 0 30px 10px #c09050, 0 0 60px 20px rgba(192,144,80,0.4); animation: bh-glow 3s ease-in-out infinite alternate; }
.scn-baptista-house-katharina-bianca .figure-katharina { position: absolute; bottom: 28%; left: 35%; width: 28px; height: 56px; background: linear-gradient(180deg, #3a2a2a 0%, #1a1212 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: bh-struggle 2s ease-in-out infinite; }
.scn-baptista-house-katharina-bianca .figure-bianca { position: absolute; bottom: 28%; left: 50%; width: 24px; height: 52px; background: linear-gradient(180deg, #2e2e2e 0%, #1a1a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: bh-struggle 2.3s ease-in-out infinite; animation-delay: 0.15s; transform: scaleX(-1); }
.scn-baptista-house-katharina-bianca .chair { position: absolute; bottom: 22%; left: 42%; width: 20px; height: 30px; background: linear-gradient(180deg, #5a3a1a 0%, #3a2a0a 100%); border-radius: 10% 10% 5% 5% / 20% 20% 10% 10%; box-shadow: 0 4px 8px rgba(0,0,0,0.4); }
.scn-baptista-house-katharina-bianca .shadow-struggle { position: absolute; bottom: 26%; left: 30%; right: 30%; height: 6px; background: radial-gradient(ellipse, rgba(0,0,0,0.7), transparent); filter: blur(3px); animation: bh-shad 2s ease-in-out infinite; }
@keyframes bh-glow { 0% { box-shadow: 0 0 20px 6px #c09050, 0 0 40px 12px rgba(192,144,80,0.3); opacity: 0.8 } 50% { box-shadow: 0 0 40px 14px #ffd080, 0 0 80px 24px rgba(255,208,128,0.5); opacity: 1 } 100% { box-shadow: 0 0 25px 8px #c09050, 0 0 50px 16px rgba(192,144,80,0.35); opacity: 0.85 } }
@keyframes bh-struggle { 0% { transform: translateX(0) translateY(0) rotate(-3deg) } 30% { transform: translateX(4px) translateY(-4px) rotate(4deg) } 60% { transform: translateX(-4px) translateY(-2px) rotate(-2deg) } 100% { transform: translateX(0) translateY(0) rotate(-3deg) } }
@keyframes bh-shad { 0% { opacity: 0.6; transform: scaleX(1) } 50% { opacity: 1; transform: scaleX(1.3) } 100% { opacity: 0.6; transform: scaleX(1) } }

/* All scenes */
.scn-curtiss-inquiry {
  background: linear-gradient(180deg, #3a2a1a 0%, #2a1a0a 40%, #4a3a2a 70%, #2a1a0a 100%), radial-gradient(ellipse at 50% 30%, #6a4a2a 0%, transparent 60%);
}
.scn-curtiss-inquiry .wall {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(180deg, #4a3a2a 0%, #3a2a1a 100%);
  border-radius: 0 0 30% 30% / 0 0 20% 20%;
  box-shadow: inset 0 4px 20px rgba(0,0,0,.5);
}
.scn-curtiss-inquiry .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 40%;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 20% 20% 0 0 / 10% 10% 0 0;
}
.scn-curtiss-inquiry .fireplace {
  position: absolute; bottom: 30%; left: 50%; width: 120px; height: 80px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #7a6a5a 0%, #4a3a2a 100%);
  border-radius: 10% 10% 5% 5%;
  box-shadow: 0 8px 20px rgba(0,0,0,.6);
}
.scn-curtiss-inquiry .fire {
  position: absolute; bottom: 32%; left: 50%; width: 50px; height: 60px;
  transform: translateX(-50%);
  background: radial-gradient(ellipse at 50% 100%, #ff8c42 0%, #ff6a1a 30%, #c8553d 60%, #5e1a1d 100%);
  border-radius: 50% 50% 20% 20%;
  box-shadow: 0 0 40px 20px #ff8c42, 0 0 80px 40px rgba(200,85,61,0.4);
  animation: ci-fire 2s ease-in-out infinite alternate;
}
.scn-curtiss-inquiry .figure-left {
  position: absolute; bottom: 28%; left: 25%; width: 24px; height: 60px;
  background: linear-gradient(180deg, #2a1a1a 0%, #1a0a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: ci-figleft 4s ease-in-out infinite;
}
.scn-curtiss-inquiry .figure-right {
  position: absolute; bottom: 28%; right: 25%; width: 22px; height: 58px;
  background: linear-gradient(180deg, #3a2a2a 0%, #2a1a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: ci-figright 3.5s ease-in-out infinite;
}
.scn-curtiss-inquiry .table {
  position: absolute; bottom: 26%; left: 40%; width: 60px; height: 10px;
  background: linear-gradient(180deg, #6a4a3a 0%, #4a2a1a 100%);
  border-radius: 10%;
  box-shadow: 0 4px 8px rgba(0,0,0,.4);
}
@keyframes ci-fire {
  0% { transform: translateX(-50%) scale(1) translateY(0); opacity: .9; }
  50% { transform: translateX(-50%) scale(1.05) translateY(-2px); opacity: 1; }
  100% { transform: translateX(-50%) scale(0.95) translateY(1px); opacity: .85; }
}
@keyframes ci-figleft {
  0% { transform: translateX(0) rotate(-2deg); }
  30% { transform: translateX(5px) rotate(2deg); }
  60% { transform: translateX(-3px) rotate(-1deg); }
  100% { transform: translateX(0) rotate(0deg); }
}
@keyframes ci-figright {
  0% { transform: translateX(0) rotate(1deg); }
  40% { transform: translateX(-4px) rotate(-2deg); }
  70% { transform: translateX(3px) rotate(1deg); }
  100% { transform: translateX(0) rotate(0deg); }
}

.scn-cold-jests-exchanges {
  background: linear-gradient(180deg, #2a1a1a 0%, #3a2a2a 30%, #4a3a3a 60%, #2a1a1a 100%), radial-gradient(ellipse at 50% 20%, #4a2a2a 0%, transparent 70%);
}
.scn-cold-jests-exchanges .wall-bg {
  position: absolute; inset: 0 0 35% 0;
  background: linear-gradient(180deg, #3a2a2a 0%, #2a1a1a 100%);
  border-radius: 0 0 20% 20%;
}
.scn-cold-jests-exchanges .floor-bg {
  position: absolute; bottom: 0; left: 0; right: 0; height: 35%;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 10% 10% 0 0;
}
.scn-cold-jests-exchanges .figure-tall {
  position: absolute; bottom: 28%; left: 30%; width: 28px; 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: cje-tall 5s ease-in-out infinite;
}
.scn-cold-jests-exchanges .figure-short {
  position: absolute; bottom: 32%; left: 50%; width: 20px; height: 40px;
  background: linear-gradient(180deg, #3a2a2a 0%, #2a1a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: cje-short 4s ease-in-out infinite;
}
.scn-cold-jests-exchanges .horn {
  position: absolute; bottom: 38%; left: 52%; width: 30px; height: 8px;
  background: linear-gradient(90deg, #8a7a6a 0%, #5a4a3a 100%);
  border-radius: 50% 50% 40% 40%;
  transform: rotate(-20deg);
  animation: cje-horn 3s ease-in-out infinite alternate;
}
.scn-cold-jests-exchanges .shadow-short {
  position: absolute; bottom: 28%; left: 50%; width: 30px; height: 6px;
  background: radial-gradient(ellipse, rgba(0,0,0,.4) 0%, transparent 80%);
  animation: cje-shadow 4s ease-in-out infinite;
}
.scn-cold-jests-exchanges .stool {
  position: absolute; bottom: 28%; left: 55%; width: 30px; height: 6px;
  background: linear-gradient(180deg, #6a5a4a 0%, #4a3a2a 100%);
  border-radius: 10%;
}
@keyframes cje-tall {
  0% { transform: translateX(0) rotate(0deg); }
  25% { transform: translateX(-8px) rotate(-3deg); }
  50% { transform: translateX(2px) rotate(2deg); }
  75% { transform: translateX(-5px) rotate(-1deg); }
  100% { transform: translateX(0) rotate(0deg); }
}
@keyframes cje-short {
  0% { transform: translateX(0) rotate(0deg); }
  30% { transform: translateX(6px) rotate(4deg); }
  60% { transform: translateX(-3px) rotate(-2deg); }
  100% { transform: translateX(0) rotate(0deg); }
}
@keyframes cje-horn {
  0% { transform: rotate(-20deg) scaleX(1); }
  100% { transform: rotate(-10deg) scaleX(1.1); }
}
@keyframes cje-shadow {
  0% { transform: scaleX(1); }
  50% { transform: scaleX(1.3); }
  100% { transform: scaleX(1); }
}

.scn-fire-and-news {
  background: linear-gradient(180deg, #3a2a1a 0%, #2a1a0a 40%, #4a3a2a 70%, #2a1a0a 100%), radial-gradient(ellipse at 50% 30%, #6a4a2a 0%, transparent 60%);
}
.scn-fire-and-news .wall {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(180deg, #4a3a2a 0%, #3a2a1a 100%);
  border-radius: 0 0 25% 25%;
}
.scn-fire-and-news .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 40%;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 15% 15% 0 0;
}
.scn-fire-and-news .fireplace {
  position: absolute; bottom: 30%; left: 50%; width: 100px; height: 70px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #7a6a5a 0%, #4a3a2a 100%);
  border-radius: 10% 10% 5% 5%;
  box-shadow: 0 6px 16px rgba(0,0,0,.5);
}
.scn-fire-and-news .fire {
  position: absolute; bottom: 33%; left: 50%; width: 40px; height: 50px;
  transform: translateX(-50%);
  background: radial-gradient(ellipse at 50% 100%, #ff8c42 0%, #ff6a1a 30%, #c8553d 60%, #5e1a1d 100%);
  border-radius: 50% 50% 20% 20%;
  box-shadow: 0 0 30px 15px #ff8c42, 0 0 60px 30px rgba(200,85,61,0.4);
  animation: fn-fire 1.8s ease-in-out infinite alternate;
}
.scn-fire-and-news .figure {
  position: absolute; bottom: 28%; left: 35%; width: 22px; height: 55px;
  background: linear-gradient(180deg, #2a1a1a 0%, #1a0a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: fn-figure 6s ease-in-out infinite;
}
.scn-fire-and-news .chair {
  position: absolute; bottom: 28%; right: 30%; width: 30px; height: 40px;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 10% 10% 5% 5%;
  box-shadow: 0 4px 8px rgba(0,0,0,.3);
}
.scn-fire-and-news .news-scroll {
  position: absolute; bottom: 30%; right: 20%; width: 20px; height: 30px;
  background: linear-gradient(180deg, #d4c8b0 0%, #a09070 100%);
  border-radius: 10% 10% 5% 5%;
  transform: rotate(15deg);
  box-shadow: 0 2px 6px rgba(0,0,0,.2);
  animation: fn-scroll 4s ease-in-out infinite alternate;
}
@keyframes fn-fire {
  0% { transform: translateX(-50%) scale(1) translateY(0); opacity: .9; }
  50% { transform: translateX(-50%) scale(1.1) translateY(-3px); opacity: 1; }
  100% { transform: translateX(-50%) scale(0.9) translateY(1px); opacity: .8; }
}
@keyframes fn-figure {
  0% { transform: translateX(0) rotate(0deg); }
  30% { transform: translateX(5px) rotate(2deg); }
  60% { transform: translateX(-3px) rotate(-1deg); }
  100% { transform: translateX(0) rotate(0deg); }
}
@keyframes fn-scroll {
  0% { transform: rotate(15deg) translateY(0); }
  100% { transform: rotate(10deg) translateY(-2px); }
}

.scn-all-ready-answer {
  background: linear-gradient(180deg, #3a2a2a 0%, #2a1a1a 40%, #4a3a3a 70%, #2a1a1a 100%), radial-gradient(ellipse at 50% 30%, #5a3a3a 0%, transparent 60%);
}
.scn-all-ready-answer .wall {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(180deg, #4a3a3a 0%, #3a2a2a 100%);
  border-radius: 0 0 20% 20%;
}
.scn-all-ready-answer .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 40%;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 15% 15% 0 0;
}
.scn-all-ready-answer .figure-striking {
  position: absolute; bottom: 28%; left: 40%; width: 26px; height: 65px;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: ara-striking 8s ease-in-out infinite;
}
.scn-all-ready-answer .figure-struck {
  position: absolute; bottom: 28%; right: 35%; width: 22px; height: 50px;
  background: linear-gradient(180deg, #2a1a1a 0%, #1a0a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: ara-struck 8s ease-in-out infinite;
}
.scn-all-ready-answer .shadow {
  position: absolute; bottom: 28%; left: 38%; width: 40px; height: 8px;
  background: radial-gradient(ellipse, rgba(0,0,0,.5) 0%, transparent 80%);
  animation: ara-shadow 8s ease-in-out infinite;
}
.scn-all-ready-answer .sparks {
  position: absolute; bottom: 40%; left: 50%; width: 4px; height: 4px;
  background: radial-gradient(circle, #ffd080 0%, transparent 80%);
  border-radius: 50%;
  box-shadow: 0 0 10px 2px rgba(255,208,128,.6);
  animation: ara-sparks 2s ease-in-out infinite alternate;
}
.scn-all-ready-answer .ground {
  position: absolute; bottom: 25%; left: 0; right: 0; height: 15%;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 20% 20% 0 0;
}
@keyframes ara-striking {
  0% { transform: translateX(0) rotate(-10deg); }
  20% { transform: translateX(0) rotate(-10deg); }
  40% { transform: translateX(10px) rotate(10deg); }
  50% { transform: translateX(10px) rotate(10deg); }
  70% { transform: translateX(0) rotate(-10deg); }
  100% { transform: translateX(0) rotate(-10deg); }
}
@keyframes ara-struck {
  0% { transform: translateX(0) rotate(0deg); }
  20% { transform: translateX(0) rotate(0deg); }
  40% { transform: translateX(-5px) rotate(5deg); }
  50% { transform: translateX(-5px) rotate(5deg); }
  70% { transform: translateX(0) rotate(0deg); }
  100% { transform: translateX(0) rotate(0deg); }
}
@keyframes ara-shadow {
  0% { transform: scaleX(1); opacity: 1; }
  20% { transform: scaleX(1); opacity: 1; }
  40% { transform: scaleX(1.3); opacity: .6; }
  50% { transform: scaleX(1.3); opacity: .6; }
  70% { transform: scaleX(1); opacity: 1; }
  100% { transform: scaleX(1); opacity: 1; }
}
@keyframes ara-sparks {
  0% { transform: translateY(0) scale(1); opacity: 0; }
  50% { transform: translateY(-10px) scale(1.5); opacity: 1; }
  100% { transform: translateY(-20px) scale(0); opacity: 0; }
}

.scn-petruchio-grumio-quarrel { background: linear-gradient(180deg, #f9e7c0 0%, #d4b87a 30%, #a88a5e 100%), radial-gradient(ellipse at 30% 80%, #ffe099 0%, transparent 60%); }
.scn-petruchio-grumio-quarrel .sky { position:absolute; inset:0 0 35% 0; background: linear-gradient(180deg, #87ceeb 0%, #b0daf0 40%, #d4eaf5 100%); animation: pgq-sky 20s ease-in-out infinite alternate; }
.scn-petruchio-grumio-quarrel .ground { position:absolute; bottom:0; left:0; right:0; height:35%; background: linear-gradient(180deg, #b5935a 0%, #8a6f40 40%, #5c4820 100%); border-radius: 20% 30% 0 0 / 10% 15% 0 0; }
.scn-petruchio-grumio-quarrel .gate { position:absolute; bottom:35%; left:30%; width:40px; height:80px; background: linear-gradient(180deg, #7a5a3a 0%, #4a3020 100%); border-radius: 6% 6% 4% 4%; box-shadow: 4px 0 6px rgba(0,0,0,0.3); transform-origin: bottom center; animation: pgq-gate 4s ease-in-out infinite; }
.scn-petruchio-grumio-quarrel .figure { position:absolute; bottom:30%; width:30px; height:60px; background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 30% 30%; }
.scn-petruchio-grumio-quarrel .petruchio { left:25%; animation: pgq-petruchio 3s ease-in-out infinite; }
.scn-petruchio-grumio-quarrel .grumio { left:45%; animation: pgq-grumio 3.5s ease-in-out infinite; animation-delay: -1s; }
.scn-petruchio-grumio-quarrel .hat { position:absolute; bottom:55%; left:20%; width:24px; height:10px; background: #3a2a1a; border-radius: 50% 50% 0 0; transform-origin: bottom center; animation: pgq-hat 2s ease-in-out infinite; }
.scn-petruchio-grumio-quarrel .shadow-p { position:absolute; bottom:30%; left:20%; width:24px; height:6px; background: rgba(0,0,0,0.2); border-radius: 50%; animation: pgq-shadow-p 3s ease-in-out infinite; }
.scn-petruchio-grumio-quarrel .shadow-g { position:absolute; bottom:30%; left:40%; width:20px; height:5px; background: rgba(0,0,0,0.15); border-radius: 50%; animation: pgq-shadow-g 3.5s ease-in-out infinite; animation-delay: -1s; }
@keyframes pgq-sky        { 0% { opacity:0.8 } 50% { opacity:1 } 100% { opacity:0.7 } }
@keyframes pgq-gate       { 0% { transform: rotate(0deg) translateY(0) } 25% { transform: rotate(-3deg) translateY(-2px) } 50% { transform: rotate(0deg) translateY(0) } 75% { transform: rotate(3deg) translateY(-2px) } 100% { transform: rotate(0deg) translateY(0) } }
@keyframes pgq-petruchio  { 0% { transform: translateY(0) rotate(-2deg) } 25% { transform: translateY(-4px) rotate(3deg) translateX(3px) } 50% { transform: translateY(0) rotate(-1deg) } 75% { transform: translateY(-3px) rotate(2deg) translateX(-2px) } 100% { transform: translateY(0) rotate(-2deg) } }
@keyframes pgq-grumio     { 0% { transform: translateY(0) rotate(1deg) } 30% { transform: translateY(-5px) rotate(-2deg) translateX(-4px) } 60% { transform: translateY(2px) rotate(1deg) } 100% { transform: translateY(0) rotate(1deg) } }
@keyframes pgq-hat        { 0% { transform: translateY(0) rotate(0deg) } 20% { transform: translateY(-10px) rotate(-15deg) translateX(10px) } 40% { transform: translateY(-20px) rotate(-30deg) translateX(20px) } 60% { transform: translateY(-10px) rotate(-20deg) translateX(10px) } 80% { transform: translateY(-2px) rotate(-5deg) translateX(3px) } 100% { transform: translateY(0) rotate(0deg) } }
@keyframes pgq-shadow-p   { 0% { width:24px; opacity:0.2 } 50% { width:18px; opacity:0.1 } 100% { width:24px; opacity:0.2 } }
@keyframes pgq-shadow-g   { 0% { width:20px; opacity:0.15 } 50% { width:14px; opacity:0.08 } 100% { width:20px; opacity:0.15 } }

.scn-hortensio-greets-petruchio { background: linear-gradient(180deg, #ffe4b5 0%, #b0c4de 50%, #a2bff0 100%), radial-gradient(ellipse at 70% 30%, #fff0d0 0%, transparent 50%); }
.scn-hortensio-greets-petruchio .sky { position:absolute; inset:0 0 40% 0; background: radial-gradient(ellipse at 50% 30%, #fff4e0 0%, #b0c4de 100%); animation: hgp-sky 25s ease-in-out infinite alternate; }
.scn-hortensio-greets-petruchio .hills { position:absolute; bottom:30%; left:0; right:0; height:20%; background: linear-gradient(180deg, #7a9c6a 0%, #4c683a 100%); border-radius: 40% 60% 0 0 / 30% 40% 0 0; box-shadow: inset 0 5px 10px rgba(0,0,0,0.2); animation: hgp-hills 30s ease-in-out infinite alternate; }
.scn-hortensio-greets-petruchio .path { position:absolute; bottom:20%; left:30%; width:40%; height:12%; background: linear-gradient(180deg, #c4a87a 0%, #b0905a 100%); border-radius: 20% 20% 10% 10%; transform-origin: bottom center; animation: hgp-path 15s ease-in-out infinite; }
.scn-hortensio-greets-petruchio .tree { position:absolute; bottom:25%; left:20%; width:30px; height:70px; background: linear-gradient(180deg, #5a7a3a 0%, #2a4a1a 100%); border-radius: 40% 40% 10% 10% / 60% 60% 20% 20%; box-shadow: 0 4px 8px rgba(0,0,0,0.3); animation: hgp-tree 8s ease-in-out infinite; }
.scn-hortensio-greets-petruchio .figure { position:absolute; bottom:18%; width:28px; height:55px; background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 30% 30%; }
.scn-hortensio-greets-petruchio .hortensio { left:35%; transform-origin: bottom center; animation: hgp-greet 6s ease-in-out infinite; }
.scn-hortensio-greets-petruchio .petruchio { left:55%; transform-origin: bottom center; animation: hgp-accept 6s ease-in-out infinite 3s; }
.scn-hortensio-greets-petruchio .shadow { position:absolute; bottom:18%; left:35%; width:50px; height:8px; background: rgba(0,0,0,0.15); border-radius: 50%; animation: hgp-shadow 6s ease-in-out infinite; }
@keyframes hgp-sky     { 0% { opacity:0.8 } 50% { opacity:1 } 100% { opacity:0.9 } }
@keyframes hgp-hills   { 0% { transform: scaleX(1) } 50% { transform: scaleX(1.02) translateY(-3px) } 100% { transform: scaleX(1) } }
@keyframes hgp-path    { 0% { transform: scaleY(1) } 25% { transform: scaleY(1.05) translateY(-2px) } 50% { transform: scaleY(0.98) } 75% { transform: scaleY(1.03) translateY(-1px) } 100% { transform: scaleY(1) } }
@keyframes hgp-tree    { 0% { transform: rotate(0deg) } 50% { transform: rotate(2deg) } 100% { transform: rotate(-1deg) } }
@keyframes hgp-greet   { 0% { transform: translateX(0) rotate(0deg) } 50% { transform: translateX(8px) rotate(-5deg) translateY(-2px) } 100% { transform: translateX(0) rotate(0deg) } }
@keyframes hgp-accept  { 0% { transform: translateX(0) rotate(0deg) } 50% { transform: translateX(-5px) rotate(5deg) translateY(-2px) } 100% { transform: translateX(0) rotate(0deg) } }
@keyframes hgp-shadow  { 0% { opacity:0.15; width:50px } 50% { opacity:0.08; width:40px } 100% { opacity:0.15; width:50px } }

.scn-petruchio-explains-mission { background: linear-gradient(180deg, #ffdab9 0%, #a2bff0 40%, #6a8ec4 100%), radial-gradient(ellipse at 50% 80%, #f0e0c0 0%, transparent 60%); }
.scn-petruchio-explains-mission .sky { position:absolute; inset:0 0 45% 0; background: radial-gradient(ellipse at 50% 20%, #ffe8c0 0%, #b0c4de 100%); animation: pem-sky 30s ease-in-out infinite alternate; }
.scn-petruchio-explains-mission .sun { position:absolute; top:15%; right:20%; width:35px; height:35px; background: radial-gradient(circle, #ffd700 0%, #ffaa00 50%, #ff8c00 100%); border-radius: 50%; box-shadow: 0 0 40px 15px rgba(255,215,0,0.4), 0 0 80px 30px rgba(255,165,0,0.2); animation: pem-sun 40s linear infinite; }
.scn-petruchio-explains-mission .horizon { position:absolute; bottom:40%; left:0; right:0; height:5%; background: linear-gradient(180deg, #5a7a4a 0%, #3a5a2a 100%); border-radius: 50% 50% 0 0; }
.scn-petruchio-explains-mission .road { position:absolute; bottom:20%; left:20%; width:60%; height:25%; background: linear-gradient(180deg, #c4a87a 0%, #a08050 100%); clip-path: polygon(0% 0%, 100% 0%, 60% 100%, 40% 100%); transform-origin: bottom center; animation: pem-road 10s ease-in-out infinite; }
.scn-petruchio-explains-mission .figure { position:absolute; bottom:28%; width:25px; height:50px; background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 30% 30%; }
.scn-petruchio-explains-mission .left { left:35%; transform-origin: bottom center; animation: pem-left 5s ease-in-out infinite; }
.scn-petruchio-explains-mission .right { left:52%; transform-origin: bottom center; animation: pem-right 5s ease-in-out infinite 2.5s; }
.scn-petruchio-explains-mission .distant { position:absolute; bottom:35%; right:15%; width:40px; height:20px; background: linear-gradient(180deg, #6a8ec4 0%, #3a5a8a 100%); border-radius: 30% 30% 10% 10% / 60% 60% 20% 20%; animation: pem-distant 20s ease-in-out infinite alternate; }
@keyframes pem-sky     { 0% { background-position: 0 0 } 50% { background-position: 10px 0 } 100% { background-position: 0 0 } }
@keyframes pem-sun     { 0% { transform: translateX(0) } 50% { transform: translateX(20px) } 100% { transform: translateX(0) } }
@keyframes pem-road    { 0% { transform: scaleX(1) scaleY(1) } 50% { transform: scaleX(1.03) scaleY(1.05) translateY(-3px) } 100% { transform: scaleX(1) scaleY(1) } }
@keyframes pem-left    { 0% { transform: translateY(0) rotate(0deg) } 25% { transform: translateY(-3px) rotate(2deg) translateX(2px) } 50% { transform: translateY(-1px) rotate(-1deg) } 75% { transform: translateY(-2px) rotate(1deg) translateX(-1px) } 100% { transform: translateY(0) rotate(0deg) } }
@keyframes pem-right   { 0% { transform: translateY(0) rotate(0deg) } 25% { transform: translateY(-2px) rotate(-2deg) translateX(-1px) } 50% { transform: translateY(-3px) rotate(1deg) } 75% { transform: translateY(-1px) rotate(-1deg) translateX(2px) } 100% { transform: translateY(0) rotate(0deg) } }
@keyframes pem-distant { 0% { transform: scaleY(1) } 50% { transform: scaleY(1.1) translateY(-2px) } 100% { transform: scaleY(0.95) } }

.scn-item-gold-crowns { background: linear-gradient(180deg, #fff0d0 0%, #e0c8a0 50%, #c0a080 100%), radial-gradient(ellipse at 50% 50%, #ffe8c0 0%, transparent 60%); }
.scn-item-gold-crowns .bg { position:absolute; inset:0; background: linear-gradient(135deg, #1a1a2a 0%, #0a0a1a 50%, #1a1a2a 100%); opacity:0.8; }
.scn-item-gold-crowns .pedestal { position:absolute; bottom:0; left:50%; width:80px; height:30%; transform: translateX(-50%); background: linear-gradient(180deg, #8a7050 0%, #4a3820 100%); border-radius: 10% 10% 0 0; box-shadow: 0 -4px 10px rgba(0,0,0,0.5); }
.scn-item-gold-crowns .crown { position:absolute; bottom:30%; left:50%; width:60px; height:40px; transform: translateX(-50%); background: linear-gradient(180deg, #ffd700 0%, #ffaa00 40%, #b8860b 100%); border-radius: 50% 50% 20% 20% / 70% 70% 30% 30%; box-shadow: 0 4px 10px rgba(0,0,0,0.4), 0 0 20px 6px rgba(255,215,0,0.3); animation: igc-crown 5s ease-in-out infinite; }
.scn-item-gold-crowns .jewel { position:absolute; bottom:40%; left:50%; width:8px; height:8px; border-radius: 50%; }
.scn-item-gold-crowns .ruby { transform: translateX(-140%); background: #a0461a; box-shadow: 0 0 10px 3px rgba(160,70,26,0.6); animation: igc-gem 3s ease-in-out infinite; }
.scn-item-gold-crowns .sapphire { transform: translateX(40%); background: #2a4a7a; box-shadow: 0 0 10px 3px rgba(42,74,122,0.6); animation: igc-gem 4s ease-in-out infinite 1s; }
.scn-item-gold-crowns .glow { position:absolute; bottom:30%; left:50%; width:120px; height:120px; transform: translateX(-50%) translateY(-20%); background: radial-gradient(circle, rgba(255,215,0,0.15) 0%, transparent 70%); border-radius: 50%; animation: igc-glow 6s ease-in-out infinite alternate; }
@keyframes igc-crown { 0% { transform: translateX(-50%) scale(1) rotate(0deg) } 50% { transform: translateX(-50%) scale(1.03) rotate(2deg) } 100% { transform: translateX(-50%) scale(1) rotate(-1deg) } }
@keyframes igc-gem   { 0% { transform: scale(1) } 50% { transform: scale(1.4) } 100% { transform: scale(1) } }
@keyframes igc-glow  { 0% { opacity:0.5; transform: translateX(-50%) translateY(-20%) scale(1) } 50% { opacity:0.8; transform: translateX(-50%) translateY(-20%) scale(1.1) } 100% { opacity:0.5; transform: translateX(-50%) translateY(-20%) scale(0.95) } }

.scn-baptista-house-wooing {
  background: 
    linear-gradient(180deg, #e8d5b7 0%, #d4b88a 40%, #8a6e4a 100%),
    radial-gradient(ellipse at 40% 30%, #f0e0c0 0%, transparent 70%);
}
.scn-baptista-house-wooing .wall {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #d4b88a 0%, #b09070 100%);
  animation: bw-wall 12s ease-in-out infinite alternate;
}
.scn-baptista-house-wooing .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(0deg, #6a4e2a 0%, #8a6e4a 100%);
  border-radius: 20% 20% 0 0 / 10% 10% 0 0;
  box-shadow: inset 0 6px 12px rgba(0,0,0,0.3);
}
.scn-baptista-house-wooing .window {
  position: absolute; top: 12%; left: 55%; width: 60px; height: 80px;
  background: linear-gradient(180deg, #f2e4c8 0%, #d6c4a0 100%);
  border: 4px solid #8a6e4a;
  border-radius: 4px;
  box-shadow: 0 0 20px 8px rgba(242,228,200,0.3);
  animation: bw-window 6s ease-in-out infinite alternate;
}
.scn-baptista-house-wooing .table {
  position: absolute; bottom: 26%; left: 30%; width: 100px; height: 30px;
  background: linear-gradient(0deg, #5a3a1a 0%, #7a5a3a 100%);
  border-radius: 4px;
  transform: skewX(-2deg);
  box-shadow: 0 4px 8px rgba(0,0,0,0.5);
  animation: bw-table 8s ease-in-out infinite alternate;
}
.scn-baptista-house-wooing .figure-baptista {
  position: absolute; bottom: 22%; left: 20%; width: 24px; height: 60px;
  background: linear-gradient(180deg, #8a6e4a 0%, #4a3220 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: bw-figure1 4s ease-in-out infinite;
}
.scn-baptista-house-wooing .figure-gremio {
  position: absolute; bottom: 22%; left: 50%; width: 22px; height: 56px;
  background: linear-gradient(180deg, #7a5a3a 0%, #3a2a10 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: bw-figure2 5s ease-in-out infinite 1s;
}
.scn-baptista-house-wooing .candle {
  position: absolute; bottom: 36%; left: 48%; width: 8px; height: 20px;
  background: linear-gradient(180deg, #f0d0a0 0%, #d0a070 100%);
  border-radius: 4px 4px 2px 2px;
}
.scn-baptista-house-wooing .candle::after {
  content: '';
  position: absolute; top: -10px; left: -2px; width: 12px; height: 14px;
  background: radial-gradient(circle, #ffd060 0%, #ffb040 40%, transparent 70%);
  border-radius: 50%;
  animation: bw-candleglow 2s ease-in-out infinite alternate;
}
.scn-baptista-house-wooing .shadow {
  position: absolute; bottom: 24%; left: 30%; width: 140px; height: 20px;
  background: radial-gradient(ellipse, rgba(0,0,0,0.4) 0%, transparent 80%);
  animation: bw-shadow 8s ease-in-out infinite alternate;
}
@keyframes bw-wall { 0% { opacity: 0.85; } 50% { opacity: 1; } 100% { opacity: 0.9; } }
@keyframes bw-window { 0% { box-shadow: 0 0 12px 4px rgba(242,228,200,0.2); } 50% { box-shadow: 0 0 24px 10px rgba(242,228,200,0.4); } 100% { box-shadow: 0 0 16px 6px rgba(242,228,200,0.25); } }
@keyframes bw-table { 0% { transform: skewX(-2deg) translateY(0); } 50% { transform: skewX(-1deg) translateY(-2px); } 100% { transform: skewX(-2deg) translateY(0); } }
@keyframes bw-figure1 { 0%, 100% { transform: translateX(0) rotate(0deg); } 25% { transform: translateX(4px) rotate(2deg); } 50% { transform: translateX(8px) rotate(0deg); } 75% { transform: translateX(4px) rotate(-2deg); } }
@keyframes bw-figure2 { 0%, 100% { transform: translateX(0) rotate(0deg); } 25% { transform: translateX(-3px) rotate(-1deg); } 50% { transform: translateX(-6px) rotate(0deg); } 75% { transform: translateX(-3px) rotate(1deg); } }
@keyframes bw-candleglow { 0% { opacity: 0.6; transform: scale(1); } 50% { opacity: 1; transform: scale(1.2); } 100% { opacity: 0.7; transform: scale(0.95); } }
@keyframes bw-shadow { 0% { opacity: 0.3; transform: translateX(0); } 50% { opacity: 0.5; transform: translateX(10px); } 100% { opacity: 0.3; transform: translateX(0); } }

.scn-baptista-house-petruchio-alone {
  background:
    linear-gradient(180deg, #d4b88a 0%, #b09070 40%, #6a4e2a 100%),
    radial-gradient(ellipse at 60% 40%, #f0e0c0 0%, transparent 65%);
}
.scn-baptista-house-petruchio-alone .wall {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #c8a878 0%, #a88858 100%);
  animation: ba-wall 14s ease-in-out infinite alternate;
}
.scn-baptista-house-petruchio-alone .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(0deg, #5a3a1a 0%, #7a5a3a 100%);
  border-radius: 15% 15% 0 0 / 8% 8% 0 0;
  box-shadow: inset 0 6px 10px rgba(0,0,0,0.3);
}
.scn-baptista-house-petruchio-alone .window {
  position: absolute; top: 15%; left: 10%; width: 50px; height: 70px;
  background: linear-gradient(180deg, #f2e4c8 0%, #d6c4a0 100%);
  border: 4px solid #7a5a3a;
  border-radius: 4px;
  box-shadow: 0 0 18px 6px rgba(242,228,200,0.25);
  animation: ba-window 7s ease-in-out infinite alternate;
}
.scn-baptista-house-petruchio-alone .chair {
  position: absolute; bottom: 24%; left: 35%; width: 30px; height: 40px;
  background: linear-gradient(180deg, #6a4e2a 0%, #4a3220 100%);
  border-radius: 4px;
  box-shadow: 0 4px 8px rgba(0,0,0,0.4);
  transform: rotate(-1deg);
  animation: ba-chair 9s ease-in-out infinite alternate;
}
.scn-baptista-house-petruchio-alone .figure-petruchio {
  position: absolute; bottom: 22%; left: 28%; width: 22px; height: 58px;
  background: linear-gradient(180deg, #8a6e4a 0%, #3a2a10 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: ba-figure 5s ease-in-out infinite;
}
.scn-baptista-house-petruchio-alone .lantern {
  position: absolute; bottom: 38%; left: 55%; width: 12px; height: 18px;
  background: radial-gradient(circle at 50% 80%, #ffd060 0%, #b08040 70%);
  border-radius: 50% 50% 40% 40%;
  box-shadow: 0 0 20px 6px rgba(255,208,96,0.6);
  animation: ba-lantern 3s ease-in-out infinite alternate;
}
.scn-baptista-house-petruchio-alone .shadow {
  position: absolute; bottom: 22%; left: 20%; width: 60px; height: 16px;
  background: radial-gradient(ellipse, rgba(0,0,0,0.4) 0%, transparent 80%);
  animation: ba-shadow 6s ease-in-out infinite alternate;
}
@keyframes ba-wall { 0% { opacity: 0.8; } 50% { opacity: 1; } 100% { opacity: 0.85; } }
@keyframes ba-window { 0% { box-shadow: 0 0 12px 4px rgba(242,228,200,0.2); } 50% { box-shadow: 0 0 28px 10px rgba(242,228,200,0.4); } 100% { box-shadow: 0 0 18px 6px rgba(242,228,200,0.25); } }
@keyframes ba-chair { 0% { transform: rotate(-1deg) translateY(0); } 50% { transform: rotate(1deg) translateY(-3px); } 100% { transform: rotate(-1deg) translateY(0); } }
@keyframes ba-figure { 0%, 100% { transform: translateX(0) rotate(0deg); } 25% { transform: translateX(5px) rotate(2deg); } 50% { transform: translateX(10px) rotate(0deg); } 75% { transform: translateX(5px) rotate(-2deg); } }
@keyframes ba-lantern { 0% { opacity: 0.7; box-shadow: 0 0 12px 4px rgba(255,208,96,0.4); } 50% { opacity: 1; box-shadow: 0 0 28px 10px rgba(255,208,96,0.7); } 100% { opacity: 0.8; box-shadow: 0 0 16px 6px rgba(255,208,96,0.5); } }
@keyframes ba-shadow { 0% { opacity: 0.2; transform: translateX(0); } 50% { opacity: 0.4; transform: translateX(12px); } 100% { opacity: 0.2; transform: translateX(0); } }

.scn-baptista-house-petruchio-woos-kate {
  background:
    linear-gradient(180deg, #d4b88a 0%, #b09070 30%, #6a4e2a 100%),
    radial-gradient(ellipse at 50% 40%, #f2e4c8 0%, transparent 60%);
}
.scn-baptista-house-petruchio-woos-kate .wall {
  position: absolute; inset: 0 0 32% 0;
  background: linear-gradient(180deg, #c8a878 0%, #a88858 100%);
  animation: pk-wall 15s ease-in-out infinite alternate;
}
.scn-baptista-house-petruchio-woos-kate .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 32%;
  background: linear-gradient(0deg, #5a3a1a 0%, #7a5a3a 100%);
  border-radius: 18% 18% 0 0 / 8% 8% 0 0;
  box-shadow: inset 0 6px 12px rgba(0,0,0,0.3);
}
.scn-baptista-house-petruchio-woos-kate .fireplace {
  position: absolute; bottom: 28%; left: 40%; width: 80px; height: 60px;
  background: linear-gradient(180deg, #4a3220 0%, #2a1a0a 100%);
  border-radius: 10% 10% 4% 4%;
  box-shadow: 0 4px 12px rgba(0,0,0,0.5), inset 0 0 20px #c08040;
}
.scn-baptista-house-petruchio-woos-kate .figure-petruchio {
  position: absolute; bottom: 22%; left: 32%; width: 24px; height: 60px;
  background: linear-gradient(180deg, #8a6e4a 0%, #3a2a10 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: pk-figp 4s ease-in-out infinite;
}
.scn-baptista-house-petruchio-woos-kate .figure-kate {
  position: absolute; bottom: 22%; left: 52%; width: 22px; height: 58px;
  background: linear-gradient(180deg, #7a5a3a 0%, #2a1a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: pk-figk 5s ease-in-out infinite 0.5s;
}
.scn-baptista-house-petruchio-woos-kate .hearth-glow {
  position: absolute; bottom: 30%; left: 44%; width: 60px; height: 50px;
  background: radial-gradient(ellipse, #ffa040 0%, #d07020 40%, transparent 70%);
  border-radius: 50%;
  animation: pk-hearth 3s ease-in-out infinite alternate;
}
.scn-baptista-house-petruchio-woos-kate .ornament {
  position: absolute; bottom: 32%; left: 30%; width: 10px; height: 14px;
  background: #c08040;
  border-radius: 50% 50% 40% 40%;
  box-shadow: 0 0 8px 2px rgba(192,128,64,0.5);
  animation: pk-ornament 7s ease-in-out infinite alternate;
}
@keyframes pk-wall { 0% { opacity: 0.85; } 50% { opacity: 1; } 100% { opacity: 0.9; } }
@keyframes pk-figp { 0%, 100% { transform: translateX(0) rotate(0deg); } 25% { transform: translateX(6px) rotate(3deg); } 50% { transform: translateX(12px) rotate(0deg); } 75% { transform: translateX(6px) rotate(-3deg); } }
@keyframes pk-figk { 0%, 100% { transform: translateX(0) rotate(0deg); } 25% { transform: translateX(-4px) rotate(-2deg); } 50% { transform: translateX(-8px) rotate(0deg); } 75% { transform: translateX(-4px) rotate(2deg); } }
@keyframes pk-hearth { 0% { opacity: 0.6; transform: scale(1); } 50% { opacity: 1; transform: scale(1.3); } 100% { opacity: 0.7; transform: scale(0.95); } }
@keyframes pk-ornament { 0%, 100% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-3px) rotate(10deg); } }

.scn-baptista-house-after-wooing {
  background:
    linear-gradient(180deg, #d4b88a 0%, #b09070 40%, #6a4e2a 100%),
    radial-gradient(ellipse at 50% 30%, #f0e0c0 0%, transparent 70%);
}
.scn-baptista-house-after-wooing .wall {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #c8a878 0%, #a88858 100%);
  animation: aw-wall 18s ease-in-out infinite alternate;
}
.scn-baptista-house-after-wooing .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(0deg, #5a3a1a 0%, #7a5a3a 100%);
  border-radius: 20% 20% 0 0 / 8% 8% 0 0;
  box-shadow: inset 0 6px 10px rgba(0,0,0,0.3);
}
.scn-baptista-house-after-wooing .table {
  position: absolute; bottom: 24%; left: 25%; width: 120px; height: 25px;
  background: linear-gradient(0deg, #4a3220 0%, #6a4e2a 100%);
  border-radius: 4px;
  box-shadow: 0 4px 8px rgba(0,0,0,0.5);
  animation: aw-table 10s ease-in-out infinite alternate;
}
.scn-baptista-house-after-wooing .document {
  position: absolute; bottom: 32%; left: 40%; width: 40px; height: 30px;
  background: linear-gradient(180deg, #f0e0c0 0%, #d4b88a 100%);
  border-radius: 2px;
  transform: rotate(-1deg);
  box-shadow: 0 2px 4px rgba(0,0,0,0.3);
  animation: aw-doc 8s ease-in-out infinite alternate;
}
.scn-baptista-house-after-wooing .chair-left {
  position: absolute; bottom: 22%; left: 20%; width: 28px; height: 38px;
  background: linear-gradient(180deg, #6a4e2a 0%, #4a3220 100%);
  border-radius: 4px;
  transform: rotate(2deg);
  box-shadow: 0 4px 6px rgba(0,0,0,0.3);
  animation: aw-chair 12s ease-in-out infinite alternate;
}
.scn-baptista-house-after-wooing .chair-right {
  position: absolute; bottom: 22%; left: 60%; width: 28px; height: 38px;
  background: linear-gradient(180deg, #6a4e2a 0%, #4a3220 100%);
  border-radius: 4px;
  transform: rotate(-2deg);
  box-shadow: 0 4px 6px rgba(0,0,0,0.3);
  animation: aw-chair 12s ease-in-out infinite alternate 6s;
}
.scn-baptista-house-after-wooing .candle {
  position: absolute; bottom: 34%; left: 48%; width: 8px; height: 18px;
  background: linear-gradient(180deg, #f0d0a0 0%, #d0a070 100%);
  border-radius: 4px 4px 2px 2px;
}
.scn-baptista-house-after-wooing .candle::after {
  content: '';
  position: absolute; top: -8px; left: -2px; width: 12px; height: 12px;
  background: radial-gradient(circle, #ffd060 0%, #ffb040 40%, transparent 70%);
  border-radius: 50%;
  animation: aw-candle 4s ease-in-out infinite alternate;
}
@keyframes aw-wall { 0% { opacity: 0.8; } 50% { opacity: 1; } 100% { opacity: 0.9; } }
@keyframes aw-table { 0% { transform: translateY(0); } 50% { transform: translateY(-2px); } 100% { transform: translateY(0); } }
@keyframes aw-doc { 0% { opacity: 0.7; transform: rotate(-1deg) translateY(0); } 50% { opacity: 1; transform: rotate(0deg) translateY(-1px); } 100% { opacity: 0.8; transform: rotate(-1deg) translateY(0); } }
@keyframes aw-chair { 0% { transform: rotate(2deg) translateY(0); } 50% { transform: rotate(0deg) translateY(-3px); } 100% { transform: rotate(2deg) translateY(0); } }
@keyframes aw-candle { 0% { opacity: 0.6; transform: scale(1); } 50% { opacity: 1; transform: scale(1.1); } 100% { opacity: 0.7; transform: scale(0.95); } }

/* wager-victory */
.scn-wager-victory {
  background: linear-gradient(180deg, #d4a045 0%, #b87a2c 30%, #8a5a1a 70%, #4a2a0a 100%), radial-gradient(ellipse at 50% 20%, #f2c46a 0%, transparent 60%);
}
.scn-wager-victory .bg {
  position: absolute; inset: 0; background: linear-gradient(180deg, rgba(255,210,130,0.15) 0%, transparent 60%, rgba(0,0,0,0.3) 100%); animation: wv-bg 8s ease-in-out infinite alternate;
}
.scn-wager-victory .arch {
  position: absolute; bottom: 30%; left: 5%; right: 5%; height: 55%; background: linear-gradient(135deg, #b07a3a 0%, #7a4a1a 100%); border-radius: 30% 30% 0 0 / 50% 50% 0 0; box-shadow: inset 0 20px 40px rgba(0,0,0,0.4); animation: wv-arch 12s ease-in-out infinite;
}
.scn-wager-victory .light-beam {
  position: absolute; top: 0; left: 35%; width: 30%; height: 100%; background: linear-gradient(180deg, rgba(255,215,140,0.4) 0%, transparent 100%); clip-path: polygon(0% 0%, 100% 0%, 80% 100%, 20% 100%); animation: wv-beam 6s ease-in-out infinite alternate;
}
.scn-wager-victory .figure-victor {
  position: absolute; bottom: 30%; left: 50%; width: 28px; height: 60px; transform: translateX(-50%); background: linear-gradient(180deg, #3a2010 0%, #1a0a00 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: wv-figure 4s ease-in-out infinite;
}
.scn-wager-victory .cup {
  position: absolute; bottom: 55%; left: 50%; width: 16px; height: 22px; transform: translateX(-50%); background: linear-gradient(180deg, #f0c060 0%, #c08030 100%); border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%; box-shadow: 0 0 20px 6px rgba(240,192,96,0.6); animation: wv-cup 3s ease-in-out infinite;
}
.scn-wager-victory .laurel-left {
  position: absolute; bottom: 42%; left: 46%; width: 20px; height: 20px; background: radial-gradient(circle, #7a9a3a 0%, #3a5a1a 70%); border-radius: 50% 0 50% 0; transform: rotate(-30deg); animation: wv-laurel 5s ease-in-out infinite;
}
.scn-wager-victory .laurel-right {
  position: absolute; bottom: 42%; left: 52%; width: 20px; height: 20px; background: radial-gradient(circle, #7a9a3a 0%, #3a5a1a 70%); border-radius: 0 50% 0 50%; transform: rotate(30deg); animation: wv-laurel 5s ease-in-out infinite reverse;
}
.scn-wager-victory .sparkle {
  position: absolute; top: 15%; left: 20%; width: 6px; height: 6px; background: #fffac0; border-radius: 50%; box-shadow: 0 0 12px 4px rgba(255,250,192,0.7); animation: wv-sparkle 2s ease-in-out infinite;
}
@keyframes wv-bg { 0% { opacity:0.7 } 50% { opacity:1 } 100% { opacity:0.8 } }
@keyframes wv-arch { 0%,100% { transform: translateY(0) scaleY(1) } 50% { transform: translateY(-4px) scaleY(1.02) } }
@keyframes wv-beam { 0% { opacity:0.5; transform: rotate(-1deg) } 50% { opacity:0.8; transform: rotate(1deg) } 100% { opacity:0.6; transform: rotate(0deg) } }
@keyframes wv-figure { 0% { transform: translateX(-50%) rotate(-2deg) } 25% { transform: translateX(-48%) rotate(2deg) translateY(-2px) } 50% { transform: translateX(-50%) rotate(-1deg) translateY(-5px) } 75% { transform: translateX(-52%) rotate(1deg) translateY(-2px) } 100% { transform: translateX(-50%) rotate(0deg) } }
@keyframes wv-cup { 0%,100% { transform: translateX(-50%) rotate(-5deg) scale(1) } 50% { transform: translateX(-50%) rotate(5deg) scale(1.1) } }
@keyframes wv-laurel { 0%,100% { transform: rotate(-30deg) scale(1) } 50% { transform: rotate(-20deg) scale(1.15) } }
@keyframes wv-sparkle { 0%,100% { opacity:0; transform: scale(0) } 50% { opacity:1; transform: scale(1.5) } }

/* item-cap-bauble */
.scn-item-cap-bauble {
  background: linear-gradient(180deg, #2a3a4a 0%, #1a2a3a 40%, #0a1a2a 100%), radial-gradient(ellipse at 50% 30%, #3a5a7a 0%, transparent 70%);
}
.scn-item-cap-bauble .bg {
  position: absolute; inset: 0; background: linear-gradient(135deg, rgba(200,220,240,0.08) 0%, rgba(0,0,0,0.3) 100%); animation: icb-bg 10s ease-in-out infinite alternate;
}
.scn-item-cap-bauble .stage-floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%; background: linear-gradient(0deg, #1a2a3a 0%, #2a3a4a 100%); border-radius: 10% 10% 0 0 / 30% 30% 0 0; box-shadow: inset 0 10px 20px rgba(0,0,0,0.5); animation: icb-floor 6s ease-in-out infinite;
}
.scn-item-cap-bauble .figure-arm {
  position: absolute; bottom: 25%; left: 35%; width: 16px; height: 50px; background: linear-gradient(180deg, #3a4a5a 0%, #1a2a3a 100%); border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%; transform-origin: bottom center; animation: icb-arm 4s ease-in-out infinite;
}
.scn-item-cap-bauble .cap {
  position: absolute; bottom: 52%; left: 38%; width: 30px; height: 18px; background: linear-gradient(180deg, #7a5a3a 0%, #4a3a2a 100%); border-radius: 50% 50% 20% 20% / 60% 60% 40% 40%; box-shadow: 0 4px 8px rgba(0,0,0,0.5), inset 0 2px 4px rgba(255,200,150,0.2); animation: icb-cap 3s ease-in-out infinite alternate;
}
.scn-item-cap-bauble .shadow-stripe {
  position: absolute; top: 20%; left: 0; width: 100%; height: 8px; background: linear-gradient(90deg, transparent, rgba(0,0,0,0.4) 30%, rgba(0,0,0,0.4) 70%, transparent); animation: icb-stripe 5s linear infinite;
}
.scn-item-cap-bauble .glint {
  position: absolute; top: 30%; left: 25%; width: 8px; height: 8px; background: #a0c8e0; border-radius: 50%; box-shadow: 0 0 20px 6px rgba(160,200,224,0.5); animation: icb-glint 2s ease-in-out infinite alternate;
}
@keyframes icb-bg { 0% { opacity:0.8 } 50% { opacity:1 } 100% { opacity:0.7 } }
@keyframes icb-floor { 0%,100% { transform: translateY(0) scaleX(1) } 50% { transform: translateY(-2px) scaleX(1.01) } }
@keyframes icb-arm { 0% { transform: rotate(-10deg) translateX(0) } 25% { transform: rotate(-15deg) translateX(-2px) } 50% { transform: rotate(-10deg) translateX(0) } 75% { transform: rotate(-5deg) translateX(2px) } 100% { transform: rotate(-8deg) translateX(0) } }
@keyframes icb-cap { 0% { transform: rotate(-5deg) scale(1) } 50% { transform: rotate(5deg) scale(1.05) } 100% { transform: rotate(0deg) scale(1) } }
@keyframes icb-stripe { 0% { transform: translateX(-100%) } 100% { transform: translateX(100%) } }
@keyframes icb-glint { 0% { opacity:0.3; transform: scale(0.8) } 100% { opacity:1; transform: scale(1.3) } }

/* bianca-rebukes */
.scn-bianca-rebukes {
  background: linear-gradient(180deg, #4a5a6a 0%, #3a4a5a 50%, #2a3a4a 100%), radial-gradient(ellipse at 50% 40%, #5a7a9a 0%, transparent 70%);
}
.scn-bianca-rebukes .bg {
  position: absolute; inset: 0; background: linear-gradient(135deg, rgba(255,255,240,0.05) 0%, rgba(0,0,0,0.2) 100%); animation: br-bg 12s ease-in-out infinite alternate;
}
.scn-bianca-rebukes .pillar-left {
  position: absolute; bottom: 0; left: 10%; width: 14px; height: 80%; background: linear-gradient(90deg, #5a6a7a 0%, #3a4a5a 100%); border-radius: 6px 6px 0 0; box-shadow: inset -4px 0 8px rgba(0,0,0,0.4); animation: br-pillar 9s ease-in-out infinite;
}
.scn-bianca-rebukes .pillar-right {
  position: absolute; bottom: 0; right: 10%; width: 14px; height: 80%; background: linear-gradient(90deg, #3a4a5a 0%, #5a6a7a 100%); border-radius: 6px 6px 0 0; box-shadow: inset 4px 0 8px rgba(0,0,0,0.4); animation: br-pillar 9s ease-in-out infinite reverse;
}
.scn-bianca-rebukes .figure-bianca {
  position: absolute; bottom: 20%; left: 38%; width: 22px; height: 60px; background: linear-gradient(180deg, #4a5a6a 0%, #2a3a4a 100%); border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%; transform-origin: bottom center; animation: br-bianca 4s ease-in-out infinite;
}
.scn-bianca-rebukes .figure-other {
  position: absolute; bottom: 20%; right: 38%; width: 24px; height: 58px; background: linear-gradient(180deg, #3a4a5a 0%, #1a2a3a 100%); border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%; transform-origin: bottom center; animation: br-other 4s ease-in-out infinite;
}
.scn-bianca-rebukes .floor-line {
  position: absolute; bottom: 18%; left: 0; right: 0; height: 2px; background: linear-gradient(90deg, transparent, rgba(200,200,200,0.3) 30%, rgba(200,200,200,0.3) 70%, transparent); animation: br-line 6s ease-in-out infinite alternate;
}
.scn-bianca-rebukes .tension-line {
  position: absolute; top: 35%; left: 45%; width: 10%; height: 2px; background: #c0d0e0; box-shadow: 0 0 10px 2px rgba(192,208,224,0.4); transform: rotate(10deg); animation: br-tension 2s ease-in-out infinite alternate;
}
@keyframes br-bg { 0% { opacity:0.8 } 50% { opacity:1 } 100% { opacity:0.7 } }
@keyframes br-pillar { 0%,100% { transform: translateY(0) } 50% { transform: translateY(-3px) } }
@keyframes br-bianca { 0% { transform: rotate(0deg) translateX(0) } 25% { transform: rotate(-5deg) translateX(-2px) } 50% { transform: rotate(2deg) translateX(0) } 75% { transform: rotate(-2deg) translateX(1px) } 100% { transform: rotate(0deg) translateX(0) } }
@keyframes br-other { 0% { transform: rotate(0deg) translateX(0) } 25% { transform: rotate(5deg) translateX(2px) } 50% { transform: rotate(-2deg) translateX(0) } 75% { transform: rotate(2deg) translateX(-1px) } 100% { transform: rotate(0deg) translateX(0) } }
@keyframes br-line { 0% { opacity:0.3 } 50% { opacity:0.7 } 100% { opacity:0.4 } }
@keyframes br-tension { 0% { transform: rotate(5deg) scaleX(1) } 100% { transform: rotate(15deg) scaleX(1.5) } }

/* kate-obedience-speech */
.scn-kate-obedience-speech {
  background: linear-gradient(180deg, #f0e8d0 0%, #d8c8a8 40%, #b8a888 100%), radial-gradient(ellipse at 50% 30%, #faf0dc 0%, transparent 70%);
}
.scn-kate-obedience-speech .bg {
  position: absolute; inset: 0; background: linear-gradient(180deg, rgba(255,255,240,0.1) 0%, rgba(0,0,0,0.05) 100%); animation: kos-bg 15s ease-in-out infinite alternate;
}
.scn-kate-obedience-speech .window {
  position: absolute; top: 10%; left: 40%; width: 20%; height: 40%; background: linear-gradient(180deg, #b0c8e0 0%, #8090b0 100%); border-radius: 20% 20% 10% 10% / 30% 30% 20% 20%; box-shadow: inset 0 0 20px rgba(255,255,200,0.3); animation: kos-window 20s ease-in-out infinite alternate;
}
.scn-kate-obedience-speech .window-glow {
  position: absolute; top: 8%; left: 38%; width: 24%; height: 44%; background: radial-gradient(ellipse, rgba(255,240,200,0.2) 0%, transparent 70%); animation: kos-glow 8s ease-in-out infinite alternate;
}
.scn-kate-obedience-speech .figure-kate {
  position: absolute; bottom: 20%; left: 50%; width: 30px; height: 70px; transform: translateX(-50%); background: linear-gradient(180deg, #6a5a4a 0%, #3a2a1a 100%); border-radius: 50% 50% 40% 40% / 50% 50% 30% 30%; animation: kos-figure 6s ease-in-out infinite;
}
.scn-kate-obedience-speech .arms-open {
  position: absolute; bottom: 40%; left: 46%; width: 8%; height: 6px; background: linear-gradient(90deg, #5a4a3a 0%, #7a6a5a 100%); border-radius: 50%; transform: rotate(-20deg); animation: kos-arms 5s ease-in-out infinite alternate;
}
.scn-kate-obedience-speech .dove {
  position: absolute; top: 30%; left: 30%; width: 20px; height: 14px; background: radial-gradient(circle, #f0e8d0 0%, #b0a890 70%); border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%; transform: rotate(15deg); animation: kos-dove 8s ease-in-out infinite;
}
.scn-kate-obedience-speech .petal-left {
  position: absolute; top: 60%; left: 20%; width: 8px; height: 8px; background: radial-gradient(circle, #e0c8b0 0%, #b88870 100%); border-radius: 50% 0 50% 0; animation: kos-petal 10s ease-in-out infinite;
}
.scn-kate-obedience-speech .petal-right {
  position: absolute; top: 55%; right: 20%; width: 8px; height: 8px; background: radial-gradient(circle, #e0c8b0 0%, #b88870 100%); border-radius: 0 50% 0 50%; animation: kos-petal 10s ease-in-out infinite reverse;
}
@keyframes kos-bg { 0% { opacity:0.9 } 50% { opacity:1 } 100% { opacity:0.8 } }
@keyframes kos-window { 0%,100% { transform: translateY(0) scaleY(1) } 50% { transform: translateY(-5px) scaleY(1.05) } }
@keyframes kos-glow { 0% { opacity:0.3 } 50% { opacity:0.6 } 100% { opacity:0.4 } }
@keyframes kos-figure { 0% { transform: translateX(-50%) translateY(0) } 25% { transform: translateX(-50%) translateY(-5px) rotate(2deg) } 50% { transform: translateX(-50%) translateY(-8px) rotate(0deg) } 75% { transform: translateX(-50%) translateY(-3px) rotate(-1deg) } 100% { transform: translateX(-50%) translateY(0) } }
@keyframes kos-arms { 0% { transform: rotate(-20deg) scaleX(1) } 50% { transform: rotate(-10deg) scaleX(1.1) } 100% { transform: rotate(-15deg) scaleX(1.05) } }
@keyframes kos-dove { 0%,100% { transform: rotate(15deg) translateY(0) scale(1) } 50% { transform: rotate(25deg) translateY(-10px) scale(1.1) } }
@keyframes kos-petal { 0%,100% { transform: rotate(0deg) translateY(0) } 50% { transform: rotate(45deg) translateY(-15px) } }

/* ---- lucentio-tranio-plot ---- */
.scn-lucentio-tranio-plot {
  background:
    linear-gradient(180deg, #fdce8c 0%, #f6b26b 30%, #e6a050 60%, #c07a3c 100%),
    radial-gradient(ellipse at 70% 20%, #ffedc0 0%, transparent 60%);
}
.scn-lucentio-tranio-plot .sky {
  position: absolute; inset: 0 0 60% 0;
  background: linear-gradient(180deg, #a6d8f0 0%, #d4eef7 40%, #fef0d0 100%);
  animation: lt-sky 12s ease-in-out infinite alternate;
}
.scn-lucentio-tranio-plot .sun {
  position: absolute; top: 8%; right: 22%;
  width: 70px; height: 70px;
  background: radial-gradient(circle, #fff9c4 0%, #ffd54f 40%, transparent 70%);
  border-radius: 50%;
  box-shadow: 0 0 80px 30px rgba(255,213,79,0.4);
  animation: lt-sun 20s ease-in-out infinite;
}
.scn-lucentio-tranio-plot .wall {
  position: absolute; bottom: 40%; left: 10%; right: 10%; height: 50%;
  background: linear-gradient(90deg, #dbb58a 0%, #c89f72 30%, #b88a5e 70%, #a6774a 100%);
  border-radius: 4px 4px 0 0;
  box-shadow: inset 0 4px 12px rgba(0,0,0,0.2);
}
.scn-lucentio-tranio-plot .window {
  position: absolute; bottom: 52%; left: 38%;
  width: 40px; height: 50px;
  background: linear-gradient(180deg, #b0d0e8 0%, #d4e8f0 100%);
  border: 3px solid #82664a;
  border-radius: 4px;
  box-shadow: inset 0 0 20px rgba(255,255,200,0.5);
  animation: lt-window 6s ease-in-out infinite alternate;
}
.scn-lucentio-tranio-plot .figure-left {
  position: absolute; bottom: 38%; left: 24%;
  width: 22px; height: 50px;
  background: linear-gradient(180deg, #5a3e2e 0%, #3a261a 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: lt-figureL 5s ease-in-out infinite;
}
.scn-lucentio-tranio-plot .figure-right {
  position: absolute; bottom: 38%; right: 28%;
  width: 20px; height: 48px;
  background: linear-gradient(180deg, #4a3525 0%, #2c1e12 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: lt-figureR 6s ease-in-out infinite;
}
.scn-lucentio-tranio-plot .shrub {
  position: absolute; bottom: 40%; left: 48%;
  width: 60px; height: 40px;
  background: radial-gradient(ellipse at 50% 100%, #3a6b2c 0%, #2a4f1e 60%, transparent 80%);
  border-radius: 60% 40% 20% 20%;
  animation: lt-shrub 18s ease-in-out infinite alternate;
}
@keyframes lt-sky { 0% { opacity: 0.85; } 50% { opacity: 1; } 100% { opacity: 0.9; } }
@keyframes lt-sun { 0% { transform: scale(1) translate(0,0); } 50% { transform: scale(1.05) translate(-3px,-2px); } 100% { transform: scale(1) translate(0,0); } }
@keyframes lt-window { 0% { box-shadow: inset 0 0 10px rgba(255,255,200,0.3); } 50% { box-shadow: inset 0 0 30px rgba(255,255,200,0.8); } 100% { box-shadow: inset 0 0 15px rgba(255,255,200,0.4); } }
@keyframes lt-figureL { 0%,100% { transform: translateX(0) rotate(0deg); } 25% { transform: translateX(4px) translateY(-2px) rotate(1deg); } 50% { transform: translateX(0) translateY(-3px) rotate(0deg); } 75% { transform: translateX(-4px) translateY(-1px) rotate(-1deg); } }
@keyframes lt-figureR { 0%,100% { transform: translateX(0) rotate(0deg); } 25% { transform: translateX(-3px) translateY(-2px) rotate(-1deg); } 50% { transform: translateX(0) translateY(-4px) rotate(0deg); } 75% { transform: translateX(3px) translateY(-1px) rotate(1deg); } }
@keyframes lt-shrub { 0% { transform: scaleY(1); } 50% { transform: scaleY(1.05) translateY(-2px); } 100% { transform: scaleY(1); } }

/* ---- biondello-enters ---- */
.scn-biondello-enters {
  background:
    linear-gradient(180deg, #fce4a8 0%, #f0c87a 30%, #dba450 60%, #b88230 100%),
    radial-gradient(ellipse at 60% 30%, #fff6d0 0%, transparent 50%);
}
.scn-biondello-enters .ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 45%;
  background: linear-gradient(180deg, #b8905a 0%, #9a7a44 40%, #7a5e30 100%);
  border-radius: 20% 10% 0 0;
}
.scn-biondello-enters .path {
  position: absolute; bottom: 18%; left: 15%; right: 15%; height: 12%;
  background: linear-gradient(90deg, #d4b060 0%, #e8c880 30%, #d4b060 60%, #c09850 100%);
  border-radius: 20% 40% 10% 20%;
  box-shadow: inset 0 2px 6px rgba(0,0,0,0.2);
  animation: be-path 15s linear infinite;
}
.scn-biondello-enters .door {
  position: absolute; bottom: 30%; left: 50%; width: 60px; height: 90px;
  transform: translateX(-50%);
  background: linear-gradient(90deg, #6a4a2a 0%, #50361e 40%, #6a4a2a 100%);
  border: 2px solid #3a2610;
  border-radius: 6px 6px 0 0;
  box-shadow: inset 0 0 20px rgba(0,0,0,0.4), 0 8px 20px rgba(0,0,0,0.3);
}
.scn-biondello-enters .figure-enter {
  position: absolute; bottom: 16%; left: 25%;
  width: 24px; height: 55px;
  background: linear-gradient(180deg, #2a1e12 0%, #1a1008 100%);
  border-radius: 50% 50% 35% 35% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: be-enter 4s ease-in-out infinite;
}
.scn-biondello-enters .figure-wait {
  position: absolute; bottom: 18%; right: 30%;
  width: 22px; height: 50px;
  background: linear-gradient(180deg, #3a2618 0%, #24160a 100%);
  border-radius: 50% 50% 35% 35% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: be-wait 3s ease-in-out infinite alternate;
}
.scn-biondello-enters .shadow-blade {
  position: absolute; bottom: 10%; left: 40%; width: 30px; height: 80px;
  background: linear-gradient(180deg, rgba(0,0,0,0.3) 0%, transparent 100%);
  transform: skewX(-15deg);
  animation: be-shadow 7s ease-in-out infinite alternate;
}
.scn-biondello-enters .dust {
  position: absolute; bottom: 30%; left: 35%; width: 20px; height: 20px;
  background: radial-gradient(circle, rgba(200,180,140,0.6) 0%, transparent 70%);
  border-radius: 50%;
  filter: blur(4px);
  animation: be-dust 8s ease-in-out infinite;
}
@keyframes be-path { 0% { background-position: 0% 0%; } 100% { background-position: 100% 0%; } }
@keyframes be-enter { 0% { transform: translateX(0) rotate(0deg); } 20% { transform: translateX(8px) translateY(-1px) rotate(2deg); } 40% { transform: translateX(16px) translateY(0) rotate(-1deg); } 60% { transform: translateX(24px) translateY(-2px) rotate(1deg); } 80% { transform: translateX(32px) translateY(0) rotate(0deg); } 100% { transform: translateX(40px) translateY(-1px) rotate(-2deg); } }
@keyframes be-wait { 0% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-3px) rotate(1deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes be-shadow { 0% { opacity: 0.3; transform: skewX(-15deg) scaleY(1); } 50% { opacity: 0.6; transform: skewX(-10deg) scaleY(1.1); } 100% { opacity: 0.2; transform: skewX(-20deg) scaleY(1); } }
@keyframes be-dust { 0% { transform: translate(0,0) scale(1); opacity: 0.7; } 50% { transform: translate(5px,-10px) scale(2); opacity: 0.3; } 100% { transform: translate(-5px,-5px) scale(1); opacity: 0.7; } }

/* ---- tranio-lucentio-exeunt ---- */
.scn-tranio-lucentio-exeunt {
  background:
    linear-gradient(180deg, #f7d48a 0%, #ecb86c 25%, #d99e4e 50%, #b87e30 75%, #9a6420 100%),
    radial-gradient(ellipse at 50% 20%, #fff6c0 0%, transparent 60%);
}
.scn-tranio-lucentio-exeunt .sky {
  position: absolute; inset: 0 0 65% 0;
  background: linear-gradient(180deg, #9dc6e0 0%, #c8e0f0 40%, #f7eab0 100%);
  animation: tle-sky 14s ease-in-out infinite alternate;
}
.scn-tranio-lucentio-exeunt .arch {
  position: absolute; bottom: 30%; left: 30%; right: 30%; height: 50%;
  background: linear-gradient(180deg, #c8a070 0%, #a88250 60%, #906a40 100%);
  border-radius: 50% 50% 0 0 / 40% 40% 0 0;
  box-shadow: inset 0 6px 20px rgba(0,0,0,0.3);
}
.scn-tranio-lucentio-exeunt .figure-a {
  position: absolute; bottom: 22%; left: 38%;
  width: 22px; height: 60px;
  background: linear-gradient(180deg, #3a2416 0%, #1e120a 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: tle-figA 6s ease-in-out infinite;
}
.scn-tranio-lucentio-exeunt .figure-b {
  position: absolute; bottom: 20%; right: 38%;
  width: 24px; height: 62px;
  background: linear-gradient(180deg, #4a3020 0%, #2a1a0e 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: tle-figB 5s ease-in-out infinite;
}
.scn-tranio-lucentio-exeunt .shadow-long {
  position: absolute; bottom: 0; left: 10%; right: 10%; height: 40%;
  background: linear-gradient(180deg, rgba(0,0,0,0.15) 0%, rgba(0,0,0,0.05) 100%);
  transform: skewY(-5deg);
  animation: tle-shadow 10s ease-in-out infinite alternate;
}
.scn-tranio-lucentio-exeunt .gate {
  position: absolute; bottom: 30%; left: 48%; width: 6px; height: 80px;
  background: #5a3a22;
  border-radius: 2px;
  box-shadow: 0 0 6px rgba(0,0,0,0.3);
  animation: tle-gate 9s ease-in-out infinite;
}
.scn-tranio-lucentio-exeunt .cobble {
  position: absolute; bottom: 12%; left: 25%; width: 100px; height: 20px;
  background: repeating-linear-gradient(90deg, #a08050 0px, #a08050 6px, #b89060 6px, #b89060 12px);
  border-radius: 4px;
  opacity: 0.6;
  animation: tle-cobble 20s linear infinite;
}
@keyframes tle-sky { 0% { opacity: 0.8; } 50% { opacity: 1; } 100% { opacity: 0.85; } }
@keyframes tle-figA { 0% { transform: translateX(0) rotate(0deg); } 25% { transform: translateX(-6px) translateY(-2px) rotate(-2deg); } 50% { transform: translateX(-12px) translateY(0) rotate(0deg); } 75% { transform: translateX(-18px) translateY(-1px) rotate(1deg); } 100% { transform: translateX(-24px) translateY(-3px) rotate(-2deg); } }
@keyframes tle-figB { 0% { transform: translateX(0) rotate(0deg); } 25% { transform: translateX(8px) translateY(-1px) rotate(2deg); } 50% { transform: translateX(16px) translateY(0) rotate(0deg); } 75% { transform: translateX(24px) translateY(-2px) rotate(-1deg); } 100% { transform: translateX(32px) translateY(-3px) rotate(1deg); } }
@keyframes tle-shadow { 0% { transform: skewY(-5deg) scaleX(1); } 50% { transform: skewY(-3deg) scaleX(1.05); } 100% { transform: skewY(-7deg) scaleX(1); } }
@keyframes tle-gate { 0%,100% { transform: scaleY(1); } 50% { transform: scaleY(1.02); } }
@keyframes tle-cobble { 0% { background-position: 0% 0%; } 100% { background-position: 200% 0%; } }

/* ---- petruchio-arrival ---- */
.scn-petruchio-arrival {
  background:
    linear-gradient(180deg, #edca90 0%, #dbb06a 30%, #c0904e 60%, #a07030 100%),
    radial-gradient(ellipse at 30% 40%, #fff4d0 0%, transparent 50%);
}
.scn-petruchio-arrival .stage {
  position: absolute; bottom: 0; left: 0; right: 0; height: 55%;
  background: linear-gradient(180deg, #c8a060 0%, #a88248 40%, #8a6a30 100%);
  border-radius: 30% 30% 0 0;
}
.scn-petruchio-arrival .curtain {
  position: absolute; top: 0; left: 0; right: 0; height: 40%;
  background: linear-gradient(135deg, #8a2a2a 0%, #b84040 30%, #8a2a2a 70%, #602020 100%);
  border-radius: 0 0 40% 40%;
  clip-path: polygon(0 0, 100% 0, 90% 80%, 80% 60%, 70% 80%, 60% 60%, 50% 80%, 40% 60%, 30% 80%, 20% 60%, 10% 80%, 0 100%);
  animation: pa-curtain 8s ease-in-out infinite alternate;
}
.scn-petruchio-arrival .lord {
  position: absolute; bottom: 28%; left: 30%;
  width: 30px; height: 70px;
  background: linear-gradient(180deg, #2a1e12 0%, #1a1008 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: pa-lord 6s ease-in-out infinite;
}
.scn-petruchio-arrival .chair {
  position: absolute; bottom: 22%; left: 28%;
  width: 45px; height: 55px;
  background: linear-gradient(180deg, #6a4a2a 0%, #4a321a 100%);
  border-radius: 20% 20% 10% 10%;
  box-shadow: 0 4px 12px rgba(0,0,0,0.3);
  animation: pa-chair 10s ease-in-out infinite alternate;
}
.scn-petruchio-arrival .figure-arrive {
  position: absolute; bottom: 24%; right: 28%;
  width: 24px; height: 60px;
  background: linear-gradient(180deg, #3a2416 0%, #1e120a 100%);
  border-radius: 50% 50% 35% 35% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: pa-arrive 5s ease-in-out infinite;
}
.scn-petruchio-arrival .speaker {
  position: absolute; top: 8%; left: 15%;
  width: 14px; height: 30px;
  background: linear-gradient(180deg, #5a3e2e 0%, #3a261a 100%);
  border-radius: 50% 50% 20% 20% / 40% 40% 30% 30%;
  animation: pa-speaker 4s ease-in-out infinite alternate;
}
@keyframes pa-curtain { 0% { transform: scaleY(1); } 50% { transform: scaleY(1.03); } 100% { transform: scaleY(0.97); } }
@keyframes pa-lord { 0%,100% { transform: translateY(0) rotate(0deg); } 25% { transform: translateY(-3px) rotate(2deg); } 50% { transform: translateY(-6px) rotate(0deg); } 75% { transform: translateY(-2px) rotate(-2deg); } }
@keyframes pa-chair { 0% { transform: scale(1); } 50% { transform: scale(1.02); } 100% { transform: scale(0.98); } }
@keyframes pa-arrive { 0% { transform: translateX(0) rotate(0deg); } 20% { transform: translateX(-5px) translateY(-2px) rotate(-2deg); } 40% { transform: translateX(-10px) translateY(0) rotate(0deg); } 60% { transform: translateX(-15px) translateY(-1px) rotate(2deg); } 80% { transform: translateX(-20px) translateY(-3px) rotate(-1deg); } 100% { transform: translateX(-25px) translateY(0) rotate(0deg); } }
@keyframes pa-speaker { 0% { transform: translateY(0) scaleY(1); opacity: 0.7; } 50% { transform: translateY(-4px) scaleY(1.1); opacity: 1; } 100% { transform: translateY(0) scaleY(1); opacity: 0.7; } }

.scn-hortensio-offers-katharina { background: linear-gradient(180deg, #f4e4c1 0%, #d4b68a 40%, #b8976a 100%), radial-gradient(ellipse at 70% 30%, #ffe7b0 0%, transparent 60%); }
.scn-hortensio-offers-katharina .wall { position: absolute; inset: 0 0 40% 0; background: linear-gradient(180deg, #e6d5b8 0%, #c9b392 100%); box-shadow: inset 0 -10px 30px rgba(0,0,0,0.15); }
.scn-hortensio-offers-katharina .floor { position: absolute; bottom: 0; left: 0; right: 0; height: 40%; background: linear-gradient(180deg, #b08a6a 0%, #8c6e52 100%); }
.scn-hortensio-offers-katharina .window { position: absolute; top: 12%; left: 25%; width: 90px; height: 120px; background: radial-gradient(ellipse at 50% 30%, #fff8d0 0%, #ffe4a0 60%, #d4b68a 100%); border: 4px solid #7a5e3e; border-radius: 4px; box-shadow: inset 0 0 20px rgba(255,200,100,0.3), 0 4px 12px rgba(0,0,0,0.2); }
.scn-hortensio-offers-katharina .sunbeam { position: absolute; top: 10%; left: 25%; width: 180px; height: 300px; background: linear-gradient(135deg, rgba(255,235,150,0.4) 0%, transparent 70%); transform: skewX(-10deg); animation: hok-beam 8s ease-in-out infinite alternate; }
.scn-hortensio-offers-katharina .figure-main { position: absolute; bottom: 38%; left: 30%; width: 36px; height: 80px; background: radial-gradient(ellipse at 50% 20%, #4a3a2a 0%, #2c1f14 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: hok-figure-main 5s ease-in-out infinite; }
.scn-hortensio-offers-katharina .figure-offer { position: absolute; bottom: 38%; right: 28%; width: 30px; height: 70px; background: radial-gradient(ellipse at 50% 20%, #5a4a3a 0%, #3a2a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: hok-figure-offer 6s ease-in-out infinite; }
.scn-hortensio-offers-katharina .puppet { position: absolute; bottom: 50%; right: 38%; width: 14px; height: 24px; background: radial-gradient(ellipse at 50% 20%, #c8553d 0%, #a0461a 100%); border-radius: 50% 50% 30% 30%; box-shadow: 0 2px 6px rgba(0,0,0,0.4); animation: hok-puppet 4s ease-in-out infinite; }
.scn-hortensio-offers-katharina .shadow-main { position: absolute; bottom: 38%; left: 30%; width: 40px; height: 10px; background: rgba(0,0,0,0.25); border-radius: 50%; transform: translateX(-50%) scaleY(0.5); animation: hok-shadow 5s ease-in-out infinite; }
.scn-hortensio-offers-katharina .shadow-offer { position: absolute; bottom: 38%; right: 28%; width: 35px; height: 10px; background: rgba(0,0,0,0.25); border-radius: 50%; transform: translateX(50%) scaleY(0.5); animation: hok-shadow 6s ease-in-out infinite; }
@keyframes hok-beam { 0% { opacity: 0.5; transform: skewX(-10deg) translateX(-5px); } 50% { opacity: 0.9; transform: skewX(-8deg) translateX(3px); } 100% { opacity: 0.6; transform: skewX(-12deg) translateX(-2px); } }
@keyframes hok-figure-main { 0% { transform: translateX(0) rotate(-2deg); } 40% { transform: translateX(4px) rotate(2deg); } 70% { transform: translateX(-2px) rotate(-1deg); } 100% { transform: translateX(0) rotate(0); } }
@keyframes hok-figure-offer { 0% { transform: translateX(0) rotate(1deg); } 30% { transform: translateX(-5px) rotate(-2deg); } 60% { transform: translateX(2px) rotate(1deg); } 100% { transform: translateX(0) rotate(0); } }
@keyframes hok-puppet { 0% { transform: translateY(0) rotate(-5deg); } 25% { transform: translateY(-2px) rotate(5deg); } 50% { transform: translateY(-1px) rotate(-3deg); } 75% { transform: translateY(2px) rotate(4deg); } 100% { transform: translateY(0) rotate(0); } }
@keyframes hok-shadow { 0% { opacity: 0.5; transform: scaleX(1); } 50% { opacity: 0.3; transform: scaleX(0.8); } 100% { opacity: 0.5; transform: scaleX(1); } }

.scn-petruchio-resolute { background: linear-gradient(180deg, #87CEEB 0%, #6bb8d6 40%, #4a8a9e 100%), radial-gradient(ellipse at 50% 0%, #fff7d0 0%, transparent 60%); }
.scn-petruchio-resolute .sky { position: absolute; inset: 0 0 30% 0; background: linear-gradient(180deg, #b0dff0 0%, #7fc4db 100%); animation: ptr-sky 10s ease-in-out infinite alternate; }
.scn-petruchio-resolute .pillar-left { position: absolute; bottom: 30%; left: 15%; width: 30px; height: 180px; background: linear-gradient(180deg, #d9cbb0 0%, #b39d81 100%); border-radius: 4px; box-shadow: 8px 0 12px rgba(0,0,0,0.15); }
.scn-petruchio-resolute .pillar-right { position: absolute; bottom: 30%; right: 15%; width: 30px; height: 180px; background: linear-gradient(180deg, #d9cbb0 0%, #b39d81 100%); border-radius: 4px; box-shadow: -8px 0 12px rgba(0,0,0,0.15); }
.scn-petruchio-resolute .ground { position: absolute; bottom: 0; left: 0; right: 0; height: 30%; background: linear-gradient(180deg, #7a9a6a 0%, #4d6e40 100%); }
.scn-petruchio-resolute .figure-petruchio { position: absolute; bottom: 28%; left: 50%; transform: translateX(-50%); width: 40px; height: 90px; background: radial-gradient(ellipse at 50% 20%, #3a2a1a 0%, #1f140c 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: ptr-figure 6s ease-in-out infinite; }
.scn-petruchio-resolute .cape { position: absolute; bottom: 28%; left: 50%; transform: translateX(-50%); width: 60px; height: 70px; background: linear-gradient(180deg, #702243 0%, #4a162b 100%); border-radius: 0 0 50% 50% / 0 0 80% 80%; clip-path: polygon(20% 0%, 80% 0%, 95% 100%, 5% 100%); animation: ptr-cape 4s ease-in-out infinite alternate; }
.scn-petruchio-resolute .sunburst { position: absolute; top: 8%; left: 50%; transform: translateX(-50%); width: 120px; height: 120px; background: radial-gradient(ellipse, #fff6c0 0%, #ffd680 40%, transparent 70%); animation: ptr-sunburst 12s ease-in-out infinite alternate; }
.scn-petruchio-resolute .shadow-petruchio { position: absolute; bottom: 28%; left: 50%; transform: translateX(-50%); width: 50px; height: 12px; background: rgba(0,0,0,0.25); border-radius: 50%; animation: ptr-shadow 6s ease-in-out infinite; }
@keyframes ptr-sky { 0% { opacity: 0.8; } 50% { opacity: 1; } 100% { opacity: 0.9; } }
@keyframes ptr-figure { 0% { transform: translateX(-50%) rotate(-1deg) scaleY(1); } 40% { transform: translateX(-50%) rotate(2deg) scaleY(1.02); } 70% { transform: translateX(-50%) rotate(-1deg) scaleY(0.98); } 100% { transform: translateX(-50%) rotate(0) scaleY(1); } }
@keyframes ptr-cape { 0% { transform: translateX(-50%) rotate(-3deg); } 50% { transform: translateX(-50%) rotate(2deg); } 100% { transform: translateX(-50%) rotate(-1deg); } }
@keyframes ptr-sunburst { 0% { opacity: 0.5; transform: translateX(-50%) scale(0.9); } 50% { opacity: 1; transform: translateX(-50%) scale(1.1); } 100% { opacity: 0.6; transform: translateX(-50%) scale(0.95); } }
@keyframes ptr-shadow { 0% { opacity: 0.4; transform: translateX(-50%) scaleX(1); } 50% { opacity: 0.2; transform: translateX(-50%) scaleX(0.8); } 100% { opacity: 0.4; transform: translateX(-50%) scaleX(1); } }

.scn-hortensio-reveals-love { background: linear-gradient(180deg, #d2b48c 0%, #b89a74 40%, #8c6e52 100%), radial-gradient(ellipse at 30% 50%, #f4d6a0 0%, transparent 70%); }
.scn-hortensio-reveals-love .bg-interior { position: absolute; inset: 0 0 30% 0; background: linear-gradient(180deg, #c9b392 0%, #a88c70 100%); }
.scn-hortensio-reveals-love .ground { position: absolute; bottom: 0; left: 0; right: 0; height: 30%; background: linear-gradient(180deg, #8c6e52 0%, #6a5140 100%); }
.scn-hortensio-reveals-love .figure-hortensio { position: absolute; bottom: 28%; left: 40%; width: 32px; height: 72px; background: radial-gradient(ellipse at 50% 20%, #4a3a2a 0%, #2c1f14 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: hrl-figure 5s ease-in-out infinite; }
.scn-hortensio-reveals-love .arms { position: absolute; bottom: 50%; left: 38%; width: 20px; height: 40px; background: linear-gradient(180deg, #4a3a2a 0%, transparent); border-radius: 40% 40% 20% 20%; transform-origin: bottom center; animation: hrl-arms 3s ease-in-out infinite alternate; }
.scn-hortensio-reveals-love .cat-silhouette { position: absolute; bottom: 32%; right: 25%; width: 30px; height: 20px; background: #1a1a2a; border-radius: 50% 50% 30% 30%; clip-path: polygon(0% 40%, 30% 0%, 60% 0%, 100% 40%, 85% 80%, 50% 50%, 15% 80%); animation: hrl-cat 7s ease-in-out infinite; }
.scn-hortensio-reveals-love .speech-swirl { position: absolute; top: 18%; left: 40%; width: 60px; height: 40px; background: radial-gradient(ellipse, rgba(255,230,150,0.3) 0%, transparent 80%); border-radius: 50%; animation: hrl-swirl 8s ease-in-out infinite; }
.scn-hortensio-reveals-love .shadow-hortensio { position: absolute; bottom: 28%; left: 40%; width: 40px; height: 10px; background: rgba(0,0,0,0.25); border-radius: 50%; transform: translateX(-50%); animation: hrl-shadow 5s ease-in-out infinite; }
@keyframes hrl-figure { 0% { transform: translateX(0) rotate(-2deg); } 30% { transform: translateX(5px) rotate(2deg); } 60% { transform: translateX(-3px) rotate(-1deg); } 100% { transform: translateX(0) rotate(0); } }
@keyframes hrl-arms { 0% { transform: rotate(-30deg); } 50% { transform: rotate(20deg); } 100% { transform: rotate(-10deg); } }
@keyframes hrl-cat { 0% { transform: translateY(0) scaleX(1); } 40% { transform: translateY(-3px) scaleX(0.9); } 70% { transform: translateY(1px) scaleX(1.1); } 100% { transform: translateY(0) scaleX(1); } }
@keyframes hrl-swirl { 0% { opacity: 0.3; transform: scale(0.8) rotate(0deg); } 50% { opacity: 0.7; transform: scale(1.1) rotate(180deg); } 100% { opacity: 0.4; transform: scale(0.9) rotate(360deg); } }
@keyframes hrl-shadow { 0% { opacity: 0.5; transform: translateX(-50%) scaleX(1); } 50% { opacity: 0.3; transform: translateX(-50%) scaleX(0.7); } 100% { opacity: 0.5; transform: translateX(-50%) scaleX(1); } }

.scn-gremio-schoolmaster-plot { background: linear-gradient(180deg, #b8d4a0 0%, #8cb470 40%, #5c8a4a 100%), radial-gradient(ellipse at 60% 20%, #ffe7b0 0%, transparent 50%); }
.scn-gremio-schoolmaster-plot .bg-garden { position: absolute; inset: 0 0 35% 0; background: linear-gradient(180deg, #c8e6c0 0%, #a0c890 100%); }
.scn-gremio-schoolmaster-plot .bench { position: absolute; bottom: 35%; left: 50%; transform: translateX(-50%); width: 100px; height: 20px; background: linear-gradient(180deg, #a08060 0%, #806040 100%); border-radius: 8px; box-shadow: 0 4px 8px rgba(0,0,0,0.2); }
.scn-gremio-schoolmaster-plot .figure-gremio { position: absolute; bottom: 38%; left: 40%; width: 30px; height: 60px; background: radial-gradient(ellipse at 50% 20%, #5a4a3a 0%, #3a2a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: gsp-gremio 5s ease-in-out infinite; }
.scn-gremio-schoolmaster-plot .figure-lucentio { position: absolute; bottom: 38%; right: 37%; width: 28px; height: 58px; background: radial-gradient(ellipse at 50% 20%, #6a5a4a 0%, #4a3a2a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: gsp-lucentio 6s ease-in-out infinite; }
.scn-gremio-schoolmaster-plot .hat-lucentio { position: absolute; bottom: 70%; right: 36%; width: 30px; height: 18px; background: linear-gradient(180deg, #806040 0%, #605030 100%); border-radius: 50% 50% 10% 10% / 70% 70% 10% 10%; animation: gsp-hat 4s ease-in-out infinite alternate; }
.scn-gremio-schoolmaster-plot .foliage-left { position: absolute; top: 10%; left: 5%; width: 80px; height: 120px; background: radial-gradient(ellipse at 50% 50%, #4a8a3a 0%, #2a5a2a 100%); border-radius: 50%; filter: blur(4px); animation: gsp-foliage 15s ease-in-out infinite alternate; }
.scn-gremio-schoolmaster-plot .foliage-right { position: absolute; top: 12%; right: 8%; width: 70px; height: 100px; background: radial-gradient(ellipse at 50% 50%, #5a9a4a 0%, #3a6a3a 100%); border-radius: 50%; filter: blur(4px); animation: gsp-foliage 18s ease-in-out infinite alternate-reverse; }
.scn-gremio-schoolmaster-plot .ground { position: absolute; bottom: 0; left: 0; right: 0; height: 35%; background: linear-gradient(180deg, #6a8a5a 0%, #4a6a3a 100%); }
@keyframes gsp-gremio { 0% { transform: translateX(0) rotate(-3deg); } 30% { transform: translateX(6px) rotate(2deg); } 60% { transform: translateX(-4px) rotate(-1deg); } 100% { transform: translateX(0) rotate(0); } }
@keyframes gsp-lucentio { 0% { transform: translateX(0) rotate(2deg); } 40% { transform: translateX(-5px) rotate(-2deg); } 70% { transform: translateX(3px) rotate(1deg); } 100% { transform: translateX(0) rotate(0); } }
@keyframes gsp-hat { 0% { transform: rotate(-5deg) translateY(0); } 50% { transform: rotate(8deg) translateY(-2px); } 100% { transform: rotate(-3deg) translateY(0); } }
@keyframes gsp-foliage { 0% { transform: scale(0.9) rotate(-3deg); opacity: 0.8; } 50% { transform: scale(1.05) rotate(2deg); opacity: 1; } 100% { transform: scale(0.95) rotate(-1deg); opacity: 0.9; } }

.scn-berating-servants {
  background: linear-gradient(180deg, #1c1830 0%, #2a2240 40%, #3a2a4e 100%), radial-gradient(ellipse at 50% 80%, #5a4a3e 0%, transparent 70%);
}
.scn-berating-servants .bs-wall { position:absolute; inset:0; background: linear-gradient(90deg, #2a2240 0%, #3a2a4e 30%, #2a2240 60%, #1c1830 100%); }
.scn-berating-servants .bs-lantern { position:absolute; bottom:55%; left:18%; width:12px; height:16px; background: radial-gradient(circle, #f0c068 0%, #b08040 70%); border-radius:40%; box-shadow: 0 0 30px 10px #d09050, 0 0 60px 20px rgba(200,140,80,.4); animation: bs-glow 3s ease-in-out infinite alternate; }
.scn-berating-servants .bs-master { position:absolute; bottom:32%; left:20%; width:28px; height:50px; background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: bs-arm 2s ease-in-out infinite; }
.scn-berating-servants .bs-servant-a { position:absolute; bottom:28%; left:45%; width:22px; height:40px; background: linear-gradient(180deg, #3a3a2a 0%, #2a2a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: bs-cower 2.5s ease-in-out infinite; }
.scn-berating-servants .bs-servant-b { position:absolute; bottom:30%; right:22%; width:20px; height:36px; background: linear-gradient(180deg, #3a3a2a 0%, #2a2a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: bs-cower 2.5s ease-in-out infinite .8s; }
.scn-berating-servants .bs-table { position:absolute; bottom:22%; left:40%; right:20%; height:18px; background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%); border-radius:8%; box-shadow: 0 4px 8px rgba(0,0,0,.5); }
.scn-berating-servants .bs-coat { position:absolute; bottom:20%; right:40%; width:16px; height:24px; background: linear-gradient(180deg, #6a5a4a 0%, #4a3a2a 100%); border-radius:30% 30% 40% 40%; transform: rotate(10deg); animation: bs-fall 6s ease-in-out infinite; }
.scn-berating-servants .bs-hat { position:absolute; bottom:26%; right:54%; width:14px; height:10px; background: radial-gradient(ellipse at 50% 30%, #4a3a2a 0%, #2a1a0a 100%); border-radius:50% 50% 30% 30%; transform: rotate(-15deg); animation: bs-fall 6s ease-in-out infinite 2s; }
.scn-berating-servants .bs-shoe { position:absolute; bottom:18%; right:48%; width:12px; height:6px; background: #3a2a1a; border-radius:40% 40% 20% 20%; transform: rotate(20deg); animation: bs-fall 6s ease-in-out infinite 4s; }
@keyframes bs-glow { 0% { box-shadow: 0 0 20px 6px #c08040; opacity:.8; } 50% { box-shadow: 0 0 40px 14px #f0c068, 0 0 70px 20px rgba(240,192,104,.3); opacity:1; } 100% { box-shadow: 0 0 25px 8px #c08040; opacity:.85; } }
@keyframes bs-arm { 0% { transform: translateX(0) translateY(0) rotate(-5deg); } 25% { transform: translateX(4px) translateY(-2px) rotate(5deg); } 50% { transform: translateX(0) translateY(0) rotate(-4deg); } 75% { transform: translateX(-3px) translateY(-1px) rotate(4deg); } 100% { transform: translateX(0) translateY(0) rotate(-5deg); } }
@keyframes bs-cower { 0% { transform: translateY(0) scale(1); } 50% { transform: translateY(-3px) scale(.95); } 100% { transform: translateY(0) scale(1); } }
@keyframes bs-fall { 0% { transform: translateY(0) rotate(0deg); opacity:1; } 50% { transform: translateY(8px) rotate(20deg); opacity:.6; } 100% { transform: translateY(0) rotate(0deg); opacity:1; } }

.scn-supper-ordered {
  background: linear-gradient(180deg, #1e1a34 0%, #2e2648 50%, #3e2e52 100%), radial-gradient(ellipse at 50% 30%, #4a3a3a 0%, transparent 70%);
}
.scn-supper-ordered .so-wall { position:absolute; inset:0; background: linear-gradient(90deg, #2a2240 0%, #3a2a4e 30%, #2e2648 70%, #1c1830 100%); }
.scn-supper-ordered .so-candle { position:absolute; bottom:40%; left:50%; width:6px; height:20px; background: linear-gradient(180deg, #f0d0a0 0%, #c0a070 100%); border-radius:20% 20% 10% 10%; box-shadow: 0 0 24px 8px #e0b080, 0 0 48px 16px rgba(224,176,128,.4); animation: so-flicker 2s ease-in-out infinite alternate; }
.scn-supper-ordered .so-table { position:absolute; bottom:20%; left:35%; right:20%; height:16px; background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%); border-radius:6%; box-shadow: 0 4px 8px rgba(0,0,0,.5); }
.scn-supper-ordered .so-plate { position:absolute; bottom:24%; left:42%; width:24px; height:6px; background: radial-gradient(ellipse at 50% 50%, #b0a090 0%, #807060 70%); border-radius:50%; box-shadow: inset 0 2px 4px rgba(0,0,0,.3); }
.scn-supper-ordered .so-cup { position:absolute; bottom:25%; left:52%; width:10px; height:14px; background: linear-gradient(180deg, #a08060 0%, #705040 100%); border-radius:20% 20% 30% 30%; }
.scn-supper-ordered .so-boot { position:absolute; bottom:16%; left:28%; width:14px; height:8px; background: #4a3a2a; border-radius:40% 40% 20% 20%; transform: rotate(-30deg); }
.scn-supper-ordered .so-chair { position:absolute; bottom:18%; left:32%; width:20px; height:30px; background: linear-gradient(180deg, #5a4a3a 0%, #2a1a0a 100%); border-radius:10% 10% 20% 20%; clip-path: polygon(0% 0%, 100% 0%, 100% 40%, 70% 100%, 30% 100%, 0% 40%); }
.scn-supper-ordered .so-master { position:absolute; bottom:28%; left:50%; width:30px; 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: so-eat 4s ease-in-out infinite; }
.scn-supper-ordered .so-servant { position:absolute; bottom:24%; right:25%; width:20px; height:36px; background: linear-gradient(180deg, #3a3a2a 0%, #2a2a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: so-bring 5s ease-in-out infinite; }
@keyframes so-flicker { 0% { box-shadow: 0 0 18px 5px #d0a060; opacity:.85; } 50% { box-shadow: 0 0 35px 12px #f0c080; opacity:1; } 100% { box-shadow: 0 0 22px 6px #d0a060; opacity:.9; } }
@keyframes so-eat { 0% { transform: translateY(0) rotate(0deg); } 30% { transform: translateY(-2px) rotate(3deg); } 60% { transform: translateY(0) rotate(0deg); } 100% { transform: translateY(-1px) rotate(-2deg); } }
@keyframes so-bring { 0% { transform: translateX(0) translateY(0); } 25% { transform: translateX(-8px) translateY(-4px); } 50% { transform: translateX(-12px) translateY(0); } 75% { transform: translateX(-8px) translateY(-2px); } 100% { transform: translateX(0) translateY(0); } }

.scn-water-spilled-anger {
  background: linear-gradient(180deg, #e8d8c0 0%, #c8b8a0 50%, #a89880 100%), radial-gradient(ellipse at 50% 60%, #d0c0b0 0%, transparent 70%);
}
.scn-water-spilled-anger .ws-floor { position:absolute; inset:0 0 60% 0; background: linear-gradient(180deg, #b8a890 0%, #a09078 100%); }
.scn-water-spilled-anger .ws-basin { position:absolute; bottom:30%; left:40%; width:40px; height:18px; background: linear-gradient(180deg, #908070 0%, #706050 100%); border-radius:30% 30% 40% 40%; box-shadow: 0 4px 8px rgba(0,0,0,.2); }
.scn-water-spilled-anger .ws-water { position:absolute; bottom:32%; left:40%; width:36px; height:10px; background: linear-gradient(180deg, #6b8e9b 0%, #4a6a7a 100%); border-radius:30% 30% 40% 40%; opacity:.6; animation: ws-slosh 3s ease-in-out infinite; }
.scn-water-spilled-anger .ws-splash { position:absolute; bottom:38%; left:42%; width:20px; height:12px; background: radial-gradient(circle, #7ba0b0 0%, transparent 70%); filter: blur(3px); animation: ws-splash 2s ease-in-out infinite; }
.scn-water-spilled-anger .ws-master { position:absolute; bottom:30%; left:20%; width:30px; height:50px; background: linear-gradient(180deg, #3a3a2a 0%, #2a2a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: ws-strike 1.5s ease-in-out infinite; }
.scn-water-spilled-anger .ws-servant { position:absolute; bottom:26%; right:30%; width:22px; height:40px; background: linear-gradient(180deg, #4a4a3a 0%, #3a3a2a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: ws-duck 1.8s ease-in-out infinite; }
.scn-water-spilled-anger .ws-light { position:absolute; inset:0; background: radial-gradient(ellipse at 60% 40%, rgba(255,230,200,.3) 0%, transparent 60%); animation: ws-bright 4s ease-in-out infinite alternate; }
@keyframes ws-slosh { 0% { transform: translate(0,0) scale(1); } 30% { transform: translate(3px,-2px) scale(1.2); } 60% { transform: translate(-2px,-1px) scale(.9); } 100% { transform: translate(0,0) scale(1); } }
@keyframes ws-splash { 0% { opacity:0; transform: scale(.5); } 50% { opacity:.8; transform: scale(1.5); } 100% { opacity:0; transform: scale(2); } }
@keyframes ws-strike { 0% { transform: translateY(0) rotate(-10deg); } 20% { transform: translateY(2px) rotate(15deg); } 40% { transform: translateY(0) rotate(-10deg); } 100% { transform: translateY(0) rotate(-10deg); } }
@keyframes ws-duck { 0% { transform: translateY(0) scale(1); } 25% { transform: translateY(-8px) scale(.9); } 50% { transform: translateY(0) scale(1); } 100% { transform: translateY(0) scale(1); } }
@keyframes ws-bright { 0% { opacity:.7; } 50% { opacity:1; } 100% { opacity:.8; } }

.scn-burnt-meat-rant {
  background: linear-gradient(180deg, #c8b098 0%, #a89078 50%, #8a7a62 100%), radial-gradient(ellipse at 50% 50%, #d0b090 0%, transparent 70%);
}
.scn-burnt-meat-rant .bm-wall { position:absolute; inset:0; background: linear-gradient(90deg, #b8a088 0%, #a89078 50%, #b09880 100%); }
.scn-burnt-meat-rant .bm-table { position:absolute; bottom:20%; left:30%; right:30%; height:14px; background: linear-gradient(180deg, #6a5a4a 0%, #4a3a2a 100%); border-radius:6%; box-shadow: 0 4px 8px rgba(0,0,0,.3); }
.scn-burnt-meat-rant .bm-meat { position:absolute; bottom:24%; left:45%; width:18px; height:10px; background: radial-gradient(ellipse at 50% 60%, #6a3a2a 0%, #4a2a1a 70%); border-radius:40% 40% 30% 30%; box-shadow: 0 2px 4px rgba(0,0,0,.4); animation: bm-sear 2s ease-in-out infinite; }
.scn-burnt-meat-rant .bm-flying { position:absolute; bottom:35%; left:35%; width:14px; height:8px; background: radial-gradient(ellipse at 50% 50%, #7a4a3a 0%, #5a2a1a 100%); border-radius:30% 30% 40% 40%; transform: rotate(40deg); animation: bm-fly 1.8s ease-in-out infinite; }
.scn-burnt-meat-rant .bm-trencher { position:absolute; bottom:15%; left:55%; width:20px; height:6px; background: #8a7a6a; border-radius:30%; transform: rotate(-20deg); animation: bm-throw 2.5s ease-in-out infinite; }
.scn-burnt-meat-rant .bm-cup { position:absolute; bottom:17%; right:30%; width:10px; height:12px; background: linear-gradient(180deg, #a09080 0%, #807060 100%); border-radius:20% 20% 30% 30%; transform: rotate(15deg); animation: bm-fly 2.2s ease-in-out infinite .5s; }
.scn-burnt-meat-rant .bm-master { position:absolute; bottom:28%; left:25%; width:32px; height:52px; background: linear-gradient(180deg, #3a3a2a 0%, #2a2a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: bm-rage 1.2s ease-in-out infinite; }
.scn-burnt-meat-rant .bm-cook { position:absolute; bottom:22%; right:20%; width:20px; height:36px; background: linear-gradient(180deg, #4a4a3a 0%, #3a3a2a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: bm-hide 3s ease-in-out infinite; }
@keyframes bm-sear { 0% { transform: scale(1); opacity:.8; } 50% { transform: scale(1.1); opacity:1; } 100% { transform: scale(1); opacity:.8; } }
@keyframes bm-fly { 0% { transform: translate(0,0) rotate(0deg); } 30% { transform: translate(10px, -12px) rotate(45deg); } 60% { transform: translate(20px, -4px) rotate(90deg); } 100% { transform: translate(0,0) rotate(0deg); } }
@keyframes bm-throw { 0% { transform: translate(0,0) rotate(-20deg); } 25% { transform: translate(8px,15px) rotate(10deg); } 50% { transform: translate(16px,5px) rotate(40deg); } 100% { transform: translate(0,0) rotate(-20deg); } }
@keyframes bm-rage { 0% { transform: translateY(0) rotate(-8deg); } 30% { transform: translateY(-2px) rotate(8deg); } 60% { transform: translateY(0) rotate(-8deg); } 100% { transform: translateY(-1px) rotate(6deg); } }
@keyframes bm-hide { 0% { transform: scale(1); opacity:1; } 50% { transform: scale(.85); opacity:.7; } 100% { transform: scale(1); opacity:1; } }

/* Scene: lord-concludes-plot */
.scn-lord-concludes-plot {
  background:
    linear-gradient(180deg, #2c1e12 0%, #1f140e 50%, #0f0a06 100%),
    radial-gradient(ellipse at 30% 60%, #d9a04a 0%, transparent 60%);
}
.scn-lord-concludes-plot .wall {
  position:absolute; inset:0 0 35% 0;
  background: linear-gradient(180deg, #3e2a1c 0%, #2c1e12 100%);
  box-shadow: inset 0 0 40px rgba(0,0,0,0.6);
}
.scn-lord-concludes-plot .floor {
  position:absolute; bottom:0; left:0; right:0; height:35%;
  background: linear-gradient(180deg, #2a1d14 0%, #1a100a 100%);
  border-top: 2px solid #4a3520;
}
.scn-lord-concludes-plot .table {
  position:absolute; bottom:30%; left:40%; width:25%; height:8%;
  background: linear-gradient(180deg, #6a4a30 0%, #3a2a1a 100%);
  border-radius: 4% 4% 0 0;
  box-shadow: 0 4px 8px rgba(0,0,0,0.6);
  animation: lc-table 8s ease-in-out infinite alternate;
}
.scn-lord-concludes-plot .lord {
  position:absolute; bottom:32%; left:50%; width:40px; height:70px;
  background: linear-gradient(180deg, #2a1e14 0%, #1a120e 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: lc-lord 4s ease-in-out infinite;
}
.scn-lord-concludes-plot .onion {
  position:absolute; bottom:36%; left:42%; width:16px; height:18px;
  background: radial-gradient(circle at 40% 30%, #d4a060 0%, #a07030 100%);
  border-radius: 50%;
  box-shadow: 0 0 4px #b08040;
  animation: lc-onion 2s ease-in-out infinite alternate;
}
.scn-lord-concludes-plot .napkin {
  position:absolute; bottom:36%; left:48%; width:30px; height:20px;
  background: linear-gradient(180deg, #e8d8c8 0%, #d0c0b0 100%);
  border-radius: 20% 20% 50% 50%;
  transform: rotate(-10deg);
  animation: lc-napkin 5s ease-in-out infinite;
}
.scn-lord-concludes-plot .candle {
  position:absolute; bottom:34%; left:60%; width:6px; height:40px;
  background: linear-gradient(180deg, #f0d080 0%, #c09040 100%);
  border-radius: 3px 3px 0 0;
  box-shadow: 0 0 20px 8px #d0a040, 0 0 40px 16px rgba(208,160,64,0.3);
  animation: lc-candle 3s ease-in-out infinite alternate;
}
@keyframes lc-table { 0% { transform: translateY(0); } 50% { transform: translateY(-2px); } 100% { transform: translateY(0); } }
@keyframes lc-lord { 0% { transform: translateX(0) rotate(-1deg); } 25% { transform: translateX(4px) rotate(1deg); } 50% { transform: translateX(-2px) rotate(-1deg); } 75% { transform: translateX(3px) rotate(2deg); } 100% { transform: translateX(0) rotate(0); } }
@keyframes lc-onion { 0% { transform: translateY(0) scale(1); } 50% { transform: translateY(-4px) scale(1.05); } 100% { transform: translateY(0) scale(1); } }
@keyframes lc-napkin { 0% { transform: rotate(-10deg) translateY(0); } 50% { transform: rotate(-8deg) translateY(-3px); } 100% { transform: rotate(-12deg) translateY(0); } }
@keyframes lc-candle { 0% { opacity: 0.9; box-shadow: 0 0 15px 5px #d0a040, 0 0 30px 10px rgba(208,160,64,0.2); } 50% { opacity: 1; box-shadow: 0 0 25px 8px #e0b050, 0 0 50px 18px rgba(224,176,80,0.4); } 100% { opacity: 0.85; box-shadow: 0 0 12px 3px #c09040, 0 0 20px 6px rgba(192,144,64,0.15); } }

/* Scene: item-pot-ale */
.scn-item-pot-ale {
  background:
    linear-gradient(180deg, #3a2518 0%, #241810 50%, #100a06 100%),
    radial-gradient(ellipse at 50% 80%, #d09a50 0%, transparent 70%);
}
.scn-item-pot-ale .wall {
  position:absolute; inset:0 0 30% 0;
  background: linear-gradient(180deg, #4a3220 0%, #2a1a12 100%);
  box-shadow: inset 0 0 30px rgba(0,0,0,0.5);
}
.scn-item-pot-ale .bed {
  position:absolute; bottom:20%; left:10%; right:10%; height:40%;
  background: linear-gradient(180deg, #5a3a28 0%, #3a2218 100%);
  border-radius: 30% 30% 20% 20% / 50% 50% 20% 20%;
  box-shadow: inset 0 8px 16px rgba(0,0,0,0.6);
  animation: pa-bed 10s ease-in-out infinite alternate;
}
.scn-item-pot-ale .sly {
  position:absolute; bottom:28%; left:20%; width:50px; height:60px;
  background: linear-gradient(180deg, #3a2818 0%, #1a100a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: pa-sly 4s ease-in-out infinite;
}
.scn-item-pot-ale .basin {
  position:absolute; bottom:32%; right:25%; width:24px; height:12px;
  background: linear-gradient(180deg, #b09070 0%, #806050 100%);
  border-radius: 30% 30% 0 0;
  box-shadow: 0 2px 4px rgba(0,0,0,0.5);
  animation: pa-basin 6s ease-in-out infinite alternate;
}
.scn-item-pot-ale .ewer {
  position:absolute; bottom:30%; right:18%; width:10px; height:20px;
  background: linear-gradient(180deg, #c0a080 0%, #907060 100%);
  border-radius: 30% 30% 20% 20%;
  box-shadow: 0 2px 6px rgba(0,0,0,0.5);
  animation: pa-ewer 7s ease-in-out infinite alternate;
}
.scn-item-pot-ale .cup {
  position:absolute; bottom:36%; left:48%; width:14px; height:16px;
  background: linear-gradient(180deg, #b08858 0%, #805830 100%);
  border-radius: 20% 20% 10% 10%;
  box-shadow: 0 0 8px #906020;
  animation: pa-cup 3s ease-in-out infinite;
}
.scn-item-pot-ale .curtain {
  position:absolute; top:0; left:0; width:30%; height:100%;
  background: linear-gradient(180deg, #5a3a28 0%, #2a1a12 100%);
  border-radius: 0 60% 60% 0 / 0 40% 40% 0;
  filter: blur(2px);
  opacity: 0.7;
  animation: pa-curtain 20s ease-in-out infinite alternate;
}
@keyframes pa-bed { 0% { transform: translateY(0) scale(1); } 50% { transform: translateY(-4px) scale(1.02); } 100% { transform: translateY(0) scale(1); } }
@keyframes pa-sly { 0% { transform: translateX(0) rotate(-2deg); } 25% { transform: translateX(6px) rotate(1deg); } 50% { transform: translateX(-2px) rotate(-1deg); } 75% { transform: translateX(4px) rotate(2deg); } 100% { transform: translateX(0) rotate(0); } }
@keyframes pa-basin { 0% { transform: translateY(0) rotate(0); } 50% { transform: translateY(-2px) rotate(3deg); } 100% { transform: translateY(0) rotate(0); } }
@keyframes pa-ewer { 0% { transform: translateY(0) rotate(0); } 50% { transform: translateY(-3px) rotate(-2deg); } 100% { transform: translateY(0) rotate(0); } }
@keyframes pa-cup { 0% { transform: translateY(0) scale(1); opacity:1; } 50% { transform: translateY(-6px) scale(1.05); opacity:0.9; } 100% { transform: translateY(0) scale(1); opacity:1; } }
@keyframes pa-curtain { 0% { transform: translateX(0); } 50% { transform: translateX(-8px); } 100% { transform: translateX(0); } }

/* Scene: bedchamber-sly-wakes (tense) */
.scn-bedchamber-sly-wakes {
  background:
    linear-gradient(180deg, #1e1410 0%, #120a08 50%, #080404 100%),
    radial-gradient(ellipse at 50% 40%, #704020 0%, transparent 60%);
}
.scn-bedchamber-sly-wakes .wall {
  position:absolute; inset:0 0 30% 0;
  background: linear-gradient(180deg, #2a1a12 0%, #1a0e08 100%);
  box-shadow: inset 0 0 50px rgba(0,0,0,0.7);
}
.scn-bedchamber-sly-wakes .bed {
  position:absolute; bottom:15%; left:5%; right:5%; height:45%;
  background: linear-gradient(180deg, #3a2218 0%, #1a100a 100%);
  border-radius: 30% 30% 20% 20% / 60% 60% 20% 20%;
  box-shadow: inset 0 8px 20px rgba(0,0,0,0.8);
  animation: bw-bed 3s ease-in-out infinite alternate;
}
.scn-bedchamber-sly-wakes .sly {
  position:absolute; bottom:22%; left:25%; width:55px; height:65px;
  background: linear-gradient(180deg, #2a1a14 0%, #0e0806 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: bw-sly 2s ease-in-out infinite;
}
.scn-bedchamber-sly-wakes .doublet {
  position:absolute; bottom:40%; left:15%; width:30px; height:25px;
  background: linear-gradient(180deg, #4a3020 0%, #2a1a12 100%);
  border-radius: 0 0 20% 20%;
  transform: rotate(20deg);
  animation: bw-doublet 4s ease-in-out infinite alternate;
}
.scn-bedchamber-sly-wakes .stockings {
  position:absolute; bottom:12%; left:10%; width:12px; height:30px;
  background: linear-gradient(180deg, #5a3a28 0%, #3a2218 100%);
  border-radius: 20% 20% 30% 30%;
  transform: rotate(-10deg);
  animation: bw-stockings 3s ease-in-out infinite alternate;
}
.scn-bedchamber-sly-wakes .shoes {
  position:absolute; bottom:8%; left:40%; width:20px; height:12px;
  background: linear-gradient(180deg, #4a3020 0%, #2a1a12 100%);
  border-radius: 50% 50% 0 0;
  transform: rotate(15deg);
  animation: bw-shoes 2.5s ease-in-out infinite alternate;
}
.scn-bedchamber-sly-wakes .conserves {
  position:absolute; bottom:28%; left:50%; width:12px; height:14px;
  background: radial-gradient(circle at 40% 50%, #c8553d 0%, #803020 100%);
  border-radius: 50%;
  box-shadow: 0 0 6px #a04020;
  animation: bw-conserves 4s ease-in-out infinite;
}
@keyframes bw-bed { 0% { transform: translateY(0) scale(1); } 100% { transform: translateY(-6px) scale(1.03); } }
@keyframes bw-sly { 0% { transform: translateX(0) rotate(-3deg); } 25% { transform: translateX(8px) rotate(2deg); } 50% { transform: translateX(-4px) rotate(-2deg); } 75% { transform: translateX(6px) rotate(3deg); } 100% { transform: translateX(0) rotate(0); } }
@keyframes bw-doublet { 0% { transform: rotate(20deg) translateY(0); } 50% { transform: rotate(25deg) translateY(-4px); } 100% { transform: rotate(18deg) translateY(0); } }
@keyframes bw-stockings { 0% { transform: rotate(-10deg) translateY(0); } 50% { transform: rotate(-5deg) translateY(-6px); } 100% { transform: rotate(-12deg) translateY(0); } }
@keyframes bw-shoes { 0% { transform: rotate(15deg) translateY(0); } 50% { transform: rotate(10deg) translateY(-3px); } 100% { transform: rotate(17deg) translateY(0); } }
@keyframes bw-conserves { 0% { transform: translateY(0) scale(1); opacity:0.8; } 50% { transform: translateY(-8px) scale(1.1); opacity:1; } 100% { transform: translateY(0) scale(1); opacity:0.8; } }

/* Scene: sly-convinced (funny) */
.scn-sly-convinced {
  background:
    linear-gradient(180deg, #2c1e12 0%, #1f140e 50%, #0f0a06 100%),
    radial-gradient(ellipse at 60% 50%, #c09040 0%, transparent 70%);
}
.scn-sly-convinced .wall {
  position:absolute; inset:0 0 30% 0;
  background: linear-gradient(180deg, #3a2a1c 0%, #1f140e 100%);
  box-shadow: inset 0 0 40px rgba(0,0,0,0.6);
}
.scn-sly-convinced .floor {
  position:absolute; bottom:0; left:0; right:0; height:30%;
  background: linear-gradient(180deg, #2a1d14 0%, #1a100a 100%);
  border-top: 2px solid #3a2a1a;
}
.scn-sly-convinced .mirror {
  position:absolute; bottom:24%; right:10%; width:80px; height:120px;
  background: linear-gradient(180deg, #4a3530 0%, #2a1a14 100%);
  border-radius: 10% 10% 5% 5% / 20% 20% 10% 10%;
  box-shadow: inset 0 0 20px rgba(0,0,0,0.5), 0 0 10px #806040;
  animation: sc-mirror 12s ease-in-out infinite alternate;
}
.scn-sly-convinced .sly {
  position:absolute; bottom:22%; left:30%; width:50px; height:70px;
  background: linear-gradient(180deg, #2a1e14 0%, #1a120e 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: sc-sly 3s ease-in-out infinite;
}
.scn-sly-convinced .reflection {
  position:absolute; bottom:24%; right:15%; width:40px; height:60px;
  background: linear-gradient(180deg, #3a2a1c 0%, #2a1a14 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  opacity: 0.6;
  animation: sc-reflect 3s ease-in-out infinite reverse;
}
.scn-sly-convinced .curtain {
  position:absolute; top:0; left:0; width:25%; height:100%;
  background: linear-gradient(180deg, #5a3a28 0%, #2a1a12 100%);
  border-radius: 0 60% 60% 0 / 0 40% 40% 0;
  filter: blur(2px);
  opacity: 0.6;
  animation: sc-curtain 15s ease-in-out infinite alternate;
}
@keyframes sc-mirror { 0% { transform: translateY(0) rotate(0); box-shadow: inset 0 0 20px rgba(0,0,0,0.5), 0 0 10px #806040; } 50% { transform: translateY(-4px) rotate(-1deg); box-shadow: inset 0 0 30px rgba(0,0,0,0.5), 0 0 20px #a07050; } 100% { transform: translateY(0) rotate(0); box-shadow: inset 0 0 20px rgba(0,0,0,0.5), 0 0 10px #806040; } }
@keyframes sc-sly { 0% { transform: translateX(0) rotate(-2deg); } 25% { transform: translateX(5px) rotate(2deg); } 50% { transform: translateX(-3px) rotate(-1deg); } 75% { transform: translateX(4px) rotate(3deg); } 100% { transform: translateX(0) rotate(0); } }
@keyframes sc-reflect { 0% { transform: translateX(0) rotate(2deg); opacity:0.5; } 50% { transform: translateX(-3px) rotate(-1deg); opacity:0.7; } 100% { transform: translateX(0) rotate(2deg); opacity:0.5; } }
@keyframes sc-curtain { 0% { transform: translateX(0); } 50% { transform: translateX(-10px); } 100% { transform: translateX(0); } }

.scn-biondello-angel-spot { background: linear-gradient(180deg, #f5e6c8 0%, #e8d4a0 50%, #d4b880 100%), radial-gradient(ellipse at 30% 40%, #f5e6c8 0%, transparent 60%); }
.scn-biondello-angel-spot .ba-wall { position:absolute; inset:0; background: linear-gradient(180deg, #f0e0b0 0%, #dcc898 100%); animation: ba-wall 15s ease-in-out infinite; }
.scn-biondello-angel-spot .ba-window { position:absolute; top:15%; left:20%; width:50%; height:50%; background: linear-gradient(180deg, #87ceeb 0%, #b0e0e6 100%); border-radius: 10% 10% 0 0; box-shadow: inset 0 0 20px rgba(255,255,255,0.3); animation: ba-window 12s linear infinite; }
.scn-biondello-angel-spot .ba-hill { position:absolute; bottom:0; left:0; right:0; height:40%; background: linear-gradient(180deg, #7cb342 0%, #558b2f 100%); border-radius: 20% 80% 0 0 / 60% 40% 0 0; box-shadow: inset 0 8px 15px rgba(0,0,0,0.2); animation: ba-hill 18s ease-in-out infinite alternate; }
.scn-biondello-angel-spot .ba-angel { position:absolute; top:20%; left:60%; width:40px; height:60px; background: linear-gradient(180deg, #fff9c4 0%, #fff59d 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; box-shadow: 0 0 20px #ffe082; animation: ba-angel 6s ease-in-out infinite; }
.scn-biondello-angel-spot .ba-biondello { position:absolute; bottom:15%; left:30%; width:30px; height:50px; background: linear-gradient(180deg, #8d6e63 0%, #5d4037 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform: skewX(-10deg); animation: ba-bob 4s ease-in-out infinite; }
.scn-biondello-angel-spot .ba-lamp { position:absolute; top:10%; right:15%; width:12px; height:20px; background: radial-gradient(circle, #ffd54f 0%, #ffb300 70%); border-radius: 50% 50% 30% 30%; box-shadow: 0 0 30px 10px #ffd54f; animation: ba-lamp 3s ease-in-out infinite alternate; }
.scn-biondello-angel-spot .ba-shadow { position:absolute; bottom:15%; left:25%; width:40px; height:5px; background: rgba(0,0,0,0.15); border-radius: 50%; filter: blur(3px); animation: ba-shadow 4s ease-in-out infinite; }
@keyframes ba-wall { 0% { opacity:0.95 } 50% { opacity:1 } 100% { opacity:0.9 } }
@keyframes ba-window { 0% { background:linear-gradient(180deg,#87ceeb,#b0e0e6) } 50% { background:linear-gradient(180deg,#b0e0e6,#cce5ff) } 100% { background:linear-gradient(180deg,#87ceeb,#b0e0e6) } }
@keyframes ba-hill { 0% { transform:translateY(0) } 50% { transform:translateY(-4px) } 100% { transform:translateY(1px) } }
@keyframes ba-angel { 0% { transform:translateY(0) rotate(0deg) } 30% { transform:translateY(-10px) rotate(5deg) } 60% { transform:translateY(-5px) rotate(-5deg) } 100% { transform:translateY(0) rotate(0deg) } }
@keyframes ba-bob { 0% { transform:skewX(-10deg) translateY(0) } 25% { transform:skewX(-8deg) translateY(-3px) } 50% { transform:skewX(-12deg) translateY(0) } 75% { transform:skewX(-8deg) translateY(-2px) } 100% { transform:skewX(-10deg) translateY(0) } }
@keyframes ba-lamp { 0% { box-shadow:0 0 20px 5px #ffd54f; opacity:0.8 } 50% { box-shadow:0 0 40px 15px #ffca28; opacity:1 } 100% { box-shadow:0 0 25px 8px #ffd54f; opacity:0.85 } }
@keyframes ba-shadow { 0% { transform:scaleX(1) } 50% { transform:scaleX(1.2) } 100% { transform:scaleX(1) } }

.scn-pedant-enters { background: linear-gradient(180deg, #ece4c8 0%, #dccc8c 100%), radial-gradient(ellipse at 50% 30%, #f5e6d0 0%, transparent 70%); }
.scn-pedant-enters .pe-bg { position:absolute; inset:0; background: linear-gradient(180deg, #e8d4a0 0%, #c8b478 100%); animation: pe-bg 20s ease-in-out infinite alternate; }
.scn-pedant-enters .pe-door { position:absolute; left:10%; top:10%; width:20%; height:80%; background: linear-gradient(180deg, #8b6f47 0%, #5a3d1c 100%); border-radius: 5% 5% 0 0; box-shadow: inset -4px 0 8px rgba(0,0,0,0.3); animation: pe-door 25s linear infinite; }
.scn-pedant-enters .pe-bookshelf { position:absolute; right:15%; top:20%; width:20%; height:60%; background: linear-gradient(180deg, #6d4c41 0%, #3e2723 100%); border-radius: 2% 2% 0 0; box-shadow: inset 0 5px 10px rgba(0,0,0,0.4); animation: pe-bookshelf 30s ease-in-out infinite; }
.scn-pedant-enters .pe-desk { position:absolute; bottom:10%; left:30%; width:40%; height:15%; background: linear-gradient(180deg, #a1887f 0%, #795548 100%); border-radius: 5% 5% 0 0; box-shadow: 0 4px 10px rgba(0,0,0,0.2); animation: pe-desk 15s ease-in-out infinite; }
.scn-pedant-enters .pe-pedant { position:absolute; bottom:25%; left:40%; width:25px; height:55px; background: linear-gradient(180deg, #5d4037 0%, #3e2723 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform: rotate(0deg); animation: pe-pedant 8s ease-in-out infinite; }
.scn-pedant-enters .pe-glow { position:absolute; top:5%; left:50%; width:30px; height:30px; background: radial-gradient(circle, #ffecb3 0%, transparent 60%); border-radius: 50%; filter: blur(8px); animation: pe-glow 10s ease-in-out infinite alternate; }
@keyframes pe-bg { 0% { opacity:0.9 } 50% { opacity:1 } 100% { opacity:0.92 } }
@keyframes pe-door { 0% { transform:scaleY(1) } 50% { transform:scaleY(1.02) } 100% { transform:scaleY(0.98) } }
@keyframes pe-bookshelf { 0% { transform:translateY(0) } 50% { transform:translateY(-2px) } 100% { transform:translateY(0) } }
@keyframes pe-desk { 0% { transform:scaleX(1) } 50% { transform:scaleX(1.01) } 100% { transform:scaleX(1) } }
@keyframes pe-pedant { 0% { transform:translateX(-5px) translateY(0) rotate(-2deg) } 50% { transform:translateX(5px) translateY(-3px) rotate(2deg) } 100% { transform:translateX(-5px) translateY(0) rotate(-2deg) } }
@keyframes pe-glow { 0% { opacity:0.6; filter:blur(6px) } 50% { opacity:1; filter:blur(10px) } 100% { opacity:0.7; filter:blur(6px) } }

.scn-mantua-danger { background: linear-gradient(180deg, #c8b48c 0%, #a08060 50%, #7a6040 100%), radial-gradient(ellipse at 40% 60%, #a08060 0%, transparent 50%); }
.scn-mantua-danger .md-bg { position:absolute; inset:0; background: linear-gradient(180deg, #b8a070 0%, #8a6a40 100%); animation: md-dark 8s ease-in-out infinite alternate; }
.scn-mantua-danger .md-table { position:absolute; bottom:20%; left:20%; width:60%; height:10%; background: linear-gradient(180deg, #5a3d1c 0%, #3a2410 100%); border-radius: 5% 5% 0 0; box-shadow: 0 8px 20px rgba(0,0,0,0.5); animation: md-table 4s ease-in-out infinite; }
.scn-mantua-danger .md-candle { position:absolute; bottom:30%; left:45%; width:8px; height:25px; background: linear-gradient(180deg, #ffcc80 0%, #e6a040 100%); border-radius: 30% 30% 10% 10%; box-shadow: 0 0 40px 15px #ffb74d; animation: md-candle 2s ease-in-out infinite alternate; }
.scn-mantua-danger .md-menace { position:absolute; bottom:30%; left:60%; width:28px; height:50px; background: linear-gradient(180deg, #2a1a10 0%, #0a0505 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform: rotate(10deg); animation: md-menace 3s ease-in-out infinite; }
.scn-mantua-danger .md-fright { position:absolute; bottom:30%; left:25%; width:22px; height:45px; background: linear-gradient(180deg, #5a3d1c 0%, #3a2410 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform: rotate(-15deg); animation: md-fright 3s ease-in-out infinite; }
.scn-mantua-danger .md-shadow1 { position:absolute; bottom:20%; left:60%; width:30px; height:15px; background: rgba(0,0,0,0.3); border-radius: 50%; filter: blur(4px); animation: md-shadow 3s ease-in-out infinite; }
.scn-mantua-danger .md-shadow2 { position:absolute; bottom:20%; left:20%; width:25px; height:12px; background: rgba(0,0,0,0.25); border-radius: 50%; filter: blur(3px); animation: md-shadow 3s ease-in-out infinite 1.5s; }
@keyframes md-dark { 0% { opacity:0.85 } 50% { opacity:1 } 100% { opacity:0.88 } }
@keyframes md-table { 0% { transform:scaleX(1) } 50% { transform:scaleX(1.03) } 100% { transform:scaleX(0.98) } }
@keyframes md-candle { 0% { box-shadow:0 0 20px 8px #ffb74d; opacity:0.7 } 50% { box-shadow:0 0 50px 20px #ffa726; opacity:1 } 100% { box-shadow:0 0 25px 10px #ffb74d; opacity:0.75 } }
@keyframes md-menace { 0% { transform:rotate(10deg) translateY(0) } 50% { transform:rotate(15deg) translateY(-5px) } 100% { transform:rotate(10deg) translateY(0) } }
@keyframes md-fright { 0% { transform:rotate(-15deg) translateY(0) } 50% { transform:rotate(-20deg) translateY(4px) } 100% { transform:rotate(-15deg) translateY(0) } }
@keyframes md-shadow { 0% { transform:scaleX(1) } 50% { transform:scaleX(1.5) } 100% { transform:scaleX(1) } }

.scn-proposing-disguise { background: linear-gradient(180deg, #dcc898 0%, #c0a870 50%, #a08850 100%), radial-gradient(ellipse at 60% 20%, #e0c080 0%, transparent 70%); }
.scn-proposing-disguise .pd-bg { position:absolute; inset:0; background: linear-gradient(90deg, #d4b880 0%, #c0a060 100%); animation: pd-bg 12s ease-in-out infinite alternate; }
.scn-proposing-disguise .pd-curtain { position:absolute; top:0; right:0; width:30%; height:100%; background: linear-gradient(180deg, #8b4513 0%, #5a2d0c 100%); border-radius: 0 0 0 30%; box-shadow: inset 8px 0 15px rgba(0,0,0,0.4); animation: pd-curtain 20s linear infinite; }
.scn-proposing-disguise .pd-figure1 { position:absolute; bottom:25%; left:30%; width:25px; height:50px; background: linear-gradient(180deg, #3e2723 0%, #1a0e0a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform: rotate(5deg); animation: pd-fig1 5s ease-in-out infinite; }
.scn-proposing-disguise .pd-figure2 { position:absolute; bottom:25%; right:35%; width:25px; height:50px; background: linear-gradient(180deg, #4e342e 0%, #211510 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform: rotate(-10deg); animation: pd-fig2 5s ease-in-out infinite 2.5s; }
.scn-proposing-disguise .pd-chest { position:absolute; bottom:15%; left:45%; width:40px; height:25px; background: linear-gradient(180deg, #6d4c41 0%, #4a3020 100%); border-radius: 10% 10% 5% 5%; box-shadow: 0 4px 8px rgba(0,0,0,0.3); animation: pd-chest 10s ease-in-out infinite; }
.scn-proposing-disguise .pd-candle { position:absolute; bottom:35%; left:50%; width:6px; height:18px; background: linear-gradient(180deg, #ffd54f 0%, #e6a040 100%); border-radius: 30% 30% 10% 10%; box-shadow: 0 0 30px 10px #ffb74d; animation: pd-candle 3s ease-in-out infinite alternate; }
@keyframes pd-bg { 0% { opacity:0.9 } 50% { opacity:1 } 100% { opacity:0.92 } }
@keyframes pd-curtain { 0% { transform:translateX(0) } 50% { transform:translateX(-5px) } 100% { transform:translateX(0) } }
@keyframes pd-fig1 { 0% { transform:rotate(5deg) translateY(0) } 50% { transform:rotate(8deg) translateY(-4px) } 100% { transform:rotate(5deg) translateY(0) } }
@keyframes pd-fig2 { 0% { transform:rotate(-10deg) translateY(0) } 50% { transform:rotate(-15deg) translateY(3px) } 100% { transform:rotate(-10deg) translateY(0) } }
@keyframes pd-chest { 0% { transform:scale(1) } 50% { transform:scale(1.02) } 100% { transform:scale(1) } }
@keyframes pd-candle { 0% { box-shadow:0 0 20px 5px #ffb74d; opacity:0.7 } 50% { box-shadow:0 0 40px 15px #ffa726; opacity:1 } 100% { box-shadow:0 0 25px 8px #ffb74d; opacity:0.75 } }

/* Scene 1: bridal-chamber-fast (tense, dim-interior) */
.scn-bridal-chamber-fast {
  background: linear-gradient(180deg, #2c1a10 0%, #1a0e08 60%, #0f0805 100%),
              radial-gradient(ellipse at 50% 70%, #3d2214 0%, transparent 70%);
}
.scn-bridal-chamber-fast .wall {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(180deg, #3a2215 0%, #2c1a10 100%);
  animation: bcf-wall 12s ease-in-out infinite alternate;
}
.scn-bridal-chamber-fast .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 40%;
  background: linear-gradient(180deg, #1a0e08 0%, #0f0805 100%);
  box-shadow: inset 0 20px 40px rgba(0,0,0,0.6);
}
.scn-bridal-chamber-fast .candle-body {
  position: absolute; bottom: 42%; left: 45%; width: 8px; height: 40px;
  background: linear-gradient(180deg, #f0e0c0 0%, #d4b88a 100%);
  border-radius: 2px 2px 4px 4px;
  transform-origin: bottom center;
  animation: bcf-candle 4s ease-in-out infinite;
}
.scn-bridal-chamber-fast .flame {
  position: absolute; bottom: calc(42% + 40px); left: 45%; width: 10px; height: 20px;
  margin-left: -1px;
  background: radial-gradient(circle at 50% 100%, #ffcc66 0%, #ff8833 30%, #cc4400 70%, transparent 100%);
  border-radius: 50% 50% 20% 20%;
  box-shadow: 0 0 20px 8px #ff8833, 0 0 40px 16px rgba(204,68,0,0.4);
  animation: bcf-flame 0.8s ease-in-out infinite alternate;
}
.scn-bridal-chamber-fast .shadow-figure {
  position: absolute; bottom: 40%; left: 20%; width: 40px; height: 80px;
  background: linear-gradient(180deg, #0a0604 0%, #050302 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: bcf-shadow 3s ease-in-out infinite;
}
.scn-bridal-chamber-fast .burnt-plate {
  position: absolute; bottom: 40%; left: 55%; width: 30px; height: 8px;
  background: radial-gradient(ellipse, #3a2215 0%, #1a0e08 90%);
  border-radius: 50%;
  box-shadow: 0 2px 6px rgba(0,0,0,0.5);
  animation: bcf-plate 6s ease-in-out infinite;
}
@keyframes bcf-wall { 0% { opacity:0.85 } 50% { opacity:1 } 100% { opacity:0.9 } }
@keyframes bcf-candle { 0%,100% { transform: translateX(0) rotate(0deg) } 50% { transform: translateX(1px) rotate(1deg) } }
@keyframes bcf-flame { 0% { transform: scaleY(1) scaleX(1); opacity:0.9 } 50% { transform: scaleY(1.15) scaleX(0.9); opacity:1 } 100% { transform: scaleY(0.95) scaleX(1.05); opacity:0.85 } }
@keyframes bcf-shadow { 0% { transform: translateX(0) rotate(0deg) } 25% { transform: translateX(3px) rotate(2deg) } 75% { transform: translateX(-2px) rotate(-1deg) } 100% { transform: translateX(0) rotate(0deg) } }
@keyframes bcf-plate { 0%,100% { transform: scale(1) translateY(0) } 50% { transform: scale(0.95) translateY(-1px) } }

/* Scene 2: servants-whisper (tense, dim-interior) */
.scn-servants-whisper {
  background: linear-gradient(180deg, #1a1a2e 0%, #0f0f1a 60%, #0a0a12 100%),
              radial-gradient(ellipse at 30% 50%, #2a2a3e 0%, transparent 70%);
}
.scn-servants-whisper .bg-shadow {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, rgba(26,26,46,0.9) 0%, rgba(10,10,18,0.95) 100%);
}
.scn-servants-whisper .head-left {
  position: absolute; bottom: 30%; left: 28%; width: 30px; height: 40px;
  background: linear-gradient(180deg, #1e1e2e 0%, #0a0a12 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom left;
  animation: sw-head-l 4s ease-in-out infinite;
}
.scn-servants-whisper .head-right {
  position: absolute; bottom: 30%; right: 28%; width: 30px; height: 40px;
  background: linear-gradient(180deg, #1e1e2e 0%, #0a0a12 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom right;
  animation: sw-head-r 4s ease-in-out infinite reverse;
}
.scn-servants-whisper .doorframe {
  position: absolute; bottom: 0; left: 10%; width: 15px; height: 70%;
  background: linear-gradient(180deg, #2a2a3e 0%, #151520 100%);
  border-radius: 4px;
  box-shadow: inset 0 0 10px rgba(0,0,0,0.4);
}
.scn-servants-whisper .light-under-door {
  position: absolute; bottom: 0; left: calc(10% + 2px); width: 11px; height: 6%;
  background: linear-gradient(180deg, #4a4a6e 0%, #1a1a2e 100%);
  box-shadow: 0 0 20px 8px rgba(74,74,110,0.6);
  animation: sw-light 8s ease-in-out infinite alternate;
}
.scn-servants-whisper .whisper-particles {
  position: absolute; bottom: 45%; left: 40%; width: 120px; height: 20px;
  background: radial-gradient(ellipse, rgba(200,200,220,0.1) 0%, transparent 70%);
  filter: blur(3px);
  animation: sw-whisper 5s ease-in-out infinite;
}
@keyframes sw-head-l { 0% { transform: rotate(-5deg) translateY(0) } 50% { transform: rotate(2deg) translateY(-2px) } 100% { transform: rotate(-5deg) translateY(0) } }
@keyframes sw-head-r { 0% { transform: rotate(5deg) translateY(0) } 50% { transform: rotate(-2deg) translateY(-2px) } 100% { transform: rotate(5deg) translateY(0) } }
@keyframes sw-light { 0% { opacity:0.3; transform: scaleY(0.9) } 50% { opacity:0.7; transform: scaleY(1.1) } 100% { opacity:0.5; transform: scaleY(0.95) } }
@keyframes sw-whisper { 0% { transform: translateX(-20px) scale(1); opacity:0 } 30% { opacity:0.6 } 70% { opacity:0.6 } 100% { transform: translateX(20px) scale(1.2); opacity:0 } }

/* Scene 3: petruchios-soliloquy-taming (tense, dim-interior) */
.scn-petruchios-soliloquy-taming {
  background: linear-gradient(180deg, #1e1410 0%, #120a08 50%, #0a0503 100%),
              radial-gradient(ellipse at 70% 50%, #2e1c14 0%, transparent 70%);
}
.scn-petruchios-soliloquy-taming .bg-petruchio {
  position: absolute; inset:0;
  background: linear-gradient(180deg, rgba(30,20,16,0.8) 0%, rgba(10,5,3,0.95) 100%);
}
.scn-petruchios-soliloquy-taming .figure-petruchio {
  position: absolute; bottom: 20%; left: 25%; width: 50px; height: 100px;
  background: linear-gradient(180deg, #1a110e 0%, #0a0604 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: ps-figure 6s ease-in-out infinite;
}
.scn-petruchios-soliloquy-taming .falcon {
  position: absolute; bottom: calc(20% + 70px); left: 38%; width: 20px; height: 16px;
  background: linear-gradient(180deg, #2e221a 0%, #1a110e 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  box-shadow: 0 0 4px rgba(0,0,0,0.5);
  animation: ps-falcon 3s ease-in-out infinite;
}
.scn-petruchios-soliloquy-taming .lure {
  position: absolute; bottom: calc(20% + 30px); left: 35%; width: 14px; height: 6px;
  background: linear-gradient(90deg, #4a2a1a 0%, #6a3a2a 50%, #4a2a1a 100%);
  border-radius: 50%;
  box-shadow: 0 0 10px 2px rgba(74,42,26,0.4);
  animation: ps-lure 2.5s ease-in-out infinite;
}
.scn-petruchios-soliloquy-taming .chain {
  position: absolute; bottom: calc(20% + 36px); left: calc(35% + 7px); width: 2px; height: 30px;
  background: linear-gradient(180deg, #6a5a4a 0%, #3a2a1a 100%);
  transform-origin: top center;
  animation: ps-chain 2.5s ease-in-out infinite;
}
.scn-petruchios-soliloquy-taming .window-far {
  position: absolute; top: 10%; right: 10%; width: 40px; height: 60px;
  background: linear-gradient(180deg, #3a2a20 0%, #1a100e 100%);
  border-radius: 4px;
  box-shadow: inset 0 0 10px rgba(0,0,0,0.3);
  animation: ps-window 20s ease-in-out infinite alternate;
}
@keyframes ps-figure { 0%,100% { transform: translateX(0) rotate(0deg) } 50% { transform: translateX(3px) rotate(1deg) } }
@keyframes ps-falcon { 0% { transform: translateY(0) rotate(-2deg) } 30% { transform: translateY(-4px) rotate(3deg) } 70% { transform: translateY(2px) rotate(-1deg) } 100% { transform: translateY(0) rotate(0deg) } }
@keyframes ps-lure { 0%,100% { transform: translateX(0) rotate(0deg) } 50% { transform: translateX(4px) rotate(5deg) } }
@keyframes ps-chain { 0%,100% { transform: rotate(0deg) } 50% { transform: rotate(5deg) } }
@keyframes ps-window { 0% { opacity:0.6 } 50% { opacity:0.8 } 100% { opacity:0.5 } }

/* Scene 4: padua-bianca-lesson (calm, bright-interior) */
.scn-padua-bianca-lesson {
  background: linear-gradient(180deg, #f0e8d8 0%, #d4c8b0 30%, #b8a88a 70%, #9a8a6a 100%),
              radial-gradient(ellipse at 50% 0%, #faf0e0 0%, transparent 60%);
}
.scn-padua-bianca-lesson .wall-light {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(180deg, #e8dcc8 0%, #d0c0a8 100%);
}
.scn-padua-bianca-lesson .window-padua {
  position: absolute; top: 8%; left: 15%; width: 80px; height: 100px;
  background: linear-gradient(180deg, #c0d8e8 0%, #a0b8cc 100%);
  border: 4px solid #8a7a5a;
  border-radius: 4px;
  box-shadow: 0 0 30px 10px rgba(160,184,204,0.4);
  animation: pbl-window 10s ease-in-out infinite alternate;
}
.scn-padua-bianca-lesson .desk {
  position: absolute; bottom: 25%; left: 30%; width: 100px; height: 20px;
  background: linear-gradient(180deg, #b8a070 0%, #8a7048 100%);
  border-radius: 4px;
  box-shadow: 0 6px 12px rgba(0,0,0,0.1);
}
.scn-padua-bianca-lesson .book {
  position: absolute; bottom: calc(25% + 8px); left: 40%; width: 30px; height: 40px;
  background: linear-gradient(180deg, #e8dcc8 0%, #c4b49c 100%);
  border-radius: 2px;
  transform-origin: bottom left;
  animation: pbl-book 8s ease-in-out infinite;
}
.scn-padua-bianca-lesson .bianca-sit {
  position: absolute; bottom: 25%; left: 35%; width: 40px; height: 80px;
  background: linear-gradient(180deg, #d4c0a8 0%, #b8a48a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: pbl-bianca 6s ease-in-out infinite;
}
.scn-padua-bianca-lesson .lucentio-stand {
  position: absolute; bottom: 25%; right: 25%; width: 45px; height: 100px;
  background: linear-gradient(180deg, #c4b49c 0%, #a09078 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: pbl-lucentio 6s ease-in-out infinite reverse;
}
.scn-padua-bianca-lesson .vase {
  position: absolute; bottom: 25%; right: 15%; width: 20px; height: 40px;
  background: linear-gradient(180deg, #8a7a5a 0%, #6a5a3a 100%);
  border-radius: 4px 4px 8px 8px;
  box-shadow: 0 4px 8px rgba(0,0,0,0.15);
}
.scn-padua-bianca-lesson .flower {
  position: absolute; bottom: calc(25% + 40px); right: calc(15% + 10px); width: 8px; height: 16px;
  background: radial-gradient(circle at 50% 0%, #f0d080 0%, #c09050 100%);
  border-radius: 50%;
  box-shadow: 0 0 10px 4px rgba(192,144,80,0.3);
  animation: pbl-flower 4s ease-in-out infinite;
}
@keyframes pbl-window { 0% { opacity:0.85 } 50% { opacity:1 } 100% { opacity:0.9 } }
@keyframes pbl-book { 0% { transform: rotate(0deg) translateY(0) } 50% { transform: rotate(2deg) translateY(-2px) } 100% { transform: rotate(0deg) translateY(0) } }
@keyframes pbl-bianca { 0% { transform: translateX(0) rotate(-1deg) } 50% { transform: translateX(4px) rotate(1deg) } 100% { transform: translateX(0) rotate(-1deg) } }
@keyframes pbl-lucentio { 0% { transform: translateX(0) rotate(1deg) } 50% { transform: translateX(-3px) rotate(-1deg) } 100% { transform: translateX(0) rotate(1deg) } }
@keyframes pbl-flower { 0% { transform: scale(1) rotate(0deg) } 50% { transform: scale(1.1) rotate(5deg) } 100% { transform: scale(1) rotate(0deg) } }

.scn-item-stone-jugs { background: linear-gradient(180deg, #3a2a1a 0%, #1a0a00 100%), radial-gradient(ellipse at 50% 70%, #6a4a2a 0%, transparent 60%); }
.scn-item-stone-jugs .bg-wall { position:absolute; inset:0 0 20% 0; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); animation: sj-wall 20s ease-in-out infinite alternate; }
.scn-item-stone-jugs .table { position:absolute; bottom:20%; left:15%; right:15%; height:6%; background: linear-gradient(180deg, #5a3a1a 0%, #3a2a0a 100%); border-radius: 4px; box-shadow: 0 4px 8px rgba(0,0,0,.6); animation: sj-table 12s ease-in-out infinite; }
.scn-item-stone-jugs .jug-left { position:absolute; bottom:25%; left:25%; width:30px; height:45px; background: linear-gradient(180deg, #7a5a3a 0%, #4a2a1a 100%); border-radius: 40% 40% 30% 30% / 60% 60% 30% 30%; box-shadow: 0 6px 12px rgba(0,0,0,.5); transform-origin: bottom center; animation: sj-jug 8s ease-in-out infinite; }
.scn-item-stone-jugs .jug-right { position:absolute; bottom:25%; left:60%; width:30px; height:45px; background: linear-gradient(180deg, #7a5a3a 0%, #4a2a1a 100%); border-radius: 40% 40% 30% 30% / 60% 60% 30% 30%; box-shadow: 0 6px 12px rgba(0,0,0,.5); transform-origin: bottom center; animation: sj-jug 8s ease-in-out infinite reverse; }
.scn-item-stone-jugs .figure { position:absolute; bottom:20%; left:45%; width:25px; height:50px; background: linear-gradient(180deg, #3a2a1a 0%, #1a0a00 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: sj-figure 6s ease-in-out infinite; }
.scn-item-stone-jugs .candle { position:absolute; bottom:32%; left:50%; width:6px; height:12px; background: linear-gradient(180deg, #ffd080 0%, #b07020 100%); border-radius: 40% 40% 30% 30% / 60% 60% 30% 30%; box-shadow: 0 0 12px 4px #d09030, 0 0 24px 8px rgba(200,100,20,0.4); animation: sj-candle 3s ease-in-out infinite alternate; }
.scn-item-stone-jugs .shelf { position:absolute; bottom:45%; left:10%; right:10%; height:4%; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius: 2px; box-shadow: 0 3px 6px rgba(0,0,0,.4); }
@keyframes sj-wall { 0% { opacity:0.9 } 50% { opacity:1 } 100% { opacity:0.85 } }
@keyframes sj-table { 0%,100% { transform: translateY(0) } 50% { transform: translateY(-2px) } }
@keyframes sj-jug { 0%,100% { transform: translateY(0) rotate(-2deg) } 50% { transform: translateY(-3px) rotate(2deg) } }
@keyframes sj-figure { 0%,100% { transform: translateX(0) rotate(-1deg) } 50% { transform: translateX(3px) rotate(1deg) } }
@keyframes sj-candle { 0% { box-shadow: 0 0 10px 2px #d09030, 0 0 20px 6px rgba(200,100,20,0.3); opacity:0.8 } 50% { box-shadow: 0 0 18px 6px #e0a040, 0 0 32px 12px rgba(200,100,20,0.5); opacity:1 } 100% { box-shadow: 0 0 12px 4px #d09030, 0 0 24px 8px rgba(200,100,20,0.35); opacity:0.85 } }

.scn-page-as-lady { background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%), radial-gradient(ellipse at 50% 50%, #7a6a4a 0%, transparent 70%); }
.scn-page-as-lady .bg-wall { position:absolute; inset:0 0 15% 0; background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%); animation: pl-wall 20s ease-in-out infinite alternate; }
.scn-page-as-lady .mirror { position:absolute; top:10%; left:35%; width:80px; height:100px; background: linear-gradient(180deg, #8a7a5a 0%, #5a4a2a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; border: 4px solid #6a5a3a; box-shadow: 0 0 20px 6px rgba(180,150,100,0.3); animation: pl-mirror 15s ease-in-out infinite; }
.scn-page-as-lady .figure { position:absolute; bottom:15%; left:45%; width:30px; height:55px; background: linear-gradient(180deg, #3a2a1a 0%, #1a0a00 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: pl-twirl 6s ease-in-out infinite; }
.scn-page-as-lady .wig { position:absolute; bottom:60%; left:44%; width:40px; height:20px; background: linear-gradient(180deg, #c0a070 0%, #a08050 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; filter: blur(1px); animation: pl-wig 4s ease-in-out infinite; }
.scn-page-as-lady .dress { position:absolute; bottom:15%; left:40%; width:50px; height:40px; background: linear-gradient(180deg, #6a5a4a 0%, #4a3a2a 100%); border-radius: 40% 40% 30% 30% / 60% 60% 30% 30%; box-shadow: 0 4px 8px rgba(0,0,0,.5); animation: pl-dress 5s ease-in-out infinite; }
.scn-page-as-lady .fan { position:absolute; bottom:40%; left:55%; width:20px; height:10px; background: linear-gradient(180deg, #c0a070 0%, #a08050 100%); border-radius: 50% 50% 0 0; transform-origin: bottom center; animation: pl-fan 2s ease-in-out infinite; }
.scn-page-as-lady .candle { position:absolute; bottom:30%; left:25%; width:6px; height:12px; background: linear-gradient(180deg, #ffd080 0%, #b07020 100%); border-radius: 40% 40% 30% 30% / 60% 60% 30% 30%; box-shadow: 0 0 12px 4px #d09030, 0 0 24px 8px rgba(200,100,20,0.4); animation: pl-candle 3s ease-in-out infinite alternate; }
@keyframes pl-wall { 0% { opacity:0.9 } 50% { opacity:1 } 100% { opacity:0.85 } }
@keyframes pl-mirror { 0%,100% { transform: scale(1) } 50% { transform: scale(0.98) } }
@keyframes pl-twirl { 0% { transform: translateX(0) rotate(-5deg) } 25% { transform: translateX(5px) rotate(0deg) } 50% { transform: translateX(0) rotate(5deg) } 75% { transform: translateX(-5px) rotate(0deg) } 100% { transform: translateX(0) rotate(-5deg) } }
@keyframes pl-wig { 0%,100% { transform: translateY(0) rotate(-3deg) } 50% { transform: translateY(-4px) rotate(3deg) } }
@keyframes pl-dress { 0%,100% { transform: scale(1) } 50% { transform: scale(1.03) } }
@keyframes pl-fan { 0% { transform: rotate(-20deg) } 50% { transform: rotate(20deg) } 100% { transform: rotate(-20deg) } }
@keyframes pl-candle { 0% { box-shadow: 0 0 10px 2px #d09030, 0 0 20px 6px rgba(200,100,20,0.3); opacity:0.8 } 50% { box-shadow: 0 0 18px 6px #e0a040, 0 0 32px 12px rgba(200,100,20,0.5); opacity:1 } 100% { box-shadow: 0 0 12px 4px #d09030, 0 0 24px 8px rgba(200,100,20,0.35); opacity:0.85 } }

.scn-sly-wants-bed { background: linear-gradient(180deg, #3a2a1a 0%, #1a0a00 100%), radial-gradient(ellipse at 50% 60%, #5a3a1a 0%, transparent 70%); }
.scn-sly-wants-bed .bed { position:absolute; bottom:10%; left:20%; right:20%; height:30%; background: linear-gradient(180deg, #5a3a1a 0%, #2a1a0a 100%); border-radius: 10% 10% 4% 4% / 20% 20% 8% 8%; box-shadow: 0 8px 16px rgba(0,0,0,.5); animation: sb-bed 20s ease-in-out infinite; }
.scn-sly-wants-bed .pillow { position:absolute; bottom:32%; left:25%; width:50px; height:20px; background: linear-gradient(180deg, #7a5a3a 0%, #5a3a1a 100%); border-radius: 40% 40% 30% 30% / 60% 60% 30% 30%; animation: sb-pillow 10s ease-in-out infinite; }
.scn-sly-wants-bed .blanket { position:absolute; bottom:20%; left:22%; right:22%; height:14%; background: linear-gradient(180deg, #6a4a2a 0%, #3a2a0a 100%); border-radius: 4% 4% 8% 8%; animation: sb-blanket 8s ease-in-out infinite; }
.scn-sly-wants-bed .figure-sly { position:absolute; bottom:35%; left:30%; width:30px; height:50px; background: linear-gradient(180deg, #2a1a0a 0%, #0a0000 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: sb-sly 6s ease-in-out infinite; }
.scn-sly-wants-bed .figure-attendant { position:absolute; bottom:15%; left:65%; width:25px; 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: sb-attendant 5s ease-in-out infinite; }
.scn-sly-wants-bed .candle { position:absolute; bottom:45%; left:50%; width:6px; height:12px; background: linear-gradient(180deg, #ffd080 0%, #b07020 100%); border-radius: 40% 40% 30% 30% / 60% 60% 30% 30%; box-shadow: 0 0 12px 4px #d09030, 0 0 24px 8px rgba(200,100,20,0.4); animation: sb-candle 3s ease-in-out infinite alternate; }
.scn-sly-wants-bed .bedpost { position:absolute; bottom:10%; left:18%; width:8px; height:40%; background: linear-gradient(180deg, #6a4a2a 0%, #3a2a0a 100%); border-radius: 20% 20% 0 0; animation: sb-bedpost 12s ease-in-out infinite; }
@keyframes sb-bed { 0%,100% { transform: translateY(0) } 50% { transform: translateY(-3px) } }
@keyframes sb-pillow { 0%,100% { transform: translateY(0) rotate(-2deg) } 50% { transform: translateY(-2px) rotate(2deg) } }
@keyframes sb-blanket { 0% { transform: scaleY(1) } 50% { transform: scaleY(1.02) } 100% { transform: scaleY(1) } }
@keyframes sb-sly { 0% { transform: translateX(0) rotate(-5deg) } 30% { transform: translateX(8px) rotate(0deg) } 60% { transform: translateX(0) rotate(5deg) } 100% { transform: translateX(0) rotate(-5deg) } }
@keyframes sb-attendant { 0%,100% { transform: translateX(0) rotate(0deg) } 50% { transform: translateX(-3px) rotate(-10deg) } }
@keyframes sb-candle { 0% { box-shadow: 0 0 10px 2px #d09030, 0 0 20px 6px rgba(200,100,20,0.3); opacity:0.8 } 50% { box-shadow: 0 0 18px 6px #e0a040, 0 0 32px 12px rgba(200,100,20,0.5); opacity:1 } 100% { box-shadow: 0 0 12px 4px #d09030, 0 0 24px 8px rgba(200,100,20,0.35); opacity:0.85 } }
@keyframes sb-bedpost { 0%,100% { transform: scaleY(1) } 50% { transform: scaleY(1.02) } }

.scn-messenger-announces-play { background: linear-gradient(180deg, #2a1a0a 0%, #1a0a00 100%), radial-gradient(ellipse at 30% 50%, #8a6a3a 0%, transparent 70%); }
.scn-messenger-announces-play .bg-wall { position:absolute; inset:0 0 10% 0; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); animation: ma-wall 20s ease-in-out infinite alternate; }
.scn-messenger-announces-play .door { position:absolute; left:15%; top:0; bottom:10%; width:25%; background: linear-gradient(180deg, #6a4a2a 0%, #3a2a0a 100%); border-radius: 0 0 8% 8% / 0 0 4% 4%; box-shadow: inset 0 4px 8px rgba(0,0,0,.5); animation: ma-door 15s ease-in-out infinite; }
.scn-messenger-announces-play .light-beam { position:absolute; left:15%; top:0; bottom:10%; width:25%; background: radial-gradient(ellipse at 50% 20%, rgba(255,200,100,0.4) 0%, transparent 70%); animation: ma-beam 8s ease-in-out infinite alternate; }
.scn-messenger-announces-play .figure-messenger { position:absolute; bottom:15%; left:25%; width:28px; height:55px; background: linear-gradient(180deg, #3a2a1a 0%, #1a0a00 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: ma-messenger 6s ease-in-out infinite; }
.scn-messenger-announces-play .scroll { position:absolute; bottom:30%; left:35%; width:20px; height:6px; background: linear-gradient(180deg, #8a7a5a 0%, #6a5a3a 100%); border-radius: 20% 20% 10% 10% / 50% 50% 40% 40%; animation: ma-scroll 4s ease-in-out infinite; }
.scn-messenger-announces-play .torch { position:absolute; bottom:45%; left:55%; width:8px; height:15px; background: linear-gradient(180deg, #ffd080 0%, #b07020 100%); border-radius: 40% 40% 30% 30% / 60% 60% 30% 30%; box-shadow: 0 0 16px 6px #d09030, 0 0 32px 12px rgba(200,100,20,0.4); animation: ma-torch 3s ease-in-out infinite alternate; }
.scn-messenger-announces-play .floor { position:absolute; bottom:0; left:0; right:0; height:10%; background: linear-gradient(180deg, #3a2a1a 0%, #1a0a00 100%); box-shadow: inset 0 4px 8px rgba(0,0,0,.5); }
@keyframes ma-wall { 0% { opacity:0.9 } 50% { opacity:1 } 100% { opacity:0.85 } }
@keyframes ma-door { 0%,100% { transform: scaleX(1) } 50% { transform: scaleX(0.98) } }
@keyframes ma-beam { 0% { opacity:0.5 } 50% { opacity:0.8 } 100% { opacity:0.5 } }
@keyframes ma-messenger { 0%,100% { transform: translateY(0) rotate(-1deg) } 50% { transform: translateY(-4px) rotate(1deg) } }
@keyframes ma-scroll { 0%,100% { transform: translateY(0) rotate(-5deg) } 50% { transform: translateY(-2px) rotate(5deg) } }
@keyframes ma-torch { 0% { box-shadow: 0 0 12px 4px #d09030, 0 0 24px 8px rgba(200,100,20,0.3); opacity:0.8 } 50% { box-shadow: 0 0 20px 8px #e0a040, 0 0 40px 16px rgba(200,100,20,0.5); opacity:1 } 100% { box-shadow: 0 0 14px 5px #d09030, 0 0 28px 10px rgba(200,100,20,0.35); opacity:0.85 } }

/* Scene: item-small-ale */
.scn-item-small-ale { background: linear-gradient(135deg, #2a1b0e 0%, #4c3a2a 40%, #3d2b1f 100%), radial-gradient(ellipse at 30% 50%, #6a4a2a 0%, transparent 60%); }
.scn-item-small-ale .wall    { position:absolute; inset:0 0 0 0; background: linear-gradient(180deg, #1a0e06 0%, #2a1b0e 100%); }
.scn-item-small-ale .table   { position:absolute; bottom:0; left:0; right:0; height:25%; background: linear-gradient(180deg, #6a4a2a 0%, #3d2b1f 100%); border-radius: 40% 40% 0 0 / 20% 20% 0 0; box-shadow: inset 0 4px 8px rgba(0,0,0,0.5); }
.scn-item-small-ale .mug     { position:absolute; bottom:20%; left:35%; width:40px; height:60px; background: linear-gradient(180deg, #8a6a4a 0%, #4c3a2a 100%); border-radius: 10% 10% 5% 5%; box-shadow: 0 4px 6px rgba(0,0,0,0.6); }
.scn-item-small-ale .foam    { position:absolute; bottom:58%; left:35%; width:44px; height:10px; background: radial-gradient(circle, #e8d8b8 0%, #c8b898 70%); border-radius: 50%; opacity:0.8; animation: isa-foam 4s ease-in-out infinite alternate; }
.scn-item-small-ale .candle  { position:absolute; bottom:18%; right:30%; width:12px; height:50px; background: linear-gradient(180deg, #e8c888 0%, #a08040 100%); border-radius: 20% 20% 10% 10%; box-shadow: 0 2px 4px rgba(0,0,0,0.5); }
.scn-item-small-ale .flame   { position:absolute; bottom:65%; right:30%; width:10px; height:18px; background: radial-gradient(circle, #ffd080 0%, #e8a030 60%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; filter: blur(1px); animation: isa-flame 1.5s ease-in-out infinite alternate; }
.scn-item-small-ale .glow    { position:absolute; bottom:40%; right:20%; width:80px; height:80px; background: radial-gradient(circle, rgba(255,200,100,0.3) 0%, transparent 70%); border-radius: 50%; animation: isa-glow 3s ease-in-out infinite alternate; }
.scn-item-small-ale .hand    { position:absolute; bottom:22%; left:25%; width:30px; height:40px; background: linear-gradient(180deg, #2a1b0e 0%, #1a0e06 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: isa-hand 6s ease-in-out infinite; }
@keyframes isa-foam   { 0% { transform: scaleY(1); opacity:0.8 } 50% { transform: scaleY(1.2); opacity:1 } 100% { transform: scaleY(1); opacity:0.6 } }
@keyframes isa-flame  { 0% { transform: translateY(0) scaleX(1); opacity:0.9 } 50% { transform: translateY(-4px) scaleX(1.1); opacity:1 } 100% { transform: translateY(0) scaleX(0.9); opacity:0.7 } }
@keyframes isa-glow   { 0% { transform: scale(1); opacity:0.3 } 50% { transform: scale(1.3); opacity:0.5 } 100% { transform: scale(0.9); opacity:0.2 } }
@keyframes isa-hand   { 0% { transform: translateX(0) rotate(0deg) } 30% { transform: translateX(8px) rotate(5deg) } 60% { transform: translateX(4px) rotate(-3deg) } 100% { transform: translateX(0) rotate(0deg) } }

/* Scene: attendants-offer-pleasures */
.scn-attendants-offer-pleasures { background: linear-gradient(180deg, #2a1b0e 0%, #4c3a2a 50%, #1a0e06 100%), radial-gradient(ellipse at 60% 80%, #6a4a2a 0%, transparent 60%); }
.scn-attendants-offer-pleasures .floor  { position:absolute; bottom:0; left:0; right:0; height:20%; background: linear-gradient(180deg, #3d2b1f 0%, #1a0e06 100%); border-radius: 20% 20% 0 0; }
.scn-attendants-offer-pleasures .wall   { position:absolute; inset:0 0 20% 0; background: linear-gradient(180deg, #1a0e06 0%, #2a1b0e 100%); }
.scn-attendants-offer-pleasures .couch  { position:absolute; bottom:18%; left:20%; right:20%; height:40%; background: linear-gradient(180deg, #5e3a2a 0%, #3d2b1f 100%); border-radius: 20% 20% 10% 10%; box-shadow: 0 4px 8px rgba(0,0,0,0.6); }
.scn-attendants-offer-pleasures .pillow { position:absolute; bottom:48%; left:45%; width:50px; height:30px; background: linear-gradient(180deg, #b87878 0%, #8a5050 100%); border-radius: 50% 50% 40% 40%; transform: rotate(-10deg); animation: aop-pillow 8s ease-in-out infinite alternate; }
.scn-attendants-offer-pleasures .attendant-left  { position:absolute; bottom:20%; left:5%; width:20px; height:70px; background: linear-gradient(180deg, #2a1b0e 0%, #0f0a04 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: aop-att 6s ease-in-out infinite; }
.scn-attendants-offer-pleasures .attendant-right { position:absolute; bottom:20%; right:5%; width:20px; height:70px; background: linear-gradient(180deg, #2a1b0e 0%, #0f0a04 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: aop-att 6s ease-in-out infinite reverse; animation-delay: -3s; }
.scn-attendants-offer-pleasures .tray   { position:absolute; bottom:30%; left:30%; width:50px; height:10px; background: linear-gradient(180deg, #c8a060 0%, #a08040 100%); border-radius: 20% 20% 10% 10%; box-shadow: 0 2px 4px rgba(0,0,0,0.4); animation: aop-tray 5s ease-in-out infinite alternate; }
.scn-attendants-offer-pleasures .curtain{ position:absolute; top:0; left:0; right:0; height:30%; background: linear-gradient(180deg, #5e1a1d 0%, #3d0f11 100%); border-radius: 0 0 60% 60%; clip-path: polygon(0 0, 100% 0, 85% 100%, 15% 100%); animation: aop-curtain 10s ease-in-out infinite alternate; }
@keyframes aop-pillow   { 0% { transform: rotate(-10deg) translateY(0) } 50% { transform: rotate(5deg) translateY(-3px) } 100% { transform: rotate(-8deg) translateY(2px) } }
@keyframes aop-att      { 0% { transform: rotate(0deg) translateY(0) } 30% { transform: rotate(-3deg) translateY(-4px) } 60% { transform: rotate(2deg) translateY(2px) } 100% { transform: rotate(0deg) translateY(0) } }
@keyframes aop-tray     { 0% { transform: translateX(0) scale(1) } 50% { transform: translateX(10px) scale(1.1) } 100% { transform: translateX(0) scale(0.9) } }
@keyframes aop-curtain  { 0% { clip-path: polygon(0 0, 100% 0, 85% 100%, 15% 100%); } 50% { clip-path: polygon(0 0, 100% 0, 95% 100%, 5% 100%); } 100% { clip-path: polygon(0 0, 100% 0, 80% 100%, 20% 100%); } }

/* Scene: item-adonis-painting */
.scn-item-adonis-painting { background: linear-gradient(135deg, #1a0e06 0%, #2a1b0e 40%, #3d2b1f 100%), radial-gradient(ellipse at 40% 50%, #4c3a2a 0%, transparent 70%); }
.scn-item-adonis-painting .wall-bg      { position:absolute; inset:0 0 0 0; background: linear-gradient(180deg, #0f0a04 0%, #1a0e06 100%); }
.scn-item-adonis-painting .frame       { position:absolute; top:10%; left:15%; right:15%; bottom:15%; background: linear-gradient(180deg, #8a6a4a 0%, #5e3a2a 100%); border-radius: 10% 10% 5% 5%; box-shadow: 0 4px 8px rgba(0,0,0,0.8); }
.scn-item-adonis-painting .painting    { position:absolute; top:13%; left:18%; right:18%; bottom:18%; background: linear-gradient(180deg, #3a6a4a 0%, #2a4a3a 100%); border-radius: 8% 8% 4% 4%; }
.scn-item-adonis-painting .adonis      { position:absolute; bottom:30%; left:45%; width:30px; height:50px; background: linear-gradient(180deg, #1a2a1a 0%, #0a1a0a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform: rotate(-10deg); animation: iap-adonis 6s ease-in-out infinite alternate; }
.scn-item-adonis-painting .brook       { position:absolute; bottom:20%; left:25%; right:25%; height:10px; background: linear-gradient(90deg, #4a7a6a 0%, #6a9a8a 50%, #4a7a6a 100%); border-radius: 40%; opacity:0.6; animation: iap-brook 4s ease-in-out infinite alternate; }
.scn-item-adonis-painting .sedges      { position:absolute; bottom:22%; left:30%; width:15px; height:20px; background: linear-gradient(180deg, #5a7a3a 0%, #3a5a2a 100%); border-radius: 50% 50% 40% 40%; transform-origin: bottom center; animation: iap-sedge 3s ease-in-out infinite; }
.scn-item-adonis-painting .candle-stand{ position:absolute; bottom:10%; left:10%; width:8px; height:40px; background: linear-gradient(180deg, #8a6a4a 0%, #5e3a2a 100%); border-radius: 10% 10% 5% 5%; }
.scn-item-adonis-painting .candle-flame{ position:absolute; bottom:48%; left:10%; width:10px; height:16px; background: radial-gradient(circle, #ffd080 0%, #e8a030 60%); border-radius: 50%; filter: blur(1px); animation: iap-flame 2s ease-in-out infinite alternate; }
@keyframes iap-adonis  { 0% { transform: rotate(-10deg) translateY(0) } 50% { transform: rotate(5deg) translateY(-3px) } 100% { transform: rotate(-8deg) translateY(1px) } }
@keyframes iap-brook   { 0% { transform: translateX(0) scaleY(1); opacity:0.6 } 50% { transform: translateX(-5px) scaleY(1.2); opacity:0.8 } 100% { transform: translateX(0) scaleY(0.9); opacity:0.5 } }
@keyframes iap-sedge   { 0% { transform: rotate(0deg) } 50% { transform: rotate(10deg) } 100% { transform: rotate(-5deg) } }
@keyframes iap-flame   { 0% { transform: translateY(0) scaleX(1); opacity:0.9 } 50% { transform: translateY(-3px) scaleX(1.2); opacity:1 } 100% { transform: translateY(0) scaleX(0.8); opacity:0.7 } }

/* Scene: attendants-reveal-past */
.scn-attendants-reveal-past { background: linear-gradient(180deg, #1a0e06 0%, #2a1b0e 50%, #0f0a04 100%), radial-gradient(ellipse at 50% 30%, #4c3a2a 0%, transparent 70%); }
.scn-attendants-reveal-past .wall-bg   { position:absolute; inset:0 0 0 0; background: linear-gradient(180deg, #0f0a04 0%, #1a0e06 100%); }
.scn-attendants-reveal-past .basin     { position:absolute; bottom:12%; left:30%; right:30%; height:40%; background: linear-gradient(180deg, #5e3a2a 0%, #3d2b1f 100%); border-radius: 50% 50% 10% 10%; box-shadow: 0 4px 8px rgba(0,0,0,0.6); }
.scn-attendants-reveal-past .water     { position:absolute; bottom:28%; left:33%; right:33%; height:15%; background: linear-gradient(180deg, #4a6a6a 0%, #3a5a5a 100%); border-radius: 40% 40% 20% 20%; opacity:0.7; animation: arp-water 5s ease-in-out infinite alternate; }
.scn-attendants-reveal-past .hand      { position:absolute; bottom:35%; left:45%; width:20px; height:30px; background: linear-gradient(180deg, #2a1b0e 0%, #0f0a04 100%); border-radius: 50% 50% 40% 40%; transform: rotate(20deg); animation: arp-hand 4s ease-in-out infinite; }
.scn-attendants-reveal-past .attendant { position:absolute; bottom:10%; right:15%; width:20px; height:70px; background: linear-gradient(180deg, #2a1b0e 0%, #0f0a04 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: arp-att 7s ease-in-out infinite; }
.scn-attendants-reveal-past .pitcher   { position:absolute; bottom:30%; right:22%; width:16px; height:40px; background: linear-gradient(180deg, #8a6a4a 0%, #5e3a2a 100%); border-radius: 20% 20% 10% 10%; transform: rotate(-15deg); animation: arp-pitcher 6s ease-in-out infinite alternate; }
.scn-attendants-reveal-past .drops     { position:absolute; bottom:42%; right:18%; width:4px; height:4px; background: #6a9a8a; border-radius: 50%; opacity:0.8; animation: arp-drops 2s ease-in-out infinite; }
.scn-attendants-reveal-past .mirror-glint { position:absolute; bottom:35%; left:35%; width:12px; height:12px; background: radial-gradient(circle, #f0e0c0 0%, transparent 70%); border-radius: 50%; animation: arp-glint 3s ease-in-out infinite alternate; }
@keyframes arp-water  { 0% { transform: scaleY(1) translateY(0); opacity:0.7 } 50% { transform: scaleY(1.1) translateY(-2px); opacity:0.9 } 100% { transform: scaleY(0.9) translateY(1px); opacity:0.6 } }
@keyframes arp-hand   { 0% { transform: rotate(20deg) translateX(0) } 30% { transform: rotate(10deg) translateX(3px) } 60% { transform: rotate(15deg) translateX(-2px) } 100% { transform: rotate(20deg) translateX(0) } }
@keyframes arp-att    { 0% { transform: rotate(0deg) translateY(0) } 40% { transform: rotate(-3deg) translateY(-5px) } 80% { transform: rotate(2deg) translateY(2px) } 100% { transform: rotate(0deg) translateY(0) } }
@keyframes arp-pitcher{ 0% { transform: rotate(-15deg) translateX(0) } 50% { transform: rotate(-5deg) translateX(5px) } 100% { transform: rotate(-10deg) translateX(-2px) } }
@keyframes arp-drops  { 0% { transform: translateY(0); opacity:0.8 } 50% { transform: translateY(10px); opacity:0.2 } 100% { transform: translateY(0); opacity:0.8 } }
@keyframes arp-glint  { 0% { transform: scale(1); opacity:0.3 } 50% { transform: scale(1.5); opacity:0.7 } 100% { transform: scale(0.8); opacity:0.2 } }

.scn-moon-or-sun { background: linear-gradient(180deg, #0b0b2a 0%, #1a1a4e 40%, #2c2255 100%), radial-gradient(ellipse at 50% 0%, #2c2255 0%, transparent 70%); }
.scn-moon-or-sun .sky { position:absolute; inset:0 0 45% 0; background: linear-gradient(180deg, #161645 0%, transparent 100%); animation: mos-sky 20s ease-in-out infinite alternate; }
.scn-moon-or-sun .moon { position:absolute; top:12%; left:70%; width:50px; height:50px; background: radial-gradient(circle at 40% 35%, #e8e8f0, #b0b0d0 70%); border-radius:50%; box-shadow: 0 0 40px 10px #b0b0d0, 0 0 80px 25px rgba(176,176,208,.4); animation: mos-moon 40s ease-in-out infinite alternate; }
.scn-moon-or-sun .hills-back { position:absolute; bottom:35%; left:0; right:0; height:30%; background: linear-gradient(180deg, #1a2a1a 0%, #0d1a0d 100%); border-radius: 30% 70% 0 0 / 60% 80% 0 0; box-shadow: inset 0 10px 20px rgba(0,0,0,.5); animation: mos-hills 25s ease-in-out infinite alternate; }
.scn-moon-or-sun .hills-front { position:absolute; bottom:25%; left:0; right:0; height:20%; background: linear-gradient(180deg, #2c3c2c 0%, #1a2a1a 100%); border-radius: 50% 50% 0 0 / 80% 70% 0 0; box-shadow: inset 0 5px 15px rgba(0,0,0,.6); animation: mos-hills 30s ease-in-out infinite alternate-reverse; }
.scn-moon-or-sun .road { position:absolute; bottom:20%; left:25%; right:25%; height:8%; background: linear-gradient(180deg, #4a3a2a 0%, #3a2a1a 100%); border-radius: 30% / 50%; transform: perspective(200px) rotateX(10deg); }
.scn-moon-or-sun .figure-left { position:absolute; bottom:22%; left:30%; width:16px; height:40px; background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%); border-radius: 45% 45% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: mos-walk-left 6s ease-in-out infinite; }
.scn-moon-or-sun .figure-right { position:absolute; bottom:22%; right:35%; width:18px; height:42px; background: linear-gradient(180deg, #1d1d2d 0%, #0c0c1c 100%); border-radius: 45% 45% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: mos-walk-right 7s ease-in-out infinite; }
.scn-moon-or-sun .cloud-1 { position:absolute; top:18%; left:15%; width:70px; height:16px; background: linear-gradient(180deg, rgba(255,255,255,.3) 0%, rgba(255,255,255,.05) 100%); border-radius:50%; filter: blur(8px); animation: mos-drift-a 35s linear infinite; }
.scn-moon-or-sun .cloud-2 { position:absolute; top:25%; right:10%; width:55px; height:12px; background: linear-gradient(180deg, rgba(255,255,255,.25) 0%, rgba(255,255,255,.03) 100%); border-radius:50%; filter: blur(6px); animation: mos-drift-b 45s linear infinite reverse; }
@keyframes mos-sky { 0% { opacity: .7 } 50% { opacity: 1 } 100% { opacity: .6 } }
@keyframes mos-moon { 0% { transform: translateX(0) scale(1); box-shadow: 0 0 40px 10px #b0b0d0, 0 0 80px 25px rgba(176,176,208,.4); } 50% { transform: translateX(-10px) scale(1.02); box-shadow: 0 0 60px 15px #c0c0e0, 0 0 100px 30px rgba(192,192,224,.5); } 100% { transform: translateX(5px) scale(.98); box-shadow: 0 0 35px 8px #a0a0c0, 0 0 70px 20px rgba(160,160,192,.35); } }
@keyframes mos-hills { 0% { transform: translateY(0) } 50% { transform: translateY(-4px) } 100% { transform: translateY(2px) } }
@keyframes mos-walk-left { 0% { transform: translateX(0) rotate(-2deg) } 25% { transform: translateX(5px) rotate(0deg) } 50% { transform: translateX(10px) rotate(2deg) } 75% { transform: translateX(5px) rotate(0deg) } 100% { transform: translateX(0) rotate(-2deg) } }
@keyframes mos-walk-right { 0% { transform: translateX(0) rotate(2deg) } 25% { transform: translateX(-4px) rotate(0deg) } 50% { transform: translateX(-8px) rotate(-2deg) } 75% { transform: translateX(-4px) rotate(0deg) } 100% { transform: translateX(0) rotate(2deg) } }
@keyframes mos-drift-a { 0% { transform: translateX(-30px) } 100% { transform: translateX(120vw) } }
@keyframes mos-drift-b { 0% { transform: translateX(0) } 100% { transform: translateX(-100vw) } }

.scn-encountering-vincentio { background: linear-gradient(180deg, #f7e8c0 0%, #f0d090 50%, #d4a860 100%), radial-gradient(ellipse at 50% 100%, #f0d090 0%, transparent 70%); }
.scn-encountering-vincentio .sky-warm { position:absolute; inset:0 0 50% 0; background: linear-gradient(180deg, #b8d4e8 0%, #e8f0c0 100%); animation: encv-sky 15s ease-in-out infinite alternate; }
.scn-encountering-vincentio .sun { position:absolute; top:10%; left:60%; width:60px; height:60px; background: radial-gradient(circle at 40% 40%, #ffe080, #f0c040 70%); border-radius:50%; box-shadow: 0 0 50px 15px #f0c040, 0 0 100px 30px rgba(240,192,64,.5); animation: encv-sun 20s ease-in-out infinite alternate; }
.scn-encountering-vincentio .fields { position:absolute; bottom:30%; left:0; right:0; height:35%; background: linear-gradient(180deg, #7aaa50 0%, #5a7a30 100%); border-radius: 50% 50% 0 0 / 80% 60% 0 0; box-shadow: inset 0 8px 20px rgba(0,0,0,.2); animation: encv-fields 18s ease-in-out infinite alternate; }
.scn-encountering-vincentio .road-warm { position:absolute; bottom:20%; left:20%; right:20%; height:10%; background: linear-gradient(90deg, #b09070 0%, #d0b090 50%, #b09070 100%); border-radius: 20% / 40%; transform: perspective(300px) rotateX(5deg); }
.scn-encountering-vincentio .tree-left { position:absolute; bottom:35%; left:8%; width:30px; height:80px; background: linear-gradient(180deg, #4a7a2a 0%, #2a4a1a 100%); border-radius: 50% 50% 30% 30% / 70% 70% 30% 30%; transform-origin: bottom center; animation: encv-tree 12s ease-in-out infinite alternate; }
.scn-encountering-vincentio .vincentio { position:absolute; bottom:18%; left:35%; width:20px; height:48px; background: linear-gradient(180deg, #6a4a3a 0%, #3a2a1a 100%); border-radius: 45% 45% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: encv-bow 5s ease-in-out infinite; }
.scn-encountering-vincentio .petruchio { position:absolute; bottom:18%; left:50%; width:18px; height:44px; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius: 45% 45% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: encv-gesture 6s ease-in-out infinite; }
.scn-encountering-vincentio .kate { position:absolute; bottom:18%; right:30%; width:16px; height:40px; background: linear-gradient(180deg, #3a4a5a 0%, #1a2a3a 100%); border-radius: 45% 45% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: encv-curtsey 7s ease-in-out infinite; }
.scn-encountering-vincentio .butterfly { position:absolute; top:30%; left:45%; width:8px; height:6px; background: #d07050; border-radius: 50% 50% 0 100%; transform: rotate(45deg); box-shadow: 0 0 6px 2px rgba(208,112,80,.5); animation: encv-butterfly 8s ease-in-out infinite; }
@keyframes encv-sky { 0% { opacity: .8 } 50% { opacity: 1 } 100% { opacity: .9 } }
@keyframes encv-sun { 0% { transform: translateX(0) scale(1); box-shadow: 0 0 50px 15px #f0c040, 0 0 100px 30px rgba(240,192,64,.5); } 50% { transform: translateX(8px) scale(1.03); box-shadow: 0 0 70px 20px #ffd050, 0 0 120px 40px rgba(255,208,80,.6); } 100% { transform: translateX(-5px) scale(.97); box-shadow: 0 0 45px 12px #e0b030, 0 0 90px 25px rgba(224,176,48,.4); } }
@keyframes encv-fields { 0% { transform: translateY(0) } 50% { transform: translateY(-3px) } 100% { transform: translateY(0) } }
@keyframes encv-tree { 0% { transform: rotate(-2deg) } 50% { transform: rotate(2deg) } 100% { transform: rotate(-1deg) } }
@keyframes encv-bow { 0% { transform: translateY(0) rotate(0deg) } 25% { transform: translateY(-2px) rotate(-10deg) } 50% { transform: translateY(0) rotate(0deg) } 75% { transform: translateY(-2px) rotate(-5deg) } 100% { transform: translateY(0) rotate(0deg) } }
@keyframes encv-gesture { 0% { transform: translateY(0) rotate(0deg) } 25% { transform: translateY(-3px) rotate(5deg) } 50% { transform: translateY(0) rotate(0deg) } 75% { transform: translateY(-3px) rotate(3deg) } 100% { transform: translateY(0) rotate(0deg) } }
@keyframes encv-curtsey { 0% { transform: translateY(0) rotate(0deg) } 25% { transform: translateY(-2px) rotate(-5deg) } 50% { transform: translateY(0) rotate(0deg) } 75% { transform: translateY(-2px) rotate(-3deg) } 100% { transform: translateY(0) rotate(0deg) } }
@keyframes encv-butterfly { 0% { transform: translate(0,0) rotate(45deg) scale(1) } 25% { transform: translate(10px,-15px) rotate(30deg) scale(1.1) } 50% { transform: translate(20px,5px) rotate(60deg) scale(.9) } 75% { transform: translate(10px,10px) rotate(40deg) scale(1.05) } 100% { transform: translate(0,0) rotate(45deg) scale(1) } }

.scn-kate-plays-along { background: linear-gradient(180deg, #fcf4d0 0%, #e8d8a0 50%, #c8b060 100%), radial-gradient(ellipse at 50% 0%, #fcf4d0 0%, transparent 70%); }
.scn-kate-plays-along .sky-bright { position:absolute; inset:0 0 50% 0; background: linear-gradient(180deg, #a0d0e8 0%, #d8f0c0 100%); animation: kpa-sky 12s ease-in-out infinite alternate; }
.scn-kate-plays-along .sun-big { position:absolute; top:8%; right:20%; width:80px; height:80px; background: radial-gradient(circle at 40% 40%, #ffe8a0, #f8d060 60%, #e0b040 100%); border-radius:50%; box-shadow: 0 0 60px 20px #f8d060, 0 0 120px 40px rgba(248,208,96,.5); animation: kpa-sun-pulse 3s ease-in-out infinite; }
.scn-kate-plays-along .ground-bright { position:absolute; bottom:20%; left:0; right:0; height:30%; background: linear-gradient(180deg, #c0d080 0%, #a0b060 100%); border-radius: 40% 60% 0 0 / 70% 80% 0 0; box-shadow: inset 0 5px 15px rgba(0,0,0,.15); }
.scn-kate-plays-along .hedge { position:absolute; bottom:25%; left:5%; right:5%; height:20%; background: linear-gradient(180deg, #6a8a3a 0%, #4a6a1a 100%); border-radius: 50% 50% 0 0 / 100% 100% 0 0; box-shadow: inset 0 -5px 10px rgba(0,0,0,.3); }
.scn-kate-plays-along .kate-bowing { position:absolute; bottom:18%; left:30%; width:20px; height:50px; background: linear-gradient(180deg, #c87050 0%, #a05030 100%); border-radius: 45% 45% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: kpa-bounce 1.5s ease-in-out infinite; }
.scn-kate-plays-along .petruchio-point { position:absolute; bottom:18%; left:50%; width:18px; height:46px; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius: 45% 45% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: kpa-point 2s ease-in-out infinite; }
.scn-kate-plays-along .vincentio-old { position:absolute; bottom:18%; right:25%; width:22px; height:48px; background: linear-gradient(180deg, #6a5a4a 0%, #3a2a1a 100%); border-radius: 45% 45% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: kpa-stagger 3s ease-in-out infinite; }
.scn-kate-plays-along .flower { position:absolute; bottom:20%; left:70%; width:8px; height:12px; background: radial-gradient(circle at 50% 30%, #f0a070, #d07040 60%); border-radius: 50% 50% 10% 10%; box-shadow: 0 0 4px 1px #d07040; animation: kpa-flower 2.5s ease-in-out infinite alternate; }
@keyframes kpa-sky { 0% { opacity: .9 } 50% { opacity: 1 } 100% { opacity: .8 } }
@keyframes kpa-sun-pulse { 0% { transform: scale(1); box-shadow: 0 0 60px 20px #f8d060, 0 0 120px 40px rgba(248,208,96,.5); } 50% { transform: scale(1.08); box-shadow: 0 0 80px 25px #ffe080, 0 0 150px 50px rgba(255,224,128,.6); } 100% { transform: scale(1); box-shadow: 0 0 60px 20px #f8d060, 0 0 120px 40px rgba(248,208,96,.5); } }
@keyframes kpa-bounce { 0% { transform: translateY(0) rotate(0deg) } 25% { transform: translateY(-5px) rotate(-8deg) } 50% { transform: translateY(0) rotate(0deg) } 75% { transform: translateY(-3px) rotate(5deg) } 100% { transform: translateY(0) rotate(0deg) } }
@keyframes kpa-point { 0% { transform: translateX(0) rotate(0deg) } 25% { transform: translateX(3px) rotate(10deg) } 50% { transform: translateX(0) rotate(0deg) } 75% { transform: translateX(3px) rotate(5deg) } 100% { transform: translateX(0) rotate(0deg) } }
@keyframes kpa-stagger { 0% { transform: translateX(0) rotate(0deg) } 25% { transform: translateX(-2px) rotate(-3deg) } 50% { transform: translateX(0) rotate(0deg) } 75% { transform: translateX(-2px) rotate(2deg) } 100% { transform: translateX(0) rotate(0deg) } }
@keyframes kpa-flower { 0% { transform: scaleY(1) } 50% { transform: scaleY(1.2) rotate(5deg) } 100% { transform: scaleY(1) } }

.scn-joyful-news-for-vincentio { background: linear-gradient(180deg, #fae8c0 0%, #f0c880 50%, #d8a050 100%), radial-gradient(ellipse at 50% 0%, #fae8c0 0%, transparent 70%); }
.scn-joyful-news-for-vincentio .sky-joy { position:absolute; inset:0 0 45% 0; background: linear-gradient(180deg, #b0d8f0 0%, #e0f0c0 100%); animation: jnfv-sky 18s ease-in-out infinite alternate; }
.scn-joyful-news-for-vincentio .sun-joy { position:absolute; top:12%; left:50%; width:70px; height:70px; background: radial-gradient(circle at 40% 40%, #ffe8a0, #f8d060 60%, #e0b040 100%); border-radius:50%; box-shadow: 0 0 70px 20px #f8d060, 0 0 140px 40px rgba(248,208,96,.5); animation: jnfv-sun-glow 4s ease-in-out infinite alternate; }
.scn-joyful-news-for-vincentio .lawn { position:absolute; bottom:25%; left:0; right:0; height:35%; background: linear-gradient(180deg, #b0d070 0%, #80a040 100%); border-radius: 30% 70% 0 0 / 90% 80% 0 0; box-shadow: inset 0 8px 20px rgba(0,0,0,.15); }
.scn-joyful-news-for-vincentio .group-left { position:absolute; bottom:20%; left:25%; width:40px; height:50px; background: linear-gradient(180deg, #6a5a3a 0%, #3a2a1a 100%); border-radius: 30% 30% 25% 25% / 40% 40% 30% 30%; transform-origin: bottom center; animation: jnfv-hug-left 3s ease-in-out infinite; }
.scn-joyful-news-for-vincentio .group-right { position:absolute; bottom:20%; right:25%; width:40px; height:50px; background: linear-gradient(180deg, #5a6a4a 0%, #2a3a1a 100%); border-radius: 30% 30% 25% 25% / 40% 40% 30% 30%; transform-origin: bottom center; animation: jnfv-hug-right 3.5s ease-in-out infinite; }
.scn-joyful-news-for-vincentio .embrace { position:absolute; bottom:20%; left:38%; right:38%; height:40px; background: radial-gradient(ellipse at 50% 50%, #7a5a3a 0%, #4a2a1a 100%); border-radius: 40% 40% 20% 20% / 80% 80% 20% 20%; box-shadow: inset 0 0 10px rgba(0,0,0,.3); animation: jnfv-embrace 4s ease-in-out infinite; }
.scn-joyful-news-for-vincentio .sparkle-1 { position:absolute; top:25%; left:30%; width:6px; height:6px; background: #ffe080; border-radius:50%; box-shadow: 0 0 8px 2px #ffe080; animation: jnfv-sparkle 2s ease-in-out infinite alternate; }
.scn-joyful-news-for-vincentio .sparkle-2 { position:absolute; top:30%; right:35%; width:5px; height:5px; background: #ffe080; border-radius:50%; box-shadow: 0 0 8px 2px #ffe080; animation: jnfv-sparkle 2.5s ease-in-out infinite alternate-reverse; }
@keyframes jnfv-sky { 0% { opacity: .85 } 50% { opacity: 1 } 100% { opacity: .9 } }
@keyframes jnfv-sun-glow { 0% { transform: scale(1); box-shadow: 0 0 70px 20px #f8d060, 0 0 140px 40px rgba(248,208,96,.5); } 50% { transform: scale(1.05); box-shadow: 0 0 90px 30px #ffe080, 0 0 180px 50px rgba(255,224,128,.6); } 100% { transform: scale(1); box-shadow: 0 0 70px 20px #f8d060, 0 0 140px 40px rgba(248,208,96,.5); } }
@keyframes jnfv-hug-left { 0% { transform: translateX(0) rotate(0deg) } 25% { transform: translateX(-3px) rotate(-5deg) } 50% { transform: translateX(0) rotate(0deg) } 75% { transform: translateX(-3px) rotate(-3deg) } 100% { transform: translateX(0) rotate(0deg) } }
@keyframes jnfv-hug-right { 0% { transform: translateX(0) rotate(0deg) } 25% { transform: translateX(3px) rotate(5deg) } 50% { transform: translateX(0) rotate(0deg) } 75% { transform: translateX(3px) rotate(3deg) } 100% { transform: translateX(0) rotate(0deg) } }
@keyframes jnfv-embrace { 0% { transform: scaleY(1) } 50% { transform: scaleY(1.1) } 100% { transform: scaleY(1) } }
@keyframes jnfv-sparkle { 0% { transform: scale(1); opacity: .5 } 50% { transform: scale(1.5); opacity: 1 } 100% { transform: scale(1); opacity: .5 } }

/* Scene 1: sensible-tale */
.scn-sensible-tale {
  background:
    linear-gradient(180deg, #2a1e14 0%, #1a120a 40%, #0d0a05 100%),
    radial-gradient(ellipse at 30% 60%, #3a2a1a 0%, transparent 70%);
}
.scn-sensible-tale .room-bg {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a120a 100%);
  animation: st-bg 12s ease-in-out infinite alternate;
}
.scn-sensible-tale .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #1a120a 0%, #0d0a05 100%);
}
.scn-sensible-tale .stool {
  position: absolute; bottom: 18%; left: 45%; width: 24px; height: 20px;
  background: #5a3a22; border-radius: 4px 4px 2px 2px;
  transform-origin: bottom center;
  animation: st-stool 1.5s ease-in-out infinite;
}
.scn-sensible-tale .teller-head {
  position: absolute; bottom: 36%; left: 46%; width: 22px; height: 26px;
  background: radial-gradient(circle at 40% 40%, #d4a574 0%, #b8855a 100%);
  border-radius: 60% 30% 30% 60% / 50% 40% 40% 50%;
  transform-origin: bottom center;
  animation: st-nod 4s ease-in-out infinite;
}
.scn-sensible-tale .teller-body {
  position: absolute; bottom: 12%; left: 44%; width: 30px; height: 38px;
  background: linear-gradient(180deg, #6a503a 0%, #3a2a1a 100%);
  border-radius: 30% 30% 20% 20%;
  transform-origin: bottom center;
  animation: st-body 4s ease-in-out infinite;
}
.scn-sensible-tale .teller-arm {
  position: absolute; bottom: 28%; left: 40%; width: 20px; height: 8px;
  background: #d4a574; border-radius: 0 60% 60% 0;
  transform-origin: 0 50%;
  animation: st-arm 2s ease-in-out infinite alternate;
}
.scn-sensible-tale .candle {
  position: absolute; bottom: 32%; left: 32%; width: 6px; height: 18px;
  background: linear-gradient(180deg, #ffd080 0%, #b08040 100%);
  border-radius: 2px 2px 1px 1px;
  animation: st-candle 0.8s ease-in-out infinite alternate;
}
.scn-sensible-tale .candle-glow {
  position: absolute; bottom: 30%; left: 30%; width: 40px; height: 40px;
  background: radial-gradient(circle, rgba(255,200,100,0.4) 0%, transparent 70%);
  border-radius: 50%;
  animation: st-glow 3s ease-in-out infinite alternate;
}
.scn-sensible-tale .shadow {
  position: absolute; bottom: 10%; left: 36%; width: 60px; height: 10px;
  background: radial-gradient(ellipse, rgba(0,0,0,0.6) 0%, transparent 100%);
  animation: st-shadow 4s ease-in-out infinite;
}
@keyframes st-bg { 0% { opacity: 0.9 } 50% { opacity: 1 } 100% { opacity: 0.85 } }
@keyframes st-stool { 0% { transform: rotate(0deg) translateY(0) } 25% { transform: rotate(2deg) translateY(-1px) } 50% { transform: rotate(0deg) translateY(0) } 75% { transform: rotate(-2deg) translateY(-1px) } 100% { transform: rotate(0deg) translateY(0) } }
@keyframes st-nod { 0% { transform: rotate(0deg) translateY(0) } 25% { transform: rotate(-3deg) translateY(-2px) } 50% { transform: rotate(3deg) translateY(0) } 75% { transform: rotate(-3deg) translateY(-2px) } 100% { transform: rotate(0deg) translateY(0) } }
@keyframes st-body { 0% { transform: scaleY(1) } 50% { transform: scaleY(1.02) } 100% { transform: scaleY(1) } }
@keyframes st-arm { 0% { transform: rotate(-20deg) scaleX(1) } 50% { transform: rotate(10deg) scaleX(1.1) } 100% { transform: rotate(-20deg) scaleX(1) } }
@keyframes st-candle { 0% { height: 18px; opacity: 0.9 } 50% { height: 20px; opacity: 1 } 100% { height: 18px; opacity: 0.9 } }
@keyframes st-glow { 0% { transform: scale(0.9); opacity: 0.6 } 50% { transform: scale(1.1); opacity: 0.8 } 100% { transform: scale(0.9); opacity: 0.6 } }
@keyframes st-shadow { 0% { transform: scaleX(0.8) } 50% { transform: scaleX(1.1) } 100% { transform: scaleX(0.8) } }

/* Scene 2: shrew-comparison */
.scn-shrew-comparison {
  background:
    linear-gradient(180deg, #1e1a14 0%, #14100a 50%, #0a0805 100%),
    radial-gradient(ellipse at 80% 40%, #2a2218 0%, transparent 70%);
}
.scn-shrew-comparison .wall {
  position: absolute; inset: 0 0 32% 0;
  background: linear-gradient(180deg, #2a2218 0%, #1a1410 100%);
}
.scn-shrew-comparison .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 32%;
  background: linear-gradient(180deg, #1a1410 0%, #0a0805 100%);
}
.scn-shrew-comparison .servant-1,
.scn-shrew-comparison .servant-2,
.scn-shrew-comparison .servant-3 {
  position: absolute; bottom: 24%; width: 18px; height: 40px;
  background: linear-gradient(180deg, #3a4a5a 0%, #1a2a3a 100%);
  border-radius: 40% 40% 20% 20%;
  transform-origin: bottom center;
  animation: sc-tremble 1.2s ease-in-out infinite;
}
.scn-shrew-comparison .servant-1 { left: 25%; animation-delay: 0s; }
.scn-shrew-comparison .servant-2 { left: 47%; animation-delay: 0.3s; }
.scn-shrew-comparison .servant-3 { left: 69%; animation-delay: 0.6s; }
.scn-shrew-comparison .lantern {
  position: absolute; bottom: 36%; left: 20%; width: 14px; height: 22px;
  background: linear-gradient(180deg, #8a6a3a 0%, #5a3a1a 100%);
  border-radius: 4px 4px 2px 2px;
  animation: sc-swing 3s ease-in-out infinite;
}
.scn-shrew-comparison .lantern-glow {
  position: absolute; bottom: 34%; left: 18%; width: 50px; height: 50px;
  background: radial-gradient(circle, rgba(255,180,80,0.3) 0%, transparent 70%);
  border-radius: 50%;
  animation: sc-glow-flicker 2s ease-in-out infinite alternate;
}
.scn-shrew-comparison .door {
  position: absolute; bottom: 10%; right: 10%; width: 30px; height: 50px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a10 100%);
  border-radius: 4px 4px 0 0;
  transform-origin: bottom center;
  animation: sc-door 8s ease-in-out infinite;
}
@keyframes sc-tremble { 0% { transform: rotate(0deg) translateY(0) } 25% { transform: rotate(1deg) translateY(-1px) } 50% { transform: rotate(0deg) translateY(0) } 75% { transform: rotate(-1deg) translateY(-1px) } 100% { transform: rotate(0deg) translateY(0) } }
@keyframes sc-swing { 0% { transform: rotate(-5deg) } 25% { transform: rotate(5deg) } 50% { transform: rotate(-3deg) } 75% { transform: rotate(7deg) } 100% { transform: rotate(-5deg) } }
@keyframes sc-glow-flicker { 0% { opacity: 0.5; transform: scale(0.9) } 50% { opacity: 0.8; transform: scale(1.1) } 100% { opacity: 0.5; transform: scale(0.9) } }
@keyframes sc-door { 0% { transform: rotateY(0deg) } 20% { transform: rotateY(30deg) } 40% { transform: rotateY(0deg) } 100% { transform: rotateY(0deg) } }

/* Scene 3: greeting-grumio */
.scn-greeting-grumio {
  background:
    linear-gradient(180deg, #3a2a1a 0%, #1a120a 40%, #0d0a05 100%),
    radial-gradient(ellipse at 40% 70%, #ffc08020 0%, transparent 70%);
}
.scn-greeting-grumio .room-bg {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a120a 100%);
  animation: gg-breathe 15s ease-in-out infinite alternate;
}
.scn-greeting-grumio .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #1a120a 0%, #0d0a05 100%);
}
.scn-greeting-grumio .grumio-head {
  position: absolute; bottom: 36%; left: 46%; width: 24px; height: 28px;
  background: radial-gradient(circle at 40% 40%, #d4a574 0%, #b8855a 100%);
  border-radius: 50% 50% 30% 30%;
  transform-origin: bottom center;
  animation: gg-look 5s ease-in-out infinite;
}
.scn-greeting-grumio .grumio-body {
  position: absolute; bottom: 12%; left: 44%; width: 34px; height: 42px;
  background: linear-gradient(180deg, #6a503a 0%, #3a2a1a 100%);
  border-radius: 30% 30% 20% 20%;
  transform-origin: bottom center;
  animation: gg-body 5s ease-in-out infinite;
}
.scn-greeting-grumio .server-1,
.scn-greeting-grumio .server-2,
.scn-greeting-grumio .server-3 {
  position: absolute; bottom: 26%; width: 18px; height: 36px;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 40% 40% 20% 20%;
  transform-origin: bottom center;
  animation: gg-wave 3s ease-in-out infinite;
}
.scn-greeting-grumio .server-1 { left: 20%; animation-delay: 0s; }
.scn-greeting-grumio .server-2 { left: 70%; animation-delay: 0.5s; }
.scn-greeting-grumio .server-3 { left: 85%; animation-delay: 1s; }
.scn-greeting-grumio .hearth-glow {
  position: absolute; bottom: 20%; left: 10%; width: 60px; height: 60px;
  background: radial-gradient(circle, rgba(255,200,80,0.2) 0%, transparent 70%);
  border-radius: 50%;
  animation: gg-hearth 4s ease-in-out infinite alternate;
}
@keyframes gg-breathe { 0% { opacity: 0.9 } 50% { opacity: 1 } 100% { opacity: 0.9 } }
@keyframes gg-look { 0% { transform: rotate(0deg) translateY(0) } 25% { transform: rotate(-5deg) translateY(-2px) } 50% { transform: rotate(5deg) translateY(0) } 75% { transform: rotate(-5deg) translateY(-2px) } 100% { transform: rotate(0deg) translateY(0) } }
@keyframes gg-body { 0% { transform: scaleY(1) } 50% { transform: scaleY(1.03) } 100% { transform: scaleY(1) } }
@keyframes gg-wave { 0% { transform: rotate(0deg) } 25% { transform: rotate(10deg) } 50% { transform: rotate(0deg) } 75% { transform: rotate(-10deg) } 100% { transform: rotate(0deg) } }
@keyframes gg-hearth { 0% { transform: scale(1); opacity: 0.5 } 50% { transform: scale(1.2); opacity: 0.7 } 100% { transform: scale(1); opacity: 0.5 } }

/* Scene 4: master-arrives-knaves */
.scn-master-arrives-knaves {
  background:
    linear-gradient(180deg, #1e1810 0%, #14100a 40%, #080504 100%),
    radial-gradient(ellipse at 50% 80%, #2a1e14 0%, transparent 80%);
}
.scn-master-arrives-knaves .entry-wall {
  position: absolute; inset: 0 0 28% 0;
  background: linear-gradient(180deg, #2a1e14 0%, #1a120a 100%);
}
.scn-master-arrives-knaves .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 28%;
  background: linear-gradient(180deg, #1a120a 0%, #080504 100%);
}
.scn-master-arrives-knaves .doorway {
  position: absolute; bottom: 16%; left: 46%; width: 40px; height: 60px;
  background: #0a0805;
  border-radius: 4px 4px 0 0;
  transform-origin: bottom;
  animation: ma-door 0.5s linear 1 forwards;
}
.scn-master-arrives-knaves .petruchio-head {
  position: absolute; bottom: 40%; left: 44%; width: 26px; height: 30px;
  background: radial-gradient(circle at 40% 40%, #d4a574 0%, #b8855a 100%);
  border-radius: 50% 50% 20% 20%;
  transform-origin: bottom center;
  animation: ma-stride 6s ease-in-out infinite;
}
.scn-master-arrives-knaves .petruchio-body {
  position: absolute; bottom: 12%; left: 42%; width: 40px; height: 48px;
  background: linear-gradient(180deg, #5a4a3a 0%, #2a1e14 100%);
  border-radius: 30% 30% 10% 10%;
  transform-origin: bottom center;
  animation: ma-stride-body 6s ease-in-out infinite;
}
.scn-master-arrives-knaves .katharina-head {
  position: absolute; bottom: 36%; left: 52%; width: 20px; height: 24px;
  background: radial-gradient(circle at 40% 40%, #e0c8a8 0%, #c8b090 100%);
  border-radius: 50% 50% 30% 30%;
  transform-origin: bottom center;
  animation: ma-stride 6s ease-in-out infinite -1.5s;
}
.scn-master-arrives-knaves .katharina-body {
  position: absolute; bottom: 10%; left: 50%; width: 32px; height: 44px;
  background: linear-gradient(180deg, #6a5a4a 0%, #3a2a1a 100%);
  border-radius: 30% 30% 10% 10%;
  transform-origin: bottom center;
  animation: ma-stride-body 6s ease-in-out infinite -1.5s;
}
.scn-master-arrives-knaves .knave-1,
.scn-master-arrives-knaves .knave-2 {
  position: absolute; bottom: 16%; width: 16px; height: 30px;
  background: linear-gradient(180deg, #3a4a5a 0%, #1a2a3a 100%);
  border-radius: 40% 40% 20% 20%;
  transform-origin: bottom center;
  animation: ma-cower 2s ease-in-out infinite alternate;
}
.scn-master-arrives-knaves .knave-1 { left: 28%; animation-delay: 0s; }
.scn-master-arrives-knaves .knave-2 { left: 66%; animation-delay: 0.4s; }
@keyframes ma-door { 0% { transform: scaleY(0) } 100% { transform: scaleY(1) } }
@keyframes ma-stride { 0% { transform: rotate(0deg) translateY(0) } 25% { transform: rotate(-2deg) translateY(-2px) } 50% { transform: rotate(2deg) translateY(0) } 75% { transform: rotate(-2deg) translateY(-2px) } 100% { transform: rotate(0deg) translateY(0) } }
@keyframes ma-stride-body { 0% { transform: translateX(0) scaleY(1) } 25% { transform: translateX(2px) scaleY(1.02) } 50% { transform: translateX(0) scaleY(1) } 75% { transform: translateX(-2px) scaleY(1.02) } 100% { transform: translateX(0) scaleY(1) } }
@keyframes ma-cower { 0% { transform: scaleY(1) translateY(0) } 100% { transform: scaleY(0.8) translateY(4px) } }

/* Scene 1: padua-baptista-house-scholars (pbs) */
.scn-padua-baptista-house-scholars {
  background:
    linear-gradient(180deg, #f5e6c8 0%, #d4b48c 100%),
    radial-gradient(ellipse at 80% 30%, rgba(255,230,180,0.4), transparent 60%);
}
.scn-padua-baptista-house-scholars .wall {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(180deg, #e8d5b0 0%, #c9a87a 100%);
  border-radius: 0 0 60% 60% / 0 0 20% 20%;
  animation: pbs-wall 12s ease-in-out infinite alternate;
}
.scn-padua-baptista-house-scholars .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 40%;
  background: linear-gradient(180deg, #8b6b4a 0%, #5a3f2a 100%);
  border-radius: 30% 30% 0 0;
  box-shadow: inset 0 8px 20px rgba(0,0,0,0.3);
}
.scn-padua-baptista-house-scholars .window {
  position: absolute; top: 10%; left: 15%; width: 120px; height: 160px;
  background: radial-gradient(ellipse at 50% 100%, #ffe4b0 0%, #d4b48c 100%);
  border: 6px solid #7a5a3a;
  border-radius: 8px;
  box-shadow: 0 0 60px 20px rgba(255,220,150,0.3);
  animation: pbs-window 5s ease-in-out infinite alternate;
}
.scn-padua-baptista-house-scholars .fiddler {
  position: absolute; bottom: 36%; left: 36%; width: 26px; height: 50px;
  background: linear-gradient(180deg, #2a1a0a 0%, #1a0e04 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: pbs-fiddler 4s ease-in-out infinite;
}
.scn-padua-baptista-house-scholars .fiddler::before {
  content: ''; position: absolute; top: -6px; left: 8px; width: 16px; height: 4px;
  background: #5a3a1a; border-radius: 2px; transform: rotate(-20deg);
  animation: pbs-bow 2s ease-in-out infinite alternate;
}
.scn-padua-baptista-house-scholars .katharina {
  position: absolute; bottom: 36%; right: 30%; width: 22px; height: 48px;
  background: linear-gradient(180deg, #6b3a2a 0%, #3a1a0e 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%;
  animation: pbs-kath 3.5s ease-in-out infinite alternate;
}
.scn-padua-baptista-house-scholars .table {
  position: absolute; bottom: 20%; left: 30%; width: 160px; height: 20px;
  background: linear-gradient(180deg, #7a5a3a 0%, #4a3020 100%);
  border-radius: 4px;
  box-shadow: 0 4px 8px rgba(0,0,0,0.4);
  animation: pbs-table 6s ease-in-out infinite;
}
.scn-padua-baptista-house-scholars .book {
  position: absolute; bottom: 22%; left: 38%; width: 30px; height: 20px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 2px 8px 8px 2px; transform: rotate(-5deg);
  box-shadow: 2px 2px 6px rgba(0,0,0,0.3);
  animation: pbs-book 8s ease-in-out infinite alternate;
}
.scn-padua-baptista-house-scholars .shadow {
  position: absolute; bottom: 15%; left: 20%; width: 200px; height: 30px;
  background: rgba(0,0,0,0.15);
  border-radius: 50%;
  filter: blur(8px);
  animation: pbs-shadow 5s ease-in-out infinite alternate;
}
.scn-padua-baptista-house-scholars .light-beam {
  position: absolute; top: 12%; left: 12%; width: 140px; height: 200px;
  background: linear-gradient(135deg, rgba(255,240,200,0.4) 0%, transparent 100%);
  transform: rotate(-8deg);
  filter: blur(6px);
  animation: pbs-beam 10s ease-in-out infinite alternate;
}
@keyframes pbs-wall { 0% { opacity:0.9; } 50% { opacity:1; } 100% { opacity:0.85; } }
@keyframes pbs-window { 0% { box-shadow: 0 0 40px 10px rgba(255,220,150,0.2); } 50% { box-shadow: 0 0 80px 30px rgba(255,220,150,0.5); } 100% { box-shadow: 0 0 50px 15px rgba(255,220,150,0.3); } }
@keyframes pbs-fiddler { 0% { transform: translateX(0) rotate(0deg); } 25% { transform: translateX(4px) rotate(2deg); } 50% { transform: translateX(0) rotate(-1deg); } 75% { transform: translateX(-2px) rotate(1deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes pbs-bow { 0% { transform: rotate(-25deg) translateX(0); } 100% { transform: rotate(10deg) translateX(4px); } }
@keyframes pbs-kath { 0% { transform: translateY(0); opacity:0.8; } 50% { transform: translateY(-3px); opacity:1; } 100% { transform: translateY(0); opacity:0.9; } }
@keyframes pbs-table { 0% { transform: translateY(0) scale(1); } 50% { transform: translateY(-2px) scale(1.01); } 100% { transform: translateY(0) scale(1); } }
@keyframes pbs-book { 0% { transform: rotate(-5deg) translateY(0); } 50% { transform: rotate(3deg) translateY(-1px); } 100% { transform: rotate(-5deg) translateY(0); } }
@keyframes pbs-shadow { 0% { transform: scaleX(1); opacity:0.5; } 50% { transform: scaleX(1.1); opacity:0.7; } 100% { transform: scaleX(1); opacity:0.5; } }
@keyframes pbs-beam { 0% { opacity:0.3; transform: rotate(-8deg) translateX(0); } 50% { opacity:0.7; transform: rotate(-8deg) translateX(10px); } 100% { opacity:0.3; transform: rotate(-8deg) translateX(0); } }

/* Scene 2: padua-before-baptista-house-wedding-morning (pbw) */
.scn-padua-before-baptista-house-wedding-morning {
  background:
    linear-gradient(180deg, #7a8a9a 0%, #5a6a7a 50%, #3a4a5a 100%),
    linear-gradient(180deg, rgba(200,200,220,0.2) 0%, transparent 100%);
}
.scn-padua-before-baptista-house-wedding-morning .sky {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #8a9aaa 0%, #5a6a7a 100%);
  animation: pbw-sky 15s ease-in-out infinite alternate;
}
.scn-padua-before-baptista-house-wedding-morning .house {
  position: absolute; bottom: 20%; left: 20%; width: 200px; height: 180px;
  background: linear-gradient(180deg, #b0a090 0%, #8a7a6a 100%);
  border-radius: 4px;
  box-shadow: 0 8px 20px rgba(0,0,0,0.4);
  animation: pbw-house 10s ease-in-out infinite;
}
.scn-padua-before-baptista-house-wedding-morning .house::before {
  content: ''; position: absolute; bottom: 0; left: 40%; width: 40px; height: 100px;
  background: #6a5a4a; border-radius: 2px 2px 0 0;
}
.scn-padua-before-baptista-house-wedding-morning .ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #6a7a6a 0%, #4a5a4a 100%);
  border-radius: 40% 0 0 0;
}
.scn-padua-before-baptista-house-wedding-morning .tranio {
  position: absolute; bottom: 30%; left: 28%; width: 20px; height: 40px;
  background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%);
  border-radius: 50% 50% 20% 20% / 60% 60% 20% 20%;
  animation: pbw-fig1 3s ease-in-out infinite;
}
.scn-padua-before-baptista-house-wedding-morning .lucentio {
  position: absolute; bottom: 30%; left: 34%; width: 20px; height: 42px;
  background: linear-gradient(180deg, #3a2a4a 0%, #1a1a2a 100%);
  border-radius: 50% 50% 20% 20% / 60% 60% 20% 20%;
  animation: pbw-fig2 3.2s ease-in-out infinite;
}
.scn-padua-before-baptista-house-wedding-morning .cloud-dark {
  position: absolute; top: 8%; left: 10%; width: 120px; height: 30px;
  background: linear-gradient(180deg, #4a5566 0%, #2a3a4a 100%);
  border-radius: 50%;
  filter: blur(8px);
  animation: pbw-cloud 30s linear infinite;
}
.scn-padua-before-baptista-house-wedding-morning .tree {
  position: absolute; bottom: 18%; right: 15%; width: 6px; height: 100px;
  background: #3a2a1a;
  border-radius: 2px;
  animation: pbw-tree 8s ease-in-out infinite;
}
.scn-padua-before-baptista-house-wedding-morning .tree::after {
  content: ''; position: absolute; top: 0; left: -20px; width: 50px; height: 40px;
  background: #3a4a3a; border-radius: 50%; filter: blur(3px);
  animation: pbw-leaves 10s ease-in-out infinite alternate;
}
@keyframes pbw-sky { 0% { opacity:0.9; } 50% { opacity:1; } 100% { opacity:0.8; } }
@keyframes pbw-house { 0% { transform: translateY(0); } 50% { transform: translateY(-2px); box-shadow: 0 10px 25px rgba(0,0,0,0.5); } 100% { transform: translateY(0); } }
@keyframes pbw-fig1 { 0% { transform: translateX(0) rotate(0deg); } 25% { transform: translateX(3px) rotate(2deg); } 50% { transform: translateX(0) rotate(-1deg); } 75% { transform: translateX(-2px) rotate(1deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes pbw-fig2 { 0% { transform: translateX(0) rotate(0deg); } 25% { transform: translateX(-2px) rotate(-1deg); } 50% { transform: translateX(0) rotate(2deg); } 75% { transform: translateX(2px) rotate(1deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes pbw-cloud { 0% { transform: translateX(-100px); } 100% { transform: translateX(calc(100vw + 100px)); } }
@keyframes pbw-tree { 0% { transform: rotate(0deg); } 50% { transform: rotate(3deg); } 100% { transform: rotate(0deg); } }
@keyframes pbw-leaves { 0% { transform: scale(1) translateY(0); } 50% { transform: scale(1.05) translateY(-2px); } 100% { transform: scale(1) translateY(0); } }

/* Scene 3: wedding-feast-arrangements (wfa) */
.scn-wedding-feast-arrangements {
  background:
    linear-gradient(180deg, #f8f0e0 0%, #e0d0b0 100%),
    radial-gradient(ellipse at 50% 80%, rgba(255,240,200,0.4), transparent 60%);
}
.scn-wedding-feast-arrangements .wall {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #ede0c8 0%, #d4c4a8 100%);
  border-radius: 0 0 50% 50% / 0 0 10% 10%;
}
.scn-wedding-feast-arrangements .table {
  position: absolute; bottom: 10%; left: 5%; right: 5%; height: 20px;
  background: linear-gradient(180deg, #b0a090 0%, #8a7a6a 100%);
  border-radius: 4px;
  box-shadow: 0 4px 12px rgba(0,0,0,0.2);
  animation: wfa-table 10s ease-in-out infinite;
}
.scn-wedding-feast-arrangements .chair-left {
  position: absolute; bottom: 8%; left: 15%; width: 20px; height: 40px;
  background: linear-gradient(180deg, #6a5a4a 0%, #4a3a2a 100%);
  border-radius: 4px 4px 0 0;
  transform: rotate(-5deg);
  animation: wfa-chair 6s ease-in-out infinite alternate;
}
.scn-wedding-feast-arrangements .chair-right {
  position: absolute; bottom: 8%; right: 15%; width: 20px; height: 40px;
  background: linear-gradient(180deg, #6a5a4a 0%, #4a3a2a 100%);
  border-radius: 4px 4px 0 0;
  transform: rotate(5deg);
  animation: wfa-chair 6s ease-in-out infinite alternate-reverse;
}
.scn-wedding-feast-arrangements .plate {
  position: absolute; bottom: 18%; left: 30%; width: 40px; height: 30px;
  background: radial-gradient(circle, #f0e0c8 0%, #c8b8a0 100%);
  border-radius: 50%;
  box-shadow: 0 2px 4px rgba(0,0,0,0.2);
  animation: wfa-plate 5s ease-in-out infinite alternate;
}
.scn-wedding-feast-arrangements .goblet {
  position: absolute; bottom: 20%; left: 38%; width: 16px; height: 30px;
  background: linear-gradient(180deg, #e0d0b0 0%, #b0a090 100%);
  border-radius: 2px 2px 4px 4px;
  box-shadow: 0 2px 4px rgba(0,0,0,0.15);
  animation: wfa-goblet 7s ease-in-out infinite;
}
.scn-wedding-feast-arrangements .flower {
  position: absolute; bottom: 22%; left: 50%; width: 30px; height: 30px;
  background: radial-gradient(circle, #f0a0b0 0%, #d08090 100%);
  border-radius: 50%;
  filter: blur(2px);
  animation: wfa-flower 4s ease-in-out infinite alternate;
}
.scn-wedding-feast-arrangements .candle {
  position: absolute; bottom: 25%; left: 60%; width: 8px; height: 40px;
  background: linear-gradient(180deg, #f0e0c8 0%, #d0c0a8 100%);
  border-radius: 2px;
}
.scn-wedding-feast-arrangements .candle::after {
  content: ''; position: absolute; top: -6px; left: -2px; width: 12px; height: 12px;
  background: radial-gradient(circle, #ffd080 0%, #ffa040 60%, transparent 100%);
  border-radius: 50%;
  animation: wfa-flame 2s ease-in-out infinite alternate;
}
@keyframes wfa-table { 0% { transform: translateY(0) scaleX(1); } 50% { transform: translateY(-1px) scaleX(1.005); } 100% { transform: translateY(0) scaleX(1); } }
@keyframes wfa-chair { 0% { transform: rotate(-5deg) translateY(0); } 50% { transform: rotate(0deg) translateY(-2px); } 100% { transform: rotate(-5deg) translateY(0); } }
@keyframes wfa-plate { 0% { transform: scale(1); opacity:0.9; } 50% { transform: scale(1.02); opacity:1; } 100% { transform: scale(1); opacity:0.9; } }
@keyframes wfa-goblet { 0% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-1px) rotate(2deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes wfa-flower { 0% { transform: scale(1) rotate(0deg); opacity:0.8; } 50% { transform: scale(1.1) rotate(10deg); opacity:1; } 100% { transform: scale(1) rotate(0deg); opacity:0.8; } }
@keyframes wfa-flame { 0% { transform: scale(1) translateY(0); opacity:0.9; } 50% { transform: scale(1.3) translateY(-2px); opacity:1; } 100% { transform: scale(1) translateY(0); opacity:0.9; } }

/* Scene 4: petruchios-arrival-cold (pac) */
.scn-petruchios-arrival-cold {
  background:
    linear-gradient(180deg, #2a1a0a 0%, #1a0e04 50%, #0a0502 100%),
    radial-gradient(ellipse at 50% 60%, rgba(80,20,0,0.3), transparent 60%);
}
.scn-petruchios-arrival-cold .wall {
  position: absolute; inset: 0 0 20% 0;
  background: linear-gradient(180deg, #1a0e04 0%, #0a0502 100%);
  border-radius: 0 0 40% 40% / 0 0 10% 10%;
  box-shadow: inset 0 10px 30px rgba(0,0,0,0.8);
}
.scn-petruchios-arrival-cold .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 20%;
  background: linear-gradient(180deg, #2a1a0a 0%, #0a0502 100%);
}
.scn-petruchios-arrival-cold .fireplace {
  position: absolute; bottom: 10%; left: 25%; width: 120px; height: 100px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0e04 100%);
  border-radius: 20px 20px 4px 4px;
  box-shadow: inset 0 -10px 20px rgba(0,0,0,0.8);
  animation: pac-fireplace 12s ease-in-out infinite;
}
.scn-petruchios-arrival-cold .fireplace::before {
  content: ''; position: absolute; bottom: 0; left: 20%; width: 60px; height: 20px;
  background: #1a0a04; border-radius: 50% 50% 0 0;
}
.scn-petruchios-arrival-cold .fire-glow {
  position: absolute; bottom: 12%; left: 32%; width: 50px; height: 50px;
  background: radial-gradient(circle, #ff8030 0%, #ff6020 40%, transparent 100%);
  border-radius: 50%;
  filter: blur(6px);
  animation: pac-fire 3s ease-in-out infinite alternate;
}
.scn-petruchios-arrival-cold .grumio {
  position: absolute; bottom: 16%; right: 20%; width: 22px; height: 45px;
  background: linear-gradient(180deg, #2a1a0a 0%, #0e0802 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%;
  animation: pac-grumio 4s ease-in-out infinite;
}
.scn-petruchios-arrival-cold .window {
  position: absolute; top: 10%; right: 10%; width: 50px; height: 70px;
  background: linear-gradient(180deg, #3a4a5a 0%, #2a3a4a 100%);
  border: 4px solid #1a0e04;
  border-radius: 4px;
  box-shadow: inset 0 0 10px rgba(150,180,200,0.2);
  animation: pac-window 8s ease-in-out infinite alternate;
}
.scn-petruchios-arrival-cold .wood {
  position: absolute; bottom: 10%; left: 28%; width: 50px; height: 8px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0e04 100%);
  border-radius: 2px;
  transform: rotate(-10deg);
  animation: pac-wood 5s ease-in-out infinite;
}
.scn-petruchios-arrival-cold .breath {
  position: absolute; top: 18%; left: 60%; width: 24px; height: 16px;
  background: rgba(200,220,240,0.15);
  border-radius: 50%;
  filter: blur(4px);
  animation: pac-breath 3s ease-in-out infinite;
}
@keyframes pac-fireplace { 0% { transform: scale(1); } 50% { transform: scale(1.01); } 100% { transform: scale(1); } }
@keyframes pac-fire { 0% { opacity:0.4; transform: scale(0.8); } 50% { opacity:0.9; transform: scale(1.2); } 100% { opacity:0.5; transform: scale(0.9); } }
@keyframes pac-grumio { 0% { transform: translateX(0) rotate(0deg); } 25% { transform: translateX(3px) rotate(2deg); } 50% { transform: translateX(0) rotate(-1deg); } 75% { transform: translateX(-2px) rotate(1deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes pac-window { 0% { opacity:0.7; } 50% { opacity:0.9; box-shadow: inset 0 0 20px rgba(150,180,200,0.4); } 100% { opacity:0.7; } }
@keyframes pac-wood { 0% { transform: rotate(-10deg) translateY(0); } 50% { transform: rotate(-8deg) translateY(-1px); } 100% { transform: rotate(-10deg) translateY(0); } }
@keyframes pac-breath { 0% { transform: scale(1) translateY(0); opacity:0.2; } 50% { transform: scale(1.5) translateY(-4px); opacity:0.4; } 100% { transform: scale(1) translateY(0); opacity:0.2; } }

.scn-thanks-for-meat {
  background: linear-gradient(180deg, #1a1512 0%, #2e2318 50%, #3c2a1c 100%), radial-gradient(ellipse at 30% 80%, #3a2a1a 0%, transparent 70%);
}
.scn-thanks-for-meat .table { position:absolute; bottom:10%; left:20%; right:20%; height:15%; background: linear-gradient(180deg, #5a3a2a 0%, #4a2a1a 100%); border-radius: 10% 10% 5% 5%; box-shadow: 0 4px 10px rgba(0,0,0,.6); animation: tfm-table 10s ease-in-out infinite; }
.scn-thanks-for-meat .platter { position:absolute; bottom:15%; left:35%; width:30%; height:8%; background: linear-gradient(180deg, #6a5a3a 0%, #4a3a2a 100%); border-radius: 50%; box-shadow: 0 2px 8px rgba(0,0,0,.5); animation: tfm-platter 8s ease-in-out infinite; }
.scn-thanks-for-meat .meat { position:absolute; bottom:18%; left:40%; width:20%; height:10%; background: linear-gradient(135deg, #7a4a3a 0%, #5a2a1a 100%); border-radius: 60% 40% 50% 50% / 50% 60% 40% 50%; box-shadow: inset 0 -4px 6px rgba(0,0,0,.3); animation: tfm-meat 6s ease-in-out infinite; }
.scn-thanks-for-meat .figure-left { position:absolute; bottom:15%; left:15%; width:20px; height:50px; background: linear-gradient(180deg, #1a1a1a 0%, #0a0a0a 100%); border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%; transform-origin: bottom center; animation: tfm-figureL 4s ease-in-out infinite; }
.scn-thanks-for-meat .figure-right { position:absolute; bottom:15%; right:15%; width:20px; height:50px; background: linear-gradient(180deg, #1a1a1a 0%, #0a0a0a 100%); border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%; transform-origin: bottom center; animation: tfm-figureR 4s ease-in-out infinite alternate; }
.scn-thanks-for-meat .candle { position:absolute; bottom:20%; left:50%; width:6px; height:20px; background: linear-gradient(180deg, #d0a060 0%, #a08040 100%); border-radius: 30% 30% 10% 10%; box-shadow: 0 0 8px 2px #ffc060; animation: tfm-candle 3s ease-in-out infinite alternate; }
.scn-thanks-for-meat .glow { position:absolute; bottom:18%; left:48%; width:30px; height:30px; background: radial-gradient(circle, #ffd080 0%, transparent 70%); animation: tfm-glow 3s ease-in-out infinite alternate; }
.scn-thanks-for-meat .shadow { position:absolute; inset:0; background: rgba(0,0,0,.3); animation: tfm-shadow 12s ease-in-out infinite; }
@keyframes tfm-table { 0% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-2px) rotate(1deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes tfm-platter { 0% { transform: rotate(0deg) scale(1); } 50% { transform: rotate(-3deg) scale(1.02); } 100% { transform: rotate(0deg) scale(1); } }
@keyframes tfm-meat { 0% { transform: scale(1) translate(0); } 50% { transform: scale(1.02) translate(1px, -1px); } 100% { transform: scale(1) translate(0); } }
@keyframes tfm-figureL { 0% { transform: translateX(0) rotate(-2deg); } 50% { transform: translateX(5px) rotate(2deg); } 100% { transform: translateX(0) rotate(-2deg); } }
@keyframes tfm-figureR { 0% { transform: translateX(0) rotate(0deg); } 50% { transform: translateX(-4px) rotate(-1deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes tfm-candle { 0% { opacity: 0.8; box-shadow: 0 0 6px 1px #ffc060; } 50% { opacity: 1; box-shadow: 0 0 12px 4px #ffd080; } 100% { opacity: 0.8; box-shadow: 0 0 6px 1px #ffc060; } }
@keyframes tfm-glow { 0% { transform: scale(0.9); opacity: 0.6; } 50% { transform: scale(1.1); opacity: 1; } 100% { transform: scale(0.9); opacity: 0.6; } }
@keyframes tfm-shadow { 0% { opacity: 0.3; } 50% { opacity: 0.5; } 100% { opacity: 0.3; } }

.scn-cap-rejected {
  background: linear-gradient(180deg, #f5e6d0 0%, #e0c8a8 50%, #c8a888 100%), radial-gradient(ellipse at 80% 20%, #fff8f0 0%, transparent 60%);
}
.scn-cap-rejected .wall { position:absolute; inset:0; background: linear-gradient(180deg, #e8d8c0 0%, #c8b090 100%); border: 1px solid #a09070; animation: cr-wall 20s ease-in-out infinite; }
.scn-cap-rejected .window { position:absolute; top:10%; left:70%; width:60px; height:80px; background: linear-gradient(180deg, #f0e8ff 0%, #d0c0e0 100%); border: 4px solid #806040; border-radius: 4%; animation: cr-window 15s ease-in-out infinite alternate; }
.scn-cap-rejected .haberdasher { position:absolute; bottom:20%; left:20%; width:22px; height:55px; background: linear-gradient(180deg, #2a1a1a 0%, #1a0a0a 100%); border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%; transform-origin: bottom; animation: cr-hab 5s ease-in-out infinite; }
.scn-cap-rejected .tailor { position:absolute; bottom:20%; right:25%; width:22px; height:55px; background: linear-gradient(180deg, #2a1a1a 0%, #1a0a0a 100%); border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%; transform-origin: bottom; animation: cr-tailor 5s ease-in-out infinite alternate; }
.scn-cap-rejected .cap { position:absolute; bottom:35%; left:45%; width:40px; height:20px; background: linear-gradient(135deg, #a04020 0%, #602010 100%); border-radius: 50% 50% 30% 30% / 80% 80% 20% 20%; box-shadow: 0 2px 6px rgba(0,0,0,.4); animation: cr-cap 3s ease-in-out infinite; }
.scn-cap-rejected .table { position:absolute; bottom:15%; left:30%; right:30%; height:12%; background: linear-gradient(180deg, #6a5a3a 0%, #4a3a2a 100%); border-radius: 15% 15% 5% 5%; box-shadow: 0 4px 8px rgba(0,0,0,.4); animation: cr-table 12s ease-in-out infinite; }
.scn-cap-rejected .shadow { position:absolute; inset:0; background: rgba(0,0,0,.1); animation: cr-shadow 20s ease-in-out infinite; }
@keyframes cr-wall { 0% { opacity: 0.9; } 50% { opacity: 1; } 100% { opacity: 0.9; } }
@keyframes cr-window { 0% { opacity: 0.7; } 50% { opacity: 1; } 100% { opacity: 0.7; } }
@keyframes cr-hab { 0% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-2px) rotate(2deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes cr-tailor { 0% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-3px) rotate(-1deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes cr-cap { 0% { transform: rotate(-5deg) translateY(0); } 50% { transform: rotate(5deg) translateY(-3px); } 100% { transform: rotate(-5deg) translateY(0); } }
@keyframes cr-table { 0% { transform: translateX(0); } 50% { transform: translateX(2px); } 100% { transform: translateX(0); } }
@keyframes cr-shadow { 0% { opacity: 0.1; } 50% { opacity: 0.2; } 100% { opacity: 0.1; } }

.scn-kate-defends-cap {
  background: linear-gradient(180deg, #f0dcc0 0%, #d8c0a0 50%, #c0a080 100%), radial-gradient(ellipse at 50% 30%, #fff0e0 0%, transparent 70%);
}
.scn-kate-defends-cap .wall { position:absolute; inset:0; background: linear-gradient(180deg, #e0d0b8 0%, #b8a088 100%); animation: kdf-wall 25s ease-in-out infinite; }
.scn-kate-defends-cap .window { position:absolute; top:5%; right:10%; width:50px; height:70px; background: linear-gradient(180deg, #e8f0ff 0%, #c8d8f0 100%); border: 4px solid #705030; border-radius: 4%; animation: kdf-window 18s ease-in-out infinite alternate; }
.scn-kate-defends-cap .kate { position:absolute; bottom:15%; left:35%; width:24px; height:60px; background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%); border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%; transform-origin: bottom; animation: kdf-kate 3s ease-in-out infinite; }
.scn-kate-defends-cap .cap { position:absolute; bottom:10%; left:50%; width:40px; height:20px; background: linear-gradient(135deg, #a04020 0%, #602010 100%); border-radius: 50% 50% 30% 30% / 80% 80% 20% 20%; transform: rotate(20deg); animation: kdf-cap 4s ease-in-out infinite; }
.scn-kate-defends-cap .table { position:absolute; bottom:18%; left:25%; right:25%; height:10%; background: linear-gradient(180deg, #6a5a3a 0%, #4a3a2a 100%); border-radius: 15% 15% 5% 5%; animation: kdf-table 15s ease-in-out infinite; }
.scn-kate-defends-cap .chair { position:absolute; bottom:15%; right:20%; width:20px; height:30px; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius: 20% 20% 10% 10%; box-shadow: 0 2px 4px rgba(0,0,0,.4); animation: kdf-chair 10s ease-in-out infinite; }
.scn-kate-defends-cap .shadow { position:absolute; inset:0; background: rgba(0,0,0,.15); animation: kdf-shadow 20s ease-in-out infinite; }
@keyframes kdf-wall { 0% { opacity: 0.85; } 50% { opacity: 1; } 100% { opacity: 0.85; } }
@keyframes kdf-window { 0% { opacity: 0.6; } 50% { opacity: 1; } 100% { opacity: 0.6; } }
@keyframes kdf-kate { 0% { transform: translateY(0) rotate(-3deg); } 50% { transform: translateY(-3px) rotate(3deg); } 100% { transform: translateY(0) rotate(-3deg); } }
@keyframes kdf-cap { 0% { transform: rotate(15deg) scale(1); } 50% { transform: rotate(25deg) scale(1.05); } 100% { transform: rotate(15deg) scale(1); } }
@keyframes kdf-table { 0% { transform: translateY(0); } 50% { transform: translateY(-2px); } 100% { transform: translateY(0); } }
@keyframes kdf-chair { 0% { transform: translateX(0) rotate(0deg); } 50% { transform: translateX(2px) rotate(2deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes kdf-shadow { 0% { opacity: 0.15; } 50% { opacity: 0.25; } 100% { opacity: 0.15; } }

.scn-gown-critique {
  background: linear-gradient(180deg, #f5e6d0 0%, #e0c8a8 50%, #c8a888 100%), radial-gradient(ellipse at 70% 50%, #fff5e0 0%, transparent 50%);
}
.scn-gown-critique .wall { position:absolute; inset:0; background: linear-gradient(180deg, #e8d8c0 0%, #c8b090 100%); animation: gc-wall 20s ease-in-out infinite; }
.scn-gown-critique .gown { position:absolute; top:20%; left:30%; right:30%; height:50%; background: linear-gradient(180deg, #8a6a4a 0%, #5a4a2a 100%); border-radius: 20% 20% 40% 40% / 30% 30% 70% 70%; box-shadow: 0 8px 16px rgba(0,0,0,.4); animation: gc-gown 8s ease-in-out infinite; }
.scn-gown-critique .sleeve { position:absolute; top:25%; left:45%; width:40px; height:60px; background: linear-gradient(135deg, #7a5a3a 0%, #4a2a1a 100%); border-radius: 50% 50% 30% 30% / 40% 40% 60% 60%; transform: rotate(30deg); animation: gc-sleeve 6s ease-in-out infinite; }
.scn-gown-critique .tailor { position:absolute; bottom:10%; right:20%; width:22px; height:55px; background: linear-gradient(180deg, #2a1a1a 0%, #1a0a0a 100%); border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%; transform-origin: bottom; animation: gc-tailor 4s ease-in-out infinite; }
.scn-gown-critique .petruchio { position:absolute; bottom:10%; left:15%; width:24px; height:58px; background: linear-gradient(180deg, #2a1a2a 0%, #0a0a1a 100%); border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%; transform-origin: bottom; animation: gc-petru 3s ease-in-out infinite alternate; }
.scn-gown-critique .scissors { position:absolute; bottom:20%; left:20%; width:16px; height:8px; background: #705030; border-radius: 50% 50% 0 0; clip-path: polygon(0 0, 100% 0, 50% 100%); animation: gc-scissors 5s ease-in-out infinite; }
.scn-gown-critique .shadow { position:absolute; inset:0; background: rgba(0,0,0,.12); animation: gc-shadow 22s ease-in-out infinite; }
@keyframes gc-wall { 0% { opacity: 0.9; } 50% { opacity: 1; } 100% { opacity: 0.9; } }
@keyframes gc-gown { 0% { transform: scale(1) rotate(0deg); } 50% { transform: scale(1.02) rotate(-1deg); } 100% { transform: scale(1) rotate(0deg); } }
@keyframes gc-sleeve { 0% { transform: rotate(25deg) scale(1); } 50% { transform: rotate(35deg) scale(1.05); } 100% { transform: rotate(25deg) scale(1); } }
@keyframes gc-tailor { 0% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-2px) rotate(2deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes gc-petru { 0% { transform: translateX(0) rotate(-3deg); } 50% { transform: translateX(5px) rotate(3deg); } 100% { transform: translateX(0) rotate(-3deg); } }
@keyframes gc-scissors { 0% { transform: rotate(0deg) scale(1); } 50% { transform: rotate(-20deg) scale(1.1); } 100% { transform: rotate(0deg) scale(1); } }
@keyframes gc-shadow { 0% { opacity: 0.12; } 50% { opacity: 0.2; } 100% { opacity: 0.12; } }

/* Scene: item-books-of-love */
.scn-item-books-of-love {
  background: linear-gradient(180deg, #fceabb 0%, #f8b500 50%, #ffd77f 100%), radial-gradient(circle at 20% 30%, rgba(255,255,200,0.6) 0%, transparent 50%);
}
.scn-item-books-of-love .sun {
  position: absolute; top: 5%; left: 10%; width: 60px; height: 60px;
  background: radial-gradient(circle, #fff7b0 0%, #ffd066 40%, transparent 70%);
  border-radius: 50%; animation: lb-sun 6s ease-in-out infinite alternate;
}
.scn-item-books-of-love .sunbeam {
  position: absolute; top: 5%; left: 10%; width: 200px; height: 8px;
  background: linear-gradient(90deg, rgba(255,240,180,0.6), transparent);
  transform: rotate(25deg); transform-origin: left center;
  animation: lb-beam 8s ease-in-out infinite;
}
.scn-item-books-of-love .shelf {
  position: absolute; bottom: 20%; left: 10%; right: 10%; height: 4px;
  background: linear-gradient(90deg, #c4a46c, #b48c54);
  border-radius: 2px;
}
.scn-item-books-of-love .figure {
  position: absolute; bottom: 20%; left: 35%; width: 30px; height: 60px;
  background: linear-gradient(180deg, #2a1e12 0%, #1a1008 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center; animation: lb-figure 4s ease-in-out infinite;
}
.scn-item-books-of-love .book {
  position: absolute; bottom: 23%; left: 40%; width: 50px; height: 35px;
  background: linear-gradient(135deg, #fff6d5 0%, #e8c48f 100%);
  border-radius: 0 0 40% 40% / 0 0 80% 80%;
  transform: rotate(-10deg); box-shadow: 0 4px 6px rgba(0,0,0,0.2);
  animation: lb-book 5s ease-in-out infinite alternate;
}
.scn-item-books-of-love .heart {
  position: absolute; bottom: 40%; left: 47%; width: 14px; height: 14px;
  background: radial-gradient(circle at 50% 50%, #d66d6d 0%, rgba(214,109,109,0) 70%);
  border-radius: 50%; box-shadow: 0 0 20px 8px rgba(214,109,109,0.5);
  animation: lb-heart 2s ease-in-out infinite;
}
.scn-item-books-of-love .shadow {
  position: absolute; bottom: 18%; left: 32%; width: 50px; height: 8px;
  background: rgba(0,0,0,0.15); border-radius: 50%; filter: blur(4px);
  animation: lb-shade 4s ease-in-out infinite;
}
.scn-item-books-of-love .sparkle {
  position: absolute; top: 25%; left: 55%; width: 4px; height: 4px;
  background: #fff; border-radius: 50%; box-shadow: 0 0 6px #ffe066;
  animation: lb-sparkle 3s ease-in-out infinite;
}
@keyframes lb-sun {
  0% { transform: scale(1); opacity: 0.9; }
  50% { transform: scale(1.08); opacity: 1; }
  100% { transform: scale(1); opacity: 0.85; }
}
@keyframes lb-beam {
  0% { opacity: 0.3; transform: rotate(25deg); }
  50% { opacity: 0.6; transform: rotate(23deg) scaleX(1.2); }
  100% { opacity: 0.3; transform: rotate(25deg); }
}
@keyframes lb-figure {
  0% { transform: translateY(0) rotate(-1deg); }
  50% { transform: translateY(-3px) rotate(1deg); }
  100% { transform: translateY(0) rotate(-1deg); }
}
@keyframes lb-book {
  0% { transform: rotate(-10deg) scaleX(1); }
  50% { transform: rotate(-6deg) scaleX(1.1); }
  100% { transform: rotate(-10deg) scaleX(1); }
}
@keyframes lb-heart {
  0% { transform: scale(1); box-shadow: 0 0 20px 8px rgba(214,109,109,0.5); }
  50% { transform: scale(1.3); box-shadow: 0 0 30px 12px rgba(214,109,109,0.7); }
  100% { transform: scale(1); box-shadow: 0 0 20px 8px rgba(214,109,109,0.5); }
}
@keyframes lb-shade {
  0% { transform: scaleX(1); opacity: 0.12; }
  50% { transform: scaleX(1.3); opacity: 0.2; }
  100% { transform: scaleX(1); opacity: 0.12; }
}
@keyframes lb-sparkle {
  0%,100% { opacity: 0; transform: scale(0.5); }
  50% { opacity: 1; transform: scale(1); }
}

/* Scene: schoolmaster-rivalry */
.scn-schoolmaster-rivalry {
  background: linear-gradient(180deg, #b0c4de 0%, #e0e8f0 60%, #d0d8e0 100%), radial-gradient(ellipse at 50% 60%, rgba(255,230,150,0.3) 0%, transparent 70%);
}
.scn-schoolmaster-rivalry .window {
  position: absolute; top: 0%; left: 25%; width: 50%; height: 50%;
  background: linear-gradient(180deg, #d4e4f0 0%, #b0c4de 100%);
  border: 6px solid #8a6e4b; box-sizing: border-box;
  border-radius: 4px; box-shadow: inset 0 0 30px rgba(255,230,150,0.3);
}
.scn-schoolmaster-rivalry .light-shaft {
  position: absolute; top: 0; left: 35%; width: 30%; height: 60%;
  background: linear-gradient(180deg, rgba(255,240,180,0.3) 0%, transparent 100%);
  clip-path: polygon(20% 0%, 80% 0%, 100% 100%, 0% 100%);
  animation: sr-shaft 8s ease-in-out infinite alternate;
}
.scn-schoolmaster-rivalry .desk {
  position: absolute; bottom: 25%; left: 20%; right: 20%; height: 6px;
  background: linear-gradient(90deg, #7a5c3a, #9a7c5a, #7a5c3a);
  border-radius: 3px;
}
.scn-schoolmaster-rivalry .figure-a {
  position: absolute; bottom: 25%; left: 28%; width: 30px; height: 65px;
  background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: sr-figure-a 3s ease-in-out infinite;
  transform-origin: bottom center;
}
.scn-schoolmaster-rivalry .figure-b {
  position: absolute; bottom: 25%; right: 28%; width: 28px; height: 62px;
  background: linear-gradient(180deg, #3a2a1a 0%, #2a1a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: sr-figure-b 3s ease-in-out infinite 1.5s;
  transform-origin: bottom center;
}
.scn-schoolmaster-rivalry .book {
  position: absolute; bottom: 27%; left: 48%; width: 40px; height: 28px;
  background: linear-gradient(135deg, #e0c8a0 0%, #c8a880 100%);
  border-radius: 0 0 30% 30% / 0 0 60% 60%;
  transform: rotate(5deg);
  animation: sr-book 6s ease-in-out infinite alternate;
}
.scn-schoolmaster-rivalry .pointer {
  position: absolute; bottom: 30%; left: 55%; width: 6px; height: 40px;
  background: linear-gradient(180deg, #6a4e3a, #8a6e4a);
  border-radius: 3px; transform: rotate(15deg); transform-origin: bottom center;
  animation: sr-pointer 4s ease-in-out infinite;
}
.scn-schoolmaster-rivalry .floor-shadow {
  position: absolute; bottom: 20%; left: 30%; width: 40%; height: 8px;
  background: rgba(0,0,0,0.1); border-radius: 50%; filter: blur(3px);
  animation: sr-shadow 5s ease-in-out infinite;
}
@keyframes sr-shaft {
  0% { opacity: 0.3; transform: scaleX(1); }
  50% { opacity: 0.6; transform: scaleX(1.2); }
  100% { opacity: 0.3; transform: scaleX(1); }
}
@keyframes sr-figure-a {
  0% { transform: translateY(0) rotate(0deg); }
  50% { transform: translateY(-2px) rotate(2deg); }
  100% { transform: translateY(0) rotate(0deg); }
}
@keyframes sr-figure-b {
  0% { transform: translateY(0) rotate(0deg); }
  50% { transform: translateY(-3px) rotate(-2deg); }
  100% { transform: translateY(0) rotate(0deg); }
}
@keyframes sr-book {
  0% { transform: rotate(5deg) scaleY(1); }
  50% { transform: rotate(3deg) scaleY(1.05); }
  100% { transform: rotate(5deg) scaleY(1); }
}
@keyframes sr-pointer {
  0% { transform: rotate(15deg); }
  50% { transform: rotate(20deg); }
  100% { transform: rotate(15deg); }
}
@keyframes sr-shadow {
  0% { opacity: 0.08; transform: scaleX(1); }
  50% { opacity: 0.15; transform: scaleX(1.1); }
  100% { opacity: 0.08; transform: scaleX(1); }
}

/* Scene: petruchio-wooing-proposal */
.scn-petruchio-wooing-proposal {
  background: linear-gradient(180deg, #e8d5b0 0%, #d4b88a 40%, #c4a070 100%), radial-gradient(ellipse at 30% 40%, rgba(255,230,150,0.4) 0%, transparent 60%);
}
.scn-petruchio-wooing-proposal .wall {
  position: absolute; top: 0; left: 0; right: 0; bottom: 30%;
  background: linear-gradient(180deg, #c8b088 0%, #b8a078 100%);
  border-bottom: 4px solid #8a6e4e;
}
.scn-petruchio-wooing-proposal .window-light {
  position: absolute; top: 5%; left: 30%; width: 40%; height: 40%;
  background: radial-gradient(ellipse at 50% 0%, rgba(255,240,180,0.3) 0%, transparent 70%);
  animation: pp-light 6s ease-in-out infinite alternate;
}
.scn-petruchio-wooing-proposal .table {
  position: absolute; bottom: 25%; left: 35%; right: 35%; height: 150px;
  background: linear-gradient(180deg, #6a4e2e, #5a3e1e);
  border-radius: 10% 10% 0 0; box-shadow: 0 -4px 10px rgba(0,0,0,0.3);
}
.scn-petruchio-wooing-proposal .petruchio {
  position: absolute; bottom: 25%; left: 28%; width: 36px; height: 75px;
  background: linear-gradient(180deg, #1a2a3a 0%, #0a1a2a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: pp-pet 4s ease-in-out infinite;
}
.scn-petruchio-wooing-proposal .hortensio {
  position: absolute; bottom: 25%; right: 30%; width: 28px; height: 60px;
  background: linear-gradient(180deg, #3a2a1a 0%, #2a1a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: pp-hor 4s ease-in-out infinite 2s;
}
.scn-petruchio-wooing-proposal .scroll {
  position: absolute; bottom: 30%; left: 48%; width: 20px; height: 30px;
  background: linear-gradient(180deg, #e8d0a8 0%, #d8b898 100%);
  border-radius: 10% 10% 40% 40%; box-shadow: 0 2px 4px rgba(0,0,0,0.2);
  transform: rotate(-5deg); transform-origin: top center;
  animation: pp-scroll 5s ease-in-out infinite alternate;
}
.scn-petruchio-wooing-proposal .goblet {
  position: absolute; bottom: 27%; left: 55%; width: 10px; height: 16px;
  background: linear-gradient(180deg, #c8a060, #a88440);
  border-radius: 0 0 20% 20%; box-shadow: 0 3px 6px rgba(0,0,0,0.2);
  animation: pp-goblet 7s ease-in-out infinite;
}
.scn-petruchio-wooing-proposal .shadow {
  position: absolute; bottom: 20%; left: 25%; width: 50%; height: 10px;
  background: rgba(0,0,0,0.08); border-radius: 50%; filter: blur(4px);
  animation: pp-shade 4s ease-in-out infinite;
}
@keyframes pp-light {
  0% { opacity: 0.2; transform: scaleY(1); }
  50% { opacity: 0.5; transform: scaleY(1.2); }
  100% { opacity: 0.2; transform: scaleY(1); }
}
@keyframes pp-pet {
  0% { transform: translateY(0) rotate(1deg); }
  50% { transform: translateY(-2px) rotate(-1deg); }
  100% { transform: translateY(0) rotate(1deg); }
}
@keyframes pp-hor {
  0% { transform: translateY(0) rotate(-1deg); }
  50% { transform: translateY(-3px) rotate(1deg); }
  100% { transform: translateY(0) rotate(-1deg); }
}
@keyframes pp-scroll {
  0% { transform: rotate(-5deg) scaleY(1); }
  50% { transform: rotate(-2deg) scaleY(1.1); }
  100% { transform: rotate(-5deg) scaleY(1); }
}
@keyframes pp-goblet {
  0% { transform: rotate(0deg); }
  50% { transform: rotate(3deg); }
  100% { transform: rotate(0deg); }
}
@keyframes pp-shade {
  0%,100% { opacity: 0.06; }
  50% { opacity: 0.12; }
}

/* Scene: petruchio-wooing-interview */
.scn-petruchio-wooing-interview {
  background: linear-gradient(180deg, #f5e6c8 0%, #e0c8a0 50%, #c8a878 100%), radial-gradient(ellipse at 50% 0%, rgba(255,240,180,0.5) 0%, transparent 60%);
}
.scn-petruchio-wooing-interview .background {
  position: absolute; inset: 0; background: linear-gradient(180deg, transparent 60%, rgba(0,0,0,0.05) 100%);
}
.scn-petruchio-wooing-interview .sun-disk {
  position: absolute; top: 5%; left: 50%; width: 70px; height: 70px;
  background: radial-gradient(circle at 50% 50%, #ffe680 0%, #ffd060 30%, transparent 70%);
  border-radius: 50%; transform: translateX(-50%);
  animation: pi-sun 8s ease-in-out infinite alternate;
}
.scn-petruchio-wooing-interview .sunbeam-1 {
  position: absolute; top: 0; left: 30%; width: 3px; height: 70%;
  background: linear-gradient(180deg, rgba(255,240,180,0.4), transparent);
  transform: rotate(10deg); transform-origin: top center;
  animation: pi-beam1 10s ease-in-out infinite;
}
.scn-petruchio-wooing-interview .sunbeam-2 {
  position: absolute; top: 0; left: 60%; width: 3px; height: 60%;
  background: linear-gradient(180deg, rgba(255,240,180,0.3), transparent);
  transform: rotate(-15deg); transform-origin: top center;
  animation: pi-beam2 12s ease-in-out infinite 2s;
}
.scn-petruchio-wooing-interview .figure {
  position: absolute; bottom: 20%; left: 38%; width: 40px; height: 80px;
  background: linear-gradient(180deg, #2a1e12 0%, #1a1008 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: pi-fig 5s ease-in-out infinite;
}
.scn-petruchio-wooing-interview .arm {
  position: absolute; bottom: 40%; left: 44%; width: 30px; height: 8px;
  background: linear-gradient(90deg, #2a1e12, #1a1008);
  border-radius: 50%; transform: rotate(-30deg); transform-origin: right center;
  animation: pi-arm 4s ease-in-out infinite alternate;
}
.scn-petruchio-wooing-interview .ground-shadow {
  position: absolute; bottom: 15%; left: 30%; width: 40%; height: 12px;
  background: rgba(0,0,0,0.08); border-radius: 50%; filter: blur(6px);
  animation: pi-shade 6s ease-in-out infinite;
}
.scn-petruchio-wooing-interview .dust {
  position: absolute; top: 30%; left: 20%; width: 4px; height: 4px;
  background: rgba(255,255,220,0.6); border-radius: 50%;
  animation: pi-dust 8s linear infinite;
}
.scn-petruchio-wooing-interview .dust-2 {
  position: absolute; top: 40%; left: 60%; width: 3px; height: 3px;
  background: rgba(255,255,220,0.5); border-radius: 50%;
  animation: pi-dust 8s linear infinite 4s;
}
@keyframes pi-sun {
  0% { transform: translateX(-50%) scale(1); opacity: 0.8; }
  50% { transform: translateX(-50%) scale(1.05); opacity: 1; }
  100% { transform: translateX(-50%) scale(1); opacity: 0.85; }
}
@keyframes pi-beam1 {
  0% { opacity: 0.2; transform: rotate(10deg); }
  50% { opacity: 0.5; transform: rotate(8deg); }
  100% { opacity: 0.2; transform: rotate(10deg); }
}
@keyframes pi-beam2 {
  0% { opacity: 0.15; transform: rotate(-15deg); }
  50% { opacity: 0.4; transform: rotate(-12deg); }
  100% { opacity: 0.15; transform: rotate(-15deg); }
}
@keyframes pi-fig {
  0% { transform: translateY(0) rotate(-1deg); }
  50% { transform: translateY(-4px) rotate(1deg); }
  100% { transform: translateY(0) rotate(-1deg); }
}
@keyframes pi-arm {
  0% { transform: rotate(-30deg); }
  50% { transform: rotate(-20deg); }
  100% { transform: rotate(-30deg); }
}
@keyframes pi-shade {
  0%,100% { opacity: 0.06; transform: scaleX(1); }
  50% { opacity: 0.12; transform: scaleX(1.2); }
}
@keyframes pi-dust {
  0% { transform: translateY(0) translateX(0); opacity: 0; }
  10% { opacity: 0.6; }
  90% { opacity: 0.6; }
  100% { transform: translateY(-20vh) translateX(10px); opacity: 0; }
}

.scn-hunting-jest {
  background: linear-gradient(180deg, #f5d9b3 0%, #e8c89a 40%, #d4a87a 100%),
              radial-gradient(ellipse at 50% 0%, #fff8e7 0%, transparent 60%);
}
.scn-hunting-jest .wall-bg { position:absolute; inset:0; background: linear-gradient(135deg, #e8d4b0 25%, transparent 25%, transparent 75%, #c49a6a 75%), linear-gradient(45deg, #d4b896 50%, #b88a5c 50%); background-size: 40px 40px; animation: hj-wall 20s linear infinite; }
.scn-hunting-jest .trophy-head { position:absolute; top:8%; left:50%; width:80px; height:60px; transform:translateX(-50%); background: radial-gradient(ellipse at 50% 40%, #9a7a5a 0%, #7a5a3a 70%); border-radius: 50% 50% 40% 40% / 60% 60% 30% 30%; box-shadow: 0 4px 12px rgba(0,0,0,0.3); animation: hj-trophy 4s ease-in-out infinite; }
.scn-hunting-jest .hunter { position:absolute; bottom:20%; left:20%; width:30px; height:60px; background: linear-gradient(180deg, #5a3a2a 0%, #3a2a1a 100%); border-radius: 50% 50% 40% 40% / 40% 40% 60% 60%; animation: hj-hunter 2s ease-in-out infinite; }
.scn-hunting-jest .bow { position:absolute; bottom:35%; left:18%; width:40px; height:20px; border: 3px solid #6a4a2a; border-radius: 50%; border-bottom: none; transform-origin: 0 50%; animation: hj-bow 1.5s ease-in-out infinite; }
.scn-hunting-jest .arrow { position:absolute; bottom:40%; left:22%; width:50px; height:2px; background: #4a2a1a; transform-origin: right center; animation: hj-arrow 1.5s ease-in-out infinite; }
.scn-hunting-jest .dog { position:absolute; bottom:20%; left:60%; width:40px; height:25px; background: linear-gradient(180deg, #8a6a4a 0%, #6a4a2a 100%); border-radius: 50% 50% 40% 40%; animation: hj-dog 3s ease-in-out infinite; }
.scn-hunting-jest .table { position:absolute; bottom:0; left:10%; right:10%; height:15%; background: linear-gradient(180deg, #6a4a3a 0%, #4a2a1a 100%); border-radius: 20% 20% 0 0; box-shadow: 0 -4px 8px rgba(0,0,0,0.2); }
.scn-hunting-jest .candle { position:absolute; bottom:15%; left:50%; width:8px; height:20px; background: linear-gradient(180deg, #f0c060 0%, #c08040 100%); border-radius: 20%; transform-origin: bottom center; animation: hj-candle 2s ease-in-out infinite; }
.scn-hunting-jest .curtain { position:absolute; top:0; left:0; width:20%; height:100%; background: linear-gradient(90deg, #8a4a3a 0%, #6a3a2a 100%); clip-path: polygon(0 0, 100% 0, 60% 100%, 0 100%); animation: hj-curtain 8s ease-in-out infinite; }
@keyframes hj-wall { 0% { background-position: 0 0; } 100% { background-position: 40px 40px; } }
@keyframes hj-trophy { 0% { transform: translateX(-50%) rotate(-2deg); } 50% { transform: translateX(-50%) rotate(2deg) scale(1.05); } 100% { transform: translateX(-50%) rotate(-2deg); } }
@keyframes hj-hunter { 0% { transform: rotate(-5deg); } 50% { transform: rotate(5deg) translateX(2px); } 100% { transform: rotate(-5deg); } }
@keyframes hj-bow { 0% { transform: rotate(0deg); } 50% { transform: rotate(30deg); } 100% { transform: rotate(0deg); } }
@keyframes hj-arrow { 0% { transform: scaleX(0.5); opacity:0; } 25% { transform: scaleX(1); opacity:1; } 100% { transform: scaleX(0); opacity:0; } }
@keyframes hj-dog { 0% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-4px) rotate(5deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes hj-candle { 0% { transform: scaleY(1); opacity:0.8; } 50% { transform: scaleY(1.1); opacity:1; } 100% { transform: scaleY(1); opacity:0.8; } }
@keyframes hj-curtain { 0% { clip-path: polygon(0 0, 100% 0, 60% 100%, 0 100%); } 50% { clip-path: polygon(0 0, 100% 0, 40% 100%, 0 100%); } 100% { clip-path: polygon(0 0, 100% 0, 60% 100%, 0 100%); } }

.scn-wager-proposal {
  background: linear-gradient(180deg, #e8d4b0 0%, #d4b896 40%, #c09870 100%),
              radial-gradient(ellipse at 50% 100%, #fff5e0 0%, transparent 60%);
}
.scn-wager-proposal .floor { position:absolute; bottom:0; left:0; right:0; height:20%; background: linear-gradient(180deg, #8a6a4a 0%, #6a4a2a 100%); }
.scn-wager-proposal .table { position:absolute; bottom:10%; left:30%; right:30%; height:25%; background: linear-gradient(180deg, #7a5a3a 0%, #5a3a1a 100%); border-radius: 10% 10% 0 0; box-shadow: 0 -4px 8px rgba(0,0,0,0.3); }
.scn-wager-proposal .coin { position:absolute; bottom:25%; width:16px; height:16px; background: radial-gradient(circle, #f0d060 0%, #c09830 70%); border-radius: 50%; box-shadow: inset 0 0 4px #a08020; animation: wp-coin 3s ease-in-out infinite; }
.scn-wager-proposal .coin1 { left:35%; animation-delay:0s; }
.scn-wager-proposal .coin2 { left:55%; animation-delay:1s; }
.scn-wager-proposal .figure-left { position:absolute; bottom:15%; left:10%; width:30px; height:70px; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: wp-figure 2s ease-in-out infinite; }
.scn-wager-proposal .figure-right { position:absolute; bottom:15%; right:10%; width:30px; height:70px; background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: wp-figure 2s ease-in-out infinite reverse; }
.scn-wager-proposal .arm-arm { position:absolute; bottom:35%; left:15%; width:60px; height:10px; background: #3a2a1a; transform-origin: left center; animation: wp-arm 2.5s ease-in-out infinite; }
.scn-wager-proposal .wager-hand { position:absolute; bottom:35%; left:45%; width:20px; height:20px; background: radial-gradient(circle, #c09870 0%, #a08050 70%); border-radius: 50%; animation: wp-hand 2.5s ease-in-out infinite; }
.scn-wager-proposal .window { position:absolute; top:10%; right:5%; width:60px; height:80px; background: linear-gradient(180deg, #b0d0f0 0%, #7080a0 100%); border: 4px solid #6a4a2a; border-radius:4px; animation: wp-window 10s ease-in-out infinite; }
@keyframes wp-coin { 0% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-6px) rotate(180deg); } 100% { transform: translateY(0) rotate(360deg); } }
@keyframes wp-figure { 0% { transform: rotate(-2deg); } 50% { transform: rotate(2deg) translateX(3px); } 100% { transform: rotate(-2deg); } }
@keyframes wp-arm { 0% { transform: rotate(-10deg); } 50% { transform: rotate(20deg); } 100% { transform: rotate(-10deg); } }
@keyframes wp-hand { 0% { transform: scale(1); } 50% { transform: scale(1.2); } 100% { transform: scale(1); } }
@keyframes wp-window { 0% { transform: scaleY(1); background-position: 0 0; } 50% { transform: scaleY(1.05); background-position: 0 -10px; } 100% { transform: scaleY(1); background-position: 0 0; } }

.scn-first-summons-fail {
  background: linear-gradient(180deg, #d4c0a0 0%, #b09878 40%, #907858 100%),
              radial-gradient(ellipse at 50% 0%, #fff0d0 0%, transparent 50%);
}
.scn-first-summons-fail .doorway { position:absolute; top:20%; left:50%; transform:translateX(-50%); width:80px; height:120px; background: #5a4030; border-radius: 0 0 10% 10%; box-shadow: inset 0 0 20px rgba(0,0,0,0.5); animation: fs-door 5s ease-in-out infinite; }
.scn-first-summons-fail .messenger { position:absolute; top:35%; left:42%; width:20px; height:40px; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: fs-mess 1.5s ease-in-out infinite; }
.scn-first-summons-fail .master { position:absolute; top:30%; left:20%; width:30px; height:60px; background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: fs-master 2s ease-in-out infinite; }
.scn-first-summons-fail .chair { position:absolute; bottom:15%; left:25%; width:40px; height:50px; background: linear-gradient(180deg, #6a4a3a 0%, #4a2a1a 100%); border-radius: 20% 20% 10% 10%; transform-origin: bottom center; animation: fs-chair 3s ease-in-out infinite; }
.scn-first-summons-fail .desk { position:absolute; bottom:0; left:10%; right:40%; height:20%; background: linear-gradient(180deg, #7a5a3a 0%, #5a3a1a 100%); border-radius: 10% 10% 0 0; }
.scn-first-summons-fail .light-strip { position:absolute; top:0; left:20%; width:60%; height:30%; background: linear-gradient(180deg, rgba(255,200,100,0.4) 0%, transparent 100%); animation: fs-light 4s ease-in-out infinite alternate; }
.scn-first-summons-fail .shadow { position:absolute; top:30%; left:10%; width:50%; height:50%; background: radial-gradient(ellipse at 50% 0%, rgba(0,0,0,0.3) 0%, transparent 60%); animation: fs-shadow 6s ease-in-out infinite; }
.scn-first-summons-fail .letter { position:absolute; top:40%; left:35%; width:20px; height:15px; background: #e0c090; border: 1px solid #a08060; transform: rotate(-10deg); animation: fs-letter 2s ease-in-out infinite; }
@keyframes fs-door { 0% { transform: translateX(-50%) scaleY(1); } 50% { transform: translateX(-50%) scaleY(1.03); } 100% { transform: translateX(-50%) scaleY(1); } }
@keyframes fs-mess { 0% { transform: rotate(-10deg) translateY(0); } 50% { transform: rotate(10deg) translateY(-2px); } 100% { transform: rotate(-10deg) translateY(0); } }
@keyframes fs-master { 0% { transform: rotate(-3deg); } 50% { transform: rotate(3deg) translateX(4px); } 100% { transform: rotate(-3deg); } }
@keyframes fs-chair { 0% { transform: rotate(0deg); } 50% { transform: rotate(2deg); } 100% { transform: rotate(0deg); } }
@keyframes fs-light { 0% { opacity:0.5; } 100% { opacity:1; } }
@keyframes fs-shadow { 0% { transform: scale(1); opacity:0.3; } 50% { transform: scale(1.1); opacity:0.5; } 100% { transform: scale(1); opacity:0.3; } }
@keyframes fs-letter { 0% { transform: rotate(-10deg) scale(1); } 50% { transform: rotate(10deg) scale(1.1); } 100% { transform: rotate(-10deg) scale(1); } }

.scn-kate-arrives {
  background: linear-gradient(180deg, #f0d8b0 0%, #d4b890 40%, #b89870 100%),
              radial-gradient(ellipse at 50% 0%, #fff5e0 0%, transparent 60%);
}
.scn-kate-arrives .hearth { position:absolute; bottom:10%; left:10%; width:100px; height:80px; background: #5a4030; border-radius: 0 0 20% 20%; box-shadow: inset 0 -10px 20px rgba(0,0,0,0.5); }
.scn-kate-arrives .fire-glow { position:absolute; bottom:15%; left:12%; width:60px; height:40px; background: radial-gradient(ellipse at 50% 100%, #ffa040 0%, #ff6000 40%, transparent 70%); animation: ka-fire 2s ease-in-out infinite alternate; }
.scn-kate-arrives .door { position:absolute; top:10%; right:10%; width:70px; height:100px; background: #4a3a2a; border-radius: 0 0 10% 10%; box-shadow: 0 0 20px rgba(0,0,0,0.3); animation: ka-door 3s ease-in-out infinite; }
.scn-kate-arrives .kate { position:absolute; top:25%; right:15%; width:25px; height:50px; background: linear-gradient(180deg, #7a5a3a 0%, #5a3a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: ka-kate 4s ease-in-out infinite; }
.scn-kate-arrives .bianca { position:absolute; bottom:20%; left:25%; width:20px; height:45px; background: linear-gradient(180deg, #6a5a4a 0%, #4a3a2a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: ka-fig 6s ease-in-out infinite; }
.scn-kate-arrives .hortensio-wife { position:absolute; bottom:20%; left:40%; width:20px; height:45px; background: linear-gradient(180deg, #5a6a4a 0%, #3a4a2a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: ka-fig 6s ease-in-out infinite reverse; }
.scn-kate-arrives .carpet { position:absolute; bottom:0; left:20%; right:20%; height:10%; background: linear-gradient(90deg, #8a5a3a 0%, #6a4a2a 50%, #8a5a3a 100%); border-radius: 50% 50% 0 0; }
.scn-kate-arrives .chandelier { position:absolute; top:5%; left:50%; transform:translateX(-50%); width:60px; height:30px; background: radial-gradient(ellipse at 50% 0%, #c09870 0%, #a08050 100%); border-radius: 0 0 50% 50%; box-shadow: 0 0 20px rgba(255,200,100,0.5); animation: ka-chandelier 5s ease-in-out infinite; }
@keyframes ka-fire { 0% { transform: scale(1) translateY(0); opacity:0.8; } 100% { transform: scale(1.1) translateY(-2px); opacity:1; } }
@keyframes ka-door { 0% { transform: scaleX(1); } 50% { transform: scaleX(1.05); } 100% { transform: scaleX(1); } }
@keyframes ka-kate { 0% { transform: translateX(0) rotate(0deg); } 50% { transform: translateX(-10px) rotate(2deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes ka-fig { 0% { transform: rotate(-2deg) scale(1); } 50% { transform: rotate(2deg) scale(1.05); } 100% { transform: rotate(-2deg) scale(1); } }
@keyframes ka-chandelier { 0% { transform: translateX(-50%) rotate(0deg); } 50% { transform: translateX(-50%) rotate(2deg); } 100% { transform: translateX(-50%) rotate(0deg); } }

/* life-saving-ruse – bright interior, tense mood */
.scn-life-saving-ruse {
  background: linear-gradient(135deg, #f5e7d3 0%, #d6c5a9 100%),
              radial-gradient(ellipse at 30% 50%, #fffbe3 0%, transparent 50%);
}
.scn-life-saving-ruse .wall {
  position:absolute; inset:0 0 40% 0;
  background: linear-gradient(180deg, #f0e2ce 0%, #d6c5a9 100%);
  animation: lr-wall 8s ease-in-out infinite alternate;
}
.scn-life-saving-ruse .floor {
  position:absolute; bottom:0; left:0; right:0; height:40%;
  background: linear-gradient(180deg, #b8a88c 0%, #8e7c63 100%);
  animation: lr-floor 12s ease infinite;
}
.scn-life-saving-ruse .window {
  position:absolute; top:15%; left:5%; width:25%; height:35%;
  background: radial-gradient(ellipse at center, #fff9d6 0%, #f5e7a0 60%, transparent 80%);
  border:3px solid #7a6b54; border-radius:5%;
  animation: lr-window 20s ease-in-out infinite alternate;
}
.scn-life-saving-ruse .curtain {
  position:absolute; top:10%; left:2%; width:30%; height:40%;
  background: linear-gradient(180deg, #7a3e3e 0%, #5a2e2e 100%);
  border-radius:10%; filter:blur(2px);
  animation: lr-curtain 5s ease-in-out infinite;
}
.scn-life-saving-ruse .table {
  position:absolute; bottom:20%; right:20%; width:20%; height:10%;
  background: linear-gradient(180deg, #6b4a2e 0%, #4a3020 100%);
  border-radius:5%; box-shadow:0 4px 8px rgba(0,0,0,.5);
  animation: lr-table 15s ease infinite alternate;
}
.scn-life-saving-ruse .lamp {
  position:absolute; bottom:30%; right:25%; width:10px; height:20px;
  background: radial-gradient(circle, #ffce7a 0%, #cc8a3a 80%);
  border-radius:50% 50% 20% 20%;
  box-shadow: 0 0 30px 10px #cc8a3a, 0 0 60px 20px rgba(255,206,122,.5);
  animation: lr-lamp 3s ease-in-out infinite;
}
.scn-life-saving-ruse .figure {
  position:absolute; bottom:15%; left:45%; width:40px; height:80px;
  background: linear-gradient(180deg, #2c1e14 0%, #1a100a 100%);
  border-radius:40% 40% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: lr-figure 4s ease-in-out infinite;
}
@keyframes lr-wall     { 0% { opacity:.9; } 50% { opacity:1; } 100% { opacity:.85; } }
@keyframes lr-floor    { 0% { opacity:.6; } 50% { opacity:.7; } 100% { opacity:.65; } }
@keyframes lr-window   { 0% { opacity:.8; box-shadow:0 0 60px 15px rgba(255,249,214,.3); } 50% { opacity:1; box-shadow:0 0 80px 25px rgba(255,249,214,.5); } 100% { opacity:.85; box-shadow:0 0 60px 15px rgba(255,249,214,.3); } }
@keyframes lr-curtain  { 0% { transform:translateX(0); } 50% { transform:translateX(-3px); } 100% { transform:translateX(0); } }
@keyframes lr-table    { 0% { transform:translateY(0); } 50% { transform:translateY(-1px); } 100% { transform:translateY(0); } }
@keyframes lr-lamp     { 0% { opacity:.7; transform:scale(1); } 50% { opacity:1; transform:scale(1.1); } 100% { opacity:.8; transform:scale(.95); } }
@keyframes lr-figure   { 0% { transform:translateX(0) rotate(0deg); } 25% { transform:translateX(2px) rotate(1deg); } 50% { transform:translateX(0) rotate(0deg); } 75% { transform:translateX(-2px) rotate(-1deg); } 100% { transform:translateX(0) rotate(0deg); } }

/* kate-starved-grumio – dark interior, starved mood */
.scn-kate-starved-grumio {
  background: linear-gradient(180deg, #1a1a2a 0%, #0f0f1a 100%),
              radial-gradient(ellipse at 50% 70%, #2a2a3a 0%, transparent 60%);
}
.scn-kate-starved-grumio .wall-dark {
  position:absolute; inset:0 0 50% 0;
  background: linear-gradient(180deg, #242438 0%, #161623 100%);
  animation: ks-wall 20s ease infinite alternate;
}
.scn-kate-starved-grumio .floor-dark {
  position:absolute; bottom:0; left:0; right:0; height:50%;
  background: linear-gradient(180deg, #1e1e2e 0%, #0a0a15 100%);
  animation: ks-floor 15s ease infinite;
}
.scn-kate-starved-grumio .table-empty {
  position:absolute; bottom:20%; left:50%; transform:translateX(-50%); width:40%; height:8%;
  background: #2a2a3a; border-radius:5%; box-shadow:0 6px 12px rgba(0,0,0,.8);
  animation: ks-table 10s ease infinite alternate;
}
.scn-kate-starved-grumio .figure-kate {
  position:absolute; bottom:15%; left:30%; width:35px; height:70px;
  background: linear-gradient(180deg, #2e2e42 0%, #1a1a2a 100%);
  border-radius:45% 45% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: ks-kate 4s ease-in-out infinite;
}
.scn-kate-starved-grumio .figure-grumio {
  position:absolute; bottom:15%; right:25%; width:30px; height:65px;
  background: linear-gradient(180deg, #3a3a4e 0%, #22223a 100%);
  border-radius:40% 40% 35% 35% / 55% 55% 45% 45%;
  animation: ks-grumio 3s ease-in-out infinite;
}
.scn-kate-starved-grumio .candle {
  position:absolute; bottom:35%; left:50%; transform:translateX(-50%);
  width:8px; height:20px;
  background: linear-gradient(180deg, #e0c87a 0%, #a08040 100%);
  border-radius:50% 50% 10% 10%;
  box-shadow: 0 0 20px 5px #e0c87a, 0 0 40px 10px rgba(224,200,122,.3);
  animation: ks-candle 2s ease-in-out infinite;
}
.scn-kate-starved-grumio .shadow {
  position:absolute; bottom:10%; left:20%; width:60px; height:15px;
  background: rgba(0,0,0,.6); border-radius:50%; filter:blur(8px);
  animation: ks-shadow 4s ease-in-out infinite;
}
@keyframes ks-wall     { 0% { opacity:.8; } 50% { opacity:.9; } 100% { opacity:.75; } }
@keyframes ks-floor    { 0% { opacity:.6; } 50% { opacity:.7; } 100% { opacity:.65; } }
@keyframes ks-table    { 0% { transform:translateX(-50%) translateY(0); } 50% { transform:translateX(-50%) translateY(-1px); } 100% { transform:translateX(-50%) translateY(0); } }
@keyframes ks-kate     { 0% { transform:translateX(0) translateY(0) scale(1); } 25% { transform:translateX(-2px) translateY(-1px) scale(.98); } 50% { transform:translateX(0) translateY(0) scale(1); } 75% { transform:translateX(2px) translateY(-1px) scale(.98); } 100% { transform:translateX(0) translateY(0) scale(1); } }
@keyframes ks-grumio   { 0% { transform:translateX(0) rotate(0deg); } 33% { transform:translateX(-2px) rotate(2deg); } 66% { transform:translateX(2px) rotate(-2deg); } 100% { transform:translateX(0) rotate(0deg); } }
@keyframes ks-candle   { 0% { opacity:.6; transform:translateX(-50%) scale(1); } 50% { opacity:1; transform:translateX(-50%) scale(1.05); } 100% { opacity:.7; transform:translateX(-50%) scale(.95); } }
@keyframes ks-shadow   { 0% { opacity:.4; transform:scale(1); } 50% { opacity:.6; transform:scale(1.1); } 100% { opacity:.5; transform:scale(.9); } }

/* refusing-meats – funny, dim kitchen */
.scn-refusing-meats {
  background: linear-gradient(180deg, #4a3a2e 0%, #2a1e14 100%),
              radial-gradient(ellipse at 50% 60%, #5a4a3a 0%, transparent 70%);
}
.scn-refusing-meats .bg-kitchen {
  position:absolute; inset:0 0 40% 0;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  animation: rm-bg 12s ease infinite alternate;
}
.scn-refusing-meats .table-meat {
  position:absolute; bottom:15%; left:20%; right:20%; height:15%;
  background: linear-gradient(180deg, #6b4a2e 0%, #4a3020 100%);
  border-radius:10%; box-shadow:0 -4px 8px rgba(0,0,0,.7);
  animation: rm-table 8s ease infinite alternate;
}
.scn-refusing-meats .platter {
  position:absolute; bottom:25%; left:50%; transform:translateX(-50%); width:40%; height:8%;
  background: radial-gradient(ellipse, #b8a088 0%, #8e7a68 100%);
  border-radius:50%; box-shadow:0 4px 8px rgba(0,0,0,.5);
  animation: rm-platter 5s ease-in-out infinite;
}
.scn-refusing-meats .meat-foot {
  position:absolute; bottom:30%; left:35%; width:20px; height:10px;
  background: #a06050; border-radius:30% 30% 20% 20%; transform:rotate(10deg);
  animation: rm-foot 3s ease-in-out infinite;
}
.scn-refusing-meats .meat-tripe {
  position:absolute; bottom:30%; left:50%; transform:translateX(-50%); width:15px; height:8px;
  background: #c8a888; border-radius:50%;
  animation: rm-tripe 4s ease-in-out infinite;
}
.scn-refusing-meats .meat-beef {
  position:absolute; bottom:30%; left:60%; width:18px; height:12px;
  background: #885544; border-radius:40%; transform:rotate(-5deg);
  animation: rm-beef 3.5s ease-in-out infinite;
}
.scn-refusing-meats .hand-kate {
  position:absolute; bottom:35%; left:45%; width:20px; height:30px;
  background: #d4b89a; border-radius:50% 50% 20% 20% / 30% 30% 40% 40%;
  transform:rotate(-20deg); transform-origin: bottom center;
  animation: rm-hand-kate 2s ease-in-out infinite;
}
.scn-refusing-meats .hand-grumio {
  position:absolute; bottom:35%; right:30%; width:18px; height:28px;
  background: #c4a88a; border-radius:50% 50% 20% 20% / 30% 30% 40% 40%;
  transform:rotate(15deg); transform-origin: bottom center;
  animation: rm-hand-grumio 2.5s ease-in-out infinite;
}
@keyframes rm-bg          { 0% { opacity:.85; } 50% { opacity:1; } 100% { opacity:.9; } }
@keyframes rm-table        { 0% { transform:translateY(0); } 50% { transform:translateY(-2px); } 100% { transform:translateY(0); } }
@keyframes rm-platter      { 0% { transform:translateX(-50%) rotate(0deg); } 25% { transform:translateX(-50%) rotate(5deg); } 50% { transform:translateX(-50%) rotate(0deg); } 75% { transform:translateX(-50%) rotate(-5deg); } 100% { transform:translateX(-50%) rotate(0deg); } }
@keyframes rm-foot         { 0% { transform:rotate(10deg) scale(1); } 50% { transform:rotate(30deg) scale(1.1); } 100% { transform:rotate(10deg) scale(1); } }
@keyframes rm-tripe        { 0% { transform:translateX(-50%) scale(1); } 50% { transform:translateX(-50%) scale(1.2); } 100% { transform:translateX(-50%) scale(1); } }
@keyframes rm-beef         { 0% { transform:rotate(-5deg) translateY(0); } 50% { transform:rotate(-15deg) translateY(-3px); } 100% { transform:rotate(-5deg) translateY(0); } }
@keyframes rm-hand-kate    { 0% { transform:rotate(-20deg) translateX(0); } 50% { transform:rotate(-40deg) translateX(-5px); } 100% { transform:rotate(-20deg) translateX(0); } }
@keyframes rm-hand-grumio  { 0% { transform:rotate(15deg) translateX(0); } 50% { transform:rotate(30deg) translateX(5px); } 100% { transform:rotate(15deg) translateX(0); } }

/* kate-beats-grumio – tense dim interior */
.scn-kate-beats-grumio {
  background: linear-gradient(180deg, #1e1e2e 0%, #0e0e1a 100%),
              radial-gradient(ellipse at 70% 50%, #2a2a3a 0%, transparent 70%);
}
.scn-kate-beats-grumio .bg-room {
  position:absolute; inset:0 0 40% 0;
  background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%);
  animation: kb-bg 10s ease infinite alternate;
}
.scn-kate-beats-grumio .floor-room {
  position:absolute; bottom:0; left:0; right:0; height:60%;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a15 100%);
  animation: kb-floor 8s ease infinite;
}
.scn-kate-beats-grumio .figure-kate-beat {
  position:absolute; bottom:15%; left:40%; width:35px; height:75px;
  background: linear-gradient(180deg, #2a2a3e 0%, #1a1a2a 100%);
  border-radius:40% 40% 30% 30% / 55% 55% 45% 45%;
  transform-origin: bottom center;
  animation: kb-kate 0.8s ease-in-out infinite;
}
.scn-kate-beats-grumio .figure-grumio-cower {
  position:absolute; bottom:10%; right:30%; width:40px; height:50px;
  background: linear-gradient(180deg, #3a3a4e 0%, #22223a 100%);
  border-radius:50% 50% 20% 20% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: kb-grumio 1.2s ease-in-out infinite;
}
.scn-kate-beats-grumio .arm {
  position:absolute; bottom:50%; left:42%; width:8px; height:35px;
  background: #2a2a3e; border-radius:20% 20% 50% 50%;
  transform-origin: bottom center;
  animation: kb-arm 0.8s ease-in-out infinite;
}
.scn-kate-beats-grumio .shadow-kate {
  position:absolute; bottom:5%; left:35%; width:60px; height:10px;
  background: rgba(0,0,0,.7); border-radius:50%; filter:blur(6px);
  animation: kb-shadow 1s ease-in-out infinite;
}
.scn-kate-beats-grumio .dish-entering {
  position:absolute; bottom:20%; right:5%; width:40px; height:20px;
  background: linear-gradient(180deg, #8a7a6a 0%, #6a5a4a 100%);
  border-radius:20%; transform:translateX(50px);
  animation: kb-dish 3s ease-out infinite;
}
@keyframes kb-bg     { 0% { opacity:.85; } 50% { opacity:1; } 100% { opacity:.9; } }
@keyframes kb-floor  { 0% { opacity:.6; } 50% { opacity:.7; } 100% { opacity:.65; } }
@keyframes kb-kate   { 0% { transform:translateX(0) rotate(0deg); } 50% { transform:translateX(-2px) rotate(-3deg); } 100% { transform:translateX(0) rotate(0deg); } }
@keyframes kb-grumio { 0% { transform:scale(1) rotate(0deg); } 50% { transform:scale(.95) rotate(-20deg); } 100% { transform:scale(1) rotate(0deg); } }
@keyframes kb-arm    { 0% { transform:rotate(-10deg); } 25% { transform:rotate(-60deg); } 50% { transform:rotate(-10deg); } 75% { transform:rotate(-50deg); } 100% { transform:rotate(-10deg); } }
@keyframes kb-shadow { 0% { opacity:.5; transform:scale(1); } 50% { opacity:.7; transform:scale(1.2); } 100% { opacity:.5; transform:scale(1); } }
@keyframes kb-dish   { 0% { transform:translateX(100px); opacity:0; } 20% { opacity:1; } 100% { transform:translateX(0); opacity:1; } }
/* end per-scene blocks */

/* auto-stub: parent tag-classes flagged by CSS audit */
.banner { position: absolute; pointer-events: none; }
.bubble { position: absolute; pointer-events: none; }
.confetti { position: absolute; pointer-events: none; }
.pillar { position: absolute; pointer-events: none; }
.scn { position: absolute; pointer-events: none; }

/* ============ tier A ============ */
/* per-scene blocks (EXP step_scenes) */
.scn-gremio-presents-lucentio {
  background: 
    linear-gradient(180deg, #e8dcc8 0%, #c4b296 40%, #a08870 100%),
    radial-gradient(ellipse at 50% 80%, #f0e6d0 0%, transparent 70%);
}
.scn-gremio-presents-lucentio .wall {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #d4c8b0 0%, #c0b49e 100%);
  animation: grp-wall 16s ease-in-out infinite alternate;
}
@keyframes grp-wall {
  0% { opacity: 0.9; }
  50% { opacity: 1; }
  100% { opacity: 0.95; }
}
.scn-gremio-presents-lucentio .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #9a8a70 0%, #7a6a54 100%);
  box-shadow: inset 0 8px 20px rgba(0,0,0,0.2);
}
.scn-gremio-presents-lucentio .window {
  position: absolute; top: 8%; left: 35%; width: 120px; height: 160px;
  background: linear-gradient(180deg, #fdf6e3 0%, #e8ddc8 70%);
  border-radius: 4px;
  box-shadow: inset 0 0 20px rgba(255,245,210,0.4), 0 0 40px rgba(255,240,200,0.15);
  animation: grp-window 5s ease-in-out infinite alternate;
}
@keyframes grp-window {
  0% { transform: scaleY(1); opacity: 0.95; }
  100% { transform: scaleY(1.01); opacity: 1; }
}
.scn-gremio-presents-lucentio .light-ray {
  position: absolute; top: 10%; left: 30%; width: 180px; height: 200px;
  background: linear-gradient(135deg, rgba(255,245,210,0.3) 0%, transparent 60%);
  transform: rotate(-3deg);
  filter: blur(12px);
  animation: grp-light 8s ease-in-out infinite alternate;
}
@keyframes grp-light {
  0% { opacity: 0.7; transform: rotate(-5deg) scaleX(1); }
  100% { opacity: 1; transform: rotate(-1deg) scaleX(1.02); }
}
.scn-gremio-presents-lucentio .table {
  position: absolute; bottom: 28%; left: 50%; width: 160px; height: 50px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #8a7a5e 0%, #6a5a42 100%);
  border-radius: 6px 6px 2px 2px;
  box-shadow: 0 4px 12px rgba(0,0,0,0.3);
  animation: grp-table 20s ease-in-out infinite;
}
@keyframes grp-table {
  0%,100% { transform: translateX(-50%) translateY(0); }
  50% { transform: translateX(-50%) translateY(-2px); }
}
.scn-gremio-presents-lucentio .figure-giver {
  position: absolute; bottom: 25%; left: 38%; width: 26px; height: 60px;
  background: linear-gradient(180deg, #7a6a5a 0%, #3a2e22 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: grp-giver 4s ease-in-out infinite;
}
@keyframes grp-giver {
  0% { transform: translateX(0) rotate(-2deg); }
  25% { transform: translateX(2px) rotate(1deg); }
  50% { transform: translateX(0) rotate(0); }
  75% { transform: translateX(-2px) rotate(-1deg); }
  100% { transform: translateX(0) rotate(0); }
}
.scn-gremio-presents-lucentio .figure-receiver {
  position: absolute; bottom: 25%; right: 35%; width: 24px; height: 58px;
  background: linear-gradient(180deg, #6a5a4a 0%, #2a2218 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: grp-receiver 4.5s ease-in-out infinite reverse;
}
@keyframes grp-receiver {
  0% { transform: translateX(0) rotate(0); }
  50% { transform: translateX(-3px) rotate(1deg); }
  100% { transform: translateX(0) rotate(-1deg); }
}
.scn-gremio-presents-lucentio .gift {
  position: absolute; bottom: 30%; left: 48%; width: 30px; height: 20px;
  background: linear-gradient(135deg, #d4a050 0%, #b08030 100%);
  border-radius: 4px;
  box-shadow: 0 2px 8px rgba(0,0,0,0.3), 0 0 12px rgba(200,160,80,0.2);
  animation: grp-gift 3s ease-in-out infinite alternate;
}
@keyframes grp-gift {
  0% { transform: translateY(0) scale(1); opacity: 0.9; }
  100% { transform: translateY(-3px) scale(1.05); opacity: 1; }
}

.scn-lucentio-identifies-himself {
  background: 
    linear-gradient(180deg, #e2d6c0 0%, #c4b8a0 40%, #9a8c78 100%),
    radial-gradient(ellipse at 50% 60%, #f2ecd8 0%, transparent 70%);
}
.scn-lucentio-identifies-himself .wall-books {
  position: absolute; inset: 0 0 35% 0;
  background: linear-gradient(180deg, #c8b8a0 0%, #b0a28c 100%);
}
.scn-lucentio-identifies-himself .floor-rug {
  position: absolute; bottom: 0; left: 0; right: 0; height: 35%;
  background: linear-gradient(180deg, #8a7a62 0%, #6c5e4a 100%);
  border-radius: 40% 0 0 0 / 20% 0 0 0;
  box-shadow: inset 0 6px 14px rgba(0,0,0,0.15);
}
.scn-lucentio-identifies-himself .window-arch {
  position: absolute; top: 6%; left: 60%; width: 130px; height: 180px;
  background: linear-gradient(180deg, #fdf6e8 0%, #e8ddc8 70%);
  border-radius: 50% 50% 4% 4% / 60% 60% 4% 4%;
  box-shadow: inset 0 0 30px rgba(255,245,210,0.3), 0 0 50px rgba(255,240,200,0.1);
  animation: li-window 6s ease-in-out infinite alternate;
}
@keyframes li-window {
  0% { transform: scaleY(1) translateY(0); opacity: 0.9; }
  100% { transform: scaleY(1.005) translateY(-2px); opacity: 1; }
}
.scn-lucentio-identifies-himself .bookshelf {
  position: absolute; bottom: 30%; left: 8%; width: 100px; height: 120px;
  background: linear-gradient(180deg, #7a6652 0%, #5a4838 100%);
  border-radius: 4px;
  box-shadow: 2px 2px 8px rgba(0,0,0,0.2);
  animation: li-shelf 24s ease-in-out infinite;
}
@keyframes li-shelf {
  0%,100% { transform: translateY(0); }
  50% { transform: translateY(-1px); }
}
.scn-lucentio-identifies-himself .lute {
  position: absolute; bottom: 30%; left: 30%; width: 40px; height: 55px;
  background: radial-gradient(circle at 50% 30%, #d4a050 0%, #b08030 60%, #704c1a 100%);
  border-radius: 50% 50% 40% 40% / 30% 30% 60% 60%;
  box-shadow: 0 4px 10px rgba(0,0,0,0.25);
  animation: li-lute 5s ease-in-out infinite alternate;
}
@keyframes li-lute {
  0% { transform: rotate(-5deg) scale(1); }
  100% { transform: rotate(5deg) scale(1.02); }
}
.scn-lucentio-identifies-himself .book-stack {
  position: absolute; bottom: 32%; left: 44%; width: 35px; height: 50px;
  background: linear-gradient(180deg, #a08060 0%, #7a6048 40%, #5a422a 100%);
  border-radius: 2px;
  box-shadow: 2px 2px 6px rgba(0,0,0,0.2);
  animation: li-book 7s ease-in-out infinite;
}
@keyframes li-book {
  0% { transform: rotate(0) translateY(0); }
  50% { transform: rotate(1deg) translateY(-1px); }
  100% { transform: rotate(-1deg) translateY(0); }
}
.scn-lucentio-identifies-himself .figure-lucentio {
  position: absolute; bottom: 22%; left: 50%; width: 26px; height: 64px;
  background: linear-gradient(180deg, #5a4a3a 0%, #2a1e14 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: li-lucentio 4s ease-in-out infinite alternate;
}
@keyframes li-lucentio {
  0% { transform: translateX(0) rotate(-1deg); }
  50% { transform: translateX(2px) rotate(1deg); }
  100% { transform: translateX(0) rotate(0); }
}
.scn-lucentio-identifies-himself .figure-servant {
  position: absolute; bottom: 22%; right: 15%; width: 24px; height: 60px;
  background: linear-gradient(180deg, #4a3e32 0%, #1a1410 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: li-servant 4.5s ease-in-out infinite reverse;
}
@keyframes li-servant {
  0% { transform: translateX(0) rotate(0); }
  50% { transform: translateX(-3px) rotate(2deg); }
  100% { transform: translateX(0) rotate(-1deg); }
}

/* kate-leaves-angry */
.scn-kate-leaves-angry {
  background: linear-gradient(180deg, #c8a458 0%, #9a7a3a 40%, #6a5020 100%),
              radial-gradient(ellipse at 80% 20%, #f0d080 0%, transparent 60%);
}
.scn-kate-leaves-angry .wall {
  position: absolute; inset: 0 0 25% 0;
  background: linear-gradient(90deg, #b89450 0%, #d4b068 50%, #a08040 100%);
  animation: kla-wall 12s ease-in-out infinite alternate;
}
.scn-kate-leaves-angry .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 25%;
  background: linear-gradient(180deg, #5a4020 0%, #3a2810 100%);
  animation: kla-floor 8s ease-in-out infinite;
}
.scn-kate-leaves-angry .doorframe {
  position: absolute; bottom: 25%; left: 20%; width: 30%; height: 75%;
  background: linear-gradient(180deg, #7a5a2a 0%, #4a3010 100%);
  border-radius: 4px 4px 0 0;
  box-shadow: inset -4px 0 8px rgba(0,0,0,.5);
}
.scn-kate-leaves-angry .door {
  position: absolute; bottom: 25%; left: 22%; width: 26%; height: 70%;
  background: linear-gradient(180deg, #8a6a3a 0%, #5a3a1a 100%);
  border-radius: 2px;
  transform-origin: left center;
  animation: kla-door 2s ease-in-out 2s 2;
}
.scn-kate-leaves-angry .figure {
  position: absolute; bottom: 25%; left: 60%; width: 20px; height: 60px;
  background: linear-gradient(180deg, #2a1a0a 0%, #1a0a00 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: kla-figure 4s ease-in-out infinite;
}
.scn-kate-leaves-angry .shadow {
  position: absolute; bottom: 25%; left: 55%; width: 40px; height: 8px;
  background: rgba(0,0,0,.4);
  border-radius: 50%;
  filter: blur(4px);
  animation: kla-shadow 4s ease-in-out infinite;
}
.scn-kate-leaves-angry .sunbeam {
  position: absolute; top: 10%; left: 15%; width: 8%; height: 60%;
  background: linear-gradient(180deg, rgba(255,220,150,.3) 0%, transparent 100%);
  transform: rotate(15deg);
  filter: blur(6px);
  animation: kla-beam 6s ease-in-out infinite alternate;
}
@keyframes kla-wall { 0% { opacity: .9 } 50% { opacity: 1 } 100% { opacity: .85 } }
@keyframes kla-floor { 0%,100% { transform: translateY(0) } 50% { transform: translateY(-2px) } }
@keyframes kla-door { 0%,100% { transform: rotateY(0deg) } 25% { transform: rotateY(-30deg) } 75% { transform: rotateY(-30deg) } }
@keyframes kla-figure { 0% { transform: translateX(0) rotate(-2deg) } 30% { transform: translateX(10px) rotate(2deg) } 60% { transform: translateX(20px) rotate(-1deg) } 100% { transform: translateX(30px) rotate(0) } }
@keyframes kla-shadow { 0%,100% { transform: scaleX(1); opacity: .4 } 50% { transform: scaleX(.8); opacity: .2 } }
@keyframes kla-beam { 0% { opacity: .3 } 50% { opacity: .5 } 100% { opacity: .2 } }

/* gremio-hortensio-plot */
.scn-gremio-hortensio-plot {
  background: linear-gradient(135deg, #a08050 0%, #705030 50%, #503020 100%),
              radial-gradient(ellipse at 50% 30%, #d4b070 0%, transparent 70%);
}
.scn-gremio-hortensio-plot .bg-deep {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, #806040 0%, #402820 100%);
  animation: ghp-bg 10s ease-in-out infinite alternate;
}
.scn-gremio-hortensio-plot .table {
  position: absolute; bottom: 15%; left: 10%; width: 80%; height: 12%;
  background: linear-gradient(180deg, #6a4a2a 0%, #3a2210 100%);
  border-radius: 50% 50% 10% 10% / 80% 80% 20% 20%;
  box-shadow: 0 4px 12px rgba(0,0,0,.6);
}
.scn-gremio-hortensio-plot .candle {
  position: absolute; bottom: 30%; left: 50%; width: 8px; height: 30px;
  background: linear-gradient(180deg, #e0c080 0%, #906020 100%);
  border-radius: 4px;
  transform: translateX(-50%);
}
.scn-gremio-hortensio-plot .flame {
  position: absolute; bottom: 55%; left: 50%; width: 12px; height: 16px;
  background: radial-gradient(circle, #ffcc60 0%, #ffa030 50%, transparent 100%);
  border-radius: 50%;
  transform: translateX(-50%);
  box-shadow: 0 0 20px 8px #ffa030;
  animation: ghp-flame 1.5s ease-in-out infinite alternate;
}
.scn-gremio-hortensio-plot .figure-left {
  position: absolute; bottom: 15%; left: 20%; width: 22px; height: 50px;
  background: linear-gradient(180deg, #2a1a0a 0%, #0a0500 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform: scaleX(-1);
  animation: ghp-fig 6s ease-in-out infinite;
}
.scn-gremio-hortensio-plot .figure-right {
  position: absolute; bottom: 15%; right: 20%; width: 22px; height: 50px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0a00 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: ghp-fig 6s ease-in-out infinite 3s;
}
.scn-gremio-hortensio-plot .shadow-plot {
  position: absolute; bottom: 0; left: 10%; width: 80%; height: 15%;
  background: radial-gradient(ellipse at 50% 100%, rgba(0,0,0,.5) 0%, transparent 70%);
  filter: blur(6px);
}
@keyframes ghp-bg { 0% { opacity: .8 } 50% { opacity: 1 } 100% { opacity: .85 } }
@keyframes ghp-flame { 0% { transform: translateX(-50%) scaleY(.8); opacity: .8 } 50% { transform: translateX(-50%) scaleY(1.2); opacity: 1 } 100% { transform: translateX(-50%) scaleY(.9); opacity: .9 } }
@keyframes ghp-fig { 0%,100% { transform: translateY(0) rotate(0) } 50% { transform: translateY(-3px) rotate(2deg) } }

/* suitors-conspire */
.scn-suitors-conspire {
  background: linear-gradient(180deg, #886644 0%, #604428 50%, #3a2810 100%),
              radial-gradient(ellipse at 70% 30%, #b09060 0%, transparent 60%);
}
.scn-suitors-conspire .bg-mid {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, #705030 0%, #402818 100%);
  animation: suc-bg 8s ease-in-out infinite alternate;
}
.scn-suitors-conspire .table-wide {
  position: absolute; bottom: 15%; left: 5%; width: 90%; height: 10%;
  background: linear-gradient(180deg, #5a3a1a 0%, #2a1808 100%);
  border-radius: 30% 30% 10% 10% / 70% 70% 20% 20%;
  box-shadow: 0 4px 10px rgba(0,0,0,.7);
}
.scn-suitors-conspire .mug {
  position: absolute; bottom: 22%; width: 12px; height: 16px;
  background: linear-gradient(180deg, #7a5a2a 0%, #4a2810 100%);
  border-radius: 4px 4px 2px 2px;
  box-shadow: inset 0 2px 4px rgba(0,0,0,.3);
}
.scn-suitors-conspire .mug.one { left: 25%; animation: suc-mug 5s ease-in-out infinite; }
.scn-suitors-conspire .mug.two { left: 45%; animation: suc-mug 5s ease-in-out infinite 1.5s; }
.scn-suitors-conspire .mug.three { left: 65%; animation: suc-mug 5s ease-in-out infinite 3s; }
.scn-suitors-conspire .figure-a {
  position: absolute; bottom: 10%; left: 20%; width: 20px; height: 45px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0a00 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: suc-fig 7s ease-in-out infinite;
}
.scn-suitors-conspire .figure-b {
  position: absolute; bottom: 10%; left: 40%; width: 20px; height: 45px;
  background: linear-gradient(180deg, #2a1a0a 0%, #0a0500 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: suc-fig 7s ease-in-out infinite 2s;
}
.scn-suitors-conspire .figure-c {
  position: absolute; bottom: 10%; right: 20%; width: 20px; height: 45px;
  background: linear-gradient(180deg, #4a321a 0%, #2a1208 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: suc-fig 7s ease-in-out infinite 4s;
}
@keyframes suc-bg { 0% { opacity: .85 } 50% { opacity: 1 } 100% { opacity: .9 } }
@keyframes suc-mug { 0%,100% { transform: translateY(0) rotate(0) } 50% { transform: translateY(-4px) rotate(5deg) } }
@keyframes suc-fig { 0%,100% { transform: translateY(0) } 50% { transform: translateY(-2px) } }

/* gremio-agrees-to-plan */
.scn-gremio-agrees-to-plan {
  background: linear-gradient(180deg, #b89868 0%, #806040 50%, #503020 100%),
              radial-gradient(ellipse at 50% 40%, #d4b070 0%, transparent 70%);
}
.scn-gremio-agrees-to-plan .bg-wall {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(90deg, #a08048 0%, #c0a058 50%, #806038 100%);
  animation: gap-wall 14s ease-in-out infinite alternate;
}
.scn-gremio-agrees-to-plan .floor-half {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #4a3018 0%, #2a1808 100%);
}
.scn-gremio-agrees-to-plan .figure-left2 {
  position: absolute; bottom: 25%; left: 30%; width: 22px; height: 55px;
  background: linear-gradient(180deg, #2a1a0a 0%, #0a0500 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform: scaleX(-1);
  animation: gap-fig 5s ease-in-out infinite;
}
.scn-gremio-agrees-to-plan .figure-right2 {
  position: absolute; bottom: 25%; right: 30%; width: 22px; height: 55px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0a00 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: gap-fig 5s ease-in-out infinite 2.5s;
}
.scn-gremio-agrees-to-plan .arm-extend {
  position: absolute; bottom: 50%; left: 46%; width: 30px; height: 6px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0a00 100%);
  border-radius: 3px;
  transform-origin: left center;
  animation: gap-arm 3s ease-in-out infinite;
}
.scn-gremio-agrees-to-plan .handshake-glow {
  position: absolute; bottom: 48%; left: 48%; width: 12px; height: 12px;
  background: radial-gradient(circle, #ffd080 0%, #ffa030 60%, transparent 100%);
  border-radius: 50%;
  box-shadow: 0 0 16px 4px #ffa030;
  animation: gap-glow 1.5s ease-in-out infinite alternate;
}
.scn-gremio-agrees-to-plan .shadow-agree {
  position: absolute; bottom: 0; left: 20%; width: 60%; height: 20%;
  background: radial-gradient(ellipse at 50% 100%, rgba(0,0,0,.4) 0%, transparent 70%);
  filter: blur(8px);
}
@keyframes gap-wall { 0% { opacity: .8 } 50% { opacity: 1 } 100% { opacity: .85 } }
@keyframes gap-fig { 0%,100% { transform: translateY(0) rotate(0) } 50% { transform: translateY(-2px) rotate(1deg) } }
@keyframes gap-arm { 0%,100% { transform: rotate(-10deg) } 50% { transform: rotate(10deg) } }
@keyframes gap-glow { 0% { opacity: .7; transform: scale(.8) } 50% { opacity: 1; transform: scale(1.2) } 100% { opacity: .8; transform: scale(.9) } }

.scn-players-arrive {
  background: linear-gradient(180deg, #3b2a4a 0%, #5a3a2a 50%, #7a5a3a 100%), radial-gradient(ellipse at 30% 80%, #7a5a3a 0%, transparent 70%);
  position: relative;
  overflow: hidden;
}
.scn-players-arrive .sky-dusk {
  position: absolute; inset: 0 0 45% 0;
  background: linear-gradient(180deg, #4a3060 0%, #7a5a3a 80%);
  animation: pa-sky 20s ease-in-out infinite alternate;
}
.scn-players-arrive .road {
  position: absolute; bottom: 15%; left: 10%; right: 10%; height: 30%;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 30% 70% 10% 10% / 60% 80% 20% 20%;
  box-shadow: inset 0 8px 20px rgba(0,0,0,0.6);
  animation: pa-road 15s ease-in-out infinite;
}
.scn-players-arrive .figure-player1,
.scn-players-arrive .figure-player2,
.scn-players-arrive .figure-player3 {
  position: absolute; bottom: 20%; width: 18px; 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: pa-walk 6s ease-in-out infinite;
}
.scn-players-arrive .figure-player1 { left: 30%; animation-duration: 5s; animation-delay: 0s; }
.scn-players-arrive .figure-player2 { left: 42%; animation-duration: 5.5s; animation-delay: 0.5s; }
.scn-players-arrive .figure-player3 { left: 54%; animation-duration: 6s; animation-delay: 1s; }
.scn-players-arrive .lantern-glow {
  position: absolute; bottom: 26%; left: 47%; width: 10px; height: 10px;
  background: radial-gradient(circle, #ffd080 0%, #b08040 70%);
  border-radius: 50%;
  box-shadow: 0 0 20px 6px #c08040, 0 0 40px 12px rgba(255,208,128,0.5);
  animation: pa-lantern 3s ease-in-out infinite alternate;
}
.scn-players-arrive .tree-left,
.scn-players-arrive .tree-right {
  position: absolute; bottom: 30%; width: 30px; height: 60px;
  background: linear-gradient(135deg, #2a4a2a 0%, #1a2a1a 100%);
  border-radius: 50% 50% 20% 20% / 80% 80% 20% 20%;
  filter: blur(1px);
  animation: pa-tree 25s ease-in-out infinite alternate;
}
.scn-players-arrive .tree-left { left: 8%; transform: rotate(-10deg); height: 70px; }
.scn-players-arrive .tree-right { right: 8%; transform: rotate(10deg); height: 60px; }
@keyframes pa-sky { 0% { opacity: 0.7 } 50% { opacity: 1 } 100% { opacity: 0.6 } }
@keyframes pa-road { 0% { transform: translateY(0) } 50% { transform: translateY(-2px) } 100% { transform: translateY(0) } }
@keyframes pa-walk { 0% { transform: translateX(0) translateY(0) rotate(-1deg) } 25% { transform: translateX(5px) translateY(-1px) rotate(1deg) } 50% { transform: translateX(10px) translateY(0) rotate(-1deg) } 75% { transform: translateX(15px) translateY(-1px) rotate(1deg) } 100% { transform: translateX(20px) translateY(0) rotate(0) } }
@keyframes pa-lantern { 0% { box-shadow: 0 0 15px 4px #c08040; opacity: 0.85 } 50% { box-shadow: 0 0 30px 10px #ffd060; opacity: 1 } 100% { box-shadow: 0 0 20px 6px #c08040; opacity: 0.9 } }
@keyframes pa-tree { 0% { transform: rotate(-10deg) } 50% { transform: rotate(-8deg) } 100% { transform: rotate(-12deg) } }

.scn-lord-recalls-player {
  background: linear-gradient(180deg, #2a1a0a 0%, #4a2a1a 50%, #6a3a2a 100%), radial-gradient(ellipse at 50% 60%, #6a3a2a 0%, transparent 70%);
  position: relative;
  overflow: hidden;
}
.scn-lord-recalls-player .room-bg {
  position: absolute; inset: 0;
  background: linear-gradient(135deg, #3a2a1a 0%, #5a3a2a 100%);
}
.scn-lord-recalls-player .fire-glow {
  position: absolute; bottom: 25%; left: 20%; width: 60px; height: 80px;
  background: radial-gradient(ellipse at 50% 100%, #ff8030 0%, #a04020 40%, transparent 80%);
  border-radius: 50% 50% 20% 20%;
  box-shadow: 0 0 40px 20px #a04020, 0 0 80px 40px rgba(160,64,32,0.5);
  animation: lrp-fire 4s ease-in-out infinite alternate;
}
.scn-lord-recalls-player .memory-figure {
  position: absolute; bottom: 30%; left: 55%; width: 24px; height: 50px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  box-shadow: 0 0 10px 3px rgba(255,200,100,0.3);
  animation: lrp-memory 8s ease-in-out infinite;
}
.scn-lord-recalls-player .lord-silhouette {
  position: absolute; bottom: 30%; left: 30%; 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: lrp-lord 12s ease-in-out infinite;
}
.scn-lord-recalls-player .window {
  position: absolute; top: 12%; right: 10%; width: 40px; height: 50px;
  background: linear-gradient(180deg, #6a5a4a 0%, #4a3a2a 100%);
  border-radius: 5% 5% 10% 10%;
  box-shadow: inset 0 0 10px 2px #8a6a4a;
  border: 2px solid #3a2a1a;
}
.scn-lord-recalls-player .table-candle {
  position: absolute; bottom: 28%; left: 42%; width: 8px; height: 20px;
  background: linear-gradient(180deg, #c08040 0%, #8a6040 100%);
  border-radius: 20% 20% 10% 10%;
  box-shadow: 0 0 12px 4px #c08040;
  animation: lrp-candle 3s ease-in-out infinite;
}
.scn-lord-recalls-player .bench {
  position: absolute; bottom: 20%; left: 45%; width: 50px; height: 10px;
  background: linear-gradient(180deg, #5a3a2a 0%, #3a2a1a 100%);
  border-radius: 5% 5% 10% 10%;
  box-shadow: 0 2px 4px rgba(0,0,0,0.5);
}
@keyframes lrp-fire { 0% { transform: scale(1) rotate(0) } 50% { transform: scale(1.05) rotate(2deg) } 100% { transform: scale(0.95) rotate(-2deg) } }
@keyframes lrp-memory { 0% { transform: translateX(0) scale(1) } 50% { transform: translateX(3px) scale(1.02) } 100% { transform: translateX(0) scale(1) } }
@keyframes lrp-lord { 0% { transform: rotate(0) } 50% { transform: rotate(2deg) } 100% { transform: rotate(-1deg) } }
@keyframes lrp-candle { 0% { opacity: 0.8 } 50% { opacity: 1 } 100% { opacity: 0.9 } }

.scn-lord-warns-about-sly {
  background: linear-gradient(180deg, #1a1a2a 0%, #2a1a0a 50%, #3a2a1a 100%), radial-gradient(ellipse at 50% 80%, #3a2a1a 0%, transparent 70%);
  position: relative;
  overflow: hidden;
}
.scn-lord-warns-about-sly .chamber-dark {
  position: absolute; inset: 0;
  background: linear-gradient(135deg, #2a1a0a 0%, #1a0a0a 100%);
  animation: lws-dark 10s ease-in-out infinite alternate;
}
.scn-lord-warns-about-sly .lord-shadow {
  position: absolute; bottom: 25%; left: 20%; width: 30px; height: 60px;
  background: linear-gradient(180deg, #0a0a1a 0%, #000 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  filter: blur(2px);
  animation: lws-lord 2s ease-in-out infinite alternate;
}
.scn-lord-warns-about-sly .players-group {
  position: absolute; bottom: 25%; right: 15%; width: 50px; height: 40px;
  background: linear-gradient(180deg, #2a1a0a 0%, #1a0a00 100%);
  border-radius: 40% 40% 20% 20% / 50% 50% 30% 30%;
  filter: blur(1px);
  animation: lws-players 4s ease-in-out infinite;
}
.scn-lord-warns-about-sly .candle-flame {
  position: absolute; top: 30%; left: 48%; width: 6px; height: 14px;
  background: radial-gradient(ellipse at 50% 0%, #ffa040 0%, #c06020 60%);
  border-radius: 50% 50% 20% 20% / 80% 80% 20% 20%;
  box-shadow: 0 0 16px 6px #c06020, 0 0 32px 12px rgba(192,96,32,0.4);
  animation: lws-candle 1.5s ease-in-out infinite alternate;
}
.scn-lord-warns-about-sly .curtain-left,
.scn-lord-warns-about-sly .curtain-right {
  position: absolute; top: 0; bottom: 0; width: 20%;
  background: linear-gradient(90deg, #2a1a0a 0%, #4a2a1a 100%);
  filter: blur(3px);
  animation: lws-curtain 15s ease-in-out infinite alternate;
}
.scn-lord-warns-about-sly .curtain-left { left: 0; transform-origin: left center; }
.scn-lord-warns-about-sly .curtain-right { right: 0; transform-origin: right center; }
.scn-lord-warns-about-sly .floor-line {
  position: absolute; bottom: 20%; left: 10%; right: 10%; height: 2px;
  background: linear-gradient(90deg, transparent, #5a3a2a, transparent);
}
@keyframes lws-dark { 0% { opacity: 0.6 } 50% { opacity: 1 } 100% { opacity: 0.7 } }
@keyframes lws-lord { 0% { transform: translateX(0) rotate(-2deg) } 25% { transform: translateX(3px) rotate(2deg) } 50% { transform: translateX(0) rotate(0) } 75% { transform: translateX(-3px) rotate(-1deg) } 100% { transform: translateX(0) rotate(-2deg) } }
@keyframes lws-players { 0% { transform: scale(0.95) } 50% { transform: scale(1.05) } 100% { transform: scale(0.95) } }
@keyframes lws-candle { 0% { height: 12px; opacity: 0.7 } 50% { height: 16px; opacity: 1 } 100% { height: 13px; opacity: 0.8 } }
@keyframes lws-curtain { 0% { transform: scaleX(1) } 50% { transform: scaleX(0.95) } 100% { transform: scaleX(1) } }

.scn-lord-instructs-page {
  background: linear-gradient(180deg, #3a2a1a 0%, #5a3a2a 50%, #7a4a2a 100%), radial-gradient(ellipse at 50% 60%, #7a4a2a 0%, transparent 70%);
  position: relative;
  overflow: hidden;
}
.scn-lord-instructs-page .room-warm {
  position: absolute; inset: 0;
  background: linear-gradient(135deg, #4a2a1a 0%, #6a3a2a 100%);
  animation: lip-warmth 30s ease-in-out infinite alternate;
}
.scn-lord-instructs-page .lord-figure {
  position: absolute; bottom: 25%; left: 25%; width: 24px; height: 50px;
  background: linear-gradient(180deg, #2a1a0a 0%, #1a0a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: lip-lord 5s ease-in-out infinite;
}
.scn-lord-instructs-page .page-figure {
  position: absolute; bottom: 25%; left: 45%; width: 18px; height: 40px;
  background: linear-gradient(180deg, #3a2a1a 0%, #2a1a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: lip-page 6s ease-in-out infinite;
}
.scn-lord-instructs-page .dress-silhouette {
  position: absolute; bottom: 20%; left: 60%; width: 30px; height: 50px;
  background: linear-gradient(180deg, #5a3a2a 0%, #3a2a1a 100%);
  border-radius: 30% 30% 20% 20% / 50% 50% 30% 30%;
  filter: blur(1px);
  animation: lip-dress 8s ease-in-out infinite;
}
.scn-lord-instructs-page .bed-post {
  position: absolute; bottom: 15%; right: 15%; width: 8px; height: 70px;
  background: linear-gradient(180deg, #4a2a1a 0%, #2a1a0a 100%);
  border-radius: 5% 5% 10% 10%;
  box-shadow: 2px 0 6px rgba(0,0,0,0.5);
}
.scn-lord-instructs-page .candle-stand {
  position: absolute; bottom: 28%; left: 15%; width: 6px; height: 30px;
  background: linear-gradient(180deg, #6a4a2a 0%, #4a2a1a 100%);
  border-radius: 10% 10% 5% 5%;
  box-shadow: 0 0 10px 2px #c08040;
}
.scn-lord-instructs-page .tapestry {
  position: absolute; top: 10%; right: 10%; width: 40px; height: 50px;
  background: linear-gradient(135deg, #5a3a2a 0%, #7a4a2a 100%);
  border-radius: 5% 5% 10% 10%;
  box-shadow: inset 0 0 8px 2px #8a5a3a;
}
.scn-lord-instructs-page .hearth-glow {
  position: absolute; bottom: 20%; left: 5%; width: 70px; height: 60px;
  background: radial-gradient(ellipse at 50% 100%, #ff8030 0%, #a04020 40%, transparent 70%);
  border-radius: 50% 50% 20% 20%;
  box-shadow: 0 0 50px 20px #a04020, 0 0 100px 40px rgba(160,64,32,0.4);
  animation: lip-hearth 7s ease-in-out infinite alternate;
}
@keyframes lip-warmth { 0% { opacity: 0.8 } 50% { opacity: 1 } 100% { opacity: 0.9 } }
@keyframes lip-lord { 0% { transform: rotate(0) } 50% { transform: rotate(2deg) } 100% { transform: rotate(-1deg) } }
@keyframes lip-page { 0% { transform: translateY(0) rotate(0) } 50% { transform: translateY(-2px) rotate(1deg) } 100% { transform: translateY(0) rotate(0) } }
@keyframes lip-dress { 0% { transform: scale(0.95) } 50% { transform: scale(1.05) } 100% { transform: scale(0.95) } }
@keyframes lip-hearth { 0% { box-shadow: 0 0 40px 15px #a04020; opacity: 0.9 } 50% { box-shadow: 0 0 60px 25px #ff8030; opacity: 1 } 100% { box-shadow: 0 0 45px 18px #a04020; opacity: 0.95 } }

.sly-marvels-at-dream {
  background: linear-gradient(135deg, #f9e7c9 0%, #d4b48a 50%, #b8956a 100%),
              radial-gradient(ellipse at 70% 20%, #fff4e6 0%, transparent 60%);
}
.sly-marvels-at-dream .wall { position:absolute; inset:0 0 60% 0; background: linear-gradient(0deg, #e6cfb0 0%, #f2dcc4 100%); }
.sly-marvels-at-dream .window-frame { position:absolute; top:15%; left:65%; width:25%; height:40%; background: rgba(120,90,60,0.2); border:6px solid #8b6f4c; border-radius:4px; box-shadow: inset 0 0 20px #fff0d0; }
.sly-marvels-at-dream .sunrays { position:absolute; top:12%; left:68%; width:30%; height:50%; background: repeating-linear-gradient(45deg, rgba(255,220,150,0.1) 0px, rgba(255,220,150,0.2) 8px, transparent 10px); filter: blur(2px); animation: smd-sunrays 10s ease-in-out infinite alternate; }
.sly-marvels-at-dream .bed-poster { position:absolute; bottom:35%; left:25%; width:12px; height:45%; background: #6b4f30; border-radius:4px; box-shadow: 0 0 10px rgba(0,0,0,0.3); animation: smd-poster 3s ease-in-out infinite; }
.sly-marvels-at-dream .figure-sly { position:absolute; bottom:30%; left:30%; width:40px; height:50px; background: radial-gradient(ellipse at 50% 20%, #d4a373 0%, #a67c52 80%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: smd-figure 6s ease-in-out infinite; }
.sly-marvels-at-dream .blanket { position:absolute; bottom:20%; left:20%; width:60%; height:30%; background: linear-gradient(180deg, #c9a87c 0%, #a07a4e 100%); border-radius: 30% 30% 20% 20% / 60% 60% 30% 30%; box-shadow: 0 5px 15px rgba(0,0,0,0.2); animation: smd-blanket 4s ease-in-out infinite alternate; }
.sly-marvels-at-dream .dust-mote { position:absolute; top:30%; left:70%; width:4px; height:4px; background: rgba(255,230,180,0.6); border-radius:50%; filter: blur(1px); animation: smd-mote 15s linear infinite; }
.sly-marvels-at-dream .mote2 { left:80%; top:40%; animation-duration:20s; animation-delay:-7s; }

@keyframes smd-sunrays { 0% { opacity:0.3 } 50% { opacity:0.7 } 100% { opacity:0.4 } }
@keyframes smd-poster { 0%,100% { transform: translateY(0) } 50% { transform: translateY(-4px) } }
@keyframes smd-figure { 0% { transform: scaleY(1) } 30% { transform: scaleY(1.02) translateY(-2px) } 60% { transform: scaleY(0.98) } 100% { transform: scaleY(1) } }
@keyframes smd-blanket { 0% { transform: translateY(0) scaleX(1) } 50% { transform: translateY(3px) scaleX(1.01) } 100% { transform: translateY(0) } }
@keyframes smd-mote { 0% { transform: translate(0,0) scale(1); opacity:0.2 } 20% { opacity:0.8 } 80% { opacity:0.8 } 100% { transform: translate(20px, -30px) scale(0.5); opacity:0 } }

.sly-thanks-lord {
  background: linear-gradient(180deg, #e8d5b0 0%, #c9ad85 30%, #a3835a 70%, #7c6440 100%),
              radial-gradient(ellipse at 50% 0%, #fff5e0 0%, transparent 70%);
}
.sly-thanks-lord .floor { position:absolute; bottom:0; left:0; right:0; height:25%; background: linear-gradient(0deg, #5a4328, #7a603a); border-radius: 20% 20% 0 0; }
.sly-thanks-lord .wall-right { position:absolute; top:0; right:0; width:40%; height:75%; background: linear-gradient(90deg, #b89a6e, #9a7a4e); }
.sly-thanks-lord .window-arch { position:absolute; top:15%; right:15%; width:20%; height:35%; background: #c6a87a; border-radius: 50% 50% 10% 10%; box-shadow: inset 0 0 30px #fff3d0; }
.sly-thanks-lord .light-beam { position:absolute; top:10%; right:18%; width:20%; height:50%; background: linear-gradient(135deg, rgba(255,240,180,0.3), transparent 80%); filter: blur(4px); animation: stl-beam 8s ease-in-out infinite alternate; }
.sly-thanks-lord .figure-kneeling { position:absolute; bottom:20%; left:20%; width:30px; height:50px; background: linear-gradient(180deg, #6b5034 0%, #4d3720 100%); border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%; transform-origin: bottom center; animation: stl-kneel 6s ease-in-out infinite; }
.sly-thanks-lord .chair { position:absolute; bottom:15%; left:55%; width:40px; height:45px; background: #5a3f28; border-radius: 10% 10% 5% 5%; box-shadow: 0 3px 8px rgba(0,0,0,0.3); }
.sly-thanks-lord .cushion { position:absolute; bottom:22%; left:57%; width:20px; height:12px; background: #c06040; border-radius: 40%; box-shadow: 0 2px 6px rgba(0,0,0,0.2); animation: stl-cushion 4s ease-in-out infinite alternate; }

@keyframes stl-beam { 0% { opacity:0.2 } 50% { opacity:0.6 } 100% { opacity:0.3 } }
@keyframes stl-kneel { 0%,100% { transform: translateY(0) rotate(0) } 25% { transform: translateY(-3px) rotate(5deg) } 75% { transform: translateY(2px) rotate(-3deg) } }
@keyframes stl-cushion { 0% { transform: translateY(0) scale(1) } 50% { transform: translateY(-2px) scale(1.05) } 100% { transform: translateY(0) scale(1) } }

.sly-converses-with-wife {
  background: linear-gradient(135deg, #f2dcc4 0%, #dbb596 50%, #b8906e 100%),
              radial-gradient(ellipse at 60% 30%, #fff0d0 0%, transparent 50%);
}
.sly-converses-with-wife .bed-frame { position:absolute; bottom:0; left:10%; width:80%; height:40%; background: #6b4f30; border-radius: 20% 20% 0 0; box-shadow: 0 -10px 20px rgba(0,0,0,0.3); }
.sly-converses-with-wife .pillow-left { position:absolute; bottom:30%; left:20%; width:30px; height:20px; background: #f0dcc0; border-radius: 40%; animation: scw-pillow 5s ease-in-out infinite alternate; }
.sly-converses-with-wife .pillow-right { position:absolute; bottom:30%; right:20%; width:30px; height:20px; background: #f0dcc0; border-radius: 40%; animation: scw-pillow 5s ease-in-out infinite alternate-reverse; }
.sly-converses-with-wife .figure-sly { position:absolute; bottom:25%; left:25%; width:35px; height:40px; background: radial-gradient(ellipse at 50% 20%, #c6a07a 0%, #8a6740 80%); border-radius: 45% 45% 35% 35% / 55% 55% 35% 35%; animation: scw-sly 7s ease-in-out infinite; }
.sly-converses-with-wife .figure-wife { position:absolute; bottom:25%; right:25%; width:30px; height:40px; background: radial-gradient(ellipse at 50% 20%, #c88a6a 0%, #a06040 80%); border-radius: 45% 45% 35% 35% / 55% 55% 35% 35%; animation: scw-wife 6s ease-in-out infinite; }
.sly-converses-with-wife .blanket-wave { position:absolute; bottom:10%; left:15%; width:70%; height:20%; background: linear-gradient(180deg, #b0885a 0%, #906840 100%); border-radius: 40% 40% 20% 20%; animation: scw-wave 4s ease-in-out infinite alternate; }
.sly-converses-with-wife .window-side { position:absolute; top:20%; left:5%; width:18%; height:30%; background: #d4b080; border:4px solid #8a6a40; border-radius:8px; box-shadow: 0 0 20px #ffe0b0; }
.sly-converses-with-wife .lamp { position:absolute; top:40%; right:10%; width:10px; height:15px; background: #b07030; border-radius: 30% 30% 10% 10%; box-shadow: 0 0 15px #d09050, 0 0 30px rgba(200,120,80,0.3); animation: scw-lamp 4s ease-in-out infinite alternate; }

@keyframes scw-pillow { 0% { transform: translateY(0) scale(1) } 50% { transform: translateY(-3px) scale(1.05) } 100% { transform: translateY(0) } }
@keyframes scw-sly { 0%,100% { transform: translateY(0) rotate(0) } 30% { transform: translateY(-4px) rotate(5deg) } 70% { transform: translateY(2px) rotate(-3deg) } }
@keyframes scw-wife { 0%,100% { transform: translateY(0) rotate(0) } 40% { transform: translateY(-3px) rotate(-4deg) } 60% { transform: translateY(1px) rotate(3deg) } }
@keyframes scw-wave { 0% { transform: translateY(0) scaleX(1) } 100% { transform: translateY(5px) scaleX(1.02) } }
@keyframes scw-lamp { 0% { opacity:0.6 } 50% { opacity:1 } 100% { opacity:0.7 } }

.sly-reluctantly-waits {
  background: linear-gradient(180deg, #dcc5a8 0%, #b89870 40%, #8e7450 70%, #5a4630 100%),
              radial-gradient(ellipse at 60% 10%, #f0dcc0 0%, transparent 60%);
}
.sly-reluctantly-waits .wall-dark { position:absolute; inset:0 0 45% 0; background: linear-gradient(0deg, #6b5a40, #8e7a5a); filter: brightness(0.8); }
.sly-reluctantly-waits .window-narrow { position:absolute; top:10%; left:50%; width:15%; height:30%; transform:translateX(-50%); border-radius:4px; border:6px solid #6a4e30; background: rgba(200,180,140,0.3); box-shadow: inset 0 0 30px #ffe0a0; }
.sly-reluctantly-waits .curtain-left { position:absolute; top:10%; left:40%; width:10%; height:35%; background: linear-gradient(90deg, #a08050, #705a30); border-radius: 100% 0 0 80%; animation: srw-curtain 12s ease-in-out infinite alternate; }
.sly-reluctantly-waits .curtain-right { position:absolute; top:10%; right:40%; width:10%; height:35%; background: linear-gradient(270deg, #a08050, #705a30); border-radius: 0 100% 80% 0; animation: srw-curtain 12s ease-in-out infinite alternate-reverse; }
.sly-reluctantly-waits .figure-sitting { position:absolute; bottom:20%; left:42%; width:35px; height:45px; background: radial-gradient(ellipse at 50% 20%, #b09070 0%, #7a5a38 80%); border-radius: 45% 45% 35% 35% / 55% 55% 35% 35%; transform-origin: bottom center; animation: srw-sit 8s ease-in-out infinite; }
.sly-reluctantly-waits .stool { position:absolute; bottom:12%; left:40%; width:40px; height:15px; background: #5a3f28; border-radius: 10% 10% 5% 5%; box-shadow: 0 2px 8px rgba(0,0,0,0.3); }
.sly-reluctantly-waits .candle-glow { position:absolute; bottom:28%; left:35%; width:6px; height:12px; background: #e0a060; border-radius: 40% 40% 10% 10%; box-shadow: 0 0 12px #ffb070, 0 0 24px rgba(255,176,112,0.4); animation: srw-candle 3s ease-in-out infinite alternate; }
.sly-reluctantly-waits .time-line { position:absolute; bottom:40%; left:20%; width:60%; height:4px; background: linear-gradient(90deg, transparent, rgba(100,80,60,0.3), transparent); animation: srw-line 20s linear infinite; }

@keyframes srw-curtain { 0% { transform: scaleX(1) } 50% { transform: scaleX(0.9) } 100% { transform: scaleX(1) } }
@keyframes srw-sit { 0%,100% { transform: translateY(0) rotate(0) } 20% { transform: translateY(3px) rotate(4deg) } 60% { transform: translateY(-2px) rotate(-2deg) } }
@keyframes srw-candle { 0% { box-shadow: 0 0 8px #ffb070; opacity:0.7 } 50% { box-shadow: 0 0 20px #ffb070, 0 0 40px rgba(255,176,112,0.5); opacity:1 } 100% { box-shadow: 0 0 10px #ffb070; opacity:0.8 } }
@keyframes srw-line { 0% { transform: scaleX(0); opacity:0 } 50% { opacity:0.5 } 100% { transform: scaleX(1); opacity:0 } }

.scn-page-duties-and-tears {
  background: 
    linear-gradient(180deg, #5a2a1a 0%, #8a4a2a 30%, #c07040 60%, #e0a060 100%),
    radial-gradient(ellipse at 50% 80%, #e0a060 0%, #5a2a1a 70%);
  position: relative; overflow: hidden;
}
.scn-page-duties-and-tears .sky-dusk {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(180deg, #6a3a2a 0%, #9a5a3a 50%, transparent 100%);
  animation: pdt-sky 14s ease-in-out infinite alternate;
}
.scn-page-duties-and-tears .horizon-glow {
  position: absolute; bottom: 35%; left: 20%; right: 20%; height: 25%;
  background: radial-gradient(ellipse at 50% 0%, #ffb070 0%, transparent 70%);
  filter: blur(20px);
  animation: pdt-glow 8s ease-in-out infinite alternate;
}
.scn-page-duties-and-tears .figure-woman {
  position: absolute; bottom: 22%; left: 38%; width: 30px; height: 60px;
  background: linear-gradient(180deg, #2a1a1a 0%, #4a2a2a 100%);
  border-radius: 40% 40% 50% 50% / 60% 60% 40% 40%;
  transform: rotate(5deg);
  animation: pdt-woman 6s ease-in-out infinite;
}
.scn-page-duties-and-tears .figure-man {
  position: absolute; bottom: 22%; left: 52%; width: 34px; height: 64px;
  background: linear-gradient(180deg, #1a1a2a 0%, #2a2a3a 100%);
  border-radius: 45% 45% 50% 50% / 65% 65% 35% 35%;
  transform: rotate(-3deg);
  animation: pdt-man 7s ease-in-out infinite;
}
.scn-page-duties-and-tears .embrace-arm {
  position: absolute; bottom: 30%; left: 46%; width: 24px; height: 8px;
  background: #3a2a1a; border-radius: 40% 40% 60% 60% / 50% 50%;
  transform-origin: right center;
  animation: pdt-arm 5s ease-in-out infinite alternate;
}
.scn-page-duties-and-tears .ground-shadow {
  position: absolute; bottom: 20%; left: 30%; right: 30%; height: 10%;
  background: radial-gradient(ellipse, #1a0a0a 0%, transparent 70%);
  filter: blur(8px);
}
.scn-page-duties-and-tears .tears {
  position: absolute; width: 4px; height: 6px;
  background: radial-gradient(circle, #c0d0e0 0%, #8090a0 100%);
  border-radius: 50%; opacity: 0.7;
  animation: pdt-tear 3s ease-in infinite;
}
.scn-page-duties-and-tears .teardrop-1 { bottom: 34%; left: 42%; animation-delay: 0s; }
.scn-page-duties-and-tears .teardrop-2 { bottom: 36%; left: 44%; animation-delay: 1.2s; }

@keyframes pdt-sky { 0% { opacity: 0.6; } 50% { opacity: 1; } 100% { opacity: 0.8; } }
@keyframes pdt-glow { 0% { opacity: 0.3; transform: scale(1); } 50% { opacity: 0.6; transform: scale(1.05); } 100% { opacity: 0.4; transform: scale(0.95); } }
@keyframes pdt-woman { 0%,100% { transform: rotate(5deg) translateY(0); } 50% { transform: rotate(4deg) translateY(-2px); } }
@keyframes pdt-man { 0%,100% { transform: rotate(-3deg) translateY(0); } 50% { transform: rotate(-2deg) translateY(-3px); } }
@keyframes pdt-arm { 0% { transform: rotate(-10deg); } 100% { transform: rotate(10deg); } }
@keyframes pdt-tear { 0% { opacity: 0.7; transform: translateY(0); } 50% { opacity: 0.9; transform: translateY(6px); } 100% { opacity: 0; transform: translateY(14px); } }

.scn-lord-dismisses-page {
  background: 
    linear-gradient(180deg, #3a2a1a 0%, #5a3a2a 30%, #7a4a3a 60%, #9a5a3a 100%),
    radial-gradient(ellipse at 50% 70%, #9a5a3a 0%, #3a2a1a 80%);
  position: relative; overflow: hidden;
}
.scn-lord-dismisses-page .wall-back {
  position: absolute; inset: 0 30% 20% 0;
  background: linear-gradient(180deg, #4a3020 0%, #2a1a10 100%);
  border-radius: 10% 0 0 0;
}
.scn-lord-dismisses-page .door-arch {
  position: absolute; bottom: 20%; left: 10%; width: 40%; height: 80%;
  background: radial-gradient(ellipse at 50% 0%, #1a0a0a 0%, #3a2010 70%);
  border-radius: 40% 40% 0 0;
}
.scn-lord-dismisses-page .page-body {
  position: absolute; bottom: 18%; left: 42%; width: 28px; height: 56px;
  background: linear-gradient(180deg, #1a2a1a 0%, #0a1a0a 100%);
  border-radius: 40% 40% 50% 50% / 60% 60% 40% 40%;
  transform: rotate(-5deg);
  animation: ldp-body 8s ease-in-out infinite;
}
.scn-lord-dismisses-page .page-head {
  position: absolute; bottom: 52%; left: 43%; width: 18px; height: 20px;
  background: radial-gradient(circle, #3a2a1a 0%, #1a1a0a 100%);
  border-radius: 50%; transform-origin: bottom center;
  animation: ldp-head 9s ease-in-out infinite;
}
.scn-lord-dismisses-page .napkin {
  position: absolute; bottom: 28%; left: 38%; width: 20px; height: 16px;
  background: radial-gradient(ellipse, #c0b090 0%, #a09080 100%);
  border-radius: 20% 80% 80% 20% / 50% 50% 50% 50%;
  transform: rotate(15deg);
  animation: ldp-napkin 12s ease-in-out infinite;
}
.scn-lord-dismisses-page .eye-water {
  position: absolute; bottom: 51%; left: 45%; width: 6px; height: 4px;
  background: radial-gradient(circle, #b0c0d0 0%, transparent 100%);
  border-radius: 50%; filter: blur(1px);
  animation: ldp-eye 4s ease-in-out infinite;
}
.scn-lord-dismisses-page .floor-light {
  position: absolute; bottom: 0; left: 30%; right: 20%; height: 18%;
  background: linear-gradient(180deg, transparent 0%, #5a3a2a 100%);
  filter: blur(12px);
  animation: ldp-floor 10s ease-in-out infinite;
}

@keyframes ldp-body { 0%,100% { transform: rotate(-5deg) translateY(0); } 50% { transform: rotate(-4deg) translateY(-2px); } }
@keyframes ldp-head { 0%,100% { transform: rotate(0deg) translateY(0); } 50% { transform: rotate(3deg) translateY(-1px); } }
@keyframes ldp-napkin { 0%,100% { transform: rotate(15deg) translateY(0); } 50% { transform: rotate(18deg) translateY(-3px); } }
@keyframes ldp-eye { 0%,100% { opacity: 0.5; } 50% { opacity: 1; } }
@keyframes ldp-floor { 0%,100% { opacity: 0.6; } 50% { opacity: 0.9; } }

.scn-sly-wakes-bedchamber {
  background: 
    linear-gradient(135deg, #c0a070 0%, #e0c090 30%, #f0d0a0 60%, #b08050 100%),
    radial-gradient(ellipse at 70% 40%, #ffd090 0%, #b08050 80%);
  position: relative; overflow: hidden;
}
.scn-sly-wakes-bedchamber .window-frame {
  position: absolute; top: 8%; left: 5%; width: 35%; height: 50%;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 8px 8px 0 0;
  box-shadow: inset 0 0 20px rgba(0,0,0,0.3);
}
.scn-sly-wakes-bedchamber .window-light {
  position: absolute; top: 10%; left: 8%; width: 29%; height: 44%;
  background: radial-gradient(ellipse, #fff0d0 0%, #ffe0b0 50%, transparent 100%);
  filter: blur(8px);
  opacity: 0.8;
  animation: swb-light 10s ease-in-out infinite alternate;
}
.scn-sly-wakes-bedchamber .sly-figure {
  position: absolute; bottom: 18%; left: 40%; width: 50px; height: 80px;
  background: linear-gradient(180deg, #5a3a2a 0%, #3a2010 100%);
  border-radius: 40% 40% 50% 50% / 70% 70% 30% 30%;
  transform: rotate(10deg);
  animation: swb-sly 8s ease-in-out infinite;
}
.scn-sly-wakes-bedchamber .sly-head {
  position: absolute; bottom: 55%; left: 42%; width: 30px; height: 34px;
  background: radial-gradient(circle, #6a4a2a 0%, #3a2010 100%);
  border-radius: 50%;
  transform-origin: bottom center;
  animation: swb-head 4s ease-in-out infinite;
}
.scn-sly-wakes-bedchamber .bed-pillows {
  position: absolute; bottom: 12%; left: 35%; right: 25%; height: 18%;
  background: linear-gradient(180deg, #f0e0c0 0%, #d0b090 100%);
  border-radius: 30% 30% 20% 20% / 50% 50% 30% 30%;
  filter: blur(2px);
  animation: swb-pillows 12s ease-in-out infinite alternate;
}
.scn-sly-wakes-bedchamber .servant-first {
  position: absolute; bottom: 20%; left: 18%; width: 24px; height: 60px;
  background: linear-gradient(180deg, #1a2a2a 0%, #0a1a1a 100%);
  border-radius: 35% 35% 50% 50% / 60% 60% 40% 40%;
  transform: rotate(-15deg);
  animation: swb-serv1 6s ease-in-out infinite;
}
.scn-sly-wakes-bedchamber .servant-second {
  position: absolute; bottom: 22%; right: 15%; width: 26px; height: 62px;
  background: linear-gradient(180deg, #2a1a2a 0%, #1a0a1a 100%);
  border-radius: 35% 35% 50% 50% / 60% 60% 40% 40%;
  transform: rotate(10deg);
  animation: swb-serv2 7s ease-in-out infinite;
}
.scn-sly-wakes-bedchamber .beef-platter {
  position: absolute; bottom: 28%; left: 22%; width: 40px; height: 12px;
  background: radial-gradient(ellipse, #8a6a4a 0%, #5a3a2a 100%);
  border-radius: 30% 30% 50% 50% / 40% 40% 60% 60%;
  filter: blur(1px);
  animation: swb-platter 9s ease-in-out infinite;
}
.scn-sly-wakes-bedchamber .chamber-blur {
  position: absolute; inset: 0;
  background: radial-gradient(ellipse at 60% 50%, transparent 40%, #8a6a4a 100%);
  mix-blend-mode: multiply; opacity: 0.3;
  animation: swb-blur 15s ease-in-out infinite;
}

@keyframes swb-light { 0% { opacity: 0.6; } 50% { opacity: 1; } 100% { opacity: 0.7; } }
@keyframes swb-sly { 0%,100% { transform: rotate(10deg) translateY(0); } 50% { transform: rotate(12deg) translateY(-3px); } }
@keyframes swb-head { 0%,100% { transform: rotate(0deg); } 50% { transform: rotate(5deg); } }
@keyframes swb-pillows { 0% { transform: translateY(0); } 100% { transform: translateY(-3px); } }
@keyframes swb-serv1 { 0%,100% { transform: rotate(-15deg) translateY(0); } 50% { transform: rotate(-13deg) translateY(-4px); } }
@keyframes swb-serv2 { 0%,100% { transform: rotate(10deg) translateY(0); } 50% { transform: rotate(8deg) translateY(-5px); } }
@keyframes swb-platter { 0%,100% { transform: rotate(0deg); } 50% { transform: rotate(-5deg); } }
@keyframes swb-blur { 0% { opacity: 0.2; } 50% { opacity: 0.4; } 100% { opacity: 0.3; } }

.scn-attendants-convince-sly {
  background: 
    linear-gradient(180deg, #4a2a1a 0%, #6a3a2a 30%, #9a5a3a 60%, #c08050 100%),
    radial-gradient(ellipse at 50% 30%, #d09060 0%, #4a2a1a 70%);
  position: relative; overflow: hidden;
}
.scn-attendants-convince-sly .floor-tiles {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: repeating-conic-gradient(#5a3a2a 0% 25%, #6a4a3a 0% 50%);
  background-size: 30px 30px;
  filter: blur(2px);
  opacity: 0.4;
  animation: acs-tiles 20s linear infinite;
}
.scn-attendants-convince-sly .throne-back {
  position: absolute; bottom: 28%; left: 30%; right: 30%; height: 50%;
  background: linear-gradient(180deg, #8a6040 0%, #4a3020 100%);
  border-radius: 20% 20% 0 0 / 30% 30% 0 0;
  box-shadow: inset 0 10px 30px rgba(0,0,0,0.5);
}
.scn-attendants-convince-sly .sly-seated {
  position: absolute; bottom: 22%; left: 38%; width: 50px; height: 70px;
  background: linear-gradient(180deg, #5a3a2a 0%, #3a2010 100%);
  border-radius: 40% 40% 50% 50% / 65% 65% 35% 35%;
  transform: rotate(-5deg);
  animation: acs-sly 10s ease-in-out infinite;
}
.scn-attendants-convince-sly .attendant-kneeling {
  position: absolute; bottom: 18%; left: 15%; width: 30px; height: 50px;
  background: linear-gradient(180deg, #2a1a2a 0%, #1a0a1a 100%);
  border-radius: 35% 35% 50% 50% / 60% 60% 40% 40%;
  transform: rotate(15deg);
  animation: acs-kneel 8s ease-in-out infinite;
}
.scn-attendants-convince-sly .attendant-robe {
  position: absolute; bottom: 18%; left: 12%; width: 50px; height: 60px;
  background: linear-gradient(180deg, #4a2a3a 0%, #2a1a2a 100%);
  border-radius: 0 40% 50% 50% / 0 60% 40% 40%;
  transform: rotate(8deg);
  animation: acs-robe 6s ease-in-out infinite;
}
.scn-attendants-convince-sly .halo-light {
  position: absolute; top: 5%; left: 40%; width: 80px; height: 40px;
  background: radial-gradient(ellipse, #ffe0a0 0%, transparent 70%);
  filter: blur(30px);
  animation: acs-halo 12s ease-in-out infinite alternate;
}
.scn-attendants-convince-sly .sly-hands {
  position: absolute; bottom: 35%; left: 42%; width: 20px; height: 14px;
  background: radial-gradient(ellipse, #4a2a1a 0%, #2a1a0a 100%);
  border-radius: 40% 40% 60% 60% / 50% 50%;
  transform: rotate(20deg);
  animation: acs-hands 5s ease-in-out infinite;
}
.scn-attendants-convince-sly .window-shaft {
  position: absolute; top: 0; left: 25%; width: 10%; height: 80%;
  background: linear-gradient(180deg, #fff0d0 0%, transparent 100%);
  filter: blur(15px);
  opacity: 0.3;
  animation: acs-shaft 7s ease-in-out infinite alternate;
}

@keyframes acs-tiles { 0% { transform: translateX(0); } 100% { transform: translateX(-30px); } }
@keyframes acs-sly { 0%,100% { transform: rotate(-5deg) translateY(0); } 50% { transform: rotate(-4deg) translateY(-2px); } }
@keyframes acs-kneel { 0%,100% { transform: rotate(15deg) translateY(0); } 50% { transform: rotate(13deg) translateY(-4px); } }
@keyframes acs-robe { 0%,100% { transform: rotate(8deg) translateY(0); } 50% { transform: rotate(10deg) translateY(-3px); } }
@keyframes acs-halo { 0% { opacity: 0.4; } 50% { opacity: 0.8; } 100% { opacity: 0.5; } }
@keyframes acs-hands { 0%,100% { transform: rotate(20deg); } 50% { transform: rotate(25deg); } }
@keyframes acs-shaft { 0% { opacity: 0.1; } 100% { opacity: 0.5; } }

/* lucentio-confesses-love */
.scn-lucentio-confesses-love {
  background: linear-gradient(180deg, #f9e9c8 0%, #f3d9a0 40%, #d9b875 70%, #b08960 100%),
              radial-gradient(ellipse at 50% 30%, #fff3d4 0%, transparent 60%);
}
.scn-lucentio-confesses-love .sky-glow { position:absolute; inset:0 0 60% 0; background: linear-gradient(180deg, #ffefb0 0%, transparent 100%); animation: lc1-skyglow 14s ease-in-out infinite alternate; }
.scn-lucentio-confesses-love .tree-arch { position:absolute; top:5%; left:10%; width:80%; height:50%; background: linear-gradient(135deg, #5a7a4a 0%, #3a5a2a 100%); border-radius: 50% 50% 0 0 / 80% 80% 0 0; box-shadow: inset 0 -20px 30px rgba(0,0,0,.2); animation: lc1-tree 20s ease-in-out infinite; }
.scn-lucentio-confesses-love .ground-sunpatch { position:absolute; bottom:0; left:20%; width:60%; height:30%; background: radial-gradient(ellipse at 50% 0%, #e8c880 0%, transparent 70%); animation: lc1-sunpatch 8s ease-in-out infinite alternate; }
.scn-lucentio-confesses-love .figure-kneeling { position:absolute; bottom:20%; left:38%; width:20px; height:40px; background: linear-gradient(180deg, #3a2a1a 0%, #1a0a00 100%); border-radius: 40% 40% 20% 20% / 60% 60% 20% 20%; transform-origin: bottom center; animation: lc1-kneel 6s ease-in-out infinite; }
.scn-lucentio-confesses-love .figure-standing { position:absolute; bottom:20%; left:50%; width:22px; height:48px; background: linear-gradient(180deg, #4a3020 0%, #2a1a10 100%); border-radius: 30% 30% 10% 10% / 50% 50% 20% 20%; animation: lc1-stand 8s ease-in-out infinite; }
.scn-lucentio-confesses-love .rose-bush { position:absolute; bottom:18%; left:58%; width:30px; height:25px; background: radial-gradient(circle at 50% 20%, #c8553d 0%, #8a3a2a 60%, #4a2a1a 100%); border-radius: 60% 40% 30% 50%; box-shadow: 0 0 12px 6px rgba(200,85,61,.4); animation: lc1-rose 4s ease-in-out infinite alternate; }
.scn-lucentio-confesses-love .petal-1 { position:absolute; bottom:22%; left:60%; width:6px; height:6px; background: #e8785a; border-radius: 50% 0 50% 0; animation: lc1-petal 12s linear infinite; }
.scn-lucentio-confesses-love .petal-2 { position:absolute; bottom:22%; left:62%; width:5px; height:5px; background: #d0684a; border-radius: 50% 0 50% 0; animation: lc1-petal 15s linear infinite reverse; }
@keyframes lc1-skyglow { 0% { opacity:.6 } 50%{ opacity:1 } 100%{ opacity:.7 } }
@keyframes lc1-tree { 0%{ transform: scaleY(1) } 50%{ transform: scaleY(1.02) } 100%{ transform: scaleY(1) } }
@keyframes lc1-sunpatch { 0%{ opacity:.5; transform: scaleX(.9) } 50%{ opacity:.8; transform: scaleX(1) } 100%{ opacity:.6; transform: scaleX(.95) } }
@keyframes lc1-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 lc1-stand { 0%{ transform: translateY(0) rotate(0) } 50%{ transform: translateY(-2px) rotate(1deg) } 100%{ transform: translateY(0) rotate(0) } }
@keyframes lc1-rose { 0%{ transform: scale(1) } 100%{ transform: scale(1.1) rotate(5deg) } }
@keyframes lc1-petal { 0%{ transform: translate(0,0) rotate(0deg) } 100%{ transform: translate(-40px, 20px) rotate(180deg) opacity(0) } }

/* lucentio-dreams-of-bianca */
.scn-lucentio-dreams-of-bianca {
  background: linear-gradient(180deg, #ffeab0 0%, #f0c880 40%, #d4a860 70%, #b08040 100%),
              radial-gradient(ellipse at 50% 20%, #fff5d0 0%, transparent 50%);
}
.scn-lucentio-dreams-of-bianca .wall-back { position:absolute; inset:0; background: linear-gradient(180deg, #e8d0a0 0%, #c8b090 100%); }
.scn-lucentio-dreams-of-bianca .wall-light { position:absolute; top:10%; left:30%; width:40%; height:50%; background: radial-gradient(ellipse at center, #ffe8b0 0%, transparent 70%); animation: lc2-light 6s ease-in-out infinite alternate; }
.scn-lucentio-dreams-of-bianca .lattice { position:absolute; top:10%; left:25%; width:50%; height:60%; border: 4px solid #a08060; border-radius: 10px; background: repeating-linear-gradient(0deg, transparent 0px, transparent 15px, #a08060 15px, #a08060 17px), repeating-linear-gradient(90deg, transparent 0px, transparent 15px, #a08060 15px, #a08060 17px); opacity: .4; animation: lc2-lattice 20s linear infinite; }
.scn-lucentio-dreams-of-bianca .silhouette-dreamer { position:absolute; bottom:20%; left:40%; width:24px; height:50px; background: linear-gradient(180deg, #2a1a10 0%, #0a0500 100%); border-radius: 40% 40% 20% 20% / 60% 60% 30% 30%; transform: rotate(5deg); animation: lc2-dreamer 8s ease-in-out infinite; }
.scn-lucentio-dreams-of-bianca .floating-dream { position:absolute; width:16px; height:16px; background: radial-gradient(circle, #ffd8a0 0%, transparent 70%); border-radius: 50%; filter: blur(2px); }
.scn-lucentio-dreams-of-bianca .dream-a { top:28%; left:48%; animation: lc2-drift-a 12s ease-in-out infinite; }
.scn-lucentio-dreams-of-bianca .dream-b { top:35%; left:52%; width:12px; height:12px; animation: lc2-drift-b 14s ease-in-out infinite reverse; }
.scn-lucentio-dreams-of-bianca .dream-c { top:30%; left:44%; width:10px; height:10px; animation: lc2-drift-a 16s ease-in-out infinite 2s; }
@keyframes lc2-light { 0%{ opacity:.5 } 50%{ opacity:1 } 100%{ opacity:.6 } }
@keyframes lc2-lattice { 0%{ transform: rotate(0deg) } 50%{ transform: rotate(1deg) } 100%{ transform: rotate(0deg) } }
@keyframes lc2-dreamer { 0%{ transform: translateY(0) rotate(5deg) } 25%{ transform: translateY(-3px) rotate(4deg) } 50%{ transform: translateY(-1px) rotate(6deg) } 75%{ transform: translateY(-2px) rotate(5deg) } 100%{ transform: translateY(0) rotate(5deg) } }
@keyframes lc2-drift-a { 0%{ transform: translate(0,0) scale(1); opacity:0 } 20%{ opacity:.8 } 50%{ transform: translate(30px,-20px) scale(1.2); opacity:.6 } 80%{ opacity:.8 } 100%{ transform: translate(60px,-40px) scale(0.8); opacity:0 } }
@keyframes lc2-drift-b { 0%{ transform: translate(0,0) scale(1); opacity:0 } 20%{ opacity:.8 } 50%{ transform: translate(-20px,-15px) scale(1.1); opacity:.6 } 80%{ opacity:.8 } 100%{ transform: translate(-40px,-30px) scale(0.7); opacity:0 } }

/* lucentio-devises-plan */
.scn-lucentio-devises-plan {
  background: linear-gradient(180deg, #f2d59a 0%, #e8c070 30%, #c8a050 60%, #a08030 100%),
              radial-gradient(ellipse at 50% 0%, #fff0c0 0%, transparent 60%);
}
.scn-lucentio-devises-plan .courtyard-floor { position:absolute; bottom:0; left:0; right:0; height:35%; background: linear-gradient(180deg, #c8a060 0%, #9a7a40 100%); border-radius: 20% 20% 0 0 / 30% 30% 0 0; }
.scn-lucentio-devises-plan .pillar-left { position:absolute; bottom:30%; left:15%; width:12px; height:55%; background: linear-gradient(90deg, #b09060 0%, #e8d0a0 30%, #b09060 100%); border-radius:4px; box-shadow: 2px 0 10px rgba(0,0,0,.2); }
.scn-lucentio-devises-plan .pillar-right { position:absolute; bottom:30%; right:15%; width:12px; height:55%; background: linear-gradient(90deg, #b09060 0%, #e8d0a0 30%, #b09060 100%); border-radius:4px; box-shadow: -2px 0 10px rgba(0,0,0,.2); }
.scn-lucentio-devises-plan .bench { position:absolute; bottom:28%; left:25%; width:50%; height:8px; background: linear-gradient(180deg, #8a6a3a 0%, #6a4a2a 100%); border-radius: 2px; box-shadow: 0 4px 6px rgba(0,0,0,.3); }
.scn-lucentio-devises-plan .figure-tranio { position:absolute; bottom:26%; left:22%; width:20px; height:44px; background: linear-gradient(180deg, #4a3020 0%, #2a1a10 100%); border-radius: 40% 40% 20% 20% / 60% 60% 20% 20%; animation: lc3-figureA 5s ease-in-out infinite; }
.scn-lucentio-devises-plan .figure-lucentio { position:absolute; bottom:26%; right:22%; width:20px; height:44px; background: linear-gradient(180deg, #3a2a1a 0%, #1a0a00 100%); border-radius: 40% 40% 20% 20% / 60% 60% 20% 20%; animation: lc3-figureB 5s ease-in-out infinite reverse; }
.scn-lucentio-devises-plan .leaf-a { position:absolute; top:30%; left:20%; width:8px; height:4px; background: #7a9a4a; border-radius: 50% 0 50% 0; animation: lc3-leaf 18s linear infinite; }
.scn-lucentio-devises-plan .leaf-b { position:absolute; top:35%; right:18%; width:6px; height:3px; background: #6a8a3a; border-radius: 50% 0 50% 0; animation: lc3-leaf 22s linear infinite reverse; }
@keyframes lc3-figureA { 0%{ transform: translateY(0) rotate(-2deg) } 25%{ transform: translateY(-2px) rotate(0) } 50%{ transform: translateY(0) rotate(2deg) } 75%{ transform: translateY(-2px) rotate(0) } 100%{ transform: translateY(0) rotate(-2deg) } }
@keyframes lc3-figureB { 0%{ transform: translateY(0) rotate(2deg) } 25%{ transform: translateY(-2px) rotate(0) } 50%{ transform: translateY(0) rotate(-2deg) } 75%{ transform: translateY(-2px) rotate(0) } 100%{ transform: translateY(0) rotate(2deg) } }
@keyframes lc3-leaf { 0%{ transform: translate(0,0) rotate(0deg) } 100%{ transform: translate(-80px, 40px) rotate(360deg); opacity:0 } }

/* lucentio-plot-refined */
.scn-lucentio-plot-refined {
  background: linear-gradient(180deg, #edd4a0 0%, #d4b880 40%, #b89860 70%, #9a7840 100%),
              radial-gradient(ellipse at 70% 20%, #ffecc0 0%, transparent 50%);
}
.scn-lucentio-plot-refined .room-bg { position:absolute; inset:0; background: linear-gradient(180deg, #d4b880 0%, #b89860 100%); opacity:.6; }
.scn-lucentio-plot-refined .door-arch { position:absolute; bottom:10%; left:35%; width:30%; height:70%; background: linear-gradient(135deg, #8a6a3a 0%, #6a4a2a 100%); border-radius: 50% 50% 0 0 / 60% 60% 0 0; box-shadow: inset 0 -20px 30px rgba(0,0,0,.3); }
.scn-lucentio-plot-refined .mirror-frame { position:absolute; top:15%; left:20%; width:25%; height:40%; border: 6px solid #c8a060; border-radius: 10px; background: radial-gradient(circle, #ffe0a0 0%, #d4a860 80%); box-shadow: 0 0 20px 10px rgba(200,160,96,.4); animation: lc4-mirror 8s ease-in-out infinite alternate; }
.scn-lucentio-plot-refined .shadow-left { position:absolute; bottom:15%; left:15%; width:22px; height:50px; background: linear-gradient(180deg, #2a1a10 0%, #0a0500 100%); border-radius: 40% 40% 20% 20% / 60% 60% 20% 20%; animation: lc4-shadowL 6s ease-in-out infinite; }
.scn-lucentio-plot-refined .shadow-right { position:absolute; bottom:15%; right:15%; width:22px; height:50px; background: linear-gradient(180deg, #3a2a1a 0%, #1a0a00 100%); border-radius: 40% 40% 20% 20% / 60% 60% 20% 20%; animation: lc4-shadowR 6s ease-in-out infinite reverse; }
.scn-lucentio-plot-refined .hat-exchange { position:absolute; top:45%; left:50%; width:40px; height:20px; background: linear-gradient(180deg, #8a6a3a 0%, #5a4a2a 100%); border-radius: 50% 50% 10% 10%; transform: translateX(-50%); box-shadow: 0 4px 10px rgba(0,0,0,.4); animation: lc4-hat 4s ease-in-out infinite; }
.scn-lucentio-plot-refined .sparkle-1 { position:absolute; top:28%; left:48%; width:6px; height:6px; background: #ffe880; border-radius:50%; box-shadow: 0 0 12px 4px #ffe880; animation: lc4-sparkle 3s ease-in-out infinite; }
.scn-lucentio-plot-refined .sparkle-2 { position:absolute; top:32%; left:54%; width:4px; height:4px; background: #ffe880; border-radius:50%; box-shadow: 0 0 8px 2px #ffe880; animation: lc4-sparkle 3.8s ease-in-out infinite 1.5s; }
@keyframes lc4-mirror { 0%{ opacity:.7; transform: scale(1) } 50%{ opacity:1; transform: scale(1.02) } 100%{ opacity:.8; transform: scale(.98) } }
@keyframes lc4-shadowL { 0%{ transform: translateY(0) rotate(-3deg) } 25%{ transform: translateY(-2px) rotate(0) } 50%{ transform: translateY(0) rotate(3deg) } 75%{ transform: translateY(-2px) rotate(0) } 100%{ transform: translateY(0) rotate(-3deg) } }
@keyframes lc4-shadowR { 0%{ transform: translateY(0) rotate(3deg) } 25%{ transform: translateY(-2px) rotate(0) } 50%{ transform: translateY(0) rotate(-3deg) } 75%{ transform: translateY(-2px) rotate(0) } 100%{ transform: translateY(0) rotate(3deg) } }
@keyframes lc4-hat { 0%{ transform: translateX(-50%) rotate(0deg) scale(1) } 25%{ transform: translateX(-50%) rotate(-5deg) scale(1.05) } 50%{ transform: translateX(-50%) rotate(0deg) scale(1) } 75%{ transform: translateX(-50%) rotate(5deg) scale(1.05) } 100%{ transform: translateX(-50%) rotate(0deg) scale(1) } }
@keyframes lc4-sparkle { 0%{ opacity:0; transform: scale(0) } 50%{ opacity:1; transform: scale(1.5) } 100%{ opacity:0; transform: scale(0) } }

/* alehouse-heath-quarrel */
.scn-alehouse-heath-quarrel { background: linear-gradient(180deg, #ffe0a0 0%, #f0c070 30%, #c09060 100%), radial-gradient(ellipse at 30% 80%, #e0b060 0%, transparent 70%); }
.scn-alehouse-heath-quarrel .sky { position:absolute; inset:0 0 45% 0; background: linear-gradient(180deg, #ffd080 0%, #ffe8b0 50%, transparent 100%); animation: ahq-sky 20s ease-in-out infinite alternate; }
.scn-alehouse-heath-quarrel .heath { position:absolute; bottom:0; left:0; right:0; height:55%; background: linear-gradient(180deg, #5a7a3a 0%, #3a5a2a 100%); border-radius: 40% 60% 0 0 / 70% 80% 0 0; box-shadow: inset 0 10px 20px rgba(0,0,0,.3); animation: ahq-heath 12s ease-in-out infinite alternate; }
.scn-alehouse-heath-quarrel .alehouse { position:absolute; bottom:30%; left:30%; width:120px; height:90px; background: linear-gradient(180deg, #b08050 0%, #704020 100%); border-radius: 10% 10% 4% 4%; box-shadow: 0 8px 16px rgba(0,0,0,.4); animation: ahq-house 8s ease-in-out infinite; }
.scn-alehouse-heath-quarrel .sign { position:absolute; bottom:55%; left:38%; width:40px; height:30px; background: linear-gradient(180deg, #c09060 0%, #a07040 100%); border-radius: 20% 20% 10% 10%; box-shadow: 2px 2px 6px rgba(0,0,0,.3); transform-origin: top center; animation: ahq-sign 3s ease-in-out infinite alternate; }
.scn-alehouse-heath-quarrel .stocks { position:absolute; bottom:25%; left:50%; width:60px; height:20px; background: linear-gradient(180deg, #806040 0%, #604020 100%); border-radius: 20%; box-shadow: 0 4px 8px rgba(0,0,0,.5); }
.scn-alehouse-heath-quarrel .figure-hostess { position:absolute; bottom:28%; left:35%; width:20px; height:50px; background: linear-gradient(180deg, #c07050 0%, #a05030 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: ahq-quarrel-hostess 4s ease-in-out infinite; }
.scn-alehouse-heath-quarrel .figure-sly { position:absolute; bottom:28%; left:42%; width:20px; height:50px; background: linear-gradient(180deg, #705040 0%, #503020 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: ahq-quarrel-sly 4s ease-in-out infinite; }
.scn-alehouse-heath-quarrel .cloud-a { position:absolute; top:10%; left:10%; width:80px; height:20px; background: rgba(255,255,255,.6); border-radius: 50%; filter: blur(6px); animation: ahq-cloud 40s linear infinite; }
.scn-alehouse-heath-quarrel .cloud-b { position:absolute; top:20%; right:5%; width:60px; height:15px; background: rgba(255,255,255,.4); border-radius: 50%; filter: blur(5px); animation: ahq-cloud 50s linear infinite reverse; }
@keyframes ahq-sky { 0% { opacity:.8; transform: scale(1.02); } 50% { opacity:1; transform: scale(1); } 100% { opacity:.85; transform: scale(1.03); } }
@keyframes ahq-heath { 0% { transform: translateY(0); } 50% { transform: translateY(-4px); } 100% { transform: translateY(2px); } }
@keyframes ahq-house { 0%,100% { transform: translateY(0); } 50% { transform: translateY(2px); } }
@keyframes ahq-sign { 0% { transform: rotate(-5deg); } 100% { transform: rotate(5deg); } }
@keyframes ahq-quarrel-hostess { 0% { transform: translateX(0) rotate(0); } 25% { transform: translateX(8px) rotate(5deg); } 50% { transform: translateX(16px) rotate(0); } 75% { transform: translateX(8px) rotate(-5deg); } 100% { transform: translateX(0) rotate(0); } }
@keyframes ahq-quarrel-sly { 0% { transform: translateX(0) rotate(0); } 25% { transform: translateX(-8px) rotate(-5deg); } 50% { transform: translateX(-16px) rotate(0); } 75% { transform: translateX(-8px) rotate(5deg); } 100% { transform: translateX(0) rotate(0); } }
@keyframes ahq-cloud { 0% { transform: translateX(-30px); } 100% { transform: translateX(120vw); } }

/* lord-hunting-arrival */
.scn-lord-hunting-arrival { background: linear-gradient(180deg, #ffe8b0 0%, #f0c080 40%, #b08050 100%), radial-gradient(ellipse at 70% 20%, #ffd090 0%, transparent 60%); }
.scn-lord-hunting-arrival .sky { position:absolute; inset:0 0 40% 0; background: linear-gradient(180deg, #ffe0a0 0%, #ffcc80 50%, transparent 100%); animation: lha-sky 18s ease-in-out infinite alternate; }
.scn-lord-hunting-arrival .woods-bg { position:absolute; bottom:25%; left:10%; right:10%; height:30%; background: linear-gradient(180deg, #5a6a3a 0%, #3a4a2a 100%); border-radius: 30% 70% 0 0 / 60% 80% 0 0; box-shadow: inset 0 5px 15px rgba(0,0,0,.4); animation: lha-woods 15s ease-in-out infinite alternate; }
.scn-lord-hunting-arrival .ground { position:absolute; bottom:0; left:0; right:0; height:30%; background: linear-gradient(180deg, #6a8a3a 0%, #4a6a2a 100%); border-radius: 10% 10% 0 0; }
.scn-lord-hunting-arrival .lord { position:absolute; bottom:25%; left:30%; width:25px; height:60px; background: linear-gradient(180deg, #8a6a4a 0%, #5a3a2a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: lha-lord 6s ease-in-out infinite; }
.scn-lord-hunting-arrival .horse { position:absolute; bottom:22%; left:35%; width:40px; height:30px; background: linear-gradient(180deg, #a08060 0%, #705040 100%); border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%; transform-origin: bottom center; animation: lha-horse 6s ease-in-out infinite; }
.scn-lord-hunting-arrival .dog-fore { position:absolute; bottom:18%; left:50%; width:15px; height:20px; background: linear-gradient(180deg, #806040 0%, #604020 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: lha-dog 3s ease-in-out infinite alternate; }
.scn-lord-hunting-arrival .dog-aft { position:absolute; bottom:18%; left:55%; width:15px; height:20px; background: linear-gradient(180deg, #705030 0%, #503020 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: lha-dog 3s ease-in-out infinite alternate-reverse; animation-delay: 0.5s; }
.scn-lord-hunting-arrival .horn { position:absolute; bottom:35%; left:32%; width:8px; height:20px; background: linear-gradient(180deg, #c0a070 0%, #a08050 100%); border-radius: 40% 40% 20% 20%; transform: rotate(30deg); box-shadow: 0 0 8px rgba(0,0,0,.3); animation: lha-horn 8s ease-in-out infinite; }
.scn-lord-hunting-arrival .cloud-a { position:absolute; top:8%; right:15%; width:70px; height:18px; background: rgba(255,255,255,.5); border-radius: 50%; filter: blur(6px); animation: lha-cloud 35s linear infinite; }
@keyframes lha-sky { 0% { opacity:.9; } 50% { opacity:1; } 100% { opacity:.85; } }
@keyframes lha-woods { 0% { transform: scale(1.02); } 50% { transform: scale(1); } 100% { transform: scale(1.03); } }
@keyframes lha-lord { 0% { transform: translateY(0) rotate(0); } 50% { transform: translateY(-2px) rotate(2deg); } 100% { transform: translateY(0) rotate(0); } }
@keyframes lha-horse { 0% { transform: translateY(0); } 50% { transform: translateY(-3px); } 100% { transform: translateY(0); } }
@keyframes lha-dog { 0% { transform: translateX(0) rotate(0); } 50% { transform: translateX(-3px) rotate(5deg); } 100% { transform: translateX(3px) rotate(-5deg); } }
@keyframes lha-horn { 0%,100% { transform: rotate(30deg); } 50% { transform: rotate(40deg); } }
@keyframes lha-cloud { 0% { transform: translateX(0); } 100% { transform: translateX(-100vw); } }

/* lord-praises-hounds */
.scn-lord-praises-hounds { background: linear-gradient(180deg, #f0e0c0 0%, #d0b080 30%, #a07050 100%), radial-gradient(ellipse at 40% 70%, #e0c090 0%, transparent 80%); }
.scn-lord-praises-hounds .sky { position:absolute; inset:0 0 50% 0; background: linear-gradient(180deg, #ffe0b0 0%, #ffcc90 50%, transparent 100%); animation: lph-sky 14s ease-in-out infinite alternate; }
.scn-lord-praises-hounds .hedge { position:absolute; bottom:20%; left:0; right:0; height:15%; background: linear-gradient(180deg, #7a5a3a 0%, #5a3a1a 100%); border-radius: 30% 70% 0 0 / 100% 100% 0 0; box-shadow: inset 0 4px 10px rgba(0,0,0,.4); }
.scn-lord-praises-hounds .ground { position:absolute; bottom:0; left:0; right:0; height:25%; background: linear-gradient(180deg, #7a9a4a 0%, #5a7a2a 100%); }
.scn-lord-praises-hounds .lord { position:absolute; bottom:25%; left:25%; width:22px; height:55px; background: linear-gradient(180deg, #7a5a3a 0%, #4a2a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: lph-lord 4s ease-in-out infinite; }
.scn-lord-praises-hounds .hound-silver { position:absolute; bottom:22%; left:40%; width:18px; height:22px; background: linear-gradient(180deg, #a0a0a0 0%, #707070 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: lph-hound 3s ease-in-out infinite alternate; }
.scn-lord-praises-hounds .hound-belman { position:absolute; bottom:22%; left:50%; width:18px; height:22px; background: linear-gradient(180deg, #7a6a5a 0%, #5a4a3a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: lph-hound 3s ease-in-out infinite alternate-reverse; animation-delay: 0.3s; }
.scn-lord-praises-hounds .horn { position:absolute; bottom:30%; left:28%; width:7px; height:18px; background: linear-gradient(180deg, #b09070 0%, #907050 100%); border-radius: 40% 40% 20% 20%; transform: rotate(25deg); box-shadow: 0 0 6px rgba(0,0,0,.3); animation: lph-horn 5s ease-in-out infinite; }
.scn-lord-praises-hounds .trees-bg { position:absolute; bottom:35%; left:70%; width:30%; height:40%; background: linear-gradient(180deg, #4a5a2a 0%, #2a3a1a 100%); border-radius: 50% 50% 0 0 / 80% 80% 0 0; opacity:0.6; animation: lph-trees 20s ease-in-out infinite alternate; }
@keyframes lph-sky { 0% { opacity:.8; } 50% { opacity:1; } 100% { opacity:.75; } }
@keyframes lph-lord { 0% { transform: translateY(0) rotate(0); } 50% { transform: translateY(-2px) rotate(2deg); } 100% { transform: translateY(0) rotate(0); } }
@keyframes lph-hound { 0% { transform: translateX(0) rotate(0); } 50% { transform: translateX(4px) rotate(10deg); } 100% { transform: translateX(-4px) rotate(-10deg); } }
@keyframes lph-horn { 0%,100% { transform: rotate(25deg); } 50% { transform: rotate(35deg); } }
@keyframes lph-trees { 0% { transform: scale(1.02); } 50% { transform: scale(1); } 100% { transform: scale(1.04); } }

/* lord-to-hunt-tomorrow */
.scn-lord-to-hunt-tomorrow { background: linear-gradient(180deg, #f8e8c0 0%, #e0c090 30%, #b08050 100%), radial-gradient(ellipse at 60% 10%, #ffe0b0 0%, transparent 60%); }
.scn-lord-to-hunt-tomorrow .sky { position:absolute; inset:0 0 50% 0; background: linear-gradient(180deg, #ffe8b0 0%, #ffd090 50%, transparent 100%); animation: lth-sky 25s ease-in-out infinite alternate; }
.scn-lord-to-hunt-tomorrow .ground { position:absolute; bottom:0; left:0; right:0; height:50%; background: linear-gradient(180deg, #7a9a4a 0%, #4a6a2a 100%); border-radius: 20% 20% 0 0 / 40% 40% 0 0; box-shadow: inset 0 8px 20px rgba(0,0,0,.3); }
.scn-lord-to-hunt-tomorrow .lord { position:absolute; bottom:30%; left:20%; width:22px; height:55px; background: linear-gradient(180deg, #6a4a3a 0%, #3a2a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: lth-lord 8s ease-in-out infinite; }
.scn-lord-to-hunt-tomorrow .sly-sleeping { position:absolute; bottom:18%; left:45%; width:30px; height:40px; background: linear-gradient(180deg, #5a3a2a 0%, #3a1a0a 100%); border-radius: 50% 50% 40% 40% / 70% 70% 40% 40%; transform: rotate(90deg); transform-origin: bottom left; animation: lth-sly 6s ease-in-out infinite; }
.scn-lord-to-hunt-tomorrow .ale-cup { position:absolute; bottom:20%; left:55%; width:10px; height:12px; background: linear-gradient(180deg, #c0a070 0%, #a08050 100%); border-radius: 30% 30% 20% 20%; box-shadow: 0 0 10px rgba(0,0,0,.2); animation: lth-cup 4s ease-in-out infinite alternate; }
.scn-lord-to-hunt-tomorrow .bed-straw { position:absolute; bottom:15%; left:40%; width:50px; height:15px; background: linear-gradient(180deg, #b09060 0%, #907040 100%); border-radius: 40% 40% 20% 20%; opacity:0.6; animation: lth-straw 10s ease-in-out infinite alternate; }
.scn-lord-to-hunt-tomorrow .sky-shimmer { position:absolute; top:5%; left:30%; width:40%; height:10%; background: radial-gradient(ellipse, rgba(255,255,255,.15) 0%, transparent 100%); filter: blur(8px); animation: lth-shimmer 12s ease-in-out infinite alternate; }
.scn-lord-to-hunt-tomorrow .cloud-a { position:absolute; top:12%; left:5%; width:70px; height:16px; background: rgba(255,255,255,.4); border-radius: 50%; filter: blur(5px); animation: lth-cloud 50s linear infinite; }
.scn-lord-to-hunt-tomorrow .cloud-b { position:absolute; top:22%; right:10%; width:50px; height:12px; background: rgba(255,255,255,.3); border-radius: 50%; filter: blur(4px); animation: lth-cloud 45s linear infinite reverse; }
@keyframes lth-sky { 0% { opacity:.9; } 50% { opacity:1; } 100% { opacity:.8; } }
@keyframes lth-lord { 0% { transform: translateY(0) rotate(0); } 50% { transform: translateY(-1px) rotate(1deg); } 100% { transform: translateY(0) rotate(0); } }
@keyframes lth-sly { 0% { transform: rotate(90deg) scaleY(1); } 50% { transform: rotate(90deg) scaleY(1.05); } 100% { transform: rotate(90deg) scaleY(1); } }
@keyframes lth-cup { 0% { transform: rotate(0); } 50% { transform: rotate(10deg); } 100% { transform: rotate(-5deg); } }
@keyframes lth-straw { 0% { transform: translateY(0); } 50% { transform: translateY(2px); } 100% { transform: translateY(-1px); } }
@keyframes lth-shimmer { 0% { opacity:.3; } 50% { opacity:.6; } 100% { opacity:.4; } }
@keyframes lth-cloud { 0% { transform: translateX(0); } 100% { transform: translateX(-120vw); } }

/* lord-plans-prank */
.scn-lord-plans-prank {
  background:
    linear-gradient(180deg, #ffe8c0 0%, #f8d080 40%, #d4a040 100%),
    radial-gradient(ellipse at 30% 70%, rgba(255,230,180,0.6) 0%, transparent 60%);
}
.scn-lord-plans-prank .sky {
  position:absolute; inset:0 0 55% 0;
  background:linear-gradient(180deg, #fff4e0 0%, #fce4b0 40%, transparent 100%);
  animation:lpp-sky 12s ease-in-out infinite alternate;
}
.scn-lord-plans-prank .wall {
  position:absolute; bottom:0; left:0; right:0; height:55%;
  background:linear-gradient(180deg, #d4a040 0%, #b88530 60%, #9e6e24 100%);
  box-shadow:inset 0 8px 20px rgba(0,0,0,.3);
}
.scn-lord-plans-prank .bed {
  position:absolute; bottom:15%; left:10%; width:40%; height:35%;
  background:linear-gradient(180deg, #c89450 0%, #a07030 100%);
  border-radius:8% 8% 4% 4%;
  box-shadow:0 6px 12px rgba(0,0,0,.4);
  animation:lpp-bed 9s ease-in-out infinite;
}
.scn-lord-plans-prank .lord {
  position:absolute; bottom:18%; right:8%; width:12%; height:40%;
  background:linear-gradient(135deg, #3a2a1a 0%, #1a1208 100%);
  border-radius:50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin:bottom center;
  animation:lpp-lord 5s ease-in-out infinite;
}
.scn-lord-plans-prank .sunbeam {
  position:absolute; top:10%; left:30%; width:15%; height:60%;
  background:linear-gradient(180deg, rgba(255,255,220,0.5) 0%, rgba(255,255,200,0.1) 100%);
  filter:blur(8px);
  animation:lpp-beam 7s ease-in-out infinite alternate;
}
.scn-lord-plans-prank .ring {
  position:absolute; bottom:25%; right:12%; width:3%; height:3%;
  background:radial-gradient(circle, #ffd680 0%, #d4a040 70%);
  border-radius:50%;
  box-shadow:0 0 12px 4px rgba(212,160,64,.7);
  animation:lpp-ring 3s ease-in-out infinite;
}
@keyframes lpp-sky   { 0% { opacity:.7; transform:scaleY(1) } 50% { opacity:.9; transform:scaleY(1.02) } 100% { opacity:.8; transform:scaleY(1) } }
@keyframes lpp-bed   { 0%,100% { transform:translateY(0) } 50% { transform:translateY(-2px) } }
@keyframes lpp-lord  { 0% { transform:rotate(0deg) translateX(0) } 25% { transform:rotate(-2deg) translateX(3px) } 50% { transform:rotate(1deg) translateX(0) } 75% { transform:rotate(-1deg) translateX(2px) } 100% { transform:rotate(0deg) translateX(0) } }
@keyframes lpp-beam  { 0% { opacity:.3; transform:skewX(-5deg) } 50% { opacity:.7; transform:skewX(3deg) } 100% { opacity:.4; transform:skewX(-2deg) } }
@keyframes lpp-ring  { 0% { box-shadow:0 0 6px 2px #d4a040; opacity:.6 } 50% { box-shadow:0 0 20px 8px #ffd680; opacity:1 } 100% { box-shadow:0 0 8px 3px #d4a040; opacity:.7 } }

/* lord-orders-bedding */
.scn-lord-orders-bedding {
  background:
    linear-gradient(180deg, #3a2a4a 0%, #2a1a3a 30%, #1a0a2a 100%),
    radial-gradient(ellipse at 80% 20%, #5a4a6a 0%, transparent 50%);
}
.scn-lord-orders-bedding .wall {
  position:absolute; inset:0; 
  background:linear-gradient(180deg, #4a3a5a 0%, #2a1a3a 100%);
  box-shadow:inset 0 0 30px rgba(0,0,0,.5);
}
.scn-lord-orders-bedding .window {
  position:absolute; top:8%; right:10%; width:20%; height:35%;
  background:linear-gradient(135deg, #7a6a8a 0%, #4a3a5a 100%);
  border:2px solid #6a5a7a;
  border-radius:4%;
  animation:lob-window 15s ease-in-out infinite alternate;
}
.scn-lord-orders-bedding .bed {
  position:absolute; bottom:12%; left:15%; width:40%; height:34%;
  background:linear-gradient(180deg, #5a4a6a 0%, #3a2a4a 100%);
  border-radius:10% 10% 4% 4%;
  box-shadow:0 6px 18px rgba(0,0,0,.6);
  animation:lob-bed 8s ease-in-out infinite;
}
.scn-lord-orders-bedding .pictures {
  position:absolute; top:14%; left:5%; width:12%; height:18%;
  background:linear-gradient(135deg, #8a7a9a 0%, #6a5a7a 100%);
  border-radius:4%;
  box-shadow:0 0 8px rgba(255,255,255,.1);
  animation:lob-pics 20s ease-in-out infinite;
}
.scn-lord-orders-bedding .fire {
  position:absolute; bottom:18%; left:5%; width:8%; height:15%;
  background:radial-gradient(ellipse at 50% 100%, #ffa040 0%, #8a4020 60%, transparent 100%);
  border-radius:50% / 80% 80% 20% 20%;
  animation:lob-fire 4s ease-in-out infinite alternate;
}
.scn-lord-orders-bedding .lord {
  position:absolute; bottom:16%; right:8%; width:10%; height:38%;
  background:linear-gradient(135deg, #1a1220 0%, #0a0610 100%);
  border-radius:50% 50% 40% 40% / 60% 60% 40% 40%;
  animation:lob-lord 6s ease-in-out infinite;
}
.scn-lord-orders-bedding .music {
  position:absolute; top:22%; left:40%; width:4%; height:4%;
  background:radial-gradient(circle, #fff4e0 0%, transparent 70%);
  border-radius:50%;
  animation:lob-music 5s ease-in-out infinite;
}
@keyframes lob-window { 0% { opacity:.6; transform:scale(1) } 50% { opacity:.9; transform:scale(1.05) } 100% { opacity:.7; transform:scale(1) } }
@keyframes lob-bed   { 0%,100% { transform:translateY(0) } 50% { transform:translateY(-3px) } }
@keyframes lob-pics  { 0% { opacity:.5; transform:rotate(-2deg) } 50% { opacity:.8; transform:rotate(1deg) } 100% { opacity:.6; transform:rotate(-1deg) } }
@keyframes lob-fire  { 0% { transform:scaleY(1) scaleX(1); opacity:.7 } 50% { transform:scaleY(1.15) scaleX(1.1); opacity:1 } 100% { transform:scaleY(.95) scaleX(1); opacity:.8 } }
@keyframes lob-lord  { 0% { transform:rotate(0deg) translateX(0) } 25% { transform:rotate(-3deg) translateX(2px) } 50% { transform:rotate(2deg) translateX(-1px) } 75% { transform:rotate(-1deg) translateX(1px) } 100% { transform:rotate(0deg) translateX(0) } }
@keyframes lob-music { 0% { transform:translateY(0) scale(1); opacity:.3 } 50% { transform:translateY(-10px) scale(1.3); opacity:.7 } 100% { transform:translateY(0) scale(1); opacity:.4 } }

/* lord-arranges-attendants */
.scn-lord-arranges-attendants {
  background:
    linear-gradient(180deg, #3a4a5a 0%, #2a3a4a 40%, #1a2a3a 100%),
    radial-gradient(ellipse at 50% 0%, #5a6a7a 0%, transparent 60%);
}
.scn-lord-arranges-attendants .floor {
  position:absolute; bottom:0; left:0; right:0; height:35%;
  background:linear-gradient(180deg, #4a5a6a 0%, #2a3a4a 100%);
}
.scn-lord-arranges-attendants .attendant1 {
  position:absolute; bottom:35%; left:12%; width:8%; height:40%;
  background:linear-gradient(135deg, #5a6a7a 0%, #3a4a5a 100%);
  border-radius:50% 50% 40% 40% / 60% 60% 40% 40%;
  animation:laa-att 7s ease-in-out infinite;
}
.scn-lord-arranges-attendants .attendant2 {
  position:absolute; bottom:35%; left:45%; width:8%; height:40%;
  background:linear-gradient(135deg, #5a6a7a 0%, #3a4a5a 100%);
  border-radius:50% 50% 40% 40% / 60% 60% 40% 40%;
  animation:laa-att 8s ease-in-out infinite 0.5s;
}
.scn-lord-arranges-attendants .attendant3 {
  position:absolute; bottom:35%; right:12%; width:8%; height:40%;
  background:linear-gradient(135deg, #5a6a7a 0%, #3a4a5a 100%);
  border-radius:50% 50% 40% 40% / 60% 60% 40% 40%;
  animation:laa-att 9s ease-in-out infinite 1s;
}
.scn-lord-arranges-attendants .basin {
  position:absolute; bottom:30%; left:47%; width:6%; height:4%;
  background:radial-gradient(circle, #7a8a9a 0%, #4a5a6a 80%);
  border-radius:50%;
  box-shadow:0 0 10px rgba(255,255,255,.2);
  animation:laa-basin 10s ease-in-out infinite;
}
.scn-lord-arranges-attendants .flowers {
  position:absolute; bottom:33%; left:15%; width:3%; height:3%;
  background:radial-gradient(circle, #e0c0a0 0%, #b08060 80%);
  border-radius:50%;
  filter:blur(2px);
  animation:laa-flowers 6s ease-in-out infinite alternate;
}
.scn-lord-arranges-attendants .suit {
  position:absolute; bottom:30%; right:15%; width:5%; height:10%;
  background:linear-gradient(180deg, #8a7a6a 0%, #5a4a3a 100%);
  border-radius:10% 10% 20% 20%;
  box-shadow:0 4px 6px rgba(0,0,0,.3);
  animation:laa-suit 12s ease-in-out infinite;
}
@keyframes laa-att { 0% { transform:translateY(0) rotate(0deg) } 25% { transform:translateY(-2px) rotate(1deg) } 50% { transform:translateY(0) rotate(-1deg) } 75% { transform:translateY(-1px) rotate(0deg) } 100% { transform:translateY(0) rotate(0deg) } }
@keyframes laa-basin { 0% { transform:scale(1); opacity:.6 } 50% { transform:scale(1.05); opacity:.9 } 100% { transform:scale(1); opacity:.7 } }
@keyframes laa-flowers { 0% { opacity:.4; transform:translateY(0) } 50% { opacity:.8; transform:translateY(-3px) } 100% { opacity:.5; transform:translateY(0) } }
@keyframes laa-suit { 0%,100% { transform:rotate(0deg) } 50% { transform:rotate(2deg) } }

/* lord-encourages-players */
.scn-lord-encourages-players {
  background:
    linear-gradient(180deg, #4a3a2a 0%, #3a2a1a 40%, #2a1a0a 100%),
    radial-gradient(ellipse at 60% 30%, #6a5a4a 0%, transparent 60%);
}
.scn-lord-encourages-players .stage {
  position:absolute; bottom:0; left:10%; right:10%; height:45%;
  background:linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius:20% 20% 0 0 / 10% 10% 0 0;
  box-shadow:inset 0 10px 20px rgba(0,0,0,.5);
}
.scn-lord-encourages-players .curtain1 {
  position:absolute; top:0; left:0; width:50%; height:60%;
  background:linear-gradient(135deg, #8a2a2a 0%, #5a1a1a 60%, #3a0a0a 100%);
  clip-path:polygon(0 0, 100% 0, 80% 100%, 0 100%);
  animation:lep-curtain 15s ease-in-out infinite alternate;
}
.scn-lord-encourages-players .curtain2 {
  position:absolute; top:0; right:0; width:50%; height:60%;
  background:linear-gradient(225deg, #8a2a2a 0%, #5a1a1a 60%, #3a0a0a 100%);
  clip-path:polygon(0 0, 100% 0, 100% 100%, 20% 100%);
  animation:lep-curtain 15s ease-in-out infinite alternate 1s;
}
.scn-lord-encourages-players .lord {
  position:absolute; bottom:10%; left:5%; width:8%; height:35%;
  background:linear-gradient(135deg, #1a1208 0%, #0a0804 100%);
  border-radius:50% 50% 40% 40% / 60% 60% 40% 40%;
  animation:lep-lord 5s ease-in-out infinite;
}
.scn-lord-encourages-players .player1 {
  position:absolute; bottom:20%; left:38%; width:8%; height:30%;
  background:linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius:50% 50% 40% 40% / 40% 40% 20% 20%;
  animation:lep-player 6s ease-in-out infinite;
}
.scn-lord-encourages-players .player2 {
  position:absolute; bottom:20%; right:38%; width:8%; height:30%;
  background:linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius:50% 50% 40% 40% / 40% 40% 20% 20%;
  animation:lep-player 6s ease-in-out infinite 0.5s;
}
.scn-lord-encourages-players .spotlight {
  position:absolute; top:5%; left:35%; width:30%; height:30%;
  background:radial-gradient(ellipse at 50% 100%, rgba(255,240,200,0.4) 0%, transparent 100%);
  filter:blur(8px);
  animation:lep-spotlight 8s ease-in-out infinite alternate;
}
@keyframes lep-curtain { 0% { transform:translateX(0) } 50% { transform:translateX(4%) } 100% { transform:translateX(0) } }
@keyframes lep-lord { 0% { transform:rotate(0deg) translateX(0) } 25% { transform:rotate(-2deg) translateX(2px) } 50% { transform:rotate(1deg) translateX(0) } 75% { transform:rotate(-1deg) translateX(1px) } 100% { transform:rotate(0deg) translateX(0) } }
@keyframes lep-player { 0% { transform:translateY(0) rotate(0deg) } 25% { transform:translateY(-2px) rotate(2deg) } 50% { transform:translateY(0) rotate(-1deg) } 75% { transform:translateY(-1px) rotate(1deg) } 100% { transform:translateY(0) rotate(0deg) } }
@keyframes lep-spotlight { 0% { opacity:.3; transform:scale(1) } 50% { opacity:.6; transform:scale(1.1) } 100% { opacity:.4; transform:scale(.95) } }

/* Scene 1: tranio-accepts-disguise – calm, sunlit garden */
.scn-tranio-accepts-disguise {
  background:
    linear-gradient(180deg, #87CEEB 0%, #d4e9ff 30%, #f0e68c 70%, #cdaa7d 100%),
    radial-gradient(ellipse at 50% 100%, #f0d9b5 0%, transparent 60%);
}
.scn-tranio-accepts-disguise .sky-warm {
  position: absolute; inset: 0 0 45% 0;
  background: linear-gradient(180deg, #b0d4f1 0%, #ffeeba 100%);
  animation: sc1-sky 10s ease-in-out infinite alternate;
}
.scn-tranio-accepts-disguise .ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 45%;
  background: linear-gradient(180deg, #9e7c5c 0%, #7a5b3a 100%);
  border-radius: 30% 70% 0 0 / 40% 60% 0 0;
  box-shadow: inset 0 8px 20px rgba(0,0,0,0.3);
  animation: sc1-ground 20s ease-in-out infinite alternate;
}
.scn-tranio-accepts-disguise .building {
  position: absolute; bottom: 25%; left: 30%; width: 120px; height: 100px;
  background: linear-gradient(180deg, #d4b896 0%, #b08d6a 80%);
  border-radius: 6% 6% 0 0;
  box-shadow: 0 4px 12px rgba(0,0,0,0.3);
  animation: sc1-building 8s ease-in-out infinite;
}
.scn-tranio-accepts-disguise .figure-tranio {
  position: absolute; bottom: 24%; left: 35%; width: 22px; height: 42px;
  background: linear-gradient(180deg, #5e3a2a 0%, #2e1a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: sc1-figure 5s ease-in-out infinite;
}
.scn-tranio-accepts-disguise .figure-lucentio {
  position: absolute; bottom: 24%; left: 50%; width: 22px; height: 42px;
  background: linear-gradient(180deg, #6a4a3a 0%, #3a2a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: sc1-figure 5s ease-in-out infinite 1s reverse;
}
.scn-tranio-accepts-disguise .tree {
  position: absolute; bottom: 30%; right: 20%; width: 40px; height: 80px;
  background: linear-gradient(180deg, #5a7a3a 0%, #3a5a2a 100%);
  border-radius: 50% 50% 0 0;
  box-shadow: inset 0 4px 8px rgba(0,0,0,0.2);
  animation: sc1-tree 12s ease-in-out infinite alternate;
}
.scn-tranio-accepts-disguise .warm-haze {
  position: absolute; top: 10%; left: 0; right: 0; height: 30%;
  background: radial-gradient(ellipse at 30% 50%, rgba(255,235,180,0.3) 0%, transparent 80%);
  filter: blur(10px);
  animation: sc1-haze 25s linear infinite;
}
@keyframes sc1-sky { 0% { opacity: 0.8; } 50% { opacity: 1; } 100% { opacity: 0.75; } }
@keyframes sc1-ground { 0% { transform: translateY(0); } 50% { transform: translateY(-2px); } 100% { transform: translateY(0); } }
@keyframes sc1-building { 0%,100% { transform: translateY(0); } 50% { transform: translateY(-1px); } }
@keyframes sc1-figure { 0% { transform: translateX(0) rotate(0deg); } 30% { transform: translateX(4px) rotate(2deg); } 60% { transform: translateX(-2px) rotate(-1deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes sc1-tree { 0% { transform: rotate(-2deg); } 50% { transform: rotate(2deg); } 100% { transform: rotate(-1deg); } }
@keyframes sc1-haze { 0% { transform: translateX(-10%); } 50% { transform: translateX(10%); } 100% { transform: translateX(-10%); } }

/* Scene 2: lucentio-instructs-biondello – tense, sunlit alley */
.scn-lucentio-instructs-biondello {
  background:
    linear-gradient(90deg, #8b7355 0%, #b8a080 40%, #8b7355 100%),
    radial-gradient(ellipse at 50% 30%, #d4c4a0 0%, transparent 70%);
}
.scn-lucentio-instructs-biondello .wall-bg {
  position: absolute; inset: 0 0 20% 0;
  background: linear-gradient(180deg, #a08060 0%, #7a5a3a 100%);
  animation: sc2-wall 6s ease-in-out infinite alternate;
}
.scn-lucentio-instructs-biondello .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 20%;
  background: linear-gradient(180deg, #5a3a2a 0%, #3a1a0a 100%);
  box-shadow: inset 0 6px 16px rgba(0,0,0,0.5);
}
.scn-lucentio-instructs-biondello .window-slice {
  position: absolute; top: 10%; left: 20%; width: 60px; height: 90px;
  background: linear-gradient(135deg, #fff3d0 0%, #f0d080 100%);
  border-radius: 4% 4% 0 0;
  box-shadow: 0 0 30px 10px rgba(240,208,128,0.6);
  animation: sc2-window 3s ease-in-out infinite alternate;
}
.scn-lucentio-instructs-biondello .figure-lucentio2 {
  position: absolute; bottom: 12%; left: 40%; width: 24px; height: 46px;
  background: linear-gradient(180deg, #4a3a2a 0%, #1a1a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: sc2-figure 4s ease-in-out infinite;
}
.scn-lucentio-instructs-biondello .figure-biondello2 {
  position: absolute; bottom: 12%; left: 55%; width: 20px; height: 40px;
  background: linear-gradient(180deg, #6a4a3a 0%, #3a2a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: sc2-figure 4s ease-in-out infinite -1s reverse;
}
.scn-lucentio-instructs-biondello .shadow-pool {
  position: absolute; bottom: 8%; left: 35%; width: 80px; height: 10px;
  background: radial-gradient(ellipse, rgba(0,0,0,0.4) 0%, transparent 80%);
  filter: blur(4px);
  animation: sc2-shadow 7s ease-in-out infinite alternate;
}
.scn-lucentio-instructs-biondello .speck-dust {
  position: absolute; top: 30%; left: 10%; width: 4px; height: 4px;
  background: #e0d0a0;
  border-radius: 50%;
  filter: blur(1px);
  animation: sc2-dust 12s linear infinite;
}
@keyframes sc2-wall { 0% { opacity: 0.9; } 50% { opacity: 1; } 100% { opacity: 0.85; } }
@keyframes sc2-window { 0% { box-shadow: 0 0 20px 5px rgba(240,208,128,0.4); } 50% { box-shadow: 0 0 40px 15px rgba(240,208,128,0.8); } 100% { box-shadow: 0 0 25px 8px rgba(240,208,128,0.5); } }
@keyframes sc2-figure { 0% { transform: translateX(0) rotate(-1deg); } 40% { transform: translateX(3px) rotate(2deg) scale(1.02); } 70% { transform: translateX(-2px) rotate(-2deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes sc2-shadow { 0% { transform: scaleX(1); opacity: 0.6; } 50% { transform: scaleX(1.2); opacity: 0.8; } 100% { transform: scaleX(0.9); opacity: 0.5; } }
@keyframes sc2-dust { 0% { transform: translate(0,0) scale(1); opacity: 0.8; } 30% { transform: translate(10px,-5px) scale(1.5); opacity: 0.4; } 60% { transform: translate(5px,-2px) scale(0.8); opacity: 0.6; } 100% { transform: translate(-5px,0) scale(1); opacity: 0.3; } }

/* Scene 3: sly-reacts-to-play – amused, window-lit interior */
.scn-sly-reacts-to-play {
  background:
    linear-gradient(180deg, #2a1a0a 0%, #4a3a2a 40%, #6a5a4a 100%),
    radial-gradient(ellipse at 50% 20%, #c08040 0%, transparent 70%);
}
.scn-sly-reacts-to-play .stage-bg {
  position: absolute; inset: 10% 5% 20% 5%;
  background: linear-gradient(180deg, #8a6a4a 0%, #5a3a1a 100%);
  border-radius: 4% 4% 0 0;
  box-shadow: inset 0 8px 20px rgba(0,0,0,0.6);
  animation: sc3-bg 15s ease-in-out infinite alternate;
}
.scn-sly-reacts-to-play .stage-floor {
  position: absolute; bottom: 18%; left: 5%; right: 5%; height: 10%;
  background: linear-gradient(180deg, #7a5a3a 0%, #4a2a0a 100%);
  border-radius: 0 0 4% 4%;
}
.scn-sly-reacts-to-play .curtain-left {
  position: absolute; top: 5%; left: 5%; width: 30%; height: 80%;
  background: linear-gradient(135deg, #802020 0%, #a04020 40%, #602010 100%);
  border-radius: 0 40% 40% 0;
  clip-path: polygon(0 0, 100% 5%, 85% 50%, 100% 95%, 0 100%);
  animation: sc3-curtain 8s ease-in-out infinite alternate;
}
.scn-sly-reacts-to-play .curtain-right {
  position: absolute; top: 5%; right: 5%; width: 30%; height: 80%;
  background: linear-gradient(225deg, #802020 0%, #a04020 40%, #602010 100%);
  border-radius: 40% 0 0 40%;
  clip-path: polygon(0 5%, 100% 0, 100% 100%, 0 95%, 15% 50%);
  animation: sc3-curtain 8s ease-in-out infinite alternate 4s;
}
.scn-sly-reacts-to-play .light-window {
  position: absolute; top: 8%; left: 35%; width: 100px; height: 140px;
  background: linear-gradient(135deg, #ffe080 0%, #ffc040 60%, #b08020 100%);
  border-radius: 4% 4% 0 0;
  box-shadow: 0 0 50px 20px rgba(255,192,64,0.5);
  animation: sc3-light 5s ease-in-out infinite alternate;
}
.scn-sly-reacts-to-play .figure-sly {
  position: absolute; bottom: 15%; left: 40%; width: 30px; height: 50px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0a00 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: sc3-sly 6s ease-in-out infinite;
}
.scn-sly-reacts-to-play .armrest {
  position: absolute; bottom: 17%; left: 38%; width: 50px; height: 6px;
  background: linear-gradient(180deg, #5a3a2a 0%, #3a1a0a 100%);
  border-radius: 20% 20% 0 0;
  animation: sc3-armrest 10s ease-in-out infinite alternate;
}
@keyframes sc3-bg { 0% { opacity: 0.7; } 50% { opacity: 0.9; } 100% { opacity: 0.75; } }
@keyframes sc3-curtain { 0% { transform: translateX(0) skewX(0); } 50% { transform: translateX(2px) skewX(2deg); } 100% { transform: translateX(-1px) skewX(-1deg); } }
@keyframes sc3-light { 0% { opacity: 0.8; box-shadow: 0 0 30px 10px rgba(255,192,64,0.3); } 50% { opacity: 1; box-shadow: 0 0 60px 25px rgba(255,192,64,0.7); } 100% { opacity: 0.9; box-shadow: 0 0 40px 15px rgba(255,192,64,0.5); } }
@keyframes sc3-sly { 0% { transform: rotate(0deg) translateX(0); } 25% { transform: rotate(2deg) translateX(2px); } 50% { transform: rotate(-1deg) translateX(-1px); } 75% { transform: rotate(1deg) translateX(1px); } 100% { transform: rotate(0deg) translateX(0); } }
@keyframes sc3-armrest { 0% { transform: scaleX(1); } 50% { transform: scaleX(1.1); } 100% { transform: scaleX(0.95); } }

/* Scene 4: petruchio-and-grumio-quarrel – tense, sunlit street */
.scn-petruchio-and-grumio-quarrel {
  background:
    linear-gradient(180deg, #87CEEB 0%, #c0d6e4 30%, #d4b896 70%, #b08060 100%),
    radial-gradient(ellipse at 50% 20%, #fff3d0 0%, transparent 60%);
}
.scn-petruchio-and-grumio-quarrel .sky-harsh {
  position: absolute; inset: 0 0 50% 0;
  background: linear-gradient(180deg, #7ab0d0 0%, #d0d8e0 100%);
  animation: sc4-sky 8s ease-in-out infinite alternate;
}
.scn-petruchio-and-grumio-quarrel .ground-dry {
  position: absolute; bottom: 0; left: 0; right: 0; height: 50%;
  background: linear-gradient(180deg, #b09070 0%, #806040 100%);
  box-shadow: inset 0 8px 20px rgba(0,0,0,0.2);
  animation: sc4-ground 14s ease-in-out infinite alternate;
}
.scn-petruchio-and-grumio-quarrel .door-wood {
  position: absolute; bottom: 15%; left: 30%; width: 80px; height: 120px;
  background: linear-gradient(135deg, #6a4a2a 0%, #8a6a4a 30%, #5a3a1a 100%);
  border-radius: 4% 4% 0 0;
  box-shadow: 0 4px 12px rgba(0,0,0,0.5);
  animation: sc4-door 3s ease-in-out infinite;
}
.scn-petruchio-and-grumio-quarrel .figure-petruchio {
  position: absolute; bottom: 10%; left: 40%; width: 26px; height: 48px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0a00 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: sc4-figure 4s ease-in-out infinite;
}
.scn-petruchio-and-grumio-quarrel .figure-grumio {
  position: absolute; bottom: 12%; left: 55%; width: 20px; height: 38px;
  background: linear-gradient(180deg, #5a3a2a 0%, #2a1a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: sc4-figure 4s ease-in-out infinite -2s reverse;
}
.scn-petruchio-and-grumio-quarrel .dust-puff {
  position: absolute; bottom: 8%; left: 48%; width: 20px; height: 20px;
  background: radial-gradient(ellipse, #c0a080 0%, transparent 80%);
  filter: blur(3px);
  animation: sc4-dust 5s ease-out infinite;
}
.scn-petruchio-and-grumio-quarrel .crack {
  position: absolute; bottom: 10%; left: 25%; width: 30px; height: 2px;
  background: #3a2a1a;
  border-radius: 50%;
  filter: blur(1px);
  animation: sc4-crack 10s linear infinite;
}
@keyframes sc4-sky { 0% { opacity: 0.9; } 50% { opacity: 1; } 100% { opacity: 0.85; } }
@keyframes sc4-ground { 0% { transform: translateY(0); } 50% { transform: translateY(-3px); } 100% { transform: translateY(0); } }
@keyframes sc4-door { 0%,100% { transform: scaleX(1); } 30% { transform: scaleX(1.05) rotate(-1deg); } 60% { transform: scaleX(0.95) rotate(1deg); } }
@keyframes sc4-figure { 0% { transform: translateX(0) rotate(-2deg); } 30% { transform: translateX(6px) rotate(3deg) scale(1.02); } 60% { transform: translateX(-4px) rotate(-3deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes sc4-dust { 0% { transform: translateY(0) scale(0.5); opacity: 0.6; } 50% { transform: translateY(-10px) scale(1.5); opacity: 0.4; } 100% { transform: translateY(-20px) scale(2); opacity: 0; } }
@keyframes sc4-crack { 0% { transform: translateX(0) scaleX(1); } 50% { transform: translateX(5px) scaleX(1.3); } 100% { transform: translateX(-5px) scaleX(0.8); } }

.scn-hortensio-greets-petruchio {
  background:
    linear-gradient(180deg, #f9e7cf 0%, #d4b48c 40%, #a08060 100%),
    radial-gradient(ellipse at 60% 30%, rgba(255,235,180,0.6) 0%, transparent 60%);
}
.scn-hortensio-greets-petruchio .sky {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(180deg, #b8d4e8 0%, #a0c4d8 60%, #c8a878 100%);
  animation: hgp-sky 12s ease-in-out infinite alternate;
}
.scn-hortensio-greets-petruchio .arch {
  position: absolute; bottom: 20%; left: 25%; width: 50%; height: 50%;
  background: linear-gradient(135deg, #8a6a4a 0%, #6a4e34 100%);
  border-radius: 50% 50% 0 0 / 80% 80% 0 0;
  box-shadow: inset 0 -20px 30px rgba(0,0,0,0.3);
  animation: hgp-arch 9s ease-in-out infinite;
}
.scn-hortensio-greets-petruchio .wall {
  position: absolute; bottom: 0; left: 0; right: 0; height: 40%;
  background: linear-gradient(180deg, #b08a68 0%, #705034 100%);
  box-shadow: inset 0 10px 20px rgba(0,0,0,0.2);
}
.scn-hortensio-greets-petruchio .figure-left {
  position: absolute; bottom: 30%; left: 28%; width: 20px; height: 40px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0e08 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: hgp-figure-left 5s ease-in-out infinite;
}
.scn-hortensio-greets-petruchio .figure-right {
  position: absolute; bottom: 30%; right: 30%; width: 22px; height: 42px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a10 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: hgp-figure-right 5s ease-in-out infinite alternate;
}
.scn-hortensio-greets-petruchio .figure-ground {
  position: absolute; bottom: 25%; left: 35%; width: 16px; height: 28px;
  background: linear-gradient(180deg, #5a4a3a 0%, #2a1a10 100%);
  border-radius: 50% 50% 30% 30% / 70% 70% 30% 30%;
  animation: hgp-figure-ground 4s ease-in-out infinite;
}
.scn-hortensio-greets-petruchio .sun-glow {
  position: absolute; top: 15%; right: 20%; width: 60px; height: 60px;
  background: radial-gradient(circle, rgba(255,220,140,0.8) 0%, rgba(255,200,100,0.3) 50%, transparent 100%);
  border-radius: 50%;
  filter: blur(8px);
  animation: hgp-sun 6s ease-in-out infinite alternate;
}
.scn-hortensio-greets-petruchio .cloud {
  position: absolute; top: 12%; left: 10%; width: 80px; height: 20px;
  background: linear-gradient(180deg, rgba(255,255,255,0.6) 0%, rgba(255,255,255,0.1) 100%);
  border-radius: 50%;
  filter: blur(8px);
  animation: hgp-cloud 35s linear infinite;
}
@keyframes hgp-sky {
  0% { opacity: 0.8; }
  50% { opacity: 1; background-position: 0% 0%; }
  100% { opacity: 0.9; }
}
@keyframes hgp-arch {
  0% { transform: scaleY(1); }
  50% { transform: scaleY(1.02); }
  100% { transform: scaleY(1); }
}
@keyframes hgp-figure-left {
  0% { transform: translateX(0) translateY(0) rotate(-2deg); }
  25% { transform: translateX(4px) translateY(-1px) rotate(2deg); }
  50% { transform: translateX(8px) translateY(0) rotate(-1deg); }
  75% { transform: translateX(12px) translateY(-1px) rotate(3deg); }
  100% { transform: translateX(16px) translateY(0) rotate(0deg); }
}
@keyframes hgp-figure-right {
  0% { transform: translateX(0) translateY(0) rotate(2deg); }
  50% { transform: translateX(-4px) translateY(-2px) rotate(-2deg); }
  100% { transform: translateX(-8px) translateY(0) rotate(1deg); }
}
@keyframes hgp-figure-ground {
  0%, 100% { transform: rotate(-5deg) translateY(0); }
  50% { transform: rotate(5deg) translateY(-2px); }
}
@keyframes hgp-sun {
  0% { transform: scale(0.9); opacity: 0.7; }
  100% { transform: scale(1.1); opacity: 1; }
}
@keyframes hgp-cloud {
  0% { transform: translateX(-40px); }
  100% { transform: translateX(120vw); }
}

.scn-petruchio-explains-quest {
  background:
    linear-gradient(180deg, #e8d4b8 0%, #c4a880 40%, #8a6a50 100%),
    radial-gradient(ellipse at 30% 20%, rgba(255,240,200,0.5) 0%, transparent 60%);
}
.scn-petruchio-explains-quest .sky {
  position: absolute; inset: 0 0 50% 0;
  background: linear-gradient(180deg, #a0c4e0 0%, #c8e0f0 50%, #d4b88a 100%);
  animation: peq-sky 15s ease-in-out infinite alternate;
}
.scn-petruchio-explains-quest .hills {
  position: absolute; bottom: 30%; left: 0; right: 0; height: 25%;
  background: linear-gradient(180deg, #6a8a5a 0%, #4a6a3a 100%);
  border-radius: 60% 40% 0 0;
  box-shadow: inset 0 8px 20px rgba(0,0,0,0.3);
  animation: peq-hills 18s ease-in-out infinite alternate;
}
.scn-petruchio-explains-quest .path {
  position: absolute; bottom: 10%; left: 10%; width: 80%; height: 30%;
  background: linear-gradient(180deg, #b09878 0%, #7a5e3e 100%);
  clip-path: polygon(20% 0%, 80% 0%, 100% 100%, 0% 100%);
  border-radius: 20% 20% 0 0;
  animation: peq-path 8s ease-in-out infinite;
}
.scn-petruchio-explains-quest .gate {
  position: absolute; bottom: 20%; left: 38%; width: 24%; height: 40%;
  background: linear-gradient(90deg, #6a4a2a 0%, #8a6a4a 50%, #6a4a2a 100%);
  border-radius: 10% 10% 0 0;
  box-shadow: inset 0 8px 16px rgba(0,0,0,0.4);
  animation: peq-gate 12s ease-in-out infinite alternate;
}
.scn-petruchio-explains-quest .figure-main {
  position: absolute; bottom: 25%; left: 36%; width: 24px; height: 46px;
  background: linear-gradient(180deg, #2a1a0a 0%, #1a0a00 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: peq-figure-main 6s ease-in-out infinite;
}
.scn-petruchio-explains-quest .figure-second {
  position: absolute; bottom: 22%; right: 18%; width: 20px; height: 38px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a1008 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: peq-figure-second 8s ease-in-out infinite alternate;
}
.scn-petruchio-explains-quest .sun-beams {
  position: absolute; top: 5%; left: 5%; width: 90%; height: 80%;
  background: linear-gradient(135deg, rgba(255,230,160,0.3) 0%, transparent 60%);
  clip-path: polygon(0% 0%, 100% 0%, 80% 100%, 20% 100%);
  animation: peq-beams 10s ease-in-out infinite alternate;
}
.scn-petruchio-explains-quest .bird {
  position: absolute; top: 15%; right: 30%; width: 12px; height: 8px;
  background: radial-gradient(circle, #2a2a2a 0%, transparent 100%);
  border-radius: 50%;
  animation: peq-bird 3s ease-in-out infinite;
}
@keyframes peq-sky { 0% { opacity: 0.85; } 50% { opacity: 1; } 100% { opacity: 0.9; } }
@keyframes peq-hills { 0% { transform: translateY(0) scaleX(1); } 50% { transform: translateY(-4px) scaleX(1.02); } 100% { transform: translateY(0) scaleX(1); } }
@keyframes peq-path { 0%, 100% { opacity: 0.9; } 50% { opacity: 1; } }
@keyframes peq-gate { 0% { transform: translateY(0); } 50% { transform: translateY(-2px); } 100% { transform: translateY(0); } }
@keyframes peq-figure-main { 0% { transform: translateX(0) rotate(-2deg); } 25% { transform: translateX(6px) rotate(2deg); } 50% { transform: translateX(12px) rotate(-1deg); } 75% { transform: translateX(18px) rotate(3deg); } 100% { transform: translateX(24px) rotate(0); } }
@keyframes peq-figure-second { 0% { transform: translateX(0) rotate(2deg); } 50% { transform: translateX(-4px) rotate(-2deg); } 100% { transform: translateX(0) rotate(1deg); } }
@keyframes peq-beams { 0% { opacity: 0.3; transform: rotate(-2deg); } 100% { opacity: 0.6; transform: rotate(2deg); } }
@keyframes peq-bird { 0%, 100% { transform: translateY(0) scaleY(1); } 50% { transform: translateY(-4px) scaleY(1.2); } }

.scn-hortensio-offers-kate {
  background:
    linear-gradient(180deg, #f2d8b0 0%, #c8a878 50%, #9a7a5a 100%),
    radial-gradient(ellipse at 70% 30%, rgba(255,210,130,0.7) 0%, transparent 60%);
}
.scn-hortensio-offers-kate .sky {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(180deg, #b8cce0 0%, #d4e0f0 40%, #f0d8b0 100%);
  animation: hok-sky 10s ease-in-out infinite alternate;
}
.scn-hortensio-offers-kate .ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 45%;
  background: linear-gradient(180deg, #8a7a5a 0%, #5a4a2a 100%);
  border-radius: 20% 20% 0 0;
}
.scn-hortensio-offers-kate .shadow-line {
  position: absolute; bottom: 30%; left: 10%; width: 80%; height: 15%;
  background: linear-gradient(135deg, rgba(0,0,0,0.3) 0%, transparent 100%);
  clip-path: polygon(0% 0%, 100% 0%, 90% 100%, 10% 100%);
  animation: hok-shadow 6s ease-in-out infinite alternate;
}
.scn-hortensio-offers-kate .figure-petruchio {
  position: absolute; bottom: 28%; left: 35%; width: 22px; height: 44px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0e08 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: hok-fig-p 5s ease-in-out infinite;
}
.scn-hortensio-offers-kate .figure-hortensio {
  position: absolute; bottom: 30%; right: 30%; width: 20px; height: 40px;
  background: linear-gradient(180deg, #4a3828 0%, #2a1a0e 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: hok-fig-h 5s ease-in-out infinite alternate;
}
.scn-hortensio-offers-kate .tree {
  position: absolute; bottom: 30%; left: 8%; width: 30px; height: 80px;
  background: linear-gradient(180deg, #5a3a1a 0%, #3a1a0a 100%);
  border-radius: 20% 20% 10% 10%;
  box-shadow: 0 4px 8px rgba(0,0,0,0.3);
  animation: hok-tree 12s ease-in-out infinite;
}
.scn-hortensio-offers-kate .sun-burst {
  position: absolute; top: 5%; left: 50%; transform: translateX(-50%);
  width: 80px; height: 80px;
  background: radial-gradient(circle, rgba(255,230,150,0.9) 0%, rgba(255,200,100,0.3) 40%, transparent 70%);
  border-radius: 50%;
  filter: blur(10px);
  animation: hok-sun 4s ease-in-out infinite alternate;
}
@keyframes hok-sky { 0% { opacity: 0.8; } 50% { opacity: 1; } 100% { opacity: 0.85; } }
@keyframes hok-shadow { 0% { opacity: 0.5; transform: skewX(-5deg); } 50% { opacity: 0.7; transform: skewX(5deg); } 100% { opacity: 0.5; transform: skewX(-5deg); } }
@keyframes hok-fig-p { 0% { transform: translateX(0) rotate(-3deg); } 25% { transform: translateX(8px) rotate(3deg); } 50% { transform: translateX(16px) rotate(-2deg); } 75% { transform: translateX(24px) rotate(4deg); } 100% { transform: translateX(32px) rotate(0); } }
@keyframes hok-fig-h { 0% { transform: translateX(0) rotate(3deg); } 50% { transform: translateX(-6px) rotate(-3deg); } 100% { transform: translateX(-12px) rotate(2deg); } }
@keyframes hok-tree { 0%, 100% { transform: rotate(0deg); } 50% { transform: rotate(2deg); } }
@keyframes hok-sun { 0% { transform: translateX(-50%) scale(0.9); opacity: 0.7; } 100% { transform: translateX(-50%) scale(1.15); opacity: 1; } }

.scn-grumio-comments-on-wealth {
  background:
    linear-gradient(180deg, #fce8c8 0%, #e8c890 50%, #b89868 100%),
    radial-gradient(ellipse at 40% 20%, rgba(255,245,180,0.6) 0%, transparent 70%);
}
.scn-grumio-comments-on-wealth .sky {
  position: absolute; inset: 0 0 50% 0;
  background: linear-gradient(180deg, #a8d0e8 0%, #c0e0f0 40%, #f0d8a8 100%);
  animation: gcw-sky 12s ease-in-out infinite alternate;
}
.scn-grumio-comments-on-wealth .ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 50%;
  background: linear-gradient(180deg, #b0a080 0%, #7a6040 100%);
  border-radius: 30% 30% 0 0;
}
.scn-grumio-comments-on-wealth .figure-grumio {
  position: absolute; bottom: 28%; left: 15%; width: 24px; height: 48px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: gcw-grumio 3s ease-in-out infinite;
}
.scn-grumio-comments-on-wealth .figure-petruchio {
  position: absolute; bottom: 30%; right: 20%; width: 22px; height: 44px;
  background: linear-gradient(180deg, #3a2818 0%, #1a0e08 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: gcw-petruchio 4s ease-in-out infinite alternate;
}
.scn-grumio-comments-on-wealth .money-bag {
  position: absolute; bottom: 35%; left: 30%; width: 20px; height: 24px;
  background: radial-gradient(circle at 50% 40%, #d4a04a 0%, #b08030 60%, #8a6020 100%);
  border-radius: 50% 50% 40% 40%;
  box-shadow: 0 4px 8px rgba(0,0,0,0.3);
  animation: gcw-money 2s ease-in-out infinite;
}
.scn-grumio-comments-on-wealth .puppet {
  position: absolute; bottom: 32%; left: 22%; width: 10px; height: 30px;
  background: linear-gradient(180deg, #d07050 0%, #a05030 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%;
  animation: gcw-puppet 1.5s ease-in-out infinite alternate;
}
.scn-grumio-comments-on-wealth .sun-sparkle {
  position: absolute; top: 10%; left: 60%; width: 40px; height: 40px;
  background: radial-gradient(circle, rgba(255,250,200,0.8) 0%, transparent 100%);
  border-radius: 50%;
  filter: blur(6px);
  animation: gcw-sparkle 3s ease-in-out infinite alternate;
}
.scn-grumio-comments-on-wealth .coin {
  position: absolute; bottom: 30%; left: 40%; width: 10px; height: 10px;
  background: radial-gradient(circle at 30% 30%, #f0d060 0%, #c8a040 100%);
  border-radius: 50%;
  box-shadow: 0 2px 4px rgba(0,0,0,0.2);
  animation: gcw-coin 2s ease-in-out infinite;
}
@keyframes gcw-sky { 0% { opacity: 0.8; } 50% { opacity: 1; } 100% { opacity: 0.9; } }
@keyframes gcw-grumio { 0% { transform: translateX(0) rotate(-5deg); } 25% { transform: translateX(8px) rotate(5deg); } 50% { transform: translateX(16px) rotate(-3deg); } 75% { transform: translateX(24px) rotate(7deg); } 100% { transform: translateX(32px) rotate(0); } }
@keyframes gcw-petruchio { 0% { transform: rotate(2deg); } 100% { transform: rotate(-2deg); } }
@keyframes gcw-money { 0%, 100% { transform: translateY(0) scale(1); } 50% { transform: translateY(-4px) scale(1.1); } }
@keyframes gcw-puppet { 0% { transform: rotate(-10deg); } 100% { transform: rotate(10deg); } }
@keyframes gcw-sparkle { 0% { transform: scale(0.8); opacity: 0.5; } 100% { transform: scale(1.3); opacity: 1; } }
@keyframes gcw-coin { 0%, 100% { transform: rotate(0deg) translateY(0); } 50% { transform: rotate(180deg) translateY(-6px); } }

/* Scene: kate-interrogates-bianca (tense, window-lit) */
.scn-kate-interrogates-bianca {
  background:
    linear-gradient(180deg, #c4d4e0 0%, #8fa8b8 40%, #5a6a7a 100%),
    radial-gradient(ellipse at 30% 60%, #e0f0ff 0%, transparent 60%);
}
.scn-kate-interrogates-bianca .window {
  position:absolute; top:15%; left:10%; width:30%; height:50%;
  background: radial-gradient(ellipse at 50% 50%, #f0f8ff 0%, #a0c0d0 100%);
  box-shadow: 0 0 30px 10px rgba(200,220,240,0.6);
  border-radius: 4% 4% 0 0; animation: kt1-window 6s ease-in-out infinite alternate;
}
.scn-kate-interrogates-bianca .wall-back {
  position:absolute; inset:0 0 30% 0;
  background: linear-gradient(180deg, #6a7a8a 0%, #3a4a5a 100%);
}
.scn-kate-interrogates-bianca .floor {
  position:absolute; bottom:0; left:0; right:0; height:30%;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
}
.scn-kate-interrogates-bianca .kate {
  position:absolute; bottom:30%; left:20%; width:12%; height:45%;
  background: linear-gradient(180deg, #4a3a4a 0%, #2a1a2a 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: kt1-kate 4s ease-in-out infinite;
}
.scn-kate-interrogates-bianca .bianca {
  position:absolute; bottom:30%; left:55%; width:10%; height:30%;
  background: linear-gradient(180deg, #5a4a5a 0%, #3a2a3a 100%);
  border-radius: 50% 50% 40% 40% / 70% 70% 30% 30%;
  transform-origin: bottom center;
  animation: kt1-bianca 3.5s ease-in-out infinite alternate;
}
.scn-kate-interrogates-bianca .shadow-kate {
  position:absolute; bottom:30%; left:15%; width:18%; height:8%;
  background: rgba(0,0,0,0.3); border-radius: 50%; filter: blur(6px);
  animation: kt1-shadow 4s ease-in-out infinite;
}
.scn-kate-interrogates-bianca .shadow-bianca {
  position:absolute; bottom:30%; left:52%; width:15%; height:6%;
  background: rgba(0,0,0,0.25); border-radius: 50%; filter: blur(5px);
  animation: kt1-shadow2 3.5s ease-in-out infinite alternate;
}
.scn-kate-interrogates-bianca .light-ray {
  position:absolute; top:18%; left:12%; width:25%; height:70%;
  background: linear-gradient(135deg, rgba(240,248,255,0.3) 0%, transparent 100%);
  clip-path: polygon(0 0, 100% 0, 70% 100%, 20% 100%);
  animation: kt1-light 7s ease-in-out infinite alternate;
}
.scn-kate-interrogates-bianca .dust {
  position:absolute; top:20%; left:15%; width:4px; height:4px;
  background: rgba(255,255,240,0.6); border-radius: 50%;
  box-shadow: 10px 20px 8px rgba(255,255,240,0.4), 30px 50px 12px rgba(255,255,240,0.3), 50px 80px 16px rgba(255,255,240,0.2);
  animation: kt1-dust 12s linear infinite;
}
@keyframes kt1-window { 0% { opacity:0.8; transform:scale(1) } 50% { opacity:1; transform:scale(1.05) } 100% { opacity:0.85; transform:scale(0.98) } }
@keyframes kt1-kate { 0% { transform: rotate(-2deg) } 30% { transform: rotate(1deg) } 60% { transform: rotate(-1deg) } 100% { transform: rotate(2deg) } }
@keyframes kt1-bianca { 0% { transform: scaleY(1) translateY(0) } 50% { transform: scaleY(0.98) translateY(2px) } 100% { transform: scaleY(1.02) translateY(-1px) } }
@keyframes kt1-shadow { 0% { transform: scaleX(1) } 50% { transform: scaleX(0.95) } 100% { transform: scaleX(1.05) } }
@keyframes kt1-shadow2 { 0% { transform: scaleX(0.9) } 50% { transform: scaleX(1.1) } 100% { transform: scaleX(0.95) } }
@keyframes kt1-light { 0% { opacity:0.4; clip-path: polygon(0 0, 100% 0, 70% 100%, 20% 100%) } 50% { opacity:0.7; clip-path: polygon(0 0, 100% 0, 80% 100%, 10% 100%) } 100% { opacity:0.5; clip-path: polygon(0 0, 100% 0, 60% 100%, 30% 100%) } }
@keyframes kt1-dust { 0% { transform: translate(0,0) scale(1) } 25% { transform: translate(15px,-10px) scale(1.2) } 50% { transform: translate(30px,5px) scale(0.8) } 75% { transform: translate(45px,-15px) scale(1.1) } 100% { transform: translate(60px,0) scale(1) } }

/* Scene: kate-strikes-bianca (dark, window-lit) */
.scn-kate-strikes-bianca {
  background:
    linear-gradient(180deg, #1a1a2e 0%, #2a2a3e 30%, #0a0a1a 100%),
    radial-gradient(ellipse at 70% 40%, #3a4a5a 0%, transparent 70%);
}
.scn-kate-strikes-bianca .window {
  position:absolute; top:10%; right:15%; width:25%; height:45%;
  background: radial-gradient(ellipse at 50% 50%, #b0c0d0 0%, #607080 100%);
  box-shadow: 0 0 40px 15px rgba(160,180,200,0.5);
  border-radius: 4% 4% 0 0; animation: kt2-window 5s ease-in-out infinite alternate;
}
.scn-kate-strikes-bianca .wall-dark {
  position:absolute; inset:0 0 25% 0;
  background: linear-gradient(180deg, #1a1a2e 0%, #0a0a1a 100%);
}
.scn-kate-strikes-bianca .floor-dark {
  position:absolute; bottom:0; left:0; right:0; height:25%;
  background: linear-gradient(180deg, #2a1a1a 0%, #0a0a0a 100%);
}
.scn-kate-strikes-bianca .kate-arm {
  position:absolute; bottom:25%; left:30%; width:10%; height:40%;
  background: linear-gradient(180deg, #3a2a3a 0%, #1a0a1a 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 30% 30%;
  transform-origin: bottom left;
  animation: kt2-kate-arm 3s ease-in-out infinite;
}
.scn-kate-strikes-bianca .bianca-falling {
  position:absolute; bottom:25%; left:50%; width:8%; height:25%;
  background: linear-gradient(180deg, #4a3a4a 0%, #2a1a2a 100%);
  border-radius: 50% 50% 40% 40% / 70% 70% 30% 30%;
  transform-origin: bottom center;
  animation: kt2-bianca 3.2s ease-in-out infinite alternate;
}
.scn-kate-strikes-bianca .chair {
  position:absolute; bottom:22%; left:48%; width:15%; height:18%;
  background: linear-gradient(180deg, #5a3a2a 0%, #2a1a0a 100%);
  border-radius: 5% 5% 10% 10%;
  animation: kt2-chair 4s ease-in-out infinite;
}
.scn-kate-strikes-bianca .shadow-chair {
  position:absolute; bottom:22%; left:46%; width:18%; height:6%;
  background: rgba(0,0,0,0.4); border-radius: 50%; filter: blur(5px);
  animation: kt2-shadow 4s ease-in-out infinite;
}
.scn-kate-strikes-bianca .light-shaft {
  position:absolute; top:12%; right:18%; width:20%; height:80%;
  background: linear-gradient(135deg, rgba(176,192,208,0.2) 0%, transparent 100%);
  clip-path: polygon(0 0, 100% 0, 70% 100%, 10% 100%);
  animation: kt2-shaft 8s ease-in-out infinite alternate;
}
@keyframes kt2-window { 0% { opacity:0.7; filter:brightness(0.9) } 50% { opacity:1; filter:brightness(1.1) } 100% { opacity:0.8; filter:brightness(0.95) } }
@keyframes kt2-kate-arm { 0% { transform: rotate(-10deg) translateY(0) } 30% { transform: rotate(15deg) translateY(-5px) } 60% { transform: rotate(0deg) translateY(0) } 100% { transform: rotate(-5deg) translateY(2px) } }
@keyframes kt2-bianca { 0% { transform: rotate(0) scaleY(1) } 30% { transform: rotate(-20deg) scaleY(0.8) translateX(10px) } 60% { transform: rotate(5deg) scaleY(1.05) } 100% { transform: rotate(0) scaleY(1) } }
@keyframes kt2-chair { 0%,100% { transform: translateY(0) rotate(0) } 50% { transform: translateY(-3px) rotate(2deg) } }
@keyframes kt2-shadow { 0%,100% { transform: scaleX(1) } 50% { transform: scaleX(0.9) } }
@keyframes kt2-shaft { 0% { opacity:0.3; clip-path: polygon(0 0, 100% 0, 70% 100%, 10% 100%) } 50% { opacity:0.6; clip-path: polygon(0 0, 100% 0, 80% 100%, 5% 100%) } 100% { opacity:0.4; clip-path: polygon(0 0, 100% 0, 60% 100%, 20% 100%) } }

/* Scene: baptista-bereft (dark, window-lit, wide) */
.scn-baptista-bereft {
  background:
    linear-gradient(180deg, #1f2833 0%, #2a3a4a 50%, #0a1a2a 100%),
    radial-gradient(ellipse at 50% 30%, #3a4a5a 0%, transparent 70%);
}
.scn-baptista-bereft .door {
  position:absolute; top:10%; left:35%; width:30%; height:60%;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0a00 100%);
  border-radius: 8% 8% 0 0; border: 4px solid #2a1a0a;
  box-shadow: 0 0 30px 5px rgba(0,0,0,0.5);
  animation: kt3-door 6s ease-in-out infinite alternate;
}
.scn-baptista-bereft .floor-wide {
  position:absolute; bottom:0; left:0; right:0; height:30%;
  background: linear-gradient(180deg, #2a3a2a 0%, #0a1a0a 100%);
}
.scn-baptista-bereft .wall {
  position:absolute; inset:0 0 30% 0;
  background: linear-gradient(180deg, #2a3a3a 0%, #1a2a2a 100%);
}
.scn-baptista-bereft .baptista {
  position:absolute; bottom:30%; left:38%; width:10%; height:35%;
  background: linear-gradient(180deg, #4a3a3a 0%, #2a1a1a 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: kt3-baptista 4s ease-in-out infinite;
}
.scn-baptista-bereft .gremio {
  position:absolute; bottom:30%; left:20%; width:8%; height:30%;
  background: linear-gradient(180deg, #3a4a3a 0%, #1a2a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 30% 30%;
  animation: kt3-gremio 5s ease-in-out infinite alternate;
}
.scn-baptista-bereft .lucentio {
  position:absolute; bottom:30%; left:55%; width:7%; height:28%;
  background: linear-gradient(180deg, #4a4a3a 0%, #2a2a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 30% 30%;
  animation: kt3-lucentio 4.5s ease-in-out infinite alternate;
}
.scn-baptista-bereft .petruchio {
  position:absolute; bottom:30%; left:65%; width:9%; height:32%;
  background: linear-gradient(180deg, #3a4a4a 0%, #1a2a2a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 30% 30%;
  animation: kt3-petruchio 5.5s ease-in-out infinite;
}
.scn-baptista-bereft .hortensio {
  position:absolute; bottom:30%; left:75%; width:6%; height:26%;
  background: linear-gradient(180deg, #4a3a4a 0%, #2a1a2a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 30% 30%;
  animation: kt3-hortensio 4s ease-in-out infinite alternate;
}
.scn-baptista-bereft .transio {
  position:absolute; bottom:30%; left:12%; width:7%; height:27%;
  background: linear-gradient(180deg, #3a3a4a 0%, #1a1a2a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 30% 30%;
  animation: kt3-transio 6s ease-in-out infinite;
}
@keyframes kt3-door { 0% { transform: scaleX(1) } 50% { transform: scaleX(1.03) } 100% { transform: scaleX(0.98) } }
@keyframes kt3-baptista { 0% { transform: translateY(0) rotate(-1deg) } 30% { transform: translateY(-3px) rotate(1deg) } 60% { transform: translateY(0) rotate(0) } 100% { transform: translateY(2px) rotate(-1deg) } }
@keyframes kt3-gremio { 0% { transform: scaleY(1) } 50% { transform: scaleY(0.95) } 100% { transform: scaleY(1.05) } }
@keyframes kt3-lucentio { 0% { transform: translateX(0) } 50% { transform: translateX(5px) } 100% { transform: translateX(-3px) } }
@keyframes kt3-petruchio { 0% { transform: rotate(0) } 50% { transform: rotate(2deg) } 100% { transform: rotate(-1deg) } }
@keyframes kt3-hortensio { 0% { transform: translateY(0) } 50% { transform: translateY(-4px) } 100% { transform: translateY(2px) } }
@keyframes kt3-transio { 0% { transform: scaleX(1) } 50% { transform: scaleX(0.9) } 100% { transform: scaleX(1.1) } }

/* Scene: petruchio-presents-hortensio (calm, window-lit) */
.scn-petruchio-presents-hortensio {
  background:
    linear-gradient(180deg, #d4c4a0 0%, #b8a884 40%, #8a7a5a 100%),
    radial-gradient(ellipse at 60% 50%, #f0e0c0 0%, transparent 60%);
}
.scn-petruchio-presents-hortensio .window-warm {
  position:absolute; top:10%; left:8%; width:30%; height:55%;
  background: radial-gradient(ellipse at 50% 50%, #ffe8c8 0%, #c0a880 100%);
  box-shadow: 0 0 40px 15px rgba(200,180,140,0.5);
  border-radius: 4% 4% 0 0; animation: kt4-window 8s ease-in-out infinite alternate;
}
.scn-petruchio-presents-hortensio .wall-warm {
  position:absolute; inset:0 0 25% 0;
  background: linear-gradient(180deg, #c0b098 0%, #908070 100%);
}
.scn-petruchio-presents-hortensio .floor-warm {
  position:absolute; bottom:0; left:0; right:0; height:25%;
  background: linear-gradient(180deg, #6a5a4a 0%, #3a2a1a 100%);
}
.scn-petruchio-presents-hortensio .petruchio-gesture {
  position:absolute; bottom:25%; left:25%; width:12%; height:40%;
  background: linear-gradient(180deg, #6a5a4a 0%, #3a2a1a 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 30% 30%;
  transform-origin: bottom right;
  animation: kt4-petruchio 5s ease-in-out infinite;
}
.scn-petruchio-presents-hortensio .hortensio-bow {
  position:absolute; bottom:25%; left:50%; width:9%; height:30%;
  background: linear-gradient(180deg, #5a4a3a 0%, #2a1a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: kt4-hortensio 4.5s ease-in-out infinite alternate;
}
.scn-petruchio-presents-hortensio .lute {
  position:absolute; bottom:30%; left:42%; width:6%; height:20%;
  background: linear-gradient(180deg, #8a6a4a 0%, #4a2a0a 100%);
  border-radius: 50% 50% 40% 40% / 30% 30% 70% 70%;
  transform: rotate(-15deg);
  animation: kt4-lute 6s ease-in-out infinite;
}
.scn-petruchio-presents-hortensio .music-stand {
  position:absolute; bottom:25%; left:60%; width:8%; height:22%;
  background: linear-gradient(180deg, #7a5a3a 0%, #3a2a0a 100%);
  border-radius: 4% 4% 10% 10%;
  animation: kt4-stand 5.5s ease-in-out infinite alternate;
}
.scn-petruchio-presents-hortensio .shadow-figures {
  position:absolute; bottom:25%; left:20%; width:45%; height:6%;
  background: rgba(0,0,0,0.2); border-radius: 50%; filter: blur(8px);
  animation: kt4-shadow 5s ease-in-out infinite;
}
@keyframes kt4-window { 0% { opacity:0.85; filter:brightness(0.95) } 50% { opacity:1; filter:brightness(1.05) } 100% { opacity:0.9; filter:brightness(0.9) } }
@keyframes kt4-petruchio { 0% { transform: rotate(-5deg) translateX(0) } 30% { transform: rotate(3deg) translateX(8px) } 60% { transform: rotate(-2deg) translateX(4px) } 100% { transform: rotate(0) translateX(0) } }
@keyframes kt4-hortensio { 0% { transform: rotate(0) scaleY(1) } 50% { transform: rotate(10deg) scaleY(0.9) } 100% { transform: rotate(-5deg) scaleY(1.05) } }
@keyframes kt4-lute { 0% { transform: rotate(-15deg) scale(1) } 50% { transform: rotate(-10deg) scale(1.05) } 100% { transform: rotate(-20deg) scale(0.98) } }
@keyframes kt4-stand { 0% { transform: scaleY(1) } 50% { transform: scaleY(0.96) } 100% { transform: scaleY(1.02) } }
@keyframes kt4-shadow { 0% { transform: scaleX(1) opacity(0.2) } 50% { transform: scaleX(1.1) opacity(0.3) } 100% { transform: scaleX(0.9) opacity(0.2) } }

.scn-lords-explain-lunacy { background: linear-gradient(180deg, #2a1f1a 0%, #3d2a1e 30%, #5a3a28 60%, #7a5a3a 100%), radial-gradient(ellipse at 60% 30%, #b08050 0%, transparent 60%); }
.scn-lords-explain-lunacy .wall { position:absolute; inset:0; background: linear-gradient(180deg, #4a3528 0%, #3d2a1e 40%, #2a1f1a 100%); animation: lel-wallpulse 12s ease-in-out infinite alternate; }
.scn-lords-explain-lunacy .window-frame { position:absolute; top:10%; left:60%; width:140px; height:180px; background: linear-gradient(180deg, #6a5038 0%, #4a3528 100%); border-radius: 4px; box-shadow: inset 0 0 0 8px #5a4030, 0 8px 24px rgba(0,0,0,0.5); animation: lel-frame 8s ease-in-out infinite alternate; }
.scn-lords-explain-lunacy .window-sky { position:absolute; top:13%; left:63%; width:110px; height:135px; background: linear-gradient(180deg, #a0c8d8 0%, #e8d8b0 50%, #c8a870 100%); border-radius: 2px; animation: lel-sky 10s ease-in-out infinite alternate; box-shadow: inset 0 0 30px rgba(255,200,120,0.3); }
.scn-lords-explain-lunacy .shadows { position:absolute; bottom:0; left:0; right:0; height:60%; background: linear-gradient(180deg, transparent 0%, rgba(20,12,8,0.6) 40%, rgba(20,12,8,0.8) 100%); animation: lel-shadowdrift 15s ease-in-out infinite alternate; }
.scn-lords-explain-lunacy .figure-lord { position:absolute; bottom:18%; left:20%; width:40px; height:80px; background: linear-gradient(180deg, #3a2a1e 0%, #1a120c 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: lel-bow 6s ease-in-out infinite; }
.scn-lords-explain-lunacy .figure-lady { position:absolute; bottom:20%; left:35%; width:34px; height:60px; background: linear-gradient(180deg, #5a4030 0%, #2a1f1a 100%); border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%; animation: lel-weep 7s ease-in-out infinite; }
.scn-lords-explain-lunacy .dust-motes { position:absolute; inset:0; background: radial-gradient(circle at 70% 30%, rgba(255,220,160,0.15) 0%, transparent 50%), radial-gradient(circle at 50% 60%, rgba(255,200,120,0.1) 0%, transparent 40%); animation: lel-dust 20s linear infinite; }
.scn-lords-explain-lunacy .candle { position:absolute; bottom:22%; left:50%; width:8px; height:20px; background: linear-gradient(180deg, #e8c088 0%, #8a6038 100%); border-radius: 40% 40% 20% 20%; box-shadow: 0 0 20px 6px rgba(232,192,136,0.6), 0 0 40px 12px rgba(232,192,136,0.3); animation: lel-candle 3s ease-in-out infinite alternate; }
@keyframes lel-wallpulse { 0% { opacity:0.9 } 50% { opacity:1 } 100% { opacity:0.85 } }
@keyframes lel-frame { 0% { transform:translateY(0) } 50% { transform:translateY(-4px) scale(1.01) } 100% { transform:translateY(0) } }
@keyframes lel-sky { 0% { opacity:0.7 } 50% { opacity:1 } 100% { opacity:0.8 } }
@keyframes lel-shadowdrift { 0% { opacity:0.5 } 50% { opacity:0.7 } 100% { opacity:0.6 } }
@keyframes lel-bow { 0% { transform:translateX(0) translateY(0) rotate(0deg) } 30% { transform:translateX(20px) translateY(-2px) rotate(5deg) } 60% { transform:translateX(10px) translateY(0) rotate(-3deg) } 100% { transform:translateX(0) translateY(0) rotate(0deg) } }
@keyframes lel-weep { 0% { transform:translateY(0) rotate(-2deg) } 50% { transform:translateY(-4px) rotate(2deg) scale(1.02) } 100% { transform:translateY(0) rotate(-1deg) } }
@keyframes lel-dust { 0% { transform:translate(0,0) } 25% { transform:translate(5px,-3px) } 50% { transform:translate(-3px,2px) } 75% { transform:translate(4px,-1px) } 100% { transform:translate(0,0) } }
@keyframes lel-candle { 0% { box-shadow:0 0 15px 4px rgba(232,192,136,0.5), 0 0 30px 8px rgba(232,192,136,0.2); transform:scaleY(1) } 50% { box-shadow:0 0 25px 8px rgba(232,192,136,0.7), 0 0 50px 16px rgba(232,192,136,0.4); transform:scaleY(1.05) } 100% { box-shadow:0 0 18px 5px rgba(232,192,136,0.55), 0 0 35px 10px rgba(232,192,136,0.25); transform:scaleY(0.98) } }

.scn-lord-offers-rides { background: linear-gradient(180deg, #4a7a8a 0%, #7aa8b8 30%, #c8d8c0 60%, #e0d8b0 100%), radial-gradient(ellipse at 50% 10%, #d0e8f0 0%, transparent 50%); }
.scn-lord-offers-rides .sky-wide { position:absolute; inset:0 0 45% 0; background: linear-gradient(180deg, #5a8a9a 0%, #a0c8d8 40%, #d0e0d8 100%); animation: lhr-sky 15s ease-in-out infinite alternate; }
.scn-lord-offers-rides .hills-far { position:absolute; bottom:35%; left:0; right:0; height:20%; background: linear-gradient(180deg, #7a9a7a 0%, #5a7a5a 100%); border-radius: 60% 40% 0 0 / 40% 60% 0 0; box-shadow: inset 0 4px 12px rgba(0,0,0,0.15); animation: lhr-hills-far 20s ease-in-out infinite alternate; }
.scn-lord-offers-rides .hills-near { position:absolute; bottom:25%; left:0; right:0; height:22%; background: linear-gradient(180deg, #8aaa6a 0%, #6a8a4a 100%); border-radius: 40% 60% 0 0 / 30% 50% 0 0; box-shadow: inset 0 6px 16px rgba(0,0,0,0.2); animation: lhr-hills-near 25s ease-in-out infinite alternate; }
.scn-lord-offers-rides .road { position:absolute; bottom:12%; left:10%; right:10%; height:15%; background: linear-gradient(180deg, #b8a880 0%, #9a8860 100%); border-radius: 30% 30% 0 0; box-shadow: inset 0 4px 12px rgba(0,0,0,0.2); animation: lhr-road 18s ease-in-out infinite alternate; }
.scn-lord-offers-rides .horse-main { position:absolute; bottom:18%; left:30%; width:60px; height:40px; background: linear-gradient(180deg, #8a6a4a 0%, #6a4a2a 100%); border-radius: 40% 60% 30% 30% / 50% 60% 30% 30%; box-shadow: 0 4px 8px rgba(0,0,0,0.3); animation: lhr-horse 3s ease-in-out infinite; }
.scn-lord-offers-rides .rider-main { position:absolute; bottom:32%; left:32%; width:24px; height:34px; background: linear-gradient(180deg, #5a3a2a 0%, #3a2212 100%); border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%; transform-origin: bottom center; animation: lhr-rider 3s ease-in-out infinite; }
.scn-lord-offers-rides .horse-second { position:absolute; bottom:16%; left:65%; width:50px; height:34px; background: linear-gradient(180deg, #6a5a4a 0%, #4a3a2a 100%); border-radius: 40% 60% 30% 30% / 50% 60% 30% 30%; box-shadow: 0 3px 6px rgba(0,0,0,0.25); animation: lhr-horse2 3.5s ease-in-out infinite 0.5s; }
.scn-lord-offers-rides .dust-clouds { position:absolute; bottom:10%; left:20%; right:20%; height:8%; background: radial-gradient(ellipse at 30% 50%, rgba(180,160,120,0.4) 0%, transparent 70%), radial-gradient(ellipse at 70% 50%, rgba(180,160,120,0.3) 0%, transparent 60%); animation: lhr-dust 6s ease-in-out infinite alternate; }
.scn-lord-offers-rides .gold-sparkles { position:absolute; inset:0; background: radial-gradient(circle at 40% 30%, rgba(255,215,0,0.2) 0%, transparent 30%), radial-gradient(circle at 70% 50%, rgba(255,215,0,0.15) 0%, transparent 25%), radial-gradient(circle at 20% 70%, rgba(255,215,0,0.1) 0%, transparent 20%); animation: lhr-sparkle 8s ease-in-out infinite alternate; }
@keyframes lhr-sky { 0% { opacity:0.8 } 50% { opacity:1 } 100% { opacity:0.9 } }
@keyframes lhr-hills-far { 0% { transform:translateY(0) scale(1) } 50% { transform:translateY(-2px) scale(1.01) } 100% { transform:translateY(0) scale(1) } }
@keyframes lhr-hills-near { 0% { transform:translateY(0) } 50% { transform:translateY(-3px) scale(1.005) } 100% { transform:translateY(1px) } }
@keyframes lhr-road { 0% { transform:scaleX(1) } 50% { transform:scaleX(1.02) } 100% { transform:scaleX(0.99) } }
@keyframes lhr-horse { 0% { transform:translateX(0) translateY(0) } 25% { transform:translateX(8px) translateY(-3px) } 50% { transform:translateX(16px) translateY(0) } 75% { transform:translateX(8px) translateY(-2px) } 100% { transform:translateX(0) translateY(0) } }
@keyframes lhr-rider { 0% { transform:translateX(0) translateY(0) rotate(-2deg) } 25% { transform:translateX(6px) translateY(-2px) rotate(3deg) } 50% { transform:translateX(12px) translateY(0) rotate(-2deg) } 75% { transform:translateX(6px) translateY(-1px) rotate(2deg) } 100% { transform:translateX(0) translateY(0) rotate(0deg) } }
@keyframes lhr-horse2 { 0% { transform:translateX(0) translateY(0) } 25% { transform:translateX(-6px) translateY(-2px) } 50% { transform:translateX(-12px) translateY(0) } 75% { transform:translateX(-6px) translateY(-1px) } 100% { transform:translateX(0) translateY(0) } }
@keyframes lhr-dust { 0% { opacity:0.3; transform:scaleY(1) } 50% { opacity:0.6; transform:scaleY(1.3) } 100% { opacity:0.4; transform:scaleY(1.1) } }
@keyframes lhr-sparkle { 0% { opacity:0.4 } 50% { opacity:0.8 } 100% { opacity:0.5 } }

.scn-lord-describes-paintings { background: linear-gradient(180deg, #2a1f1a 0%, #4a3528 30%, #6a5038 60%, #4a3528 100%), radial-gradient(ellipse at 50% 30%, #8a6a4a 0%, transparent 60%); }
.scn-lord-describes-paintings .gallery-wall { position:absolute; inset:0; background: linear-gradient(90deg, #3d2a1e 0%, #5a4030 30%, #6a5038 50%, #5a4030 70%, #3d2a1e 100%); animation: ldp-wall 20s ease-in-out infinite alternate; }
.scn-lord-describes-paintings .frame-large { position:absolute; top:12%; left:15%; width:200px; height:240px; background: linear-gradient(180deg, #6a4a2a 0%, #4a3020 40%, #3a2010 100%); border-radius: 4px; box-shadow: inset 0 0 0 10px #5a3a22, 0 8px 24px rgba(0,0,0,0.6); animation: ldp-frame-l 10s ease-in-out infinite alternate; }
.scn-lord-describes-paintings .painting-io { position:absolute; top:16%; left:19%; width:165px; height:175px; background: linear-gradient(180deg, #8a6a4a 0%, #5a7a5a 30%, #7a9a6a 60%, #c8a870 100%); border-radius: 2px; box-shadow: inset 0 0 40px rgba(0,0,0,0.3); animation: ldp-paint-io 12s ease-in-out infinite alternate; }
.scn-lord-describes-paintings .frame-small { position:absolute; top:22%; left:58%; width:140px; height:180px; background: linear-gradient(180deg, #7a5a3a 0%, #5a3a22 40%, #3a2010 100%); border-radius: 4px; box-shadow: inset 0 0 0 8px #6a4a2a, 0 6px 18px rgba(0,0,0,0.5); animation: ldp-frame-s 12s ease-in-out infinite alternate 2s; }
.scn-lord-describes-paintings .painting-daphne { position:absolute; top:26%; left:61%; width:115px; height:125px; background: linear-gradient(180deg, #4a7a5a 0%, #6a9a4a 30%, #8a6a3a 60%, #a08050 100%); border-radius: 2px; box-shadow: inset 0 0 30px rgba(0,0,0,0.25); animation: ldp-paint-daphne 14s ease-in-out infinite alternate 3s; }
.scn-lord-describes-paintings .viewer-shadow { position:absolute; bottom:10%; left:40%; width:80px; height:100px; background: linear-gradient(180deg, rgba(20,12,8,0.6) 0%, transparent 100%); border-radius: 50%; animation: ldp-viewer 8s ease-in-out infinite alternate; }
.scn-lord-describes-paintings .lamp-glow { position:absolute; top:10%; left:50%; width:12px; height:8px; background: radial-gradient(circle, #f0d8a0 0%, #d8b870 50%, transparent 100%); border-radius: 50%; box-shadow: 0 0 60px 20px rgba(240,216,160,0.4), 0 0 120px 40px rgba(240,216,160,0.2); animation: ldp-lamp 5s ease-in-out infinite alternate; }
.scn-lord-describes-paintings .curtain-left { position:absolute; top:0; left:0; width:12%; height:100%; background: linear-gradient(180deg, #5a3020 0%, #3a2010 40%, #2a1810 100%); border-radius: 0 20% 40% 0 / 0 10% 20% 0; box-shadow: inset -8px 0 16px rgba(0,0,0,0.4); animation: ldp-curtain-l 15s ease-in-out infinite alternate; }
.scn-lord-describes-paintings .curtain-right { position:absolute; top:0; right:0; width:12%; height:100%; background: linear-gradient(180deg, #5a3020 0%, #3a2010 40%, #2a1810 100%); border-radius: 20% 0 0 40% / 10% 0 0 20%; box-shadow: inset 8px 0 16px rgba(0,0,0,0.4); animation: ldp-curtain-r 15s ease-in-out infinite alternate 1s; }
@keyframes ldp-wall { 0% { opacity:0.9 } 50% { opacity:1 } 100% { opacity:0.85 } }
@keyframes ldp-frame-l { 0% { transform:translateY(0) scale(1) } 50% { transform:translateY(-3px) scale(1.01) } 100% { transform:translateY(0) scale(1) } }
@keyframes ldp-paint-io { 0% { opacity:0.85 } 50% { opacity:1 } 100% { opacity:0.9 } }
@keyframes ldp-frame-s { 0% { transform:translateY(0) } 50% { transform:translateY(-2px) scale(1.005) } 100% { transform:translateY(1px) } }
@keyframes ldp-paint-daphne { 0% { opacity:0.8 } 50% { opacity:1 } 100% { opacity:0.85 } }
@keyframes ldp-viewer { 0% { transform:translateX(0) translateY(0) scale(1) } 50% { transform:translateX(10px) translateY(-5px) scale(1.05) } 100% { transform:translateX(-5px) translateY(2px) scale(0.98) } }
@keyframes ldp-lamp { 0% { opacity:0.6; transform:scale(1) } 50% { opacity:1; transform:scale(1.2) } 100% { opacity:0.7; transform:scale(1.05) } }
@keyframes ldp-curtain-l { 0% { transform:translateX(0) } 50% { transform:translateX(-3px) } 100% { transform:translateX(0) } }
@keyframes ldp-curtain-r { 0% { transform:translateX(0) } 50% { transform:translateX(3px) } 100% { transform:translateX(0) } }

.scn-sly-accepts-lordship { background: linear-gradient(180deg, #1a1210 0%, #2a1f1a 30%, #3d2a1e 60%, #2a1f1a 100%), radial-gradient(ellipse at 40% 40%, #4a3528 0%, transparent 60%); }
.scn-sly-accepts-lordship .chamber-dark { position:absolute; inset:0; background: linear-gradient(180deg, #2a1f1a 0%, #1a1210 50%, #0a0808 100%); animation: la-dark 20s ease-in-out infinite alternate; }
.scn-sly-accepts-lordship .canopy { position:absolute; top:0; left:10%; right:10%; height:35%; background: linear-gradient(180deg, #5a4030 0%, #3d2a1e 60%, #2a1f1a 100%); border-radius: 30% 30% 0 0 / 50% 50% 0 0; box-shadow: inset 0 8px 24px rgba(0,0,0,0.5); animation: la-canopy 12s ease-in-out infinite alternate; }
.scn-sly-accepts-lordship .bed-curtains { position:absolute; top:15%; left:5%; right:5%; bottom:20%; background: linear-gradient(90deg, #4a3528 0%, transparent 20%, transparent 80%, #4a3528 100%); border-radius: 20px; box-shadow: inset 0 0 40px rgba(0,0,0,0.4); animation: la-curtains 15s ease-in-out infinite alternate; }
.scn-sly-accepts-lordship .figure-sly { position:absolute; bottom:18%; left:30%; width:44px; height:70px; background: linear-gradient(180deg, #5a4030 0%, #3a2a1e 50%, #1a120c 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: la-sly 6s ease-in-out infinite; }
.scn-sly-accepts-lordship .attendant-left { position:absolute; bottom:20%; left:12%; width:30px; height:55px; background: linear-gradient(180deg, #3d2a1e 0%, #2a1f1a 100%); border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%; animation: la-attend-l 8s ease-in-out infinite alternate; }
.scn-sly-accepts-lordship .attendant-right { position:absolute; bottom:20%; right:12%; width:30px; height:55px; background: linear-gradient(180deg, #3d2a1e 0%, #2a1f1a 100%); border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%; animation: la-attend-r 8s ease-in-out infinite alternate 2s; }
.scn-sly-accepts-lordship .lady-form { position:absolute; bottom:22%; left:55%; width:36px; height:50px; background: linear-gradient(180deg, #6a5040 0%, #4a3528 60%, #2a1f1a 100%); border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%; transform-origin: bottom center; animation: la-lady 7s ease-in-out infinite 3s; }
.scn-sly-accepts-lordship .glow-orb { position:absolute; top:30%; left:45%; width:20px; height:20px; background: radial-gradient(circle, #f0d8a0 0%, #d8b870 40%, transparent 100%); border-radius: 50%; box-shadow: 0 0 80px 30px rgba(240,216,160,0.3), 0 0 160px 60px rgba(240,216,160,0.15); animation: la-orb 8s ease-in-out infinite alternate; }
.scn-sly-accepts-lordship .dream-motes { position:absolute; inset:0; background: radial-gradient(circle at 30% 40%, rgba(240,216,160,0.08) 0%, transparent 30%), radial-gradient(circle at 70% 60%, rgba(240,216,160,0.05) 0%, transparent 25%), radial-gradient(circle at 50% 20%, rgba(240,216,160,0.06) 0%, transparent 35%); animation: la-motes 15s linear infinite; }
@keyframes la-dark { 0% { opacity:0.9 } 50% { opacity:1 } 100% { opacity:0.85 } }
@keyframes la-canopy { 0% { transform:translateY(0) } 50% { transform:translateY(-4px) scale(1.01) } 100% { transform:translateY(0) } }
@keyframes la-curtains { 0% { opacity:0.8 } 50% { opacity:1 } 100% { opacity:0.85 } }
@keyframes la-sly { 0% { transform:translateX(0) translateY(0) rotate(0deg) } 30% { transform:translateX(8px) translateY(-3px) rotate(5deg) } 60% { transform:translateX(4px) translateY(-1px) rotate(-2deg) } 100% { transform:translateX(0) translateY(0) rotate(0deg) } }
@keyframes la-attend-l { 0% { transform:translateY(0) rotate(-2deg) } 50% { transform:translateY(-3px) rotate(3deg) } 100% { transform:translateY(0) rotate(-1deg) } }
@keyframes la-attend-r { 0% { transform:translateY(0) rotate(2deg) } 50% { transform:translateY(-3px) rotate(-3deg) } 100% { transform:translateY(0) rotate(1deg) } }
@keyframes la-lady { 0% { transform:translateY(0) rotate(-1deg) } 40% { transform:translateY(-2px) rotate(2deg) scale(1.02) } 80% { transform:translateY(-1px) rotate(-2deg) } 100% { transform:translateY(0) rotate(0deg) } }
@keyframes la-orb { 0% { opacity:0.5; transform:scale(0.9) } 50% { opacity:1; transform:scale(1.2) } 100% { opacity:0.6; transform:scale(1) } }
@keyframes la-motes { 0% { transform:translate(0,0) } 25% { transform:translate(8px,-4px) } 50% { transform:translate(-5px,3px) } 75% { transform:translate(6px,-2px) } 100% { transform:translate(0,0) } }

.scn-gremio-mocks-scholarship {
  background: linear-gradient(180deg, #8fc0e0 0%, #f0d090 50%, #e0b070 100%), radial-gradient(ellipse at 70% 20%, #f9e6b0 0%, transparent 50%);
}
.scn-gremio-mocks-scholarship .sky {
  position: absolute; inset: 0 0 45% 0; background: linear-gradient(180deg, #b0d4f0 0%, #f0e0b0 100%); animation: gms-sky 8s ease-in-out infinite alternate;
}
.scn-gremio-mocks-scholarship .ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 45%; background: linear-gradient(180deg, #c0a070 0%, #806040 100%); border-radius: 30% 30% 0 0 / 20% 20% 0 0; box-shadow: inset 0 10px 20px rgba(0,0,0,0.2);
}
.scn-gremio-mocks-scholarship .sun {
  position: absolute; top: 10%; left: 75%; width: 60px; height: 60px; background: radial-gradient(circle, #ffe880 0%, #f0c050 50%, transparent 70%); border-radius: 50%; box-shadow: 0 0 40px 20px rgba(255,232,128,0.4); animation: gms-sun 6s ease-in-out infinite;
}
.scn-gremio-mocks-scholarship .scholar {
  position: absolute; bottom: 30%; left: 35%; width: 22px; height: 60px; background: linear-gradient(180deg, #5a4a3a 0%, #1a1a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: gms-scholar 4s ease-in-out infinite;
}
.scn-gremio-mocks-scholarship .gremio {
  position: absolute; bottom: 30%; left: 55%; width: 24px; height: 55px; background: linear-gradient(180deg, #8a6a4a 0%, #2a1a0a 100%); border-radius: 40% 50% 40% 40% / 50% 60% 40% 40%; transform-origin: bottom center; animation: gms-gremio 2s ease-in-out infinite;
}
.scn-gremio-mocks-scholarship .book {
  position: absolute; bottom: 38%; left: 37%; width: 10px; height: 14px; background: linear-gradient(135deg, #d0b080 0%, #a08050 100%); border-radius: 2px; box-shadow: 0 2px 4px rgba(0,0,0,0.3); animation: gms-book 3s ease-in-out infinite;
}
.scn-gremio-mocks-scholarship .cloud {
  position: absolute; top: 8%; left: 20%; width: 70px; height: 20px; background: linear-gradient(180deg, rgba(255,255,255,0.6) 0%, rgba(255,255,255,0.1) 100%); border-radius: 50%; filter: blur(6px); animation: gms-cloud 30s linear infinite;
}
@keyframes gms-sky { 0% { opacity:0.8 } 50% { opacity:1 } 100% { opacity:0.7 } }
@keyframes gms-sun { 0% { transform: scale(0.95) translateY(0) } 50% { transform: scale(1.05) translateY(-3px) } 100% { transform: scale(0.95) translateY(0) } }
@keyframes gms-scholar { 0% { transform: translateX(0) rotate(-2deg) } 25% { transform: translateX(2px) rotate(2deg) scaleY(0.98) } 50% { transform: translateX(0) rotate(-1deg) } 75% { transform: translateX(-2px) rotate(3deg) scaleY(1.02) } 100% { transform: translateX(0) rotate(-2deg) } }
@keyframes gms-gremio { 0% { transform: translateX(0) translateY(0) rotate(0deg) } 30% { transform: translateX(-3px) translateY(-2px) rotate(-5deg) } 60% { transform: translateX(2px) translateY(-1px) rotate(4deg) } 100% { transform: translateX(0) translateY(0) rotate(0deg) } }
@keyframes gms-book { 0% { transform: rotate(0deg) translateY(0) } 50% { transform: rotate(10deg) translateY(-1px) } 100% { transform: rotate(0deg) translateY(0) } }
@keyframes gms-cloud { 0% { transform: translateX(-30px) } 100% { transform: translateX(120vw) } }

.scn-rivals-realize-plan {
  background: linear-gradient(160deg, #6a7a90 0%, #b0c0d0 40%, #e8d8a0 100%), radial-gradient(ellipse at 80% 30%, #d0c090 0%, transparent 60%);
}
.scn-rivals-realize-plan .sky {
  position: absolute; inset: 0 0 50% 0; background: linear-gradient(180deg, #b0c8e0 0%, #f0e0b0 100%); animation: rrp-sky 12s ease-in-out infinite alternate;
}
.scn-rivals-realize-plan .ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 50%; background: linear-gradient(180deg, #806050 0%, #403020 100%); border-radius: 40% 20% 0 0 / 30% 10% 0 0; box-shadow: inset 0 12px 25px rgba(0,0,0,0.4);
}
.scn-rivals-realize-plan .rival-left {
  position: absolute; bottom: 28%; left: 28%; width: 30px; height: 65px; background: linear-gradient(180deg, #2a2a3a 0%, #0a0a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: rrp-left 0.8s ease-in-out infinite alternate;
}
.scn-rivals-realize-plan .rival-right {
  position: absolute; bottom: 28%; left: 58%; width: 30px; height: 65px; background: linear-gradient(180deg, #3a2a2a 0%, #1a0a0a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: rrp-right 0.7s ease-in-out infinite alternate;
}
.scn-rivals-realize-plan .plan {
  position: absolute; bottom: 38%; left: 48%; width: 20px; height: 16px; background: linear-gradient(135deg, #e0c080 0%, #a08050 100%); border-radius: 2px; box-shadow: 0 4px 8px rgba(0,0,0,0.5); animation: rrp-plan 1s ease-in-out infinite alternate;
}
.scn-rivals-realize-plan .shadow {
  position: absolute; bottom: 22%; left: 30%; width: 120px; height: 20px; background: rgba(0,0,0,0.2); border-radius: 50%; filter: blur(8px); animation: rrp-shadow 2s ease-in-out infinite alternate;
}
.scn-rivals-realize-plan .sunsharp {
  position: absolute; top: 12%; left: 70%; width: 50px; height: 50px; background: radial-gradient(circle, #fff0a0 0%, #e0c060 40%, transparent 70%); border-radius: 50%; box-shadow: 0 0 30px 10px rgba(255,240,160,0.5); animation: rrp-sunsharp 3s ease-in-out infinite;
}
@keyframes rrp-sky { 0% { opacity:0.7 } 50% { opacity:1 } 100% { opacity:0.8 } }
@keyframes rrp-left { 0% { transform: translateX(0) rotate(2deg) } 100% { transform: translateX(-2px) rotate(-2deg) scaleX(0.97) } }
@keyframes rrp-right { 0% { transform: translateX(0) rotate(-2deg) } 100% { transform: translateX(2px) rotate(2deg) scaleX(1.03) } }
@keyframes rrp-plan { 0% { transform: rotate(-8deg) translateY(0) } 100% { transform: rotate(8deg) translateY(-1px) } }
@keyframes rrp-shadow { 0% { transform: scaleX(0.9) scaleY(0.8) translateY(0) } 100% { transform: scaleX(1.1) scaleY(1.2) translateY(2px) } }
@keyframes rrp-sunsharp { 0% { transform: scale(0.95) } 50% { transform: scale(1.05) } 100% { transform: scale(0.95) } }

.scn-petruchio-agrees-to-woo {
  background: linear-gradient(180deg, #c06040 0%, #f0b080 30%, #f0d090 70%, #e8c080 100%), radial-gradient(ellipse at 50% 20%, #ffd090 0%, transparent 50%);
}
.scn-petruchio-agrees-to-woo .sky {
  position: absolute; inset: 0 0 40% 0; background: linear-gradient(180deg, #e8a070 0%, #f0d090 100%); animation: paw-sky 10s ease-in-out infinite alternate;
}
.scn-petruchio-agrees-to-woo .sun {
  position: absolute; top: 5%; left: 60%; width: 80px; height: 80px; background: radial-gradient(circle, #ffe090 0%, #f0a050 50%, transparent 70%); border-radius: 50%; box-shadow: 0 0 50px 30px rgba(255,224,144,0.5); animation: paw-sun 5s ease-in-out infinite;
}
.scn-petruchio-agrees-to-woo .ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 40%; background: linear-gradient(180deg, #b08050 0%, #603020 100%); border-radius: 20% 40% 0 0 / 30% 50% 0 0; box-shadow: inset 0 8px 20px rgba(0,0,0,0.4);
}
.scn-petruchio-agrees-to-woo .petruchio {
  position: absolute; bottom: 30%; left: 50%; width: 40px; height: 80px; transform: translateX(-50%); background: linear-gradient(180deg, #5a3a2a 0%, #1a0a0a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: paw-petruchio 6s ease-in-out infinite;
}
.scn-petruchio-agrees-to-woo .cape {
  position: absolute; bottom: 30%; left: 50%; width: 60px; height: 50px; transform: translateX(-50%) translateY(-10px); background: linear-gradient(180deg, #804030 0%, #402010 100%); border-radius: 50% 50% 0 0 / 100% 100% 0 0; clip-path: polygon(0% 0%, 100% 0%, 80% 100%, 20% 100%); transform-origin: top center; animation: paw-cape 4s ease-in-out infinite alternate;
}
.scn-petruchio-agrees-to-woo .shadow {
  position: absolute; bottom: 22%; left: 50%; width: 80px; height: 18px; transform: translateX(-50%); background: rgba(0,0,0,0.25); border-radius: 50%; filter: blur(8px); animation: paw-shadow 3s ease-in-out infinite alternate;
}
@keyframes paw-sky { 0% { opacity:0.8 } 50% { opacity:1 } 100% { opacity:0.7 } }
@keyframes paw-sun { 0% { transform: scale(0.95) translateY(0) } 50% { transform: scale(1.05) translateY(-4px) } 100% { transform: scale(0.95) translateY(0) } }
@keyframes paw-petruchio { 0% { transform: translateX(-50%) scaleY(1) } 50% { transform: translateX(-50%) scaleY(1.03) translateY(-2px) } 100% { transform: translateX(-50%) scaleY(1) } }
@keyframes paw-cape { 0% { transform: translateX(-50%) translateY(-10px) rotate(-3deg) } 50% { transform: translateX(-50%) translateY(-12px) rotate(0deg) } 100% { transform: translateX(-50%) translateY(-10px) rotate(3deg) } }
@keyframes paw-shadow { 0% { transform: translateX(-50%) scaleX(0.9) } 100% { transform: translateX(-50%) scaleX(1.1) } }

.scn-hortensio-encourages-plan {
  background: linear-gradient(180deg, #c8a070 0%, #e8c890 40%, #f0e0b0 100%), radial-gradient(ellipse at 50% 20%, #fff0c0 0%, transparent 60%);
}
.scn-hortensio-encourages-plan .sky {
  position: absolute; inset: 0 0 50% 0; background: linear-gradient(180deg, #dcc0a0 0%, #f0e0b0 100%); animation: hep-sky 14s ease-in-out infinite alternate;
}
.scn-hortensio-encourages-plan .ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 50%; background: linear-gradient(180deg, #b09060 0%, #705030 100%); border-radius: 50% 10% 0 0 / 40% 5% 0 0; box-shadow: inset 0 10px 25px rgba(0,0,0,0.3);
}
.scn-hortensio-encourages-plan .hortensio {
  position: absolute; bottom: 32%; left: 38%; width: 26px; height: 55px; background: linear-gradient(180deg, #6a4a3a 0%, #2a1a0a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: hep-hort 5s ease-in-out infinite;
}
.scn-hortensio-encourages-plan .companion1 {
  position: absolute; bottom: 32%; left: 50%; width: 24px; height: 50px; background: linear-gradient(180deg, #5a3a2a 0%, #1a0a0a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: hep-comp1 4s ease-in-out infinite alternate;
}
.scn-hortensio-encourages-plan .companion2 {
  position: absolute; bottom: 32%; left: 60%; width: 22px; height: 48px; background: linear-gradient(180deg, #4a2a1a 0%, #0a0000 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: hep-comp2 4.5s ease-in-out infinite alternate;
}
.scn-hortensio-encourages-plan .warm-glow {
  position: absolute; top: 20%; left: 30%; width: 120px; height: 120px; background: radial-gradient(circle, rgba(255,240,160,0.3) 0%, transparent 70%); border-radius: 50%; filter: blur(15px); animation: hep-glow 8s ease-in-out infinite;
}
.scn-hortensio-encourages-plan .cloudsoft {
  position: absolute; top: 10%; right: 15%; width: 60px; height: 18px; background: linear-gradient(180deg, rgba(255,255,240,0.5) 0%, rgba(255,255,240,0.1) 100%); border-radius: 50%; filter: blur(5px); animation: hep-cloud 40s linear infinite reverse;
}
@keyframes hep-sky { 0% { opacity:0.8 } 50% { opacity:1 } 100% { opacity:0.7 } }
@keyframes hep-hort { 0% { transform: translateX(0) rotate(0deg) } 30% { transform: translateX(1px) rotate(2deg) scaleY(1.01) } 60% { transform: translateX(-1px) rotate(-2deg) scaleY(0.99) } 100% { transform: translateX(0) rotate(0deg) } }
@keyframes hep-comp1 { 0% { transform: translateX(0) scaleY(1) } 50% { transform: translateX(2px) scaleY(1.02) } 100% { transform: translateX(0) scaleY(1) } }
@keyframes hep-comp2 { 0% { transform: translateX(0) scaleY(1) } 50% { transform: translateX(-2px) scaleY(0.98) } 100% { transform: translateX(0) scaleY(1) } }
@keyframes hep-glow { 0% { opacity:0.4; transform: scale(0.9) } 50% { opacity:0.7; transform: scale(1.1) } 100% { opacity:0.4; transform: scale(0.9) } }
@keyframes hep-cloud { 0% { transform: translateX(0) } 100% { transform: translateX(-100vw) } }

.scn-gremio-rejects-kate {
  background: linear-gradient(180deg, #f9d976 0%, #f7e8c0 50%, #ffffff 100%), radial-gradient(ellipse at 50% 100%, #fff5cc 0%, transparent 60%);
}
.scn-gremio-rejects-kate .sky-grk {
  position: absolute; inset: 0 0 45% 0;
  background: linear-gradient(180deg, #87CEEB 0%, #f7e8c0 100%);
  animation: grk-sky 12s ease-in-out infinite alternate;
}
.scn-gremio-rejects-kate .ground-grk {
  position: absolute; bottom: 0; left: 0; right: 0; height: 45%;
  background: linear-gradient(180deg, #d4a373 0%, #b5835a 100%);
  border-radius: 30% 30% 0 0 / 20% 20% 0 0;
  box-shadow: inset 0 10px 30px rgba(0,0,0,0.2);
  animation: grk-ground 18s ease-in-out infinite alternate;
}
.scn-gremio-rejects-kate .wall-grk {
  position: absolute; bottom: 15%; left: 40%; width: 20%; height: 80%;
  background: linear-gradient(90deg, #e6d5b8 0%, #c2a878 100%);
  border-radius: 4px;
  box-shadow: 8px 0 20px rgba(0,0,0,0.2);
  transform: perspective(800px) rotateY(5deg);
}
.scn-gremio-rejects-kate .shadow-grk {
  position: absolute; bottom: 0; left: 30%; width: 40%; height: 8%;
  background: radial-gradient(ellipse, rgba(0,0,0,0.3) 0%, transparent 70%);
  animation: grk-shadowslide 6s ease-in-out infinite;
}
.scn-gremio-rejects-kate .sunbeam-grk {
  position: absolute; top: 10%; left: 20%; width: 60%; height: 60%;
  background: linear-gradient(135deg, rgba(255,255,220,0.4) 0%, transparent 80%);
  transform: skewX(-15deg);
  filter: blur(12px);
  animation: grk-sunbeam 9s ease-in-out infinite alternate;
}
.scn-gremio-rejects-kate .figure-gremio {
  position: absolute; bottom: 10%; left: 48%; width: 20px; height: 40px;
  background: linear-gradient(180deg, #4a3b2a 0%, #2e221b 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 30% 30%;
  transform: rotate(10deg);
  transform-origin: bottom center;
  animation: grk-gremio 4s ease-in-out infinite;
}
.scn-gremio-rejects-kate .figure-kate {
  position: absolute; bottom: 12%; left: 40%; width: 22px; height: 42px;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 30% 30%;
  transform: rotate(-5deg);
  transform-origin: bottom center;
  animation: grk-kate 5s ease-in-out infinite;
}
@keyframes grk-sky { 0% { opacity: 0.8 } 50% { opacity: 1 } 100% { opacity: 0.85 } }
@keyframes grk-ground { 0% { transform: translateY(0) } 50% { transform: translateY(-2px) } 100% { transform: translateY(0) } }
@keyframes grk-shadowslide { 0% { opacity: 0.4; transform: scaleX(1) } 50% { opacity: 0.6; transform: scaleX(1.1) } 100% { opacity: 0.4; transform: scaleX(1) } }
@keyframes grk-sunbeam { 0% { opacity: 0.3; transform: skewX(-15deg) scaleX(1) } 50% { opacity: 0.6; transform: skewX(-10deg) scaleX(1.1) } 100% { opacity: 0.3; transform: skewX(-15deg) scaleX(1) } }
@keyframes grk-gremio { 0% { transform: rotate(10deg) } 50% { transform: rotate(5deg) translateX(3px) } 100% { transform: rotate(10deg) } }
@keyframes grk-kate { 0% { transform: rotate(-5deg) } 50% { transform: rotate(-10deg) translateX(-4px) translateY(2px) } 100% { transform: rotate(-5deg) } }

.scn-kate-insults-suitors {
  background: linear-gradient(180deg, #fceabb 0%, #f8b500 50%, #f7e8c0 100%), radial-gradient(ellipse at 50% 80%, #fff0d0 0%, transparent 60%);
}
.scn-kate-insults-suitors .sky-kis {
  position: absolute; inset: 0 0 50% 0;
  background: linear-gradient(180deg, #b4d4ff 0%, #fceabb 100%);
  animation: kis-sky 15s ease-in-out infinite alternate;
}
.scn-kate-insults-suitors .ground-kis {
  position: absolute; bottom: 0; left: 0; right: 0; height: 50%;
  background: linear-gradient(180deg, #c2a878 0%, #a2865e 100%);
  border-radius: 40% 40% 0 0 / 30% 30% 0 0;
  box-shadow: inset 0 20px 40px rgba(0,0,0,0.2);
}
.scn-kate-insults-suitors .kate-kis {
  position: absolute; bottom: 15%; left: 50%; width: 24px; height: 46px;
  background: linear-gradient(180deg, #5a3d2b 0%, #3a251a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 30% 30%;
  transform: translateX(-50%);
  transform-origin: bottom center;
  animation: kis-kate 3s ease-in-out infinite;
}
.scn-kate-insults-suitors .suitor1-kis {
  position: absolute; bottom: 12%; left: 20%; width: 20px; height: 38px;
  background: linear-gradient(180deg, #4a3b2a 0%, #2e221b 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 30% 30%;
  transform: rotate(5deg);
  transform-origin: bottom center;
  animation: kis-suitors 4s ease-in-out infinite;
}
.scn-kate-insults-suitors .suitor2-kis {
  position: absolute; bottom: 10%; left: 35%; width: 22px; height: 40px;
  background: linear-gradient(180deg, #4a3b2a 0%, #2e221b 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 30% 30%;
  transform: rotate(-3deg);
  transform-origin: bottom center;
  animation: kis-suitors 4.5s ease-in-out infinite;
  animation-delay: 0.5s;
}
.scn-kate-insults-suitors .suitor3-kis {
  position: absolute; bottom: 14%; left: 65%; width: 18px; height: 36px;
  background: linear-gradient(180deg, #4a3b2a 0%, #2e221b 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 30% 30%;
  transform: rotate(8deg);
  transform-origin: bottom center;
  animation: kis-suitors 3.8s ease-in-out infinite;
  animation-delay: 1s;
}
.scn-kate-insults-suitors .bench-kis {
  position: absolute; bottom: 10%; left: 25%; width: 50%; height: 8px;
  background: linear-gradient(90deg, #8b6f47 0%, #6b4f2f 50%, #8b6f47 100%);
  border-radius: 2px;
  box-shadow: 0 4px 8px rgba(0,0,0,0.3);
  animation: kis-bench 6s ease-in-out infinite alternate;
}
@keyframes kis-sky { 0% { opacity: 0.9 } 50% { opacity: 1 } 100% { opacity: 0.85 } }
@keyframes kis-kate { 0% { transform: translateX(-50%) rotate(0) } 25% { transform: translateX(-50%) rotate(-8deg) translateY(-2px) } 50% { transform: translateX(-50%) rotate(5deg) } 75% { transform: translateX(-50%) rotate(-3deg) translateY(2px) } 100% { transform: translateX(-50%) rotate(0) } }
@keyframes kis-suitors { 0% { transform: rotate(5deg) translateX(0) } 50% { transform: rotate(-2deg) translateX(4px) } 100% { transform: rotate(5deg) translateX(0) } }
@keyframes kis-bench { 0% { transform: scaleX(1) } 50% { transform: scaleX(1.02) } 100% { transform: scaleX(1) } }

.scn-baptista-orders-bianca-in {
  background: linear-gradient(180deg, #f7e8c0 0%, #fceabb 40%, #e8d5a3 100%), radial-gradient(ellipse at 30% 50%, #fff5cc 0%, transparent 70%);
}
.scn-baptista-orders-bianca-in .wall-bot {
  position: absolute; inset: 0 30% 0 0;
  background: linear-gradient(90deg, #e6d5b8 0%, #d4c4a3 100%);
  border-right: 4px solid #b8a582;
  box-shadow: inset 0 0 30px rgba(0,0,0,0.1);
}
.scn-baptista-orders-bianca-in .doorframe-bot {
  position: absolute; bottom: 0; left: 50%; width: 20%; height: 80%;
  background: transparent;
  border: 6px solid #8b6f47;
  box-sizing: border-box;
  border-radius: 4px 4px 0 0;
  border-bottom: none;
  transform: translateX(-50%);
}
.scn-baptista-orders-bianca-in .door-bot {
  position: absolute; bottom: 0; left: 50%; width: 18%; height: 76%;
  background: linear-gradient(180deg, #2a1f14 0%, #1a120a 100%);
  transform: translateX(-50%);
  border-radius: 2px 2px 0 0;
  box-shadow: inset 0 0 20px rgba(0,0,0,0.5);
  animation: bot-door 10s ease-in-out infinite alternate;
}
.scn-baptista-orders-bianca-in .floor-bot {
  position: absolute; bottom: 0; left: 0; right: 0; height: 20%;
  background: linear-gradient(180deg, #b8a582 0%, #a2865e 100%);
  border-radius: 10% 10% 0 0;
}
.scn-baptista-orders-bianca-in .bianca-bot {
  position: absolute; bottom: 8%; left: 56%; width: 20px; height: 40px;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 30% 30%;
  transform: rotate(-5deg);
  transform-origin: bottom center;
  animation: bot-bianca 8s ease-in-out infinite;
}
.scn-baptista-orders-bianca-in .baptista-bot {
  position: absolute; bottom: 10%; left: 38%; width: 22px; height: 44px;
  background: linear-gradient(180deg, #4a3b2a 0%, #2e221b 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 30% 30%;
  transform: rotate(5deg) translateX(10px);
  transform-origin: bottom center;
  animation: bot-baptista 6s ease-in-out infinite alternate;
}
.scn-baptista-orders-bianca-in .book-bot {
  position: absolute; bottom: 5%; left: 45%; width: 12px; height: 8px;
  background: linear-gradient(180deg, #702243 0%, #5e1a1d 100%);
  border-radius: 1px 4px 4px 1px;
  box-shadow: 0 2px 4px rgba(0,0,0,0.3);
  animation: bot-book 12s ease-in-out infinite;
}
@keyframes bot-door { 0% { opacity: 0.9; transform: translateX(-50%) } 50% { opacity: 0.7; transform: translateX(-48%) } 100% { opacity: 0.9; transform: translateX(-50%) } }
@keyframes bot-bianca { 0% { transform: rotate(-5deg) translateY(0) } 50% { transform: rotate(-8deg) translateY(-2px) } 100% { transform: rotate(-5deg) translateY(0) } }
@keyframes bot-baptista { 0% { transform: rotate(5deg) translateX(10px) } 50% { transform: rotate(3deg) translateX(12px) } 100% { transform: rotate(5deg) translateX(10px) } }
@keyframes bot-book { 0% { opacity: 0.6; transform: scale(1) } 50% { opacity: 1; transform: scale(1.05) } 100% { opacity: 0.6; transform: scale(1) } }

.scn-baptista-resolves {
  background: linear-gradient(180deg, #f9d976 0%, #f7e8c0 40%, #e8d5a3 100%), radial-gradient(ellipse at 60% 20%, #fff5cc 0%, transparent 60%);
}
.scn-baptista-resolves .bg-brs {
  position: absolute; inset: 0 0 20% 0;
  background: linear-gradient(180deg, #e6d5b8 0%, #c2a878 100%);
  border-radius: 0 0 30% 30% / 0 0 10% 10%;
  box-shadow: inset 0 20px 60px rgba(0,0,0,0.15);
}
.scn-baptista-resolves .window-brs {
  position: absolute; top: 10%; left: 65%; width: 25%; height: 40%;
  background: linear-gradient(180deg, #fff5cc 0%, #f7e8c0 100%);
  border: 6px solid #8b6f47;
  border-radius: 4px;
  box-shadow: 0 0 30px rgba(255,245,204,0.5);
  animation: brs-window 10s ease-in-out infinite alternate;
}
.scn-baptista-resolves .shelf-brs {
  position: absolute; top: 35%; left: 10%; width: 50%; height: 6px;
  background: linear-gradient(90deg, #8b6f47 0%, #6b4f2f 100%);
  border-radius: 2px;
  box-shadow: 0 4px 8px rgba(0,0,0,0.2);
}
.scn-baptista-resolves .books-brs {
  position: absolute; top: 20%; left: 15%; width: 40%; height: 15%;
  background: repeating-linear-gradient(90deg, #5e1a1d 0px, #5e1a1d 8px, #702243 8px, #702243 14px, #4a3b2a 14px, #4a3b2a 20px);
  border-radius: 2px;
  box-shadow: 0 2px 6px rgba(0,0,0,0.3);
  animation: brs-books 12s ease-in-out infinite;
}
.scn-baptista-resolves .baptista-brs {
  position: absolute; bottom: 10%; left: 30%; width: 24px; height: 48px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a120a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 30% 30%;
  transform: rotate(2deg);
  transform-origin: bottom center;
  animation: brs-baptista 8s ease-in-out infinite alternate;
}
.scn-baptista-resolves .floor-brs {
  position: absolute; bottom: 0; left: 0; right: 0; height: 20%;
  background: linear-gradient(180deg, #a2865e 0%, #8b6f47 100%);
  border-radius: 20% 20% 0 0;
}
.scn-baptista-resolves .staff-brs {
  position: absolute; bottom: 10%; left: 38%; width: 4px; height: 30px;
  background: linear-gradient(180deg, #4a3b2a 0%, #2e221b 100%);
  border-radius: 2px;
  transform: rotate(15deg);
  transform-origin: bottom center;
  animation: brs-staff 6s ease-in-out infinite;
}
@keyframes brs-window { 0% { opacity: 0.8; transform: scale(1) } 50% { opacity: 1; transform: scale(1.02) } 100% { opacity: 0.8; transform: scale(1) } }
@keyframes brs-books { 0% { opacity: 0.7 } 50% { opacity: 0.9 } 100% { opacity: 0.7 } }
@keyframes brs-baptista { 0% { transform: rotate(2deg) } 50% { transform: rotate(-1deg) translateY(-2px) } 100% { transform: rotate(2deg) } }
@keyframes brs-staff { 0% { transform: rotate(15deg) } 50% { transform: rotate(12deg) translateY(2px) } 100% { transform: rotate(15deg) } }

/* petruchio-defies-difficulty */
.scn-petruchio-defies-difficulty { background: linear-gradient(180deg, #87CEEB 0%, #FFD700 35%, #FFA500 55%, #FF8C00 100%), radial-gradient(ellipse at 50% 20%, #FFD700 0%, transparent 60%); }
.scn-petruchio-defies-difficulty .sky { position: absolute; inset: 0 0 45% 0; background: linear-gradient(180deg, #7EC8E3 0%, transparent 100%); animation: pd-sky 10s ease-in-out infinite alternate; }
.scn-petruchio-defies-difficulty .sun { position: absolute; top: 12%; left: 50%; width: 60px; height: 60px; transform: translateX(-50%); background: radial-gradient(circle, #FFF7B0 0%, #FFD700 50%, #FFA500 80%, transparent 100%); border-radius: 50%; box-shadow: 0 0 80px 30px #FFD700, 0 0 120px 60px rgba(255, 215, 0, 0.3); animation: pd-sun 4s ease-in-out infinite alternate; }
.scn-petruchio-defies-difficulty .ground { position: absolute; bottom: 0; left: 0; right: 0; height: 45%; background: linear-gradient(180deg, #C8A35C 0%, #8B6F47 100%); border-radius: 30% 70% 0 0 / 40% 60% 0 0; box-shadow: inset 0 10px 30px rgba(0,0,0,0.2); }
.scn-petruchio-defies-difficulty .figure { position: absolute; bottom: 30%; left: 50%; width: 24px; height: 60px; transform: translateX(-50%); background: linear-gradient(180deg, #2B2B3A 0%, #1A1A2E 100%); border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%; transform-origin: bottom center; box-shadow: 0 4px 12px rgba(0,0,0,0.5); animation: pd-figure 3s ease-in-out infinite; }
.scn-petruchio-defies-difficulty .aura { position: absolute; bottom: 25%; left: 50%; width: 80px; height: 80px; transform: translate(-50%, 20%); background: radial-gradient(circle, rgba(255, 215, 0, 0.3) 0%, transparent 70%); border-radius: 50%; filter: blur(10px); animation: pd-aura 4s ease-in-out infinite alternate; }
.scn-petruchio-defies-difficulty .particle { position: absolute; bottom: 30%; width: 6px; height: 6px; background: #FFD700; border-radius: 50%; box-shadow: 0 0 10px 2px #FFD700; animation: pd-particle 6s linear infinite; }
.scn-petruchio-defies-difficulty .particle1 { left: 40%; animation-delay: 0s; }
.scn-petruchio-defies-difficulty .particle2 { left: 55%; animation-delay: 3s; }
@keyframes pd-sky { 0% { opacity: 0.9; } 50% { opacity: 1; } 100% { opacity: 0.85; } }
@keyframes pd-sun { 0% { transform: translateX(-50%) scale(0.95); box-shadow: 0 0 60px 20px #FFD700; } 50% { transform: translateX(-50%) scale(1.05); box-shadow: 0 0 100px 40px #FFD700; } 100% { transform: translateX(-50%) scale(0.98); box-shadow: 0 0 70px 25px #FFD700; } }
@keyframes pd-figure { 0% { transform: translateX(-50%) translateY(0) rotate(-2deg); } 25% { transform: translateX(-46%) translateY(-3px) rotate(2deg); } 50% { transform: translateX(-50%) translateY(0) rotate(-1deg); } 75% { transform: translateX(-54%) translateY(-3px) rotate(1deg); } 100% { transform: translateX(-50%) translateY(0) rotate(-2deg); } }
@keyframes pd-aura { 0% { opacity: 0.6; transform: translate(-50%, 20%) scale(1); } 50% { opacity: 1; transform: translate(-50%, 15%) scale(1.1); } 100% { opacity: 0.7; transform: translate(-50%, 20%) scale(0.95); } }
@keyframes pd-particle { 0% { transform: translateY(0) scale(1); opacity: 1; } 50% { transform: translateY(-80px) scale(1.5); opacity: 0.6; } 100% { transform: translateY(-160px) scale(0.5); opacity: 0; } }

/* grumio-warns-about-petruchio */
.scn-grumio-warns-about-petruchio { background: linear-gradient(180deg, #FFF8DC 0%, #FFE4B5 30%, #FFDAB9 60%, #E6C28C 100%), radial-gradient(ellipse at 50% 10%, #FFF8DC 0%, transparent 50%); }
.scn-grumio-warns-about-petruchio .sky { position: absolute; inset: 0 0 40% 0; background: linear-gradient(180deg, #FFF4E0 0%, transparent 100%); animation: gw-sky 8s ease-in-out infinite alternate; }
.scn-grumio-warns-about-petruchio .sun { position: absolute; top: 8%; left: 70%; width: 40px; height: 40px; background: radial-gradient(circle, #FFE680 0%, #FFD700 50%, #FFA500 100%); border-radius: 50%; box-shadow: 0 0 60px 20px #FFD700; animation: gw-sun 3s ease-in-out infinite alternate; }
.scn-grumio-warns-about-petruchio .ground { position: absolute; bottom: 0; left: 0; right: 0; height: 40%; background: linear-gradient(180deg, #C89B5E 0%, #9C7A44 100%); border-radius: 50% 50% 0 0 / 30% 30% 0 0; }
.scn-grumio-warns-about-petruchio .grumio { position: absolute; bottom: 25%; left: 30%; width: 30px; height: 50px; background: linear-gradient(180deg, #3A3A4A 0%, #20202E 100%); border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%; transform-origin: bottom center; animation: gw-grumio 0.8s ease-in-out infinite; }
.scn-grumio-warns-about-petruchio .arm-left { position: absolute; bottom: 38%; left: 22%; width: 20px; height: 6px; background: #2A2A3A; border-radius: 50%; transform-origin: right center; animation: gw-arm-left 1.2s ease-in-out infinite; }
.scn-grumio-warns-about-petruchio .arm-right { position: absolute; bottom: 38%; left: 38%; width: 20px; height: 6px; background: #2A2A3A; border-radius: 50%; transform-origin: left center; animation: gw-arm-right 1.2s ease-in-out infinite; }
.scn-grumio-warns-about-petruchio .petruchio-bg { position: absolute; bottom: 30%; left: 60%; width: 40px; height: 80px; background: linear-gradient(180deg, #1A1A2E 0%, #0E0E1A 100%); border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%; opacity: 0.7; filter: blur(2px); animation: gw-petruchio 3s ease-in-out infinite; }
.scn-grumio-warns-about-petruchio .rope { position: absolute; bottom: 35%; left: 15%; width: 50px; height: 4px; background: #8B5A2B; border-radius: 2px; transform-origin: left center; animation: gw-rope 1.5s ease-in-out infinite; }
@keyframes gw-sky { 0% { opacity: 0.9; } 50% { opacity: 1; } 100% { opacity: 0.85; } }
@keyframes gw-sun { 0% { transform: scale(0.9); box-shadow: 0 0 40px 10px #FFD700; } 50% { transform: scale(1.1); box-shadow: 0 0 80px 30px #FFD700; } 100% { transform: scale(0.95); box-shadow: 0 0 50px 15px #FFD700; } }
@keyframes gw-grumio { 0% { transform: translateY(0) rotate(-3deg); } 25% { transform: translateY(-5px) rotate(3deg); } 50% { transform: translateY(0) rotate(-2deg); } 75% { transform: translateY(-4px) rotate(2deg); } 100% { transform: translateY(0) rotate(-3deg); } }
@keyframes gw-arm-left { 0% { transform: rotate(20deg); } 50% { transform: rotate(-30deg); } 100% { transform: rotate(20deg); } }
@keyframes gw-arm-right { 0% { transform: rotate(-20deg); } 50% { transform: rotate(30deg); } 100% { transform: rotate(-20deg); } }
@keyframes gw-petruchio { 0% { transform: translateX(0) rotate(-1deg); } 50% { transform: translateX(-5px) rotate(1deg); } 100% { transform: translateX(0) rotate(-1deg); } }
@keyframes gw-rope { 0% { transform: rotate(0deg) scaleX(1); } 25% { transform: rotate(15deg) scaleX(1.2); } 50% { transform: rotate(0deg) scaleX(0.9); } 75% { transform: rotate(-10deg) scaleX(1.1); } 100% { transform: rotate(0deg) scaleX(1); } }

/* hortensio-describes-situation */
.scn-hortensio-describes-situation { background: linear-gradient(135deg, #D4A76A 0%, #B8895C 30%, #8B6F47 60%, #5C3D2E 100%), radial-gradient(ellipse at 40% 50%, #D4A76A 0%, transparent 50%); }
.scn-hortensio-describes-situation .sky { position: absolute; inset: 0 0 50% 0; background: linear-gradient(180deg, #E8D8B0 0%, transparent 100%); animation: hd-sky 10s ease-in-out infinite alternate; }
.scn-hortensio-describes-situation .sunray { position: absolute; top: 0; left: 0; width: 60%; height: 100%; background: linear-gradient(135deg, rgba(255,255,200,0.4) 0%, transparent 100%); clip-path: polygon(0 0, 100% 0, 60% 100%, 0 100%); animation: hd-sunray 5s ease-in-out infinite alternate; }
.scn-hortensio-describes-situation .ground { position: absolute; bottom: 0; left: 0; right: 0; height: 50%; background: linear-gradient(180deg, #7A5C3A 0%, #4A3520 100%); border-radius: 0 0 30% 70% / 0 0 60% 40%; }
.scn-hortensio-describes-situation .hortensio { position: absolute; bottom: 28%; left: 40%; width: 22px; height: 55px; background: linear-gradient(180deg, #2B2B3A 0%, #151520 100%); border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%; transform-origin: bottom center; animation: hd-hortensio 3s ease-in-out infinite; }
.scn-hortensio-describes-situation .shadow { position: absolute; bottom: 22%; left: 35%; width: 30px; height: 10px; background: rgba(0,0,0,0.4); border-radius: 50%; filter: blur(3px); animation: hd-shadow 3s ease-in-out infinite; }
.scn-hortensio-describes-situation .book { position: absolute; bottom: 35%; left: 45%; width: 12px; height: 16px; background: #8B5A2B; border-radius: 2px; box-shadow: 0 2px 4px rgba(0,0,0,0.5); transform-origin: bottom center; animation: hd-book 4s ease-in-out infinite; }
.scn-hortensio-describes-situation .doorway { position: absolute; bottom: 25%; right: 15%; width: 40px; height: 70px; background: linear-gradient(180deg, #3A2A1A 0%, #1A0E0A 100%); border-radius: 4px; box-shadow: inset 0 0 10px rgba(0,0,0,0.8); animation: hd-door 6s ease-in-out infinite alternate; }
@keyframes hd-sky { 0% { opacity: 0.9; } 50% { opacity: 1; } 100% { opacity: 0.8; } }
@keyframes hd-sunray { 0% { transform: skewX(0deg); opacity: 0.5; } 50% { transform: skewX(-3deg); opacity: 0.8; } 100% { transform: skewX(2deg); opacity: 0.6; } }
@keyframes hd-hortensio { 0% { transform: translateY(0) rotate(-1deg); } 25% { transform: translateY(-4px) rotate(2deg); } 50% { transform: translateY(0) rotate(-1deg); } 75% { transform: translateY(-3px) rotate(1deg); } 100% { transform: translateY(0) rotate(-1deg); } }
@keyframes hd-shadow { 0% { transform: scaleX(1); opacity: 0.4; } 50% { transform: scaleX(1.3); opacity: 0.6; } 100% { transform: scaleX(0.9); opacity: 0.3; } }
@keyframes hd-book { 0% { transform: rotate(0deg) translateY(0); } 30% { transform: rotate(15deg) translateY(-2px); } 60% { transform: rotate(-10deg) translateY(0); } 100% { transform: rotate(0deg) translateY(0); } }
@keyframes hd-door { 0% { transform: scaleX(1); } 50% { transform: scaleX(1.05); } 100% { transform: scaleX(0.95); } }

/* gremio-and-lucentio-arrive */
.scn-gremio-and-lucentio-arrive { background: linear-gradient(180deg, #E8D8B0 0%, #C8A86A 30%, #A6804A 60%, #7A5C3A 100%), radial-gradient(ellipse at 50% 0, #E8D8B0 0%, transparent 60%); }
.scn-gremio-and-lucentio-arrive .sky { position: absolute; inset: 0 0 50% 0; background: linear-gradient(180deg, #F5E6C8 0%, transparent 100%); animation: gl-sky 12s ease-in-out infinite alternate; }
.scn-gremio-and-lucentio-arrive .house { position: absolute; bottom: 20%; left: 50%; width: 120px; height: 100px; transform: translateX(-50%); background: linear-gradient(180deg, #9A7A4A 0%, #6B4F2E 100%); border-radius: 6px 6px 0 0; box-shadow: 0 8px 20px rgba(0,0,0,0.4); animation: gl-house 6s ease-in-out infinite alternate; }
.scn-gremio-and-lucentio-arrive .door { position: absolute; bottom: 20%; left: 50%; width: 30px; height: 50px; transform: translateX(-50%); background: linear-gradient(180deg, #4A3520 0%, #2A1A0E 100%); border-radius: 4px 4px 0 0; box-shadow: inset 0 0 8px rgba(0,0,0,0.8); animation: gl-door 4s ease-in-out infinite; }
.scn-gremio-and-lucentio-arrive .window { position: absolute; bottom: 45%; left: 42%; width: 16px; height: 18px; background: radial-gradient(circle, #FFF7B0 0%, #D4A76A 100%); border-radius: 2px; box-shadow: 0 0 20px 5px #D4A76A, 0 0 40px 10px rgba(212,167,106,0.3); animation: gl-window 3s ease-in-out infinite alternate; }
.scn-gremio-and-lucentio-arrive .gremio { position: absolute; bottom: 22%; left: 35%; width: 20px; height: 45px; background: linear-gradient(180deg, #2E2E3A 0%, #1A1A2E 100%); border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%; transform-origin: bottom center; animation: gl-gremio 4s ease-in-out infinite; }
.scn-gremio-and-lucentio-arrive .lucentio { position: absolute; bottom: 22%; left: 55%; width: 18px; height: 48px; background: linear-gradient(180deg, #3A3A4A 0%, #22223A 100%); border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%; transform-origin: bottom center; animation: gl-lucentio 4s ease-in-out infinite; }
.scn-gremio-and-lucentio-arrive .book { position: absolute; bottom: 30%; left: 45%; width: 10px; height: 14px; background: #8B5A2B; border-radius: 2px; transform: rotate(15deg); box-shadow: 0 2px 4px rgba(0,0,0,0.5); animation: gl-book 5s ease-in-out infinite; }
.scn-gremio-and-lucentio-arrive .shadow { position: absolute; bottom: 18%; left: 30%; width: 80px; height: 8px; background: rgba(0,0,0,0.3); border-radius: 50%; filter: blur(4px); animation: gl-shadow 4s ease-in-out infinite alternate; }
@keyframes gl-sky { 0% { opacity: 0.9; } 50% { opacity: 1; } 100% { opacity: 0.85; } }
@keyframes gl-house { 0% { transform: translateX(-50%) scaleY(1); } 50% { transform: translateX(-50%) scaleY(1.02); } 100% { transform: translateX(-50%) scaleY(0.98); } }
@keyframes gl-door { 0% { transform: translateX(-50%) rotate(0deg); } 25% { transform: translateX(-45%) rotate(5deg); } 75% { transform: translateX(-55%) rotate(-5deg); } 100% { transform: translateX(-50%) rotate(0deg); } }
@keyframes gl-window { 0% { box-shadow: 0 0 10px 2px #D4A76A, 0 0 20px 5px rgba(212,167,106,0.2); opacity: 0.8; } 50% { box-shadow: 0 0 25px 8px #FFF7B0, 0 0 50px 15px rgba(255,247,176,0.4); opacity: 1; } 100% { box-shadow: 0 0 15px 4px #D4A76A, 0 0 30px 8px rgba(212,167,106,0.3); opacity: 0.9; } }
@keyframes gl-gremio { 0% { transform: translateY(0) rotate(-1deg); } 30% { transform: translateY(-4px) rotate(2deg); } 60% { transform: translateY(0) rotate(-1deg); } 100% { transform: translateY(-2px) rotate(0deg); } }
@keyframes gl-lucentio { 0% { transform: translateY(0) rotate(1deg); } 30% { transform: translateY(-3px) rotate(-1deg); } 60% { transform: translateY(0) rotate(0deg); } 100% { transform: translateY(-2px) rotate(1deg); } }
@keyframes gl-book { 0% { transform: rotate(10deg) translateY(0); } 50% { transform: rotate(25deg) translateY(-3px); } 100% { transform: rotate(10deg) translateY(0); } }
@keyframes gl-shadow { 0% { transform: scaleX(0.8); opacity: 0.2; } 50% { transform: scaleX(1.2); opacity: 0.4; } 100% { transform: scaleX(0.9); opacity: 0.3; } }

/* Scene 1 – sunlit calm street */
.scn-tranio-as-lucentio-approaches {
  background:
    linear-gradient(180deg, #78aed0 0%, #e6c87a 40%, #d4a75a 100%),
    radial-gradient(ellipse at 80% 30%, rgba(255, 230, 150, 0.3) 0%, transparent 60%);
}
.scn-tranio-as-lucentio-approaches .sky {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(180deg, #8bc4e8 0%, #f0d68a 70%);
  animation: ta-sky 14s ease-in-out infinite alternate;
}
.scn-tranio-as-lucentio-approaches .building {
  position: absolute; bottom: 28%; left: 5%; width: 30%; height: 55%;
  background: linear-gradient(90deg, #b8986a 0%, #d4b882 50%, #a07a52 100%);
  border-radius: 6% 6% 0 0; box-shadow: 10px 0 20px rgba(0,0,0,0.3);
  animation: ta-build 16s ease-in-out infinite alternate;
}
.scn-tranio-as-lucentio-approaches .ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #b8a080 0%, #8a7050 100%);
  border-radius: 30% 70% 0 0 / 50% 80% 0 0;
  animation: ta-ground 20s ease-in-out infinite alternate;
}
.scn-tranio-as-lucentio-approaches .shadow {
  position: absolute; bottom: 24%; left: 20%; width: 25%; height: 6%;
  background: rgba(0,0,0,0.15); border-radius: 50%; filter: blur(8px);
  animation: ta-shadow 12s ease-in-out infinite alternate;
}
.scn-tranio-as-lucentio-approaches .figure-left {
  position: absolute; bottom: 23%; left: 35%; width: 14px; height: 40px;
  background: linear-gradient(180deg, #2a3038 0%, #101418 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: ta-walk-left 6s ease-in-out infinite;
}
.scn-tranio-as-lucentio-approaches .figure-right {
  position: absolute; bottom: 23%; right: 30%; width: 14px; height: 42px;
  background: linear-gradient(180deg, #383028 0%, #181010 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: ta-walk-right 6s ease-in-out 0.5s infinite;
}
.scn-tranio-as-lucentio-approaches .sunbeam {
  position: absolute; top: 8%; right: 15%; width: 20%; height: 60%;
  background: linear-gradient(135deg, rgba(255,240,180,0.35) 0%, transparent 60%);
  clip-path: polygon(0 0, 100% 0, 80% 100%, 0 100%);
  animation: ta-beam 18s ease-in-out infinite alternate;
}
@keyframes ta-sky { 0% { opacity: 0.85; } 50% { opacity: 1; } 100% { opacity: 0.9; } }
@keyframes ta-build { 0% { transform: scaleY(1) translateX(0); } 50% { transform: scaleY(1.02) translateX(2px); } 100% { transform: scaleY(1) translateX(0); } }
@keyframes ta-ground { 0% { transform: translateY(0); } 50% { transform: translateY(-2px); } 100% { transform: translateY(0); } }
@keyframes ta-shadow { 0% { opacity: 0.3; transform: skewX(-5deg); } 50% { opacity: 0.5; transform: skewX(0deg); } 100% { opacity: 0.2; transform: skewX(5deg); } }
@keyframes ta-walk-left { 0% { transform: translateX(0) rotate(-1deg); } 25% { transform: translateX(8px) rotate(0deg); } 50% { transform: translateX(16px) rotate(1deg); } 75% { transform: translateX(8px) rotate(0deg); } 100% { transform: translateX(0) rotate(-1deg); } }
@keyframes ta-walk-right { 0% { transform: translateX(0) rotate(1deg); } 25% { transform: translateX(-6px) rotate(0deg); } 50% { transform: translateX(-12px) rotate(-1deg); } 75% { transform: translateX(-6px) rotate(0deg); } 100% { transform: translateX(0) rotate(1deg); } }
@keyframes ta-beam { 0% { opacity: 0.4; transform: rotate(-2deg); } 50% { opacity: 0.7; transform: rotate(2deg); } 100% { opacity: 0.4; transform: rotate(-2deg); } }

/* Scene 2 – tense rivalry in sunlit courtyard */
.scn-lucentio-declares-rivalry {
  background:
    linear-gradient(180deg, #7aacd0 0%, #d4b87a 40%, #c09a4a 100%),
    radial-gradient(ellipse at 60% 40%, rgba(255,230,120,0.2) 0%, transparent 70%);
}
.scn-lucentio-declares-rivalry .sky {
  position: absolute; inset: 0 0 50% 0;
  background: linear-gradient(180deg, #8ec8f0 0%, #f0d68a 70%);
  animation: ld-sky 6s ease-in-out infinite alternate;
}
.scn-lucentio-declares-rivalry .wall {
  position: absolute; bottom: 30%; left: 10%; right: 10%; height: 40%;
  background: linear-gradient(90deg, #b09870 0%, #d0b890 30%, #a89070 100%);
  border-radius: 20% 20% 0 0; box-shadow: 0 -6px 20px rgba(0,0,0,0.4);
  animation: ld-wall 8s ease-in-out infinite alternate;
}
.scn-lucentio-declares-rivalry .fountain {
  position: absolute; bottom: 32%; left: 50%; transform: translateX(-50%);
  width: 60px; height: 40px;
  background: linear-gradient(180deg, #b8b0a0 0%, #808078 100%);
  border-radius: 50% 50% 20% 20%; box-shadow: 0 8px 12px rgba(0,0,0,0.3);
  animation: ld-fountain 4s ease-in-out infinite alternate;
}
.scn-lucentio-declares-rivalry .figure-lucentio {
  position: absolute; bottom: 25%; left: 30%; width: 16px; height: 45px;
  background: linear-gradient(180deg, #282828 0%, #101010 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: ld-fig1 2s ease-in-out infinite alternate;
}
.scn-lucentio-declares-rivalry .figure-rival {
  position: absolute; bottom: 25%; right: 30%; width: 15px; height: 44px;
  background: linear-gradient(180deg, #201818 0%, #080808 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: ld-fig2 2s ease-in-out 0.3s infinite alternate;
}
.scn-lucentio-declares-rivalry .shadow-sharp {
  position: absolute; bottom: 24%; left: 28%; width: 18%; height: 4%;
  background: rgba(0,0,0,0.3); border-radius: 30%; filter: blur(3px);
  animation: ld-sharp 3s ease-in-out infinite alternate;
}
.scn-lucentio-declares-rivalry .dust {
  position: absolute; bottom: 28%; left: 25%; width: 30%; height: 20%;
  background: radial-gradient(ellipse at center, rgba(180,160,120,0.15) 0%, transparent 70%);
  animation: ld-dust 5s ease-in-out infinite alternate;
}
@keyframes ld-sky { 0% { opacity: 0.9; } 50% { opacity: 0.7; } 100% { opacity: 0.95; } }
@keyframes ld-wall { 0% { transform: translateY(0); } 50% { transform: translateY(-3px); } 100% { transform: translateY(0); } }
@keyframes ld-fountain { 0% { transform: translateX(-50%) scaleY(1); } 50% { transform: translateX(-50%) scaleY(1.05); } 100% { transform: translateX(-50%) scaleY(1); } }
@keyframes ld-fig1 { 0% { transform: translateX(0) rotate(0deg); } 50% { transform: translateX(4px) rotate(-3deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes ld-fig2 { 0% { transform: translateX(0) rotate(0deg); } 50% { transform: translateX(-4px) rotate(3deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes ld-sharp { 0% { opacity: 0.3; transform: scaleX(1); } 50% { opacity: 0.6; transform: scaleX(1.2); } 100% { opacity: 0.3; transform: scaleX(0.9); } }
@keyframes ld-dust { 0% { opacity: 0.2; transform: scale(0.95); } 50% { opacity: 0.5; transform: scale(1.05); } 100% { opacity: 0.2; transform: scale(0.95); } }

/* Scene 3 – interior planning, tense */
.scn-plan-to-find-husband-for-kate {
  background:
    linear-gradient(180deg, #6a5a4a 0%, #3a2a1a 100%),
    radial-gradient(ellipse at 30% 50%, rgba(180,140,80,0.3) 0%, transparent 70%);
}
.scn-plan-to-find-husband-for-kate .wall-back {
  position: absolute; inset: 0; 
  background: linear-gradient(90deg, #5a4a3a 0%, #7a6a5a 40%, #4a3a2a 100%);
  animation: pf-wall 20s ease-in-out infinite alternate;
}
.scn-plan-to-find-husband-for-kate .window {
  position: absolute; top: 15%; left: 50%; transform: translateX(-50%);
  width: 30%; height: 30%;
  background: linear-gradient(135deg, #c0b090 0%, #e8d8c0 70%);
  border: 6px solid #4a3a2a; border-radius: 4%;
  box-shadow: 0 0 40px 8px rgba(200,180,150,0.5);
  animation: pf-window 8s ease-in-out infinite alternate;
}
.scn-plan-to-find-husband-for-kate .table {
  position: absolute; bottom: 20%; left: 20%; right: 20%; height: 15%;
  background: radial-gradient(ellipse at 50% 50%, #8a7050 0%, #5a3a1a 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%;
  box-shadow: 0 8px 20px rgba(0,0,0,0.5);
  animation: pf-table 12s ease-in-out infinite alternate;
}
.scn-plan-to-find-husband-for-kate .figure-gremio {
  position: absolute; bottom: 24%; left: 25%; width: 14px; height: 38px;
  background: linear-gradient(180deg, #282018 0%, #100800 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: pf-fig1 4s ease-in-out infinite alternate;
}
.scn-plan-to-find-husband-for-kate .figure-hortensio {
  position: absolute; bottom: 24%; left: 48%; width: 14px; height: 40px;
  background: linear-gradient(180deg, #201810 0%, #080400 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: pf-fig2 4s ease-in-out 0.5s infinite alternate;
}
.scn-plan-to-find-husband-for-kate .figure-tranio {
  position: absolute; bottom: 24%; right: 25%; width: 14px; height: 42px;
  background: linear-gradient(180deg, #282020 0%, #100808 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: pf-fig3 4s ease-in-out 1s infinite alternate;
}
.scn-plan-to-find-husband-for-kate .map {
  position: absolute; bottom: 30%; left: 50%; transform: translateX(-50%);
  width: 20%; height: 14%;
  background: linear-gradient(135deg, #6a5a3a 0%, #8a7a5a 100%);
  border: 2px solid #3a2a1a; border-radius: 6%;
  animation: pf-map 14s ease-in-out infinite alternate;
}
.scn-plan-to-find-husband-for-kate .chair {
  position: absolute; bottom: 20%; left: 22%; width: 12px; height: 20px;
  background: linear-gradient(180deg, #5a3a2a 0%, #2a1a0a 100%);
  border-radius: 20% 20% 10% 10%;
  animation: pf-chair 10s ease-in-out infinite alternate;
}
@keyframes pf-wall { 0% { opacity: 0.9; } 50% { opacity: 1; } 100% { opacity: 0.8; } }
@keyframes pf-window { 0% { box-shadow: 0 0 30px 6px rgba(200,180,150,0.4); } 50% { box-shadow: 0 0 60px 12px rgba(200,180,150,0.7); } 100% { box-shadow: 0 0 30px 6px rgba(200,180,150,0.4); } }
@keyframes pf-table { 0% { transform: scaleY(1); } 50% { transform: scaleY(1.02); } 100% { transform: scaleY(1); } }
@keyframes pf-fig1 { 0% { transform: translateX(0) rotate(0deg); } 50% { transform: translateX(2px) rotate(-2deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes pf-fig2 { 0% { transform: translateX(0) rotate(0deg); } 50% { transform: translateX(-2px) rotate(2deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes pf-fig3 { 0% { transform: translateX(0) rotate(0deg); } 50% { transform: translateX(2px) rotate(-1deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes pf-map { 0% { transform: translateX(-50%) rotate(0deg); } 50% { transform: translateX(-50%) rotate(3deg); } 100% { transform: translateX(-50%) rotate(0deg); } }
@keyframes pf-chair { 0% { transform: scaleY(1); } 50% { transform: scaleY(1.05); } 100% { transform: scaleY(1); } }

/* Scene 4 – overhead drinking agreement, warm sunlit */
.scn-agreement-to-drink {
  background:
    linear-gradient(180deg, #d4b87a 0%, #f0d68a 30%, #c0a060 100%),
    radial-gradient(ellipse at 50% 30%, rgba(255,240,180,0.2) 0%, transparent 70%);
}
.scn-agreement-to-drink .table-top {
  position: absolute; bottom: 20%; left: 20%; right: 20%; height: 40%;
  background: radial-gradient(ellipse at 50% 50%, #c8a870 0%, #8a7050 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  box-shadow: 0 10px 30px rgba(0,0,0,0.3);
  animation: ad-table 15s ease-in-out infinite alternate;
}
.scn-agreement-to-drink .cup-left {
  position: absolute; bottom: 30%; left: 30%; width: 18px; height: 22px;
  background: linear-gradient(180deg, #d0b890 0%, #b89870 100%);
  border-radius: 30% 30% 20% 20% / 40% 40% 30% 30%;
  box-shadow: 0 4px 8px rgba(0,0,0,0.2);
  animation: ad-cup-left 3s ease-in-out infinite alternate;
}
.scn-agreement-to-drink .cup-right {
  position: absolute; bottom: 30%; right: 30%; width: 18px; height: 22px;
  background: linear-gradient(180deg, #d0b890 0%, #b89870 100%);
  border-radius: 30% 30% 20% 20% / 40% 40% 30% 30%;
  box-shadow: 0 4px 8px rgba(0,0,0,0.2);
  animation: ad-cup-right 3s ease-in-out 0.4s infinite alternate;
}
.scn-agreement-to-drink .hand-left {
  position: absolute; bottom: 28%; left: 28%; width: 14px; height: 18px;
  background: linear-gradient(180deg, #b8a088 0%, #8a7050 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%;
  transform-origin: bottom center;
  animation: ad-hand-left 4s ease-in-out infinite alternate;
}
.scn-agreement-to-drink .hand-right {
  position: absolute; bottom: 28%; right: 28%; width: 14px; height: 18px;
  background: linear-gradient(180deg, #b8a088 0%, #8a7050 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%;
  transform-origin: bottom center;
  animation: ad-hand-right 4s ease-in-out 0.6s infinite alternate;
}
.scn-agreement-to-drink .jug {
  position: absolute; bottom: 28%; left: 50%; transform: translateX(-50%);
  width: 22px; height: 28px;
  background: linear-gradient(180deg, #a08060 0%, #6a4a2a 100%);
  border-radius: 20% 20% 30% 30% / 30% 30% 40% 40%;
  box-shadow: 0 6px 12px rgba(0,0,0,0.25);
  animation: ad-jug 8s ease-in-out infinite alternate;
}
.scn-agreement-to-drink .glow {
  position: absolute; top: 10%; left: 50%; transform: translateX(-50%);
  width: 40%; height: 30%;
  background: radial-gradient(ellipse at 50% 50%, rgba(255,230,150,0.35) 0%, transparent 70%);
  animation: ad-glow 6s ease-in-out infinite alternate;
}
@keyframes ad-table { 0% { transform: scale(1) rotate(0deg); } 50% { transform: scale(1.01) rotate(1deg); } 100% { transform: scale(1) rotate(0deg); } }
@keyframes ad-cup-left { 0% { transform: rotate(0deg) translateY(0); } 50% { transform: rotate(-10deg) translateY(2px); } 100% { transform: rotate(0deg) translateY(0); } }
@keyframes ad-cup-right { 0% { transform: rotate(0deg) translateY(0); } 50% { transform: rotate(10deg) translateY(2px); } 100% { transform: rotate(0deg) translateY(0); } }
@keyframes ad-hand-left { 0% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-10px) rotate(-5deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes ad-hand-right { 0% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-10px) rotate(5deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes ad-jug { 0% { transform: translateX(-50%) rotate(0deg); } 50% { transform: translateX(-50%) rotate(3deg); } 100% { transform: translateX(-50%) rotate(0deg); } }
@keyframes ad-glow { 0% { opacity: 0.5; } 50% { opacity: 0.8; } 100% { opacity: 0.5; } }

/* Scene: sly-agrees-to-play */
.scn-sly-agrees-to-play {
  background: linear-gradient(180deg, #b8a58a 0%, #8c7355 40%, #5a4730 100%), radial-gradient(ellipse at 30% 30%, rgba(255,200,100,0.2) 0%, transparent 50%);
}
.scn-sly-agrees-to-play .outside {
  position: absolute; top:5%; left:5%; width:35%; height:40%;
  background: linear-gradient(180deg, #87ceeb 0%, #b0d4f0 100%);
  border-radius:4px; border:4px solid #5a3a1a;
  box-shadow: 0 8px 20px rgba(0,0,0,0.5); overflow:hidden;
  animation: windowOutside 10s ease-in-out infinite alternate;
}
.scn-sly-agrees-to-play .ledge {
  position: absolute; top:45%; left:5%; width:35%; height:2%;
  background: #5a3a1a; border-radius:2px; box-shadow: 0 2px 4px rgba(0,0,0,0.3);
}
.scn-sly-agrees-to-play .light-patch {
  position: absolute; bottom:25%; left:10%; width:40%; height:15%;
  background: linear-gradient(180deg, rgba(255,220,150,0.3) 0%, rgba(255,200,100,0.1) 100%);
  clip-path: polygon(0 0, 100% 0, 80% 100%, 20% 100%);
  filter: blur(8px); animation: lightBeam 4s ease-in-out infinite alternate;
}
.scn-sly-agrees-to-play .chair {
  position: absolute; bottom:15%; left:42%; width:20%; height:30%;
  background: #5a3a1a; border-radius:30% 30% 10% 10%;
  box-shadow: 0 4px 8px rgba(0,0,0,0.5);
  animation: chairRock 5s ease-in-out infinite;
}
.scn-sly-agrees-to-play .figure {
  position: absolute; bottom:17%; left:44%; width:18%; height:35%;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a1008 100%);
  border-radius:50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: figureBreath 6s ease-in-out infinite;
}
.scn-sly-agrees-to-play .table {
  position: absolute; bottom:10%; left:55%; width:20%; height:20%;
  background: linear-gradient(180deg, #6a4a2a 0%, #3a2a1a 100%);
  border-radius:50% 50% 20% 20% / 60% 60% 20% 20%;
  box-shadow: 0 4px 8px rgba(0,0,0,0.5);
}
.scn-sly-agrees-to-play .candle {
  position: absolute; bottom:22%; left:63%; width:4%; height:8%;
  background: radial-gradient(circle, #ffd080 0%, #ffa040 100%);
  border-radius:50% 50% 50% 50% / 60% 60% 40% 40%;
  box-shadow: 0 0 15px 5px rgba(255,160,64,0.7);
  animation: candleFlicker 2s ease-in-out infinite alternate;
}
.scn-sly-agrees-to-play .rug {
  position: absolute; bottom:0; left:20%; width:60%; height:10%;
  background: linear-gradient(90deg, #8a6040, #4a3020);
  border-radius:50% 50% 0 0; opacity:0.7;
  animation: rugSlide 8s ease-in-out infinite alternate;
}
@keyframes windowOutside {
  0% { filter: brightness(1); transform: scale(1); }
  50% { filter: brightness(1.05); transform: scale(1.02) translateX(2px); }
  100% { filter: brightness(1); transform: scale(1); }
}
@keyframes lightBeam {
  0% { opacity: 0.6; transform: scaleX(1); }
  50% { opacity: 1; transform: scaleX(1.2) scaleY(1.1); }
  100% { opacity: 0.6; transform: scaleX(1); }
}
@keyframes chairRock {
  0% { transform: rotate(0deg); }
  50% { transform: rotate(-2deg) translateY(-1px); }
  100% { transform: rotate(0deg); }
}
@keyframes figureBreath {
  0% { transform: scaleY(1); }
  50% { transform: scaleY(1.03) translateY(-2px); }
  100% { transform: scaleY(1); }
}
@keyframes candleFlicker {
  0% { box-shadow: 0 0 10px 3px rgba(255,160,64,0.6); filter: brightness(0.8); transform: scaleY(1); }
  50% { box-shadow: 0 0 20px 8px rgba(255,200,100,0.9); filter: brightness(1.2); transform: scaleY(1.1) scaleX(0.95); }
  100% { box-shadow: 0 0 10px 3px rgba(255,160,64,0.6); filter: brightness(0.9); transform: scaleY(1); }
}
@keyframes rugSlide {
  0% { transform: translateX(0); }
  50% { transform: translateX(5px) skewX(1deg); }
  100% { transform: translateX(0); }
}

/* Scene: lucentio-arrives-padua */
.scn-lucentio-arrives-padua {
  background: linear-gradient(180deg, #ffd080 0%, #ffc060 30%, #b8d0e8 60%, #6a8fc0 100%), radial-gradient(ellipse at 70% 20%, rgba(255,220,150,0.3) 0%, transparent 50%);
}
.scn-lucentio-arrives-padua .sky {
  position: absolute; inset:0 0 30% 0;
  background: linear-gradient(180deg, #b8d0e8 0%, #e0f0ff 100%);
  animation: skyGlow 20s ease-in-out infinite alternate;
}
.scn-lucentio-arrives-padua .sun {
  position: absolute; top:10%; right:20%; width:8%; height:8%;
  background: radial-gradient(circle, #fff5d0 0%, #ffd080 50%, transparent 70%);
  border-radius:50%; box-shadow: 0 0 60px 20px rgba(255,208,128,0.5);
  animation: sunPulse 12s ease-in-out infinite alternate;
}
.scn-lucentio-arrives-padua .distant-hills {
  position: absolute; bottom:35%; left:0; right:0; height:25%;
  background: linear-gradient(180deg, #7a9a6a 0%, #4a6a3a 100%);
  border-radius: 40% 60% 0 0 / 80% 70% 0 0;
  animation: hillsShift 18s ease-in-out infinite alternate;
}
.scn-lucentio-arrives-padua .city {
  position: absolute; bottom:35%; left:30%; width:40%; height:20%;
  background: linear-gradient(180deg, #3a2a1a 0%, #5a4a3a 100%);
  clip-path: polygon(0% 100%, 0% 60%, 10% 50%, 10% 20%, 20% 20%, 20% 40%, 30% 40%, 30% 10%, 40% 10%, 40% 30%, 50% 30%, 50% 10%, 60% 10%, 60% 30%, 70% 30%, 70% 10%, 80% 10%, 80% 40%, 90% 40%, 90% 50%, 100% 50%, 100% 100%);
  animation: cityBreathe 15s ease-in-out infinite alternate;
}
.scn-lucentio-arrives-padua .road {
  position: absolute; bottom:15%; left:40%; width:30%; height:10%;
  background: linear-gradient(90deg, #8a7050 0%, #b8a080 100%);
  transform: skewX(-10deg); border-radius:0 0 20% 20%;
  animation: roadShimmer 10s ease-in-out infinite;
}
.scn-lucentio-arrives-padua .figure {
  position: absolute; bottom:20%; left:60%; width:5%; height:12%;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius:50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: figureWalk 8s ease-in-out infinite;
}
.scn-lucentio-arrives-padua .gate-arch {
  position: absolute; bottom:35%; left:20%; width:10%; height:25%;
  background: linear-gradient(180deg, #6a5a4a 0%, #3a2a1a 100%);
  clip-path: polygon(0% 100%, 0% 20%, 10% 10%, 10% 0%, 90% 0%, 90% 10%, 100% 20%, 100% 100%);
  animation: gateSway 14s ease-in-out infinite;
}
@keyframes skyGlow {
  0% { filter: brightness(1); }
  50% { filter: brightness(1.1) saturate(1.2); }
  100% { filter: brightness(1); }
}
@keyframes sunPulse {
  0% { box-shadow: 0 0 30px 15px rgba(255,208,128,0.4); transform: scale(1); }
  50% { box-shadow: 0 0 60px 25px rgba(255,208,128,0.7); transform: scale(1.05); }
  100% { box-shadow: 0 0 30px 15px rgba(255,208,128,0.4); transform: scale(1); }
}
@keyframes hillsShift {
  0% { transform: translateY(0); }
  50% { transform: translateY(-4px); }
  100% { transform: translateY(0); }
}
@keyframes cityBreathe {
  0% { filter: brightness(0.8); transform: scaleY(1); }
  50% { filter: brightness(1.1); transform: scaleY(1.02); }
  100% { filter: brightness(0.8); transform: scaleY(1); }
}
@keyframes roadShimmer {
  0% { opacity: 0.9; filter: brightness(1); }
  50% { opacity: 1; filter: brightness(1.1) saturate(1.3); }
  100% { opacity: 0.9; filter: brightness(1); }
}
@keyframes figureWalk {
  0% { transform: translateX(0); }
  50% { transform: translateX(15px) rotate(1deg); }
  100% { transform: translateX(0); }
}
@keyframes gateSway {
  0% { transform: skewX(0deg); }
  50% { transform: skewX(2deg) scaleX(1.02); }
  100% { transform: skewX(0deg); }
}

/* Scene: tranio-advises-master */
.scn-tranio-advises-master {
  background: linear-gradient(180deg, #f0d8b0 0%, #d0b890 40%, #8a7050 100%), radial-gradient(ellipse at 60% 30%, rgba(255,200,100,0.3) 0%, transparent 50%);
}
.scn-tranio-advises-master .sky {
  position: absolute; top:0; left:0; right:0; height:40%;
  background: linear-gradient(180deg, #e0f0ff 0%, #c0d8f0 100%);
  animation: skyWarm 20s ease-in-out infinite alternate;
}
.scn-tranio-advises-master .tree-trunk {
  position: absolute; bottom:20%; left:20%; width:8%; height:60%;
  background: linear-gradient(180deg, #5a3a1a 0%, #3a2a1a 100%);
  border-radius:20% 20% 10% 10%;
  animation: trunkSway 15s ease-in-out infinite;
}
.scn-tranio-advises-master .tree-canopy {
  position: absolute; bottom:70%; left:5%; width:40%; height:30%;
  background: radial-gradient(ellipse at 50% 100%, #3a6a2a 0%, #2a5a1a 70%, transparent 100%);
  border-radius:50% 50% 30% 30%;
  animation: canopyRustle 12s ease-in-out infinite;
}
.scn-tranio-advises-master .bench {
  position: absolute; bottom:25%; left:40%; width:20%; height:10%;
  background: linear-gradient(180deg, #6a4a2a 0%, #4a3018 100%);
  border-radius:20% 20% 5% 5%; box-shadow: 0 4px 8px rgba(0,0,0,0.4);
  animation: benchSettle 18s ease-in-out infinite;
}
.scn-tranio-advises-master .figure-standing {
  position: absolute; bottom:30%; left:35%; width:8%; height:25%;
  background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%);
  border-radius:50% 50% 30% 30% / 60% 60% 30% 30%;
  animation: standGesture 10s ease-in-out infinite;
}
.scn-tranio-advises-master .figure-sitting {
  position: absolute; bottom:26%; left:45%; width:10%; height:20%;
  background: linear-gradient(180deg, #3a2a1a 0%, #2a1a0a 100%);
  border-radius:50% 50% 40% 40% / 50% 50% 30% 30%;
  animation: sitLean 12s ease-in-out infinite;
}
.scn-tranio-advises-master .book {
  position: absolute; bottom:28%; left:52%; width:6%; height:4%;
  background: #6a4a2a; border-radius:10%;
  box-shadow: 0 2px 4px rgba(0,0,0,0.3);
  animation: bookLeaf 8s ease-in-out infinite;
}
.scn-tranio-advises-master .sunrays {
  position: absolute; top:0; left:30%; width:40%; height:100%;
  background: linear-gradient(180deg, rgba(255,220,150,0.15) 0%, transparent 80%);
  clip-path: polygon(20% 0, 80% 0, 100% 100%, 0% 100%);
  animation: raysShift 14s ease-in-out infinite;
}
@keyframes skyWarm {
  0% { filter: brightness(1); }
  50% { filter: brightness(1.05); }
  100% { filter: brightness(1); }
}
@keyframes trunkSway {
  0% { transform: rotate(0deg); }
  50% { transform: rotate(1deg); }
  100% { transform: rotate(0deg); }
}
@keyframes canopyRustle {
  0% { transform: scaleY(1) rotate(0deg); }
  50% { transform: scaleY(1.02) rotate(1deg); }
  100% { transform: scaleY(1) rotate(0deg); }
}
@keyframes benchSettle {
  0% { transform: translateY(0); }
  50% { transform: translateY(-1px); }
  100% { transform: translateY(0); }
}
@keyframes standGesture {
  0% { transform: translateX(0) rotate(0deg); }
  50% { transform: translateX(5px) rotate(2deg); }
  100% { transform: translateX(0) rotate(-1deg); }
}
@keyframes sitLean {
  0% { transform: translateY(0) rotate(0deg); }
  50% { transform: translateY(-2px) rotate(3deg); }
  100% { transform: translateY(0) rotate(-1deg); }
}
@keyframes bookLeaf {
  0% { transform: scaleX(1) rotate(0deg); }
  50% { transform: scaleX(0.8) rotate(5deg); }
  100% { transform: scaleX(1) rotate(0deg); }
}
@keyframes raysShift {
  0% { opacity: 0.6; transform: rotate(0deg) scaleY(1); }
  50% { opacity: 1; transform: rotate(2deg) scaleY(1.1); }
  100% { opacity: 0.6; transform: rotate(0deg) scaleY(1); }
}

/* Scene: lucentio-notices-company */
.scn-lucentio-notices-company {
  background: linear-gradient(180deg, #b8d0e8 0%, #e0f0ff 30%, #a8c8e8 60%, #6a8fc0 100%), radial-gradient(ellipse at 70% 20%, rgba(255,220,150,0.3) 0%, transparent 50%);
}
.scn-lucentio-notices-company .sky {
  position: absolute; top:0; left:0; right:0; height:40%;
  background: linear-gradient(180deg, #c0d8f0 0%, #e0f0ff 100%);
  animation: skyHarbor 20s ease-in-out infinite alternate;
}
.scn-lucentio-notices-company .sun {
  position: absolute; top:10%; right:15%; width:6%; height:6%;
  background: radial-gradient(circle, #fff5d0 0%, #ffd080 60%, transparent 80%);
  border-radius:50%; box-shadow: 0 0 40px 15px rgba(255,208,128,0.5);
  animation: sunGlow 12s ease-in-out infinite alternate;
}
.scn-lucentio-notices-company .sea {
  position: absolute; bottom:0; left:0; right:0; height:60%;
  background: linear-gradient(180deg, #4a80a0 0%, #2a5a7a 100%);
  animation: seaWave 15s ease-in-out infinite alternate;
}
.scn-lucentio-notices-company .ship {
  position: absolute; bottom:40%; left:10%; width:20%; height:20%;
  background: linear-gradient(180deg, #5a3a2a 0%, #3a2a1a 100%);
  clip-path: polygon(0% 100%, 10% 40%, 30% 40%, 40% 0%, 60% 0%, 70% 40%, 90% 40%, 100% 100%);
  animation: shipRock 10s ease-in-out infinite;
}
.scn-lucentio-notices-company .sail {
  position: absolute; bottom:50%; left:25%; width:10%; height:15%;
  background: linear-gradient(180deg, #f0e8d0 0%, #d0c8a0 100%);
  clip-path: polygon(50% 0%, 100% 100%, 0% 100%);
  animation: sailFlap 6s ease-in-out infinite alternate;
}
.scn-lucentio-notices-company .dock {
  position: absolute; bottom:20%; right:10%; width:30%; height:10%;
  background: linear-gradient(180deg, #6a4a2a 0%, #4a3018 100%);
  border-radius:0 10% 0 0;
  animation: dockSettle 18s ease-in-out infinite;
}
.scn-lucentio-notices-company .figures-welcome {
  position: absolute; bottom:25%; right:15%; width:8px; height:20px;
  background: #2a2a3a;
  border-radius:50% 50% 40% 40% / 60% 60% 40% 40%;
  box-shadow: 20px 0 #2a2a3a, 40px 0 #2a2a3a, 60px 0 #2a2a3a;
  animation: groupSway 12s ease-in-out infinite;
}
.scn-lucentio-notices-company .figure-main {
  position: absolute; bottom:25%; left:60%; width:6px; height:15px;
  background: #1a1a2a;
  border-radius:50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: mainFigure 8s ease-in-out infinite;
}
@keyframes skyHarbor {
  0% { filter: brightness(1); }
  50% { filter: brightness(1.05); }
  100% { filter: brightness(1); }
}
@keyframes sunGlow {
  0% { box-shadow: 0 0 20px 10px rgba(255,208,128,0.4); transform: scale(1); }
  50% { box-shadow: 0 0 50px 20px rgba(255,208,128,0.7); transform: scale(1.1); }
  100% { box-shadow: 0 0 20px 10px rgba(255,208,128,0.4); transform: scale(1); }
}
@keyframes seaWave {
  0% { transform: translateY(0); }
  50% { transform: translateY(-5px); }
  100% { transform: translateY(0); }
}
@keyframes shipRock {
  0% { transform: rotate(0deg) translateY(0); }
  50% { transform: rotate(2deg) translateY(-3px); }
  100% { transform: rotate(-2deg) translateY(0); }
}
@keyframes sailFlap {
  0% { transform: scaleX(1); }
  50% { transform: scaleX(1.15) rotate(-3deg); }
  100% { transform: scaleX(1); }
}
@keyframes dockSettle {
  0% { transform: translateY(0); }
  50% { transform: translateY(-2px); }
  100% { transform: translateY(0); }
}
@keyframes groupSway {
  0% { transform: translateX(0) rotate(0deg); }
  50% { transform: translateX(3px) rotate(1deg); }
  100% { transform: translateX(0) rotate(-1deg); }
}
@keyframes mainFigure {
  0% { transform: translateX(0); }
  50% { transform: translateX(5px) rotate(2deg); }
  100% { transform: translateX(0); }
}

/* ---------- sly-converses-with-wife ---------- */
.scn-sly-converses-with-wife {
  background:
    linear-gradient(180deg, #f4e4c8 0%, #dbb88a 30%, #a77a5a 70%, #7a5036 100%),
    radial-gradient(ellipse at 30% 20%, rgba(255,230,180,.3) 0%, transparent 60%);
}
.scn-sly-converses-with-wife .wall {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(180deg, #ecd7b0 0%, #c9a87a 100%);
  box-shadow: inset 0 0 60px rgba(0,0,0,.15);
  animation: scw-wall 12s ease-in-out infinite alternate;
}
.scn-sly-converses-with-wife .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 40%;
  background: linear-gradient(180deg, #7a5036 0%, #4a2a1a 100%);
  border-top: 2px solid #5a3a26;
  box-shadow: inset 0 8px 20px rgba(0,0,0,.4);
}
.scn-sly-converses-with-wife .window {
  position: absolute; top: 18%; left: 12%; width: 25%; height: 40%;
  background: radial-gradient(circle at 50% 50%, #fff8e0 0%, #fce4b8 40%, #d4a96a 80%, #a07a4a 100%);
  border: 6px solid #5a3a26;
  border-radius: 4px;
  box-shadow: inset 0 0 40px rgba(255,230,180,.6);
  animation: scw-window 8s ease-in-out infinite alternate;
}
.scn-sly-converses-with-wife .curtain-left {
  position: absolute; top: 15%; left: 10%; width: 14%; height: 48%;
  background: linear-gradient(135deg, #c89a6a 0%, #a07040 60%, #805030 100%);
  border-radius: 2px 0 0 8px;
  box-shadow: 2px 0 6px rgba(0,0,0,.3);
  animation: scw-curtain 5s ease-in-out infinite alternate;
}
.scn-sly-converses-with-wife .curtain-right {
  position: absolute; top: 15%; right: 10%; width: 14%; height: 48%;
  background: linear-gradient(225deg, #c89a6a 0%, #a07040 60%, #805030 100%);
  border-radius: 0 2px 8px 0;
  box-shadow: -2px 0 6px rgba(0,0,0,.3);
  animation: scw-curtain 5s ease-in-out infinite alternate-reverse;
}
.scn-sly-converses-with-wife .bed {
  position: absolute; bottom: 10%; left: 40%; width: 40%; height: 28%;
  background: linear-gradient(180deg, #6a4a3a 0%, #3a2a1a 100%);
  border-radius: 8% 8% 4% 4%;
  box-shadow: 0 -4px 12px rgba(0,0,0,.4);
}
.scn-sly-converses-with-wife .sly {
  position: absolute; bottom: 15%; left: 35%; width: 18px; 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: scw-figure 3s ease-in-out infinite;
}
.scn-sly-converses-with-wife .wife {
  position: absolute; bottom: 15%; left: 52%; width: 16px; height: 36px;
  background: linear-gradient(180deg, #2a1a1a 0%, #1a0a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: scw-figure 3s ease-in-out infinite reverse;
}
.scn-sly-converses-with-wife .light-shaft {
  position: absolute; top: 14%; left: 14%; width: 20%; height: 60%;
  background: linear-gradient(135deg, rgba(255,240,200,.25) 0%, transparent 70%);
  clip-path: polygon(0 0, 100% 0, 80% 100%, 0% 100%);
  filter: blur(4px);
  animation: scw-shaft 10s ease-in-out infinite alternate;
}
@keyframes scw-wall { 0% { opacity: .9; } 50% { opacity: 1; } 100% { opacity: .85; } }
@keyframes scw-window { 0% { box-shadow: inset 0 0 30px rgba(255,230,180,.4); } 50% { box-shadow: inset 0 0 60px rgba(255,230,180,.8); } 100% { box-shadow: inset 0 0 40px rgba(255,230,180,.5); } }
@keyframes scw-curtain { 0% { transform: skewX(0deg) scaleX(1); } 50% { transform: skewX(2deg) scaleX(0.98); } 100% { transform: skewX(0deg) scaleX(1); } }
@keyframes scw-figure { 0% { transform: translateY(0) rotate(-2deg); } 25% { transform: translateY(-2px) rotate(0deg); } 50% { transform: translateY(0) rotate(2deg); } 75% { transform: translateY(-1px) rotate(0deg); } 100% { transform: translateY(0) rotate(-2deg); } }
@keyframes scw-shaft { 0% { opacity: .2; transform: rotate(0deg); } 50% { opacity: .5; transform: rotate(1deg); } 100% { opacity: .3; transform: rotate(-1deg); } }

/* ---------- sly-reluctantly-waits ---------- */
.scn-sly-reluctantly-waits {
  background:
    linear-gradient(180deg, #d9cbb0 0%, #b8a082 30%, #8a6a4e 70%, #5a3a2a 100%),
    radial-gradient(ellipse at 40% 20%, rgba(200,180,150,.2) 0%, transparent 60%);
}
.scn-sly-reluctantly-waits .wall {
  position: absolute; inset: 0 0 45% 0;
  background: linear-gradient(180deg, #d4c0a8 0%, #b09878 100%);
  box-shadow: inset 0 0 50px rgba(0,0,0,.1);
}
.scn-sly-reluctantly-waits .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 45%;
  background: linear-gradient(180deg, #6a4a36 0%, #3a2a1a 100%);
  border-top: 2px solid #4a3020;
  box-shadow: inset 0 6px 15px rgba(0,0,0,.3);
}
.scn-sly-reluctantly-waits .window {
  position: absolute; top: 12%; left: 50%; width: 20%; height: 32%;
  transform: translateX(-50%);
  background: radial-gradient(circle at 50% 50%, #fef0d0 0%, #ebd4a8 40%, #c8a870 80%, #a07a4a 100%);
  border: 5px solid #5a3a26;
  border-radius: 3px;
  box-shadow: inset 0 0 30px rgba(255,240,200,.5);
  animation: srw-window 7s ease-in-out infinite alternate;
}
.scn-sly-reluctantly-waits .figure-sly {
  position: absolute; bottom: 18%; left: 30%; width: 20px; height: 44px;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: srw-figure 4s ease-in-out infinite;
}
.scn-sly-reluctantly-waits .chair {
  position: absolute; bottom: 16%; left: 30%; width: 26px; height: 20px;
  background: linear-gradient(180deg, #4a3020 0%, #2a1a10 100%);
  border-radius: 4px 4px 2px 2px;
  transform: translateX(-3px);
  box-shadow: 0 2px 6px rgba(0,0,0,.4);
}
.scn-sly-reluctantly-waits .shadow {
  position: absolute; bottom: 0; left: 25%; width: 30%; height: 10%;
  background: radial-gradient(ellipse, rgba(0,0,0,.25) 0%, transparent 70%);
  filter: blur(4px);
  animation: srw-shadow 12s ease-in-out infinite alternate;
}
.scn-sly-reluctantly-waits .dust-a {
  position: absolute; top: 20%; left: 10%; width: 6px; height: 6px;
  background: radial-gradient(circle, rgba(255,240,220,.5) 0%, transparent 70%);
  border-radius: 50%;
  filter: blur(2px);
  animation: srw-dust 15s linear infinite;
}
.scn-sly-reluctantly-waits .dust-b {
  position: absolute; top: 40%; right: 15%; width: 4px; height: 4px;
  background: radial-gradient(circle, rgba(255,240,220,.4) 0%, transparent 70%);
  border-radius: 50%;
  filter: blur(1.5px);
  animation: srw-dust 18s linear infinite reverse;
}
@keyframes srw-window { 0% { box-shadow: inset 0 0 20px rgba(255,240,200,.3); } 50% { box-shadow: inset 0 0 40px rgba(255,240,200,.6); } 100% { box-shadow: inset 0 0 25px rgba(255,240,200,.4); } }
@keyframes srw-figure { 0% { transform: translateY(0) rotate(0deg); } 33% { transform: translateY(-3px) rotate(1deg); } 66% { transform: translateY(-1px) rotate(-1deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes srw-shadow { 0% { opacity: .3; transform: scaleX(1); } 50% { opacity: .5; transform: scaleX(1.1); } 100% { opacity: .4; transform: scaleX(0.95); } }
@keyframes srw-dust { 0% { transform: translateY(0) translateX(0) scale(1); opacity: 0; } 20% { opacity: .6; } 50% { transform: translateY(-30px) translateX(10px) scale(1.2); opacity: .4; } 80% { opacity: .2; } 100% { transform: translateY(-60px) translateX(-5px) scale(0.8); opacity: 0; } }

.scn-sly-marvels-at-dream {
  background: 
    linear-gradient(180deg, #d4c9a8 0%, #b8a87a 60%, #8a7a5a 100%),
    radial-gradient(ellipse at 30% 20%, #f0e8c8 0%, transparent 60%);
}
.scn-sly-marvels-at-dream .wall {
  position:absolute; inset:0 0 40% 0;
  background: linear-gradient(180deg, #c8b898 0%, #a09070 100%);
  box-shadow: inset 0 -10px 20px rgba(0,0,0,0.2);
  animation: smd-wall 12s ease-in-out infinite alternate;
}
.scn-sly-marvels-at-dream .floor {
  position:absolute; bottom:0; left:0; right:0; height:40%;
  background: linear-gradient(180deg, #6a5a3a 0%, #4a3a1a 100%);
  border-radius: 10% 10% 0 0 / 5% 5% 0 0;
  box-shadow: inset 0 8px 12px rgba(0,0,0,0.4);
  animation: smd-floor 8s ease-in-out infinite;
}
.scn-sly-marvels-at-dream .window {
  position:absolute; top:8%; left:35%; width:30%; height:45%;
  background: linear-gradient(180deg, #d4e0f0 0%, #b0c8e0 100%);
  border: 4px solid #6a4a2a;
  border-radius: 4px;
  box-shadow: inset 0 0 20px rgba(255,255,200,0.3);
  animation: smd-window 6s ease-in-out infinite alternate;
}
.scn-sly-marvels-at-dream .light-beam {
  position:absolute; top:15%; left:38%; width:24%; height:70%;
  background: linear-gradient(135deg, rgba(255,255,220,0.4) 0%, transparent 80%);
  transform: skewX(-10deg);
  filter: blur(4px);
  opacity:0.7;
  animation: smd-light 4s ease-in-out infinite alternate;
}
.scn-sly-marvels-at-dream .bed {
  position:absolute; bottom:20%; left:10%; width:55%; height:30%;
  background: linear-gradient(180deg, #7a6a5a 0%, #4a3a2a 100%);
  border-radius: 10% 10% 5% 5% / 20% 20% 10% 10%;
  box-shadow: 0 10px 20px rgba(0,0,0,0.3);
  animation: smd-bed 9s ease-in-out infinite;
}
.scn-sly-marvels-at-dream .figure-sly {
  position:absolute; bottom:35%; left:30%; width:12%; height:35%;
  background: radial-gradient(ellipse at 50% 20%, #3a2a1a 0%, #1a0a00 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: smd-figure 5s ease-in-out infinite alternate;
}
.scn-sly-marvels-at-dream .curtain {
  position:absolute; top:5%; right:6%; width:8%; height:70%;
  background: linear-gradient(180deg, #b08050 0%, #705030 100%);
  border-radius: 4px 4px 40% 40%;
  box-shadow: 2px 0 8px rgba(0,0,0,0.3);
  animation: smd-curtain 7s ease-in-out infinite alternate;
}
.scn-sly-marvels-at-dream .pillow {
  position:absolute; bottom:32%; left:12%; width:12%; height:10%;
  background: radial-gradient(ellipse, #d0b080 0%, #a08060 100%);
  border-radius: 50%;
  box-shadow: 0 4px 8px rgba(0,0,0,0.2);
  animation: smd-pillow 6s ease-in-out infinite alternate;
}
@keyframes smd-wall { 0% { opacity:0.9 } 50% { opacity:1 } 100% { opacity:0.85 } }
@keyframes smd-floor { 0% { transform: translateY(0) } 50% { transform: translateY(-2px) } 100% { transform: translateY(0) } }
@keyframes smd-window { 0% { box-shadow: inset 0 0 10px rgba(255,255,200,0.2); background: #d4e0f0; } 50% { box-shadow: inset 0 0 30px rgba(255,255,200,0.6); background: #e0e8f8; } 100% { box-shadow: inset 0 0 15px rgba(255,255,200,0.3); background: #c8d8e8; } }
@keyframes smd-light { 0% { opacity:0.5; transform: skewX(-10deg) scaleX(1) } 50% { opacity:0.8; transform: skewX(-12deg) scaleX(1.05) } 100% { opacity:0.6; transform: skewX(-8deg) scaleX(0.95) } }
@keyframes smd-bed { 0% { transform: translateY(0) } 50% { transform: translateY(-3px) } 100% { transform: translateY(0) } }
@keyframes smd-figure { 0% { transform: translateY(0) rotate(-2deg) } 50% { transform: translateY(-5px) rotate(2deg) } 100% { transform: translateY(-1px) rotate(-1deg) } }
@keyframes smd-curtain { 0% { transform: translateX(0) rotate(0) } 50% { transform: translateX(5px) rotate(2deg) } 100% { transform: translateX(0) rotate(-1deg) } }
@keyframes smd-pillow { 0% { transform: scale(1) } 50% { transform: scale(1.05) } 100% { transform: scale(0.98) } }

.scn-sly-thanks-lord {
  background: 
    linear-gradient(180deg, #cfc5b0 0%, #b0a08a 50%, #8a7a6a 100%),
    radial-gradient(ellipse at 70% 30%, #f5ead0 0%, transparent 65%);
}
.scn-sly-thanks-lord .hall-wall {
  position:absolute; inset:0 0 30% 0;
  background: linear-gradient(180deg, #b8a898 0%, #9a8a7a 100%);
  box-shadow: inset 0 -8px 16px rgba(0,0,0,0.15);
  animation: stl-wall 14s ease-in-out infinite alternate;
}
.scn-sly-thanks-lord .hall-floor {
  position:absolute; bottom:0; left:0; right:0; height:30%;
  background: repeating-linear-gradient(90deg, #5a4a3a 0px, #5a4a3a 30px, #4a3a2a 30px, #4a3a2a 60px);
  box-shadow: inset 0 8px 12px rgba(0,0,0,0.3);
  animation: stl-floor 10s ease-in-out infinite;
}
.scn-sly-thanks-lord .great-window {
  position:absolute; top:4%; right:10%; width:35%; height:60%;
  background: linear-gradient(180deg, #cad4e8 0%, #a0b8d0 100%);
  border: 6px solid #6a5a4a;
  border-radius: 6px;
  box-shadow: inset 0 0 30px rgba(255,255,230,0.4);
  animation: stl-window 8s ease-in-out infinite alternate;
}
.scn-sly-thanks-lord .light-shaft {
  position:absolute; top:6%; right:12%; width:30%; height:80%;
  background: linear-gradient(135deg, rgba(255,245,210,0.35) 0%, transparent 80%);
  transform: skewY(5deg);
  filter: blur(5px);
  opacity:0.6;
  animation: stl-shaft 6s ease-in-out infinite alternate;
}
.scn-sly-thanks-lord .figure-lord {
  position:absolute; bottom:25%; left:18%; width:10%; height:45%;
  background: radial-gradient(ellipse at 50% 20%, #2a2a3a 0%, #0a0a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: stl-lord 7s ease-in-out infinite alternate;
}
.scn-sly-thanks-lord .figure-lady {
  position:absolute; bottom:25%; left:30%; width:9%; height:40%;
  background: radial-gradient(ellipse at 50% 15%, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 50% 50% 40% 40% / 70% 70% 30% 30%;
  transform-origin: bottom center;
  animation: stl-lady 8s ease-in-out infinite alternate;
}
.scn-sly-thanks-lord .figure-attendant1 {
  position:absolute; bottom:25%; left:40%; width:7%; height:35%;
  background: radial-gradient(ellipse at 50% 20%, #3a3a2a 0%, #1a1a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: stl-attendant 9s ease-in-out infinite alternate;
  animation-delay: -2s;
}
.scn-sly-thanks-lord .figure-attendant2 {
  position:absolute; bottom:25%; left:48%; width:6%; height:32%;
  background: radial-gradient(ellipse at 50% 20%, #2a3a2a 0%, #0a1a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: stl-attendant 9s ease-in-out infinite alternate;
  animation-delay: -5s;
}
.scn-sly-thanks-lord .drape {
  position:absolute; top:2%; left:5%; width:6%; height:80%;
  background: linear-gradient(180deg, #b08060 0%, #705040 100%);
  border-radius: 0 0 60% 60% / 0 0 30% 30%;
  box-shadow: 4px 0 12px rgba(0,0,0,0.3);
  animation: stl-drape 11s ease-in-out infinite alternate;
}
@keyframes stl-wall { 0% { opacity:0.9 } 50% { opacity:1 } 100% { opacity:0.85 } }
@keyframes stl-floor { 0% { transform: translateY(0) } 50% { transform: translateY(-2px) } 100% { transform: translateY(0) } }
@keyframes stl-window { 0% { box-shadow: inset 0 0 15px rgba(255,255,230,0.3); background: #cad4e8; } 50% { box-shadow: inset 0 0 40px rgba(255,255,230,0.7); background: #d8e4f0; } 100% { box-shadow: inset 0 0 20px rgba(255,255,230,0.4); background: #bcc8dc; } }
@keyframes stl-shaft { 0% { opacity:0.4; transform: skewY(5deg) scaleX(1) } 50% { opacity:0.7; transform: skewY(7deg) scaleX(1.08) } 100% { opacity:0.5; transform: skewY(3deg) scaleX(0.92) } }
@keyframes stl-lord { 0% { transform: translateY(0) rotate(-1deg) } 50% { transform: translateY(-4px) rotate(2deg) } 100% { transform: translateY(-1px) rotate(0) } }
@keyframes stl-lady { 0% { transform: translateY(0) rotate(1deg) } 50% { transform: translateY(-3px) rotate(-1deg) } 100% { transform: translateY(-1px) rotate(0.5deg) } }
@keyframes stl-attendant { 0% { transform: translateY(0) rotate(0) } 50% { transform: translateY(-2px) rotate(1.5deg) } 100% { transform: translateY(0) rotate(-0.5deg) } }
@keyframes stl-drape { 0% { transform: translateX(0) rotate(0) } 50% { transform: translateX(4px) rotate(3deg) } 100% { transform: translateX(0) rotate(-2deg) } }

.scn-sly-converses-with-wife {
  background: 
    linear-gradient(135deg, #f5e6c8 0%, #dcc8a0 40%, #c4a87a 100%),
    radial-gradient(ellipse at 30% 30%, rgba(255, 240, 200, 0.6) 0%, transparent 60%);
}

.scn-sly-converses-with-wife .window-light {
  position: absolute;
  left: 5%;
  top: 5%;
  width: 30%;
  height: 60%;
  background: linear-gradient(180deg, #fff8e0 0%, #ffe8b0 50%, transparent 100%);
  border-radius: 4% 4% 10% 10% / 8% 8% 20% 20%;
  box-shadow: inset 0 0 60px 20px rgba(255, 230, 150, 0.3);
  animation: sly-window 6s ease-in-out infinite alternate;
}

.scn-sly-converses-with-wife .curtain-left {
  position: absolute;
  left: 5%;
  top: 5%;
  width: 18%;
  height: 70%;
  background: linear-gradient(90deg, #8a6a4a 0%, #b08a6a 40%, #d4b89a 100%);
  border-radius: 0 60% 60% 0 / 0 40% 40% 0;
  filter: drop-shadow(4px 4px 6px rgba(0,0,0,0.2));
  transform-origin: left center;
  animation: sly-curtain-sway 8s ease-in-out infinite;
}

.scn-sly-converses-with-wife .curtain-right {
  position: absolute;
  left: 23%;
  top: 5%;
  width: 14%;
  height: 70%;
  background: linear-gradient(90deg, #d4b89a 0%, #b08a6a 60%, #8a6a4a 100%);
  border-radius: 60% 0 0 60% / 40% 0 0 40%;
  filter: drop-shadow(-4px 4px 6px rgba(0,0,0,0.2));
  transform-origin: right center;
  animation: sly-curtain-sway 8s ease-in-out infinite alternate-reverse;
}

.scn-sly-converses-with-wife .bed-frame {
  position: absolute;
  bottom: 8%;
  right: 8%;
  width: 55%;
  height: 45%;
  background: linear-gradient(180deg, #7a5a3a 0%, #5a3a1a 100%);
  border-radius: 6% 6% 12% 12% / 10% 10% 20% 20%;
  box-shadow: 0 8px 20px rgba(0,0,0,0.3), inset 0 -4px 8px rgba(0,0,0,0.4);
}

.scn-sly-converses-with-wife .bed-sheet {
  position: absolute;
  bottom: 8%;
  right: 9%;
  width: 52%;
  height: 30%;
  background: linear-gradient(180deg, #f0e6d0 0%, #e0d0b0 50%, #d0b890 100%);
  border-radius: 4% 4% 6% 6% / 8% 8% 20% 20%;
  box-shadow: inset 0 4px 12px rgba(0,0,0,0.1);
  transform-origin: bottom center;
  animation: sly-sheet-breathe 10s ease-in-out infinite;
}

.scn-sly-converses-with-wife .figure-husband {
  position: absolute;
  bottom: 12%;
  right: 32%;
  width: 16%;
  height: 40%;
  background: linear-gradient(180deg, #3a2a1a 0%, #2a1a0a 50%, #1a0a00 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.3);
  animation: sly-husband-stand 4s ease-in-out infinite;
}

.scn-sly-converses-with-wife .figure-wife {
  position: absolute;
  bottom: 14%;
  right: 12%;
  width: 14%;
  height: 38%;
  background: linear-gradient(180deg, #4a3a2a 0%, #3a2a1a 50%, #2a1a0a 100%);
  border-radius: 50% 50% 45% 45% / 65% 65% 35% 35%;
  transform-origin: bottom center;
  box-shadow: 4px 0 8px rgba(0,0,0,0.3);
  animation: sly-wife-gesture 5s ease-in-out infinite;
}

.scn-sly-converses-with-wife .dust-mote.d1 {
  position: absolute;
  left: 10%;
  top: 30%;
  width: 4px;
  height: 4px;
  background: rgba(255, 240, 180, 0.6);
  border-radius: 50%;
  filter: blur(1px);
  animation: sly-dust 20s linear infinite;
}

.scn-sly-converses-with-wife .dust-mote.d2 {
  left: 15%;
  top: 45%;
  width: 3px;
  height: 3px;
  background: rgba(255, 220, 150, 0.5);
  animation: sly-dust 25s linear infinite reverse;
}

@keyframes sly-window {
  0%   { opacity: 0.7; transform: scaleX(1) scaleY(1); }
  50%  { opacity: 1;   transform: scaleX(1.02) scaleY(1.01); }
  100% { opacity: 0.8; transform: scaleX(0.98) scaleY(0.99); }
}

@keyframes sly-curtain-sway {
  0%   { transform: rotate(0deg) scaleY(1); }
  25%  { transform: rotate(3deg) scaleY(1.02); }
  50%  { transform: rotate(-2deg) scaleY(0.98); }
  75%  { transform: rotate(1deg) scaleY(1.01); }
  100% { transform: rotate(0deg) scaleY(1); }
}

@keyframes sly-sheet-breathe {
  0%   { transform: translateY(0) scaleY(1); }
  50%  { transform: translateY(-2px) scaleY(1.01); }
  100% { transform: translateY(0) scaleY(1); }
}

@keyframes sly-husband-stand {
  0%   { transform: rotate(0deg) translateX(0); }
  30%  { transform: rotate(2deg) translateX(2px); }
  60%  { transform: rotate(-1deg) translateX(-1px); }
  100% { transform: rotate(0deg) translateX(0); }
}

@keyframes sly-wife-gesture {
  0%   { transform: rotate(0deg) translateY(0); }
  20%  { transform: rotate(-3deg) translateY(-2px); }
  40%  { transform: rotate(2deg) translateY(1px); }
  60%  { transform: rotate(-1deg) translateY(-1px); }
  80%  { transform: rotate(1deg) translateY(0); }
  100% { transform: rotate(0deg) translateY(0); }
}

@keyframes sly-dust {
  0%   { transform: translate(0, 0) scale(1); opacity: 0; }
  10%  { opacity: 0.6; }
  50%  { transform: translate(20px, -30px) scale(1.5); opacity: 0.8; }
  90%  { opacity: 0.4; }
  100% { transform: translate(40px, -60px) scale(0.5); opacity: 0; }
}

.scn-sly-marvels-at-dream {
  background: 
    linear-gradient(180deg, #c9b99a 0%, #a3855e 40%, #7a603a 100%),
    radial-gradient(ellipse at 30% 40%, #f5e6c8 0%, transparent 60%);
}
.scn-sly-marvels-at-dream .room-bg {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #b8965f 0%, #8a6a3a 100%);
  border-radius: 0 0 30% 30% / 0 0 20% 20%;
  box-shadow: inset 0 20px 40px rgba(0,0,0,.3);
  animation: smad-bg 12s ease-in-out infinite alternate;
}
@keyframes smad-bg { 0% { opacity:.85 } 50% { opacity:1 } 100% { opacity:.9 } }

.scn-sly-marvels-at-dream .window-frame {
  position: absolute; top: 8%; left: 55%; width: 80px; height: 100px;
  background: linear-gradient(180deg, #5e4a30 0%, #3b2a1a 100%);
  border-radius: 6px 6px 10px 10px;
  box-shadow: 0 0 0 6px #4a3620, 0 4px 12px rgba(0,0,0,.5);
  transform: perspective(600px) rotateY(-5deg);
  animation: smad-frame 8s ease-in-out infinite alternate;
}
@keyframes smad-frame { 0% { transform: perspective(600px) rotateY(-5deg) scale(1) } 50% { transform: perspective(600px) rotateY(-3deg) scale(1.02) } 100% { transform: perspective(600px) rotateY(-5deg) scale(1) } }

.scn-sly-marvels-at-dream .window-light {
  position: absolute; top: 12%; left: 58%; width: 60px; height: 80px;
  background: radial-gradient(ellipse at 50% 30%, #ffedb0 0%, #f5d68a 40%, transparent 70%);
  box-shadow: 0 0 60px 20px rgba(245,214,138,.4);
  animation: smad-light 4s ease-in-out infinite alternate;
}
@keyframes smad-light { 0% { opacity:.8; transform: scale(1) } 50% { opacity:1; transform: scale(1.05) } 100% { opacity:.85; transform: scale(0.98) } }

.scn-sly-marvels-at-dream .sly-figure {
  position: absolute; bottom: 20%; left: 28%; width: 40px; height: 70px;
  background: linear-gradient(180deg, #2c1f12 0%, #1a100a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: 50% 90%;
  animation: smad-figure 3s ease-in-out infinite alternate;
}
@keyframes smad-figure { 0% { transform: rotate(0deg) translateY(0) } 50% { transform: rotate(2deg) translateY(-2px) } 100% { transform: rotate(-1deg) translateY(0) } }

.scn-sly-marvels-at-dream .chair {
  position: absolute; bottom: 20%; left: 25%; width: 50px; height: 60px;
  background: linear-gradient(180deg, #6b4f2c 0%, #4a3518 100%);
  border-radius: 6px 6px 4px 4px;
  box-shadow: 0 4px 8px rgba(0,0,0,.4);
  transform: translateX(-10%);
  animation: smad-chair 6s ease-in-out infinite;
}
@keyframes smad-chair { 0%,100% { transform: translateX(-10%) translateY(0) } 50% { transform: translateX(-8%) translateY(-2px) } }

.scn-sly-marvels-at-dream .shadow-floor {
  position: absolute; bottom: 18%; left: 20%; width: 80px; height: 24px;
  background: radial-gradient(ellipse at 50% 50%, #3a2a1a 0%, transparent 70%);
  opacity: .5;
  animation: smad-shadow 5s ease-in-out infinite alternate;
}
@keyframes smad-shadow { 0% { opacity:.4; transform: scaleX(1) } 50% { opacity:.6; transform: scaleX(1.1) } 100% { opacity:.5; transform: scaleX(1) } }

.scn-sly-marvels-at-dream .dust-mote {
  position: absolute; width: 4px; height: 4px;
  background: radial-gradient(circle, #fff8e0 0%, transparent 70%);
  border-radius: 50%; filter: blur(1px);
  animation: smad-dust 12s ease-in-out infinite;
}
.scn-sly-marvels-at-dream .dust-a { top: 25%; left: 60%; animation-delay:0s; }
.scn-sly-marvels-at-dream .dust-b { top: 35%; left: 65%; width:3px; height:3px; animation-delay:3s; }
.scn-sly-marvels-at-dream .dust-c { top: 20%; left: 55%; width:5px; height:5px; animation-delay:6s; }
@keyframes smad-dust { 0% { transform: translate(0,0) scale(1); opacity:.6 } 33% { transform: translate(8px,-10px) scale(1.2); opacity:.9 } 66% { transform: translate(-4px,-5px) scale(.9); opacity:.7 } 100% { transform: translate(2px,0) scale(1); opacity:.5 } }

.scn-sly-reluctantly-waits {
  background:
    linear-gradient(135deg, #c9b99a 0%, #a5865a 50%, #7a5a3a 100%),
    radial-gradient(ellipse at 20% 30%, #f5e6c8 0%, transparent 60%);
}
.scn-sly-reluctantly-waits .window {
  position: absolute;
  left: 15%;
  top: 15%;
  width: 80px;
  height: 100px;
  background: radial-gradient(circle at 50% 50%, #fff8e0 0%, #d4c3a3 70%);
  border-radius: 6px 6px 10px 10px / 8px 8px 12px 12px;
  box-shadow:
    inset 0 0 30px 10px rgba(255, 248, 224, 0.6),
    0 0 60px 20px rgba(255, 248, 224, 0.3);
  animation: sly-glow 4s ease-in-out infinite alternate;
}
.scn-sly-reluctantly-waits .light-shaft {
  position: absolute;
  left: 5%;
  top: 12%;
  width: 100px;
  height: 120px;
  background: linear-gradient(180deg, rgba(255, 248, 224, 0.3) 0%, transparent 100%);
  transform: skewX(-10deg) translateY(20px);
  opacity: 0.6;
  filter: blur(2px);
  animation: sly-shift 6s ease-in-out infinite alternate;
}
.scn-sly-reluctantly-waits .figure-head {
  position: absolute;
  left: 35%;
  top: 35%;
  width: 28px;
  height: 32px;
  background: linear-gradient(135deg, #3a2a1a 0%, #1a120a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: center bottom;
  animation: sly-nod 5s ease-in-out infinite;
}
.scn-sly-reluctantly-waits .figure-body {
  position: absolute;
  left: 33%;
  top: 50%;
  width: 40px;
  height: 60px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a120a 100%);
  border-radius: 30% 30% 20% 20% / 40% 40% 20% 20%;
  transform-origin: center top;
  animation: sly-breathe 4s ease-in-out infinite;
}
.scn-sly-reluctantly-waits .shadow {
  position: absolute;
  left: 28%;
  top: 70%;
  width: 80px;
  height: 20px;
  background: rgba(0, 0, 0, 0.25);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  filter: blur(4px);
  animation: sly-shadow 8s ease-in-out infinite alternate;
}
.scn-sly-reluctantly-waits .stool {
  position: absolute;
  left: 35%;
  top: 72%;
  width: 50px;
  height: 12px;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 6px;
  box-shadow: 0 2px 6px rgba(0,0,0,0.3);
}

@keyframes sly-glow {
  0% { opacity: 0.8; box-shadow: inset 0 0 20px 8px rgba(255,248,224,0.5), 0 0 40px 15px rgba(255,248,224,0.2); }
  50% { opacity: 1; box-shadow: inset 0 0 40px 15px rgba(255,248,224,0.7), 0 0 80px 30px rgba(255,248,224,0.4); }
  100% { opacity: 0.85; box-shadow: inset 0 0 25px 10px rgba(255,248,224,0.55), 0 0 50px 18px rgba(255,248,224,0.25); }
}
@keyframes sly-shift {
  0% { transform: skewX(-10deg) translateY(20px); opacity: 0.5; }
  50% { transform: skewX(-8deg) translateY(18px); opacity: 0.7; }
  100% { transform: skewX(-10deg) translateY(20px); opacity: 0.5; }
}
@keyframes sly-nod {
  0% { transform: translateY(0) rotate(0deg); }
  25% { transform: translateY(-2px) rotate(-2deg); }
  50% { transform: translateY(0) rotate(0deg); }
  75% { transform: translateY(-1px) rotate(1deg); }
  100% { transform: translateY(0) rotate(0deg); }
}
@keyframes sly-breathe {
  0% { transform: scaleY(1); }
  50% { transform: scaleY(1.015); }
  100% { transform: scaleY(1); }
}
@keyframes sly-shadow {
  0% { transform: translateX(0) scaleX(1); opacity: 0.6; }
  50% { transform: translateX(-5px) scaleX(0.95); opacity: 0.4; }
  100% { transform: translateX(0) scaleX(1); opacity: 0.6; }
}

.scn-sly-thanks-lord { background: linear-gradient(160deg, #c89b6a 0%, #b8845a 40%, #9a6a3a 100%), radial-gradient(ellipse at 30% 25%, #ffd080 0%, transparent 70%); overflow: hidden; }
.scn-sly-thanks-lord .window { position: absolute; top: 16%; left: 14%; width: 72px; height: 100px; background: radial-gradient(ellipse at 50% 50%, #fff5d6 0%, #ffd080 55%, #c88840 100%); border-radius: 4px; border: 6px solid #6a4a2a; box-shadow: 0 0 50px 25px rgba(255,200,100,.45), 0 0 110px 55px rgba(255,180,80,.2); animation: stl-window 6s ease-in-out infinite alternate; }
.scn-sly-thanks-lord .light-beam { position: absolute; top: 18%; left: 22%; width: 220px; height: 320px; background: linear-gradient(135deg, rgba(255,220,150,.3) 0%, rgba(255,200,100,.1) 45%, transparent 75%); transform-origin: top left; transform: rotate(14deg); filter: blur(6px); animation: stl-beam 8s ease-in-out infinite alternate; }
.scn-sly-thanks-lord .lord { position: absolute; bottom: 22%; right: 16%; width: 40px; height: 95px; background: linear-gradient(180deg, #3a2a1a 0%, #2a1a0a 100%); border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%; transform-origin: bottom center; box-shadow: -4px 0 8px rgba(0,0,0,.3); animation: stl-lord 4s ease-in-out infinite; }
.scn-sly-thanks-lord .lord::before { content: ''; position: absolute; top: -8px; left: 50%; transform: translateX(-50%); width: 26px; height: 26px; background: #3a2a1a; border-radius: 50%; }
.scn-sly-thanks-lord .lady-page { position: absolute; bottom: 22%; left: 28%; width: 30px; height: 84px; background: linear-gradient(180deg, #c89868 0%, #a07848 100%); border-radius: 40% 40% 30% 30% / 50% 50% 35% 35%; transform-origin: bottom center; box-shadow: 4px 0 8px rgba(0,0,0,.2); animation: stl-lady 5s ease-in-out infinite; }
.scn-sly-thanks-lord .lady-page::before { content: ''; position: absolute; top: -6px; left: 50%; transform: translateX(-50%); width: 20px; height: 20px; background: #d4a86a; border-radius: 50%; box-shadow: 0 0 10px 3px rgba(255,200,150,.3); }
.scn-sly-thanks-lord .floor { position: absolute; bottom: 0; left: 0; right: 0; height: 22%; background: linear-gradient(180deg, #8b6f47 0%, #6b4f2f 50%, #4a3020 100%); border-radius: 30% 30% 0 0 / 12% 12% 0 0; box-shadow: inset 0 8px 18px rgba(0,0,0,.35); animation: stl-floor 12s ease-in-out infinite alternate; }
.scn-sly-thanks-lord .dust { position: absolute; top: 28%; left: 26%; width: 4px; height: 4px; background: rgba(255,230,180,.7); border-radius: 50%; box-shadow: 18px 28px 0 2px rgba(255,230,180,.4), 55px 12px 0 1px rgba(255,230,180,.3), 95px 38px 0 3px rgba(255,230,180,.5), 145px 18px 0 2px rgba(255,230,180,.4), 38px 65px 0 1px rgba(255,230,180,.3), 115px 58px 0 2px rgba(255,230,180,.45), 75px 85px 0 1px rgba(255,230,180,.35); filter: blur(1px); animation: stl-dust 14s ease-in-out infinite alternate; }
.scn-sly-thanks-lord .arch { position: absolute; top: 0; left: 0; right: 0; bottom: 0; border: 20px solid #5a3a2a; border-radius: 50% 50% 0 0 / 30% 30% 0 0; pointer-events: none; box-shadow: inset 0 0 60px 20px rgba(0,0,0,.3); animation: stl-arch 14s ease-in-out infinite alternate; }
@keyframes stl-window { 0% { opacity: .85; box-shadow: 0 0 40px 20px rgba(255,200,100,.4), 0 0 100px 50px rgba(255,180,80,.15); } 50% { opacity: 1; box-shadow: 0 0 70px 35px rgba(255,210,120,.6), 0 0 140px 70px rgba(255,190,90,.25); } 100% { opacity: .9; box-shadow: 0 0 50px 25px rgba(255,200,100,.45), 0 0 120px 60px rgba(255,180,80,.2); } }
@keyframes stl-beam { 0% { opacity: .5; transform: rotate(12deg) scaleX(.95); } 50% { opacity: .8; transform: rotate(16deg) scaleX(1.05); } 100% { opacity: .6; transform: rotate(14deg) scaleX(.98); } }
@keyframes stl-lord { 0%,100% { transform: translateY(0) rotate(-1deg); } 50% { transform: translateY(-2px) rotate(1deg); } }
@keyframes stl-lady { 0%,100% { transform: translateY(0) rotate(1deg); } 50% { transform: translateY(-2px) rotate(-1deg); } }
@keyframes stl-floor { 0% { opacity: .9; } 50% { opacity: 1; } 100% { opacity: .95; } }
@keyframes stl-dust { 0% { transform: translate(0,0) scale(1); opacity: .3; } 50% { transform: translate(12px,-18px) scale(1.3); opacity: .8; } 100% { transform: translate(24px,-36px) scale(.9); opacity: .2; } }
@keyframes stl-arch { 0% { opacity: .8; border-color: #5a3a2a; } 50% { opacity: 1; border-color: #6a4a3a; } 100% { opacity: .85; border-color: #5a3a2a; } }
/* end per-scene blocks */

/* auto-stub: parent tag-classes flagged by CSS audit */
.ajar { position: absolute; pointer-events: none; }

/* ============ tier S ============ */
/* per-scene blocks (EXP step_scenes) */
/* suitors-unite */
.scn-suitors-unite { background: linear-gradient(180deg, #1a1a2e 0%, #2a1f1f 40%, #1f1414 100%), radial-gradient(ellipse at 60% 20%, #3a2a2a 0%, transparent 70%); }
.scn-suitors-unite .bg-wall { position:absolute; inset:0 0 35% 0; background: linear-gradient(180deg, #2e2323 0%, #1a1212 100%); }
.scn-suitors-unite .table { position:absolute; bottom:20%; left:10%; width:80%; height:12%; background: linear-gradient(180deg, #3a2a1a 0%, #2a1a0a 100%); border-radius: 10% 10% 0 0; transform: perspective(400px) rotateX(15deg); box-shadow: 0 -8px 20px rgba(0,0,0,0.6); }
.scn-suitors-unite .candle { position:absolute; bottom:30%; left:50%; width:8px; height:40px; background: linear-gradient(180deg, #5a3a1a 0%, #3a2a0a 100%); border-radius: 2px 2px 0 0; transform: translateX(-50%); }
.scn-suitors-unite .candle::before { content:''; position:absolute; top:-10px; left:50%; width:14px; height:14px; background: radial-gradient(circle, #ffd080 0%, #b06020 70%); border-radius:50%; transform: translateX(-50%); box-shadow: 0 0 24px 8px #d08030; animation: su1-flame 2s ease-in-out infinite alternate; }
.scn-suitors-unite .figure-tranio { position:absolute; bottom:22%; left:20%; width:20px; height:50px; background: linear-gradient(180deg, #3a2a2a 0%, #1a1010 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: su1-figure 8s ease-in-out infinite; }
.scn-suitors-unite .figure-gremio { position:absolute; bottom:22%; left:38%; width:18px; height:48px; background: linear-gradient(180deg, #2a2a3a 0%, #10101a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: su1-figure 10s ease-in-out infinite alternate; }
.scn-suitors-unite .figure-hortensio { position:absolute; bottom:22%; left:55%; width:18px; height:46px; background: linear-gradient(180deg, #3a2a1a 0%, #1a0a0a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: su1-figure 9s ease-in-out infinite alternate-reverse; }
.scn-suitors-unite .figure-petruchio { position:absolute; bottom:22%; left:70%; width:22px; height:52px; background: linear-gradient(180deg, #2a3a2a 0%, #0a1a0a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: su1-figure 12s ease-in-out infinite; }
.scn-suitors-unite .shadow { position:absolute; bottom:0; left:0; right:0; height:45%; background: linear-gradient(180deg, transparent 0%, rgba(0,0,0,0.6) 100%); animation: su1-shadow 6s ease-in-out infinite alternate; }
@keyframes su1-flame { 0% { transform: translateX(-50%) scale(1) rotate(0deg); } 50% { transform: translateX(-50%) scale(1.1) rotate(3deg); } 100% { transform: translateX(-50%) scale(0.95) rotate(-3deg); } }
@keyframes su1-figure { 0% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-2px) rotate(1deg); } 100% { transform: translateY(1px) rotate(-1deg); } }
@keyframes su1-shadow { 0% { opacity:0.4; } 50% { opacity:0.6; } 100% { opacity:0.4; } }

/* katharina-strikes-bianca */
.scn-katharina-strikes-bianca { background: linear-gradient(180deg, #0a0a1a 0%, #1a0a1a 40%, #0a0010 100%), radial-gradient(ellipse at 40% 60%, #2a1020 0%, transparent 70%); }
.scn-katharina-strikes-bianca .bg-dark { position:absolute; inset:0 0 30% 0; background: linear-gradient(180deg, #15101a 0%, #0a0510 100%); }
.scn-katharina-strikes-bianca .figure-katharina { position:absolute; bottom:25%; left:30%; width:30px; height:60px; background: linear-gradient(180deg, #3a1a2a 0%, #1a0a10 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: ksb-kath 4s ease-in-out infinite; }
.scn-katharina-strikes-bianca .figure-bianca { position:absolute; bottom:25%; left:55%; width:24px; height:54px; background: linear-gradient(180deg, #2a1a3a 0%, #0a051a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: ksb-bianca 3s ease-in-out infinite alternate; }
.scn-katharina-strikes-bianca .arm-strike { position:absolute; bottom:60%; left:40%; width:24px; height:8px; background: linear-gradient(180deg, #4a2a3a 0%, #2a0a1a 100%); border-radius: 20% 80% 20% 80% / 50% 50% 50% 50%; transform-origin: 0% 50%; animation: ksb-arm 0.8s ease-in-out infinite; }
.scn-katharina-strikes-bianca .floor { position:absolute; bottom:0; left:0; right:0; height:25%; background: linear-gradient(180deg, #1a101a 0%, #0a050a 100%); }
.scn-katharina-strikes-bianca .shadow-split { position:absolute; bottom:25%; left:45%; width:10%; height:30%; background: rgba(0,0,0,0.5); filter: blur(4px); animation: ksb-shadow 5s ease-in-out infinite; }
@keyframes ksb-kath { 0% { transform: translateY(0) rotate(2deg); } 50% { transform: translateY(-5px) rotate(-2deg); } 100% { transform: translateY(2px) rotate(1deg); } }
@keyframes ksb-bianca { 0% { transform: translateY(0) scaleY(1); } 50% { transform: translateY(-3px) scaleY(0.95); } 100% { transform: translateY(1px) scaleY(1.02); } }
@keyframes ksb-arm { 0% { transform: rotate(-20deg); } 25% { transform: rotate(30deg); } 50% { transform: rotate(-10deg); } 75% { transform: rotate(40deg); } 100% { transform: rotate(-20deg); } }
@keyframes ksb-shadow { 0% { opacity:0.4; left:45%; } 50% { opacity:0.8; left:40%; } 100% { opacity:0.4; left:45%; } }

/* petruchio-demands-to-see-kate */
.scn-petruchio-demands-to-see-kate { background: linear-gradient(180deg, #d4c4a0 0%, #c8b890 40%, #b8a880 100%), radial-gradient(ellipse at 30% 20%, #f0e0c0 0%, transparent 60%); }
.scn-petruchio-demands-to-see-kate .bg-light { position:absolute; inset:0 0 20% 0; background: linear-gradient(180deg, #ece0c8 0%, #d8ccb0 100%); }
.scn-petruchio-demands-to-see-kate .window { position:absolute; top:10%; left:5%; width:40%; height:50%; background: radial-gradient(ellipse at 30% 50%, #f8f0d8 0%, #c8b898 70%); border: 6px solid #6a5a4a; border-radius: 4%; box-shadow: inset 0 0 30px rgba(255,255,200,0.3); animation: pts-window 12s ease-in-out infinite alternate; }
.scn-petruchio-demands-to-see-kate .figure-petruchio { position:absolute; bottom:20%; left:35%; width:24px; height:56px; background: linear-gradient(180deg, #4a3a3a 0%, #2a1a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: pts-fig1 6s ease-in-out infinite; }
.scn-petruchio-demands-to-see-kate .figure-hortensio { position:absolute; bottom:20%; left:55%; width:20px; height:50px; background: linear-gradient(180deg, #3a4a3a 0%, #1a2a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: pts-fig2 7s ease-in-out infinite alternate; }
.scn-petruchio-demands-to-see-kate .lute-broken { position:absolute; bottom:35%; left:52%; width:30px; height:8px; background: linear-gradient(90deg, #6a4a2a 0%, #4a2a1a 50%, #6a4a2a 100%); border-radius: 40% 40% 10% 10%; transform: rotate(-30deg); animation: pts-lute 0.5s ease-in-out infinite; }
.scn-petruchio-demands-to-see-kate .door { position:absolute; bottom:0; right:5%; width:15%; height:70%; background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%); border-radius: 4% 4% 0 0; }
.scn-petruchio-demands-to-see-kate .sunbeam { position:absolute; top:5%; left:0; width:30%; height:80%; background: linear-gradient(135deg, rgba(255,255,220,0.4) 0%, transparent 100%); animation: pts-beam 8s ease-in-out infinite alternate; }
@keyframes pts-window { 0% { box-shadow: inset 0 0 20px rgba(255,255,200,0.2); } 50% { box-shadow: inset 0 0 60px rgba(255,255,200,0.6); } 100% { box-shadow: inset 0 0 30px rgba(255,255,200,0.3); } }
@keyframes pts-fig1 { 0% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-4px) rotate(2deg); } 100% { transform: translateY(1px) rotate(-1deg); } }
@keyframes pts-fig2 { 0% { transform: translateY(0) scaleY(1); } 50% { transform: translateY(-3px) scaleY(0.96); } 100% { transform: translateY(1px) scaleY(1.02); } }
@keyframes pts-lute { 0% { transform: rotate(-30deg); } 50% { transform: rotate(-35deg); } 100% { transform: rotate(-30deg); } }
@keyframes pts-beam { 0% { transform: translateX(-10px); opacity:0.6; } 50% { transform: translateX(10px); opacity:1; } 100% { transform: translateX(-10px); opacity:0.6; } }

/* petruchio-turns-insults */
.scn-petruchio-turns-insults { background: linear-gradient(180deg, #e6d8b8 0%, #d4c4a0 40%, #c8b890 100%), radial-gradient(ellipse at 50% 80%, #f0e0c0 0%, transparent 70%); }
.scn-petruchio-turns-insults .bg-cheerful { position:absolute; inset:0 0 15% 0; background: linear-gradient(180deg, #f0e8d0 0%, #e0d0b0 100%); }
.scn-petruchio-turns-insults .figure-kate { position:absolute; bottom:25%; left:25%; width:26px; height:58px; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a10 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: pti-kate 2s ease-in-out infinite; }
.scn-petruchio-turns-insults .figure-petruchio-profile { position:absolute; bottom:25%; left:55%; width:22px; height:54px; background: linear-gradient(180deg, #2a3a2a 0%, #0a1a0a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: pti-pet 2.5s ease-in-out infinite alternate; }
.scn-petruchio-turns-insults .wasp { position:absolute; top:25%; left:45%; width:8px; height:12px; background: radial-gradient(circle, #c8553d 0%, #802d1a 100%); border-radius: 40% 40% 50% 50%; animation: pti-wasp 1.5s ease-in-out infinite; box-shadow: 0 0 6px #c8553d; }
.scn-petruchio-turns-insults .crab-apple { position:absolute; top:40%; left:60%; width:14px; height:14px; background: radial-gradient(circle, #a0461a 0%, #6a2a0a 100%); border-radius: 50%; animation: pti-apple 3s ease-in-out infinite; }
.scn-petruchio-turns-insults .hen { position:absolute; bottom:35%; left:15%; width:16px; height:20px; background: radial-gradient(ellipse, #b87878 0%, #6a2020 100%); border-radius: 60% 60% 50% 50%; animation: pti-hen 4s ease-in-out infinite; }
.scn-petruchio-turns-insults .aureole { position:absolute; top:5%; left:30%; width:40%; height:60%; background: radial-gradient(ellipse at 50% 30%, rgba(255,220,150,0.3) 0%, transparent 70%); animation: pti-aureole 5s ease-in-out infinite alternate; }
@keyframes pti-kate { 0% { transform: translateY(0) rotate(2deg) scaleX(1); } 50% { transform: translateY(-5px) rotate(-3deg) scaleX(0.95); } 100% { transform: translateY(2px) rotate(1deg) scaleX(1); } }
@keyframes pti-pet { 0% { transform: translateY(0) rotate(-1deg) scaleY(1); } 50% { transform: translateY(-4px) rotate(3deg) scaleY(0.98); } 100% { transform: translateY(1px) rotate(-2deg) scaleY(1.02); } }
@keyframes pti-wasp { 0% { transform: translate(0,0) rotate(0deg); } 25% { transform: translate(10px,-15px) rotate(30deg); } 50% { transform: translate(-5px,-8px) rotate(-20deg); } 75% { transform: translate(8px,-10px) rotate(15deg); } 100% { transform: translate(0,0) rotate(0deg); } }
@keyframes pti-apple { 0% { transform: translate(0,0) scale(1); } 50% { transform: translate(5px,-12px) scale(1.1); } 100% { transform: translate(0,0) scale(1); } }
@keyframes pti-hen { 0% { transform: translate(0,0) rotate(0deg); } 25% { transform: translate(8px,-3px) rotate(10deg); } 50% { transform: translate(0,-6px) rotate(-5deg); } 75% { transform: translate(-8px,-2px) rotate(15deg); } 100% { transform: translate(0,0) rotate(0deg); } }
@keyframes pti-aureole { 0% { opacity:0.2; } 50% { opacity:0.5; } 100% { opacity:0.2; } }

.scn-katharina-throws-cap {
  background: linear-gradient(180deg, #d4c4a8 0%, #b8a88a 40%, #8a7a6a 100%), radial-gradient(ellipse at 60% 30%, #fff8e0 0%, transparent 60%);
}
.scn-katharina-throws-cap .wall { position:absolute; inset:0 0 40% 0; background: linear-gradient(180deg, #e8dcc6 0%, #d4c4a8 100%); }
.scn-katharina-throws-cap .floor { position:absolute; bottom:0; left:0; right:0; height:40%; background: linear-gradient(180deg, #6a5a4a 0%, #4a3a2a 100%); border-radius: 0 0 20% 20%; }
.scn-katharina-throws-cap .window { position:absolute; top:5%; left:20%; width:120px; height:160px; background: linear-gradient(135deg, #fff8e0 0%, #f0e0c0 100%); border: 4px solid #8a7a6a; border-radius: 4px; box-shadow: 0 0 40px 20px rgba(255,248,224,.3); animation: ktc-glow 2s ease-in-out infinite alternate; }
.scn-katharina-throws-cap .petruchio { position:absolute; bottom:20%; left:15%; width:40px; height:100px; background: linear-gradient(180deg, #2a1a1a 0%, #1a0a0a 100%); border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%; transform-origin: bottom center; animation: ktc-head 4s ease-in-out infinite; }
.scn-katharina-throws-cap .katharina { position:absolute; bottom:20%; right:25%; width:35px; height:90px; background: linear-gradient(180deg, #3a2a2a 0%, #1a0a0a 100%); border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%; transform-origin: 50% 70%; animation: ktc-arm 3s ease-in-out infinite; }
.scn-katharina-throws-cap .cap { position:absolute; bottom:50%; right:55%; width:20px; height:12px; background: radial-gradient(circle, #a0461a 0%, #5e2a0a 100%); border-radius: 50%; box-shadow: 0 0 8px rgba(160,70,26,.5); animation: ktc-cap 2s ease-out infinite; }
.scn-katharina-throws-cap .bystanders { position:absolute; bottom:20%; left:35%; width:60px; height:80px; background: radial-gradient(ellipse at 30% 50%, #2a1a1a 40%, transparent 60%) left, radial-gradient(ellipse at 70% 50%, #2a1a1a 40%, transparent 60%) right; background-size: 50% 100%; background-repeat: no-repeat; animation: ktc-bob 6s ease-in-out infinite; }
.scn-katharina-throws-cap .shadow { position:absolute; bottom:0; left:10%; right:10%; height:20%; background: linear-gradient(180deg, rgba(0,0,0,.3) 0%, transparent 100%); animation: ktc-shadow 8s ease-in-out infinite; }

@keyframes ktc-glow { 0% { box-shadow: 0 0 30px 15px rgba(255,248,224,.2); } 50% { box-shadow: 0 0 60px 30px rgba(255,248,224,.5); } 100% { box-shadow: 0 0 20px 10px rgba(255,248,224,.15); } }
@keyframes ktc-head { 0% { transform: rotate(0); } 25% { transform: rotate(2deg); } 75% { transform: rotate(-2deg); } 100% { transform: rotate(0); } }
@keyframes ktc-arm { 0% { transform: rotate(10deg); } 50% { transform: rotate(-20deg); } 100% { transform: rotate(10deg); } }
@keyframes ktc-cap { 0% { transform: translate(0,0) rotate(0); } 40% { transform: translate(-40px,40px) rotate(180deg); } 60% { transform: translate(-50px,60px) rotate(270deg); } 100% { transform: translate(0,0) rotate(360deg); } }
@keyframes ktc-bob { 0% { transform: translateY(0); } 50% { transform: translateY(-5px); } 100% { transform: translateY(0); } }
@keyframes ktc-shadow { 0% { opacity:1; } 50% { opacity:0.5; } 100% { opacity:1; } }

.scn-petruchio-refuses-feast {
  background:
    linear-gradient(180deg, #f5e6c8 0%, #d4b48a 40%, #a08060 100%),
    radial-gradient(ellipse at 20% 60%, #e0c090 0%, transparent 70%);
}

.scn-petruchio-refuses-feast .wall {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #d4b48a 0%, #b89870 100%);
  animation: prf-wall 20s ease-in-out infinite alternate;
}

.scn-petruchio-refuses-feast .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #8b6f45 0%, #6b4f2a 100%);
  box-shadow: inset 0 10px 20px rgba(0,0,0,.3);
}

.scn-petruchio-refuses-feast .window {
  position: absolute; top: 10%; right: 15%; width: 80px; height: 100px;
  background: radial-gradient(circle at 60% 40%, #fff8e0 0%, #e0c8a0 50%, #b89870 100%);
  border: 6px solid #6b4f2a; border-radius: 4px;
  box-shadow: 0 0 40px 10px rgba(255,248,200,.6);
  animation: prf-window 6s ease-in-out infinite alternate;
}

.scn-petruchio-refuses-feast .table {
  position: absolute; bottom: 22%; left: 35%; width: 120px; height: 40px;
  background: linear-gradient(90deg, #5e3a1a 0%, #7a4f28 50%, #5e3a1a 100%);
  border-radius: 40% 40% 10% 10% / 80% 80% 20% 20%;
  box-shadow: 0 8px 12px rgba(0,0,0,.4);
}

.scn-petruchio-refuses-feast .petruchio {
  position: absolute; bottom: 18%; left: 50%; width: 24px; height: 50px;
  background: linear-gradient(180deg, #2b1a0a 0%, #1a1008 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: prf-petruchio 4s ease-in-out infinite alternate;
}

.scn-petruchio-refuses-feast .katharina {
  position: absolute; bottom: 18%; left: 38%; width: 22px; height: 46px;
  background: linear-gradient(180deg, #3a2a1a 0%, #2a1a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: prf-katharina 4s ease-in-out infinite alternate;
}

.scn-petruchio-refuses-feast .chair {
  position: absolute; bottom: 14%; right: 25%; width: 30px; height: 36px;
  background: linear-gradient(180deg, #4a3018 0%, #3a2010 100%);
  border-radius: 6px;
  box-shadow: 0 4px 6px rgba(0,0,0,.3);
  transform: rotate(10deg);
  animation: prf-chair 8s ease-in-out infinite alternate;
}

@keyframes prf-wall { 0% { opacity:.9 } 50% { opacity:1 } 100% { opacity:.85 } }
@keyframes prf-window { 0% { box-shadow: 0 0 30px 8px rgba(255,248,200,.4) } 50% { box-shadow: 0 0 50px 15px rgba(255,248,200,.7) } 100% { box-shadow: 0 0 35px 10px rgba(255,248,200,.5) } }
@keyframes prf-petruchio { 0% { transform: translateX(0) rotate(-2deg) } 50% { transform: translateX(10px) rotate(2deg) } 100% { transform: translateX(0) rotate(-2deg) } }
@keyframes prf-katharina { 0% { transform: translateX(0) rotate(2deg) } 50% { transform: translateX(-8px) rotate(-2deg) } 100% { transform: translateX(0) rotate(2deg) } }
@keyframes prf-chair { 0% { transform: rotate(10deg) scale(1) } 50% { transform: rotate(15deg) scale(1.02) } 100% { transform: rotate(10deg) scale(1) } }

.scn-grumio-comic-tale {
  background:
    linear-gradient(180deg, #4a3a2a 0%, #3a2a1a 40%, #2a1a0a 100%),
    radial-gradient(ellipse at 50% 70%, #5a4a3a 0%, transparent 60%);
}

.scn-grumio-comic-tale .bg-dim {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, rgba(0,0,0,.2) 0%, transparent 40%, rgba(0,0,0,.4) 100%);
  animation: gct-dim 12s ease-in-out infinite alternate;
}

.scn-grumio-comic-tale .fireplace-glow {
  position: absolute; bottom: 10%; left: 10%; width: 80px; height: 60px;
  background: radial-gradient(ellipse, #c08030 0%, #8a5020 50%, transparent 80%);
  border-radius: 50%; filter: blur(6px);
  animation: gct-fireglow 3s ease-in-out infinite alternate;
}

.scn-grumio-comic-tale .grumio {
  position: absolute; bottom: 20%; left: 40%; width: 24px; height: 50px;
  background: linear-gradient(180deg, #2b2010 0%, #1a1008 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: gct-grumio 2s ease-in-out infinite alternate;
}

.scn-grumio-comic-tale .curtis {
  position: absolute; bottom: 20%; left: 55%; width: 22px; height: 46px;
  background: linear-gradient(180deg, #3a2a1a 0%, #2a1a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: gct-curtis 3s ease-in-out infinite alternate;
}

.scn-grumio-comic-tale .candle {
  position: absolute; bottom: 30%; left: 50%; width: 6px; height: 20px;
  background: #d0b080;
  border-radius: 20% 20% 10% 10%;
  box-shadow: 0 0 10px 3px #f0c080;
  animation: gct-candle 1.5s ease-in-out infinite alternate;
}

.scn-grumio-comic-tale .stool {
  position: absolute; bottom: 12%; left: 70%; width: 40px; height: 20px;
  background: linear-gradient(180deg, #5a4020 0%, #3a2010 100%);
  border-radius: 8px;
  box-shadow: 0 4px 6px rgba(0,0,0,.4);
  transform: rotate(-5deg);
  animation: gct-stool 10s ease-in-out infinite alternate;
}

.scn-grumio-comic-tale .servant {
  position: absolute; bottom: 20%; right: 15%; width: 20px; height: 40px;
  background: #2a1a0a;
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: gct-servant 5s ease-in-out infinite alternate;
}

@keyframes gct-dim { 0% { opacity:.8 } 50% { opacity:1 } 100% { opacity:.85 } }
@keyframes gct-fireglow { 0% { opacity:.5; transform: scale(.9) } 50% { opacity:1; transform: scale(1.1) } 100% { opacity:.6; transform: scale(1) } }
@keyframes gct-grumio { 0% { transform: translateX(0) rotate(-3deg) } 50% { transform: translateX(6px) rotate(3deg) scale(1.02) } 100% { transform: translateX(0) rotate(-3deg) } }
@keyframes gct-curtis { 0% { transform: translateY(0) } 50% { transform: translateY(-3px) } 100% { transform: translateY(0) } }
@keyframes gct-candle { 0% { transform: scaleY(1) rotate(-2deg) } 50% { transform: scaleY(1.05) rotate(2deg) } 100% { transform: scaleY(.98) rotate(-2deg) } }
@keyframes gct-stool { 0% { transform: rotate(-5deg) } 50% { transform: rotate(-2deg) } 100% { transform: rotate(-7deg) } }
@keyframes gct-servant { 0% { transform: translateX(0) } 50% { transform: translateX(-4px) } 100% { transform: translateX(2px) } }

.scn-burnt-meat-thrown-away {
  background:
    linear-gradient(180deg, #2a1a0a 0%, #3a2010 40%, #5a3020 100%),
    radial-gradient(ellipse at 50% 80%, #a04020 0%, transparent 70%);
}

.scn-burnt-meat-thrown-away .fire {
  position: absolute; bottom: 0; left: 5%; width: 120px; height: 40%;
  background: linear-gradient(180deg, #c06030 0%, #e08040 30%, #a04020 60%, #2a1a0a 100%);
  border-radius: 60% 40% 0 0 / 80% 70% 0 0;
  filter: blur(3px);
  animation: bmt-fire 3s ease-in-out infinite alternate;
}

.scn-burnt-meat-thrown-away .dish {
  position: absolute; top: 30%; left: 50%; width: 50px; height: 20px;
  background: #8a5a2a;
  border-radius: 50%;
  box-shadow: 0 4px 8px rgba(0,0,0,.5);
  transform: rotate(20deg);
  animation: bmt-dish 2s ease-in-out infinite;
}

.scn-burnt-meat-thrown-away .table-burnt {
  position: absolute; bottom: 15%; left: 25%; width: 140px; height: 30px;
  background: linear-gradient(90deg, #4a2a1a 0%, #6a3a1a 50%, #4a2a1a 100%);
  border-radius: 10px;
  box-shadow: inset 0 4px 8px rgba(0,0,0,.6);
}

.scn-burnt-meat-thrown-away .petruchio-rage {
  position: absolute; bottom: 18%; left: 55%; width: 26px; height: 54px;
  background: #1a1008;
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: bmt-petruchio 3s ease-in-out infinite alternate;
}

.scn-burnt-meat-thrown-away .katharina-plead {
  position: absolute; bottom: 16%; left: 35%; width: 22px; height: 44px;
  background: #2a1a0a;
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: bmt-katharina 3s ease-in-out infinite alternate;
}

.scn-burnt-meat-thrown-away .shadow {
  position: absolute; bottom: 0; left: 0; right: 0; height: 50%;
  background: linear-gradient(180deg, transparent 0%, rgba(0,0,0,.6) 100%);
  animation: bmt-shadow 5s ease-in-out infinite alternate;
}

@keyframes bmt-fire { 0% { opacity:.7; transform: scaleY(1) } 50% { opacity:1; transform: scaleY(1.1) } 100% { opacity:.8; transform: scaleY(.95) } }
@keyframes bmt-dish { 0% { transform: rotate(20deg) translateY(0) } 50% { transform: rotate(-10deg) translateY(-30px) translateX(20px) } 100% { transform: rotate(20deg) translateY(0) } }
@keyframes bmt-petruchio { 0% { transform: translateX(0) rotate(-2deg) } 50% { transform: translateX(5px) rotate(4deg) scale(1.05) } 100% { transform: translateX(0) rotate(-2deg) } }
@keyframes bmt-katharina { 0% { transform: translateX(0) rotate(2deg) } 50% { transform: translateX(-8px) rotate(-4deg) } 100% { transform: translateX(0) rotate(2deg) } }
@keyframes bmt-shadow { 0% { opacity:.4 } 50% { opacity:.7 } 100% { opacity:.5 } }

.scn-lucentio-bianca-rejoice {
  background:
    linear-gradient(180deg, #3a2a1a 0%, #5a4a2a 40%, #7a6a4a 100%),
    radial-gradient(ellipse at 50% 30%, #c0a070 0%, transparent 70%);
}

.scn-lucentio-bianca-rejoice .lamp-glow {
  position: absolute; top: 20%; left: 30%; width: 60px; height: 60px;
  background: radial-gradient(circle, #e0c070 0%, #c0a050 40%, transparent 80%);
  border-radius: 50%;
  filter: blur(8px);
  animation: lbr-lamp 4s ease-in-out infinite alternate;
}

.scn-lucentio-bianca-rejoice .lucentio {
  position: absolute; bottom: 22%; left: 40%; width: 22px; height: 48px;
  background: linear-gradient(180deg, #2a1a0a 0%, #1a1008 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: lbr-lucentio 5s ease-in-out infinite alternate;
}

.scn-lucentio-bianca-rejoice .bianca {
  position: absolute; bottom: 22%; left: 48%; width: 20px; height: 44px;
  background: linear-gradient(180deg, #3a2a1a 0%, #2a1a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: lbr-bianca 5s ease-in-out infinite alternate;
}

.scn-lucentio-bianca-rejoice .biondello {
  position: absolute; bottom: 18%; left: 65%; width: 20px; height: 40px;
  background: #2a1a0a;
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: lbr-biondello 6s ease-in-out infinite alternate;
}

.scn-lucentio-bianca-rejoice .doorway {
  position: absolute; top: 5%; right: 10%; width: 70px; height: 90px;
  background: linear-gradient(180deg, #2a1a0a 0%, #1a1008 100%);
  border-radius: 4px;
  box-shadow: inset 0 0 10px rgba(0,0,0,.5);
  animation: lbr-door 15s ease-in-out infinite alternate;
}

.scn-lucentio-bianca-rejoice .pedant-silhouette {
  position: absolute; bottom: 12%; right: 18%; width: 18px; height: 50px;
  background: #1a1008;
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform: scaleX(-1);
  animation: lbr-pedant 8s ease-in-out infinite alternate;
}

@keyframes lbr-lamp { 0% { opacity:.6; transform: scale(.95) } 50% { opacity:1; transform: scale(1.05) } 100% { opacity:.7; transform: scale(1) } }
@keyframes lbr-lucentio { 0% { transform: translateX(0) rotate(-1deg) } 50% { transform: translateX(4px) rotate(1deg) } 100% { transform: translateX(0) rotate(-1deg) } }
@keyframes lbr-bianca { 0% { transform: translateX(0) rotate(1deg) } 50% { transform: translateX(-3px) rotate(-1deg) } 100% { transform: translateX(0) rotate(1deg) } }
@keyframes lbr-biondello { 0% { transform: translateX(0) } 50% { transform: translateX(-6px) } 100% { transform: translateX(0) } }
@keyframes lbr-door { 0% { opacity:.8; transform: scaleX(1) } 50% { opacity:1; transform: scaleX(1.02) } 100% { opacity:.9; transform: scaleX(.98) } }
@keyframes lbr-pedant { 0% { transform: scaleX(-1) translateY(0) } 50% { transform: scaleX(-1) translateY(-3px) } 100% { transform: scaleX(-1) translateY(0) } }

/* Scene: play-begins-padua */
.scn-play-begins-padua {
  background:
    linear-gradient(180deg, #3a251a 0%, #2a1a10 30%, #1f1410 70%, #140c08 100%),
    radial-gradient(ellipse at 40% 60%, #4a2e1e 0%, transparent 60%);
}
.scn-play-begins-padua .wall { position: absolute; left: 0; bottom: 0; width: 100%; height: 80%; background: linear-gradient(180deg, #4a3422 0%, #3a2818 100%); }
.scn-play-begins-padua .arch { position: absolute; top: 8%; left: 30%; width: 40%; height: 30%; background: radial-gradient(ellipse at 50% 100%, #2a1a12 0%, #1f1410 70%); border-radius: 50% 50% 0 0; box-shadow: inset 0 -10px 20px rgba(0,0,0,0.6); animation: pp-arch 8s ease-in-out infinite alternate; }
.scn-play-begins-padua .column-left { position: absolute; left: 20%; top: 10%; width: 6%; height: 60%; background: linear-gradient(180deg, #6a4a2a 0%, #4a3220 50%, #3a2218 100%); border-radius: 4px; box-shadow: 4px 0 8px rgba(0,0,0,0.5); }
.scn-play-begins-padua .column-right { position: absolute; right: 20%; top: 10%; width: 6%; height: 60%; background: linear-gradient(180deg, #6a4a2a 0%, #4a3220 50%, #3a2218 100%); border-radius: 4px; box-shadow: -4px 0 8px rgba(0,0,0,0.5); }
.scn-play-begins-padua .window { position: absolute; top: 12%; left: 38%; width: 24%; height: 20%; background: radial-gradient(ellipse at 50% 30%, #c8a050 0%, #8a6a30 50%, #3a2818 100%); border-radius: 8px; box-shadow: 0 0 40px 10px rgba(200,160,80,0.4), inset 0 0 20px rgba(0,0,0,0.3); animation: pp-window 6s ease-in-out infinite alternate; }
.scn-play-begins-padua .figure-group { position: absolute; bottom: 15%; left: 35%; width: 30%; height: 35%; background: linear-gradient(180deg, #3a2a1e 0%, #1f1410 100%); border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%; box-shadow: 0 8px 20px rgba(0,0,0,0.7); animation: pp-figures 12s ease-in-out infinite; }
.scn-play-begins-padua .floor { position: absolute; bottom: 0; left: 0; width: 100%; height: 15%; background: linear-gradient(180deg, #4a3422 0%, #2a1a10 100%); box-shadow: inset 0 10px 20px rgba(0,0,0,0.5); }
@keyframes pp-arch { 0%,100% { opacity: 0.7; transform: scaleY(1); } 50% { opacity: 1; transform: scaleY(1.02); } }
@keyframes pp-window { 0%,100% { opacity: 0.8; box-shadow: 0 0 30px 5px rgba(200,160,80,0.3); } 50% { opacity: 1; box-shadow: 0 0 60px 15px rgba(200,160,80,0.6); } }
@keyframes pp-figures { 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); } }

/* Scene: lucentio-falls-in-love */
.scn-lucentio-falls-in-love {
  background:
    linear-gradient(180deg, #5b8a9e 0%, #87b8c8 30%, #c0d8e0 60%, #e8f0e0 100%),
    radial-gradient(ellipse at 30% 20%, #f0e8a0 0%, transparent 60%);
}
.scn-lucentio-falls-in-love .sky { position: absolute; top: 0; left: 0; width: 100%; height: 70%; background: linear-gradient(180deg, #4a8ab8 0%, #7ab0c8 50%, #a8d0d8 100%); border-radius: 30% 30% 0 0 / 20% 20% 0 0; animation: ll-sky 15s ease-in-out infinite alternate; }
.scn-lucentio-falls-in-love .tree-left { position: absolute; bottom: 25%; left: 5%; width: 18%; height: 45%; background: linear-gradient(180deg, #2a5a2a 0%, #1a3a1a 100%); border-radius: 40% 40% 20% 20% / 60% 60% 20% 20%; box-shadow: 8px 0 12px rgba(0,0,0,0.3); animation: ll-tree 20s ease-in-out infinite; }
.scn-lucentio-falls-in-love .tree-right { position: absolute; bottom: 25%; right: 10%; width: 22%; height: 50%; background: linear-gradient(180deg, #2a6a3a 0%, #1a4a2a 100%); border-radius: 30% 40% 20% 20% / 50% 60% 20% 20%; box-shadow: -8px 0 12px rgba(0,0,0,0.3); animation: ll-tree 25s ease-in-out infinite reverse; }
.scn-lucentio-falls-in-love .bush { position: absolute; bottom: 18%; left: 30%; width: 40%; height: 15%; background: radial-gradient(ellipse at 50% 100%, #3a7a3a 0%, #2a5a2a 100%); border-radius: 50% 50% 20% 20% / 80% 80% 20% 20%; box-shadow: 0 4px 10px rgba(0,0,0,0.2); }
.scn-lucentio-falls-in-love .path { position: absolute; bottom: 0; left: 25%; width: 50%; height: 20%; background: linear-gradient(180deg, #a08850 0%, #786838 100%); border-radius: 30% 30% 0 0 / 40% 40% 0 0; }
.scn-lucentio-falls-in-love .figure-lucentio { position: absolute; bottom: 15%; left: 30%; width: 12%; height: 35%; background: linear-gradient(180deg, #1a3a1a 0%, #0a2a0a 100%); border-radius: 30% 30% 20% 20% / 50% 50% 30% 30%; transform-origin: bottom center; animation: ll-walk 6s ease-in-out infinite; }
.scn-lucentio-falls-in-love .figure-bianca { position: absolute; bottom: 20%; left: 55%; width: 10%; height: 30%; background: linear-gradient(180deg, #7a5a3a 0%, #4a3a2a 100%); border-radius: 40% 40% 30% 30% / 60% 60% 30% 30%; animation: ll-walk 7s ease-in-out infinite reverse; }
.scn-lucentio-falls-in-love .sun-rays { position: absolute; top: 5%; left: 20%; width: 60%; height: 20%; background: radial-gradient(ellipse at 50% 0%, rgba(240,230,180,0.6) 0%, transparent 70%); animation: ll-sun 12s ease-in-out infinite alternate; }
@keyframes ll-sky { 0%,100% { opacity: 0.8; } 50% { opacity: 1; } }
@keyframes ll-tree { 0%,100% { transform: rotate(-2deg); } 50% { transform: rotate(2deg); } }
@keyframes ll-walk { 0%,100% { transform: translateX(0) rotate(0deg); } 25% { transform: translateX(4px) rotate(2deg); } 50% { transform: translateX(8px) rotate(0deg); } 75% { transform: translateX(4px) rotate(-2deg); } }
@keyframes ll-sun { 0%,100% { opacity: 0.5; transform: scaleY(1); } 50% { opacity: 0.8; transform: scaleY(1.1); } }

/* Scene: biondello-warned */
.scn-biondello-warned {
  background:
    linear-gradient(180deg, #e0c090 0%, #c8a870 30%, #a08860 60%, #7a6848 100%),
    radial-gradient(ellipse at 50% 0%, #f0e0b0 0%, transparent 50%);
}
.scn-biondello-warned .wall-bw { position: absolute; left: 0; top: 0; width: 100%; height: 70%; background: linear-gradient(180deg, #b08a60 0%, #8a6840 100%); box-shadow: inset 0 20px 30px rgba(0,0,0,0.3); }
.scn-biondello-warned .arch-bw { position: absolute; bottom: 30%; left: 20%; width: 60%; height: 40%; background: radial-gradient(ellipse at 50% 0%, #c8a070 0%, #a08050 70%); border-radius: 50% 50% 0 0 / 60% 60% 0 0; box-shadow: inset 0 -10px 20px rgba(0,0,0,0.4); animation: bw-arch 10s ease-in-out infinite alternate; }
.scn-biondello-warned .ground-bw { position: absolute; bottom: 0; left: 0; width: 100%; height: 30%; background: linear-gradient(180deg, #6a5030 0%, #4a3820 100%); }
.scn-biondello-warned .shadow-bw { position: absolute; bottom: 25%; left: 40%; width: 20%; height: 10%; background: radial-gradient(ellipse, rgba(0,0,0,0.5) 0%, transparent 70%); animation: bw-shadow 8s ease-in-out infinite; }
.scn-biondello-warned .figure-tranio { position: absolute; bottom: 20%; left: 30%; width: 14%; height: 40%; background: linear-gradient(180deg, #1a3a2a 0%, #0a2a1a 100%); border-radius: 30% 30% 20% 20% / 50% 50% 30% 30%; box-shadow: 4px 0 8px rgba(0,0,0,0.5); animation: bw-tranio 5s ease-in-out infinite; }
.scn-biondello-warned .figure-biondello { position: absolute; bottom: 20%; left: 50%; width: 12%; height: 35%; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a10 100%); border-radius: 35% 35% 25% 25% / 55% 55% 30% 30%; animation: bw-biondello 6s ease-in-out infinite reverse; }
.scn-biondello-warned .figure-sly { position: absolute; top: 5%; left: 10%; width: 15%; height: 20%; background: linear-gradient(180deg, #3a2a1a 0%, #1a1008 100%); border-radius: 40% 40% 30% 30% / 60% 60% 30% 30%; animation: bw-sly 14s ease-in-out infinite; }
.scn-biondello-warned .window-bw { position: absolute; top: 15%; left: 70%; width: 18%; height: 25%; background: radial-gradient(ellipse at 50% 30%, #f0e0a0 0%, #b09860 70%); border-radius: 4px; box-shadow: 0 0 30px 5px rgba(240,224,160,0.3); animation: bw-window 8s ease-in-out infinite alternate; }
@keyframes bw-arch { 0%,100% { transform: scaleX(1) scaleY(1); } 50% { transform: scaleX(1.02) scaleY(0.98); } }
@keyframes bw-shadow { 0%,100% { opacity: 0.3; transform: scale(1); } 50% { opacity: 0.7; transform: scale(1.1); } }
@keyframes bw-tranio { 0%,100% { transform: translateX(0) rotate(0deg); } 25% { transform: translateX(3px) rotate(3deg); } 50% { transform: translateX(0) rotate(0deg); } 75% { transform: translateX(-3px) rotate(-3deg); } }
@keyframes bw-biondello { 0%,100% { transform: translateX(0) rotate(0deg); } 25% { transform: translateX(-3px) rotate(-2deg); } 50% { transform: translateX(0) rotate(0deg); } 75% { transform: translateX(3px) rotate(2deg); } }
@keyframes bw-sly { 0%,100% { transform: translateY(0) rotate(0deg); } 33% { transform: translateY(-2px) rotate(2deg); } 66% { transform: translateY(0) rotate(-1deg); } }
@keyframes bw-window { 0%,100% { opacity: 0.7; box-shadow: 0 0 20px 3px rgba(240,224,160,0.2); } 50% { opacity: 1; box-shadow: 0 0 50px 10px rgba(240,224,160,0.5); } }

/* Scene: hortensio-tells-petruchio */
.scn-hortensio-tells-petruchio {
  background:
    linear-gradient(180deg, #1a1412 0%, #2a1e1a 30%, #3a2820 60%, #2a1a14 100%),
    radial-gradient(ellipse at 50% 70%, #6a3a1a 0%, transparent 60%);
}
.scn-hortensio-tells-petruchio .wall-hp { position: absolute; left: 0; top: 0; width: 100%; height: 75%; background: linear-gradient(180deg, #2a1e1a 0%, #1a1412 100%); }
.scn-hortensio-tells-petruchio .fireplace { position: absolute; bottom: 15%; left: 50%; width: 30%; height: 40%; transform: translateX(-50%); background: linear-gradient(180deg, #4a3020 0%, #2a1a10 100%); border-radius: 8px 8px 0 0; box-shadow: inset 0 -10px 20px rgba(0,0,0,0.6); }
.scn-hortensio-tells-petruchio .fire-glow { position: absolute; bottom: 25%; left: 50%; width: 20%; height: 20%; transform: translateX(-50%); background: radial-gradient(circle, #d08030 0%, #b06020 50%, transparent 80%); border-radius: 50%; box-shadow: 0 0 60px 20px rgba(208,128,48,0.6); animation: hp-fire 3s ease-in-out infinite alternate; }
.scn-hortensio-tells-petruchio .table-hp { position: absolute; bottom: 8%; left: 30%; width: 40%; height: 12%; background: linear-gradient(180deg, #5a3a2a 0%, #3a2218 100%); border-radius: 4px; box-shadow: 0 6px 12px rgba(0,0,0,0.7); }
.scn-hortensio-tells-petruchio .mug { position: absolute; bottom: 12%; left: 45%; width: 10%; height: 10%; background: linear-gradient(180deg, #6a4a3a 0%, #4a3020 100%); border-radius: 4px 4px 8px 8px; box-shadow: 2px 2px 4px rgba(0,0,0,0.5); animation: hp-mug 7s ease-in-out infinite; }
.scn-hortensio-tells-petruchio .figure-petruchio { position: absolute; bottom: 15%; left: 25%; width: 16%; height: 40%; background: linear-gradient(180deg, #1a2a3a 0%, #0a1a2a 100%); border-radius: 30% 30% 20% 20% / 50% 50% 30% 30%; transform-origin: bottom center; animation: hp-petruchio 6s ease-in-out infinite; }
.scn-hortensio-tells-petruchio .figure-hortensio { position: absolute; bottom: 15%; right: 25%; width: 14%; height: 38%; background: linear-gradient(180deg, #3a2a1e 0%, #1a1410 100%); border-radius: 35% 35% 20% 20% / 55% 55% 30% 30%; animation: hp-hortensio 8s ease-in-out infinite reverse; }
.scn-hortensio-tells-petruchio .shadow-hp { position: absolute; bottom: 8%; left: 20%; width: 60%; height: 8%; background: radial-gradient(ellipse, rgba(0,0,0,0.6) 0%, transparent 80%); animation: hp-shadow 10s ease-in-out infinite alternate; }
@keyframes hp-fire { 0%,100% { opacity: 0.6; transform: scale(1) translateX(-50%); } 50% { opacity: 1; transform: scale(1.1) translateX(-45%); } }
@keyframes hp-mug { 0%,100% { transform: rotate(0deg); } 25% { transform: rotate(-5deg); } 75% { transform: rotate(5deg); } }
@keyframes hp-petruchio { 0%,100% { transform: translateX(0) rotate(0deg); } 25% { transform: translateX(2px) rotate(3deg); } 50% { transform: translateX(0) rotate(0deg); } 75% { transform: translateX(-2px) rotate(-3deg); } }
@keyframes hp-hortensio { 0%,100% { transform: translateX(0) rotate(0deg); } 25% { transform: translateX(-2px) rotate(-2deg); } 50% { transform: translateX(0) rotate(0deg); } 75% { transform: translateX(2px) rotate(2deg); } }
@keyframes hp-shadow { 0%,100% { opacity: 0.4; } 50% { opacity: 0.8; } }

.scn-christopher-sly-thrown-out {
  background:
    linear-gradient(180deg, #9a9a8a 0%, #7a7a6a 35%, #5a5a4a 60%, #3a3a2a 100%),
    radial-gradient(ellipse at 30% 60%, #7a7a6a 0%, transparent 70%);
}
.scn-christopher-sly-thrown-out .sky {
  position: absolute; inset: 0 0 50% 0;
  background: linear-gradient(180deg, #c0b8b0 0%, #9a9a8a 50%, transparent 100%);
  animation: cs-sky 20s ease-in-out infinite alternate;
}
.scn-christopher-sly-thrown-out .ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 50%;
  background: linear-gradient(180deg, #6a7a5a 0%, #4a5a3a 100%);
  border-radius: 60% 40% 0 0 / 40% 20% 0 0;
  box-shadow: inset 0 10px 30px rgba(0,0,0,0.3);
  animation: cs-ground 25s ease-in-out infinite;
}
.scn-christopher-sly-thrown-out .alehouse {
  position: absolute; bottom: 35%; left: 20%; width: 100px; height: 90px;
  background: linear-gradient(180deg, #6a5a4a 0%, #3a2a1a 100%);
  border-radius: 10% 10% 4% 4%;
  box-shadow: 0 4px 12px rgba(0,0,0,0.5);
  transform: scale(0.95);
}
.scn-christopher-sly-thrown-out .sign {
  position: absolute; bottom: 55%; left: 28%; width: 30px; height: 20px;
  background: linear-gradient(180deg, #8a7a6a 0%, #5a4a3a 100%);
  border-radius: 10% / 50%;
  transform-origin: top center;
  animation: cs-sign 3s ease-in-out infinite;
}
.scn-christopher-sly-thrown-out .sly-figure {
  position: absolute; bottom: 18%; left: 55%; width: 24px; height: 36px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: cs-sly 4s ease-in-out infinite;
}
.scn-christopher-sly-thrown-out .bottle {
  position: absolute; bottom: 22%; left: 50%; width: 8px; height: 16px;
  background: linear-gradient(180deg, #7a6a5a 0%, #4a3a2a 100%);
  border-radius: 0 0 20% 20% / 0 0 50% 50%;
  transform: rotate(-20deg);
  animation: cs-bottle 6s ease-in-out infinite;
}
.scn-christopher-sly-thrown-out .cloud {
  position: absolute; top: 10%; left: 10%; width: 80px; height: 20px;
  background: linear-gradient(180deg, rgba(200,195,190,0.6) 0%, rgba(180,175,170,0.2) 100%);
  border-radius: 50%;
  filter: blur(8px);
  animation: cs-cloud 40s linear infinite;
}
@keyframes cs-sky { 0% { opacity: 0.7; } 50% { opacity: 1; } 100% { opacity: 0.8; } }
@keyframes cs-ground { 0%, 100% { transform: translateY(0); } 50% { transform: translateY(-4px); } }
@keyframes cs-sign { 0%, 100% { transform: rotate(0deg); } 25% { transform: rotate(5deg); } 75% { transform: rotate(-5deg); } }
@keyframes cs-sly { 0%, 100% { transform: translateX(0) rotate(-3deg); } 25% { transform: translateX(4px) rotate(3deg); } 75% { transform: translateX(-2px) rotate(-1deg); } }
@keyframes cs-bottle { 0%, 100% { transform: rotate(-20deg) translateY(0); } 50% { transform: rotate(-30deg) translateY(-6px); } }
@keyframes cs-cloud { 0% { transform: translateX(-50px); } 100% { transform: translateX(120vw); } }

/* scene 2 */
.scn-lord-dresses-sly {
  background:
    linear-gradient(180deg, #2a1a0a 0%, #4a2a1a 30%, #6a3a2a 60%, #3a1a0a 100%),
    radial-gradient(ellipse at 50% 70%, #8a4a2a 0%, transparent 60%);
}
.scn-lord-dresses-sly .bg-wall {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, #4a2a1a 0%, #2a1a0a 100%);
  box-shadow: inset 0 0 60px rgba(0,0,0,0.6);
}
.scn-lord-dresses-sly .fire {
  position: absolute; bottom: 30%; left: 30%; width: 40px; height: 60px;
  background: radial-gradient(ellipse at 50% 100%, #ffa050 0%, #ff6020 40%, transparent 70%);
  border-radius: 50% 50% 0 0;
  animation: ld-fire 2s ease-in-out infinite alternate;
  box-shadow: 0 0 50px 20px rgba(255,160,80,0.4), 0 0 100px 40px rgba(255,100,30,0.2);
}
.scn-lord-dresses-sly .bed-curtain-l {
  position: absolute; top: 0; left: 0; width: 100px; height: 80%;
  background: linear-gradient(180deg, #6a3a2a 0%, #4a1a0a 100%);
  border-radius: 20% 0 0 40% / 40% 0 0 20%;
  transform-origin: top left;
  animation: ld-curtain-l 8s ease-in-out infinite alternate;
}
.scn-lord-dresses-sly .bed-curtain-r {
  position: absolute; top: 0; right: 0; width: 100px; height: 80%;
  background: linear-gradient(180deg, #6a3a2a 0%, #4a1a0a 100%);
  border-radius: 0 20% 40% 0 / 0 40% 20% 0;
  transform-origin: top right;
  animation: ld-curtain-r 8s ease-in-out infinite alternate;
  animation-delay: 3s;
}
.scn-lord-dresses-sly .basin {
  position: absolute; bottom: 40%; left: 60%; width: 40px; height: 24px;
  background: linear-gradient(180deg, #a09080 0%, #706050 100%);
  border-radius: 0 0 30% 30% / 0 0 60% 60%;
  box-shadow: inset 0 -4px 6px rgba(0,0,0,0.3);
  animation: ld-basin 5s ease-in-out infinite;
}
.scn-lord-dresses-sly .page-figure {
  position: absolute; bottom: 20%; left: 50%; width: 20px; height: 40px;
  background: linear-gradient(180deg, #8a6a5a 0%, #4a2a1a 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: ld-page 6s ease-in-out infinite;
}
.scn-lord-dresses-sly .lord-figure {
  position: absolute; bottom: 20%; right: 20%; width: 28px; height: 48px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0a00 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  transform-origin: bottom center;
  animation: ld-lord 9s ease-in-out infinite;
}
@keyframes ld-fire { 0% { transform: scaleY(1) rotate(0deg); } 50% { transform: scaleY(1.1) rotate(3deg); } 100% { transform: scaleY(0.95) rotate(-2deg); } }
@keyframes ld-curtain-l { 0%, 100% { transform: scaleX(1); } 50% { transform: scaleX(1.05); } }
@keyframes ld-curtain-r { 0%, 100% { transform: scaleX(1); } 50% { transform: scaleX(1.05); } }
@keyframes ld-basin { 0%, 100% { transform: translateY(0) rotate(0); } 25% { transform: translateY(-2px) rotate(3deg); } 75% { transform: translateY(-1px) rotate(-2deg); } }
@keyframes ld-page { 0%, 100% { transform: translateY(0) rotate(0); } 25% { transform: translateY(-4px) rotate(5deg); } 75% { transform: translateY(-2px) rotate(-3deg); } }
@keyframes ld-lord { 0%, 100% { transform: translateY(0) rotate(2deg); } 50% { transform: translateY(-3px) rotate(-2deg); } }

/* scene 3 */
.scn-sly-awakes-to-deception {
  background:
    linear-gradient(180deg, #0a0a1a 0%, #1a1a2a 40%, #2a2a3a 80%, #1a1a2a 100%),
    radial-gradient(ellipse at 50% 40%, #2a2a3a 0%, transparent 70%);
}
.scn-sly-awakes-to-deception .room-wall {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  box-shadow: inset 0 0 80px rgba(0,0,0,0.5);
}
.scn-sly-awakes-to-deception .bed {
  position: absolute; bottom: 20%; left: 20%; right: 20%; height: 50%;
  background: linear-gradient(180deg, #3a2a3a 0%, #2a1a2a 100%);
  border-radius: 20% 20% 0 0 / 40% 40% 0 0;
  box-shadow: 0 -6px 20px rgba(0,0,0,0.6);
}
.scn-sly-awakes-to-deception .sly-sitting {
  position: absolute; bottom: 30%; left: 35%; width: 28px; height: 36px;
  background: linear-gradient(180deg, #4a3a4a 0%, #2a1a2a 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  transform-origin: bottom center;
  animation: sa-sly 3s ease-in-out infinite alternate;
}
.scn-sly-awakes-to-deception .servant {
  position: absolute; bottom: 20%; right: 20%; width: 20px; height: 44px;
  background: linear-gradient(180deg, #3a3a4a 0%, #1a1a2a 100%);
  border-radius: 30% 30% 20% 20% / 40% 40% 20% 20%;
  transform-origin: bottom center;
  animation: sa-servant 5s ease-in-out infinite;
}
.scn-sly-awakes-to-deception .tray {
  position: absolute; bottom: 35%; right: 18%; width: 30px; height: 10px;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 20% 20% 10% 10%;
  animation: sa-tray 6s ease-in-out infinite;
}
.scn-sly-awakes-to-deception .goblet {
  position: absolute; bottom: 40%; right: 22%; width: 12px; height: 18px;
  background: linear-gradient(180deg, #8a7a6a 0%, #5a4a3a 100%);
  border-radius: 0 0 20% 20% / 0 0 40% 40%;
  animation: sa-goblet 4s ease-in-out infinite;
}
.scn-sly-awakes-to-deception .shadow-layer {
  position: absolute; inset: 0;
  background: radial-gradient(ellipse at 50% 30%, transparent 40%, rgba(0,0,0,0.4) 80%);
  pointer-events: none;
  animation: sa-shadow 8s ease-in-out infinite alternate;
}
@keyframes sa-sly { 0% { transform: translateY(0) rotate(-2deg); } 50% { transform: translateY(-4px) rotate(4deg); } 100% { transform: translateY(0) rotate(0); } }
@keyframes sa-servant { 0%, 100% { transform: translateY(0) rotate(0); } 25% { transform: translateY(-3px) rotate(3deg); } 75% { transform: translateY(-1px) rotate(-2deg); } }
@keyframes sa-tray { 0%, 100% { transform: translateY(0) scale(1); } 50% { transform: translateY(-2px) scale(1.02); } }
@keyframes sa-goblet { 0%, 100% { transform: rotate(0) translateY(0); } 25% { transform: rotate(8deg) translateY(-2px); } 75% { transform: rotate(-6deg) translateY(-1px); } }
@keyframes sa-shadow { 0% { opacity: 0.6; } 50% { opacity: 0.8; } 100% { opacity: 0.7; } }

/* scene 4 */
.scn-sly-asked-about-wife {
  background:
    linear-gradient(180deg, #1a1a2a 0%, #2a2a3a 40%, #3a3a4a 80%, #2a2a3a 100%),
    radial-gradient(ellipse at 50% 30%, #3a3a4a 0%, transparent 60%);
}
.scn-sly-asked-about-wife .room-wall {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  box-shadow: inset 0 0 40px rgba(0,0,0,0.3);
}
.scn-sly-asked-about-wife .painting-l {
  position: absolute; top: 10%; left: 10%; width: 60px; height: 80px;
  background: linear-gradient(180deg, #3a3a4a 0%, #2a2a3a 100%);
  border: 2px solid #4a4a5a;
  border-radius: 4%;
  transform-origin: center top;
  animation: sq-paint-l 10s ease-in-out infinite alternate;
}
.scn-sly-asked-about-wife .painting-r {
  position: absolute; top: 10%; right: 10%; width: 60px; height: 80px;
  background: linear-gradient(180deg, #3a3a4a 0%, #2a2a3a 100%);
  border: 2px solid #4a4a5a;
  border-radius: 4%;
  transform-origin: center top;
  animation: sq-paint-r 12s ease-in-out infinite alternate;
  animation-delay: 3s;
}
.scn-sly-asked-about-wife .page-lady {
  position: absolute; bottom: 20%; left: 35%; width: 22px; height: 46px;
  background: linear-gradient(180deg, #6a5a6a 0%, #3a2a3a 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  transform-origin: bottom center;
  animation: sq-lady 7s ease-in-out infinite;
}
.scn-sly-asked-about-wife .sly-head {
  position: absolute; bottom: 28%; left: 55%; width: 20px; height: 24px;
  background: linear-gradient(180deg, #4a3a4a 0%, #2a1a2a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: sq-head 5s ease-in-out infinite alternate;
}
.scn-sly-asked-about-wife .chair {
  position: absolute; bottom: 15%; left: 50%; width: 30px; height: 40px;
  background: linear-gradient(180deg, #3a2a3a 0%, #1a0a1a 100%);
  border-radius: 10% 10% 0 0 / 20% 20% 0 0;
  box-shadow: 0 4px 8px rgba(0,0,0,0.4);
}
@keyframes sq-paint-l { 0%, 100% { transform: rotate(0deg); } 25% { transform: rotate(3deg); } 75% { transform: rotate(-2deg); } }
@keyframes sq-paint-r { 0%, 100% { transform: rotate(0deg); } 25% { transform: rotate(-3deg); } 75% { transform: rotate(2deg); } }
@keyframes sq-lady { 0%, 100% { transform: translateY(0) rotate(0); } 25% { transform: translateY(-5px) rotate(5deg); } 75% { transform: translateY(-2px) rotate(-3deg); } }
@keyframes sq-head { 0% { transform: rotate(0); } 50% { transform: rotate(8deg); } 100% { transform: rotate(-4deg); } }

/* Scene: katharina-hungry */
.scn-katharina-hungry {
  background: linear-gradient(180deg, #1a1a2e 0%, #2a2a3e 40%, #2e2e44 100%),
              radial-gradient(ellipse at 50% 30%, #2e2e44 0%, #1a1a2e 70%);
}
.scn-katharina-hungry .floor { position: absolute; bottom: 0; left: 0; right: 0; height: 18%; background: linear-gradient(180deg, #3a3a4a 0%, #2a2a3a 100%); }
.scn-katharina-hungry .wall { position: absolute; inset: 0 0 18% 0; background: linear-gradient(180deg, #1a1a2e 0%, #2a2a3e 100%); }
.scn-katharina-hungry .table { position: absolute; bottom: 14%; left: 50%; width: 50%; height: 10%; transform: translateX(-50%); background: linear-gradient(180deg, #4a3a2a 0%, #3a2a1a 100%); border-radius: 4% 4% 0 0; box-shadow: 0 -4px 12px rgba(0,0,0,.6); }
.scn-katharina-hungry .katharina { position: absolute; bottom: 16%; left: 30%; width: 20px; height: 50px; background: linear-gradient(180deg, #3a3a4e 0%, #2a2a3a 100%); border-radius: 50% 50% 45% 45% / 60% 60% 40% 40%; transform-origin: bottom center; animation: kh-katharina 2s ease-in-out infinite; }
.scn-katharina-hungry .grumio { position: absolute; bottom: 18%; left: 55%; width: 18px; height: 44px; background: linear-gradient(180deg, #4a4a5e 0%, #3a3a4a 100%); border-radius: 50% 50% 45% 45% / 60% 60% 40% 40%; animation: kh-grumio 1.6s ease-in-out infinite; }
.scn-katharina-hungry .petruchio { position: absolute; bottom: 16%; right: 15%; width: 22px; height: 52px; background: linear-gradient(180deg, #3e2e2e 0%, #2a1a1a 100%); border-radius: 50% 50% 45% 45% / 60% 60% 40% 40%; animation: kh-petruchio 3s ease-in-out infinite; }
.scn-katharina-hungry .meat { position: absolute; bottom: 20%; left: 35%; width: 16px; height: 10px; background: #7a4a3a; border-radius: 40% 40% 30% 30%; box-shadow: 0 2px 6px rgba(0,0,0,.5); animation: kh-meat 1.2s ease-in-out infinite; }
.scn-katharina-hungry .lantern { position: absolute; top: 12%; left: 8%; width: 6px; height: 8px; background: radial-gradient(circle, #ffd680 0%, #b08040 70%); border-radius: 50%; box-shadow: 0 0 20px 6px #c08040, 0 0 40px 12px rgba(192,128,64,.3); animation: kh-lantern 4s ease-in-out infinite alternate; }
@keyframes kh-katharina { 0% { transform: translateX(0) rotate(0deg) } 25% { transform: translateX(-2px) rotate(-3deg) } 50% { transform: translateX(3px) rotate(2deg) } 75% { transform: translateX(-1px) rotate(-1deg) } 100% { transform: translateX(0) rotate(0deg) } }
@keyframes kh-grumio { 0%,100% { transform: translateX(0) translateY(0) rotate(0deg) } 25% { transform: translateX(2px) translateY(-1px) rotate(3deg) } 50% { transform: translateX(4px) translateY(0) rotate(0deg) } 75% { transform: translateX(2px) translateY(1px) rotate(-2deg) } }
@keyframes kh-petruchio { 0% { transform: translateX(0) rotate(0deg) } 50% { transform: translateX(-5px) rotate(-2deg) } 100% { transform: translateX(0) rotate(0deg) } }
@keyframes kh-meat { 0%,100% { transform: translateY(0) scale(1) } 50% { transform: translateY(-2px) scale(1.05) } }
@keyframes kh-lantern { 0% { opacity: .6; box-shadow: 0 0 15px 4px #b08040 } 50% { opacity: 1; box-shadow: 0 0 30px 8px #ffd680 } 100% { opacity: .8; box-shadow: 0 0 20px 6px #c08040 } }

/* Scene: tailor-brings-gown */
.scn-tailor-brings-gown {
  background: linear-gradient(180deg, #2a2a3e 0%, #3a3a4e 40%, #2e2e44 100%),
              radial-gradient(ellipse at 50% 40%, #3a3a4e 0%, #1a1a2e 70%);
}
.scn-tailor-brings-gown .floor { position: absolute; bottom: 0; left: 0; right: 0; height: 14%; background: linear-gradient(180deg, #3e3e4e 0%, #2e2e3e 100%); }
.scn-tailor-brings-gown .wall { position: absolute; inset: 0 0 14% 0; background: linear-gradient(180deg, #2a2a3e 0%, #3a3a4e 100%); }
.scn-tailor-brings-gown .stand { position: absolute; bottom: 18%; left: 50%; width: 30px; height: 80px; transform: translateX(-50%); background: linear-gradient(180deg, #4a4a5e 0%, #3a3a4a 100%); border-radius: 4px 4px 8px 8px; }
.scn-tailor-brings-gown .gown { position: absolute; bottom: 20%; left: 50%; width: 50px; height: 70px; transform: translateX(-50%); background: linear-gradient(180deg, #b87878 0%, #a05858 50%, #7a3a3a 100%); border-radius: 20% 20% 10% 10% / 30% 30% 20% 20%; box-shadow: 0 8px 20px rgba(0,0,0,.4); animation: tg-gown 5s ease-in-out infinite; }
.scn-tailor-brings-gown .petruchio { position: absolute; bottom: 14%; left: 25%; width: 22px; height: 50px; background: linear-gradient(180deg, #3e2e2e 0%, #2a1a1a 100%); border-radius: 50% 50% 45% 45% / 60% 60% 40% 40%; animation: tg-petruchio 2s ease-in-out infinite; }
.scn-tailor-brings-gown .katharina { position: absolute; bottom: 14%; left: 75%; width: 20px; height: 48px; background: linear-gradient(180deg, #3a3a4e 0%, #2a2a3a 100%); border-radius: 50% 50% 45% 45% / 60% 60% 40% 40%; animation: tg-katharina 2.5s ease-in-out infinite; }
.scn-tailor-brings-gown .tailor { position: absolute; bottom: 14%; left: 5%; width: 18px; height: 44px; background: linear-gradient(180deg, #4a4a5e 0%, #3a3a4a 100%); border-radius: 50% 50% 45% 45% / 60% 60% 40% 40%; animation: tg-tailor 1.8s ease-in-out infinite; }
.scn-tailor-brings-gown .note { position: absolute; bottom: 30%; left: 8%; width: 12px; height: 16px; background: #c8b898; border-radius: 2px; box-shadow: 0 2px 4px rgba(0,0,0,.3); animation: tg-note 3s ease-in-out infinite; }
@keyframes tg-gown { 0%,100% { transform: translateX(-50%) rotate(0deg) } 50% { transform: translateX(-50%) rotate(3deg) scale(1.02) } }
@keyframes tg-petruchio { 0% { transform: translateX(0) rotate(0deg) } 25% { transform: translateX(2px) rotate(-4deg) } 50% { transform: translateX(0) rotate(2deg) } 75% { transform: translateX(-2px) rotate(-1deg) } 100% { transform: translateX(0) rotate(0deg) } }
@keyframes tg-katharina { 0%,100% { transform: translateX(0) rotate(0deg) } 50% { transform: translateX(3px) rotate(5deg) } }
@keyframes tg-tailor { 0% { transform: translateX(0) rotate(0deg) } 30% { transform: translateX(2px) rotate(3deg) } 60% { transform: translateX(-1px) rotate(-2deg) } 100% { transform: translateX(0) rotate(0deg) } }
@keyframes tg-note { 0%,100% { transform: translateY(0) rotate(0deg) } 50% { transform: translateY(-3px) rotate(5deg) } }

/* Scene: tailor-dismissed */
.scn-tailor-dismissed {
  background: linear-gradient(180deg, #2e2e3e 0%, #3a3a4a 40%, #2a2a3a 100%),
              radial-gradient(ellipse at 50% 50%, #3a3a4a 0%, #1e1e2e 70%);
}
.scn-tailor-dismissed .floor { position: absolute; bottom: 0; left: 0; right: 0; height: 16%; background: linear-gradient(180deg, #3e3e4e 0%, #2e2e3e 100%); }
.scn-tailor-dismissed .wall { position: absolute; inset: 0 0 16% 0; background: linear-gradient(180deg, #2e2e3e 0%, #3a3a4a 100%); }
.scn-tailor-dismissed .gown-cloth { position: absolute; bottom: 20%; left: 45%; width: 40px; height: 50px; background: linear-gradient(180deg, #b87878 0%, #a05858 100%); border-radius: 10% 10% 5% 5%; opacity: .6; transform: rotate(10deg); animation: td-cloth 2.5s ease-in-out infinite; }
.scn-tailor-dismissed .grumio { position: absolute; bottom: 14%; left: 30%; width: 18px; height: 44px; background: linear-gradient(180deg, #4a4a5e 0%, #3a3a4a 100%); border-radius: 50% 50% 45% 45% / 60% 60% 40% 40%; animation: td-grumio 1.5s ease-in-out infinite; }
.scn-tailor-dismissed .petruchio-dismiss { position: absolute; bottom: 14%; left: 60%; width: 22px; height: 52px; background: linear-gradient(180deg, #3e2e2e 0%, #2a1a1a 100%); border-radius: 50% 50% 45% 45% / 60% 60% 40% 40%; animation: td-petruchio 2s ease-in-out infinite; }
.scn-tailor-dismissed .tailor-confused { position: absolute; bottom: 16%; left: 10%; width: 18px; height: 44px; background: linear-gradient(180deg, #4a4a5e 0%, #3a3a4a 100%); border-radius: 50% 50% 45% 45% / 60% 60% 40% 40%; transform: rotate(-5deg); animation: td-tailor 3s ease-in-out infinite; }
.scn-tailor-dismissed .note-flutter { position: absolute; bottom: 30%; left: 15%; width: 12px; height: 16px; background: #c8b898; border-radius: 2px; animation: td-note 2s ease-in-out infinite; }
.scn-tailor-dismissed .coin { position: absolute; bottom: 22%; right: 20%; width: 10px; height: 10px; background: #d4b060; border-radius: 50%; box-shadow: 0 2px 4px rgba(0,0,0,.3); animation: td-coin 1.8s ease-in-out infinite; }
@keyframes td-cloth { 0%,100% { transform: rotate(10deg) translateX(0) } 50% { transform: rotate(-15deg) translateX(-4px) } }
@keyframes td-grumio { 0% { transform: translateX(0) rotate(0deg) } 20% { transform: translateX(3px) rotate(5deg) } 40% { transform: translateX(-2px) rotate(-3deg) } 60% { transform: translateX(4px) rotate(2deg) } 80% { transform: translateX(-1px) rotate(-1deg) } 100% { transform: translateX(0) rotate(0deg) } }
@keyframes td-petruchio { 0%,100% { transform: translateX(0) rotate(0deg) } 25% { transform: translateX(-2px) rotate(-8deg) } 50% { transform: translateX(2px) rotate(5deg) } 75% { transform: translateX(-1px) rotate(-3deg) } }
@keyframes td-tailor { 0% { transform: rotate(-5deg) translateY(0) } 30% { transform: rotate(0deg) translateY(-2px) } 60% { transform: rotate(-8deg) translateY(0) } 100% { transform: rotate(-5deg) translateY(0) } }
@keyframes td-note { 0%,100% { transform: translateY(0) rotate(0deg) } 50% { transform: translateY(-6px) rotate(20deg) } }
@keyframes td-coin { 0% { transform: translateY(0) scale(1) opacity: .8 } 50% { transform: translateY(-4px) scale(1.1) opacity: 1 } 100% { transform: translateY(0) scale(1) opacity: .8 } }

/* Scene: pedant-impersonates-vincentio */
.scn-pedant-impersonates-vincentio {
  background: linear-gradient(180deg, #e8e0c0 0%, #d0c8a8 50%, #b8b098 100%),
              radial-gradient(ellipse at 50% 30%, #f0e8d0 0%, #d0c8a8 70%);
}
.scn-pedant-impersonates-vincentio .floor-light { position: absolute; bottom: 0; left: 0; right: 0; height: 12%; background: linear-gradient(180deg, #c8b898 0%, #b8a888 100%); }
.scn-pedant-impersonates-vincentio .wall-light { position: absolute; inset: 0 0 12% 0; background: linear-gradient(180deg, #e8e0c0 0%, #d0c8a8 100%); }
.scn-pedant-impersonates-vincentio .pedant { position: absolute; bottom: 14%; left: 20%; width: 24px; height: 56px; background: linear-gradient(180deg, #6a5a4a 0%, #4a3a2a 100%); border-radius: 50% 50% 45% 45% / 60% 60% 40% 40%; animation: pi-pedant 4s ease-in-out infinite; }
.scn-pedant-impersonates-vincentio .tranio { position: absolute; bottom: 14%; left: 45%; width: 22px; height: 54px; background: linear-gradient(180deg, #7a6a5a 0%, #5a4a3a 100%); border-radius: 50% 50% 45% 45% / 60% 60% 40% 40%; animation: pi-tranio 3.5s ease-in-out infinite; }
.scn-pedant-impersonates-vincentio .baptista { position: absolute; bottom: 14%; right: 20%; width: 26px; height: 58px; background: linear-gradient(180deg, #8a7a6a 0%, #6a5a4a 100%); border-radius: 50% 50% 45% 45% / 60% 60% 40% 40%; animation: pi-baptista 5s ease-in-out infinite; }
.scn-pedant-impersonates-vincentio .desk { position: absolute; bottom: 10%; left: 35%; width: 30%; height: 6%; background: linear-gradient(180deg, #8a7a5a 0%, #6a5a3a 100%); border-radius: 2px; box-shadow: 0 4px 8px rgba(0,0,0,.1); }
.scn-pedant-impersonates-vincentio .scroll { position: absolute; bottom: 14%; left: 48%; width: 8px; height: 20px; background: #e0d0b0; border-radius: 2px; transform: rotate(15deg); animation: pi-scroll 6s ease-in-out infinite; }
.scn-pedant-impersonates-vincentio .biondello { position: absolute; bottom: 14%; right: 5%; width: 16px; height: 40px; background: linear-gradient(180deg, #6a5a4a 0%, #4a3a2a 100%); border-radius: 50% 50% 45% 45% / 60% 60% 40% 40%; animation: pi-biondello 2s ease-in-out infinite; }
@keyframes pi-pedant { 0%,100% { transform: translateX(0) rotate(0deg) } 50% { transform: translateX(3px) rotate(2deg) } }
@keyframes pi-tranio { 0% { transform: translateX(0) rotate(0deg) } 25% { transform: translateX(-2px) rotate(-3deg) } 50% { transform: translateX(1px) rotate(4deg) } 75% { transform: translateX(-1px) rotate(-1deg) } 100% { transform: translateX(0) rotate(0deg) } }
@keyframes pi-baptista { 0%,100% { transform: translateX(0) rotate(0deg) } 30% { transform: translateX(-2px) rotate(-2deg) } 60% { transform: translateX(2px) rotate(3deg) } }
@keyframes pi-scroll { 0%,100% { transform: rotate(15deg) translateY(0) } 50% { transform: rotate(20deg) translateY(-3px) } }
@keyframes pi-biondello { 0% { transform: translateX(0) rotate(0deg) } 40% { transform: translateX(2px) rotate(5deg) } 70% { transform: translateX(-1px) rotate(-3deg) } 100% { transform: translateX(0) rotate(0deg) } }

.scn-marriage-agreed {
  background: linear-gradient(180deg, #f5e1b0 0%, #e8c88a 30%, #d4a65a 70%, #b8844a 100%),
              radial-gradient(ellipse at 30% 80%, #f0d090 0%, transparent 70%);
}
.scn-marriage-agreed .wall {
  position:absolute; inset:0 0 30% 0;
  background: linear-gradient(180deg, #ebd6a5 0%, #d4b87a 100%);
  border-radius: 0 0 20% 20%;
}
.scn-marriage-agreed .floor {
  position:absolute; bottom:0; left:0; right:0; height:30%;
  background: linear-gradient(0deg, #6b4e2e 0%, #8a6840 100%);
  box-shadow: inset 0 20px 30px rgba(0,0,0,0.3);
}
.scn-marriage-agreed .window {
  position:absolute; top:10%; left:50%; width:80px; height:100px;
  transform:translateX(-50%);
  background: radial-gradient(circle at 50% 30%, #fff8e0 0%, #e0cc90 100%);
  border:6px solid #7a5a2a;
  border-radius: 4px;
  box-shadow: inset 0 0 40px rgba(255,240,180,0.5);
  animation: ma1-window 8s ease-in-out infinite alternate;
}
.scn-marriage-agreed .table {
  position:absolute; bottom:28%; left:30%; width:100px; height:12px;
  background: linear-gradient(90deg, #6b4e2e, #8a6840, #6b4e2e);
  border-radius: 4px;
  box-shadow: 0 4px 8px rgba(0,0,0,0.3);
  animation: ma1-table 12s ease-in-out infinite;
}
.scn-marriage-agreed .fig-baptista {
  position:absolute; bottom:18%; left:20%; width:30px; height:70px;
  background: linear-gradient(180deg, #3a2a1a 0%, #2a1a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: ma1-fig-still 6s ease-in-out infinite;
}
.scn-marriage-agreed .fig-petruchio {
  position:absolute; bottom:18%; left:40%; width:34px; height:75px;
  background: linear-gradient(180deg, #4a3020 0%, #2a1a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: ma1-fig-bow 4s ease-in-out infinite alternate;
}
.scn-marriage-agreed .fig-kate {
  position:absolute; bottom:18%; left:55%; width:28px; height:68px;
  background: linear-gradient(180deg, #5a4030 0%, #3a2a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: ma1-fig-turn 5s ease-in-out infinite;
}
.scn-marriage-agreed .candle-glow {
  position:absolute; bottom:45%; left:48%; width:12px; height:20px;
  background: radial-gradient(circle at 50% 30%, #ffd080 0%, #e0a040 70%);
  border-radius: 40%;
  box-shadow: 0 0 30px 15px rgba(255,200,100,0.4), 0 0 60px 30px rgba(255,200,100,0.2);
  animation: ma1-candle 2s ease-in-out infinite alternate;
}
.scn-marriage-agreed .curtain {
  position:absolute; top:0; left:-20px; width:150px; height:100%;
  background: linear-gradient(180deg, #8a6040 0%, #6a4030 100%);
  clip-path: polygon(0 0, 100% 0, 80% 100%, 0 100%);
  opacity:0.3;
  animation: ma1-curtain 14s ease-in-out infinite alternate;
}
@keyframes ma1-window {
  0% { opacity:0.8; transform:translateX(-50%) scale(1); }
  50% { opacity:1; transform:translateX(-50%) scale(1.02); }
  100% { opacity:0.9; transform:translateX(-50%) scale(0.98); }
}
@keyframes ma1-table {
  0%,100% { transform:translateY(0); }
  50% { transform:translateY(-2px); }
}
@keyframes ma1-fig-still {
  0%,100% { transform:rotate(0deg); }
  50% { transform:rotate(2deg); }
}
@keyframes ma1-fig-bow {
  0% { transform:rotate(0deg) translateX(0); }
  50% { transform:rotate(-10deg) translateX(-5px); }
  100% { transform:rotate(0deg) translateX(0); }
}
@keyframes ma1-fig-turn {
  0%,100% { transform:rotate(0deg); }
  25% { transform:rotate(-5deg); }
  75% { transform:rotate(5deg); }
}
@keyframes ma1-candle {
  0% { box-shadow:0 0 25px 10px rgba(255,200,100,0.3),0 0 50px 20px rgba(255,200,100,0.15); opacity:0.9; }
  50% { box-shadow:0 0 40px 20px rgba(255,200,100,0.5),0 0 80px 40px rgba(255,200,100,0.25); opacity:1; }
  100% { box-shadow:0 0 30px 12px rgba(255,200,100,0.35),0 0 60px 24px rgba(255,200,100,0.18); opacity:0.95; }
}
@keyframes ma1-curtain {
  0% { transform:translateX(0); }
  100% { transform:translateX(15px); }
}

.scn-tutors-compete-for-bianca {
  background: linear-gradient(180deg, #e6d5b8 0%, #cfb68a 40%, #a68a5e 100%),
              radial-gradient(ellipse at 60% 20%, #cfa86a 0%, transparent 80%);
}
.scn-tutors-compete-for-bianca .room-bg {
  position:absolute; inset:0 0 25% 0;
  background: linear-gradient(180deg, #dcc8a0 0%, #b89c70 100%);
  border-radius: 0 0 30% 30%;
}
.scn-tutors-compete-for-bianca .desk {
  position:absolute; bottom:22%; left:35%; width:180px; height:14px;
  background: linear-gradient(90deg, #5a3e2e, #7a5e3e, #5a3e2e);
  border-radius: 2px;
  box-shadow: 0 6px 12px rgba(0,0,0,0.4);
  animation: tc2-desk 10s ease-in-out infinite;
}
.scn-tutors-compete-for-bianca .book-left {
  position:absolute; bottom:26%; left:38%; width:24px; height:30px;
  background: linear-gradient(180deg, #503a2a 0%, #3a2a1a 100%);
  border-radius: 2px;
  transform: rotate(-10deg);
  box-shadow: 2px 4px 6px rgba(0,0,0,0.3);
  animation: tc2-book-l 4s ease-in-out infinite alternate;
}
.scn-tutors-compete-for-bianca .book-right {
  position:absolute; bottom:25%; left:58%; width:28px; height:32px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 2px;
  transform: rotate(8deg);
  box-shadow: -2px 4px 6px rgba(0,0,0,0.3);
  animation: tc2-book-r 5s ease-in-out infinite alternate;
}
.scn-tutors-compete-for-bianca .fig-lucentio {
  position:absolute; bottom:16%; left:30%; width:30px; height:72px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a100a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: tc2-lucentio 3s ease-in-out infinite;
}
.scn-tutors-compete-for-bianca .fig-hortensio {
  position:absolute; bottom:16%; left:52%; width:32px; height:74px;
  background: linear-gradient(180deg, #2a1a1a 0%, #0a0a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: tc2-hortensio 3.5s ease-in-out infinite;
}
.scn-tutors-compete-for-bianca .fig-bianca {
  position:absolute; bottom:16%; left:42%; width:26px; height:64px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a12 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: tc2-bianca 4s ease-in-out infinite alternate;
}
.scn-tutors-compete-for-bianca .lamp-flicker {
  position:absolute; top:8%; left:45%; width:18px; height:24px;
  background: radial-gradient(circle, #f0d080 0%, #c09840 70%);
  border-radius: 30% 30% 10% 10%;
  box-shadow: 0 0 40px 20px rgba(240,200,100,0.5), 0 0 80px 40px rgba(240,200,100,0.25);
  animation: tc2-flicker 0.8s ease-in-out infinite alternate;
}
.scn-tutors-compete-for-bianca .shadow-stripe {
  position:absolute; top:0; left:20%; width:4px; height:100%;
  background: linear-gradient(180deg, rgba(0,0,0,0.2) 0%, rgba(0,0,0,0.05) 100%);
  animation: tc2-shadow 6s ease-in-out infinite alternate;
}
@keyframes tc2-desk {
  0%,100% { transform:translateY(0); }
  50% { transform:translateY(-1px); }
}
@keyframes tc2-book-l {
  0% { transform:rotate(-10deg) translateY(0); }
  50% { transform:rotate(-15deg) translateY(-2px); }
  100% { transform:rotate(-10deg) translateY(0); }
}
@keyframes tc2-book-r {
  0% { transform:rotate(8deg) translateY(0); }
  50% { transform:rotate(12deg) translateY(-2px); }
  100% { transform:rotate(8deg) translateY(0); }
}
@keyframes tc2-lucentio {
  0% { transform:rotate(0deg) translateX(0); }
  25% { transform:rotate(-3deg) translateX(2px); }
  50% { transform:rotate(0deg) translateX(0); }
  75% { transform:rotate(3deg) translateX(-2px); }
  100% { transform:rotate(0deg) translateX(0); }
}
@keyframes tc2-hortensio {
  0% { transform:rotate(0deg) translateX(0); }
  30% { transform:rotate(2deg) translateX(-3px); }
  60% { transform:rotate(-2deg) translateX(3px); }
  100% { transform:rotate(0deg) translateX(0); }
}
@keyframes tc2-bianca {
  0% { transform:rotate(0deg) translateY(0); }
  100% { transform:rotate(4deg) translateY(-2px); }
}
@keyframes tc2-flicker {
  0% { opacity:0.7; box-shadow:0 0 30px 15px rgba(240,200,100,0.3),0 0 60px 30px rgba(240,200,100,0.15); }
  50% { opacity:1; box-shadow:0 0 50px 25px rgba(240,200,100,0.5),0 0 100px 50px rgba(240,200,100,0.3); }
  100% { opacity:0.8; box-shadow:0 0 35px 18px rgba(240,200,100,0.35),0 0 70px 35px rgba(240,200,100,0.18); }
}
@keyframes tc2-shadow {
  0% { opacity:0.3; }
  50% { opacity:0.6; }
  100% { opacity:0.2; }
}

.scn-petruchio-late-wedding {
  background: linear-gradient(180deg, #1a1a2e 0%, #2a2230 30%, #3a2a30 60%, #2a1a1a 100%),
              radial-gradient(ellipse at 50% 80%, #3a1020 0%, transparent 70%);
}
.scn-petruchio-late-wedding .dark-wall {
  position:absolute; inset:0 0 30% 0;
  background: linear-gradient(180deg, #2a1a1a 0%, #1a0a0a 100%);
  border-radius: 0 0 10% 10%;
  box-shadow: inset 0 -20px 30px rgba(0,0,0,0.5);
}
.scn-petruchio-late-wedding .floor-slab {
  position:absolute; bottom:0; left:0; right:0; height:30%;
  background: linear-gradient(0deg, #0a0a0a 0%, #1a1212 100%);
  box-shadow: inset 0 10px 20px rgba(0,0,0,0.6);
}
.scn-petruchio-late-wedding .door-arch {
  position:absolute; bottom:25%; left:40%; width:90px; height:120px;
  background: radial-gradient(ellipse at 50% 10%, #2a1a1a 0%, #1a0a0a 100%);
  border-radius: 50% 50% 0 0 / 40% 40% 0 0;
  border: 4px solid #3a2a2a;
  box-shadow: inset 0 0 30px rgba(0,0,0,0.8);
  animation: pw3-door 15s ease-in-out infinite alternate;
}
.scn-petruchio-late-wedding .fig-baptista {
  position:absolute; bottom:18%; left:30%; width:30px; height:70px;
  background: linear-gradient(180deg, #1a1212 0%, #0a0a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: pw3-fig-tremble 2s ease-in-out infinite;
}
.scn-petruchio-late-wedding .fig-kate-weeping {
  position:absolute; bottom:18%; left:52%; width:26px; height:66px;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: pw3-fig-weep 3s ease-in-out infinite;
}
.scn-petruchio-late-wedding .fig-biondello {
  position:absolute; bottom:18%; left:44%; width:28px; height:68px;
  background: linear-gradient(180deg, #2a1a12 0%, #1a0a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: pw3-fig-rush 0.6s ease-in-out infinite alternate;
}
.scn-petruchio-late-wedding .candle-flame {
  position:absolute; top:15%; left:45%; width:10px; height:16px;
  background: radial-gradient(circle at 50% 30%, #ffa060 0%, #c06030 70%);
  border-radius: 30% 30% 10% 10%;
  box-shadow: 0 0 20px 10px rgba(255,160,80,0.4), 0 0 40px 20px rgba(255,160,80,0.2);
  animation: pw3-candle 1.5s ease-in-out infinite alternate;
}
.scn-petruchio-late-wedding .pew-bench {
  position:absolute; bottom:16%; left:20%; width:40px; height:20px;
  background: linear-gradient(90deg, #2a1a0a, #3a2a1a, #2a1a0a);
  border-radius: 4px;
  box-shadow: 0 4px 8px rgba(0,0,0,0.5);
  animation: pw3-bench 10s ease-in-out infinite;
}
@keyframes pw3-door {
  0% { transform:scaleX(1); }
  50% { transform:scaleX(1.02); }
  100% { transform:scaleX(0.98); }
}
@keyframes pw3-fig-tremble {
  0%,100% { transform:translateX(0); }
  25% { transform:translateX(1px); }
  75% { transform:translateX(-1px); }
}
@keyframes pw3-fig-weep {
  0%,100% { transform:rotate(0deg); }
  30% { transform:rotate(-5deg) translateY(1px); }
  60% { transform:rotate(5deg) translateY(1px); }
}
@keyframes pw3-fig-rush {
  0% { transform:translateX(0) scaleY(1); }
  100% { transform:translateX(3px) scaleY(1.02); }
}
@keyframes pw3-candle {
  0% { opacity:0.6; box-shadow:0 0 15px 8px rgba(255,160,80,0.3),0 0 30px 15px rgba(255,160,80,0.15); }
  50% { opacity:1; box-shadow:0 0 30px 15px rgba(255,160,80,0.5),0 0 60px 30px rgba(255,160,80,0.25); }
  100% { opacity:0.7; box-shadow:0 0 20px 10px rgba(255,160,80,0.35),0 0 40px 20px rgba(255,160,80,0.18); }
}
@keyframes pw3-bench {
  0%,100% { transform:translateY(0); }
  50% { transform:translateY(-1px); }
}

.scn-petruchio-arrives-wedding {
  background: linear-gradient(180deg, #ffe8a0 0%, #ffcf80 30%, #d4a65a 70%, #b8844a 100%),
              radial-gradient(ellipse at 30% 50%, #ffefc0 0%, transparent 80%);
}
.scn-petruchio-arrives-wedding .sky-bright {
  position:absolute; inset:0 0 40% 0;
  background: linear-gradient(180deg, #ffe8c0 0%, #ffd090 100%);
  border-radius: 0 0 20% 20%;
  animation: pa4-sky 20s ease-in-out infinite alternate;
}
.scn-petruchio-arrives-wedding .church-portal {
  position:absolute; bottom:25%; left:30%; width:140px; height:160px;
  background: radial-gradient(ellipse at 50% 0%, #f0d0a0 0%, #c8a070 100%);
  border-radius: 50% 50% 0 0 / 30% 30% 0 0;
  border: 6px solid #8a5a30;
  box-shadow: inset 0 0 60px rgba(0,0,0,0.2);
  animation: pa4-portal 12s ease-in-out infinite;
}
.scn-petruchio-arrives-wedding .ground {
  position:absolute; bottom:0; left:0; right:0; height:25%;
  background: linear-gradient(0deg, #5a3a1a 0%, #7a5a2e 100%);
  box-shadow: inset 0 10px 20px rgba(0,0,0,0.3);
}
.scn-petruchio-arrives-wedding .fig-petruchio-garb {
  position:absolute; bottom:18%; left:38%; width:40px; height:80px;
  background: linear-gradient(90deg, #6a4030 0%, #4a3020 30%, #8a6040 50%, #4a3020 70%, #6a4030 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: pa4-petruchio 1.5s ease-in-out infinite;
}
.scn-petruchio-arrives-wedding .fig-kate-surprised {
  position:absolute; bottom:22%; left:52%; width:26px; height:66px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: pa4-kate 2s ease-in-out infinite;
}
.scn-petruchio-arrives-wedding .fig-baptista-a {
  position:absolute; bottom:20%; left:22%; width:30px; height:70px;
  background: linear-gradient(180deg, #2a1a0a 0%, #1a0a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: pa4-baptista 3s ease-in-out infinite alternate;
}
.scn-petruchio-arrives-wedding .fig-tranio {
  position:absolute; bottom:19%; left:62%; width:28px; height:68px;
  background: linear-gradient(180deg, #2a1a12 0%, #0a0a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: pa4-tranio 4s ease-in-out infinite;
}
.scn-petruchio-arrives-wedding .lame-horse {
  position:absolute; bottom:18%; left:44%; width:60px; height:40px;
  background: linear-gradient(180deg, #4a3020 0%, #2a1a0a 100%);
  border-radius: 40% 30% 20% 20% / 50% 40% 30% 30%;
  transform: rotate(-5deg);
  box-shadow: 0 4px 8px rgba(0,0,0,0.4);
  animation: pa4-horse 0.8s ease-in-out infinite alternate;
}
.scn-petruchio-arrives-wedding .sun-burst {
  position:absolute; top:5%; left:50%; width:80px; height:80px;
  background: radial-gradient(circle, #fff0c0 0%, #ffe080 40%, transparent 80%);
  border-radius: 50%;
  box-shadow: 0 0 60px 30px rgba(255,240,180,0.3);
  animation: pa4-sun 6s ease-in-out infinite alternate;
}
@keyframes pa4-sky {
  0% { opacity:0.8; }
  50% { opacity:1; }
  100% { opacity:0.9; }
}
@keyframes pa4-portal {
  0%,100% { transform:scaleY(1); }
  50% { transform:scaleY(1.02); }
}
@keyframes pa4-petruchio {
  0% { transform:translateX(0) rotate(0deg); }
  25% { transform:translateX(5px) rotate(5deg); }
  50% { transform:translateX(0) rotate(0deg); }
  75% { transform:translateX(-5px) rotate(-5deg); }
  100% { transform:translateX(0) rotate(0deg); }
}
@keyframes pa4-kate {
  0% { transform:translateY(0); }
  50% { transform:translateY(-3px); }
  100% { transform:translateY(0); }
}
@keyframes pa4-baptista {
  0% { transform:rotate(0deg); }
  100% { transform:rotate(8deg); }
}
@keyframes pa4-tranio {
  0% { transform:translateX(0); }
  50% { transform:translateX(4px); }
  100% { transform:translateX(0); }
}
@keyframes pa4-horse {
  0% { transform:rotate(-5deg) translateY(0); }
  100% { transform:rotate(-8deg) translateY(-2px); }
}
@keyframes pa4-sun {
  0% { opacity:0.7; transform:scale(0.95); }
  100% { opacity:1; transform:scale(1.05); }
}

.scn-sun-is-moon { background: linear-gradient(180deg, #9cb8cc 0%, #e8d08c 100%), radial-gradient(ellipse at 50% 30%, #fff 0%, transparent 40%); }
.scn-sun-is-moon .sky { position:absolute; inset:0 0 45% 0; background: linear-gradient(180deg, #7aa8c4 0%, #b8d8e8 100%); animation: sm-sky 12s ease-in-out infinite alternate; }
.scn-sun-is-moon .road { position:absolute; bottom:0; left:0; right:0; height:45%; background: linear-gradient(180deg, #8a735a 0%, #5a4530 100%); border-radius: 20% 20% 0 0 / 10% 10% 0 0; box-shadow: inset 0 10px 20px rgba(0,0,0,0.3); animation: sm-road 10s ease-in-out infinite alternate; }
.scn-sun-is-moon .figure-k { position:absolute; bottom:25%; left:30%; width:20px; height:40px; background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: sm-walk 4s ease-in-out infinite alternate; }
.scn-sun-is-moon .figure-p { position:absolute; bottom:25%; left:45%; width:22px; height:42px; background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: sm-walk 4s ease-in-out infinite alternate-reverse; }
.scn-sun-is-moon .sun { position:absolute; top:8%; left:50%; width:60px; height:60px; transform:translateX(-50%); background: radial-gradient(circle, #fff 0%, #ffda7a 40%, transparent 70%); border-radius:50%; box-shadow: 0 0 40px 20px #ffda7a; animation: sm-sun 6s ease-in-out infinite alternate; }
.scn-sun-is-moon .cloud { position:absolute; width:80px; height:20px; background: linear-gradient(180deg, rgba(255,255,255,0.5) 0%, rgba(255,255,255,0.1) 100%); border-radius:50%; filter: blur(6px); }
.scn-sun-is-moon .ca { top:12%; left:5%; animation: sm-drift-a 35s linear infinite; }
.scn-sun-is-moon .cb { top:18%; right:10%; width:60px; height:15px; animation: sm-drift-b 45s linear infinite; }

@keyframes sm-sky { 0% { opacity:0.8; } 50% { opacity:1; } 100% { opacity:0.85; } }
@keyframes sm-road { 0% { transform: scaleY(1); } 50% { transform: scaleY(1.02); } 100% { transform: scaleY(1); } }
@keyframes sm-walk { 0% { transform: translateX(0) rotate(-2deg); } 50% { transform: translateX(8px) rotate(2deg); } 100% { transform: translateX(16px) rotate(-2deg); } }
@keyframes sm-sun { 0% { transform: translateX(-50%) scale(1); } 50% { transform: translateX(-50%) scale(1.05); box-shadow: 0 0 50px 25px #ffc060; } 100% { transform: translateX(-50%) scale(1); } }
@keyframes sm-drift-a { 0% { transform: translateX(-100px); opacity:0.3; } 50% { opacity:0.7; } 100% { transform: translateX(120vw); opacity:0.3; } }
@keyframes sm-drift-b { 0% { transform: translateX(100vw); opacity:0.4; } 50% { opacity:0.8; } 100% { transform: translateX(-100px); opacity:0.4; } }

.scn-vincentio-denied-entry { background: linear-gradient(180deg, #e0c8a0 0%, #b8a080 100%), radial-gradient(ellipse at 50% 20%, #f0d8b0 0%, transparent 60%); }
.scn-vincentio-denied-entry .wall-back { position:absolute; inset:0; background: linear-gradient(180deg, #d4bc94 0%, #a08868 100%); }
.scn-vincentio-denied-entry .window-frame { position:absolute; top:20%; left:50%; width:100px; height:120px; transform:translateX(-50%); border: 4px solid #5a3a2a; border-radius: 50% 50% 0 0 / 80% 80% 0 0; background: radial-gradient(ellipse at 50% 30%, #fff 0%, #e0c8a0 100%); box-shadow: inset 0 0 20px #a08060; }
.scn-vincentio-denied-entry .pedant { position:absolute; top:35%; left:50%; width:40px; height:50px; transform:translateX(-50%); background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%); border-radius: 50% 50% 20% 20% / 70% 70% 30% 30%; animation: vd-shake 0.5s ease-in-out infinite alternate; }
.scn-vincentio-denied-entry .vincentio { position:absolute; bottom:20%; left:35%; width:25px; height:55px; background: linear-gradient(180deg, #3a2a1a 0%, #2a1a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform:rotate(5deg); animation: vd-knock 1s ease-in-out infinite; }
.scn-vincentio-denied-entry .shadow { position:absolute; bottom:0; left:25%; width:150px; height:30px; background: radial-gradient(ellipse, rgba(0,0,0,0.4) 0%, transparent 70%); animation: vd-shadow 2s ease-in-out infinite alternate; }
.scn-vincentio-denied-entry .lamp { position:absolute; top:45%; right:20%; width:8px; height:8px; background: #ffd080; border-radius:50%; box-shadow: 0 0 12px 6px #ffb050; animation: vd-flicker 0.3s ease-in-out infinite alternate; }

@keyframes vd-shake { 0% { transform: translateX(-50%) rotate(-3deg); } 50% { transform: translateX(-50%) rotate(3deg); } 100% { transform: translateX(-50%) rotate(-3deg); } }
@keyframes vd-knock { 0% { transform: rotate(5deg) translateY(0); } 50% { transform: rotate(5deg) translateY(-5px); } 100% { transform: rotate(5deg) translateY(0); } }
@keyframes vd-shadow { 0% { transform: scaleX(1); opacity:0.4; } 50% { transform: scaleX(1.1); opacity:0.6; } 100% { transform: scaleX(1); opacity:0.4; } }
@keyframes vd-flicker { 0% { opacity:0.7; box-shadow: 0 0 8px 4px #ffb050; } 50% { opacity:1; box-shadow: 0 0 16px 8px #ffd080; } 100% { opacity:0.7; box-shadow: 0 0 8px 4px #ffb050; } }

.scn-truth-revealed { background: linear-gradient(180deg, #c8b090 0%, #9a8060 100%), radial-gradient(ellipse at 50% 40%, #f0d8b0 0%, transparent 70%); }
.scn-truth-revealed .floor { position:absolute; bottom:0; left:0; right:0; height:30%; background: linear-gradient(180deg, #8a7050 0%, #5a3a2a 100%); animation: tr-floor 8s ease-in-out infinite alternate; }
.scn-truth-revealed .wall { position:absolute; inset:0 0 30% 0; background: linear-gradient(180deg, #d4b894 0%, #b09878 100%); }
.scn-truth-revealed .lucentio { position:absolute; bottom:30%; left:25%; width:22px; height:45px; background: linear-gradient(180deg, #2a3a2a 0%, #1a2a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: tr-sway1 3s ease-in-out infinite alternate; }
.scn-truth-revealed .bianca { position:absolute; bottom:30%; left:32%; width:20px; height:42px; background: linear-gradient(180deg, #3a2a3a 0%, #2a1a2a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: tr-sway2 3.5s ease-in-out infinite alternate; }
.scn-truth-revealed .baptista { position:absolute; bottom:30%; left:45%; width:26px; height:48px; background: linear-gradient(180deg, #4a3a1a 0%, #3a2a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform:scale(1.1); animation: tr-angry 0.5s ease-in-out infinite alternate; }
.scn-truth-revealed .petruchio { position:absolute; bottom:30%; right:28%; width:24px; height:46px; background: linear-gradient(180deg, #1a2a3a 0%, #1a1a2a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: tr-sway1 4s ease-in-out infinite alternate-reverse; }
.scn-truth-revealed .katharina { position:absolute; bottom:30%; right:20%; width:20px; height:42px; background: linear-gradient(180deg, #2a1a2a 0%, #1a0a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: tr-sway2 4.5s ease-in-out infinite alternate; }

@keyframes tr-floor { 0% { opacity:0.9; } 50% { opacity:1; } 100% { opacity:0.9; } }
@keyframes tr-sway1 { 0% { transform: translateY(0) rotate(-1deg); } 50% { transform: translateY(-3px) rotate(1deg); } 100% { transform: translateY(0) rotate(-1deg); } }
@keyframes tr-sway2 { 0% { transform: translateY(0) rotate(1deg); } 50% { transform: translateY(-2px) rotate(-1deg); } 100% { transform: translateY(0) rotate(1deg); } }
@keyframes tr-angry { 0% { transform: scale(1.1) rotate(0); } 50% { transform: scale(1.15) rotate(2deg); } 100% { transform: scale(1.1) rotate(0); } }

.scn-wager-on-obedience { background: linear-gradient(180deg, #c8b898 0%, #9a8868 100%), radial-gradient(ellipse at 50% 30%, #e8d0b0 0%, transparent 60%); }
.scn-wager-on-obedience .room-back { position:absolute; inset:0; background: linear-gradient(180deg, #d0bc9c 0%, #b09878 100%); }
.scn-wager-on-obedience .table { position:absolute; bottom:15%; left:20%; right:20%; height:15%; background: linear-gradient(180deg, #6a5a40 0%, #4a3a28 100%); border-radius: 10% 10% 0 0; box-shadow: 0 -4px 8px rgba(0,0,0,0.3); }
.scn-wager-on-obedience .petruchio { position:absolute; bottom:30%; left:25%; width:24px; height:48px; background: linear-gradient(180deg, #1a2a3a 0%, #0a1a2a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: wo-gesture 3s ease-in-out infinite alternate; }
.scn-wager-on-obedience .lucentio { position:absolute; bottom:30%; left:40%; width:22px; height:44px; background: linear-gradient(180deg, #2a3a2a 0%, #1a2a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: wo-fidget 2s ease-in-out infinite alternate; }
.scn-wager-on-obedience .hortensio { position:absolute; bottom:30%; left:55%; width:22px; height:44px; background: linear-gradient(180deg, #3a2a1a 0%, #2a1a0a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: wo-fidget 2.5s ease-in-out infinite alternate-reverse; }
.scn-wager-on-obedience .door { position:absolute; bottom:15%; right:10%; width:60px; height:100px; background: linear-gradient(180deg, #5a4030 0%, #3a2818 100%); border: 3px solid #2a1a0a; border-radius: 5% 5% 0 0; animation: wo-door 1s ease-in-out infinite alternate; }
.scn-wager-on-obedience .biondello { position:absolute; bottom:15%; right:15%; width:18px; height:38px; background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: wo-enter 6s ease-in-out infinite; }

@keyframes wo-gesture { 0% { transform: rotate(0) scale(1); } 50% { transform: rotate(10deg) scale(1.05); } 100% { transform: rotate(0) scale(1); } }
@keyframes wo-fidget { 0% { transform: translateY(0) rotate(-2deg); } 50% { transform: translateY(-4px) rotate(2deg); } 100% { transform: translateY(0) rotate(-2deg); } }
@keyframes wo-door { 0% { transform: scaleX(1); opacity:1; } 50% { transform: scaleX(0.8); opacity:0.8; } 100% { transform: scaleX(1); opacity:1; } }
@keyframes wo-enter { 0% { transform: translateX(50px) scale(0.8); opacity:0; } 50% { transform: translateX(0) scale(1); opacity:1; } 100% { transform: translateX(-20px) scale(0.9); opacity:0; } }
/* end per-scene blocks */
